比特币的秘密(三):海量的交易 - 打点钱包

比特币的秘密(三):海量的交易
2020.08.20

作者:矿工哲亮

回顾

在上一篇文章比特币的秘密(二)工作量证明中,我阐述了比特币工作量证明信号的基础,接下来我们谈谈为什么比特币技术能够具备承载海量交易的能力。

 

概要

 

 

交易链而非区块链

在白皮书的第二章「交易」中,比特币被定义为数字签名形成的链条。每一次比特币的转移,由对交易数据散列的数字签名来控制。收款人可以通过验证这个签名的链来验证币的所有权。

 

我们把每一次的交易事务看作是账本的条目,那么我们更加关注的是账本条目信息本身,而不太关注于账本写在什么地方。唯一可能需要在意的,是不同版本账本之间的矛盾之处。这个不同版本的账本,我们可以通过从矿工处获得区块头数据的方式构造对区块链账本的全局视角。

 

工作量证明

比特币的工作量证明,是解决账本矛盾的一种做法。在白皮书的第四章中,描述了工作量证明的方法,就不再阐述。带有不同工作量证明信号的账本,可以通过对区块头的验证,以极低的代价看到其背后的工作量证明的数量,来让普通的用户在不借助第三方的情况下,了解网络中的账本背后的信号强度。

 

在用户检测到了不同的账本之后,需要注意其中可能产生的冲突,但如果自己关心的交易事务被不同的账本所接受,则并不会收到不同账本记账冲突的影响。如果用户专注于交易链而不是区块链的账本记录,则其会在刚开始的时候同时追踪竞争的账本,但最终因为成本压力会选择一条诚实的账本记录。

 

节点运营商需要向其他人证明自己在记账上是诚实的,在偶尔出现的区块竞争,节点运营商自认为诚实记账,除非抓到了对方不诚实的证据,从而放弃在算力较小的链上,在算力最大的链上继续投票挖矿竞争。

 

默克尔树

比特币的区块中使用了默克尔树,在我们获取到一个交易事务和对应的默克尔证明之后,任何用户都将可以独立的验证特定的交易是否被包含在区块中。默克尔证明的安全性是等同于一个 P2PKH 中比特币交易地址的安全性的。我们无法保持一个由工作量证明保证的区块头信息不变的情况且在合理的成本范围内,由人工构造一个默克尔路径,使其等同于区块头中包含的默克尔根信息。因此我们可以认为,给定了一个区块头信息,默克尔证明,以及一个交易,我们将可以确定的知道这个交易是否在区块中,而不需要其他的额外信息。随着区块中的交易数量增加,只有当交易数量翻倍的时候,默克尔树将更深一层,在验证的时候需要多提供一个哈希和多计算一次哈希。这样,单笔交易是否包含在区块中的验证成本,将仅和这笔交易有关,和区块大小关系非常小。

 

无论区块中包含多少交易,用户想要确认某一笔交易被账本记录,只需要通过点对点网络上获得的区块头数据,来获得对区块链的全局视角,又通过默克尔证明来确认这一笔交易可以被每一个可能的区块所包括。

 

当交易被所有的账本所容纳,我们将可以极大地确信这笔交易的安全性。而当交易被所有有能力记账的节点运营商所接收,则我们也可以极大地确信这笔交易会出现在下一个被这些记账员记录的区块链账本中。

 

节点运营商之间的竞争和合作

在节点运营商之间,并不仅仅在竞争哪个节点运营商获得了更多的算力运营商的支持,可以更快的发现哈希碰撞,更在于让自己打包的区块,被其他的节点运营商所接受。节点运营商接受一个区块的标志,是其愿意在这个区块之上构建自己的新的区块模板,并把模板交给算力运营商进行计算。

 

海量的交易,可能给节点运营商带来巨大的收益。在网络上持续不断有大量的新交易被创建时,节点运营商理应在验证了区块合法之后,在这个区块之上构建并和算力运营商合作尝试打包新的区块。

 

但这海量的手续费由记账的那个节点运营商全部获取,如果其他的节点运营商判断这部分交易的手续费自己也应该分走一部分,那么完全可以通过拒绝这个区块的方式,将这部分的交易自己打包。这样的话,比特币的区块将不成为链,而会是松散的多分叉,我们可以把这种结构,和有向无环图(DAG)进行对比。但这些节点运营商要考虑到整个比特币的共识体系,是否其他的节点运营商,也会用同样的逻辑。如果其他的节点运营商接受了这个区块,而自己却拒绝了,那么会导致自己工作在一条孤立的区块链分支上,是否可以得到用户的认可。如果区块不被认可,那么在这个被孤立的分支上的投入将一无所获。

 

对于节点运营商而言,会判断大多数的其余节点运营商的策略,从而选择一个从长期来看更有可能被多数矿工和其他用户接受的策略来打包交易,包括拒绝看起来不合理的包含超大量私有交易的区块,包括猜测网络平均处理能力下可以容纳的交易上限等。最终比特币网络在节点运营商之间的竞争下得到安全性的提升和性能的不断发展。

 

更多的关于比特币中节点运营商的竞争,将从一个节点运营商的视角,在下一个章节中详细阐述。

 

 

 

 


 

■ ■■■■

 

商务合作

(WeChat ID:Mempool-q)

(Telegram:@Elvira1106

 

 

客户服务

(WeChat ID:Dot_Wallet)

(Telegram:@DotWallet2020

 

 

■ ■■■■

 

获取更多信息请访问

 

▼▼▼

 

官网:www.dotwallet.com

新浪微博: @打点钱包DotWallet

telegram:@DotWallet

Twitter:@wallet_dot