区块链: 技术驱动金融 - 第2章 比特币如何做到去中心化 (6)

    比特币的第二个奖励机制称为交易费。任何交易的制造者都可以选择让交易的输出值比输入值小第一个创建区块并把这个交易放进区块链的人可以获得这个差额,作为交易费。如果你是一个节点,正在创建一个包含200笔交易的区块,那这200交易的交易费将被付到你放在区块内的那个属于你自己的地址。目前,这些交易费是完全自愿的,因为现在还有区块奖励。但是,随着区块奖励逐渐发完,这些交易费就变得越来越重要,并且是必须的,因为用户需要通过交易费来保障合理的服务质量。这个是很好理解的,例如Alice有一笔交易,其输出值等于输入值,即没有交易费,那么显然的,Bob在创建区块时,就不会把这笔交易打包进区块,更极端的,后续所有节点在创建区块时,都不愿意把这笔交易进行打包,那么Alice的交易就无法得到确认。

    尽管目前交易费是完全自愿的,但是某种程度来说,交易费已经开始了,但目前还不清楚这个系统会如何演化,这取决于还并不完善的博弈论的研究与发展,这也是比特币一个很有趣的研究领域

挖矿与工作量证明

    我们已经看到了比特币的共识机制是如何抵抗某些攻击,以及初步了解了比特币的奖励机制如何激励节点倾向于做出诚实行动,但是仍然有几个问题需要解决。

第一,我们需要相信我们能够随机选择一个节点。

第二,由奖励产生的新问题:如果大家都想来分一杯羹,争相获取这些奖励,整个系统会变得不稳定。

第三,第二个问题复杂版本:可能会有攻击者创建大量的女巫节点来尝试颠覆整个共识过程。

    事实证明,以上问题是相互联系的,并且都有一个相同的解决方法——工作量证明(proof of work,POW)工作量证明的核心理念是:把随机选择节点改为根据节点占有某种资源的比例来选取节点,并且这种资源是没有人可以垄断的如果这个资源是计算能力,我们称之为工作量证明。如果这个资源是某种币的拥有量,我们称之为权益证明(proof of stake,POS)

    根据计算能力来选择节点到底是什么意思?换一个角度理解,我们允许节点用它们的计算能力来互相竞争,其导致的结果是计算能力的比例决定了节点被自动选中的概率

    比特币使用哈希函数解谜来证明工作量。任何一个提议并创建区块的节点要想创建下一个区块,这个节点必须找到一个临时随机数nonce,使得下面的式子成立:

区块链: 技术驱动金融 - 第2章 比特币如何做到去中心化

这个式子的含义是:将临时随机数、前序区块的哈希值、要打包进这个区块的交易列表,连接成一整个字符串,作为哈希函数的输入,通过哈希计算得到的输出正好落在某个目标区间内。这就表明找到了一个符合条件的临时随机数

    当一个节点找到了这样一个临时随机数,那么它就把这个临时随机数放进区块中,并把区块广播出去。值得注意的是,如果哈希函数具有第1章中描述的谜题友好性,那唯一解谜题的方法就是穷举法,即尝试足够多的随机数,直到成功为止

    用这种哈希函数解谜的工作量证明方法,我们可以完全舍弃随机选取节点的方法。一旦某个节点找到了一个随机数,那么它就可以创建并广播下一个区块。这就是比特币系统实现完全去中心化的方式。

难于计算

    哈希谜题有三个重要的特性,第一个特性是要有一定的难度不停尝试解哈希谜题的过程,就是我们所说的比特币挖矿,参与挖矿的节点被称为矿工。尽管技术上每个人都可以称为矿工,但是由于挖矿的高成本导致了挖矿生态系统要消耗大量的能源。因此,并不是每个节点都是矿工。

可参数化成本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpyjx.html