3

浅谈QitChain Network的架构细节与共识的基本原理(下)

 2 years ago
source link: https://www.jinse.com/news/blockchain/1184299.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

浅谈QitChain Network的架构细节与共识的基本原理(下)

在之前的文章里,我们曾提及CPoC(条件容量证明)是一个在PoC(容量证明)的基础上,吸收了PoS(权益证明)等当前流行且有效的共识而形成的一种博采众家之长的共识,并且凭借它更加公平合理地进行数字资产的分配以带动整个生态社区的繁荣。而CPoC所有的诸如抗算力集中化、抗ASIC化和节能问题等,我们已做了深入讨论,在此不再赘述。

u1AOzE6VWWFtYRtQc9LHJTx45vfCi65BkbIuq9Ai.png

 Figure 1:PoW与PoC在单位时间内的功耗对比

但我们之前还留有一个问题未能解决,即CPoC的技术细节究竟是如何架构的。本文将尽可能地讨论CPoC在技术方面的基本原理,增加读者一个对该共识的全面理解,以此增强用户对采用该共识的区块链项目的信心。

此前我们已经提及,CPoC本质上是在PoC的基础上,引入了PoS的质押激励,并且将一部分通证作为激励的手段发放给质押者的一种复合式共识。打一个简单的比喻,假如我们把CPoC看作一棵树,那么PoS就是它的叶子和花,而PoC则是其茎干与根。由此可见,如果要深度理解QitChain所采用的CPoC共识,那么理解其根基与先驱者——PoC便是必不可少的一步了。

枝干与根:PoC的基本技术原理

PoC是一种基于容量证明的共识机制,即存储服务的提供商通过提供存储空间来争夺区块链的打包记账权力,由此获得对应区块中所包含的数字通证激励。显而易见,在PoC的共识下,存储服务商提供的存储空间越大,获得打包记账和获取数字资产的机会也越大。

在分布式存储领域,存储内容的拥有者和请求者无疑是两个最为重要的角色。拥有者提供存储空间,请求者基于文件的阅读、编辑和使用等权限向拥有者发起请求,二者之间明显存在验证与被验证的关系。从角色扮演来看,请求者是验证者,拥有者则是证明者。举一个简单例子,假如Alice向Bob发起要求查询其磁盘内的某一个文件F,这就相当于Bob向Alice证明,该文件F确实存在于其磁盘中。

需要重点强调的是,PoC的核心理念之一,在于致力在存储资源上达到“证明者低效,存储者高效”。该理念保证了验证者可以花费很少的资源和时间,用以证明所有者对某个空间或某个文件的权属关系。这在技术上实施并不困难,在此我们会尽量简单地讨论一些技术上的细节。假若读者对密码学或图论知识有一定了解,则易理解下述阐述。

现在我们开始设想一个情境,Alice准备向Bob发起验证,要求后者证明有一个拥有特定空间大小的文件F储存在Bob的磁盘之中。

在PoC的语境下,文件F的目的是为了证明以下事实:证明者确实使用了一定量的存储空间。因此它对于该文件F并没有形式上的要求。在PoC中,文件的内容是一种有向无环图结构,该结构图示如下:

XKsHUK87fLR6LLxd1iHNk9aj5xpxFYzfwawJE94u.png

MlLLXWVnE55wP8Lbqed050FMFLc4VzFtQYWjvRqx.png

Figure 2, 3:有向无环图

有向无环图的定义为,对于该图中的所有点x,按照箭头所示的路径都无法返回其本身。在文件F的有向无环图结构中,我们定义其任意节点k,定义函数E(k):

rJPdup8ulKbOy76BjKIfs0OcauWw5VqpcyG36QcM.png

 该函数中,点k’是点k的直接前驱节点。而如果k没有直接前驱结点,即当没有任何一个节点指向节点k的时候,则函数

M6TkPCMQ2g9pcxDoma96bJAzVpNvdFXaqwbasB0F.png

。对于文件F的有向无环图,作为证明者的Bob需要将每一个属于F的节点k进行运算并且储存每一个E(k)以备Alice进行随机抽取检验。

从以上过程中我们发现,在Bob储存的所有数据中,每一个节点的值都经过至少一次哈希运算,且任意一个有直接前驱节点的哈希值来源于其所有前驱节点的哈希值运算。因此,Bob所生成的数据集实质上已经构成了一棵Merkle树。而整个验证的过程,也即是由这棵树开始的。

整个验证过程的第一步是由证明者Bob开始的,Bob计算该Merkle树的根节点θ并将其发送给Alice。作为验证者,她需要向Bob发起验证请求,Alice将会在整棵Merkle树中随机抽取一个节点j,并要求Bob给出E(j)的值,以及该值在Merkle树中所处的位置。如果Alice能够验证Bob所计算出的哈希值E(j)的合法性,并验证E(j)确然地存在于顶点为θ的树中,则该证明成立。

通过以上步骤,我们完成了一个在PoC共识下进行计算的过程。通过对该过程的描述,我们可以很明显得看出,当存储供应商所能够提供的硬盘越大时,则所能够储存的有向无环图越多,首先完成计算并获得区块打包权及其数字资产奖励的概率也越大。

作为PoC的改良共识,CPoC基本上继承了PoC的算法原理。尽管我们之前已经说明了PoC在相比于PoW和PoS时的优势,但我们也必须看到,PoC仍然有其本身弱点,这些弱点包括:

目前愿意接触PoC共识的开发人员还相对较少,目前只有诸如HDFS和Burst等几个项目(而且就目前的发展情况来看这几个项目还算不上成功)。因此目前还无法形成强有力的团队和完善的项目去推动整个PoC的生态环境的发展。

由于P盘过程需要将存储服务商的硬盘空间全部用plot文件填满,但这些能够填满全部硬盘的plot文件除了争抢区块的打包记账权之外并没有其他的作用。因此其从本质上来说,仍然是对大量的存储空间的浪费。

虽然PoC共识解决了当前PoW共识所带来的一系列问题,诸如能耗过大、硬件的ASIC化以及过高的技术门槛等问题。但它依然没有从根本上解决硬件竞争的问题,换而言之,存储服务商仍然可以联合起来用大量的存储空间去进行垄断,从而对分布式的数字资产分配造成威胁。

如果PoC共识在区块链业界内大受欢迎并由此变得有利可图,计算机病毒或者恶意软件可能入侵并非属于PoC共识下的存储系统的计算机并且将它们变成“肉鸡”用以争夺区块的打包记账权。在PoW共识下,许多计算机会因为这些恶意软件的入侵导致自身速度明显变慢;但在PoC的共识下,这种攻击会变得更加隐蔽——因为“肉鸡”的使用者很难分清楚占用量过大的文件究竟是产生于系统自身还是受到攻击被plot文件所填充。

叶与繁花:基于PoS的条件化模型

与采用单纯存储空间进行计算的PoC不同的是,CPoC引入了PoS的质押机制,并且将这种质押机制变成了一种条件化证明。该条件化证明由两个元素所共同组成,即存储提供商和全网中质押数字通证前十的用户。

根据QitChain团队所提供的白皮书,每一个被打包记账的新生成区块内涵的数字资产被存储提供商和质押数字通证前十的用户所分成。而这也就是CPoC机制中,第一个字母C所代表的条件(Conditional),而这个条件则是基于团队为服务提供商所规定的一个阈值,该阈值的意义是存储提供商达到条件化模型所必须的质押量门槛。而根据实际的存储提供商提供的质押量是否越过这个门槛,对存储提供商和全网质押数字资产前十的用户所进行的QitCoin通证分配是天差地别的。为了让读者明白这个天差地别究竟是多大的差距,我们直接引用白皮书中的公式来说明:

我们用θ1和θ2分别表示一个区块中分别分给存储提供商和全网质押资产前十的用户的部分,而该区块中的全部数字资产则用ρ表示,那么很明显,θ1+θ2 = ρ。现在,我们令χ表示出块的存储服务商的质押门槛,而staking表示该服务商的实际质押量。则对于每一个区块,其数字资产的分成公式为:

CwZZURPIJg0OWNoiN3zqCEsQbebk4YjpDhT1b3lF.png

由此可见,对于CPoC而言,这个工时证明在本质上是鼓励,甚至于逼迫存储提供商进行数字资产的质押的,或者说,该共识能够有效地抑制存储提供商单独通过大范围的兼并存储硬件来破坏分布式的经济分配,借以解决PoC共识下所仍然存在的“硬件军备竞赛”问题。

结语

在上文中,我们深入讨论了PoC的原理以及PoS的条件化模型。实质上,QitChain所采用的CPoC共识正是以上二者的结合。通过比较CPoC与其先驱者的优劣势,我们可以清晰地看到,新的共识正是以不断的修补旧的共识的缺陷的需求下诞生的。尽管CPoC共识仍然有它自身所难以解决的弱点,例如它本身并不具备抗恶意软件、plot文件浪费等问题。但考虑到区块链作为一个新兴且前途无量的行业,仍旧处于一种路漫漫其修远兮的状态。CPoC已经算是一种经过上下而求索的过程所得出的优秀果实了。至于CPoC共识与QitChain能走多远;以及何时会有更新、更优良的共识证明及其所支撑的区块链项目出现,始终都是一件值得拭目以待的事。

X1ii0VDOcttqO8HWFLqiEEvMxoZr0rQaJwJRTZMO.jpeg

QitChain Network, Qitcoin Whitepaper

GeeksforGeeks, Proof of Capacity

Andrew, P., What is Proof of Capacity? An Eco-Friendly Mining Solution

MASS Docs, Proof of Capacity

Dzeimbowski, S., Faust, S., Kolmogorov, V., Pietrzak, K., Proofs of Space, Cryptology ePrint Archive

Hayes, A., Proof of Capacity 


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK