一条以“快”为特点的公链要如何炼成?
当我们说起区块链技术和应用,很多开发者都热衷于构建各种DAPP,但遗憾的是如今公链的速度与可扩展性一直未能很好地解决。
“现在所有的区块链应用都是噱头,它的发展还处于‘Dos系统’时期,所以当底层结构还没有达到足以支撑这些应用的时候,去谈论做游戏等应用都还为时尚早。”
贾朝直言不讳地谈到了他对于现在区块链的看法,而为了做好这个底层系统,贾朝开始了Ambr项目。
Ambr的诞生:为DAPP应用搭建平台
作为Ambr的创始人兼CEO,贾朝出生于1995年,是如假包换的95后。虽然年纪不大,但是他在区块链这个圈子内已经沉浮多年。
2013年,贾朝第一次接触区块链,最开始他还是挺怀疑这个技术,觉得可能是庞氏骗局,但当他把比特币白皮书里的代码结构研究完,贾朝坚信“这种底层分布式技术一定是未来。”
之后,贾朝陆续做起了一些区块链项目,在技术和投资方面都有所涉猎。随着对区块链技术的认知愈加深入而客观,贾朝发现区块链底层技术其实有着巨大的发展空间,如以太坊的交易速度就是有待提升的方面。
“我觉得不同的区块链平台有不同的目的,所以就想自己设计一个平台。”贾朝解释道。
于是,Ambr的萌芽就生在了贾朝的心上。在加拿大组建团队期间,贾朝还找到了滑铁卢大学的教授,帮助他们搭建底层的架构。
认定了要做底层架构,贾朝开始寻求新技术。介于以太坊等公链普遍存在交易速度慢的问题,贾朝找到了DAG(有向无环图)技术,一项可以提升平台交易速度的技术。但是,对于如何利用这项技术去设计一个公有链,贾朝却是一直都没有头绪。
2017年,IOTA的设计尝试给了贾朝很大的启发,但是其中一致性的问题一直没解决,于是他开始了自己用DAG技术去设计平台的漫漫长路。
以“快”为特点的Ambr如何解决一致性问题?
众所周知,DAG没有区块的概念,所以它就没有出块的延迟,交易的及时确认速度会有很大提升,同时因为不需要出块,DAG也没有并发量的限制,从理论上来说,这种技术解决了区块链底层和网络底层的限制。
“尽管DAG在市场上已经公认速度非常快,但是它有一个缺点,就是它的一致性问题。”
与同样使用DAG技术的IOTA和Byteball相比较,Ambr既保留了手续费,也去掉了中心化的“见证人”。
贾朝提出了名为Galaxygraph算法的解决方案,“我们设计了复合性节点,不同的节点确认不同类型交易,赚取不同的手续费,比如普通节点可以验证普通交易,当它升级的时候,能够验证更高级的合约交易,高级节点也意味着它的服务器性能很高。同时,节点本身由历史信用来升级,如果它作恶的话,就会给它的信用降级,在一定程度上防范攻击。”
值得指出的是,因为共识层的复合型节点设计,Ambr将中心化的服务器变成了分布式节点,即每一个用户也可以当作节点,以实现更高的处理效率,同时达到更高强度的去中心化。
在激励制度的设计上,其实不可避免的也有手续费分发问题。贾朝解释道:“激励制度设计本身主要存在两个问题:一方面就是,因为同一时刻会出现A和B进入链中的问题,所以你不知道将手续费分发给谁;另一方面就是B先进入,但是在不同节点,所以你也不知道将手续费分发给谁。”
对此,他们提出了缓冲器的设计,并在手续费上加了伴生交易模块,即交易产生后,发生的交易费用中包含了手续费和交易确认两部分,伴生交易用于交易的确认,而确认后手续费将延时到账。通过这一设计解决了一致性的问题。
对智能合约进行时间排序,有序执行
类似的,为了解决智能合约设计中的一致性问题,Ambr也通过权重设计为其加入了缓冲器设计。
那么具体要如何解决两个智能合约的时序问题呢?
贾朝举了个例子,“合约a和合约b要在T1到T2的这个时间缓冲期里对他们进行排序,然后进行预操作。T1到T2是预操作阶段,T2时刻记作权重W1,从T2开始正式执行,执行后它会经过W1到W2的权重周期。在这个权重周期里面,节点就开始执行合约,等到了W2的时候,如果你没有执行完或者执行错误,就会降低这个节点的信用。”
所以为了进行优化,Ambr将指定时间域作为合约执行缓冲期,在一定权重周期内达成全网共识, 以此来解决DAG网络偏序结构下难以实现智能合约的痛点。
Ambr同时还思考了跨链的设计,传统的基于DAG的平台,在跨链过程中存在“协调者”的角色,如交易所的存在,而这本质上还是偏向中心化的。为了尽可能的去中心化,Ambr在多链共识设计中引入报信人与验证者角色,分别将其用于消息通信与交易确认,以进一步优化现有的跨链技术。
总而言之,用贾朝的话说:“我们的主要特点就是体现在交易、智能合约和多链(跨链)的设计上。”
结语:
虽然Ambr针对传统公有链存在的问题进行了多方面的优化,但是贾朝表示,不可否认,底层架构的发展还有很长的路要走,并且在当下,Ambr平台本身还有很多技术难点亟需突破,如合约交易和跨链交易如何特定来区分的问题。
接下来,Ambr将会首先落实DAG和智能合约的设计,然后才会根据提出的解决方案,一步步实验,将跨链系统落实到平台上。