您的位置:首页 > 区块链 >

矢量化使得程序并行执行部分代码 智能合约也可支持

2019-08-20 10:51:07 来源: 区块网

现在有很多研究致力于如何通过分片来增强区块链的可扩展性。而据我所知,这些研究主要的想法是在不牺牲区块链(包括其所有的分片)的不可篡改

现在有很多研究致力于如何通过分片来增强区块链的可扩展性。而据我所知,这些研究主要的想法是在不牺牲区块链(包括其所有的分片)的不可篡改性和安全性的前提下,使在相互独立的分片中并行执行多个交易成为可能。我能找到的绝大部分研究都聚焦在分片的共识算法上。尽管所有这些研究看起来都很有前景,但我想通过一个不一样的视角来看待分片。

首先,为了论证我的观点,让我们一起来讨论一下现有分片设计中的共识算法。更准确地来说,是讨论当下正在开放的免信任型区块链上运行且可用的共识算法。尽管这些算法是可用的,并且已经在运行了,可是我们真的通过分片获得了希望中的可扩展性么?让我们快速了解一下阿尔达姆定律吧 [1] ,这样你更能体会到我的困惑:

上述定律表明,在理论上,执行所有任务的速度会随着系统资源的提升而加快,然而,无论提升的幅度有多大,理论速度总是受限于无法从改进中受益的那部分任务的执行速度 [2]。这带来了一个根本性的难题 —— 一旦所有可并行化部分的吞吐量都达到最大时,串行化部分的吞吐量将成为系统吞吐量的天花板。

对于区块链的分片来说,这就意味着吞吐量的潜在增长受限于当前可以在隔离的分片中同时执行的交易数量。也就是说,如果分片中的一笔交易需要来自其它分片的数据,它就不得不从其它分片中同步该数据的转移。这就是一种串行化事务,根据阿尔达姆定律,一大堆分片的存在限制了吞吐量。

独立的原生货币交易

如果两个账户之间的交易被明确地限制为仅在这两个账户之间转移货币余额,比如在两个账户之间发送货币, 那就不需要任何其它账户中的数据。因此,如果两个账户的数据同处于一个特定的分片中是可用的,那么这笔交易和其它账户的交易就可以被异步地执行。

当分片数量以及账户对之间不相关的交易数量上升时,网络吞吐量就扩展了。随着账户数量的增长,可以预见的是,对独立交易进行分片的可能性也会增加。在上述限制条件下,吞吐量的大小由执行单笔交易所需花费的时间决定,因为同一时间我们可以执行非常多的交易。这正是我们在考虑提高区块链吞吐量时想象到的理想情形。

为分片设计智能合约

但对于智能合约而言,情况不会有想象中那么顺利。智能合约是作为一个单独的账本账户被部署在区块链上的,账户中除了数据状态还有它的程序代码。代码上运行的每一笔交易都在改变智能合约中的数据状态。每一个改变都被记录在区块链上,并通过一个代表状态的哈希值进行验证。

为了保持区块链状态的确定性和连续性,每个智能合约每次只能在一个分片中执行,除非智能合约账户本身的状态也能被分片。总之,这使得对于所有往智能合约发送交易的账户而言,智能合约账户的执行成为了限制因素。由于智能合约被用于发行代币,因此随着特定代币流通量的增加,无论存在多少分片,其智能合约很有可能成为吞吐量的瓶颈,正如阿尔达姆定律所预测的那样。

就目前有关智能合约的分片实现来看,我只能看到两种可能通过分片提升扩展性的方式:

· 使用隔离在分片中的多个智能合约

· 使用确定性的多线程智能合约,(又称 SIMD)

使用多个智能合约可以充分发挥分片的优势。举例来说,如果每个智能合约(代表一个代币)都被分配到一个单独的分片中执行,那么对于一个特定的代币而言,其交易不会对其它代币的交易造成影响。尽管每种独立代币的交易都受限于它所在的特定分片中智能合约的吞吐量,但分片的数量可以随着大量且不断增长的代币而线性增长。这并没有解决单个智能合约的吞吐量问题,但是对于一个所有合约都在一条链上、没有分片的区块链而言,它是一个改进方案。

不过,即便使用这种方法,只要一个用户账户的状态被分散在不同分片间、又同时被需要(例如,使用原生货币来支付交易),问题还是会出现。

一种来自超级计算的叫做矢量化(vectorization)的技术使得程序能够并行地执行其部分代码。这就是为人熟知的的单指令多数据流(“SIMD”)。针对 SIMD 编写的程序都是确定性的。从本质上来说,SIMD 机器(也就是如今的通用型 GPU(“GUGPU”))是通过一系列的处理器来对其数据进行分片的。这对于某些类型的应用来说非常有效,诸如图形以及类似的矩阵运算。

理论上来说,这项技术也能被应用到区块链的智能合约中。也就是说,智能合约可以被明确地编写为通过某种方式来支持交易的并行执行。至于这要如何实施,我并不太清楚。也许在这片领域里会涌现出一些创新的区块链研究。然而,可以预见的是,即便有了一个这样的解决方案,编写一个适合 SIMD 运行的智能合约也会变得相当复杂。

无论是使用隔离在分片中的多个智能合约,还是使用 SIMD 智能合约,都很难算作一个理想的解决方案,尽管它们都有可能提高可扩展性。

智能对象资产使分片成为可能

对于智能合约的分片来说,其主要的限制因素在于状态的分片和代码的执行。如果存在一种方法可以避免在单个智能合约状态和代码执行中的交易串行化,分片就可以通过增加吞吐量来提升扩展性。换言之,如果存在一种多指令多数据流(“MIMD”)的执行方法,通过区块链分片来提升可扩展性的机会将显著提高。

正如我们在 “反思区块链账户概念” [3] 这篇文章中所描述的那样,如果每个用户账户都有它自己的状态,而不是使用相互独立的智能合约的话,那么每个用户账户都能包含代表资产的对象,无论该对象是代币还是其他类型的实体。正如文章 “可扩展的智能对象资产、智能对象资产所有权及基于 DataGrid 区块链的扩展区块链对象模型的分数级智能对象资产所有权” [4] 所述,XOSA 和对 XSOA 的引用可以被用于在账户状态之间通过交易直接转移账户之间的所有权。

举例来说,假设有两组交易,其中每笔交易都介于不同的账户之间,也就是说:一笔交易从账户 A 发送到账户 B;另一笔交易从账户 C 发送到账户 D,那么这两笔交易可以在不同的分片中被同时执行。进一步来说,因为 XSOA 的代码独立于任何账户,且对于每笔交易来说,代码可能并不相同,因此我们可以使用一个 MIMD 模型实现分片。在该模型中,每个分片中的代码和数据都各不相同。

对于这个模型而言,限制其可扩展性的因素是不相交的账户组之间能同时发生的交易数量。我们可以预见的是,随着账户数量的增长,不相交的账户组之间发生任意一组交易j的机会也会增加,这反过来将导致分片的机会也得到增加。

结论

作为一种已经假定可用的分片共识算法,一个突出的问题在于如何使用这些技术。智能合约天然地会将交易串行化,除非使用复杂的 SIMD 类型的解决方案,就只能通过使用多个隔离的智能合约来提供扩展性。即使使用这一方案,每个智能合约的吞吐量仍会受到单个分片的吞吐量限制。

通过重新让用户账户来包含状态信息,并使用 XBOM 模型,DataGrid 区块链提供了一种提升分片可扩展性的解决方案——根据账户的数量和账户之间的不相交交易来进行扩展。除了支持继承和实时代码重用以外,我们认为这是一个对于区块链扩展性问题的重要的解决方案。(Michael Holdmann)

关键词: 矢量化 并行执行 智能合约

精选 导读

募资55亿港元万物云启动招股 预计9月29日登陆港交所主板

万科9月19日早间公告,万物云当日启动招股,预计发行价介乎每股47 1港元至52 7港元,预计9月29日登陆港交所主板。按发行1 167亿股计算,万

发布时间: 2022-09-20 10:39
管理   2022-09-20

公募基金二季度持股情况曝光 隐形重仓股多为高端制造业

随着半年报披露收官,公募基金二季度持股情况曝光。截至今年二季度末,公募基金全市场基金总数为9794只,资产净值为269454 75亿元,同比上

发布时间: 2022-09-02 10:45
资讯   2022-09-02

又有上市公司宣布变卖房产 上市公司粉饰财报动作不断

再有上市公司宣布变卖房产。四川长虹25日称,拟以1 66亿元的转让底价挂牌出售31套房产。今年以来,A股公司出售房产不断。根据记者不完全统

发布时间: 2022-08-26 09:44
资讯   2022-08-26

16天12连板大港股份回复深交所关注函 股份继续冲高

回复交易所关注函后,大港股份继续冲高。8月11日大港股份高开,随后震荡走高,接近收盘时触及涨停,报20 2元 股。值得一提的是,在7月21日

发布时间: 2022-08-12 09:56
资讯   2022-08-12

万家基金再添第二大股东 中泰证券拟受让11%基金股权

7月13日,中泰证券发布公告,拟受让齐河众鑫投资有限公司(以下简称齐河众鑫)所持有的万家基金11%的股权,交易双方共同确定本次交易的标的资

发布时间: 2022-07-14 09:39
管理   2022-07-14

央行连续7日每天30亿元逆回购 对债市影响如何?

央行12日再次开展了30亿元逆回购操作,中标利率2 10%。这已是央行连续7日每天仅进行30亿元的逆回购缩量投放,创下去年1月以来的最低操作规

发布时间: 2022-07-13 09:38
资讯   2022-07-13

美元指数创近20年新高 黄金期货创出逾9个月新低

由于对美联储激进加息的担忧,美元指数11日大涨近1%创出近20年新高。受此影响,欧美股市、大宗商品均走弱,而黄金期货创出逾9个月新低。美

发布时间: 2022-07-13 09:36
资讯   2022-07-13

美股三大股指全线下跌 纳斯达克跌幅创下记录以来最大跌幅

今年上半年,美股持续回落。数据显示,道琼斯指数上半年下跌15 3%,纳斯达克综合指数下跌29 5%,标普500指数下跌20 6%。其中,纳斯达克连续

发布时间: 2022-07-04 09:51
推荐   2022-07-04

融资客热情回升 两市融资余额月内增加超344亿元

近期A股走强,沪指6月以来上涨4%,融资客热情明显回升。数据显示,截至6月16日,两市融资余额1 479万亿元,月内增加344 67亿元,最近一个半

发布时间: 2022-06-20 09:41
资讯   2022-06-20

4个交易日净买入超百亿元 北向资金持续流入A股市场

北向资金净流入态势延续。继6月15日净买入133 59亿元后,北向资金6月16日净买入44 52亿元。自5月27日至今,除6月13日以外,北向资金累计净

发布时间: 2022-06-17 09:37
推荐   2022-06-17