一年前發佈以太貓的時候,我們沒有選擇預先通過 ICO 的方式募集資金,而是爲其設計了一個可持續的盈利模式。這個模式是這樣的:我們對遊戲中的每筆交易收取 3.75% 的費率。鑑於加密貓遊戲是建立在以太坊區塊鏈上的,這個遊戲一經部署發佈,我們就不能再更改費率。經常有人問我們是怎麼得出那個數字的(譯者注:前面提到的 3.75%)。

這個數字看起來像是通過嚴密的方法推算出來的。我也可以編一個天花亂墜的故事,去闡述我們是怎麼用先進的預測模型跑仿真實驗,從而找到了一個可以產生最優回報的費率。

事實並非如此。我們只是做了有根據的推測,然後選擇了一個感覺上比較公平的數字,然後付諸實踐。

原文標題:《觀點:爲什麼說漸進式去中心化是合約開發的可行之道?》
作者:Arthur Camara、Dieter Shirley、Grady Mitchell
翻譯 & 校對:haiki、閔敏

不可變更性令人敬畏

我們很容易做出錯誤的選擇;而一旦把它添加到區塊鏈上,就無法做任何改變了,這將是天大的災難。我們的加密貓就很幸運,萌噠噠的貓咪碰上了熱情似火的社區,3.75% 的費率下運作得也還不錯。

不可變性就是(一旦上鍊就)不能再編輯,它既是區塊鏈技術最大的優勢,也是阻礙其被廣泛採用的最大障礙。代碼一經部署就永遠不可更改,如此巨大的壓力足以壓垮開發者:在測試環境中你隨時可以做出修改,但在實際運行過程中總有你預料不到的變數。如果你蒙起眼睛二話不說就是幹,是絕不可能取得突破的,反而很有可能引發故障。

除了費率之外,我們還做了許多決策:加密貓的成長期是多久?它們的繁殖冷卻速度應該以什麼樣的速率減慢?0 代加密貓售價多少?一旦在區塊鏈上發佈,就算是一個看似微不足道的決定都會造成嚴重乃至危險的後果。

去中心化給普通人帶來了巨大的好處:永久性通用規則上的公平性,以及代碼和行爲上的透明性,結合在一起實現了安全性。然而,由於區塊鏈具有不可變性,上鍊的項目不是一舉成功,就是一敗塗地,敏捷開發是不可能了,開發團隊也沒了緩慢前行的餘地。

敏捷開發需要迭代。快速迭代是構建最優質產品的關鍵,而最優質的產品會被大規模採用。

何謂漸進式去中心化

我們開發加密貓時就遇到了這些障礙,爲了增強產品的實用性只能弱化去中心化的特徵。從那以後,我們就開始探索漸進式去中心化,就是我們在最近的一篇文章中簡略介紹過的那個想法。

現在讓我們更深入地探究一下。

簡言之,漸進式去中心化提倡有階段性地過渡至去中心化,而不是直接邁進去中心化。也就是說,要在智能合約中創建一些機制,最開始的時候賦予合約創建者一些特權,之後通過透明且系統化的方式逐步將這些權力封鎖起來

最關鍵的一項條件是,權力封鎖機制在最開始的時候就必須是公開透明、不可更改的。合約創建者後續無法修改條款,無限制擴大自己的權力。最重要的是找到一個平衡點:如果漸進式去中心化走對了路子,合約創建者就可以在不損害合約去中心化特性的情況下靈活修改他們的代碼。

漸進式去中心化可以有很多種形式

漸進式去中心化不是隻有一條路走得通。有許多方法可以去考慮,最佳的方法因項目而異。

下面提供了一些開發者可以用來實現漸進式去中心化的方法:

1、對項目進行合理劃分,將不同方面分別編寫進不同的合約內,而且其中一些合約是能夠被替換的。已經有一些去中心化的應用(「DApp」)在使用這種方法了,例如以可升級合約爲特色的 Decentraland;
2、實現變量可配置化並開設獨立更改變量的權限。比如說 Etheremon 就爲那些成爲仲裁人(moderator)的用戶開設了特殊權限;
3、在合約中預先設定一組層級,每個層級都會賦予合約創建者特定的權限。層級只能升高,不能降低。因此,一旦進入了更高層級,是不可能回到原來的層級的。例如,處於第一層級的合約所有者可以自由設置變量。到第二層級之後,他們就喪失了更改核心變量的權限。到了最後一個層級,合約所有者的一切特權都會被取消。

對於擁護去中心化的鐵桿粉絲來說,上面的一些方法可能太過中心化了。但是這只是第一步。還需要通過後續措施進行迭代,逐漸趨近去中心化。這種解決方案就是將一個透明的目標與合約中的約束條件結合起來。這些約束條件應該包括:

1、選擇:不是所有的東西都可以更改,只有那些需要被迭代的特定項可以被更改;
2、範圍:對於很多有關博弈經濟的問題,我們有了一個大概的想法但是還不知道準確的答案。將配置限制在一定的範圍內可以讓用戶確信迭代會在合理的範圍內進行;
3、方向:類似於上文提到的「層級」的概念,特定的變量只能單向移動,一直增加或者一直減小,但是絕不能逆轉。

實行合約創建者問責制

這些在理論上聽起來很棒。但是我們怎麼能確保開發者會嚴格按照他們的路線圖一步步實現完全去中心化呢?如何讓用戶相信這是個漸進式去中心化系統並儘早加入呢?我們怎麼能知道這個系統最終不會變成一個有缺陷的中心化系統呢?

漸進式去中心化需要實行合約創建者問責制:

基於時間長度或者出塊數量劃分階段

基於固定的時間長度或出塊數量進行階段劃分,鎖定某幾個配置值,取消合約擁有者的權限,或者進入下一層級。一旦越過臨界點,合約就會自動變更。

想像一下,比如說,加密貓從發佈開始每挖出 36 萬個區塊(大約是 60 天的時間)就要調整貓的繁殖冷卻變量,在那之前我們可以調整冷卻機制,給自己喘息的空間去實現平衡,而且向玩家保證我們不會永遠擁有這個特權。

基於使用量的階段劃分

當用戶或者交易達到一定量的時候會鎖住這些權限。這個解決方案可能會被利用,因此需要謹慎考慮,但是我們可以在加密貓中構建一個彈性費用機制,等到 10,000 筆交易之後會鎖定費用。

經濟激勵

在合約創建者可獲得的經濟激勵與合約的去中心化程度之間建立正相關關係。在這種場景下,合約去中心化的程度越高,創建者收益越多。比方說,開發人員每上升一個層級,交易費用也會隨之上漲,當達到完全去中心化的時候,就會鎖定在最高的費用上。或者說,在完全實現去中心化以前,開發者一點收益也沒有。有了這種經濟激勵之後,開發者以合理的節奏向完全去中心化過渡。

區塊鏈上沒有最佳的構建方法

「漸進式去中心化」實際上包含許多策略、機制和工具,可以讓區塊鏈上的開發工作變的更加可行。漸進式去中心化的最佳實現方式還是得具體項目具體分析,將上述概念進行混合搭配。

漸進式去中心化不是完美無缺的。完美的智能合約是簡單明瞭的,這些措施卻增加了智能合約的複雜性。採取哪些措施以及如何採取這些措施是一個權衡的過程,需要根據具體情況進行評估。

儘管這個觀點可能會觸怒去中心化的鐵桿粉絲,但是我們認爲,從長遠發展來看,漸進式去中心化對用戶更有利:它給予開發者更多靈活性,賦予產品更強的實用性。這意味着用戶真的會使用這個產品,一旦產品給他們的生活帶來價值,他們就會向周圍的人們安利這個產品。這個產品就能進入大規模應用階段。

來源鏈接:medium.freecodecamp.org