乐趣区

区块链 | 区块链可用性方面的挑战

区块链是一种起源于 2008 年的分布式账本系统,在随后的发展中逐渐扩充了功能和用途,实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案。
而新一代区块链具有去中心化、时序数据、集体维护、可编程等特点。首先是去中心化: 区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构, 采用纯数学方法而不是中心机 构来建立分布式节点间的信任关系, 从而形成去中心化的可信任的分布式系统; 其次是时序数据: 区块链采用带有时间戳的链式区块结构存储数据, 从而为数据增加了时间维度, 具有极强的可验证性和可追溯性; 第三是集体维护: 区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程 (如比特币的“挖矿”过程), 并通过共识算法来选择特定的节点将新区块添加到区块链; 第四是可编程: 区块链技术可提供灵活的脚本代码系统, 支持用户创建高级的智能合约、货币或其他去中心化应用. 例如, 以太坊 (Ethereum) 平台即提供了图灵完备的脚本语言以供用户来构建任何可以精确定义的智能合约或交易类型。
在对于区块链的研究中,研究人员首先通过比特币 30 万次交易的数据,分析了影响比特币提交时间的因素。首先是作为矿工激励因素的手续费,更高的手续费能够吸引矿工优先将该交易写入区块从而更快地提交。而 locktime 则是主动设定延时,开始时此交易是无效的,直到指定区块被挖出该交易才变成有效并被提交到网络。最后是交易请求的到达顺序,对于一个交易链条其中的交易到达的顺序并不会是相同的,如果一笔交易先于其父先交易到达,即源交易不明的孤立交易,该交易会进入内存池等待或者超时后删除。通过研究发现手续费、locktime 都不是造成交易链条中的子孙交易延迟提交的关键因素。
在对以太坊的实验中,研究人员发现对于交易费在 25Gwei 以下的交易,gas price 越高提交所需的延迟越短。但当 gas price 大于 25Gwei,手续费对延迟的影响就比较小了。且实验结果显示 gas limit 与提交延迟没有太大关联。作者最后对网络延迟进行了分析,发现对于有序和无序的交易序列来说,gas price 的影响不大,并且网络的连通性对于交易的广播有消极的影响。
对于目前的区块链来说,一个主要的问题就是无法保证交易一定能完成,且不能准确确定交易的完成时间。更致命的一点是目前的区块链系统并没有相应的问题处理机制,如在指定时间内交易未完成后主动取消交易,导致区块链在实际应用中的可用性较差。而在《区块链技术发展现状和展望》中提到的一系列应用,在性能较差、不确定性高、问题处理机制匮乏的网络中的实际性能堪忧。
对于当前的区块链系统,其现有机制导致从系统中读取信息的能力远强于写入信息的能力,且提交所需的延迟和成功与否都具有较大的不确定性。从底层提高系统对信息的处理是比较好的解决手段,但当底层改进较为困难时则需要在当前基础上改进时,提供一个主动终止交易的机制就能够发挥重要的作用,使得交易结果可控,提高了系统的可用性。从中也可以看出,当前的区块链系统,虽然系统中的使用硬件的算力已经比较高,但是处理能力仍然不足,不能够支撑计算密集的智能合约或者高频交易且容易受到 Dos 攻击的影响。所以未来可以考虑将从区块链系统设计层面提高系统处理能力、改善等待机制提高提交成功率和添加完善真正应用所需的功能作为主要研究方向,进一步提高系统可用性。

“On Availability For Blockchain based Systems”, Ingo Weber∗†, Vincent Gramoli‡∗, Alex Ponomarev∗, Mark Staples∗†, Ralph Holz‡∗, An Binh Tran∗, Paul Rimba∗

退出移动版