區塊鏈的共識機制和其運行規則

從POW, POS, DPOS到LFT, DAG

共識演算法一直都是區塊鏈的核心制度之一。為了配合不同特性的組織及用戶,許多共識機制也應運而生,如何在鏈上所有節點穩定運作的同時,保留使用者的留存便是當中的關鍵。

從過去的POW(工作量機制)、POS(權益證明)到後來新出現的DPOS(股份授權證明機制)、POI(重要性證明)、POB(燒毀證明),目前仍尚未有一個共識機制是完美無缺的,各自都有維持完整結點正常運作的機制,卻也存在著不同的缺點。

區塊先生將告訴大家這些共識機制到底有什麼不一樣的運行規則,以及各自的應用場景。

POW(Proof of Work ,工作量證明)

顧名思義,即是透過每個在去中心化的區塊鏈網路上所參與的節點,以完成「工作成果」證明每個節點的「工作量」,好比通過檢定取得證書證明自己的專業知識、修完學校學分得到畢業證書證明自己的學習成果等等。而完成一次有效的工作量證明需要經過不斷地試錯,才能找到最終答案。

此一技術成為了加密貨幣的主流共識機制之一,各個節點利用此機制決定哪一個區塊將成為主鏈上的新區塊。比特幣便是採用「工作量證明」的技術;而以太坊則是採用「權益證明(Proof of Stake)」,稍後會在文章中解釋。

至於共識是如何產生的呢?

簡單來說,節點(意即大家所熟悉的「礦工」)利用硬體、花費時間和電力等資源,計算出一組數學公式的結果,而最早計算出答案的節點,則擁有為區塊鏈添加新區塊的權利。被算出來的數值可向區塊鏈網路中的其他節點提交計算的工作量證明,而以工作量證明的這一種「挖礦算法」來解決計算挑戰的過程稱之為採礦(mining)。

關於比特幣背後的「工作量證明」技術,雖然可以有效地讓礦工透過運算得到獎勵,卻還是存在者許多的技術本身所存在的問題,如:

  • 耗能不菲:在人人皆可以使用礦機「挖礦」的情形下,在運算上的目的只是為了運算出POW,使得生成新區塊的時間及成本都越來越高。個人礦機變得越來越不敷成本,而改為認領礦池的方式,與其他數個礦工透過持有礦池比例領取相對量的比特幣。
  • 算力中心化:區塊鏈最大的核心理念便是去中心化,但透過少數持有相對多的物理資源(算力、電力等),將會造成系統壟斷,大部分的資源都集中於先行者上,比特幣網路中的「去中心化」特性將會慢慢喪失。
  • 確認一個區塊的時間不一:由於工作量證明需要消耗大量的算力,平均每秒僅能處理5–7筆交易,雖然比特幣網路擁有「去中心化」、「匿名性」等特性,處理交易的速度過慢仍然是一大缺點。又因為區塊的大小是固定的,如此會造成比特幣的網路壅塞,使得區塊確認的時間難以確認。

POW的機制讓人人都可以成為礦工加入挖礦的行列,看似去中心化、人人平等的機制但其實存在一個很大的缺陷,近年來隨著集團及大戶的加入,挖礦的市場已經變的越來越小,所需要耗費的成本也越來越高,散戶能夠盈利的難度也隨著時間越來越高。而根據比特幣的設計,最後一枚比特幣將會在2140年被挖出。

POS(Proof of Stake,權益證明)

能證明資產越多,收益就越多

POS是透過每一個單位所擁有的資產來證明自己的挖礦權,也就是所謂的「權益」。以現在金融系統作比喻,就像是將資產存在於銀行中,銀行則根據擁有的資產數量及擁有時間分配給你相對應的收益(利息)。

計算利息的公式則跟幣齡有關:幣齡 = 幣的數量 * 持有時間(天)

假如A在系統中持有20個幣 30天,有20*30=600幣齡,B持有50個幣10天,則有50*10=500幣齡,由此可知A的權益較大,代表A取得挖礦權的機率就會比B還大,「權益」越大的單位(節點)越有機會擁有挖礦權,進而產生新區塊。但當用戶擁有越多權益的同時,在系統遭受到攻擊後所承受的整體損失也會最大(加密貨幣價格下跌、公司形象下滑等),因此他們也會是最關心如何維繫整體系統安全的一群人。

第一代POS的概念最早於2011年被Quantum Mechanic 在BitcoinTalk論壇中提出,隨後則在2012年被應用於點點幣上(Peercoin , PPCoin)。不過這一個解決依據算力大小決定挖礦能力的POS,雖然克服了POW的51%攻擊的疑慮,仍存在著一個漏洞,也就是無利益攻擊( nothing-at-stake attack)。權益越大,越有錢的人要發起51%攻擊的成本是相對高的,那麼沒錢的人呢?發起分叉與攻擊對他們來說是成本低又有利可圖的,在這種不需成本就可以產生新區塊的情況下,會造成整體系統價值降低,因此初代權益證明並不是一項完整的共識算法。這也是第二代POS產生的原因。

第二代權益證明 Casper POS (POW+POS)

為了解決初代POS的無利益攻擊,Casper算法誕生了,其主要為全球第二大虛擬貨幣以太坊(ETH)背後的共識機制,目的是過渡成為工作量證明/權益證明的混合型系統。

協議中的參與者必須在新的區塊行程時就先繳納保證金(Bonding),Casper POS則利用此保證金管控參與者,以若有惡意行為產生將無法拿回保證金以及取消參與權利的方式作為懲罰,杜絕無利益攻擊的發生。

Casper的測試網路也於2018被提出,這則新聞直接促使以太坊的價格創下了歷史新高,可以將Casper理解為以太坊實現POS共識機制前的一個過渡期。Casper主要由 Casper FFG(Vitalik主導)及Casper CBC(Vlad)所組成,是兩種完全不同的概念。雖然他們是獨立的兩個項目,背後也由不同的人帶領,他們擁有一樣的願景:將以太坊的工作量證明轉至POS權益證明。

而POS機制又會有什麼問題產生呢?取代原本以設備及環境取勝的工作量證明,POS強調擁有代幣數量的原則會造成多者恆多、富者恆富的情形,便會造成許多人的反彈,認為這種模式非常的不公平。

而在這裡小編也針對POW與POS的優缺點為大家整理了一個表格

POW, POS, Casper的比較

DPOS(Delegated Proof of Stake,股份授權證明)

DPOS為POS的升級版,原理大致相同,差別在於多選出了一些「代表」,類似於公司董事會,持幣者選出依定數量的超級節點,而這些代表將負責驗證和記帳。至於監管規範、性能、資源消耗和容錯性與POS相似。

每個股東按持股比例有相對應的影響力,超過51%持相同意見則代表通過決議,決定結果是不可逆且具約束性的。為達到即時且高效的共識,股東將投票權授與一位代表,擁有最多票數的前100位代表將輪流產生區塊,其相對酬勞為10%的交易費。此一模式產生新區塊速度快,更加去中心化,但還是過於依賴代幣,此限制了許多商業上的應用。

POI(Proof of Importance,重要性證明)

重要性證明通過考慮用戶在分配批准交易任務時進行的交易數量來擴展股權證明。

POI的機制對每個節點而言更為友善,挖礦方式也更加均勻,只要像整個組織證明自己的重要性就能夠獲得區塊的獎勵,決定的因素不再和POW或POS一樣依靠資本(礦機、資源、夠多的股份)維持自己的挖礦能力,便無須特別的挖礦硬件,運行上更加的省電與環保。

顯而易見地,POI可以解決比特幣生態中的大量資源浪費和礦機等級之間的競爭問題。還可使有錢的大戶不再像以前一樣或許能主宰整個系統,它更看中的是每個用戶的交易量、活躍度,以及交易對象。

如此一來可以去除其他在POS機制底下運作的組織所產生的弊端,不會造成富者更富的惡性循環。 重要性證明機制算法目前最有名的應用是NEM(新經濟運動),而他們發行的加密貨幣則是XEM。

NEM所引用的POI機制,就好像一個信譽評分系統,每個用戶的信譽分數(重要性)取決於他擁有多少數量的貨幣和他的交易量。NEM將虛擬貨幣交易量視為支持網路的因素之一,如此一來可以提升用戶交易的積極度。

隨著用戶的重要性得分越來越高,獲得記賬獎勵的機會也隨著越高。更高的信用分數,意味著網絡更信任你,這會讓你能夠驗證更多的交易,獲取更多的獎勵。

POB(Proof of Burn,燒毀證明)

PoB是一種替代PoW以及PoS的機制,用戶通過將加密貨幣發送至一個無法使用的地址達到焚毀這些加密貨幣的目的,透過此過程表示自己願意為了長期投資而承受短期的損失,以及獲得在某個隨機選擇程序系統上進行挖礦的終生特權。

根據PoB的運作方式,礦工可以燃燒本地社區的貨幣或者某種通用的加密貨幣,如比特幣。你燃燒的幣越多,你被選中挖掘下一個區塊(成為礦工)的機率就越高。

隨著時間的推移,在系統上的份額就會逐漸減少,用戶需要透過燃燒更多的幣增加被選中的機率。(有點類似比特幣的挖礦流程,礦工們必須持續地買進效能更高的礦機來保持自己的算力。)儘管PoB是PoW的一種替代選擇,這種機制仍存在著爭議,許多人認為這將造成了很多不必要的資源浪費。另一種批評則是挖礦權將只會被那些願意燃燒更多資金的人所掌控(好比存在於Pow與PoS機制下的大戶)。

應用於此機制的項目為合約幣(XCP),用戶透過銷毀比特幣獲得生成新區塊的權利,不過每個用戶有著銷毀上限1BTC的限制,如此便能控制XCP在整個生態的分配,達成去中心化的目的,而這些過程也會一併公開在BTC的網絡上。

瑞波協議共識演算法(The Ripple Protocol Consensus Algorithm ,RPCA)

RPCA是應用於瑞波幣中的協議,與大多數加密貨幣的最大區別為:RPCA是一種獨特的演算法,不需要像比特幣中的PoW一樣付出許多時間及精力。瑞波協議共識演算法使得一組節點能夠基於由特殊信任節點達成共識。

在瑞波網路中,每個服務節點都會維護一個信任節點列表(Unique Node List , UNL)且認為信任列表中的節點不會聯合起來作弊。

在共識過程中,各個需要共識的交易只需要接受來自信任節點列表中節點的投票,只要超過一定閾值(80%)就能達成共識,作為最後記在帳本上的交易,稱為最後關閉帳本(Last Closed Ledger),更新成最新狀態。

同時,RPCA也大幅降低整個網絡在進行交易所使用的電量,相較於BTC,節省了許多能源,每隔幾秒能應用到所用的節點,是一種相對十分高效的協議,維護著整個網絡的有效性和一致性。一但在整個社群中達成共識,當前的賬本便會記錄在此之前的所有交易信息,再關閉成為最後的賬本,如此一來得以在幾分鐘內與整個網絡的資訊同步,不需再花費數小時下載和重新處理完整的交易紀錄。

而RPCA的優勢在於產生區塊的效率,通過特殊節點(信任節點)的投票,在短時間內進行交易驗證和確認,形成一個高效網絡。而在這當中也存在著缺點:易於遭受攻擊,駭客可以透過偽造節點及大量的擴散,在某個時間點突然攻擊整個網路,此外,去中心化的程度也不如比特幣。

恆星共識協議(Stellar Consensus Protocol , SCP)

資料來源:Stellar

SCP是一個基於聯邦拜占庭協議(Federated Byzantine Agreement)之上的成果,為一種新的共識機制。它同時擁有四大關鍵屬性:分散控制、靈活信任、低延遲、漸進安全。

與任何其他拜占庭協議一樣,SCP具有快速處理事務的能力,因並非通過所有節點驗證,而是透過較小的子節點網路驗證。 區別在於不是每個節點選擇自己的可信節點列表,而是任何節點都可以在符合規則的情況下相互加入。

SCP強調維護網絡的安全性(實現共識和識別不良行為節點的能力)和活躍性(能夠在不被不良行為阻塞的情況下添加新價值)的功能。換句話說,SCP不需要交易得到網絡中所有節點的批准。但不是用戶選擇節點,而是信任交易批准這件事,任何節點都可以相互加入對方進行交易。 該協議提供的數學函數用於控制節點的有效性。

LFT共識機制(Loop Fault Tolerence)

LFT是一種專有的高性能一致性算法,支持拜占庭容錯(BFT) 為拜占庭將軍問題的實用解決方案的演變,更是目前ICON所使用的共識機制。屏除中間者,讓參與者相互直接地傳遞消息,達成共識。在傳統的BFT中,共識包含預備、準備和提交三個步驟,LFT將其簡化為二,僅挑選有限數量的節點生成新區塊,其他節點只能參與投票過程。

LFT使用一種稱為“旋轉spinning”的技術,選擇主節點。當網絡啟動時,驗證節點將所需的交易傳至已經確定的節點讀取器。主節點使用收集的交易生成新區塊並與簽名一起發送到所有驗證節點。當每個驗證節點收到區塊時,將會進行如下驗證:

  1. 目前的審查者已生成一個區塊
  2. 區塊高度和先前區塊的哈希值是否正確
  3. 區塊中的數據是否正確
  4. 若上述三點無誤,他將生成投票數據並普及至網路中

非認許制帳本 The Tangle(有向無環圖 Directed Acyclic Graph , DAG)

該協議不是獎勵用戶驗證交易,而是要求用戶合作驗證算法選擇的兩個或多個交易,以便被授予進行一次交易的權利。實質上它所使用的有向無環圖並非真正的區塊鏈技術,但卻為IOTA及其底層加密貨幣MIOTA提供的平台。其目的是降低交易成本,這對於擁有大量低價交易(小額支付)的系統具有吸引力。節點不會批准衝突的交易,並且為了驗證交易,節點必須進行類似於工作量證明的數學工作。

IOTA解決了擴展性及高機埸費用的問題,不過不支持智能合約成為其目前制度的缺點。

結語

現今區塊鏈技術百家爭鳴,雖然仍無法產生一個盡善盡美共識機制,但新方式總是鼓舞人心的。且透過一次次的迭代,相信將帶領區塊鏈科技不斷進步。最後,區塊先生也為各位讀者整理了目前在市場上各種幣別的共識演算法,提供大家參考。

筆者:Alvin
責任編輯:Andy

加密貨幣屬高風險投資,我們不鼓勵大家盲目跟隨,應審慎評估後再做決定。區塊先生致力於提供區塊鏈教育,從世界各地的區塊鏈組織與活動中學習,努力傳達相關知識及最新趨勢,讓大家能夠一起成長茁壯。我們也很歡迎各位讀者提出任何區塊鏈相關的問題一起討論。

加入區塊先生電子報
關注區塊鏈相關新聞及最新活動預告:http://pcse.pw/5ZAH7

It’s a revolution, and we believe in it.

區塊先生誠徵實習生,意者請寄信至:hello@mrblock.tw

--

--

Mr. Block (Editor)
區塊先生 Mr. Block — Blockchain & Tech.

Editor of Mr. Block. Write about contents related to blockchain, cryptocurrencies.