構(gòu)建分散式系統(tǒng)帶來了傳統(tǒng)軟件開發(fā)中不常見的新挑戰(zhàn)。 “快速行動,打破常規(guī)”的格言已經(jīng)不再是一個可行的策略,因為我們已經(jīng)一次又一次地看到,即使是一個關(guān)鍵的安全漏洞,也很難從一個項目中恢復(fù)。此外,這些協(xié)議的成功取決于經(jīng)濟(jì)激勵措施的設(shè)計,鼓勵不同類型用戶之間的均衡參與和增長,從而創(chuàng)造一個最終將產(chǎn)生價值的多邊市場。這些獎勵結(jié)構(gòu)一旦部署就很難修改,因為沒有集中的進(jìn)行管理。
Gauntlet正在構(gòu)建一個基于代理的仿真平臺,以幫助開發(fā)人員驗證他們的協(xié)議設(shè)計,理解不同參數(shù)之間的權(quán)衡,并確保應(yīng)用程序能夠抵御壞角色的攻擊。我們最近發(fā)布了另一篇博客文章,對我們的系統(tǒng)進(jìn)行了更全面的概述。
這篇文章將重點介紹從2019年初開始的Gauntlet和computable團(tuán)隊的一些經(jīng)驗教訓(xùn),當(dāng)時我們在Gauntlet平臺上合作設(shè)計了一個定制場景來優(yōu)化他們的儲備合同參數(shù)。通過利用我們的工具和仿真結(jié)果,Computable團(tuán)隊隨后能夠快速迭代并驗證在最初執(zhí)行合同時對一些激勵機(jī)制的更健壯的設(shè)計。仿真分析一直是Computable測試和改進(jìn)協(xié)議計劃的一部分,他們選擇使用Gauntlet平臺來實現(xiàn)這個目標(biāo)。
注意:Computable剛剛發(fā)布了一個新的白皮書,其中包含了許多機(jī)制和術(shù)語的更改。本文所描述的仿真模型是在原模型的基礎(chǔ)上建立的。為了避免混淆,我們將在下面列出一些差異。
可計算的協(xié)議
Computable的目標(biāo)是創(chuàng)建一個分散的數(shù)據(jù)市場,鼓勵大規(guī)模的高質(zhì)量數(shù)據(jù)集的管理,同時圍繞數(shù)據(jù)隱私和使用提供信任和透明度。該協(xié)議的目標(biāo)是要足夠靈活,以適應(yīng)不同行業(yè)應(yīng)用程序的數(shù)據(jù)市場。例如,某些市場可能擁有少數(shù)大型參與者擁有大部分相關(guān)數(shù)據(jù)的特性,而其他數(shù)據(jù)市場的成功可能取決于許多個人用戶在一段時間內(nèi)的貢獻(xiàn)。每個數(shù)據(jù)集都有一個與之相關(guān)聯(lián)的唯一代幣來激勵成長,網(wǎng)絡(luò)中的參與者或“代理”被分為以下角色:
· 買方-表示對數(shù)據(jù)的需求。付費(fèi)查詢數(shù)據(jù)集
· 數(shù)據(jù)信任 – 提供用于執(zhí)行查詢的計算資源
· 制造商 – 以上市形式向數(shù)據(jù)市場提供數(shù)據(jù)銷售
· 贊助人 – 提供初始資本,以激勵制造商提供數(shù)據(jù)
確定列表是否有效的機(jī)制類似于Token-Curated Registry(代幣注冊表)。TCR投票的動態(tài)可以類似于其他區(qū)塊鏈系統(tǒng),如權(quán)益證明共識。然而,在這篇文章的其余部分,我們將重點關(guān)注與可計算協(xié)議更具體的宏觀特性。
粘合曲線
由于每個數(shù)據(jù)集都有自己的代幣,所以存在一個引導(dǎo)問題,因為這些代幣的流動性有限,而且很難估值。粘合曲線是一種在買入/賣出時確定代幣價格的合約,并作為代幣的自動做市商,以鼓勵早期參與。下圖說明了如何使用粘合曲線發(fā)出代幣。請注意,有單獨的買入/賣出曲線,其中賣出價格低于買入價格,以阻止短期價格操縱,同時允許有機(jī)價格發(fā)現(xiàn)和流動性,因為市場參與者可以同意在兩條曲線之間以任何價格交易代幣。
Computable使用粘合曲線在客戶將加密貨幣存入儲備時發(fā)出代幣,在向制造商發(fā)出代幣以提供數(shù)據(jù)時發(fā)出代幣。在本文的其余部分中,我們將使用術(shù)語“網(wǎng)絡(luò)代幣”來表示存儲在儲備中的代幣。實際上,網(wǎng)絡(luò)代幣可以是原生于可計算協(xié)議的代幣,并在多個數(shù)據(jù)市場之間共享,也可以是原生于底層區(qū)塊鏈(例如ETH)的代幣。
在此分析中,我們使用的線粘合曲線定義如下:
support_price = conversion_rate + conversion_slope * reserve
withdraw_price = reserve / total_supply,
其中support_price為買入價格,withdraw_price賣出價格,reserve為粘合曲線上鎖定的貨幣總價值,total_supply為粘合曲線上發(fā)行的市場代幣總數(shù)。
代理模型
買方——我們對查詢數(shù)據(jù)的總體需求建模。這種需求是通過在每個模擬時間步驟中對查詢進(jìn)行支付的形式實現(xiàn)的。需求是數(shù)據(jù)集中列表數(shù)量的函數(shù),具有預(yù)定義的上限(市場大小)和每個時間步長的有界增長率。查詢數(shù)據(jù)(以網(wǎng)絡(luò)代幣形式)的費(fèi)用分成如下:
· datatrust_rate_network——以網(wǎng)絡(luò)代幣形式表示的datatrust代理查詢費(fèi)用的百分比。
· reserve e_fee_network—以網(wǎng)絡(luò)代幣的形式進(jìn)入市場合約準(zhǔn)備金的百分比,它增加了支持和撤回價格。
· maker_fee_network—在網(wǎng)絡(luò)代幣中列出所有者的百分比。在我們的模型中,這部分在所有清單中平均分配。如果上市公司不再為制造商所有(見下文convert_listing),那么其股票將進(jìn)入市場儲備。[注]:該參數(shù)已從協(xié)議中刪除,制造商付款現(xiàn)在只使用市場代幣。
· maker_fee_market—在市場代幣中列出所有者的百分比。該組件在所有列表中平均分配,并被鎖定(參見下面的convert_listing),以鼓勵長期的創(chuàng)客參與。這部分費(fèi)用是通過按粘合曲線的支持價格鑄造(創(chuàng)建)市場代幣來支付的,而且是通貨膨脹的,因為它在不增加準(zhǔn)備金的情況下增加了市場代幣的供應(yīng)。
Datatrust——如果他們收到的費(fèi)用大于他們計算的邊際成本,這些代理將處理查詢。
Maker—我們假定制造者的數(shù)量是有上限的(即只有那么多的參與者擁有高質(zhì)量的數(shù)據(jù)可貢獻(xiàn)給數(shù)據(jù)集),并且希望列出其數(shù)據(jù)的制造商的數(shù)量取決于上市的預(yù)期用途。我們還假設(shè)每個制造商最多只能有一個上市。制造商可以采取以下行動:
List——申請在數(shù)據(jù)集中列出,以獲得查詢收入的一部分。被列出的預(yù)期效用可以建模為:
(maker_fee_network + maker_fee_market * demand_t) / num_listings_t * DF + listed_reward * divest_price_t - listing_cost,
T是查詢收入的時間,num_listings_t是t的清單數(shù),,DF是代理應(yīng)用于未來收益的折現(xiàn)因子,listed_reward是上市時收到的市場代幣數(shù)量,divest_price_t是粘合曲線給出的售價,listing_cost是與創(chuàng)建列表相關(guān)的開銷或反sybil成本。
· convert_listing—制造商可以將上市的所有權(quán)轉(zhuǎn)移到市場合同,以解鎖上市中的市場代幣(fromlisted_reward和maker_fee_market),但需要放棄未來的查詢收入。如果鎖定代幣的投資回報率(ROI)低于代理的convert_roi,制造商將這樣做。制造商的ROI可以通過在一個觀察窗口上使用所收到的股息(包括市場代幣)的價值,除以鎖定的市場代幣的市場價值,并轉(zhuǎn)換為年化回報來估計。[注]:該函數(shù)不再是協(xié)議的一部分。目前的協(xié)議不再要求制造商放棄上市公司的所有權(quán)。
Patron -可以通過綁粘合曲線購買或出售市場代幣:
· support—以粘合曲線給出的support_price購買代幣。如果取款價格的風(fēng)險調(diào)整回報率大于代理的support_roi閾值,并且預(yù)期的盈虧平衡時間(因為support_price_t》取款價格)小于代理的support_breakeven時間,那么客戶將購買代幣。
· withdraw-以粘合曲線給出的提取價格出售代幣。如果取出價格的風(fēng)險調(diào)整回報率低于代理取款的roi閾值,客戶將出售代幣。
模擬環(huán)境
我們的仿真平臺是圍繞一個基于agent的模型構(gòu)建的,在這個模型中,用戶可以指定網(wǎng)絡(luò)的初始條件,包括agent行為的分布和特定于agent的參數(shù)。我們通常遵循拜占庭-利他-理性(BAR)模型來描述代理行為。模擬的每個時間步長包括:
· 更新環(huán)境狀態(tài)變量
· 引入新的代理
· 為正在考慮的每個操作評估代理實用程序函數(shù),并執(zhí)行那些具有最高實用程序的操作
對于以上的分析,我們做出如下假設(shè):
· 買方的最大需求(即市場規(guī)模)是每年100,000個網(wǎng)絡(luò)代幣
· 為了提高性能,制造商的最大數(shù)量為25,每個制造商只能有一個清單,而listed_reward是3個網(wǎng)絡(luò)代幣
· 有5個初始用戶,每個用戶貢獻(xiàn)1000個網(wǎng)絡(luò)代幣
· 80%的創(chuàng)造者是理性的(上面描述的行為/效用),剩下的20%是利他的(不會嘗試convert_listing)
· 我們運(yùn)行每個模擬場景5年,即1825個時間步長
發(fā)現(xiàn)
制造商的補(bǔ)償
我們對maker_fee_network和maker_fee_market的不同值進(jìn)行了仿真,以探索不同的收費(fèi)結(jié)構(gòu)對創(chuàng)客行為的影響。reserve e_fee保持不變,查詢收入的其余部分支付給datatrust代理。回想一下,maker_fee_market是查詢收入的一部分,它以市場代幣形式支付,并鎖定起來以鼓勵長期參與。在下面的圖中,每個方塊代表了模擬的獨立運(yùn)行,而顏色代表了rational制造者所捕獲的查詢總收入的百分比。
一些觀察:
· 當(dāng)maker_fee_network + maker_fee_market過高時,網(wǎng)絡(luò)無法創(chuàng)建值,因為datatrust_fee不夠高,無法覆蓋運(yùn)行計算的邊際成本。
· 當(dāng)maker_fee_network + maker_fee_market過低時,該網(wǎng)絡(luò)也不能產(chǎn)生顯著的價值,因為創(chuàng)客會快速轉(zhuǎn)換他們的列表,或者一開始就沒有足夠的動力來上市。
· 在這些參數(shù)化下,maker_fee_market似乎對制造商沒有長期的好處。在保持maker_fee_network不變的情況下,增加maker_fee_market對增加制造商效用的影響很小,而且在某些情況下,效用實際上會略有下降。
從長遠(yuǎn)來看,maker_fee_market的增長一般不會給制造商帶來多大好處,這一結(jié)果肯定有點違反直覺。經(jīng)過仔細(xì)觀察,我們意識到這樣做是有道理的,原因如下:
· 一旦買方需求趨于穩(wěn)定,maker_fee_market將繼續(xù)增加鎖定在上市中的代幣的價值,同時營收保持不變。這意味著上市公司的投資回報率將繼續(xù)下降,在某一時刻,制造商將轉(zhuǎn)換上市公司,用未來的收入換取流動性。
· maker_fee_market是通貨膨脹(增加市場代幣供應(yīng),但不增加儲備)。在隨后的模擬中,當(dāng)制造商擁有大部分市場代幣時(相對于初始用戶),每個制造商的保留所有權(quán)所占的比例不會增加太多。
· 大多數(shù)粘合曲線參數(shù)化的結(jié)果是,當(dāng)供給較大時,支撐價格顯著大于退出價格,因此轉(zhuǎn)換效率較低,導(dǎo)致maker_fee_market對maker ROI的總體貢獻(xiàn)相對于tomaker_fee_network較小。
在這三個因素中,我們懷疑粘合曲線的形狀可能影響最大,所以我們決定進(jìn)一步挖掘。
在原來的粘合曲線公式中,support_price與取款價格的關(guān)系不是很緊密,所以我們決定更新support_price的定義。我們現(xiàn)在將曲線定義為:
support_price = conversion_rate + support_multiplier * reserve / max(1, total_supply)
取款價格=儲備金/總供應(yīng)量
我們重新運(yùn)行上述分析,得到如下結(jié)果:
現(xiàn)在看來maker_fee_market參數(shù)實際上是有用的!增加maker_fee_market實用理性的制造商,我們會看到對于一個給定的制造費(fèi)用分配(maker_fee_network + maker_fee_market),最好是平分市場網(wǎng)絡(luò)和組件之間的非純粹的代幣。注意,在使用市場代幣支付時,制造商和用戶之間仍然存在權(quán)衡,因為maker_fee_market會稀釋初始用戶。
粘合曲線分析
該協(xié)議的成功與否,取決于最初的贊助者向儲備基金投入大量資金,以激勵制造商列出數(shù)據(jù)。如果提現(xiàn)價格超過最初的投資價格,顧客最終會獲利。我們對新的粘合曲線的參數(shù)conversion_rate和support_multiplier進(jìn)行了仿真。在下面的圖中,每個方塊代表模擬的獨立運(yùn)行,顏色代表初始用戶獲取的查詢總收入的百分比。
一些觀察:
· 高support_multiplier有利于初始用戶,因為它限制了在生成市場代幣時的稀釋
· 當(dāng)conversion_rate過高時,網(wǎng)絡(luò)在我們?yōu)槌跏加脩粼O(shè)置的時間限制內(nèi)不能生成足夠的值,使其在初始存款上實現(xiàn)收支平衡
· 當(dāng)conversion_rate和support_multiplier過低時,網(wǎng)絡(luò)無法生成任何值,因為首先沒有足夠的動機(jī)促使制造商加入
結(jié)論
Computable的模擬工作促使對初始協(xié)議設(shè)計進(jìn)行了許多更新,包括改進(jìn)的粘合曲線和簡化的Maker payment和convert_listing接口。在此過程中,我們還確定了要優(yōu)化的關(guān)鍵參數(shù)、與不同參數(shù)化相關(guān)的權(quán)衡,以及完全不同的機(jī)制可以更有效地實現(xiàn)預(yù)期結(jié)果的領(lǐng)域。希望這是一個令人信服的例子,讓你能清楚的知道模擬是如何指導(dǎo)協(xié)議設(shè)計過程的!
在單一數(shù)據(jù)市場的背景下,仿真允許我們將機(jī)制設(shè)計分析為一個分布式約束優(yōu)化問題。更廣泛地說,該框架可以生成一組參數(shù)和初始條件的參考集,這些參數(shù)和初始條件是為具有各種不同屬性和行業(yè)應(yīng)用程序的數(shù)據(jù)市場提供服務(wù)的。我們的目標(biāo)是設(shè)計一個最大化買方需求的系統(tǒng),同時以一種統(tǒng)計上可驗證的方式保持?jǐn)?shù)據(jù)提供者、制造商和用戶之間的公平激勵。
經(jīng)濟(jì)激勵對于區(qū)塊鏈應(yīng)用程序的長期安全性和成功至關(guān)重要。在不進(jìn)行仿真的情況下對激勵機(jī)制設(shè)計進(jìn)行推理是很棘手的,因為網(wǎng)絡(luò)的突發(fā)性很難從局部變化中預(yù)測出來,而且為了得到易于處理的結(jié)果的解決方案,人們常常對用戶行為做出過于簡單的假設(shè)。基于代理的模擬可以是一個有價值的工具,幫助開發(fā)人員驗證安全性假設(shè),并了解如何隨著時間的推移為網(wǎng)絡(luò)參與者創(chuàng)建價值。
評論
查看更多