聊一聊公链的共识
POW,这是大家最熟悉的BTC的共识机制,最稳定,运行时间最久,但也有被人诟病的地方:
- 算力集中,大量的算力集中在少部分人手里。
- 能源消耗,算力最高的拿奖,其他的算力都是做无用功,消耗掉了。
- 对于新出的公链,采用POW,很容易被杀死(51%攻击)
POS,这是一种股权证明机制,用户将通过持币行为获得“利息”,并且这个利息与持币量和币龄有关。简单说,就是谁有钱谁出块。有钱的愈有钱,大户的持币成本理论上讲,会无限趋近于0。
这样导致的问题就是:
-
nothing at stake :矿工为获得生成区块的奖励而同时支持多个有冲突的区块链分叉,导致区块链系统无法达成共识。
-
Long range attack: 恶意节点在初始区块的起点处重新再造一个比目前的链更长的链充当为主链,因为在区块链的世界里,最长的链才是主链。
根据CAP定理:
CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。
如何在设计公链的共识机制时使得以上三者之间形成一个纳什均衡,正是目前公链设计的难点和重点。
GNX的SPoR+POS共识
Genaro是一个基于区块链技术的可靠且去中心化的存储空间。用户可以将Genaro作为他们高效且经济的私人永久云存储途径。
GNX采用的是双底层设计。主要是想用混合机制来解决POS无法解决的问题。
目前探索混合机制的公链也有不少,主要是希望用POW机制来保证系统的稳定性,再利用POS机制来保证系统的可用性。
GNX对这种混合机制做了自己的创新:
储存叠加混合共识
SPoR+POS
划重点,SPoR全称为sentinel proof of retrievability,是一种数据可检索行证明。
跟大家粗浅的聊一聊SPoR。
GNX的目的是建立一个点对点加密分享的公链。
那么,首先需要用算法来确认文件完好无损的保存在系统中。Genaro 在这里选择的是具有代表性的 SPoR 算法:
该算法提供了一套完备的,可证明安全的,文件存储完整性验证的理论体系。通过设立特定的文件指纹 (Sentinel)来侦测数据可验证性。
在Genaro系统中每天都会对存储节点的文件进行定时抽样“排查”。
SPoR算法的优点:
-
有效计算,相比于POW,消耗更低:
因为证明数据文件的完整性,只需要验证文件指纹对的哈希数值,并非是无效的运算,计算难度也不会增加。 -
安全,文件指纹是随机的:
如果恶意节点改变或删节了部分源文件,则相对应的指纹也会发生改变,可以被验证出来。 -
有效抑制分叉和长攻击:
因为所有的文件都可以通过定时随机抽样被找回,所以主链记录了最多的指纹验证总数。
假设说,有一个恶意节点,想回到链最初的状态,迅速构建一条新的最长链——这个在POS下是有可能的,因为排名最高的节点出块速度非常有优势,在理论上,只要拥有一定比例的代币,是可以对系统发动攻击的。
然而,GNX的主链会定时记录指纹验证,因此,新链无法复制同样总数的指纹验证,从而,新链的指纹验证数会少于总链,无法发动攻击。
分叉也是同样的情况,因为指纹验证数少于主链,因此到了指纹验证点,就会停止。
社区治理的方式
虽然在存储层加上了SPoR,但GNX chain主要采用的还是POS治理机制。
社区治理的流程大概如下:
1,节点进行押注,进入系统贡献储存单元,参与排名:
这里要注意的是,并非直接按照押注的大小进行排名,还需要考虑储存贡献量的权重,这样的设定提高了初选节点的门槛,简单来说,不仅仅要求节点拥有相当的GNX,还对节点的储存空间和硬件都有一定的要求。
2,排名最靠前的101 个节点出块
现有的出块操作,分为轮流出块以及随机数出块。
排名高的节点轮次会多,但,因为假定了POS中的节点不一定是好节点,所以,还会用SPoR来验证数据找回的信息。也就是说,节点的是否优秀,能否进入委员会,需要满足两个标准:
- 押注量
- 存储贡献
这两者按照一定的权重比来进行综合排名,以确保选出优秀的节点。
采用这种方式的逻辑在于,如果节点抵押大量的GNX,同时又对系统做出巨大的贡献(存储量大),那么可以认为这个节点和主链的利益是相互绑定的,不会作恶。
3,大节点可以选择小节点为自己贡献存储。
大节点,中节点和小节点会相互博弈。在我的理解里,这其实相当于一种另类的投票:
- 小节点将自己的存储贡献给大节点
- 大节点获得更高的排名,出块更多
- 大节点将部分收益分给小节点
整个过程类似于投票分红的轮回。
这样做的意义在于,中型节点有机会和小节点合起来与超级节点展开竞争,避免了超级节点的垄断。
某一方面说,降低了系统的中心化。
加入SPoR算法的优势:
在文章最开始,我们聊到了单纯的POS和POW机制都有一定的问题,当然,也有各自的优势。
混合机制最大的优势就是以彼之长补己之短。
简单来说,就是利用SPoR机制来确保整个系统的稳定性,同时有用POS的链上治理来获得高性能。
1,GNX并非直接加入存储层,而是将存储加入到共识机制中,相当于将一个微型的POW加入到POS的共识中形成混合机制,确保安全,稳定的同时提升效率。
2,采用双层设计,将储存网络和公链进行结合。使得用户可以分享加密数据,并将分布式加密数据与区块链结合起来,让链外的数据更容易使用,同时也解决了链上数据受限制的问题。
如果想法可以得到验证,那么更多优秀的dapp将会面世。
这是对开发者来说,非常好的解决方案,让Dapp的开发和app一样容易、或者可以直接将现有的app数据上链,进行分布式存储。
现有的公链都在解决这两个基本问题:
- 容量
- 效率
GNX也许是问题的终结者。
网友评论