APP
中国版App下载 Android & iPhone
金色专栏
  • 发布文章
  • 发布活动

除了分片 侧链 减少节点,Solana公链正在尝试一种新的提速方案

❖写在前面❖

公链的性能一直是被我们所诟病的。

 

目前,分片、侧链、减少节点是提高公链性能的方案。然而,solana提出了一种新的解决方案,这种解决方案是现在的区块链中从来不曾存在的,是solana首创的公链提速方案。

 

不谈币,单说Solana的技术创新,这是一个公链提速的新方案。

 

❖What:Solana是什么❖

➤高性能

Solana是一条高性能、POS共识的开源公链,通过使用历史证明序列,使其实现了公链提速。除此以外,在Solana公链上,数据的传输和存储,都具有一定的创新。

 

当然,Solana也是该项目开发团队的公司名称,相当于EOS公链的开发公司Blockone,都是合法注册的公司制机构。

 

➤筹资与上所

Solana非常重视技术和性能,目前测试网络顺利运行中,但是Solana暂时还没有上线任何交易所,也没有登陆coinmarketcap。

 

这不是因为Solana没有钱,Solana在2019年7月,就在Multicoin Capital领导的A轮融资中筹集了2000万美元,参与方包括Distributed Global,Blocktower Capital,Foundation Capital,Blockchange VC,Slow Ventures,NEO Global Capital,Passport Capital和Rockaway风险投资。

 

➤专注技术

TVB找到了github上Solana的代码提交情况:

FvoZD5S98eKnOBp532q71pmEDaF0.png?w=554&h=244

Fil5XXHJ3EaQzkMveRN_GvYVOwmP.png?w=376&h=931

可以看到Solana不仅有高频的代码更新,并且有多个开发者在提交代码。Solana紧锣密鼓地在搞开发,却不急着上交易所,这比很多项目好太多。

❖HOW:如何提速❖

那么这个Solana是如何实现高性能的呢?

 

➤历史证明序列

历史证明序列,是Solana公链最关键的创新点,也是Solana公链实现高性能的原因。

 

什么是历史证明呢?来看这张图:

FkXrKd9cIhyoV7ohiWfC0FAUmBB0.png?w=366&h=186

这是一张刊登在2014 年 10 月 14 日纽约时报上的照片。有趣的是,照片上的奥巴马手中拿着一张2014年10月12日的报纸。

毫无疑问,照片中的场景发生在2014年10月12日报纸发行以后,在2014 年 10 月 14 日报纸排版之前。

这就是一个历史证明。这个报纸上保存了它的时间,以及上一个时间。

上图的这张报纸就相当于Solana的一个区块,它保存着这份报纸的内容和时间,同时也保存了上一份报纸的内容和时间,这样可以充分的证明这两份报纸上事件的历史顺序。所以叫历史证明。

历史证明序列,与其他区块链有什么不同呢?下图是其他区块链的区块结构的简化图:

FvYhBJTKZujdC5uUAZmw8UbLHQxs.png?w=650&h=262

每一个区块的数据,会经过哈希加密,生成一个哈希值,而这个哈希值会保存在下一个区块中,这样区块之间彼此相互衔接形成区块链。比特币也好、以太坊好也好,其他的区块链大体上都是这样的结构。

 

问题来了,如果一个区块没有完成,比如出块以后,验证节点没有完成确认,那么这个区块中的信息就是待确认交易,未成的区块就不能生成哈希,下一个区块就也就不能继续下去。问题是用户不等你,人家该转账就转账,该玩游戏就玩游戏,该交易就交易……于是后面的交易就卡在这里了。

 

而Solana呢,在它的区块结构中,不仅有上一个区块的哈希值,同时还有上一个区块的时间戳。这样的话,每一个区块都会有它自己的时间,以及上一个区块的时间,这样就可以明确区块的历史顺序,就像前面的那张报纸一样:

FhJW028pJ1ZmJn8Ko4N8172fb2n0.png?w=656&h=264

历史证明序列的优势主要有两个表现,一是支持区块的并列处理,二是防止内存池的拥堵。

 

1.并行处理

分片,是通过把全网分成几个片,这样在运行时,由于每个分片中的节点变少了,所以通讯时压力较小,这样发生这种拥挤的可能性和拥挤的程度就会变小,但还是会拥挤。

 

侧链,是通过跨链,把主链上的一些事务转移到侧链上去运行。比如某一种币的交易可以移到侧链上去。如果随便就搞侧链,搞太多了,和主链的关系会变得薄弱,主链的意义就不大了。比如每个币都搞个侧链去运行,那和重新做个链就也差不多了。

 

减少节点,就是DPOS这种解决方案,由于节点数据较少,性能确实提高了,但是形成了一定程度的中心化,无论是在记账还是通证分配上,都会有中心化的问题,这就给公链的治理带来了极大的挑战,EOS就是这种困局。

 

而Solana就像值班一样,节点轮流把信息打包写成区块,无需等待上一个区块完成。这样可以保证区块链序时地、顺利地进行。

 

各个区块的验证也可以并行,验证者可以分别去验证各个区块的信息。

 

2.内存灵活

出块待确认的交易位于内存池中,而交易太多会拥挤在内存池中。而在Solana中,如果某一个区块出现拥挤,交易可以进入下个区块中,相当于内存流动到一个新的内存池中,由下一个区块的领导者将其打包,也就不再有内存池拥挤这样发生了。

 

➤POS+Tower BFT共识

在Solana的POS+Tower BFT共识中,由领导者负责记账,也就是将信息打包成区块;验证者负责对区块信息进行验证和确认。

 

当然,成为领导者或验证器,都需要抵押Solana的通证,这是POS共识的规则。POS共识,只有抵押通证,才可以参与记账和验证,包括攻击者在内。不同于POW,POS共识中,攻击者必须要抵押大量通证才可以进行攻击,攻击成本过高,因此POS相对于POW具有更高的安全性。不同于DPOS等共识,POS共识由大量节点参与,因此具有高度的去中心化。

 

领导者在记账时按照历史证明序列来工作。Solana将每一个工作纪元划分为若干时隙,再将验证者随机排序,然后将时隙分给验证者。相当于给验证者排好了值班表。由于使用历史证明序列,区块之间的前后顺序由时间戳来标识,每个区块不需要等待上一个区块的完成就可以产生,因此具有更高的工作速度。

 

验证者在验证时,按照BFT共识算法。BFT是一种容错算法,他允许验证器在验证时出现失误,但是失误率不可以超过1/3,只要超过2/3的验证验证通过,就可以接受这个被大多数验证器确认的区块。不可能同时存在2个区块同时获得2/3的支持,因此不会产生分叉。

 

❖WHO:核心团队❖

 

Solana团队核心成员如下:

Ftc7-vnN9SjUj770TW-PO2Njvf3U.png?w=786&h=353

CEO毕业于伊利诺伊大学香槟分校,曾经是小型企业的VoIP系统开发公司的创始人和工开发人员,曾经担任高通公司的高级工程师等。他曾经从事Mesosphere的分布式系统以及Dropbox的压缩,拥有2项高性能操作系统协议的专利,是BREW的核心内核开发人员,为每台CDMA翻盖手机(100m +设备)提供动力。

CTO先后毕业于伊利诺伊大学香槟分校、加州大学圣地亚哥分校,曾经为小企业开发了一种基于Linux的IP-PBX电话系统。该产品被授予Linux Journal的每日产品。他曾是高通公司首席科学家,他为BREW操作系统在C和Lua之间创建了双向RPC桥,帮助启动了LLVM编译器工具链的ARM后端,并发布了各种开源项目,包括Haskell中的流LLVM优化器,Python中的许可证分析工具以及TypeScript中的反应式Web框架。

COO毕业于宾夕法尼亚大学-沃顿商学院,曾经是一家数字健康公司的创始CEO,该公司制造专注于化学监测的可穿戴健康监测设备。为基于SF的健康技术孵化器Rock Health的多家数字健康公司提供法律服务、公司战术和营销策略。

 

Solana的团队以开发人员为主,团队成员包括操作系统开发、框架师、嵌入式开发、大数据开发等多个领域。就连Solana的CEO是技术出身。

❖WHY:一个疑问❖

事实上,在9月份,TVB曾经学习和研究过Solana。当时,心中产生过一个疑问。

 

Solana的历史证明序列工作原理是这样的:

 

假如第n个区块已经完成,而第n+1个区块在时隙内未完成,第n+2个区块可以继续工作,它可能会衔接着第n个区块,将第n个区块的时间戳和哈希值写入第n+2个区块中。

 

然后,当第n+1个区块确认完成以后,再插入到时间序列中。第n+1个区块将第n个区块的时间戳和哈希值写入第n+1个区块,然后再将第n+1个区块的哈希值和时间戳传递给第n+2个区块链,第n+2个区块再重新加密生成哈希值。

 

然后再将第n+2个区块重新加密重成哈希值传给第n+3个区块……以此类推。

 

那么问题来了:

 

这样每次一个区块出来延时,都需要对它后面的区块重新计算希值,这样的运算量很可能导致区块链的效果下降。

 

Solana的方案:

Solana根据计算机的运行,设计了一个交易处理单位 Transactional Proccessing Unit(TPU)。TPU的运行空间如下:

FrcwwCOUUTaaZn_6CU0ixpWbzwrm.png?w=554&h=268

在TPU中,事物被划分成4个阶段,每个阶段由不同的硬件负责处理:

数据获取:内核空间

签名验证:CPU

存款:GPU

数据写入:内核空间

 

由于这四个阶段是连续的,必须要获取数据以后才可以验证签名,验证签名以后才可以存款,存款以后才可以写入数据。所以,上一个验证的数据写入和下一个验证的数据获取可以同时进行,不发生冲突,这样可以提高速度处理的效率。

 

没有TPU之间的验证时间是这样的:

FsyVrNpSsuDEeQEEBbEftE1bGbxL.png?w=728&h=229

而有了TPU之后的验证时间是这样的:

FtPILCR8FuxaN5Qzdnl3X3172U5K.png?w=713&h=221

显然,TPU分段设计让验证器的硬件得到更充分的使用,时间安排更合理,验证的速度加快。并且,Solana的TPU设计,将工作量最大的签名验证工作交由GPU处理,而目前市面上的计算机GPU性能高于CPU的处理,这使得Solana的验证速度进一步提高。

 

Solana的CEO表示:“这一切都可以用不到5000美元的现成计算机来实现,而不需要一些超级计算机。”这意味着Solana公链的运行是低成本的。

 

Solana验证器的TPU工作设计,可以大大提高Solana的块信息验证速度。在一定程度上,要可以减少块延迟的现象,提高Solana的速度。

 

但是,TPU的设计能否完美的解决出块延迟问题,还需要进一步观察Solana的实际运行情况。

❖写在最后❖

Solana 首席执行官 Anatoly Yakovenko表示,分片技术(Sharding)存在安全风险,更容易受到共识攻击,实施分片的风险远远大于潜在的可扩展性优势。Yakovenko 补充称,网络一旦被拆分,就会引入一个额外的攻击媒介。他同时表示,如果网络中一个分片被黑客接管,可能会引起多米诺骨牌效应,从而影响通证价格并导致大量用户和节点外流,允许黑客利用分散策略破坏全网生态系统。

 

TVB觉得,分片技术是对公链在物理上的分割,而Solana的历史证明序列是对公链在时间上进行分割,鹿死谁手尚未可知。

但可以肯定的是,Solana在共识算法、验证器设计、物理存储等方面,都与以往的公链不同,如果Solana一旦成功,将给公链技术带来新的思路。

文章作者: / 责任编辑: 我要纠错

声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。

提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

金色财经 > 区块链 > 除了分片 侧链 减少节点,Solana公链正在尝试一种新的提速方案