您当前的位置:首页 > 财经 > 区块链

Khipu(奇普):目前世界上最快的以太坊实现

2019-07-03 来源:  作者:
摘要:近段时间,随着比特币的持续高涨和波动幅度牵动着每一个币友们的心,币圈的投资热情也被调动起来,对于下一个牛市是否能早日到来迫切期待,同时也带动更多的人参与到区块链行业中。

近段时间,随着比特币的持续高涨和波动幅度牵动着每一个币友们的心,币圈的投资热情也被调动起来,对于下一个牛市是否能早日到来迫切期待,同时也带动更多的人参与到区块链行业中。

远观从中本聪提出比特币,再到V神提出以太坊,至今正好过去十年。区块链技术从一个小规模的加密货币实验,发展到每天有数百万、数千万帐号参与的大规模分布式应用。区块链的一个重要方向是利用数字货币与传统银行和金融市场做对接。值得可喜的是越来越多的人参与到行业中必然会引入更多的资金并推动区块链更好的发展,与之相对应,对于现有区块链2.0基于以太坊实现的性能要求也将随之升高。

当下,以太坊的性能提升面临多项瓶颈,区块链技术革新的需求应运而生。相信下一个牛市之前,区块链将会有显著的改善与提升。Khipu对以太坊所面临的问题进行探索与革新更显现出了必要性和前瞻性。

image.png

以太坊的瓶颈究竟在哪里?

我们把以太坊作为典型案例,是因为它是在通往分布式计算终极形态的道路上不做出任一项妥协的区块链实现。那么,究竟以太坊在单节点上执行区块的极限在哪里?瓶颈又在哪里呢?

以太坊对于企业应用来说,当前的主要瓶颈是TPS。TPS 的提升,一个方案是分片,比如以目前的处理能力(TPS理论值25左右),100 条分片链就可能达到 2,500 TPS,代价是原来比如能有5万个节点背书一条链,现在变成每条链只有 1/100 ,也即 500 个节点,TPS 上去了,但安全和可信度下降。所以提升单链的 TPS (也即单节点的 TPS)是最关键的,比如提升到 1,000 TPS,那么10 条分片链就可能达到 10,000 TPS,这时每条链仍然保证 5,000 个节点背书。TPS关系到CPU的提升,现在只能单线程串行执行交易,只有实现并行执行交易的能力才能达到CPU突破。

区块内合约并行执行的难度在于我们并不预先知道合约彼此之间的依赖关系。以太坊合约可能存在并发竞态的地方体现在对同一地址的Account, Storage和Evn Code的存取。假如让用户在编写合约时识别和标明会发生竞态冲突的地址范围,从以上三种可能出现的竞态来看,让用户识别和标明并保证不出错且无遗漏显然是不现实的。竞态究竟是否会出现、在何处出现、在什么条件分叉下会出现,只有当确定性地获得涉及的当前状态后才可能作出判断。这种判断,以目前的合约编程语言,几乎不可能通过对代码的静态分析来获得完全正确且无遗漏的结果。

但这并不意味区块内合约的并行执行一定不可能做到。有意思的是这个问题以太坊提出来好几年了,但并没有人真正去尝试一下。其实,目前这个问题更是个工程问题而非理论或设计,在工程实施过程中能摸索到设计中存在的问题,接下来才能提出更好的设计。

Khipu突破2.0瓶颈,解决实际困难

Khipu 领先在这方面作出了较全面的尝试,并完成了工程实现。

Khipu 的实现方案是每条交易都从前一期区块的世界状态开始,分别并行执行,在执行过程中记下所有理想经历路径上遇到的以上三种竞态。在并行阶段结束后,转入合并阶段。合并阶段开始逐条合并并行的世界状态,每合并一条交易时,先从记录下来的竞态条件中判断是否与前面已经合并的竞态条件有冲突,如果没有,直接合并;如果有,则将这条交易以前面已经合并的世界状态为起点再执行一次。最后合并的世界状态,将用区块的哈希做最后的校验,这是最后一道防线,如果校验有误,则放弃前面的并行方案,将区块内的交易重新按串行执行。

Khipu 在这里引入了一个并行度指标,即某一区块内能够不需要再次执行就可以直接合并结果的交易的比例。从 Khipu 实际测试的结果看,这个并行比例平均可达 80%。

总体而言,如果计算任务可以被完全的并行化,单链的可扩展性就会是无限的:你可以往每一个节点里添加更多的 CPU 核心数量。若事实不是这样,则最大的理论速率就受限于安达尔定理(Amdahl’s law):你能给系统进行提速的极限取决于那些不能进行并行化的部分的倒数。如果你可以进行 99% 的并行化,那么你就可以提速到 100 倍;但如果只能实现 95% 的并行化,那么就只能提速到 20 倍。在以太坊的例子中,若有 80% 的并行化,则有 20% 是不能并行化的,那么 20%的倒数即 5,所以Khipu可提速的极限是 5 倍。

以太坊的另一个局限在于单机在有上一级trie node时的存取效率,这个漏洞使得以太坊在2016年遭受DDos的攻击。Khipu在分析现有的储存引擎漏洞以及区块链数据特点后,专门开发了一个适合区块链kv数据的存储引擎Kesque。新型的引擎测试结果表明对于上亿规模的以太坊kv数据记录,发生冲突碰撞的概率只有千分之一。那么在99%的情况下,给定一个key,磁盘IO最多只要一次就可以加载到准确的对应记录。这个新设计的存储引擎,在处理上亿以太坊典型数据时,随机读的能力比 LevelDB 高出一个数量级。

Khipu成为目前世界上最快的以太坊实现

Khipu 对于以太坊交易并行执行及专门设计的储存引擎Kesque的优化,使得Khipu在一台 32G 内存,SATA SSD 硬盘、 Intel® Xeon® E3-1231 v3 @ 3.40GHz 四核 CPU 的机器上,批量处理 640 多万号的 6184 个区块,Khipu 的性能达到了:每秒处理 4.11 区块,实际 384 TPS,每秒能执行 23.5 mgas,并行度 80%,处理速度为 Rust 语言开发的 Parity-2.1.5 的 2 倍,成为目前世界上最快的以太坊实现。

Khipu并行执行的突破是历史性的革新,以太坊的性能由此向前迈出一大步,为未来区块链行业发展铸造了一个新的台阶。Khipu也将有效的将自身技术的优势应用到多种场景中,第一个推出的将是去中心化的Khipu搜索引擎。在此基础上Khipu也会实现更多的应用场景。Khipu技术也会继续寻求更高的突破,创造更多可能。


免责声明:本文转载上述内容出于传递更多信息之目的,不代表本网的观点和立场,故本网对其真实性不负责,也不构成任何其他建议;本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

热门推荐
返回顶部
'); })();