CEO-郭睿

Dfinity:基于门限签名技术的共识新思路
Dfinity是2016年在硅谷启动的项目,其创始人Dominic是以太坊早期密码学协会的核心成员之一;Dfinity做出的最突出性的贡献就是将密码学中的门限签名技术引入到共识算法中。Dfinity的共识思路是这样的,首先将全网节点随机分为N组,每轮共识开始时,随机挑选出块节点和见证人节点,出块节点完成出块后,由见证人节点见证选择哪个块做为最终块上链,同时,在出块的过程中也会随机的确定下一个负责出块的出块节点,从而完成共识的继续向下执行。 但是,由于没有POW的算力消耗做为安全保障,为了提升系统的安全性,Dfinity的出块节点和见证人节点并非单一节点,而是节点组。比如其每轮的出块节点就是由400台机器构成的节点组执行出块。而其采用的门限签名技术,保证了一个数据块,被该组中任意超过51%的机器(既超过201台机器)签名后,就可以生成可被外界验证的数据块,同时可以生成用于选择下一轮节点的随机数,通过这种方式,大大的提升了攻击难度,从攻击一个节点,变为了攻击一组节点,提升了系统安全。在密码学领域,VRF(可验证的随机函数,verifiable random functions)是一大类别,门限签名函数是另一大类别,而Dfinity在技术上的最大特点,就是找到了一个同时满足VRF和门限签名特点的函数,保证了其算法可实现。基于该共识,Dfinity对外宣称的是其TPS已达到数百笔/秒左右,每个块的确认时间为7.5秒。
Dfinity的共识机制确实非常巧妙,但还存在一点小瑕疵,由于门限签名中的”组”的建立过程非常复杂,所以每一个组建立后,需要保持很长一段时间,这时就存在一个潜在的经济学博弈问题,即该组的群签名可以通过多个成员的合谋的方法来预测,而这个合谋的成本很低,群成员可以知道自己是属于哪几个群,通过互联网等多种手段可以很快找到与其是同一个群的成员进行合谋,合谋的成员可以协同计算出群私钥,快速预测出下一轮的随机数,从而破坏网络的公平性。因为这种攻击是非常难被发现的,可以做到零攻击成本。该问题我们已经提交给Dfinity团队,目前还未得到答复。
在进度方面,Dfinity现在已经在公司内部网搭建了一个运行网络,录制并公布了该网络的运行视频。

Algorand:基于随机算法的高TPS共识
Algorand是图灵奖得主、MIT教授Sivio Micali于2017年5月发布的区块链共识协议,其主要思想是结合随机和BFT算法,在完全去中心化的网络上实现高TPS。
Algorand的共识过程如下:
1.第一步,角色确认阶段:对一个大规模网络,每个共识轮次开始时,每个节点先采用VRF(可验证的随机函数,verifiable random functions)生成一个凭证,用该凭证随机选出本轮参与共识的节点,被称为"投票者",而其中凭证值最小的被选为“提议者”
2.第二步,分级共识阶段:提议者负责组装本轮的候选区块,然后由投票者对本轮的领导者达成共识,也同时确认本轮收到的候选区块;
3.第三步,二元拜占庭阶段:验证者对候选区块投票,即要么接受该候选区块(认为该区块没有问题),要么不接受该候选区块(认为该区块有错误,比如双花,不接受该区块,替换为空区块)
4.最后,广播本轮确定的区块到全网;
Algorand通过每轮随机选择共识节点的方式,在保障网络安全的基础上,有效提升了系统的TPS,根据其论文给出的数据,可以共识的交易是750M字节每小时,按照比特币每笔交易长度250字节计算:75010241024/60/60/250=873.8 TPS;
以上介绍了Algorand算法的主要内容,该算法总结下来,还存在一定的提升空间:
1.Algorand现在的主要功能就是转账交易,其功能可以对标为比特币,而做为区块链2.0中最重要的智能合约方面的改进,algorand在论文中并没有讨论如何支持智能合约到Algorand的网络;
2.Algorand网络的前提是,诚实“投票者”数量占比在2/3以上,但并没有讨论如何保障这一点;
3.Algorand的算法在每个阶段的每个子步骤,都要求完全随机选点,坦率的说,该工程复杂度还是非常高的;
Algorand在论文发布后,已组织团队快速推动项目的研发,社区正在等待Algorand的工程落地的发布;

Thunderlla:POW和POS结合
Thunderlla的核心创始人是康奈尔大学计算机系教授Elaine Shi。其提出了这样一种新的算法。当网络中加速器(Accelerator)节点和3/4的委员会(committee)节点为诚实节点,并且网络状况比较好的时候,Thunderella可以实现快速异步处理,在<1秒之内做出确认,对交易几乎是瞬间相应。而当网络出现异常时(比如出现了拜占庭将军问题),启动冷却(cool-down)机制,切换到传统区块链共识(慢速链),保证网络的安全和可持续性,并在网络恢复时自动切换回快速模式。由此,可以实现绝大多数时间与情况下,网络超过目前区块链1000倍的处理速度,以及遇到问题时依旧可以通过慢速链抵御49%的恶意节点,这里的慢速链,既可以是比特币,也可以是以太坊,或是其他的区块链一言以蔽之,即友好环境下瞬间响应,恶意环境下安全可靠。
这种算法可以看成是POS与POW的混合体,希望能够同时具备POW和POS算法的优势,不过这里有几个关键问题,比如如何保证3/4的委员会成员节点是诚实的,以及如何激励和剔除恶意委员会成员,没有明确提到;并且重启模式依然不太明确,比如如何选择下个加速器等。
从进度上说,Thunderlla在公布论文后,还没有进一步的项目进展公布。

Oasis Lab的Ekiden:基于可信环境的性能提升
该项目是2018年启动的项目,其创始人Dawn Song是加州大学伯克利分校计算机科学副教授。Ekiden的主要思想是将共识层和计算层做了分离;在计算层用符合TEE(可信执行环境,比如Intel的SGX)的硬件组成,智能合约的计算放到 TEE里面去执行,而共识层采用POW或POS,只验证和共识 TEE 计算结果。这种方法有两个特点:1)计算节点和共识节点分开,计算节点里面可以执行任意复杂的逻辑,通过少量的可信计算节点来相互印证计算结果,所以执行效率很高,基本上等效于单机执行效率,然后还能并行多机执行不同的合约;2)隐私保护,链上只存储加密后的数据状态(甚至是加密后的合约代码),解密只在TEE里面完成,然后计算结果从TEE出来后又是加密的回到链上。
从Ekiden的整体设计来说,其安全性完全依赖于TEE可信执行环境,虽然巧妙的解决了安全性的问题,但实际也会存在安全隐患,比如2017年3月,奥地利格拉茨技术大学的研究人员破解SGX的防护,因此,完全依赖单一硬件的安全性是否可靠尚待时间的检验;同时,TEE的原理是私钥保存在芯片生产商处,比如SGX就是私钥由Intel负责,所以芯片生产商就成为了一个中心化的节点,并没有实现区块链完全去中心化的理念。
从进展上说,Ekiden的进展还是较快的,其网站上已经可以让用户提交自己机器的配置进行测试网络的申请,但是目前还没有相关该测试网络的性能方面的数据放出来;

zilliqa:基于分片技术实现高TPS
Zilliqa是第一个上线具有分片技术测试网的公链项目,其功能现在比较简单,就是转账交易。其核心思想是通过分片的方式,大幅提升TPS。分片的核心思想就好比,传统的区块链是一条主链,可以将其看成一个单核的CPU,只能串行的进行数据处理;如果该主链是由多条子链构成的,可以将其看成一个多核的CPU处理器,那性能就可以实现倍数级别的提升。
但该算法仍存在以下几点不足:
1.zilliqa数据处理分片,数据存储不分片;相当于在数据的计算上提升了性能,但在数据的存储/同步/共享等方面会带来效率问题,将极大的制约其性能的提升空间;同时对上层的智能合约的实现会极度的不友好,这种方式更适合特定的应用场景,比如科学计算等,却非常不利于开发者使用
2.跨分片没有成型,对全局的数据和状态怎么管理没有很详细的描述:所有的分片的实现,最核心的需要解决的问题就是出现跨分片时如何处理,而zilliqa对这块还没有解决方案;
目前,zilliqa已经上线了测试网络,同时其透露出的内部网络的测试数据,是在3600台机器上,在6分片的情况下,可以实现TPS 2000笔/秒;