购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

延伸阅读:比特币运行机制

2019年10月28日,《人民日报》发文称,区块链不等于比特币,比特币只是区块链技术的一种应用。那么比特币的运行机制又是如何呢?以Alice与Bob的交易为例。

一、特有技术

比特币哈希算法,指的是将任意长度的输入(如文本等信息),通过一定的规则加以运算,生成一个固定长度字符串,而输出的字符串便是该输入的哈希值。一般而言,成熟的哈希算法具备以下4个特征。

(1)正向快速,是指对于任一给定的数据,区块链哈希算法可以快速得到哈希值。

(2)输入敏感,是指区块链哈希算法对于输入信息的敏感性较强,即当输入信息发生任何微小变化,便会导致输出哈希值有巨大的差别。

(3)逆向困难,是指区块链哈希算法无法在相对短时间内实现根据哈希值求解原始输入值。

(4)强抗碰撞性,是指不同的输入值几乎不能计算出相同的哈希值。

比特币哈希运算运行原理能够有效保障区块链数据的不可篡改。比特币网络中任一区块数据信息经由哈希算法便能得到一个哈希值,而该哈希值无法快速推演出原始数据信息。因此,比特币哈希值能够唯一地、准确地识别每一区块,任何节点对于任一区块链信息进行哈希运算均可独立获取相应哈希值。另外,每一个区块头都包含上一个区块数据信息的哈希值,实现区块的串联即区块链,保证比特币的不可篡改。

二、运行过程

1.身份验证

Alice向Bob发送消息“Hello Bob”,首先使用Bob提供的公钥对信息进行加密形成密文,Bob使用自己的私钥对密文进行解密,解密后的结果如果是“Hello Bob”,则证明这个消息是正确的。此外,区块链还提供了签名机制,Alice可以用自己的私钥对消息进行签名,Bob通过Alice提供的公钥进行验签,从而证明这个消息的发送者是Alice,如图1-4所示。

图1-4 公私钥验证过程

2.交易确认

在比特币交易网络中,货币的所有权是通过验证历史交易信息来核实的。例如,Alice要发送1个BTC(比特币)给Bob,Alice必须援引之前收到这1个或更多比特币的历史交易信息,这些被援引的交易记录称作“进账”。Bob会查看那些进账,以确保Alice是真正的接收者,并确保进账数额为1个BTC或更多。一旦一笔交易被使用过一次,该笔交易会被认为是已消费,且不能被再次使用。

3.交易记录

如果Alice的账户通过验证,则该笔交易为合法交易,Bob会将交易信息保存在事务池(或内存池)中并广播给其他节点,其他节点接收到交易信息后也进行同样的校验操作。当某一个节点获得记账权后(基于加密哈希进行的随机猜测),它会将交易纳入区块,在区块上加盖时间戳并记录到自己维护的区块链中,然后将该区块进行全网广播;其他节点接到广播后,也将区块记录到各自维护的区块链中;此时Alice给Bob的转账完成,交易信息被记录到区块链上,无法更改。需要注意的是,我们所说的全网广播,实际上只要大部分节点能收到就可以了。区块链提供了系统的容错能力,那些没有收到的节点可以通过下载的方式获取到缺失的区块。

4.双重支付和分叉

Alice账户有1个未消费的BTC,Alice将这个BTC同时发送给了Bob和Tom,这被称为“双重支付”或“双花”。如果两笔交易被先后验证,例如,给Bob的交易通过验证,那么Tom的交易就会验证失败,反之亦然,验证失败的交易会被丢弃。如果两笔交易被同时验证,且都被认为是有效交易,那么在接入区块链时就会暂时出现分叉情况,如图1-5所示。

图1-5 区块链分叉

之后的区块如果认同哪一个区块,就会在哪一个区块后面延续。比特币规定选择最长的那条链进行扩展。所以当再有新的区块加入时会沿着最长的链延续,较短的那条链上的区块将被抛弃,对应的交易将失效,失效的交易将承担相应的损失。

为了避免这种情况发生,需要等待至少6个区块都承认此区块后,再确认交易完成。这主要是因为,如果经过6次确认之后再返回去修改之前已经被确认过的区块,则必须推翻之前6个区块的记录,这其实是很难的。因为获得确认数越多,就需要越多的算力去修改,因此也越难被修改。除非拥有全网51%以上的算力,否则这是不可能实现的。这也是比特币区块链交易形成的“等待六次确认”原则。 /yn62vToWBcM7tE+AOPCny1xfGjzWQQv5ajawUDlIWtxj0//cBi3zE+Uc25V4Fp8

点击中间区域
呼出菜单
上一章
目录
下一章
×