是否有任何证据(到目前为止尚未破解)证明比特币协议是安全的?

(我意识到这可能不算是一个有意义的问题-如果可以改进,请随时进行编辑。此外,如果您喜欢此问题,则可能会比特币提案。)

评论

既然比特币SE开放了,这个问题应该移到那里吗?
拜占庭可靠的动态广播对比特币构成威胁吗?

@ user85481:请勿添加问题作为答案(现在已转换为上述注释)。如果您在问题中解释“动态拜占庭式可靠广播”的含义(至少使用链接),然后用更多的内容代替“对比特币的威胁”(需要很多解释),则可能会将此问题扩展为一个问题。可量化的,并且在密码学领域(例如,“减少预期的工作以颠覆区块链”)或至少具有精确的含义(“增加注入整件事的能量”)。

#1 楼

该协议中有多种加密算法用途。

帐户/交易

要将资金从一个帐户转移到另一个帐户,您需要收集一些数据(上一个交易( s)使用属于您帐户的私钥将钱,目标帐户,您想转账的金额给您)并签名。

如果我可以伪造您的签名,也可以窃取您的钱。

帐户的(公开)地址为address = version || hash || checksum,其中version = 0(一个字节), hash = RIPEMD-160(SHA-256(public-key))checksum = first 4 bytes of SHA-256(SHA-256(version || hash))。 (校验和主要用于防止传输错误。)

如果我能以某种方式生成一个私钥,其对应的公钥与您的私钥具有相同的SHA-256哈希,它将具有相同的地址,并且我可以偷你的钱。如果我可以为您的公钥创建合适的私钥,那么这也是可能的。 -2要找到具有相同散列的第二个公钥,则需要对ECDSA进行攻击才能获得有用的私钥)。所有者的实际私钥。 (但这在这里是不合时宜的。)

区块链

要被视为有效的交易,必须将其包含在区块链中,例如在组成该链的一个区块中。

要创建此区块,矿工使用哈希的默克尔树,该哈希树引用此区块,上一个区块和其他一些数据中包含的各个交易。该树也使用SHA-256。

如果标头的哈希值小于某个数字(“目标”),则该块被视为有效(例如,其他对等方将接受该块并在其上构建自己的块)。这可以通过操作块的一部分,随机数值,计算哈希值,然后重复进行直到幸运地击中正确的随机数以使该块有效来实现。四处奔跑(彼此不是后代),“好”矿工通常会在链条最长的矿工上建设。

那么,我们如何在这里作弊?

如果我们可以打破SHA-2,例如通过找到一种比尝试许多随机数更快的方法来获得正确的随机数,我们可以比其他所有人更快地生成块。这意味着我们首先将获得所有开采的硬币。有了单极子,我们还可以有效地决定要包括哪些交易,不包括哪些交易(这对于想要转移资金的竞争者来说可能是拒绝服务)。

我不确定是否实际上,我们可以通过这种方式(或通过其他SHA-2中断手段)在我们的Merkle树中包含伪造交易-我认为区块的接收者仍应检查其交易是否实际上具有有效签名。

目前,尚无SHA-2的此类破坏。

#2 楼

比特币系统所做的大部分工作都是将众所周知的算法用于其预期目的。系统的这些部分不太可能出现基本问题或算法问题。

当然,参考客户端中可能存在软件错误。曾经有这样一个错误-一个溢出错误,使人们可以创建花费大量荒谬比特币的交易,从而有效地无限制地进行创建。一旦检测到此错误,便会部署新客户端并拒绝损坏的块,从而在第一个有问题的事务之后有效地撤消所有事务。可能导致区块链的大部分被“撤消”,就好像这些交易从未发生过一样。一种解决方法是存储所有向您发送硬币的交易。如果它们被撤消,则可以重新提交。假设将硬币发送给您的人没有打算进行双花攻击,那么交易应该仍然有效。因此,假设利用漏洞的人没有同时专门向您和其他人双倍花费硬币,这应该可以减轻风险。方式,即确定哪些块是官方公共哈希链的一部分的方式。这确实存在一些已知的弱点,例如51%攻击,该攻击使控制网络中一半以上哈希能力的某人发起双花攻击或拒绝他希望进行的任何交易。

它可能当然,也有完全未知的攻击。很难评估这种风险。

#3 楼

有许多已知的攻击可能会在块形成时发生。最近的一个问题,即交易可延展性,并不是真正导致Mt Gox破产的原因,但它无疑带来了一些问题(并且大部分已得到解决)。不幸的是,对于所谓的卡特尔或自私的采矿攻击,存在一种理论但相当有说服力的理论,其散列能力不到51%。显然,切换“工作量证明”可能会破坏攻击者,但是这并未内置在代码中。当前,如果发生这些攻击,比特币内部将没有“降落伞”。

评论


$ \ begingroup $
实际上,可延展性并不是造成任何密码中断的“攻击”。编写时没有考虑延展性的软件将延展的交易识别为双花,因此延展节点的存在会引起混乱和拒绝服务。公吨。 Gox的问题与延展性无关。我在此处写了一篇描述情况的文章(在Gox破产之前):download.wpsoftware.net/bitcoin/malleability-faq.pdf
$ \ endgroup $
–安德鲁·珀尔斯特拉(Andrew Poelstra)
2014年3月21日在16:23

#4 楼

比特币区块链允许不变性(以及透明性)。这意味着,一旦写入数据,更改数据几乎是不切实际的。因为,不断增加新块来存储即将发生的数据并更改任何数据,因此您需要更改所有即将发生的块,从而破坏了太多的加密,同时应对了更多不切实际形成的块。