星物种 | Vite想在DAG的基础上引入快照链,保证账本的高效与安全性

Odaily星球日报·2018-07-11 10:36
Vite的意思是快速。

编者按:本文来自36氪战略合作区块链媒体“Odaily星球日报”(公众号ID:o-daily,APP下载

公链项目层出不穷,都在用不同的方式解决性能与安全性之间的矛盾。

目前常见的方法有如下几种:一是改变共识机制,比如Hyperledger的PBFT、EOS的DPoS;二是改变了网络结构,比如IOTAbyteballNano就使用了不同于区块链的DAG(有向无环图)的数据结构;三是直接利用链外方式解决,比如链下的子链/侧链、状态通道,甚至是跨链中间件等;第四种,则是分片。

Odaily星球日报最近接触的公链项目Vite,选择的是上述的第二种路径——采用DAG的账本结构。

如上所述,基于该结构之上衍生出来的数据结构各有不同。我之前报道过类似国内项目(包括TrustnoteInterValue等)时,就已经介绍过,在IOTA和byteball的数据结构中,交易之间相互链接组合成 DAG 图。新单元可以选择链接到任意一个或多个旧单元,通过新交易验证并引用旧交易完成验证,简称“DAG共识”。这允许用户的账本之间存在临时性的微小差异,短时间内弱化数据块全网一致性, 因而不易发生堵塞,可以提高交易并发量。因此,DAG 链网络节点规模越大、 交易量越大, 则交易确认时间越短。

Tangle共识机制的动态演示(来自IOTA的官网)

Vite创始人刘春明介绍,IOTA的Tangle账本的特性是一个交易随机选择两个前驱交易,在账本中遍历交易时有多条路径,经历不同的路径可能会进入不同的状态,无法确保一个合约状态的唯一性,导致难以在此之上引入智能合约。Vite的账本结构采访的是Nano的block-lattice账本,后者的网络中,每一个账户都有一个自己的链,记录转账的发送和接收(在智能合约情境下则是请求和响应);记录接收状态需要引用发送者的交易,以确定相关交易的先后顺序。

Nano基于DAG区块点阵的可视化(来自Nano白皮书)

Block-lattice结构中,一个动作(英文为transaction,为避免歧义此处译为“动作”)只会影响一个账户的状态,即如果接受者不生成接收交易的状态,该转账资金将一直“在途”。虽然全网都会同步每条链的最新状态,但只有账户链的所有者可以签名并广播区块至全网。这种设计在转账情境中可行,但若在智能合约场景下,意味着一旦节点掉线,其所部署的服务将难以为继。因此,Vite即允许账户选择设置出块权限的节点:自己、特定数个节点或Vite的全局共识组,以保证服务的可用性。

Vite的白皮书认为,block-lattice维护了更少的偏序关系,更适合作为高性能去中心化应用平台的账本结构;但它的防篡改特性较差,会产生安全隐患。迄今为止,除了 Nano 采用了该结构之外,还没有其他项目采用。 

刘春明指出,在账本中维护交易之间的顺序有两个作用。首先,交易的顺序不同,会影响系统的状态。例如在购票服务的场景下,两个购票请求之间的顺序,可能会决定 一张票的最终归属;其次,交易间的顺序提供了防篡改的特性,篡改一笔历史交易, 需要重新构造排在该交易后面的所有区块的hash。 

 “区块链之所以安全,是因为它在不断增长,随着时间的推移,一个交易被其他交 易引用的次数越来越多,所以被篡改的可能越来越小。所以,等待足够的确认数 (例如6个确认)就可以保证交易被篡改的概率降低到安全阈值之下。”刘春明解释,block-lattice中有的账户可能长时间不发生交易,导致最后一笔交易被引用次 数不够多,因而更容易被篡改。

越扁平的数据结构维护了越少偏序关系,安全性越低(来自Vite白皮书)

为了弥补这些缺陷,Vite引入了快照链结构。快照链每一秒钟对整个账本的末尾拍一个“快照”,然后将其写入快照块,后一个快照块引用前一个块的hash,构成 一个区块链结构。每一快照块存储的状态包括:账户的余额、合约状态的 Merkle root,每个账户链中最后一个交易的 hash。DAG账本可能发生分叉,但全局状态以被写入快照链的为准,写入快照意味着交易被确认。如果快照链本身发生分叉,节点会选择更长的快照链达成共识。

由于快照链同时也提供了一个全局时钟,Vite中就有了时间戳,这样就可以量化每 个用户在每个时间段里究竟发生了多少笔交易,也就是TPS。Vite的共识机制采用 的是DPoS,全局共识组由25个选举出来的BP(区块生产者)达成。由于Vite 中的共识是来自于DAG账本和快照链两个层级,因此Vite将自身共识机制称为HDPoS(Hierarchical Delegated Proof of Stake)。

其资源分配方式也跟EOS有点小类似——根据账户持有的Token比例分配配额,但非持币者通过PoW也可以获取最低配额,每个账户的TPS不得超过配额。如果业务面临峰值,用户还可以通过支付Token或加大PoW难度临时调高配额。

刘春明总结,Vite通过三方面的异步设计提高系统吞吐,包括把请求和响应分开; 交易的写入和确认分离;合约间采用消息通信而非函数调用的方式。目前,团队内 部正在开发第一个版本“Snail”,内测版计划于10月份上线。刘春明认为,目前公 链的TPS除了受限于账本结构和共识机制之外,虚拟机也是重要的性能瓶颈, 因此,合约语言和虚拟机优化也将是Vite未来工作的重点之一。

Vite研发团队目前有12人。创始人刘春明毕业于中国科技大学、中科院软件所;曾 任京东高级架构师、美团点评技术总监,也是数字货币交易所币丰港的联合创始人。 COO Richard Yan毕业于美国达特茅斯学院和纽约大学MBA,曾任职纽约高盛结 构性资产交易策略副总裁、Two Sigma高频交易及商务创新拓展副总裁。

我是Odaily星球日报编辑卢晓明,探索真实区块链,爆料、交流请加微信lohiuming,烦请备注姓名、单位、职务和事由。

参考资料:

Research undertaken on topics related to The Tangle and IOTA related technologies.

IOTA对Tangle共识机制的介绍论文《The Tangle》

What is IOTA

Byte白皮书《Byteball: A Decentralized System for Storage and Transfer of Value》

NANO中文白皮书《源石币:一种零交易手续费的分布式加密货币》

深扒源石币(NANO/RaiBlocks)

THE SWIRLDS HASHGRAPH CONSENSUS ALGORITHM: FAIR, FAST, BYZANTINE FAULT TOLERANCE

HASHGRAPH CONSENSUS: DETAILED EXAMPLES

如何十分钟读懂Hashgraph?

鲸准研究院丨Hashgraph技术解析

+1
1

好文章,需要你的鼓励

参与评论
评论千万条,友善第一条
后参与讨论
提交评论0/1000

下一篇

很长一段时间以来,科学家一直都需要这样一款工具。

2018-07-11

36氪APP让一部分人先看到未来
36氪
鲸准
氪空间

推送和解读前沿、有料的科技创投资讯

一级市场金融信息和系统服务提供商

聚焦全球优秀创业者,项目融资率接近97%,领跑行业