想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!!
比特币,这个建立在开放P2P(点对点)网络结构之上的货币(文献9),继续享受人们的追捧。比特币系统是“无许可的”——任何人都可以选择加入网络,转账,甚至参与授权交易。比特币安全的关键之处在于它能够抵御攻击者以多重虚假身份加入系统的操纵行为。毕竟,任何人都可以下载比特币的源代码,成为一个比特币节点,并根据需要为网络添加尽可能多的计算机,而无需向其他人表明其身份。为了解决这个问题,该协议要求加入系统的节点展示出 “工作量证明”:付出算力破解密码学难题以获得参与比特币协议的资格。
从事这种“工作量证明”的节点被称为矿工。系统向矿工奖励比特币作为工作量的“证明”,从而也为这样的“算力投资”设定了“激励机制”。
通过在自己电脑上运行软件就可以获利(比特币)——这带来的第一个也是最明显的影响是:一旦比特币具有足够的价值,人们就开始大肆挖矿。事实上,为了增强挖矿力度,大部分挖矿工作很快都转移到专用的计算机农场。这些计算机农场使用定制工具来实现其目的:开始,GPU被用于大规模并行工挖矿;之后,特需设计的芯片——专门针对比特币核心协议计算特征而量身定制的芯片——ASICs(专用集成电路)开始出现(在挖矿时, ASICs机器比普通PC快一百万倍)。比特币网络迅速发展并变得更加安全,为了获利的竞争也变得更加激烈(利益由比特币协议周期性放出)。
比特币的安全性和经济性是相互作用的。在讨论这个主题之前,让我们快速回顾协议本身的规则——正是这些规则产生了这种复杂的相互作用。
1 比特币协议快速入门(A Quick Primer on the Bitcoin Protocol)
持有比特币并希望转账的用户可以将交易信息(通过他们安装在计算机或智能手机上的软件)发送到比特币网络上的一个节点。比特币网络中的活跃节点从用户那里收集这些交易信息并将它们分发到网络中的对等节点——分发方式是每个节点仅通知那些与请求转账所关联的节点。交易信息被批量的汇聚,称为区块,而区块又被链接在一起形成区块链,从而形成所有被接受的比特币交易记录。区块链中的每个区块都通过一个加密哈希值(实际上也是前驱区块的唯一标识符)引用其前驱区块。比特币网络中的每个节点都保存着完整的区块链副本。区块创建的过程被称为挖矿,挖矿的作用之一相当于新币的印刷,也就是所谓的造币。
比特币的协议规则使区块的创建非常困难:只有当区块包含密码学难题的答案时,才被认为是合法的。作为报酬,每当矿工成功创建区块时,他们都会得到比特币奖励。报酬由两部分组成:一部分是新造比特币,一部分是从区块所包含的交易中抽取的挖矿手续费。目前的造币率是12.5比特币每区块,这一数额大约每四年减半。随着这一数额的减少,比特币开始越来越依赖挖矿手续费来支付矿工。
因此比特币运行的关键是让所有节点就区块链的内容(区块链记录系统内的所有转账信息)达成一致。因此,区块更新会迅速传播到网络中的所有节点。不过,节点有时可能会收到两个不同版本的区块链。例如,如果两个节点同时创建了一个区块,则它们可能会持有区块链的两个不同更新(链的增长chang)。这些区块可能包含不同的支付操作,因此比特币系统必须决定要接受哪个版本。
比特币协议规定每个节点只接受最长链作为交易事件的正确版本(主链),如图1所示(更确切地说,节点选择包含最多累积计算工作的链作为主链,这通常也是最长链)。这条著名的“最长链规则”为比特币提供了安全性。一个攻击者——如果试图愚弄其他节点,让他们相信系统发生了不同的支付事件——需要产生比网络其余部分更长的区块链。由于“工作量证明”是一个区块一个区块的创建出来的,“产生更长区块链”的任务将是异乎寻常的困难。事实上,只要攻击者的计算能力低于整个比特币网络的总和,区块链中的区块和交易将越来越难以取代(因为攻击者和整个比特币网络的链一起增长chang)。