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