DRAW算法是如何把区块链交易速度提升到十万+级的?

众所周知,吞吐量一直是区块链的痛点。比特币的底层设计仅支持每秒7笔交易,这不及传统支付工具Visa每秒8000笔交易的一个零头,更别说支付宝在创造的每秒25.6万笔的记录。这严重制约了去中心化应用以及区块链的发展。

针对如何提高区块链的吞吐量以及交易确权的速度,业界也在不断尝试。近期,IFTC技术团队提出了这一问题的解决方案。IFTC团队前身一直服务于银行业的金融科技创新,主导了以支付结算系统为核心的银行支付结算体系及账户体系的开发和维护。2018年,IFTC技术团队独立研发了DRAW算法,以提高整个公有链的可扩展性,实现高吞吐量。

低吞吐量的弊端

目前公有链的低吞吐量会带来很多问题,例如高手续费问题。去年在以太坊上面最火的两个应用,一个就是ICO,另一个以太猫。以太猫在以太坊上最火的时候,占据了以太坊上超过30%的流量,导致整个以太坊有很多的拥塞。如果你想做一笔简单的转帐,必须支付非常昂贵的手续费才能完成这笔交易。

可以说低吞吐量导致了目前区块链行业没有杀手级应用出现。类似在互联网初期,整个底层系统可能还没搭好,同时网络费用又特别贵,只能导致用户浏览一些简单的网页。但随着整个互联网系统生态的发展,出现了像Google、Facebook、Twitter,以及国内的百度、阿里巴巴、腾讯。他们的崛起就是因为底层生态系统建设完毕。有了这样的高吞吐量,才使得更多的企业以及研发人员参与进来,创建出许多杀手级的应用。

现有的解决方案

目前来看,比特币处理交易的速度小于每秒10笔,以太坊小于每秒20笔,但传统的记帐系统,例如信用卡,交易速度超过每秒8000笔交易。如何解决低吞吐量的问题呢?目前有几种方案。

方案一,增加区块的大小。例如比特币,现有的一个区块的大小可能只有1MB的存储空间。如果要进行交易,只能把交易加到这1MB里面。去年年底的SegWit2x,将区块大小从1MB提高到2MB。但是出于对安全性和其他因素的考虑,最终Bitcoin Core取消了这个SegWit2x硬分叉。

方案二,链下交易。对应比特币的闪电网络(Lightning Network)和以太坊的Raiden Network。他们给出的解决方案大致是:提前支付一些以太坊或比特币作为押金,之后可在链下通过其他手段,来跟其他人进行交易。

方案三,代理人共识协议解决方案。如何选出这些代理人,你可以用权益证明,也可以通过一些官方的验证。不管是7个代理人还是21个代理人,甚至可能是几十个代理人,大家会形成一个小团体。之后去运行一些共识协议或者类似功能的协议,来达成一个共识,产生区块,然后再将区块广播给整个网络,从而达成整个网络的共识。

以上三种解决方案都是目前不错的解决方案,从不同维度,不同场景出发解决了吞吐量的问题。但三种方案并不能完美的解决区块链交易速度与安全性之间的矛盾。

一种新的解决方案——DRAW算法及双重区块冷藏技术

IFTC团队首次在 IFTC(Internet FinTech Chain)平台开发中采用了独立研发的双点逆向无环工作量证明共识算法(DRAW,Double Reverse Annulus Work)与IFTC双重区块冷藏技术(IFTC Double BlockFreezing)优化了目前区块链算法效率迟缓与安全性能的问题,使区块链交易速度提升到十万+级。这不仅推动了IFTC真正实现应用落地, 也将成为区块链研究史上的一个里程碑。而IFTC也以此为优势发行了自己的代币。

DRAW算法设计思路:让每一笔交易都必须参与上两笔与接下来N笔交易的复制搭建,以反向交易顺序完成交易记账,并在X笔记帐单位后由最后一个被搭复制者进行出块打包完成所有X笔交易的确权,形成最终交易组。交易发起后,向前面的TX发起搭建复制程序后直接广播全网,完成此笔交易记账,实现交易闭环,持续完成X笔后,由尾部最后一笔被搭建复制的TX完成整个交易的出块,以完成所有交易的确权。每一笔交易的记账者都需要完成前面所形成的所有区块的复制才能参与接下来每笔交易的记账。DRAW通过3点记账,出块确权的方式,进一步演优化了区块链底层应用的效率和安全性,是一种最全面的高校区块链应用底层解决方案。

双重区块冷藏技术的策略(DBRT.Double Block Refrigerating Technology)

DBRT设计思路:在当今的主流公共区块链上,所有公共节点都承担着存储交易、智能合约和各种状态的负担,这可能使其在为了获得更大的存储空间而进行巨大的花费,以维持其在区块链上的正常运转。为了解决这一问题,区块冷冻技术的可行方法已被提出。这一技术的关键是将整个存储区分开,让不同的节点存储不同的部分;因此,每个节点只负责托管自己的区块数据,而不是存储完整的区块链状态。冷冻的第一个也是最重要的挑战是创建N区块节点。需要开发一种机制来确定哪些节点可以按照安全的方式创建索引,这样就能避免那些控制大量特定节点的人所发起的攻击 。

打败攻击者的最佳方法是建立随机性。通过利用随机性,网络可以随机抽取节点形成索引。这样一种随机抽样的方式可以防止恶意节点过度填充单个索引。但是,我们如何建立随机性呢?最容易获得公共随机性的来源是区块,例如,交易的Merkle tree root。在区块中所提供的随机性是可被公开验证的,并且可以通过随机提取器中提取统一的随机比特。

然而,简单地使用随机机制将节点分配给索引仍是不够的。我们还必须要确保网络的不同节点索引成员数据的一致性。这可以通过像工作量证明这样的共识协议来实现。

IFTC团队声称更多技术细节将于2018年09月01日公布。未来,因为有IFCT这样相对高吞吐量的区块链平台,以及基于IFTC平台建立的担保支付账户体系、加密数字子货币发行、支付交易结算系统及去中心化数字货币交易所组成的可应用于垂直领域的基础链底层平台,才真正推动了区块链直接面向用户、实现了商业生态在区块链层面的应用与建设,从而重构全球商业。