现在有很多研究致力于如何通过分片来增强区块链的可扩展性。而据我所知,这些研究主要的想法是在不牺牲区块链的不可篡改性和安全性的前提下,使在相互独立的分片中并行执行多个交易成为可能。我能找到的绝大部分研究都聚焦在分片的共识算法上。尽管所有这些研究看起来都很有前景,但我想通过一个不一样的视角来看待分片。首先,为了论证我的观点,让我们一起来讨论一下现有分片设计中的共识算法。更准确地来说,是讨论当下正在开放的免信任型区块链上运行且可用的共识算法。尽管这些算法是可用的,并且已经在运行了,可是我们真的通过分片获得了希望中的可扩展性么?让我们快速了解一下阿尔达姆定律吧,这样你更能体会到我的困惑:
-阿尔达姆定律-上述定律表明,在理论上,执行所有任务的速度会随着系统资源的提升而加快,然而,无论提升的幅度有多大,理论速度总是受限于无法从改进中受益的那部分任务的执行速度。这带来了一个根本性的难题——一旦所有可并行化部分的吞吐量都达到最大时,串行化部分的吞吐量将成为系统吞吐量的天花板。对于区块链的分片来说,这就意味着吞吐量的潜在增长受限于当前可以在隔离的分片中同时执行的交易数量。也就是说,如果分片中的一笔交易需要来自其它分片的数据,它就不得不从其它分片中同步该数据的转移。这就是一种串行化事务,根据阿尔达姆定律,一大堆分片的存在限制了吞吐量。独立的原生货币交易
EOS突破4.8美元关口 日内跌幅为10.04%:火币全球站数据显示,EOS短线上涨,突破4.8美元关口,现报4.8002美元,日内跌幅达到10.04%,行情波动较大,请做好风险控制。[2021/5/23 22:34:15]
如果两个账户之间的交易被明确地限制为仅在这两个账户之间转移货币余额,比如在两个账户之间发送货币,那就不需要任何其它账户中的数据。因此,如果两个账户的数据同处于一个特定的分片中是可用的,那么这笔交易和其它账户的交易就可以被异步地执行。当分片数量以及账户对之间不相关的交易数量上升时,网络吞吐量就扩展了。随着账户数量的增长,可以预见的是,对独立交易进行分片的可能性也会增加。在上述限制条件下,吞吐量的大小由执行单笔交易所需花费的时间决定,因为同一时间我们可以执行非常多的交易。这正是我们在考虑提高区块链吞吐量时想象到的理想情形。为分片设计智能合约
动态 | 弗吉尼亚理工大学学生设计利用EOS区块链平台监控课堂出勤情况:据TheRoanokeTimes消息,弗吉尼亚理工大学四个大三学生正在他们的课堂项目上合作,将建立一个区块链计划,该计划将使用block.one中的EOS区块链平台监控课堂出勤情况。科技工程学院院长Julia Ross也表示,对于大学管理人员来说,开展区块链工作对于想要保持领先地位的大学来说是有意义的。[2019/2/19]
但对于智能合约而言,情况不会有想象中那么顺利。智能合约是作为一个单独的账本账户被部署在区块链上的,账户中除了数据状态还有它的程序代码。代码上运行的每一笔交易都在改变智能合约中的数据状态。每一个改变都被记录在区块链上,并通过一个代表状态的哈希值进行验证。为了保持区块链状态的确定性和连续性,每个智能合约每次只能在一个分片中执行,除非智能合约账户本身的状态也能被分片。总之,这使得对于所有往智能合约发送交易的账户而言,智能合约账户的执行成为了限制因素。由于智能合约被用于发行代币,因此随着特定代币流通量的增加,无论存在多少分片,其智能合约很有可能成为吞吐量的瓶颈,正如阿尔达姆定律所预测的那样。就目前有关智能合约的分片实现来看,我只能看到两种可能通过分片提升扩展性的方式:使用隔离在分片中的多个智能合约使用确定性的多线程智能合约,使用多个智能合约可以充分发挥分片的优势。举例来说,如果每个智能合约都被分配到一个单独的分片中执行,那么对于一个特定的代币而言,其交易不会对其它代币的交易造成影响。尽管每种独立代币的交易都受限于它所在的特定分片中智能合约的吞吐量,但分片的数量可以随着大量且不断增长的代币而线性增长。这并没有解决单个智能合约的吞吐量问题,但是对于一个所有合约都在一条链上、没有分片的区块链而言,它是一个改进方案。不过,即便使用这种方法,只要一个用户账户的状态被分散在不同分片间、又同时被需要,问题还是会出现。一种来自超级计算的叫做矢量化的技术使得程序能够并行地执行其部分代码。这就是为人熟知的的单指令多数据流。针对SIMD编写的程序都是确定性的。从本质上来说,SIMD机器)是通过一系列的处理器来对其数据进行分片的。这对于某些类型的应用来说非常有效,诸如图形以及类似的矩阵运算。理论上来说,这项技术也能被应用到区块链的智能合约中。也就是说,智能合约可以被明确地编写为通过某种方式来支持交易的并行执行。至于这要如何实施,我并不太清楚。也许在这片领域里会涌现出一些创新的区块链研究。然而,可以预见的是,即便有了一个这样的解决方案,编写一个适合SIMD运行的智能合约也会变得相当复杂。无论是使用隔离在分片中的多个智能合约,还是使用SIMD智能合约,都很难算作一个理想的解决方案,尽管它们都有可能提高可扩展性。智能对象资产使分片成为可能
行情 | EOS 出现剧烈波动:据Binance数据显示,下跌: EOS 现报价3.40美元,1小时变化超过$0.07,波动较大,请做好风险控制[2018/11/26]
对于智能合约的分片来说,其主要的限制因素在于状态的分片和代码的执行。如果存在一种方法可以避免在单个智能合约状态和代码执行中的交易串行化,分片就可以通过增加吞吐量来提升扩展性。换言之,如果存在一种多指令多数据流的执行方法,通过区块链分片来提升可扩展性的机会将显著提高。正如我们在“反思区块链账户概念”这篇文章中所描述的那样,如果每个用户账户都有它自己的状态,而不是使用相互独立的智能合约的话,那么每个用户账户都能包含代表资产的对象,无论该对象是代币还是其他类型的实体。正如文章“可扩展的智能对象资产、智能对象资产所有权及基于DataGrid区块链的扩展区块链对象模型的分数级智能对象资产所有权”所述,XOSA和对XSOA的引用可以被用于在账户状态之间通过交易直接转移账户之间的所有权。举例来说,假设有两组交易,其中每笔交易都介于不同的账户之间,也就是说:一笔交易从账户A发送到账户B;另一笔交易从账户C发送到账户D,那么这两笔交易可以在不同的分片中被同时执行。进一步来说,因为XSOA的代码独立于任何账户,且对于每笔交易来说,代码可能并不相同,因此我们可以使用一个MIMD模型实现分片。在该模型中,每个分片中的代码和数据都各不相同。对于这个模型而言,限制其可扩展性的因素是不相交的账户组之间能同时发生的交易数量。我们可以预见的是,随着账户数量的增长,不相交的账户组之间发生任意一组交易j的机会也会增加,这反过来将导致分片的机会也得到增加。结论
动态 | 区块链活跃度指数排名中EOS排名第三:据IMEOS报道,根据blocktivity.info的数据显示,截止北京时间18年09月23日11点00分 ,区块链活跃度指数排名前五名分别为:Steem、BitShares、EOS、Bitcoin、Ethereum。其中EOS的Activity指数为946500,排名第3。Activity指数为最近24小时内在区块链上执行的操作数量。[2018/9/23]
作为一种已经假定可用的分片共识算法,一个突出的问题在于如何使用这些技术。智能合约天然地会将交易串行化,除非使用复杂的SIMD类型的解决方案,就只能通过使用多个隔离的智能合约来提供扩展性。即使使用这一方案,每个智能合约的吞吐量仍会受到单个分片的吞吐量限制。通过重新让用户账户来包含状态信息,并使用XBOM模型,DataGrid区块链提供了一种提升分片可扩展性的解决方案——根据账户的数量和账户之间的不相交交易来进行扩展。除了支持继承和实时代码重用以外,我们认为这是一个对于区块链扩展性问题的重要的解决方案。
行情 | EOS币热度升为第二:根据TokenClub数据显示,BTC在币热度榜上排名第一,24小时内访问量为38104,相比之前33396,访问量上升至4708,涨幅约为14.10%;排名第二,EOS 24小时内访问量为22431,相比之前16864,访问量上升2389,涨幅约为33.01%;ETH排名第三,24小时内访问量为22209;相比之前19904,访问量上升5345,涨幅约为10.38%。[2018/7/18]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。