在区块链中寻找尼莫,了解达成共识的方法
在区块链中寻找尼莫,了解达成共识的方法
原文:https://medium.com/hackernoon/finding-nemo-a-pow-approach-to-consensus-7f42156e005c

Nemo, find it for a bounty !
标题可能是诱饵,但我向你保证,文章的其余部分有一些突出的要点,外行人可以理解基于 POW 的共识。我们将看看区块链空间中各种新共识机制的发展,以及为什么它是现在区块链发展生态系统中最突出的主题。为什么公司应该在从涌现的过多选项中委托区块链之前理解共识。
在本文中,我们将首先研究最突出的共识机制工作证明(PoW)。PoW 几乎被用于所有的生产级系统,比如比特币和以太坊。
我们将探索工作证明的所有优点,看看它如何有助于达成共识,避免重复支出。让我们开始吧…
海底总动员
工作共识证明要求矿工找到(实际计算)一个值来实现共识。让我们称这个值为 Nemo …
输入(I) + Nemo (N) =输出(O)
尼莫,在此称为 n。
工作机制的证明涉及寻找 N,使得当它被添加到事务块(输入)时,它产生已知的输出。
当然,除了打包在一个块中的事务之外,输入还包含其他内容,例如前一个块的散列、nonce 等。但是我们不要在这里深入讨论实现细节。输入中的事务由挖掘器根据它们的处理费进行挑选。
输出是一个散列(带有一些属性、前导零等)。输出的这种性质可以改变,以增加或减少网络中的挖掘难度。面临的挑战是找到 N(而且要快,因为矿工们都在竞争),当 N 加到输入上时,就给出了输出。这个 N 的生成很难,需要计算机花费大量的计算能力才能得出正确的 N。
你可以说矿工的计算机为得出一个正确的 n 做了大量的工作。因为这项工作,公共区块链据说在研究 工作证明 (PoW)机制。
矿工做这项工作会得到奖金或费用的补偿。
该系统被设计成在计算上很难生成 N,但是给定一个 N 和一个事务块,很容易检查(输入+ N)是否真的等于输出。
一旦矿工成功生成 N,它就向网络广播这个工作证明(希望赢得采矿奖金)。假设矿工 A 找到了尼莫,而矿工 B、矿工 C 和矿工 D 还在努力寻找他们的尼莫。他们会从 A 那里得到一个通知,通知中有一个包含事务和 Nemo(N)的块。矿工 B,C,D 可以快速检查使用这个 N 是否产生 o。
如果它确实正确地产生输出,他们将它添加到他们的本地区块链(同意 A 的交易版本,从而达成共识)。
这使我们在 4 个分散的非信任节点之间达成共识。该逻辑可以外推至任意数量的节点。
但是双倍消费呢?
一个关于连锁重组的丑陋扭曲的好与坏的故事。
让我们通过一个虚构好先生和坏先生的例子来理解权力区块链是如何处理双重支出的。
坏先生提议购买好先生持有的一家公司的股票。他们同意,古德先生将接受比特币(或乙醚)的支付,一旦他这样做,他将把这些股票的数字所有权转让给巴德先生。
坏人在一次交易中给好人送去 200 个比特币,并在此过程中掏空了他的钱包。好人不知道的是,坏人也给丑人寄了同样的 200 个比特币,丑人是坏人的别名。
现在,如果好先生聪明的话,他会等待坏——好交易在区块链中永久存在。通常,在包含他的交易的块之后,他必须等待至少 12 个新块(块的数量根据比特币网络的当前散列率而变化),以确保他不会受到链重组的影响。在那之后,他就可以放心地把股份送给 Bad 先生了。在这种情况下,Bad 先生与 Ugly 先生(化名为自己)的交易将被网络拒绝。
既然古德先生被证明是天真的。他看到 Bad 先生给他发送了所需的比特币,他立即将这些股份发送给 Bad 先生。如果坏先生稍微幸运一点,他与丑先生(他自己)的交易将首先被网络获得并永久化,而他与好先生的交易将被连锁重组拒绝。
实际上,他没有花一分钱,现在他拥有古德先生的所有股份。所以他可以双倍消费。
该网络试图在尽力而为的基础上停止双重消费,并让用户承担责任,直到他们的交易在比特币中足够旧并变得不可逆转,然后他们才能通过网络转移任何基于支付的资产。
51%攻击的情况—
如果坏先生不想靠运气去骗好先生。他听说过大约 51%的攻击,并且知道在网络中拥有大部分散列能力的任何人都能够撤销交易或双倍消费。他买下了比特币网络哈希力量 51%的股份,现在可以轻易地欺骗好人先生或任何人。
那么为什么他或其他人不这么做呢?
获得 51%的网络控制权是极其昂贵的。
您只能冲销最近的交易。重写稍微旧一点的事务在计算上仍然非常困难,几乎不可能。
最近的交易值应该非常大,以至于逆转它证明这样的网络恶意接管是合理的。
一旦网络遭到破坏,基础货币就失去了价值。即使你可以购买大部分的哈希能力,你也不会买,因为参与者会对系统的公平性失去信心,基础货币价值也会下跌。
你购买的 51%的网络很快就会变得一文不值。
我希望你能看到战俘背后简单的光辉,为此向中本聪致敬。
替代共识机制取代 POW
几乎所有新的和突出的区块链实现都提出了自己的共识机制。以太坊要出 Casper,基于 POS(利害关系证明)的共识,厄里斯有 Tendermint,Hyperledger Fabric 有 PBFT —【实用拜占庭容错】,Hyperledger 锯齿湖有 PoET【经过时间证明】有 SGX(软件卫士扩展)等等。但是为什么呢?
PoW 的某些缺点:
1.采矿需要电力,并使用昂贵的硬件。
2.处理能力集中化问题,尤其是在私有或联盟链中。
3.如果网络中只有几个已知方,在私有网络中挖掘以达成共识是没有意义的。
4.在私有区块链中,一个节点总是可以带来外部处理能力,并逆转更高价值的交易。
接下来,在这些系列中,我们将查看一些备选的共识机制,并确定如何为您的用例选择正确的区块链。
如果你有兴趣,这里的是我在这个系列的上一篇文章。
参考资料:
【https://bitcoin.org/bitcoin.pdf
https://tendermint.com/static/docs/tendermint.pdf
http://www.pmg.lcs.mit.edu/papers/osdi99.pdf
https://github . com/hyperledger-archives/fabric/wiki/Next-Consensus-Architecture-Proposal
[## 采矿-以太坊家园 0.1 文件
采矿一词起源于加密货币的黄金类比上下文。黄金或贵金属是…
ethdocs.org](http://ethdocs.org/en/latest/mining.html)