當(dāng)我們在一年前發(fā)布CryptoKitties(加密貓)時,我們沒有選擇預(yù)先向ICO提供資金,而是將其建立在一個可持續(xù)的收入模型上。這個模型是這樣的:我們從游戲中的每筆交易中收取3.75%的費用??紤]到我們一旦啟動就無法更改費用(CryptoKitTIes是在以太坊區(qū)塊鏈上構(gòu)建的),人們經(jīng)常會問我們是如何得到這個數(shù)字的。
這聽起來是個明智、合理的選擇。我可以編造一個引人入勝的故事,講述我們?nèi)绾问褂孟冗M的預(yù)測模型進行模擬,以找到能夠產(chǎn)生最佳回報的費用。
但事實并非如此。事實是我們的猜測是有根據(jù)的。我們選擇了一個感覺公平的數(shù)字,并致力于此。
不變性是可怕的
我們很容易做出錯誤的選擇,因為你不能改變一些東西,一旦你把它添加到區(qū)塊鏈,那就無法改變。幸運的是,對于CryptoKitTIes來說,我們的社區(qū)非常熱情,而且這些貓非常可愛,所以3.75%的效果很好。
不變性,即無法被編輯,是區(qū)塊鏈最大的優(yōu)勢,也是它被有意義采用的最大障礙。不變性代碼的壓力使開發(fā)人員癱瘓:您可以永遠在測試環(huán)境中進行修補,但是總會有一些您無法預(yù)料的實際變量。它更有可能產(chǎn)生故障。
我們的費用只是眾多決定中的一個:養(yǎng)一只貓需要多長時間?它們的繁殖冷卻速度應(yīng)該以什么速度減慢?第0代貓需要多少錢?在區(qū)塊鏈上,即使一個看似微不足道的選擇也可能造成嚴重、甚至關(guān)鍵的后果。
去中心化給日常生活的人們帶來了巨大的好處:永久和普遍規(guī)則的公平性,以及代碼和行為的透明度,這些結(jié)合起來就創(chuàng)造了安全。然而,由于區(qū)塊鏈通常是在不變性的情況下實現(xiàn)的,因此它使敏捷開發(fā)變得不可能,并使團隊慢得像爬行一樣。
快速需要迭代。快速迭代是構(gòu)建最佳產(chǎn)品的關(guān)鍵,而最佳產(chǎn)品會引發(fā)大規(guī)模采用。
進入漸進式去中心化
我們在構(gòu)建加密貨幣套件時遇到了這些障礙,這迫使我們在構(gòu)建一些可行的東西時,還要考慮去中心化化特性。從那時起,我們開始探索開發(fā)中的漸進式區(qū)中心化,這是我們不久前簡要介紹的一個想法。
現(xiàn)在讓我們深入研究一下。
簡單地說,漸進式去中心化主張分階段逐步推進分權(quán),而不是一頭扎進去。這看起來就像在智能合約中建立機制,預(yù)先賦予創(chuàng)造者特殊的權(quán)力,然后以透明的方式逐步鎖定這些權(quán)力。
關(guān)鍵條件是鎖定機制必須是公共的,并且從一開始就是不可變的。創(chuàng)作者不能決定在以后修改條款并無限期地擴展他們的權(quán)力。這種平衡至關(guān)重要:如果處理得當(dāng),漸進式去中心化允許創(chuàng)建者在不損害合約的分權(quán)特性情況下靈活地修復(fù)代碼。
漸進式去中心化可以采取多種形式
沒有一種正確的方法來實現(xiàn)漸進式去中心化。有許多變量需要考慮,最佳的方法因項目而異。
這里有一些開發(fā)人員可以采用的方法:
1. 編寫多個合約,并適當(dāng)?shù)胤蛛x關(guān)注點和替換其中一些合約的能力。一些分散式應(yīng)用程序(dapps)已經(jīng)在使用這種技術(shù)了。
2. 可配置變量和獨立更改這些值的權(quán)限。例如,Etheremon向成為版主的用戶組授予特殊權(quán)限。
3. 在合約中包含一組預(yù)定義的升序級別,每個級別允許創(chuàng)建者具有某些功能。級別只能增加,而不能減少,因此不能選擇回溯。例如,在第1級,合約所有者可以使用所有的游戲玩法變量。在第2級,他們修改核心變量的能力就結(jié)束了。在最后一層,合約會取消了它們的所有特權(quán)。
對于頑固的分權(quán)主義者來說,其中一些可能聽起來過于集中。但這只是一個起點。還有進一步的措施來平衡去中心化和迭代。解決方案結(jié)合了目的的透明性以及合約中的條件和約束。這些限制可以包括:
選擇: 不是所有東西都可以修改,只有我們需要迭代的特定項可以修改。
范圍:關(guān)于游戲經(jīng)濟的許多問題,我們可能有一個大概的想法,但并不知道確切的答案。將配置限制在一定范圍內(nèi),可以確保用戶將迭代放置在合理的范圍內(nèi)。
方向: 類似于上面的“級別”概念,允許某些變量只在一個方向上移動,減少或增加,但絕不回溯。
讓創(chuàng)造者責(zé)任
所有這些在理論上聽起來都很棒。但是,我們?nèi)绾未_保創(chuàng)建者忠實于他們的路線圖,并實現(xiàn)其合約的完全去中心化版本呢?用戶如何在保證系統(tǒng)是漸進式去中心化應(yīng)用的前提下盡早選擇加入?我們怎么知道我們不會以另一個有缺陷的中央集權(quán)系統(tǒng)而告終呢?
漸進式去中心化包括讓創(chuàng)造者負責(zé)任的原則:
· 基于時間或塊的成熟度
鎖定某些配置值,撤銷所有者的功能,或者在超過某個時間或塊號之后移動到下一個成熟度級別。一旦達到這一點,合約就會自動更改。
例如,想象一下,從它發(fā)射的那一刻起,CryptoKitTIes的跑道有36萬個塊(大約60天的時間),用來調(diào)整貓咪的“繁殖冷卻時間變量”。 直到那個時候我們可以調(diào)整冷卻機制,給自己足夠的喘息空間來完善平衡,同時保證玩家不會永遠擁有這種能力。
· 基于使用的成熟度
一旦完成一定數(shù)量的用戶或事務(wù),就鎖定這些功能。這個選項需要仔細考慮以避免被利用,但是我們可以在加密包中構(gòu)建可配置的費用,在10,000個事務(wù)之后鎖定。
· 經(jīng)濟激勵
將造物主的激勵與增加的去中心化相結(jié)合。在這種情況下,當(dāng)合約變得更加分散時,創(chuàng)建者會獲得更多的利潤。也許費用會隨著開發(fā)人員提升的級別而增加,當(dāng)他們達到完全分散時鎖定在最高費用?;蛘撸谕耆娜ブ行幕轿恢?,他們根本賺不到錢。這種經(jīng)濟獎勵激勵開發(fā)人員以合理的速度實現(xiàn)去中心化。
沒有在區(qū)塊鏈上構(gòu)建的最佳方法
“漸進式去中心化”實際上是一個涵蓋許多策略、機制和工具的保護傘,以使在區(qū)塊鏈上進行構(gòu)建更加可行。應(yīng)用漸進式去中心化的最佳方式始終取決于項目,并使用上面概述概念的組合。
漸進式去中心化并不完美。理想的智能合約是簡單而直接的,這些度量方法增加了復(fù)雜性。如何在多大程度上合并它是一種權(quán)衡,需要在個案的基礎(chǔ)上進行評估。
盡管這可能會激怒強硬的去中心化主義者,但我們相信,從長遠來看,漸進式去中心化對用戶來說要好得多:通過給予開發(fā)人員調(diào)整的靈活性,消費者可以得到更有用的產(chǎn)品。這意味著他們會真正使用它,一旦它給他們的生活帶來價值,他們就會向周圍的人歌頌它。這就是大規(guī)模采用的開始。