如果公有区块链要想获得成功——无论是被用作货币,智能合约还是其他某些东西——它就需要一种能够扩展的共识算法。
尽管开发者正在竞相开发一种这样的系统,不过最近一位杰出学者的设计可能会成为这场长期探索中取得的一个标志性进展。这种设计被称为“algorand“,其创建者是来自麻省理工学院(MIT)的Silvio Micali教授。
Micali是一位密码学家和计算机理论学家,他因在伪随机数和零知识证明领域的成就而出名。(零知识证明是zk-SNARKS的基础,匿名区块链项目Zcash使用的就是零知识证明)。Micali还是图灵奖的获得者(该奖项有“计算机界的诺贝尔奖”之称)。
不过,除了拥有光彩照人的奖励证书,Mical的技术同样非常有前途。Algorand是权益证明(POS)机制的一种变形,POS使用了密码技术来随机选择那些负责将下一个区块(或交易)添加到区块链中的参与者。
Micali在2013年第一次开始了解比特币,他解释说比特币的协议设计令他印象深刻,但也渴望对这种协议中的一些他认为需要更多研究的地方进行改进。
Micali告诉Coindesk说:
“我真的对比特币协议非常着迷。但我同样要说的是,“如果让我来设计比特币的共识机制,我会使用一种完全不同的方式。”
如果成功,Micali相信他的系统能够轻松处理上百万节点——这将为区块链目前面临的最大的问题提供一种解决方案。
靠自己的运气
对于比特币来说,矿工需要通过竞争来解决一种加密谜团。获胜的矿工可以获得下一个区块,并赢得区块奖励。
但是比特币的工作量证明(PoW)机制(同样又被称为“中本聪共识”)会导致极高的能源消耗。一些人说这还可能导致比特币挖矿的中心化,也就是说可能会导致只有少数大型实体才能获得新的比特币。
为了实现这种分配方式的民主化,algorand使用了一种被Micali称为“加密抽签”的方法来选择参与者来创建和验证区块(若是在一个拥有百万级用户的系统中,参与者的数量也许可以达到数千)。
尽管大多数POS系统都依赖于随机性,不过algorand是不同的,因为你可以通过自己的计算机进行抽签,从而靠自己的运气来决定能否成为一名幸运的参与者。这种抽签的方法基于前一个区块,选择过程是自动的(不涉及到信息交换)并且完全随机。
Micali的这种想法来自于古雅典时代,当时的官员是通过一种抽签流程来选出的。(本质上就是把一些人的名字放到一个大帽子中,然后随机抽出几个。)
通过使用密码抽签,理论上algorand可扩展需求,同时还能为安全性和速度带来好处。
一种公平且民主的系统
因为Algorand对计算的要求几乎微不足道,任何人都能在自己的笔记本后台运行这种系统。尽管比特币存在用户分级(进行交易的消费者和搜索区块的矿工),Algorand并没有这样的区别。
Algorand的愿景就是所有人都拥有相同网络访问权限。
与其他POS系统相似,你被选中的概率基于你持有或预留的币的数量(我们把它称为algos),你拥有的algos越多,那么你被选中的概率就越大。
一旦你知道自己被选中成为申请人(proposer),那么就可以创建一个区块,然后连同一种哈希证明(一种随机号码,数字签名可以很容易对其进行验证)一起广播到网络上,本质上就是告诉别人,“这是我的区块,这是我赢得创建这个区块的权利的证明。”
拥有最小哈希证明的proposer(仍旧是随机抽取)将会成为下一个候选区块的创建者。
Algorand的下一步就是验证候选区块以及——在出现一个区块proposer提交两个或更多区块时——确保区块链不会分叉。
为此,Micali选择了一种用了几十年的协议——拜占庭协议。
向分叉说拜拜
中本聪共识的一个副产品就是网络分叉的可能性,当两个矿工几乎同时解决网络谜团时,就可能会发生这种分叉。
因此,用户一般会等待大约30分钟(三个区块时间)来合理地确保一笔交易已经被通过。
Micali说:
“而目前你必须要应对分叉,这就造成了一些心理上的焦虑,因为区块虽不是最终的,而人需要一种确定性。”
Algorand处理这种模糊性的方式就是对那个具有很小分叉可能性的区块达成共识。这种系统利用了一种拜占庭共识的修改版本。
拜占庭协议于20世纪80年代被构想出来,这种协议为分布式系统(没有可信任的节点)提供了一种获得共识的方法。在这种设计中,这种系统可以容忍高达三分之一的参与者反对该系统。
拜占庭协议拥有两种属性:如果所有的参与者开始以相同的值开始,那么他们就是对这个值达成了一致共识。如果参与者以不同的值开始,那么所有诚实的参与者(遵循该协议的人)将会在某一个值上达成一致。在区块链上,这些值便是候选区块,而参与者便是交易验证者。
然而,传统的拜占庭协议存在一个问题,那就是参与者之间需要进行多轮强烈的通讯,致使难以对系统进行扩展。
Micali说:
“我无法在一百万或一千万用户之间运行拜占庭协议。这个数量实在太大。”
为了弥补,他开发了一个修改版的拜占庭协议。
参与者可更换性
在Algorand中,一小部分参与者可以代表整个系统来运行拜占庭协议。这可以让协议运行速度更快,随着越来越多的参与者在每一步中被替代,那么就可以在一种敌对的环境下使该系统安全。
Micali的拜占庭协议的原理就是:币持有者在第一轮中自己选择成为验证者(verifier)或矿工。这些验证者将他们的信息和凭据一起发送到该网络。
这时候这些验证者已经把自己暴露了出来,那些资源丰富的对手可以轻易贿赂他们。不过这无关紧要,因为一旦信息被公开,就不可能在收回。
“这个对手将无可奈何,就像政府无法收回维基泄密公开的消息一样。政府可以逮捕泄密者,把他送进监狱,但这个消息已经被传播到网络上。”
因此即使对手成功贿赂了验证者,但还是晚了一步。因为这时候,下一轮的通讯的新参与者已经被挑选好,这一过程将会再持续8轮,直到达成共同协议。
一旦协议达成,足够数量的参与者将会在拜占庭协议的最后一步中认证该区块,然后区块被广播到网络上,所有的用户都可以将其添加到区块链中。
鉴于这个系统中的唯一延迟是基于区块在网络上的传播速度,Micali将他的区块大小设定在了1MB。他认为当网络变得更快时就可以提升区块大小且没有任何安全风险。
新的世界秩序
Micali并不认为Algorand将会取代比特币。他认为不同的系统可以同时存在。
即便是今天,社会上仍旧存在以物换物的交易模式,所以Micali认为比特币没有理由将来会不再存在。但是他确实强烈地认为比特币的能源浪费是没有必要的。
他说:
“不知怎么地有些人比喻当你挖金子的时候也在浪费能源。事实上,黄金开采过程中的能源浪费并不意味着我们在破坏这个星球,而是我们的先辈破坏的。”
他还指出Algorand旨在作为所有类型的区块链系统的一种共识协议,而不仅仅是加密货币。
不过,Algorand还只是一种理论的协议。
Micali表示他正在商讨一些技术问题,并希望很快能够进行测试。