初链,公链的终极定义者 ——附《初链技术黄皮书》解读

中国网
2024-04-25 06:00
13742
初链,公链的重新定义者附《初链技术黄皮书》解读文/区块链研究员 黄京磊一、什么是初链初链,可以从四个角度进行定义商用公链的开

初链,公链的重新定义者

——附《初链技术黄皮书》解读

文/区块链研究员 黄京磊

一、什么是初链

初链,可以从四个角度进行定义——商用公链的开发者,混合共识机制的先行者,去中心化的守护者,公链的重新定义者。

承载商业应用的公链是未来区块链技术的应用场景,打造高性能、安全可靠的商用公链具有极大的发展空间和商业潜力。

混合共识机制取代单一共识机制成为下一代公链的底层架构已成为行业共识。多方探索之下,初链依靠率先全情投入开发以PBFT+POW混合共识机制为基础的四层次公链体系,抢占了行业先机。

去中心化是区块链体系的灵魂、打造自由平等互信社会的核心。在无数公链开发中为单一追求效率而放弃去中心化,实乃对区块链世界信仰的一种背叛。初链在保持去中心化本质的基础上不断改进效率,才是明智和正义的。

区块链3.0时代悄然而至。由1.0的“数字货币”,到2.0的智能合约,区块链行业正在逐渐向3.0时代——超越货币、经济与市场前进。献身于区块链事业的人们希望通过技术广泛而深刻地改变人们的生活方式,把区块链技术应用到物联网、医疗、供应链管理等行业,把区块链价值延伸到货币、经济、市场之外的政治、人道主义、社交和科学等领域,重构整个社会,重铸信用价值。

初链,吸取以往项目的经验教训,站在巨人的肩膀上,已经看到了区块链3.0时代之后行业的无限机遇与前进方向。3.0时代,初链团队披荆斩棘,技术难关得以突破,部署工具上线待测。随着团队不断发展壮大,初链越来越有信心和实力证明自己——在充满无限商机与打造理想自由互信社会的区块链4.0时代,自己就是那个定义时代的人。

二、技术黄皮书解读

行业已经基本形成认识——仅靠单一共识机制难以兼顾效率与去中心化本质。为弥补前两代公链比特币与以太坊每秒交易处理量(TPS)过低导致无法应用到实质商业应用开发的弊病,初链选择了将PBFT的高效与POW的去中心化相结合的混合共识机制。在保证去中心化本质的基础上,实现高性能、高可靠性的公链开发,以承载规模化商用Dapp运行的目标。

分布式协议的解决方式大致一分为二。一种是以比特币为代表的POW解决方案,已被证明在交易处理速度上难以更进一步;一种是以众多私有链、联盟链为代表的PBFT解决方案,可以高效处理大量交易。但PBFT解决方案要求参与记账的众多节点彼此信任,因此在协议生效之前就相互认识。但一个相互认识的超级节点对全链交易进行记录应用到公链开发中无疑存在着巨大的道德风险。如何在公链中建立高效的互信的共识机制,成为世界性的难题。

初链的解决方案别出心裁。保留PBFT记录账本的机制不动,将超级节点的选取开放给公链,利用POW协议作为准系统支持超级节点的动态选取和协议达成,将超级节点社区的组建由私有链与联盟链性质转换为公有链性质。

1. 节点选取

从私有链与联盟链到公有链是一个质的转变。现在BFT社区节点选取多采用固定时间段更换一次,更换为新挖矿的P个节点(P为社区节点数目)。

但这是反直觉的。如果之前的节点社区表现优异,为什么要强制撤换呢?而如果只因这些节点表现优异就不撤换的话,新节点就难以加入社区。所以需要在其间进行取舍,即每隔一段时间(K天)更换一次节点,而更换频率较低。

在这里初链借鉴了Thunderella的想法,即慢链(POW链)可以用于证明BFT超级节点潜在的造假或出错情况。一旦这种情况发生,次日即可进行强制更换节点,而不必等到固定时点。

更为关键的是选举机制的设定。一般混合机制是从最近挖矿的矿工节点中选取,但初链采用的是权益证明和随机选取相结合的方式。具体地说,全节点可以临时性冻结它们的代币资产,一定比例的超级节点将分配给全节点中权益证明较高的一些节点;另外部分的节点按照VRF随机过程选取,随机过程的种子由上一次选举的种子和节点社区容量决定。不同于Algorand,初链在此阶段将不会计算权益比例。

随机过程选取的节点可以假定是完全不认识的,因此不可信。对于此种潜在情况,初链的策略是估算不可靠节点的比例,让该比例的不可靠节点不会影响正常决策。诚然,掌握巨大运算资源的一方可能操纵VRF随机过程,但这已不在此讨论范围内。

2. 时间戳与自然时间限制

初链技术团队清醒地知道,一致性(最终一致性)、活性与安全性是万万不能被割舍的。为达到此目的,初链团队在自然时间限制上做了大幅改进。

传统共识机制默认地给予了矿工、节点社区成员和领导者一定的时间窗口,导致在要求严格时间顺序的商业互换等智能合约中,可能存在恶意节点调换合约顺序、插入自身合约等不正当牟利手段。当吞吐量较高时,这种不当激励将被继续放大。

更糟糕的是,这种恶意调换由于存在天然网络延迟导致顺序调换的可能而难以被察觉,除非这种调换被接受者自己所发现并掌握最终延迟的证据。

为支持这种去中心化的商业互换,初链引入了粘性时间戳作为额外限制。这个时间戳是一个启发式的参数,会随时间进程而改变。当一笔交易等待验证时,用户把自己的物理时间戳作为交易元数据与交易打包上传。BFT链的验证器会随后根据以下算法检验该笔交易是否有效地被记录过或有意忽视过。如果出现被忽视、误记或延迟记录,则报告问题,即说明之前节点的记录是有问题的。

(1)检验验证器当前时间与物理时间戳的差值是否小于粘性时间戳。如果大于,则说明该笔交易上传到验证器的时间与其真实发出的时间相差过大,可以判定之前节点出现了忽视、延误或有意偏向等问题。

(2)检验交易是否被记录过。如果被记录过,则继续检验当前链的最后一笔交易的时间戳是否早于新上传的交易。如果出现链上最后一笔交易的时间戳晚于新上传交易,可以判定之前节点的记录出现了错误、延误或造假的可能。

(3)如果未被记录过或时间戳未出现顺序颠倒,则把这笔新的记录添加到账本中。

通过以上方法,可以有效保证双重支付、不处理交易等BFT恶意节点的行为。

在这一阶段BFT记录账本时,领导者可以根据物理时间戳选择一批交易拆开。不过这一步并不是必须的,因为我们可以在之后的评估和证实过程中强制保证顺序。

这一改动有如下好处:

(1)交易顺序完全按照物理时间戳排列,因此可以避免同一节点恶意调换交易顺序的情况;

(2)一批交易的顺序由BFT社区按时间戳先后排列;

(3)由于时间窗口的限制,节点不能伪造虚假物理时间戳。

不过这种改动也具有明显的缺点。一旦根据网络延迟情况选取的粘性时间戳选取不合适,所有交易处理会直接被中断。而且BFT社区节点仍可以通过虚报时间和拒绝特定交易造假。尽管BFT社区节点无论怎样都能拒绝交易,但是假如一个节点是诚实的,有时也可能由于时间的不同步性拒绝一部分交易,所以无法区分。然而这一问题可以通过在选取BFT社区节点时增加对该节点必须拥有同步性时钟的限制而加以解决。

3. 计算与数据片区,及推断交易执行

初链团队对初级混合共识进行了重大改进,加入了计算和数据片区支持。其首先设计了一个基于片区的推断执行处理系统。日常BFT节点索引自一个确定的日常BFT节点序列,允许同一时间选取多重序列。

除去子片,另外存在一个包含等同于社区节点数目那么多节点的主片。它负责对子片的输出进行排序并作为分布式交易处理系统的协调员。子片向主片上传log,由主片与混合共识进行沟通而非直接与其沟通。

社区选举的流程将强行规定,任何片区不能共享同一节点。片区的选举类似于上述混合共识选举过程。

数据被均匀分布在各子片中,保证每一次调用对应片区都会返回一致的值。每一个数据单元都包含元数据。数据将被拆分成数据单元,然后每个数据单元将被分配到一个地址。地址与数据位置建立映射。可以假设这种分区规则是公开的,通过执行host函数可以得到一个地址的所在片区。

如果每个普通节点都被视为分布式处理单元,逻辑时间戳的设计就可以被包含在分布式交易处理系统之中,对交易处理进行授权。这里将运用MaaT的简化版本,并不会对其他交易的时间戳进行自动调整。

对于主片,它负责收集全部普通节点的输出。值得注意的是,交易的数据依赖性可以从元数据轻松地被推断出来。如果一个交易访问了多个远程片区,它将会在所有涉及的片区留下痕迹。当一个子片向主片提交log时,它也会在慢链上留下记录。

当基础节点从一个片区收到了一批交易,它将会检查它是否收到了来自所有片区的该批次交易。如果在一定时间内它没有收到固定的一批交易,就意味着这一批次是失败的。这种情况下,就需要在第二天的开始时更换整个社区。在接受到所有片区的log后,主片将会根据时间戳整理交易顺序。(拥有最早批次编号的交易会被认为是一笔交易,但如果物理时间戳与许多其他片区的时间戳相悖,则认为该批次无效并丢弃该批次包含的所有交易)。在整理之后,主片会筛选所有的交易并根据物理时间戳选择最长的非减编号序列。对混合共识机制公布后形成当天的log。

当然该设计还有很多改进空间。一个比较重要的确定就是这种机制的确认时点不是立刻。

4. 虚拟机与智能合约

在此部分我们主要解决两个问题:

(1)为什么要使用虚拟机,而不是容器?

一种区块链架构来自超级账本,但超级账本是针对私有链及联盟链开发的。如果希望将其架构应用到公链上,则需要解决链码的问题。尽管一个链码可以部署在一个容器中,但这对于公链来说显然是无法规模化的。一个同时运行几千个智能合约的公链意味着需要几千个容器,但数千个容器显然是不现实的,所以只能选择限制同时运行的智能合约数量。

社会上有很多容器数量的尝试,但即使运用常用的存储技术,容器容量也仅能达到1000,远远达不到要求。而且人们宁愿水平扩大容器规模也不愿意垂直扩大容器容量,因为后者极大程度上提升了设计的复杂度。也没有一个适应全部集群规模结构的规则,因为它完全取决于负载量,而且在去中心化时更是如此。对于现在部署有1000多个智能合约的以太坊,它除了是一次在最优化容器生态设计上粗浅的尝试之外一无是处。

也有可能解决的方法,比如把容器运用到无服务器结构中。但想象一个多于2000个智能合约在线和并发请求的场景,比如想链码发送超过容器数量的调用请求,我们仍会面临同样的困境。途径就是给并发请求加上节流限制,但这将严重影响TPS。工程问题不应当成为我们达成目标的平静,因此初链仍然采用了以太坊虚拟机的设计。

(2)初链虚拟机(TVM)

在这一领域的范例是以太坊虚拟机(EVM)。它尝试跟随决定主义,在简化激励计算步骤上做出了优化。它还支持内存的非堆栈存储、合约授权以及调用间的价值存储。

而初链将继续将EVM应用于慢链之上,并在PBFT主干节点中应用TVM,以使得每个全节点能够响应不同调用请求。但TVM的构想还并不是很成熟,需要确定TVM的过渡状态、智能合约部署策略及从私链虚拟机向公链虚拟机的转变。同时还要确定从POW节点向PBFT节点转变的参数。

5. 奖励机制

对于BFT社区节点与非社区全节点的工作量的奖励是奖励机制的核心问题。

如果根据网络和CPU带宽而为所有片区都提供相同奖励,则会产生严重的偏向性结果,比如不一致的TPS或更严重的如在子片整理交易顺序时发生交叉超时限制。为解决该问题,初链可能会采用服务于网络计算的伯克利公链(BOINC)上的激励机制。Gridcoin和Golem在该领域上有过早期尝试,但其未能解决其早期用户面临的财富分配不一致性。

初链的混合共识机制运用公平的、随机抽取的、轮换的社区制度天然地避免了持币者拥有持续性地获得大量奖励,从而保证了财富的公平分配。

为补偿计算算力的不均匀性,初链设置了从BFT与POW池获得奖励的奖励机制。在工程设计上,利用标识改变工作分配,让BFT交易、POW、激励池依次获得资源分配的优先级。通过这种方式,如果BFT节点由于K天数限制(最多每K天必须更换一次节点)被清出网络,它仍可以通过为网络其余部分提供补偿机制享受到投资硬件产生的收益。所有的节点都能完成POW和PBFT的任务,但是PBFT获得更高的优先级。

6. 初链未来技术攻关方向

(1)在不依靠中心化的NTP服务器的情况下,提高所有节点时间戳的同步性;

(2)解决激励机制;

(3)用创建副本的分片技术减少来自BFT社区的事务集拒绝次数;

(4)增加零知识证明对隐私的保护;

(5)建构EVM、TVM与Linux容器生态的混合基础设施;

(6)构想虚拟机规范、二元数据加密方法、交易签名、费用计划和Ethash算法替代品。

三、Stellar

Stellar是初链团队开发的全周期智能合约部署平台。现在的版本已经可以支持私有链和联盟链。Stellar将为智能合约开发者提供统一的开发工具,以使智能合约的部署变得简单、高效,并且全部节点可以运行该智能合约。初链希望打造的是支持公链的智能合约平台,方便部署、管理、查询与监控。Stellar将会是初链最重点开发的明星项目。

四、总结

混合共识是大势所趋,而混合共识在学术上的发展还没有在工程上得以实现。工程实现在某些程度上要比学术研究更加重要,因为最后谁能落地谁才能赢。初链是混合共识领域的先行者。初链团队在研究,工程和生态建设上都有明显的优势,整个团队在商业,工程,研究上都非常完备,更可贵地是,初链团队非常看中用户体验,这样的团队会做出产品,因为,最终赢得公链之争的,不管是底层技术,还要有更好的产品体系。


评论区
登录 发表评论