2017年5月12,數字加密貨幣出現以來,分叉的問題一直影響著區塊鏈上面的應用,如何實現區塊鏈網絡的自動升級和降低分叉對用戶的影響,并且建立更有效的區塊鏈網絡治理模式,是區塊鏈行業未來發展中面臨的巨大難題和挑戰。Qtum 量子鏈近日發布報告闡述了這幾個問題。
分叉對區塊鏈應用的部署帶來巨大的影響,目前主流的數字貨幣都曾經經歷過軟分叉和硬分叉對社區帶來的巨大的傷害和影響,包括比特幣、以太坊在內無一幸免。比特幣核心代碼早期曾通過軟分叉的方式解決了操作碼可被惡意攻擊的漏洞。類似的,以太坊也曾通過硬分叉的方式修復了the DAO智能合約漏洞對以太坊網絡的巨大傷害,并且導致社區的紛爭和分裂,也正是由于硬分叉不可逆轉的影響,造成了以太坊網絡分裂成2個獨立的網絡,ETH 和 ETC。
以太坊在后續發展中,也通過數次的軟分叉來解決網絡中的問題,并且強制要求所有的礦池和客戶端進行更新。分叉作為一種網絡和軟件升級的手段,無可厚非,類比來說,即使在生命攸關的大型航空器或心臟起搏器中也可能會出現需要修復的漏洞。
但是如何達成分叉的共識,并降低分叉對生態系統的影響是整個區塊鏈行業都需要思考的問題。比如如何更有效的解決比特幣網絡擴容的問題,如何在比特幣不同的擴容方案中做出大多數都認可的選擇,以及如何達成這種共識,從而避免1MB 區塊還是2MB區塊長達2-3年的爭論?
Qtum量子鏈在設計之初就考慮了這些問題,并提出了 分布式自治協議(Decentralized Governance Protocol),通過智能合約來治理區塊鏈網絡的參數,并實現一個去中心化的網絡自治機制,實現區塊鏈網絡的自動升級和快速迭代,而不用擔心軟硬分叉對網絡和社區帶來的影響。
通過DGP協議和機制,區塊鏈網絡在分叉或者升級過程中,用戶無需對核心錢包升級,即可對某些分叉實現自適應,最大程度地減少對區塊鏈網絡、生態系統以及用戶產生的影響。
分布式自治協議涉及的相關名詞:
分布式自治協議 Decentralized Governance Protocol (DGP)
數字化治理技術 Digital Governance Technology
自治共識機制協議 Democratic Consensus Protocol
可調共識機制協議 Adjustable Consensus Protocol
自調節共識經濟技術 Self-Regulating Consensus Economy Technology
自動共識機制調節協議 Automatic Consensus Adjustment Protocol
共識機制參數修改協議 Modifiable Consensus Parameter Protocol
什么是分布式自治協議(DGP)
Qtum量子鏈創造了一個全新的概念:分布式自治協議(DGP),即通過觸發特定智能合約對區塊鏈某些特定參數進行修改。更為重要的是,整個過程自動進行,無需用戶對錢包進行升級或下載新的節點軟件。
分布式自治協議可以修改區塊鏈網絡中的以下參數:
1.不同操作碼對應gas價格;
2.區塊大小的上限;
3.區塊gas上下限;
4.DoS攻擊情況下,可接受的gas價格最小值;
5.區塊或交易中可允許sigops的最大值;
6.標準交易的類型和大小限制。
DGP除了可以修改區塊鏈網絡中的簡單參數外,DGP還有潛力解決區塊鏈網絡的一下問題
1.實現類似于比特幣告警系統的網絡告警系統;
2.在區塊鏈智能合約中部署新的虛擬機;
3.同步檢查點系統,用于區塊鏈動態檢查。
這個概念的強大性體現在當系統受到某些未知攻擊時,DGP可以自動更改網絡相關參數,并在1000個區塊內修復相關安全漏洞,用戶無需升級或者更新錢包。利用DGP協議網絡可在共識達成的情況下,實現自動的區塊鏈網絡升級,而無需用戶進行強制的錢包更新。
分布式自治協議(DGP)如何實現
Qtum 量子鏈第一個正式發布的版本會至少包含以下4個DGP協議的功能:
1.每個Qtum虛擬機操作碼對應的Gas價格
2.區塊創建者可接受的交易對應最低Gas價格(具體技術細節將在另一篇技術稿MPoS中詳細解釋)
3.區塊大小
4.區塊gas限制
每個功能都由獨立的智能合約控制,這意味著每個功能有獨立的治理、授權機制以及內置限制條件。
通常情況下,DGP可通過軟分叉實現,以下更為復雜的情況需要利用硬分叉實現:
1.在區塊鏈上設計和部署DGP分布式自治合約
2.發布新錢包,用軟件加密代替DGP分布式自治合約地址硬編碼
3.等待直至足夠多的節點和累積權益進行了更新,并支持全新的DGP
4.這時DGP可以用于更改特定的網絡參數。雖然較老版本的錢包無法驗證支持DGP的區塊,但系統中的新節點可以完成區塊驗證。
具體的網絡參數更改流程為:
1.設計DGP參數更改提案。提案中需要明確新的參數值、實施變更的起始區塊以及投票過程所對應的區塊數量。區塊高度應小于20,000個,投票過程應控制在10,000個區塊之內。若有緊急特殊情況,可以將區塊高度和投票過程控制在1,000個和500個之內。更改提案禁止在500個區塊內生效,以避免出現不必要的孤兒塊或分叉;
2.向社區公布更改提案,并收集相關反饋;
3.根據社區反饋,對更改提案進行相應調整;
4.將最終版提案發送至DGP智能合約;
5.投票立即啟動;
6.控制節點可以發送一筆交易給DGP智能合約,表達自己的贊成或者不贊成
7.在投票過程中,若提案未獲得足夠投票或收到過多反對票,則該提案被否決,不執行任何修改;
8.若提案得到足夠同意票,則DGP分布式自治合約將提案中的相關數據存儲在持久RLP儲存器中特殊存儲空間內;
9.錢包和區塊鏈上的所有節點可以定時檢查RLP儲存器從而判斷是否有新的更改發生,該操作并不需要通過EVM即可方便地訪問RLP數據;
10.在特定區塊高度時,錢包和節點執行參數更改。
每個DGP都有一個非常簡單的核心治理模式,包括一系列賬戶(可以是公鑰哈希地址或已部署EVM合約地址),賬戶還可在其他重大決策諸如在DGP分布式自治合約中增加或去除賬戶、調整提案通過所需同意票的最低票數等事項中起到決策性作用。
盡管這種治理模式看似簡單,但后續可以根據實際情況進行調整。通過移除DGP所有賬戶信息(除了單個智能合約),DGP可以將所有權限管理與治理邏輯授權給外部智能合約。這樣,外部智能合約可以部署全新的治理模型,比如通過某更改提案需要一定數量的社區投票、管理層投票以及核心開發者投票。這種治理機制可以隨時按需進行調整。
分布式自治協議(DGP)安全模型
當然,DGP也有其限制。盡管可以Qtum量子鏈所有的網絡共識機制都放入一個DGP分布式自治合約,但這會消耗大量的算力資源,而且可能會導致系統性能下降。所以在Qtum的主干網絡中,我們只會部署幾個DGP分布式自治合約在創始區塊中。 此外,并非所有合約都適合放入DGP分布式自治合約中。當Qtum量子鏈進行重大功能升級時,仍需要人工干預進行分叉。
因此,DGP機制僅適用于在安全范圍內對特定參數進行更改。任何可能影響區塊鏈安全或針對某個特定用戶/賬號的DGP都禁止部署至區塊鏈上。
盡管DGP模型功能強大,但嚴格的部署應用規定有助于降低DGP模型受到攻擊的可能性,也有助于控制DGP實施過程中的各類風險。畢竟與易用性、有效性相比,區塊鏈網絡的安全性更為重要。
最后需要特別說明的是,每個DGP分布式自治合約都有自毀功能,用于完全禁用DGP功能。當有重大安全漏洞發生時才會啟用DGP自毀動能。后續根據不同DGP功能,通過軟分叉或硬分叉進行功能性重建。