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