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