美文网首页程序员@IT·互联网
《大咖说》:如何解决区块链交易效率之痛?

《大咖说》:如何解决区块链交易效率之痛?

作者: Trias | 来源:发表于2018-11-23 11:46 被阅读8次

    对话 | 大咖

    大咖

    陈凯,资深开发,中国科学技术大学硕士。曾就职于中国航天和用友集团。具备丰富的服务高并发开发经验,曾经开发的NIO系统在用友集团实现了百万级TPS访问的混合商务管理平台。

    作为核心人员,陈凯参与了开发完全自主可控的TPM可信计算服务平台,并对Ethereum和Eos的相关项目具有深刻的见解。

    我们知道,制约区块链商业落地的一大难点就是区块链项目的效率瓶颈,比特币网络的日常拥堵和高额的手续费越来越背离中本聪最初的设想。

    为了提高交易效率,无数人贡献出各种各样的解决办法,有什么办法是可行的呢?

    以下是陈凯先生带来的分享。

    一、分片背景

    目前,大多数区块链都面临可扩展性问题,大家都在努力提升TPS(每秒交易量)。就拿主流的比特币和以太坊来说,比特币每秒只能进行大约7笔交易,以太坊每秒大概7-15笔。

    首先,这样缓慢的TPS很容易造成网络拥堵,使区块链在高价值高并发的业务领域无法落地。比如以太坊的加密猫和Fcoin事件,一款产品的爆红,就能导致以太坊网络堵塞,交易确认异常缓慢等。

    其次,由于TPS并发太低,导致交易费用高、确认时间长、扩展性差,长此以往,社区可能会产生分裂,硬分叉成为常态,对行业产生巨大的不利影响,比如最近的BCH硬分叉事件,导致市场价值全线下挫。

    二、分片技术,是救命稻草嘛?

    为了解决上述问题,区块链开发人员提出了很多方案,比如增加区块大小 、链下交易、有向无环图、分片等,理论上讲,这些方法都是可行的,这里主要介绍分片技术。

    分片源于传统的数据库技术,将大型数据库分割成多个碎片部署到不同的服务器上。

    在区块链中,将整个网络节点分成很多小的网络,每个小网络运行更小范围的共识协议。交易被分割到不同的网络处理,这样就能并行处理大量验证工作。

    简单的讲,分片就是将大任务分成多个可并行处理的小任务,从而提升整个链的性能。

    在我看来,分片是一个比较好的解决问题的方案。比如以太坊曾要用来解决问题,遗憾的是,受限于共识机制等,直到现在以太坊也没把这件事落实。

    三、我最近研究的分片方法

    分片架构图:

    Main chain主链,主要提供注册和验证功能。注册功能主要针对节点注册,将节点通过相应算法添加到分片中。验证功能主要验证来自不同分片的交易头信息,只有主链验证通过以后,分片交易才能确认打包。

    每个主链节点都会维护一个待确认队列,分片将需要确认的交易头广播到主链每个节点的待确认队列中。

    主链目前采取的是轮询制,通过计算所有节点的可信状态,从可信节点中选出一个验证者,在一段时间内,该验证者从待确认队列中获取需要验证的分片头信息,主要验证签名是否合法,交易信息的hash是否符合链的连续性,时间是否符合特定时间段等。

    当验证时间段结束或者达到特定的交易数,验证者返回验证信息,并将验证通过的交易打包出块,同时更新状态,并广播当前最新状态。接着选出下一位验证者,开始进行验证。

    只有少数高信任值的节点才能充当验证者,当然,为鼓励这些节点,他们也会得到更多的激励。

    Sharding分片,支持多种类型的分片系统,存储管理部分用户的状态数据,维护独立的状态机,是合约的执行者。而合约执行的决定者,则由proposer、attester和main chain共同担任。

    此外off-chain主要支持链下快速交易,用户可以锁定部分账户金额,在链下通过签名等加密手段进行交易。当用户申请结束链下交易时,off-chain会自动同步链下交易信息。

    每条分片上都会有proposer,仅用来收集该分片的交易信息,分片信息包括了header和transaction信息,proposer将这些信息构造成shard blockshard block结构。

    Attester(可以称作验证者)  ,一般由信任度非常高的节点担任,主要用来校验shard block中的transaction并进行投票签名。为了避免恶意节点过多,每隔一定随机产生的时间间隔(称之为slot),attester便被分配到不同的分片。

    以下为攻击者在N个节点内,获取p%的节点权限时,能发起51%攻击的可能性。

    Attester接受到验证某个分片任务以后,开始验证分片中proposer收集的shard block,并达成BFT共识以后,才能产生main block(就是主链校验的内容),然后将main block广播到主链的待校验队列中。

    如果期间发现有任何attester作恶,会立即取消其验证者资格,并重新选择新的验证者。

    四、分片技术的未来

    分片技术难度较大,目前大部分的分片项目离商用还有很大距离。就拿以太坊来说,分片技术一直在迭代更新,上线时间却一再推迟。

    从项目可落地角度看,目前个人觉得可以将DAG作为突破口,结合我们现有的可信计算,根据可信值选出一定数量的节点,通过这些节点来加快DAG确认速度以及解决双花等问题。

    我认为,分片技术目前还处于起步状态,由于市场的浮躁,导致现在很多创业者盲目的加入到分片技术的创业中,简单的分片技术一味追求高TPS,而忽视了安全等问题,这样反而阻碍了技术的发展,分片技术的发展依然任道而重远。

    相关文章

      网友评论

        本文标题:《大咖说》:如何解决区块链交易效率之痛?

        本文链接:https://www.haomeiwen.com/subject/pufjqqtx.html