原文标题:《MultiVAC 技术特点及风险分析》
文章来源:公众号 北京之东的区块链世界
作者:北京之东

注:本评测时间为 2018 年 7 月底,项目可能有更新或调整

这个文章是应朋友的请求,写的一个关于 MultiVAC 的技术简评,我没有投,只是写完了,顺便发出来,供大家交流。

MultiVAC 是为大规模 DApp 设计的下一代公链,通过可信分片技术,为区块链系统赋予「高吞吐量、弹性计算、无限扩张」等能力。作为全球首个可信度概率模型概念的提出者,MultiVAC 集「可信度概率模型、账本交易分片、弹性计算模型、拜占庭共识族」等技术特色于一体,致力于打造一个全新多模弹性和可信编程的去中心化应用生态圈。

具有分片的 VRF

VRF 是伪随机函数,目前广泛用于新型的共识算法,特点是系统可产生一个随机数,所有验证者可以快速验证结果而无需获取函数本身的内容,使得结果不可预测。每个分片只是整个网络的子集。例如,如果整个网络有两个分片,比如 A 和 B,那么当节点加入网络时,他们需要在两者之间进行选择。在 MultiVAC 的网络中,VRF 用于将节点分配给 MultiVAC 的一个分片。底层机制是在主链上生成随机数,然后使用未分配节点的私钥加密,最终结果是伪随机数,然后根据概率表将其分配给分片。

在分片中达成共识

达成共识可以在不需要第三方参与的情况下就区块链的状态达成一致。根据所采用的算法,共识成功需要不同的网络可靠性阈值。存在许多不同的共识模式和共识模式变体以供考虑。另一个分片协议 Zilliqa (ZIL)使用 PBFT,其中每个希望加入网络的节点都经过测试,以解决工作量证明(POW)问题。ZIL 网络中的现有节点验证 PoW 并授权节点加入网络。PoW 是网络的入场券,只有持有 PoW 有效证明的节点才能加入网络。

为了达成共识,分片中诚实节点的百分比需要大于或等于安全边际的比率。此外,需要考虑网络同步的总体状态。因此 MultiVAC 优先考虑防止分叉的共识算法。在其白皮书中,每个分片可以采用以下算法之一:PBFT (Zilliqa),异步 BFT 或 BA⋆(Algorand)。

分片间同步

MultiVAC 中分片实现面临着数据同步挑战,不仅仅是同步分片内事务(同一分片中的节点),而且还要跨网络中的其他分片同步。Zilliqa 采用的一种解决方案是使用每个分片共享的全局账本,从而安全同步分类账本(Zilliqa 分片需要大约 600 个节点才能达到其安全边界),但代价是为协调分片增加很大网络负担。MultiVAC 选择了更简单的解决方案。采用 UTXO 模式,其分布在各个分片,仅在账户支出时生效,交易完 UTXO 将驻留在该帐户所属分片的账本中,本质上是交易和合约的分离。

分片内攻击

我们可以将分片视为整个网络的子集。传统区块链的优势在于拥有足够多的节点,它能够吸收 DDOS 或 51%的攻击。但一旦分片,分片内的节点数量会少得多,使得这些攻击具有更高的成功率,降低了分片安全。为避免这种情况,MultiVAC 将采用动态分片调整的模式,将矿工随机分配到不同的分片。随机分配的结果不可以预测,以防止攻击者进行合谋。

MultiVAC 虚拟机(MVM)

MVM 允许智能合约在网络上运行,而无需智能合约在每台机器上全面运行。MultiVAC 目的在于使用比其他智能合约平台更少的机器情况下实现可靠的计算。MultiVAC 推出了其区块链指令集(BISC)及其 PoIE 共识。目前,MVM 支持 C 编程语言,但计划启用更高级别的语言,如 Java 和 Go。

区块链指令集(BISC)

BISC 是一个支持区块链的 RISC-V 版本,具有 256 位指令处理,签名和区块链散列指令。RISC-V 是 BISC 的前身,是一种开源指令集架构。相比传统 X86 和 ARM 臃肿的指令集,RISC-V 具备了后发优势,由于计算机体系结构经过多年的发展已经成为比较成熟的技术,多年来在不断成熟的过程中暴露的问题都已经被研究透彻,因此新的 RISC-V 架构能够加以规避,并且没有背负向后兼容的历史包袱,其设计简洁有效,成为指令集中的后期之秀,同时其开源和免费的特性,目前在半导体业获得了极大的支持。MultiVAC 采用这个指令集,为现代计算机芯片组与其网络完美匹配铺平了道路,理论上区块链网络的智能合约能够配备具有 BISC 的硬件,而不是仅仅是跑在节点的虚拟机上。

PoIE 智能合约共识

PoIE 是 MultiVAC 的虚拟机一致性算法,用于验证智能合约的诚实计算。MultiVAC 认为在一个分片内,所有的节点都重复运行计算,是一种极大的浪费,因此,他们的理念是部分超级节点运行计算,然后其他节点通过 PoIE 算法验证代码被正确实行了。PoIE 机制设计侧重于在不泄露运算结果的情况下,其他节点既可以有效验证运算的正确性,又保证窃取其他节点运算成果的自身计算和存储成本远远高于自己真正运算一遍的成本,从而达到系统中节点的诚实。其智能合约通过 PoIE 来验证诚实计算,用拜占庭共识来达成结果一致。

分片的弹性计算

分散式应用程序(dApp)有多层次需求。有些需要高水平的安全性,而有些需要高 TPS。到目前为止,区块链需要权衡考虑,没有一个能满足每个 dApp 的所有需求。以太坊完全的去中心化,从而降低了速度。EOS 则通过牺牲去中心化,保证了高 TPS。通过让 dApp 开发人员提交他们的需求,MultiVAC 可以在这些已知的边界内有效工作。对于需要高安全性的用例,dApp 会选择选择具有大量节点,共识安全阈值较高的分片,对于需要更高吞吐量的用例,它们可以使用节点较少,共识速度较快的分片,从而达到弹性计算的目的。

挑战与风险

从白皮书看,本项目也具有一些风险

1、具体的跨分片机制白皮书没有说清楚。
2、分布式存储的激励机制白皮书没有说清楚。
3、虚拟机的安全性存疑问,因为业内第一次采用此类虚拟机,比如虚拟机逃匿等传统安全性问题,还需要验证。
4、节点的惩罚机制没有说清楚,官方只是说防止作恶,但实际情况中,需要有惩罚机制,否则无法做到博弈的效果。