PalletOne是由来多位技术带头人历时4年时间,经过数次迭代打造的跨链项目。这个项目的目标是:实现跨链的图灵完备的通用的区块链智能合约平台。
从黄皮书中,我们知道PalletOne中底层使用高性能LevelDB数据库来进行数据的管理和存储。今天我们来了解下LevelDB是如何高效支撑PalletOne的分布式账本,从而有效解决目前区块链技术的性能瓶颈。
1、PalletOne的分布式账本技术
在区块链技术中存在着不可能三角,即可扩展性、去中心化、安全性,这三者之间只能权衡,不可能完全优化。以BTC为例,BTC采用全网POW共识机制,随着全网矿工数量的增加,交易的确认速度反而变慢,目前每秒仅支持3~4笔交易,所以说BTC相当于放弃了可扩展性,而追求更好的去中心化和安全性。
然而随着智能合约技术的落地,高可扩展性和高性能逐渐成为更加关键的因素。在区块链的众多项目中,谁能率先解决性能问题,谁就能支撑区块链的大规模应用,谁就能占据优势。
为了解决高性能和高可扩展性问题,PalletOne使用了基于DAG(有向无环图)的分布式账本技术,该技术跳出了传统区块链单链的限制,在牺牲一定的去中心化的情况下,达到了高可扩展性和高性能。
为了直观一些,直接上图。图中的左侧即为传统的区块链单链结构,右侧则为DAG图链的结构。有向无环图(Directed Acyclic Graph,DAG)是一种可以从任意子节点追溯到创世节点的而不构成循环的一种图结构。
传统的单链结构在处理交易时,必须全网达成共识才能出块,才能确认交易。而DAG结构在处理交易时,不需要全网达成共识,只需要后面链接的交易来确认即可。由于不需要矿工通过挖矿来验证和确认交易,所以采用DAG结构的项目,将没有矿场垄断算力的风险,转账的手续费用也会更低,甚至免手续费。
DAG图链的技术优势
DAG图链相比于传统的单链技术,类似于CPU单核与多核的区别。传统的单链是由Block(区块)前后相连组成的链式结构,只能按出块时间依次同步写入,全网一条链,类似于单核CPU。而DAG图链是由TX(交易单元)组成的网状结构,交易不需要全网确认,因此可以异步并发的写入交易,类似于多核CPU。
因为单链的入度和出度只有一个,因此无法把链上的节点拆成多个去处理,但是对于图链却可以,因为图可以有多个出度和入度,因此具有如下优点:
(1)交易的确认速度快。DAG实现的局部处理,以及并行的异步结算,可以使得交易的确认时间大幅度缩短。
(2)可扩展性强。随着加入节点数的增多,全网的交易速度会不断增大,这是因为单个节点的交易不需要全网进行确认,所以会保持良好的可扩展性。
(3)安全性强。相比于单链结构,在DAG图链中恶意修改的难度会更大,这是因为DAG图中的每个节点,都拥有着各自不同的出度和入度。若想要修改某一个节点,那么该节点对应的所有出入度节点都需要进行修改,这显然更加困难。
具有以上优点的DAG图链结构的分布式账本,能够使得PalletOne实现高性能的跨链智能合约,在有高性能需求的区块链项目中,必将被广泛使用。
2、PalletOne的DAG
PalletOne中的DAG图,主要有以下交易单元构成:创世单元、父子单元和顶端单元。其中每个单元的描述如下:
(1)创世单元,也称为G单元,是由创世交易所构成的单元,该交易单元的特点就是没有父单元。而且所有后续单元,都可以通过引用关系,遍历DAG图,从而可以到达该单元。
(2)父单元和子单元,这是一种相对的称谓,从单元A出发可直接到达单元B,也就是说单元A到单元B的路径长度为1,此时单元B称为单元A的父单元,单元A称为单元B的子单元。
(3)顶端单元,不具有任何子单元的单元,也可称为未经验证的单元。
在PalletOne中父单元的选择分为两种情况:一种情况是认证单元的父单元选择。另一种情况是非认证单元(例如:普通交易单元、合约模板部署单元和合约创建单元等等)。第一种情况父单元的选择原则是直接引用被认证的交易单元。第二种情况父单元的选择原则是就近原则,即对所有子单元根据单元哈希进行排序,然后尽可能选择较小的单元为父单元。该原则的目的是为了将DAG进行收敛,最后可以形成一条链。
在PalletOne中主链的确认过程分为三步:(1)最优父单元选择,首先,见证级别最高的父单元为最优父单元,如果见证级别相同,则单元级别最低的作为最优父单元,如果两者都相同,则选择单元哈希值(base64 编码)更小的作为最优父单元。(2)候选主链生成从任何一个顶端单元出发到达创世单元的最优路径称为候选主链。而候选主链通过最优父单元选择来确定。不同的候选主链会在某个单元位置交叉(最差的情况是在创世单元交叉),该交叉点称为稳定点。(3)稳定主链生成对于所有候选主链,从稳定点到创世单元的路径完全相同,该路径称为稳定主链。
3、写在最后
PalletOne 使用基于DAG图链技术的分布式账本,有效解决了传统区块链中只有一条主链,无法异步并行高性能执行的问题,明显缩短了交易的确认时间。同时使用高性能LevelDB数据库对于DAG的图链进行存储和读取,可以进一步提升平台的交易性能。在这种抢占高性能制高点的博弈中,使用DAG结构的PalletOne已经保持了明显的优势。
网友评论