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