纯干货之DFINITY的密码学技术介绍

DFINITY是什么?
DFINITY 是个虚拟超级主机 ,它完全虚拟化,是藉由去中心化的网络的互动而形成的虚拟云。DFINITY 完全由点对点节点构成,无法被Sybil攻击,并且支持拜占庭容错。 DFINITY 可以被全世界所共享 ,内部系统之间可以无缝的交互。DFINITY 拥有区块链部署更简单,、无法停止,、无法篡改的特性,重新定义企业IT,告别备份恢复、告别数据库、告别复杂的防火墙设置,简化系统并大幅削减IT人力成本。DFINITY颠覆传统互联网中介模式创建了一个开源的商业系统。
本章我们将会介绍DFINITY所使用的密码学技术
阈值签名算法和阈值签名接力结构是DFINITY区块链网络实现不可破坏、不可操纵、不可预测随机性的关键技术。首先介绍阈值签名算法的原理和实现:
一、传统签名及验签流程(略)
二、阈值签名及验签流程(略)
传统签名方案如果可被预测(碰撞),那将完全失去安全效应,故DFINITY引入了阈值签名方案,它的流程如下(略):
观察对比阈值签名方案与传统签名方案,我们归纳群组签名的特征:
DFINITY引入的具有唯一性和确定性的阈值签名方案来源于斯坦福大学的BLS签名算法,BLS算法的创始人之一Ben Lynn为DFINITY核心成员,简单的参数和流程如下(略):
三、阈值签名接力结构及VRF算法
DFINITY网络的区块链“链式”数据结构由阈值签名接力模型替代,同时,DFINITY创造了新的基于VRF(可验证随机函数)的分布式算法,实现极高效率的最终确认性并提高安全性。实测可比当前以太坊系统提高50倍以上的性能。 DFINITY基于VRF可验证随机函数来安全的进行全球性的扩容:计算、验证和存储,真正实现无限的在线横向扩展。
四、容错能力和通信开销示例
DFINITY创造的VRF算法可实现极高的容错能力,在一个典型网络环境下的容错表现,在网路中有30%错误节点的情况下,DFINITY网络无法有效出块的概念极低,算术证明见链接地址。
DFINITY网络节点的数据通信开销示例,DFINITY网络内的消息格式和内容大小,携带每个节点签名分片的传输大小仅84比特,一个阈值组(400个节点)仅需22KB通信开销,在目前的互联网环境下,传输效率较高。

DFINITY百科系列之一:能否成为下一个以太坊

以太坊作为区块链2.0的标志性平台取得了巨大的成功,面向未来,谁会是区块链3.0时代的以太坊。我们将调查一系列旨在超越以太坊的智能合约平台项目,第一个挑战者是DFINITY。

DFINITY
DFINITY是一个与以太坊兼容的智能合约平台,引入了一系列革命性的想法来解决性能、扩展性和治理的问题。DFINITY项目秉持开放合作的态度,为以太坊项目提供资源,并将其技术提供给Ethereum采用。DFINITY与以太坊有相似之处,主要区别是高性能和基于神经元的治理模式。
借助这几个优势,DFINITY为DAPP提供了不同的选择。如果DFINITY可以提供更高的吞吐量、更快的确认时间和可以解决公共纠纷的治理机制并且完全与EVM兼容的智能合约平台,那么它将成为应用部署的更好的选择,因为谁都无法忍受网络堵塞。当然,DFINITY的挑战将是逐一实现这些承诺,同时满足公有链的安全需求。
DFINITY项目目前处于即将发布测试网的状态,官方白皮书将于9月中旬发布,DFINITY官网已经发布了足够多的技术信息,以便我们深入了解该项目并与Ethereum进行比较。
下面我们来深入了解一些可能挑战Ethereum的技术。

高性能
低交易吞吐量是当今工作量证明(PoW)区块链的主要不足。尽管以太坊计划使用PoS解决方案取代PoW,但第一阶段PoS推出只会在PoW挖出的区块之上添加PoS检查点,并不会改善性能。DFINITY天生就是PoS系统,通过提升出块时间 (即更多的区块/分钟) 与更高的燃料限制(即更多的事务/区块)实现50倍的tps增长。
DFINITY凭借阈值接力技术实现快速出块,其使用阈值签名在P2P网络上快速达成一组验证者之间的共识。阈值签名是一个组签名,只能从达到阈值数量的成员签名构建而成,这代表了足够多数量的成员的密码学共识证明。DFINITY使用的BLS组签名的一个非常重要的属性是不管成员组的哪个子集构造的签名,签名位始终是相同的。这允许网络基于随机数(即签名)快速且独立地达成共识,最终提高出块速度并且显着增加事务吞吐量。
DFINITY宣称使用概率插槽协议可提高25倍(超过Ethereum)的每区块事务数。协议将每个区块时间划分为不同优先级的插槽,每个插槽代表一个客户端(矿工),优先级越高,该客户端生成的区块权重越高,在给定区块时间内生成多个区块的情况下,网络选择累积区块权重最大的链。在上一区块时间产生的随机数允许所有诚实节点独立地认可插槽优先级、区块权重和有效链。区块链只有在通过阈值组签名公证后才有效,并且每个区块时间的公证会快速消灭无效链,使得DFINITY仅需两个区块即可达成最终一致(平均7.5 秒)。
在智能合约时代,没有高安全性支撑的高性能只能使攻击者可以更容易转走资金。对阈值接力共识协议发起攻击是昂贵的,因为阈值签名组的成员是随机选择的而且每个区块都会变化,所以攻击者必须付出很大代价来控制所有签名者绝大多数来影响共识。组的规模越大,阻碍诚实验证者达成共识就会变得越来越昂贵。安全性取决于使用确定的、不可预测的、防篡改的随机数,其由阈值组BLS签名产出。每个当前区块时间的组签名用于随机选择下一个区块的验证组,
因此,组签名密钥的安全生成对于区块公证和保护阈值接力共识协议的随机性是至关重要的。DFINITY使用安全分布式密钥生成(DKG)协议,使组成员可以不依赖中心化PKI生成组签名密钥。虽然这个协议在100%可靠的广播网络中已经被证明是安全的,但这种假设并不适用于具有恶意者的接力网络,并且攻击者可以控制足够多组成员的密钥。DFINITY的阈值接力共识过程可以容忍DKG协议的高故障率并且仍然起作用,DFINITY公布了一个容错示例,仅有极低的概率无法产生随机数。
DFINITY提升性能的做法理论上也可以应用在Ethereum,然而,目前看来,Ethereum将继续推进内部提出的,以可用性为重点的PoS协议(CASPER)来改进性能。

可扩展性
DFINITY通过将共识、验证和存储分层来实现“几乎无限”的可扩展能力。共识层不涉及交易数据。存储层被分成多个子链,每个子链负责处理更新交易的分片。验证层负责将所有分片的散列组合成类Merkle树结构,将根状态哈希存储在母链上的区块中。这种架构在实践中仍然存在一些重大问题需要解决,例如涉及跨分片状态数据的交易。
以太坊的路线图中也包括状态分片,但还需要几年时间部署到主网络上。以太坊必须要从全局复制切换到分片的状态,而DFINITY有机会从一开始就使用分片技术,这是巨大的可扩展性优势。然而,DFINITY第一个支持状态分片的版本- 钨,也还需要一段时间才能发布。

治理
DFINITY将其治理机制描述为“AI即法律”,而不是以太坊描述的“代码即法律”。听上去云里雾里, DFINITY称之为“AI”不是传统意义的人工智能,本质是人类控制的‘神经元’提供的输入信息来对各种提议作出决策的民主治理机制。以太坊处理DAO黑客事件导致了社区分裂,“代码即法律”的支持者离开了,这说明像区块链这样快速发展的技术,技术漏洞几乎无法避免,最近的Parity钱包黑客事件同样道理。Ethereum社区在哲学上反对黑客,但没有任何机制或自动化工具来停止或撤销漏洞,只能依靠白帽黑客来减少损失。DFINITY也在哲学上反对黑客,它引入一种称之为BNS的在线治理机制,可以综合处理各种可能的管理问题。
DFINITY的区块链神经元系统(BNS)具有大量管理功能,例如管理协议和软件升级、修改激励参数、冻结“恶意”智能合约、修复合约程序的错误甚至重新分发DFINITY网络代币。用中心化的方式采取这些行动经常是有争议的,所以BNS通过社区民主决议形式投票来决策是否采取行动。对于任何提案,通过存入保证金代币,在网络上运行“神经元”并具有投票权的用户可以直接投票或(在一段时间窗口之后)将其投票委托给其他代理神经元。这一切都是软件自动化执行的,它允许用户为不同类型的提案选择不同的代理,并可以动态更新这些选项。所有提案都经由社区的集体智慧仔细审查,只有在符合社区最大利益的情况下才会通过提案,且BNS行使权力并不会导致社区的分裂。
以太坊的经济规模已然很大,这些资产都暴露在危险之中,需要尽快采取一系列更加正式化和自动化的治理措施,但这一切可能导致潜在的社区分裂,带来经济上的痛苦。所以,以太坊可能会非常小心,而具有较小利益博弈的DFINITY会在试验当中取得先发优势。

结论
DFINITY是一个独特的以太坊革命者,它与以太坊的EVM相兼容。这使得DFINITY能够利用来自Ethereum社区的所有进步和创新,而DFINITY对这些项目的贡献也有利于Ethereum。DFINITY为以太坊用户和DApp开发人员提供了新的选择,这可能比那些直接喊着”颠覆“的平台的策略要高明许多。
DFINITY的安全性来自于基于密码学的随机性和多数诚实节点的假设,这对于许可制区块链来说肯定是合理的,它的阈值接力结构和BNS功能具备明显的优势。DFINITY强调私有链与公有链的互操作性将驱动许可制区块链无缝扩展到非许可制区块链。然而,公有链的设计涉及到不同的工程权衡,一个架构可能无法同时做好两者的平衡。以太坊的经济激励措施旨在提供更广泛情况下的安全,而不是诚实的多数,这对于非许可制区块链来说是至关重要的。最后,这两个平台很可能会实现互操作融合,DFINITY演变为面向金融、医疗、供应链等领域的公有链平台。