比特币技术评论

作者:扎克-赫斯, Zack Hess

https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/bitcoin.md


amoveo-docs/bitcoin.md at master - zack-bitcoin/amoveo-docs

比特币是目前最成功的区块链,已经存在。鉴于它的成功,我们为什么还要费心研究比特币的安全模式呢?

比特币最大化者的动机 #

像所有的软件一样,比特币确实需要维护和更新以保持与互联网其他部分的兼容。鉴于我们将需要做出某种改变,我们希望有一些关于比特币安全的模型。这样,我们可以检查我们的改变是否会破坏安全模型。这可以防止比特币在我们更新时经常被破坏。

替代币者的动机 #

我们都喜欢把我们的项目和比特币相提并论,试图说明为什么我们的项目也是安全的。但这些比较真的有效吗?为了确定,我们需要一个比特币的安全模型。

投资者的动机 #

如果我们知道为什么比特币是安全的,这可以帮助我们知道哪些区块链项目有机会或没有机会与比特币竞争。帮助你避免不良投资。如果我们设法证明比特币是不安全的,这将是投资者尽快了解的关键信息。所以我们可以开始弄清楚比特币是否会改变为安全的,或者其他区块链是否会取代它。如果事实证明区块链不能工作,最好是尽早了解这一点,而不是在所有区块链的价值都消失之后。

比特币的安全模型会是什么样子? #

这将是一个工具,以便给定任何攻击比特币的策略的例子,我们可以用这个工具来计算出攻击会如何失败。

  1. 它需要解决拜占庭将军的问题。这基本上意味着,我们最终都能就新的共识状态达成一致。因此,有一个版本的历史是我们同意已经发生的。
  2. 它需要解决双花问题。这意味着它需要具有最终性。如果你等待足够的时间,那么导致当前共识状态的历史就是永久性的。
  3. 它需要解决软分叉贿赂的问题。有一个证明,对区块链共识规则的任何修改,完全可以通过制定复杂的审查规则来完成。因此,这意味着一个能够审查任意txs的攻击者,他们可以改变任何关于区块链和谁有什么钱的问题。

博弈论中有一个观点叫做 “公地悲剧 “或 “市场失效”。这基本上意味着,你可以向大量的人支付少量的钱作为贿赂,而他们会做出决定,导致价值远远超过贿赂总额的东西被破坏。 因此,我们担心的攻击,是攻击者会使用小的贿赂,使用户或矿工做出决定,导致某些TXS被审查,造成软分叉更新,让攻击者偷取大量比特币。

解决(3)的方法不可能涉及撤销许多历史。如果我们改写历史,那么我们就会使自己受到(2)的影响。

区块链BFT模型 #

这种模式是具有计算机科学或数据库背景的人的最爱。 为股权证明PoS区块链工作的人更喜欢这种模式,因为有可能做出一个执行这种安全模式的PoS区块链。例如,Cosmos和Ethereum社区使用这个模型来描述区块链的安全性。

BFT模式基本上归结为找到一种方法来执行这两条规则。

  • 安全:坏事不会发生
  • 活力:好事终将发生

BFT模型是基于数据库的研究,只适用于显示节点都同意当前状态。

我们可以利用重写历史很昂贵的事实,扩展BFT模型来解决(2)。

解释了:1,2 没有解释: 3

价值最大化模式 #

这种模型是具有经济学、统计学和货币政策理论背景的人的最爱。这也是很多比特币最大化者使用的模型。

在这个模型中,我们说一个最优版本的比特币是一个总是做出导致每个BTC价格更高的决策的比特币,我们试图证明我们今天使用的比特币是这个最优版本的一个足够好的近似。

因此,在这个模型中,证明比特币是安全的,就等于证明我们同意的历史版本是导致每个BTC最高价格的历史版本。

这个模型有一个内在的漏洞:如果攻击者可以可信地承诺以我们是否向他们支付贿赂为条件来破坏N个价值,那么这意味着我们的模型将要求我们愿意支付N-1个价值作为贿赂来防止攻击者破坏N个价值。

你可能认为,通过制定一些有限的例外列表来处理可信的提交销毁,可以挽救这个模型,但是这个模型有一个根本问题,是任何数量的例外都无法解决的。这个模型是依赖于循环逻辑的。

一个我们无法控制的事实是这样的。如果我们有共识,认为一个版本的历史是有效的,那么这一定是最有价值的历史版本。其他每个版本都没有价值,因为没有人会接受它的付款,因为我们有共识,不接受它的付款。

因此,如果我们试图将我们的共识机制定义为遵循最有价值的选择的机制,这就是一个循环的定义。

任何攻击者如果能够可信地承诺强迫一个版本的历史更有价值,网络的其他部分就会跟着一起做,并使这个版本的历史成为官方版本。

有一个循环的定义打破了逻辑的规则,它使我们无法用理性来理解这个模型。对于比特币的安全来说,这是一个不合理的模型。既然它是不合理的,你就可以证明这个模型的矛盾之处。你可以证明PoS有效,你可以证明PoS无效,你可以证明1=2。

Futarchy模式 #


futarchy模型与价值最大化模型类似,但有一个关键区别。我们不是问哪个版本的历史现在更有价值,而是有条件地问,如果我们都能同意哪个版本的历史是有效的历史,哪个版本的历史会更有价值?

价值最大化模型可能会忽略一个版本的历史,因为它毫无价值。但未来主义模式会接受它,因为它现在没有价值并不重要。重要的是在我们接受它之后,它将有多大价值。

期货模型解决了价值最大化模型中的循环推理问题。

但是,futarchy模式有一个很大的缺点。我们只有在已经有一个现有的共识机制来执行合同的情况下才能建立futarchy合同。

futarchy模型假设我们有可能执行futarchy合约,以便进行必要的测量,知道哪个版本的历史会更有价值。但是,我们只有在已经有一个共识机制让我们就futarchy合约的状态达成一致的情况下,才能强制执行futarchy合约。

futarchy模型是一种扩展现有共识机制的方式,以实现对更多数据的共识,但你不能用它来引导初始共识机制。

区块链安全的Futarchy模型是一个流行的模型,用于更新现有区块链中的规则 http://www.truthcoin.info/blog/fork-futures/ 这种安全模式受到研究区块链预言机(oracle)的人的欢迎,因为预言机(oracle)是区块链对更多数据的共识的延伸。

这种安全模型是区块链可扩展性战略的一个常见工具。它是一种扩展一个区块链的共识的方式,以执行侧链或分片上的规则。它是一种对你没有亲自下载的数据实现安全保证的方式。通常他们使用术语 “欺诈证明 “来描述使用这种安全模型来实现可扩展性目标的策略http://www.truthcoin.info/blog/fraud-proofs/

无链模式 #

为了推出新的区块链,并进行硬分叉,必须存在一些任何区块链外部的共识机制,使我们能够就一些事实达成一致。

这是解决以太坊中著名的DAO黑客事件的模式。由于钱被锁了足够长的时间,网络有时间考虑情况,并就修复它的硬性更新达成一致。

这种共识机制在空间上是有限的。我们只能同时考虑这么多问题。这种共识机制在时间上是有限的。我们需要大量的时间来充分考虑一个问题,然后才能回答它。

这就是Amoveo的预言机(oracle)模型。由于预言机(oracle)中的钱被锁定了足够长的时间,我们可以做一个硬更新,迫使预言机(oracle)向诚实的方向解决。

桶中的螃蟹模型 #

这种模式对有数学或生物学背景的人更有利。

不可能在一个稳定的共识机制之上再叠加一个稳定的共识机制。一层的稳定程度只能是前一层的不稳定程度。

我将用矛盾证明来说明这一点。想象一下,有两个不同的稳定的共识机制。A是第一个,B是建立在上面的。想象一下,A和B想做出一个相互矛盾的决定。由于A是稳定的,A会成功。因为B是稳定的,所以B会成功。但他们不可能都成功,因为决定是矛盾的。如果乙对国家的某些部分有控制权,那么甲必然不能控制国家的那部分。如果A对某些部分有控制权,那么B就必然不能对该部分有控制权。因此,这表明不可能有两个不同的稳定的共识机制分层在一起。

如果矿工/验证人无法合作控制部分共识状态,那么共识机制只能对部分共识状态提供安全保障。 在这个模型中,证明比特币是安全的,就等于证明矿工不能互相信任,不能合作。他们的关系需要是对抗性的。即使矿工们可以进入其他智能合约平台,在那里他们可以一起制定任意的合约,但矿工们仍然需要不可能合作。

解释了:1, 2, 3

如果有一个人实际控制了大部分的权力,那么桶里的螃蟹模型就会崩溃。由于一个人总是能够与自己协调,所以没有办法阻止他控制共识。一个实际控制了大部分hashpower的攻击者可以窃取任何BTC,并改变任何定义比特币的共识规则。

桶里的螃蟹模型在PoS区块链社区非常不受欢迎,因为我们可以用这个模型来证明PoS不能工作 proof_of_stake.md