区块链的PoW+PoS类型共识算法的个人理解(更新中)

共识,说到底就是谁说了算的问题。

哥哥和妈妈想养狗,但妹妹和爸爸讨厌小动物。妹妹说对狗过敏,家里已经有个哥哥了,为什么还要其他狗

这太残忍,不公道,怎么能这么对妹妹

她才十几岁,爱情可以多一些,但家里的狗不能再多了

然而这个家庭管钱管权的是妈妈,她喜欢 她乐意 她需要 她说了算,别人想啥,她才不管。第二天妈妈带了一只小金毛回家

小金毛进门就看到爸爸的 AJ,像看见了老家的狗沙盘,赶紧拉了泡奥里给在里面,好霸占地盘

老八都要直呼内行

这个家庭就是这么不公平,拳头大的说了算,拳头小的甚至混得不如狗狗。当然没有侮辱狗的意思,狗狗那么可爱

爸爸的抱怨甚至不被写进来,闷声养大狗的哥哥也从未被人理会。你在意过他们的感受吗,没有,你只在意你自己,你只在意妈妈说了算这件事

害,老卑微了

这就是一种共识算法:Proof of MaMa

注意这个算法名称的结构,谁得到了 of 后面的名词,谁就是老大哥

谁有 Ma,谁说了算,听起来也很合理,没有别的歧义

祖安人,永远滴神

PoW (Proof of Work)

参考来源:
中本聪比特币:Nakamoto S. Bitcoin: A peer-to-peer electronic cash system.(2008)[J]. 2008.
工作量证明初次使用:Dwork C, Naor M. Pricing via processing or combatting junk mail[C]//Annual International Cryptology Conference. Springer, Berlin, Heidelberg, 1992: 139-147.

有时候有一个神奇的现象,就是提出问题的难度远比解决问题要低得多

特别是有些只能靠猜答案的问题,更是难解决,比如:能中奖的彩票号码是多少?解决这个问题你只能靠猜,猜彩票是耗费 时间金钱 的事情,你得走路到投注站,掏钱去买彩票,然后等一两天,这是猜一次答案付出的代价。只有付出了这个代价,你才能知道你猜的对不对。并且,只有重复买彩票,你才有可能解决这个问题:能中奖的号码是多少。

所以只要你拥有一张:开奖日期之前购买的,并且与开奖号码一致的真实彩票。其实就证明了,你已经付出了足够的重复工作的代价,也就是重复消耗时间和金钱的代价,换句话说就是证明你已经买了非常多彩票了,奖金给你,天经地义

但你是否真的有付出过那么多工作量,不重要,没人在意。大家只在意你能不能拿出来那张小纸

好笑,信息差

上面1992年的那篇文章说的就是利用工作量证明,来缓解垃圾邮件的方法。

邮箱相信大家都用过,垃圾邮件相信大家都收到过,挺烦,尤其那个年代,垃圾邮件铺天盖地。文章作者当时的做法就是,收件人要求发件人,在发邮件之前,要解决一个只能靠猜才能解决的问题,并把答案附送在邮件里。比方说你在发送邮件的时候,你得附带一张中了奖的彩票在里面,而且这张彩票只能用一次。如果你不附带,或者带的彩票其实并没有中奖,我就把你当垃圾邮件扔掉;你带上了,而且真的是中奖的,就把你当正常邮件接收。这张中奖彩票兑得的不是钱,而是一次发邮件的机会。

如果你是发垃圾邮件的人,你要发邮件给多少个邮箱,你就得付出多少次的劳动,发垃圾邮件的代价指数上升。

这就是工作量证明方法。套回共识算法的命名:Proof of 工作量,就能理解为:谁拥有可证明的工作量,谁有话语权

为什么证明你有工作量你就有话语权?这就是共识这个游戏的核心,游戏规则就是谁能拿出什么东西来,谁就赢,谁就拥有主导群众共识的机会。

PoS(Proof of Stake)

开董事会,手持60%股份的董事长拍板说套现一千万,给老婆买别墅,下属们直呼老板真顾家好男人

谁股权多谁说了算。

PoS算法就是一个谁有股份,这里的股份就是“币龄”。我们知道一般的链都有“币”的概念,比如比特币。而币龄指的就是持币的时长,就是驾驶年龄,拿驾照的时间越长,驾龄越长。

持币越久,币龄越大。币龄越大,挖矿难度越低。

出新块其实就是开董事会,矿工们聚在一块,想要出一个新的区块。于是他们先算个新区块头出来,然后搜索一遍历史数据,找到币龄最大的好哥哥,由他来作为这个区块的负责人。这位好哥哥发布完新区块后,币龄归零,然后从归零前的币龄里面抽一点水作为打包奖励。

一次性董事长。成为董事长不仅仅得有钱,还得拿钱足够久,而且花一次就没了。

PoSV (Proof of Stake Velocity)

来源:Ren L. Proof of stake velocity: Building the social currency of the digital age[J]. Self-published white paper, 2014.

PoSV文章中的想法应该是,上一个时间周期中,账号拥有者的“产权的活动效率”越高,他接下来记的一笔账,越容易说了算。

越能花钱,越能当老大。TonyStark,撒钱

这可能还有点难懂,但他可能重点想让我们关注的是他们对 Stake Velocity 的定义, MaMa

StakeVelocity = nT / M

nT代表上一轮出块周期的交易总量,比如说上一轮有10个块,我在这10个块里面总共流动了20个币,我用这20个币买了40双AJ。那我的 nT 就可以是 f(20, 40),单位是交易笔数(这里如果有理解错误希望大佬们能指正),至于 f 应该是什么,看具体实现的场景决定,简单的甚至可以return a*b,只要体现我的“产权”和“活动”即可。

M代表上一轮中的总流通量的货币量,比如上一轮的10个块,只有我花了20个币买了40双AJ,还有妈妈花了400个币买了一条金毛,没其他人在这条链上交易了。那这个M就是420,单位是币(这里如果有错希望大佬们能指正)

没有打压 AJ 的意思,这条金毛可能有皇室血统

那StakeVelocity的单位就是 交易笔数 / 币 了,谁花得多花的快,谁就该被承认。M都是420,我的 nT 是 20 * 40 = 800,老妈的 nT 是 400 * 1 = 400,我的值比老妈大,那下一区块记账该收录哪些交易,我说了算

妈妈,时代变了

意思就是这么个意思,你懂我意思吧

当然了,算法归算法,实现归实现,reddcoin就是使用了PoSV算法

阿巴阿巴阿巴

PoB (Proof of Burn)

来源:Karantias K, Kiayias A, Zindros D. Proof-of-burn[C]//International Conference on Financial Cryptography and Data Security. Springer, Cham, 2020: 523-540.
PoB算法的初衷是谁砸的钱多,谁越有机会成为话事人,并获得出块奖励和手续费。这里的“砸”,是真的砸,回不来的那种

也就是烧钱算法

这是一个很现实的问题,谁投入更多,谁就更能有机会成为老大。在魔幻的201x年,国内互联网公司也证明了,谁给市场烧的钱多,谁市场份额越大,谁越有可能成为行业老大,行业标准,行业爸爸。

手上捋的羊毛还是香喷喷的

PoB就是这么个思想,大伙给一个空账户转账,可能在比特币上,可能在以太坊上,可能在别的链上,带上PoB协议。谁转得越多,谁越有可能做老大。

虽然但是,外卖公司给我发红包,我还能吃8块钱的大披萨,无产阶级的胜利。PoB体系下,可能是比特币,可能是别的区块链上的币,钱砸没了,就没了,取而代之的是币越来越少,手上拿的币越来越值钱,对吧。

2-hop blockchain

来源:Duong T, Fan L, Zhou H S. 2-hop blockchain: Combining proof-of-work and proof-of-stake securely [Online], available: https://eprint. iacr. org/2016/716, April 10, 2018

比如说现在有一桌子人开会,目的是达成一个共识

而他们达成共识的方式是钱多的说了算(PoS),就是说这个桌子的人只有一种达成共识的方法,别的方式都不认可,不管你付出多少努力,不管你多聪明考试多厉害,都不管用。这个桌子只看谁的钱多

那这种叫 1-hop 算法,意思只有一个共识的标准

而 2-hop 算法顾名思义,就是有两个达成共识的标准,并且轮着来。比如说有这么个规定,单数的块由 PoW 算法来挖矿,双数的块由 PoS 算法来挖矿,两边轮着来出矿,让两类不同专场的矿工去挖矿

那攻击起来就很难啦,不仅要搞定算力51%,还要搞定资产51%,才能成功

PoA (Proof of Activity)

来源:Bentov I, Lee C, Mizrahi A, et al. Proof of activity: Extending bitcoin's proof of work via proof of stake [extended abstract] y[J]. ACM SIGMETRICS Performance Evaluation Review, 2014, 42(3): 34-37.
行动证明算法,本质上就是让活得更稳定的节点更容易获得奖励,也就是激励节点尽量稳定活着,维护区块链的运作。
算法的基本流程就是:
1、任意矿工节点计算出一个PoW答案,也就是弄一个区块头出来,广播全网。
2、节点可以根据这个区块头hash,利用follow-the-satoshi算法计算出N个权益持有者的地址
3、这N个权益持有者都对这个区块进行签名和校验,最后一个签名的人负责广播签名后的区块,这个即为最新区块。

你可能感兴趣的:(区块链的PoW+PoS类型共识算法的个人理解(更新中))