Qtum量子鏈分散式自治協議 DGP 如何實現鏈上治理

買賣虛擬貨幣
引言:Qtum 量子鏈的分散式自治協議(Decentralized Governance Protocol,DGP)是基於 Qtum 實現的鏈上協議,協議允許透過鏈上提案和投票系統對共識引數進行更改。提案一旦投票透過,就可以在不分叉主鏈的情況下對引數進行無縫調整。
1. 背景區塊鏈治理要解決的是在一個去中心化網路中怎樣對軟體系統進行升級、迭代等等問題。比特幣之前分叉成 BTC 和 BCH,分歧僅在於區塊的大小(當然這背後包含很多利益糾葛,但技術上只是一個引數的分歧),正因為比特幣是一個沒有完整鏈上治理機制的去中心化網路,所以導致這個爭論持續了很長一段時間。又比如 BCH 分叉的算力之爭。分叉並不能說是絕對意義上的壞事,但基本的區塊鏈引數完全可以在無分叉的情況下實現升級,因此 Qtum 設計了 DGP(Decentralized Governance Protocol,分散式自治協議)。影響分叉的因素大致可分為以下三類 :
演算法、功能的改變:共識演算法、加密演算法、交易指令碼、虛擬機器;策略、引數改變:區塊大小、出塊時間、交易數量、Gas 策略;關鍵漏洞的修復、回滾:DAO、Parity 多重簽名錢包。策略方面的因素其實是最容易達成共識的,另外兩類有時必須透過分叉來解決。DGP 本身的框架是透過若干部署在創世區塊的智慧合約來實現的,其基本的治理結構是這樣:在整個社羣內部的礦工、區塊生成者和持有者都是區塊鏈治理的參與者,透過投票去完成治理的過程,最終讓區塊鏈成為能夠自我管理、升級和迭代的系統。2. 功能設計與實現DGP 的實現需要某種可程式設計技術,UTXO 和 EVM 其實都提供了這種特性,所以理論上有兩種實現方式 :
1. 基於比特幣交易指令碼,透過在交易指令碼上實現協議邏輯。然而由於比特幣指令碼非圖靈完備,這種實現會比較複雜;2. 基於智慧合約,具有圖靈完備的可程式設計能力,可以靈活實現複雜的邏輯。Qtum 選擇了後者。DGP 核心邏輯的實現,是由一系列的智慧合約(包括框架合約,特性合約)組成。DGP 框架合約實現以下功能:· 提案和投票:每個引數改變包括內部治理席位管理需要先被提議,然後對它進行投票。如果投票符合所選擇的條件,則該提議被接受,並執行該操作。投票使用“msg.sender”計算,這樣公鑰雜湊地址或合約地址都可以作為參與者參與投票;· 治理席位管理:可以新增和刪除參與者,也可以修改治理席位引數,比如一個提案被接受需要多少個治理席位同意,新增一個治理席位需要多少個治理席位同意等等;
· 傳送正確格式的資料給 DGP 特性合約;· 允許自己被禁用,這樣在不使用硬分叉的情況下就不能進行進一步的 DGP 修改(防止重大的漏洞或問題);· 一次只允許一個提案,提案只能由參與者提出。每個提案的有效期不超過 5000 個區塊。每個提案在到期後,或者在投票結束後,完全可以拒絕或者批准;· (可選功能)維護管理員的列表,管理員可以刪除提案,管理員也可以是唯一允許新增提案的人。DGP特性合約則更簡單,它只需要完成以下兩件事情:1. 只從合適的DGP框架合約接收資訊/資料(使用 msg.sender)。
2. 使用“SSTORE”以一種標準化的形式儲存共識資料,以便區塊鏈在不執行 EVM 的情況下就能在 RPL 中檢索和解析該資料。區塊鏈核心程式碼在共識過程中執行協議的智慧合約,獲得當前的共識狀態。同時它能透過Transaction完成區塊鏈網路的狀態轉換,升級無需區塊鏈網路軟體更新。理論上,採用了圖靈完備的智慧合約可以實現任意複雜度的協議設計,甚至是區塊鏈的核心協議,如共識部分的程式碼等;權衡效率和安全性方面考慮,當前協議僅適用於在安全範圍內對特定引數進行更改,同時對引數生效時間採取一定的時間限制。未來 DGP 可以不斷迭代,實現更多更復雜的治理。回到具體實現,創世塊嵌入了常見的區塊鏈引數治理的智慧合約,每個治理的主題都由獨立的框架合約控制(模板),這意味著每個功能有獨立的治理、授權機制以及內建限制條件Block size、Min GasPrice、Block GasLimit、Gas Schedule。此外 DGP 合約還具備自毀功能,能在提案治理上發生意外時啟動,治理引數退回到預設狀態。3. 實際用例DGP允許透過鏈上提案和投票系統對共識引數進行更改。提案一旦投票透過,就可以在不分叉主鏈的情況下對引數進行無縫調整。目前在Qtum鏈上部署了4個DGP合約,分別用於對4個共識引數進行動態控制:
1. 區塊大小: 區塊的最大容量預設是2 Mb, DGP 合約: 00000000000000000000000000000000000000812. 最小Gas價格: 區塊建立者可接受的最小Gas價格預設是 40 satoshis, DGP 合約: 00000000000000000000000000000000000000823. 區塊Gas限制:一個區塊所能消耗的最大Gas數預設是4千萬, DGP 合約: 0000000000000000000000000000000000000084
4. EVM Gas排程: 每個EVM操作花費的GasDGP 合約: 0000000000000000000000000000000000000080將控制這4個常見的區塊鏈引數的智慧合約嵌入到 Qtum 主網的創世塊的原因是:這4個引數是Qtum鏈中最為關鍵的幾個引數,使用智慧合約對它們進行動態更改,可以最大程度地減少對區塊鏈網路的影響。可以使用DGP合約來新增更多的可控引數,但這個過程需要執行一次硬分叉。因為需要對共識編碼進行修改,才能讓鏈上已經儲存的引數值變得可控。每一個可被DGP合約控制的引數都需要獨立部署一個相應的DGP合約。Qtum客戶端會從控制引數的各個DGP合約中獲取每個區塊共識下的DGP合約所控引數的值。客戶端如果沒有讀取到DGP合約中儲存的引數值,就會直接返回在客戶端程式碼中所定義的該引數的初始值。
DGP合約管理席(管理人員)的任務是在需要時為每個DGP合約引數發起提案,並提交提案啟動投票。一旦某個提案獲得足夠的支援票數,該提案會自動生效,同時新的引數規則將作為新的共識規則作用於相應的引數。如果提案在21600個區塊內沒有獲得所需的票數,那麼它將被駁回,同時合約將接受新的提案。參考資料:1. https://qtum.org/user/pages/01.home/Qtum%20new%20whitepaper_cn.pdf

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;