为什么比特币可以防篡改?

我想和大家讨论一下为什么比特币可以防篡改。(这个是新手问题,我应该把这个帖子放在初学者和帮助上吗?)

不知道我这个月学到的知识是否完整,所以我发了一篇文章,想请大家帮我补一下。

  • 非对称加密

非对称加密算法同时包含公钥(Public Key)和私钥(Secret Key)。

用私钥加密的数据只能用公钥解密,用公钥加密的数据只能用私钥解密。

比特币使用非对称加密算法来保证每一笔交易的安全。网络中的每个账户(比特币的utxo系统中存在account这个词可能有点奇怪)是一对秘钥中的一个公钥,账户的所有者持有私钥。

需要注意的是,使用网站生成比特币地址和私钥是极其危险的。

我们不知道网站是否会存储私钥,所以建议使用比特币客户端生成公私钥对。

任何人都可以通过地址转账到账户;账户持有人还可以使用私钥对交易进行签名以将资金转移到其他地址。

使用持有的私钥进行签名,然后将签名与交易打包发送到网络等待比特币网络的确认。

比如我们要破解一个账号:35hK24tcLEWcgNA4JxpvbkNkoAcDGqQPsP(12/7/2021 101451.70580859 BTC),

我们要尝试1.1579209e+77次才能破解他的私钥。

现在最快的超级计算机富岳精彩浮点计算是530G,抱歉我懒得忘记了。


  • 共识算法

比特币分布式数据库中存储的基本单位是块,块之间通过哈希指针连接形成一棵树。

让网络中的所有节点就下一个区块的内容达成共识是比特币需要解决的一个关键问题。

这就是我们通常所说的拜占庭将军问题,中本聪的答案是

POW:允许节点在提交新区块之前计算满足一定条件的哈希,取代传统的需要一人一票(或一节点)的分布式共识算法, 一票)

2最长链:主链上设置的只有主链的交易才算合法交易

3激励:提交区块的节点可以获得比特币奖励

但是一旦节点中有人拥有超过 51% 的算力,就可以改变区块链的历史。

防止 51% 攻击也很简单。

在大多数区块链网络中,刚刚加入区块链网络的交易都是未经确认的。

只要将足够数量的区块附加到这些区块中,交易就会得到确认。

比特币的交易确认次数为6次,比特币平均10分钟产生一个区块,

所以一笔交易的确认时间约为60分钟,这也是为了保证安全而不得不做出的牺牲。


10 条评论 41 人阅读
添加评论

10个回答

jx

发布于 2021-07-20

当然也有例外,最引人注目的是最广为人知的那个[1] 和最近的这个[2]。对于第一种情况,Slush 中包含 1 sat/vbyte 费用的一个,而 F2Pool 中包含另一个显着更高的费用。虽然可能没有任何恶意意图,但人们仍然可以利用交易策略的差异(由矿工将其包含在他们的区块中)或仅仅有一个参与的矿工。前者非常罕见,取决于会发生分叉的事实,而后者更现实。

如果你想接受 one-conf 交易,那么最好注意任何陈旧的提示(Core 中继标头)并检查交易是否也在另一个块中。如果它不在另一个分叉中,那么我会等待另一个块。不过,在很大一部分时间里,更受欢迎的台球会赢得比赛。
回复

KAKAPO

发布于 2021-07-20

候选块 A 和候选块 B 之间通常有明显的重叠。此外,每当获胜链(假设链 A)被另一个块扩展时,任何包含在候选块 B 但不包含在候选块 A 中的交易通常都会被包含在块 A+1 中。大多数交易通常会从 1 到 2 次确认,而当包含在块 A+1 中时,一些在 B 块中但不在 A 块中的交易将从 1 到 1 次确认。只有非常罕见的交易才会包含在区块 B 中,而不包含在 A 或 A+1 中,并且将从 1 次确认返回到未确认。但当然,未经证实并不意味着钱被盗了——这只是意味着交易回到了内存池中等待再次挖掘。
回复

暖阳

发布于 2021-07-20

实际上,大多数钱包在 sha、ecdsa、ripemd 阶段之前只使用 2^128,
导致在sha、ecdsa、ripemd 阶段之后没有利用所有 2^160 的可能性,
所以为什么在你可以做的时候强行使用 2^160 的长列表2^128 这将导致更短的列表

..
旁注是.. 好运说服您的曾曾孙后代继续该项目,因为即使 2^128 也是少数(更大的词然后是一百万年)的蛮力

尝试在 2^128 中找到 8000 万个 utxo 是在覆盖多个行星的世界上最大的 heybarn 针上的金属碎片
回复

鸿运石膏装饰

发布于 2021-07-20

正如其他人指出的那样,你在你的帖子中有很多误解,把比特币不变性背后的主要思想可以浓缩为一件事——比特币是不可变的,因为每个用户都存储了网络的整个交易历史,当前状态得到派生。区块链使之成为可能。您无法篡改它,因为您无法入侵每个人的计算机,也无法提交无效数据,因为它会立即被检测到并被拒绝。
回复

chen yueyi

发布于 2021-07-20

在 2 到 6 个块之间等待是否不安全?我见过一些人赔钱的情况,因为传播了两个区块,而他们交易的区块被删除了。虽然,我从未听说过两次确认。
回复

Amy⁷⁷

发布于 2021-07-20

这都是关于可接受的风险。每次确认都会为您的交易增加额外的安全性。1次确认比6次确认更容易逆转,6次确认比100次确认更容易逆转。6 被简单地视为时间和安全之间的常用“权衡”。

许多交易所和服务将在低于特定限制的 1 到 3 次确认后接受比特币存款。逆转的风险略高,但他们可以容忍较低的金额。但是对于更高的金额,他们想要更多的确认。如果我出售一些二手电脑零件,那么 1 或 2 次确认就可以了。如果我要卖车,那么我会等 4-6 点。如果我卖房子,我可能要6个以上。你准备等待的时间越长,
回复

Jack

发布于 2021-07-20

无论比特币如何防篡改,如果处理的人对他们的私人凭证不小心或愚蠢,他们的比特币无论如何都会被盗。此外,我喜欢这样的想法,即如果某个恶意实体进行了 51% 的攻击,您还消除了比特币末日的神话。
回复

泳哥

发布于 2021-07-20

请注意,您不必尝试 2^256 次来破解地址的私钥,而不是生成的特定私钥,而是 2^160。地址是 RIPEMD-160 哈希结果的编码,它是 160 位(以及网络字节和校验和)。这意味着对于每个地址,大约有 2^96 个有效私钥。
回复

曾珏

发布于 2021-07-20

这也知道非对称加密又名公钥加密是如何工作的。
您使用“公共”密钥加密消息,而加密的消息只能使用“私有”密钥解密。
如果您使用私钥加密某些内容,那么这将是对称密码术,因为它将需要
再次解密私钥。
回复

肥肥

发布于 2021-07-20

“加密”是当您拥有一条只有您知道的消息并将其转换为输出时,除了使用私钥的人之外,任何人都无法读取或解密。

比特币使用的是使用椭圆曲线(ECDSA)的数字签名。在这个方案中,每个人都知道消息(即交易)和公钥,并且他们每个人都可以验证生成的签名是从该密钥为该消息生成的。
回复