区块链的“确定性 (finality)”意味着什么?

设你登录到你的活期银行账户:你马上就能看到你的活期账户余额、你的存款、你信用卡上欠了多少钱等等信息。当你关闭应用程序时,你会有一种自信,认为这些钱是“你的”,你卡上的任何电汇或交易都会被银行和商户“结算”,且并不会有太大风险。系统“运行良好”,你信任这个系统。但是,你真的拥有这些资金吗?资产的数字化所有权 (digital ownership) 是自互联网革命以来深深扎根于我们社会的一个观念。将数字密码和电子邮箱地址作为我们身份的观念,已经被认为可以充当以前具体实物身份凭证的标准。这种数字所有权的现象不仅在本质上是具有人为性的,而且是一个高度社会化的观念。除非资产的所有权得到其他人 (即你希望与之进行交易的人) 的认可,否则资产的所有权没有任何意义。

区块链技术重塑了我们对数字所有权的理解。我们有能力掌控个人自由的关键所在,就是无需把辛苦挣来的资产存入银行,而是可以借助强大的加密技术,让我们能够通过钱包将加密货币资产存放到区块链账本中。但即便如此,我们真的拥有这些加密货币资产吗?与在传统金融体系中一样,答案是否定的。

区块链钱包的概念确实是有些用词不当。钱包只存储密钥,密钥让你有权进行价值交易,这些价值是协议中的其他人都认可的属于你的数字价值。的确,用户拥有私钥,私钥让他们能够使用区块链生态系统进行交易,但这些密匙只是一种用于解锁对区块链网络中存在的资产 (也就是去中心化账本中的条目) 进行访问的凭证。

本文将重点讨论在最低级别上,PoW 区块链协议中的所有权意味着什么,并探讨其局限性。

PoW 区块链 (比如比特币) 的力量在于其安全性会随着时间的推移而增加。每个新生成的区块都代表者一个集体竞赛的结果,即矿工使用尽可能快的机器来找到某个加密难题的答案:在这场竞争中,通常是那些支出最高且最有效率的矿工更具优势。全球成千上万的机器和挖矿设备在电力和运营成本方面投入了数千万美元,参与到比特币和其他加密货币的挖矿中以获得区块奖励。

区块链的“确定性 (finality)”意味着什么?每年的比特币挖矿能源消耗趋势图,单位 TWh (太瓦时)矿工所获得的资产 (区块奖励) 具有价值,因为创建任何一枚加密货币都需要投入大量的电力,再加上加密技术保证了加密货币的稀缺性,并且这些资产是通过每个矿工都同意参与的全球性竞争而创造出来的。矿工所挖出的每个后续区块都会对之前的区块和交易的安全性进行累加。这种工作量证明模式是比特币和以太坊等区块链网络的安全性保障的基础。

交易的结算:确定性 (finality) 默认情况下,区块链网络中的参与者都认可“难度”最大的链,或者说是其中包含最多区块的链,也就是“规范的账本”。让每个人都对该“规范的账本”达成共识,这就是区块链中数字所有权背后真正的推动因素。如果明天一个新的账本被接受为真正规范的账本,而上面没有记录你的交易或加密货币,那你就遭受损失了,也不能再参与到该系统中了,因为该系统不再承认你的“所有权”,尽管你有一个本地副本。上述情况适用于所有基于最长链规则的区块链协议 (比如当前的比特币和以太坊)。但这些协议的安全保证并不是绝对的。在这些协议中,不能保证你的交易永远不会被逆转,也不能保证比特币协议中不会出现一条新的、更长的链。也就是说,工作量证明区块链的安全性概念是概率性的。运行的时间越长,生成的区块越多,那你的交易被逆转的可能性就越小。某条工作量证明链 (如比特币) 运行的时间越长,存在于该链上的以前的交易被逆转的可能性就越低。这一概念就成为结算的确定性 (settlement finality)。

交易逆转或者链分裂属于区块链分叉这一更大的现象范畴:在区块链分叉中,网络的一部分参与者对哪个才是“规范的账本”有着不同的信念。分叉可能对数字所有权产生巨大的影响,因为它是一个高度社会化的过程,可能由于各种原因而发生。在以太坊网络中,为了升级网络和添加新特性,网络会进行预定的分叉。有时会发生有争议的分叉,即一些不同意对网络协议进行更改的人会决定说服网络中的部分参与者来分叉出一条新链 (比如比特币现金就是从比特币核心链中分离出来的一个非常有争议的分叉链)。

但是分叉并非一种非同寻常的情况。事实上,由于网络状况的原因,比特币几乎每隔一段时间就会发生分叉。由于不是每个人都可以同时看到传播的区块,两个矿工都可能会创建出完全有效的区块,但是最终只有一个区块将会获得比特币协议的奖励。

区块链网络并不完美,因为世界上任何人都可以运行一个节点:由于各种互联网连接和延迟问题,区块通常需要更长的时间才能在更大的区块链网络中进行传播,这就在各矿工对区块达成共识的时间间隔内为出现潜在的分叉提供了更多的时间。

区块链的“确定性 (finality)”意味着什么?以太坊网络最近的区块传播所需时间那些有效但不被包含在网络中大多数人接受的账本之中的区块就称为孤块 (orphan block),在以太坊网络中也称为叔块 (uncle block)。在以太坊网络中,那些创建了叔块的矿工也会获得一点奖励,这些被创建出来的叔块在全部挖掘出来的区块中占的比例叫叔块率。区块链的“确定性 (finality)”意味着什么?以太坊网络中的叔块率趋势图,其中以太坊叔块率在2017年底迎来了高峰。叔块率还可以很好地反映当时的以太坊中的网络延迟和效率低下问题。也就是说,如果区块使用过多的 gas (即使用过多的计算),那这些区块的大小将更大,传播至全网络将需要花更长的时间,进而增加了出现更多叔块的概率。在高使用率的时候,区块链网络会变得拥挤,大量的叔块会以比平时更高的比例出现。分叉和链重组的可能性就是 Coinbase 等交易所需要让你等待一段时间之后才能让你使用你接收到的币或者将你的币转移出交易所的原因,通常需要等待大约30个区块作为安全的确认时间框架,因为交易所会尽可能地确保降低用户丢失其资产所有权的可能性。

替代选择 & 相应的折衷之处因此,在比特币和以太坊中,参与者只能增加他们的交易不会随着时间的推移而被逆转的可能性,但永远不可能100%确定不会被逆转。这个概念已经融入到区块链协议本身之中,因为这依赖于区块链网络决定哪个“真正”规范的账本就是那个包含最多区块和最多工作量的账本。区块链协议就是交易可以实现确定性 (finality) 的地方吗?其中有什么折衷之处?

比特币等区块链的工作量证明的一个关键替代选择就是权益证明 (PoS):PoS 是一种由参与者锁定并“质押”一部分加密资产从而参与到全局账本的共识中来的机制。如果参与者进行了恶意行为,他们将损失全部或部分质押的资产,从而创建了一种基于惩罚的机制。以太坊一直都希望转换至权益证明机制,且在创建以太坊协议的下一个迭代方面的工作正在顺利进行。

基于权益证明机制的协议会使用一种“最长链决定规则”的变体规则,由于不需要通过消耗电力来创建一条更长的链,因此对于交易何时能够被认为是“确定性的”并不存在加密保障;权益证明协议选择的方式是,在 X 个区块生成之后,交易就永远不能被逆转了,且每个人都按协议的规则行事。

这也意味着在权益证明协议中,在每个确定性的时间到来之前 (即 X 个区块被生成之前),人们没有动力去维护或存储整个交易记录,这就是这种方式的一个主要折衷之处。而在工作量证明比特币中,新加入网络中的节点会从第一个区块开始下载并验证整个账本,有效地达成与其他的参与者相同的“真相”。

权益证明系统如何实现交易的确定性?权益证明机制 (比如以太坊的 Casper FFG) 依赖于由一组验证者进行的基于抵押加权的投票,以此来决定何时在主链上对特定的区块系列进行敲定。也就是说,网络中的节点有一个内置的协议,如果满足某些条件,则该协议会在主链达成共识的时间到来之前忽视这些区块。通常,这个投票的阈值是符合拜占庭容错 (BFT) 的,从而确保至少有2/3的验证者在特定的时间内进行了投票,以此作为安全措施。区块链的“确定性 (finality)”意味着什么?在基于权益证明的模式中存在“确定性检查点 (finality checkpoints)”,在网络运行很长一段时间之后,新加入进来的节点只需要从最近被敲定的检查点开始验证账本的状态即可,无需从第一个检查点开始验证。也就是说,如果权益证明协议规定了每1,000个区块生成 (其中每个区块都获得了足够的投票数) 就设置一个检查点,这些区块中的交易就无法再被逆转了,那么新节点只需要接受从这个检查点开始的账本“真相”即可,没有必要关注之前的其他区块。这种情况下,对全局状态的验证变得主观多于客观。事实上,Vitalik Buterin 将权益证明的这种性质称为弱主观性 (weak subjectivity),见下图:

区块链的“确定性 (finality)”意味着什么?

这对于普通用户来说意味着什么?

对于与区块链进行交互的普通用户来说,区块链上的资产只是账本上的记录,这与当前存储在银行中的法币资产的所有权运作的方式类似。对于存储在银行中的法币资产,你对你的资金的所有权的存在因为在银行的中心化数据库中有记录你的余额的证明。在区块链中,用户对自己的加密资产拥有所有权,只是因为协议中的大多数人都认可该所有权是“规范账本”的一部分。如果明天该条链被攻击了并发生了深度区块重组,使你的交易被排除在了“规范账本”之外,那你的私钥和钱包都没用了。即便你“拥有”你的加密资产,但协议的大多数人并不认可这些资产。区块链上的数字所有权风险与其底层协议的安全缺陷称正比关系,协议的安全风险越大,数字所有权的风险也就越大。

参考链接:

https://www.tokendaily.co/blog/an-introduction-to-…

作者 | Raul Jordan

编译 | Jhonny