前言
以下文章有關(guān)DPoS共識機(jī)制的部分?jǐn)X取自DPOS Consensus Algorithm - The Missing White Paper一文蔗包,有興趣的讀者可以點(diǎn)擊連結(jié)閱讀原文汞扎。本文并同時(shí)參考了《區(qū)塊鏈與新經(jīng)濟(jì)》這本書的內(nèi)容撰寫铛碑。
暨復(fù)式簿記后提鸟,記帳上的第二次重大革命--分布式帳本
有人說過:“復(fù)式簿記法”(double-entry bookkeeping ledger)是人類歷史上最偉大的發(fā)明哗脖,因?yàn)樗龠M(jìn)了整個(gè)資本主義的興盛介杆。
復(fù)式簿記法是在500年前被發(fā)明出來的皆看,它最簡單的概念就是:有進(jìn)必有出家破、借貸必平衡颜说,在結(jié)構(gòu)上具有不重復(fù)、不遺漏的特征汰聋,便于審計(jì)(audit)门粪。
沒有學(xué)過財(cái)務(wù)報(bào)表的人,可能會覺得這個(gè)概念聽起來很抽象烹困。
先來看一張資產(chǎn)負(fù)債表(Balance Sheet) 長什么樣子?
![image.png](http://www.pwm-nj.com/uploads/Balance-sheet-Full-equation.png)
左邊是資產(chǎn)玄妈,右邊是負(fù)債與股東權(quán)益,左邊與右邊的金額必定相等髓梅。
首先我在錢包里放了1000元拟蜻,這時(shí)我的資產(chǎn)負(fù)債表就會變成:
資產(chǎn) | 負(fù)債與權(quán)益 |
---|---|
現(xiàn)金: 1000 | 權(quán)益: 1000 |
我在帳戶內(nèi)投入了1000元,使可用現(xiàn)金多出1000元枯饿。
今天我拿了100元去買咖啡酝锅,當(dāng)這筆交易產(chǎn)生時(shí),我會借記費(fèi)用奢方、貸記現(xiàn)金搔扁,費(fèi)用在結(jié)算時(shí)會作為股東權(quán)益的減少,這時(shí)我的資產(chǎn)負(fù)債表就會變成:
資產(chǎn) | 負(fù)債與權(quán)益 |
---|---|
現(xiàn)金: ?900 | 權(quán)益: 900 |
分布式記帳技術(shù)(也就是區(qū)塊鏈技術(shù))沿襲了復(fù)式簿記法的精神蟋字,每一筆交易必定有輸入(Inputs)與輸出(Outputs)阁谆,輸入是“錢從哪里來”,輸出則是“錢流向哪里”(如下圖所示)愉老。
在分布式帳本的世界里,每一筆交易要被驗(yàn)證剖效,記錄到區(qū)塊中嫉入,最重要的核心過程就是達(dá)成網(wǎng)絡(luò)中各節(jié)點(diǎn)(node)的“共識”。
共識算法
共識算法目前最主要有三種:PoW璧尸、PoS咒林、DPoS。
PoW
PoW 工作量證明是最早被比特幣采用的共識算法爷光,背后運(yùn)作的原理是為信息的傳遞加入了成本垫竞,借此減少假信息傳遞的誘因。工作量證明的核心特征是不對稱性,驗(yàn)證者在大量地試錯(cuò)(Trial and Error)后才能找到正確的數(shù)值(通常要花10分鐘左右)欢瞪,而當(dāng)數(shù)值被找出來后活烙,其他人可以輕易地反向驗(yàn)證這個(gè)值的正確性。
PoW最大的缺點(diǎn)在于遣鼓,在一個(gè)有效的信息被驗(yàn)證之前啸盏,會有大量的無效值先被計(jì)算出來,浪費(fèi)了大量的電力能源骑祟,除了運(yùn)算不具效率外回懦,也很容易使算力集中在少數(shù)人手里,即資本足夠大的少數(shù)礦池?fù)碛杏泿?quán)次企。
PoW的缺點(diǎn):耗能怯晕、效率低、記帳權(quán)向資本集中缸棵。
PoS
PoS 權(quán)益證明隱含的概念是:帳本理應(yīng)由持有最大經(jīng)濟(jì)利益的人去維護(hù)舟茶。如果是以一家企業(yè)作為比方,持有最大經(jīng)濟(jì)利益的就是股東蛉谜,所以公司的每個(gè)重大決策都必須股東會投票決議通過后才能執(zhí)行(看議案的重大程度稚晚,可以是1/2以上表決通過,或是2/3)型诚。
PoS計(jì)算權(quán)重靠的是“幣天數(shù)銷毀量”
幣天數(shù)代表一個(gè)特定的幣距離最后一次在網(wǎng)路上交易的時(shí)間客燕。假設(shè)我在2017/1/1買了10個(gè)幣,一直到2017/6/30前我都沒有交易狰贯。我在2017/7/1用10個(gè)幣買了一杯咖啡也搓,這時(shí)我的“幣天數(shù)銷毀量”就是10*180天,總量共1,800單位涵紊。
以挖礦來說傍妒,某個(gè)礦工節(jié)點(diǎn),一旦挖到新區(qū)塊后摸柄,他的幣天數(shù)就會被歸零颤练,并重新開始計(jì)數(shù)(幣天銷毀)。同時(shí)間一起參與挖礦的其他礦工驱负,雖然沒有成功挖到區(qū)塊嗦玖,但他的幣因?yàn)闆]有產(chǎn)生交易,所以幣天數(shù)還能繼續(xù)保留計(jì)算跃脊。
在給定的時(shí)間點(diǎn)下宇挫,只存在有限的幣天數(shù),幣天數(shù)在那些長期持有大量貨幣結(jié)余的人手中持續(xù)增加酪术。幣天數(shù)可以被視為在網(wǎng)絡(luò)中權(quán)益的代表器瘪。每當(dāng)這些幣有交易時(shí),幣天數(shù)即被銷毀,因此不能被重復(fù)使用橡疼。
這和一般股權(quán)制的企業(yè)相比下援所,會出現(xiàn)一個(gè)問題,一般股份公司是按照某個(gè)時(shí)間基準(zhǔn)日時(shí)衰齐,股東名冊的持股數(shù)量任斋,決定股東在股東會上的表決權(quán)有多少;而在PoS制度下耻涛,持幣期間很長的人理所當(dāng)然地說話就可以比較大聲废酷,漸漸會演變成只有長期持有的大股東能說話,小股東完全沒有置喙的余地抹缕。大多數(shù)資源與記帳權(quán)集中在少數(shù)人手里澈蟆,這個(gè)幣的流通性也會漸漸衰弱。
PoS: 解決了PoW的效率難題(約每5秒產(chǎn)生一個(gè)區(qū)塊)卓研,但只要時(shí)間一久趴俘,最終也會有記帳權(quán)分配不均的現(xiàn)象。因?yàn)橹灰獕蛟邕M(jìn)入奏赘、持幣夠久寥闪,就有話語權(quán),權(quán)力最終還是向資本集中磨淌。
DPoS
DPoS 股份授權(quán)證明機(jī)制引入了“受托人”的角色疲憋。
DPoS 的運(yùn)作機(jī)制如下:
所有持幣者先選出受托人負(fù)責(zé)簽署區(qū)塊:選舉過程比較類似由股東會選舉出董事會(101人代表),代替股東會做出日常營運(yùn)決策梁只。授權(quán)董事會后缚柳,決策會更有效率 (相較于PoW每10分鐘產(chǎn)生一個(gè)區(qū)塊,DPoS每3秒鐘即可產(chǎn)生一個(gè)區(qū)塊搪锣。)
與PoW相同秋忙,DPoS的規(guī)則也是最長鏈勝出。其中每個(gè)受托人必須按照生產(chǎn)排程构舟,輪流產(chǎn)生區(qū)塊灰追,拿一間工廠作為比方,假設(shè)排程排定A狗超、B弹澎、C分別輪早、中抡谐、晚班生產(chǎn),A在晚上是無法刷門禁卡進(jìn)入廠房生產(chǎn)的桐猬,同樣地麦撵,C在早班時(shí)段也是無法進(jìn)廠房的。
![image.png](https://steemitimages.com/0x0/https://steemitimages.com/DQmUnFg35XqTednrwUiZo7AHX7SHQ7hAUTytA8BLwk64EN7/image.png)
- 今天有一些惡意的節(jié)點(diǎn)生產(chǎn)了分叉區(qū)塊,假設(shè)A免胃、C都是誠實(shí)的節(jié)點(diǎn)音五,只有B節(jié)點(diǎn)是惡意的,由于B產(chǎn)生區(qū)塊的速度(每9秒只能產(chǎn)生1個(gè))慢于A羔沙、C合力產(chǎn)生區(qū)塊的速度(每9秒產(chǎn)生2個(gè))躺涝,根據(jù)最長鏈勝出的規(guī)則,誠實(shí)的節(jié)點(diǎn)還是會勝出扼雏。
![image.png](https://steemitimages.com/DQmaXit43FxdSQrn7PshKtJcnTY5SYJb1vSArf26ys34NDF/image.png)
- 同理坚嗜,因?yàn)橐粋€(gè)節(jié)點(diǎn)要產(chǎn)生重復(fù)兩個(gè)區(qū)塊的速度必定慢于誠實(shí)區(qū)塊產(chǎn)生的速度,所以根據(jù)最長鏈勝出的規(guī)則诗充,誠實(shí)的節(jié)點(diǎn)還是會勝出苍蔬。
![image.png](https://steemitimages.com/0x0/https://steemitimages.com/DQmXsgRLQhmTVxjte48va1Qe6QePVzXUtmXRS8pjGPzUqGg/image.png)
- 如果今天A、B蝴蜓、C三個(gè)受托人的網(wǎng)絡(luò)有段時(shí)間是碎片化碟绑、各自為政的呢?在短期內(nèi)的確有可能三鏈并行茎匠,但一旦網(wǎng)絡(luò)連結(jié)恢復(fù)格仲,短鏈自然會向最長的鏈回歸。
![image.png](https://steemitimages.com/DQmb4UaGGR8nNW5pmtoDE7Z9pvMd1LnKSpdi3utHUWeyfQZ/image.png)
因?yàn)槭芡锌珊炇鹑藬?shù)為奇數(shù)诵冒,所以兩大派系勢均力敵僵持不下的情況不會維持太久凯肋,最終勢必會有其中一方的鏈更長。
對惡意節(jié)點(diǎn)的懲罰
注冊成為候選受托人需要支付一筆保證金(約10 XTS)造烁,就像是參與民意代表選舉前繳納的保證金一樣否过,一般來說擔(dān)任受托人約兩周后才可達(dá)到損益平衡,這促進(jìn)了受托人的穩(wěn)定性惭蟋,確保至少會挖滿兩周的礦苗桂。
懲罰機(jī)制為:不按排程產(chǎn)生區(qū)塊的節(jié)點(diǎn)將在下一輪被投票剔除,也會被沒收之前繳納的保證金告组。
DPoS優(yōu)缺點(diǎn):優(yōu)點(diǎn)是效率較PoW和PoS更高煤伟、產(chǎn)生區(qū)塊的速度更快;
缺點(diǎn)是雖然惡意的節(jié)點(diǎn)將在下一輪投票被踢出木缝,但單個(gè)惡意區(qū)塊在短期仍有可能是有效的狀態(tài)便锨。
短期雖然可能存在惡意區(qū)塊,但長期下來我碟,可以透過受托人的自主選擇來回歸鏈條的有效性:
假定現(xiàn)在總共有3個(gè)受托人A放案、B、C矫俺,D加入排程后吱殉,只要確認(rèn)之前的區(qū)塊中,有2/3以上個(gè)受托人遵循的鏈?zhǔn)悄臈l就可以了友雳。
![image.png](https://steemitimages.com/DQmWjbpfju5vj1EGBtfLKSGcM4CpHmYppgB9cfev2dFLtyF/image.png)
小結(jié)
DPoS制度下稿湿,汰換惡意節(jié)點(diǎn)的頻率是關(guān)鍵,雖然照上面的場景來看押赊,長期都會回歸有效正確的區(qū)塊饺藤,但短期來看,惡意節(jié)點(diǎn)產(chǎn)生的glitch也可能對整體健全具有破壞性流礁。