打破 Nervos DAO 的流動性限制

買賣虛擬貨幣
自從在 CKB 經濟模型白皮書中第一次接觸到 Nervos DAO 時,我就一直在思考如何才能打破它的流動性限制。Nervos DAO 的流動性限制不知道 Nervos DAO 是什麼的小夥伴可以先看看這裡Nervos DAO 是一個內建合約,可以讓人們將 CKB 存入其中並獲得補貼(以抵禦部分稀釋),並且透過對儲存資料的使用者收取「利息」來控制鏈上資料(不被任意)的佔用。Nervos DAO 是 CKB 經濟模型設計的重要組成部分,更多內容您可以查閱 CKB 經濟模型白皮書。https://docs.ckb.dev/docs/rfcs/0015-ckb-cryptoeconomics/0015-ckb-cryptoeconomics.zh
一個典型的 CKB 持有者會選擇以下策略之一來儲存或使用 CKB:· 將 CKB 存入 Nervos DAO 並獲得補貼,但使用者在 Nervos DAO 鎖定期內不能使用或花費 CKB· 在鏈上儲存一些資料,每位元組資料佔用 1 個 CKB· 什麼都不做,讓代幣稀釋· 尋找其他方式賺取更多的 CKB:投資、借貸......對於一個持有者來說,顯然在 Nervos DAO 中存幣是抵抗(部分)稀釋最簡單的方法。
但 Nervos DAO 有一個惱人的設計,就是限制了幣的流動性:必須在存入 CKB 後的 N*180 個 Epoch 才能取出代幣,也就是第 180 個 Epoch(約 30 天)、360 個 Epoch(約 60 天)、540 個 Epoch(約 90 天)……以此類推。不幸的是(或者應該說「幸運的是」),CKB 是一個強大的程式設計平臺。在這樣一個強大的平臺上,我們甚至可以寫一個合約來打破 Nervos DAO 的流動性限制。讓我們來打破它一個簡單的想法浮現在我的腦海裡,我們可以構建一個 UDT(使用者自定義 Token)來「劫持」Nervos DAO。「劫持」並不意味著 Nervos DAO 中存在一些漏洞,我們所做的是建立一個代幣來追蹤 Nervos DAO 的補貼,這樣我們就可以透過銷燬相同數量的 UDT 來劫持(證明)Nervos DAO 中代幣的所有權。我將這個 UDT 合約命名為 DCKB。DCKB 合約的運作模式如下:· Alice 在 Nervos DAO 中存入了 X 個 CKB,則該合約就會同樣給 Alice 建立 X 個 DCKB
· Alice 可以傳送任何 DCKB 給任何人,就像傳送其它 UDT 一樣· 該合約在每一個新的區塊高度建立 Y 個 DCKB(對應於 Nervos DAO 的補貼)給 Token 所有者· Alice 或其他任何人都可以透過銷燬 X+Y 個 DCKB,來從 Nervos DAO 中提取 X+Y 個 CKB主網啟動後,我確認了 DCKB 的方案確實可行,於是花了一些閒暇時間實現了 DCKB 合約:https://github.com/jjyr/DCKB誰是 DCKB 的使用者
Layer 2、DeFi 等基於託管方的合約現在的智慧合約或多或少都依賴於託管機制,如果 Layer 2、DeFi 專案允許 DCKB 作為託管資產,存款者則可以獲得更多的利益,這將激勵更多的人參與存管。加密貨幣交易員可以使用 DCKB 代替 CKB 來追求更好的收益。作者和開發者可以透過捐贈的方式獲得 DCKB,從而獲得 CKB。
Nervos 的經濟模型已被打破?是,也不是。從某種角度來說,我們確實打破了最初設計中的一些假設。DCKB 實現之後,加密貨幣交易者可以在不犧牲流動性的情況下獲得補貼,這消除了一些原本交易者應該承擔的稀釋(譯註:交易者可以獲得 Nervos DAO 中的 CKB 補貼,但同時也可以透過 DCKB 進行交易確保流動性)。但同時,我們也給了 Layer 2、DeFi 的使用者提供了更多的益處。在我看來,對於一個打著「Layer 1 for Layer 2」口號的區塊鏈來說,Layer 2 的使用者是系統的重要貢獻者,系統應該激勵他們。從另一個角度來看,DKCB 並沒有打破經濟模型的核心理念。CKB 經濟模型的核心思想是限制對鏈上資料的佔用,DCKB 並不會影響這一點。當使用者建立 DCKB 時,同樣數量的 CKB 將會被存入到 Nervos DAO 中,所以很明顯,一個 DCKB 所有者不會佔用新發行的 CKB,從而也不會儲存鏈上資料。我認為 DCKB 保留了 CKB 經濟模型的核心理念,同時也擴充套件了它的潛力。
DCKB 是如何工作的本文並不討論 DCKB 合約的實現細節,所以我只對其中的核心部分進行說明。想要了解更多資訊,可以查閱 DCKB 原始碼。一個典型的 UDT 合約在 Cell 中包含一個 u128 數字來代表 Token 的數量。DCKB 使用一個額外的 u64 數字來代表一個區塊高度。所以一個 DCKB cell 中包含了 amount 和 block number ,代表我們在區塊高度 N 處有 X 個 DCKB。我們假設 Alice 有兩個 DCKB cell:第一個 cell 在區塊高度 N1 處包含 X1 數量的 DCKB,第二個 cell 在區塊高度 N2 處包含 X2 數量 DCKB,且 N2 大於 N1。然後 Alice 將所有 DCKB 代幣轉移給 Bob:
· DCKB 合約載入 N1 和 N2 區塊的區塊頭· 應用 Nervos DAO 公式重新計算 N2 處的 X1 : dao_formula(X1, N1_header, N2_header)· 最後,驗證在 N2 時的輸出 cell 是 dao_formula(X1, N1_header, N2_header) + X2現 狀現在,DCKB 已經可以在 Aggron Testnet 上執行啦!DCKB GitHub repo
https://github.com/jjyr/DCKB您可以使用分叉版本的 ckb-cli 來執行 DCKB,這裡有一個快速啟動文件https://github.com/jjyr/ckb-cli/tree/DCKB/src/subcommands/dckbDCKB Wiki、檔案和測試網部署情況https://github.com/jjyr/DCKB/wiki如果你是開發人員,可以看這裡的合約部署狀態
https://github.com/jjyr/DCKB/wiki/Deployment-Status在決定將 DCKB 部署到主網之前,我會繼續收集更多的反饋,歡迎來 Nervos Talk 留下你的想法:https://talk.nervos.org/t/dckb-is-available-on-the-aggron-testnet/4713我也希望每一個優秀的 Layer 2、DeFi 專案都可以考慮讓 DCKB 作為一種資產。

免責聲明:

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

推荐阅读

;