Uniswap 不僅改變了我的生活,而且今天也是它的生日。為了慶祝這一天,我想在 Uniswap 生日博客系列的 V0 中從頭開始講述它的故事。
原文:A short history of Uniswap (Uniswap)
作者:Uniswap
編譯: Evelyn,W3.Hitchhiker
V0 — Uniswap 誕生
2018 年 11 月 2 日,Uniswap 公開發布並部署到以太坊主網。在一個激動人心、令人緊張的時刻,我向我的大約 200 多名粉絲發布了公告推文。
對於許多人來說,這是他們第一次聽說這個項目。但對我來說,這是我多年以來的工作成果,並且這一路走來,我不經獲得了許多的幫助,也收穫了許多朋友。
Uniswap 不僅改變了我的生活,而且今天也是它的生日。為了慶祝這一天,我想在 Uniswap 生日博客系列的 V0 中從頭開始講述它的故事。
請大家繼續關注 V1 和 V2,屆時我將與大家共同探討 Uniswap 上線以太坊主網的第一年經歷,以及分享我們對 Uniswap 未來的計劃。
接受以太坊
2017 年 7 月 6 日,我從大學畢業後的第一份工作中(在西門子擔任機械工程師)被解僱。那段時間我感十分到沮喪,也沒有任何方向,於是我將我的情況告知了我的朋友 Karl Floersch,他當時正在以太坊基金會從事 Casper FFG 的工作。我們談話的內容是這樣的:
Hayden:我剛剛被解雇了
Karl:恭喜你,這是發生在你身上最好的事情!!!機械工程已經是一個垂死的領域了。但以太坊是未來,並且你還處在該行業的早期階段。現在,編寫智能合約將是你的新命運!
Hayden:難道我不需要知道該如何編碼嗎?
Karl:不是的,編碼很容易的。而且,反正現在還沒有多少人了解如何寫智能合約。不管是以太坊,股權證明,還是無信任計算,等等,都還是新興領域。
Hayden:好吧……
Karl 抓住了我的低谷期,說服了我接受以太坊,並使之進入我的生活。我決定給它一個機會,並在接下來的兩個月裡學習了以太坊、Solidity 和 JavaScript 的基礎知識。
為了擴大我的技能範圍,我決定是時候在一個 “ 真正的 “ 項目上工作了。在 Karl 的建議下,我決定實現一個自動做市商,正如 Vitalik 在這個 reddit 帖子和這個博文中描述的那樣。
XX 證明(Proof-of-Something)
從十月到十一月,我建立了一個概念證明,包括一個智能合約和我的第一個網站。該合約有一個單一的流動性提供者,並允許進行簡單的交換。而這就是它的全部魅力:
Disclosure:該演示版與原始版本保持不變,只是我添加了一行代碼
'window.ethereum.enable()'
,以使其與 2019 年 MetaMask 一起工作。
建立 POC 是我在可编程货币的兔子洞里迈出的第一步。这是我一生中从事的最有趣的事情。而且,我甚至都不觉得这是工作。
慢慢的,我也發現了自動做市商的用戶體驗問題。當時,EtherDelta 是唯一一個具有吸引力的去中心化交易所,但它的用戶體驗感混亂且不直觀。但是使用了我的演示後,不知為何感覺好了點。
開發者大會 3
在 Devcon 3 的演講中,Karl 用我的 Uniswap 演示作為例子,說明了加密經濟和以太坊上開源金融應用的力量。
到現在,我已經失業五個月了,但幸好在今年早些時候購買了一些加密貨幣,靠著它們,還能繼續維持我的生活。如果按照我當時唯一的衡量標準來看的話,Uniswap 是成功的(我知道如何編寫智能合約)。現在也許是時候繼續前進,找一份工作了(如果有任何針對 Solidity-native 開發者的工作的話)。
然而,在 Karl 的 Devcon 演講中的一位與會者(Pascal Van Hecke)聯繫到了我。他一直在密切關注著以太坊上自動做市商的進展,並表示有興趣支持我的努力成果。他甚至給了我一筆錢,資助我接下來一個月的研究。然後我們就開始每週通話討論進展。
Pascal 給我們帶來了新的想法。然而,更重要的是,我們的通話給我的工作帶來了一種結構感和責任感。Uniswap 有兩個未解決的主要問題,對此,我是用的工程思維來解決:
- 它只適用於單一的 ETH / ERC20 對
- 它只適用於單一的流動性供應商
以太坊價值
至此,我已經完全被以太坊的無限潛力所吸引。以下這些也是我所關心的重要屬性:
它是抗審查的—— 沒有人可以阻止它。
它是去中心化的—— 沒有人控制它。
它是無需許可的—— 任何人都可以使用它。
它是安全的—— 任何人都可以驗證執行。
然而,在以太坊中有些東西卻感覺不對勁。以太坊上的主要項目體現了它的一些特性,但很少有人會完全接受它們。中央故障點,可審查的應用程序,以及過於復雜的架構。DAPPs 的設計完全圍繞著為那些顯然不需要代幣的用例提供代幣的想法。
紐約網
12 月,在 NYC Mesh 的創始人發表了一篇反加密的文章後,我和 Karl 一起參加了 NYC Mesh 聚會。現在以太坊出名了,Karl 被 Coindesk 的記者認出,並向他詢問了關於 Meshnets 和加密貨幣之間的交叉點的事情。但 Karl 不想接受采訪,所以他把記者引向了我。我喋喋不休地講述了我幾乎不理解的第二層解決方案,而這段採訪也在一篇文章中被引用了:
B 計劃?以太坊創新者正在重新為網絡中立性而戰— CoinDesk
在紐約市一家燈光昏暗的酒吧舉行的科技聚會(到目前為止,沒有什麼奇怪的地方)。但這次聚會的特殊之處在於,整個東村的其他地點都被連接到了該酒吧的 Wi-Fi 節點上,允許該地區的任何人不僅可以利用所有的信號,還可以訪問只有網絡上的其他人才能訪問的網站。
Callil Capuozzo,一個從小學到高中的朋友,我已經有 6 年沒有見到他了,他看到了這篇文章後聯繫了我。從那時起,他就在微軟和谷歌擔任設計師,最近在為 FOAM 做網站時,又深入研究了以太坊。
Uniswap Pre-alpha
到 2018 年 1 月下旬,所有主要的智能合約問題都得到了解決。交易所合約可以通過使用內部流動性代幣來跟踪每個 LP 的生成費用份額和基礎抵押品,從而支持多個流動性供應商。一個工廠合約允許任何人添加對代幣的支持。所有的代幣都與 ETH 配對,允許它在一次交易中被用作任何東西的交換的中介。
在 Uniswap 智能合約完成更新後,我再次與 Callil 進行了聯繫並詳細討論了這個項目。他提出要幫助我做前端(因為現在的前端現在已經落後於合約了)。圍繞著他的其他項目,在我那令人難以置信的糟糕的 React 代碼庫上,Callil 為 Uniswap 重新設計並建立了一個光滑的新界面。
幾個星期以來,我的 React 代碼已經十分糟糕了。幸運的是,我最近和一個大學時的朋友 Uciel Vilchis 重新聯繫上了。Uciel 剛從一個編碼訓練營出來(他是在我們共同的朋友 Karl Floersch 的建議下加入的)。
你應該學習代碼—— Karl Floersch
為了豐富自己的簡歷和經驗,Uciel 同意重構 Uniswap 的前端代碼庫。
到 2018 年 3 月,我們三個人已經建立了一個功能齊全的 Uniswap 的演示。是的,當然,我把它挖了出來,並託管了它。它就在這裡:
Disclosure:該演示與原始版本保持不變,除了我加入的一行代碼
'*window.ethereum.enable()*'
,使其與 2019 年 MetaMask 一起工作。
認識 Vitalik
到 2018 年 4 月,我已經失業了 10 個月。我賴以生存的加密貨幣已經下跌了 75% 以上,極大地縮減了我的個人跑道。儘管如此,我還是在最後一分鐘買了一張去韓國首爾的機票。這是我 24 年來的第一次離開北美洲。部分是個人旅行,因為它的時間與 2018 年的 Deconomy 相吻合。
我試圖在沒有票的情況下進入會場,但被堅決拒絕。然而,Karl 才剛剛和以太坊基金會的其他成員一起到達。Karl 把我拉到一邊,把我介紹給 Vitalik,他在過去已經和他討論過了 Uniswap。我們的談話是這樣的:
Karl:這是我的朋友 Hayden,就是他製作了 Uniswap!
Vitalik:你好,很高興認識你!它是開源的嗎?
我:當然!
Vitalik:URL 是什麼?
我:https://github.com/haydenadams/uniswap
Vitalik 在他的手機上閱讀我的整個智能合約
Vitalik:你考慮過用 Vyper 來寫嗎?另外,你應該申請以太坊基金會的資助。
Vitalik 的想法沒有讓我失望。從首爾回來後,我立即花了兩個星期來使用 Vyper 重新編寫合約。當時沒有像 Solidity 那樣的指南或開發者工具,但我能夠使用原始的 Casper FFG 合約作為參考。當時,這是我能找到的唯一的 Vyper 合約,除了核心 Vyper repo 中的簡單例子。
交一些朋友
到此為止,Karl 是我在加密世界中唯一的好朋友,但這很快就被改變了。就在離開之前,Karl 邀請我參加一個小型社交聚會。在那裡,我認識了 Philip Daian、Dan Robinson 和 Andy Milenius,並和他們成為了朋友。除了是優秀的人之外,他們都將成為 Uniswap 成功的關鍵,並影響其未來的方向。
兩週後,在 5 月,我飛往多倫多參加 Edcon 2018。這是我第一次參加以太坊會議,並通過了安全審查。我花了 3 天時間參加講座,認識朋友,並演示了 Uniswap。我在加密世界的四個朋友都在那裡,他們把我介紹給了其他很多人。我的加密世界社交網絡也在不斷擴大。
在我在 Edcon 結識的朋友中,Jinglan Wang 是十分值得一提的,因為她從那時起就是一個出色的顧問。
我第一次見到了 David Knott,一個前 Vyper 的開發者。我告訴他,我在 Vyper 中重新編寫了 Uniswap。第二天早上 8 點,我被他的電話吵醒了。他告訴我,他將在兩小時後發表關於 Vyper 的演講,包括現場演示。Uniswap 是唯一一個用 Vyper 編寫的 DAPP,他問我是否有興趣代替他做這個演講。
我解釋說,我在兩週前才剛剛學會 Vyper,並且從來沒有在公開場合發言過,而且我也不知道自己通常在做什麼。David 向我保證,這沒有問題,在 Vyper 上學習兩週,就足以公開發表權威性的講話了。於是我做了第一次演講:
我和 Dan 坐同一班飛機回紐約。在整個行程中我們都在對 Uniswap 進行 gas 優化。當飛機降落的時候,Uniswap 的效率被提高了 30%。它現在是以太坊上 gas 效率最高的交易所,與之前相差很大。
2018 年的 Edcon 大會非常令人振奮。在我的 Uniswap 演示後,人們的反應不僅僅只是輕微的興趣,更是理所當然的對它感到興奮。他們似乎理解並分享了我想讓它成為一個例子的價值觀。我意識到以太坊的社區遠遠超出了 ICO 的範圍。有一些人真正關心它的願景,即一個無需許可、去中心化的金融系統。
2018 年 NYC 區塊鏈週
我從 Edcon 回家的飛機直接降落在 NYC 區塊鏈週上。在接下來的一周裡,我參加了無數的活動和派對。一條推特出現在我的信源中。
他就住在離我步行 15 分鐘的地方,我決定去看看。
Richard Burton 是一家以太坊錢包初創公司 Balance 的創始人。我給他看了我的演示後,他當即就想了解它是如何工作的。隨後我們就進行了長時間的交談。
在這之前,我認為我在 Uniswap 的角色主要是技術人員。當有人問起它是如何工作的時候,我常常先告訴他們背後的數學公式。但許多人都對此感到困惑。
Richard 幫助我理解這種現象,讓我知道人們不理解 Uniswap 是我的問題,而不是他們的問題。開發人員只是大環境中的一小部分。如果我想讓人們使用我的項目,我需要以他們的方式,或是以他們能理解的方式來談論它。因此,社會問題將是 Uniswap 最大的挑戰。
事情開始變得真實
正是在這個時候,我決定了,Uniswap 就是我想要完成的事情,於是我規劃了推出主網所需要的東西:
- 最終確定的、可投入生產的智能合約
- 反應靈敏、用戶友好的交易界面
- 智能合約的安全審計
- 完成白皮書
- 開發者文檔
我之前提到的朋友 Phil 是一位區塊鏈安全專家。在他的建議下(也在他的介紹下),我收到了 Runtime Verification 公司關於 Uniswap 的正式模型的報價,高水平的代碼審查,以及智能合約的部分正式化驗證。考慮到所有這些,我申請了以太坊基金會的資助,金額為 50,000 美元+ RV 的報價費用。
平衡
2018 年夏天拉開序幕,我癡迷於重構 Uniswap 的智能合約,編寫白皮書,並在業餘時間參加加密活動。然後在接下來的兩個月裡,我進行了面試,並等待基金會的回音。
我每天都在 Balance 辦公室工作,Richard 和 Balance 的其他團隊成員,Christian Baroni、Jin Ching 和 Mike Demerais 都對我很友好。在知道我的資金不足後,Richard 甚至慷慨地給了我一筆個人資助來支持我的努力。
我開始參加每週一次的聚會,稱為 “ 白板星期三(Whiteboard Wednesday)”,地點在 Balance 辦公室。每週三的兩個小時裡,所有從事加密項目的人都被邀請來分享他們每週的進展。
我几乎每周都参加,不停地向不同的人群解释和再解释 Uniswap。我学会了如何在不同的场合谈论 Uniswap,并且很快就能向几乎所有人解释它。我甚至开始涉足加密推特。
同我和 Pascal 的通話類似,白板星期三給我的生活帶來了一定程度的責任感。我不想連續兩週沒有進展地出現在大家面前。
製作者
隨著夏天的到來,我花了越來越多的時間在 NYC MakerDAO 辦公室,我之前提到的朋友 Andy 就是這裡的 CTO。Maker 是一個去中心化的穩定幣項目,讀這篇文章的人都已經知道了,但為什麼我還是要講述它。我和 Maker 的一些人成了朋友,包括 Ashleigh Schapp(另一個對 Uniswap 來說很重要的朋友)。
在 Balance 和 Maker 的辦公室里工作,這裡不僅遇到了許多有趣的人,還為我提供了源源不斷的項目和學習的機會。夏天很快就過去了。我的智能合約也已經優化到了我自己能做的程度。最後,在七月底,我收到了一封電子郵件。Uniswap 將獲得以太坊基金會的資助!
以太坊基金會資助更新;我們一直在努力工作,從而能夠了解許多令人驚嘆的人和項目,並非常興奮地宣布以太坊基金會捐贈計劃第三波的獲獎者,我們以一篇博文拉開了 2018 年的序幕,以激發可擴展性研究的第一…
正式模型
贈款到手後,我立即與 Runtime Verification 公司簽訂合同,對合約進行正式化和審計。並在與 RV 的 Daejun Park、Yi Zhang 和 Xiaohong Cheng 進行的一系列通話中,我詳細介紹了 Uniswap 的機制和最重要的屬性。
他們首先創建了一個正式的 Uniswap 模型。接下來,他們創建了一個代碼規範,重新進行了數學運算,以盡量減少四捨五入的誤差,並始終有利於流動性提供者而不是交易者。這項工作的結果可以在這裡找到。
我修改了合約以適應該規範。接下來,RV 進行了一次高水平的代碼審查,他們建議進行一些安全檢查,並修復與一致性有關的問題,以及其他小的改動。這些改進的清單可以在這裡找到。
最後,Uniswap 合約代碼被凍結,RV 開始正式驗證合約的實施是否符合規範的理想屬性。這是整個過程中最漫長的一步。
在審計工作進行的同時,我聘請了 Callil 作為承包商,開始設計 Uniswap 交易界面的生產版本。演示界面運行良好,但對於成品來說感覺太混亂了。
他們將收到
Uniswap 還沒有發布,但這已經不完全是個秘密。9 月,我被邀請在香港的區塊鏈會議 ETHIS 的一個小組中發言。雖然從技術上講,這不是我第一次在會議上發言,但這是我第一次被邀請這樣做!
在香港,我趕上了 Vitalik,他看了看我最終完成的 Uniswap 的代碼。他發現了一個連 Runtime Verification 都沒有發現的錯誤。我把 “recipient “ 錯寫成了 “recipeint”,大約 20 次。
我還不小心撞見了以太坊基金會關於 ETH 2.0 的採訪,並第一次成為了一個 meme 的主題。
這裡有一個空白模板,如果其他人想嘗試的話。
在香港之後,我在上海區塊鏈週待了 3 天時間,用的是直通簽證,然後才返回紐約。
為發布做準備
在紐約的時候,我就決定要在布拉格的 Devcon 4 上發布 Uniswap,如果這在眾人看來是可能的話。因為當時只還有 5 週的時間,這是我一生中最忙碌的 5 週。
隨著正式驗證的進行,最大的懸而未決的任務是在一個可以生產的代碼庫上實現 Callil 最新的前端設計。我向一家能在一個月內完成這項工作的承包公司發出了邀請,並被介紹給了 Kyokan 的 CEO Dan Tsui。謝謝 Rick Dudley 的介紹!
代碼庫幾乎要完全從頭開始重寫。我僱用了一家承包公司,因為我認為在這麼短的時間內按照我所希望的標準建立一個功能完整的 Uniswap 前端是需要一整個團隊來進行的。相反,我得到了更好的東西,Jacky Chan,Kyokan 的工程副總裁。
由於 Jacky 對 Uniswap 幾乎一無所知,於是我寫了一份很長很詳細的前端規範來幫助他加快進程,而 Callil 則為界面的每一部分都提供了非常詳細的設計。在一個月的時間裡,Jacky 幾乎完全靠自己完成了 Uniswap 的啟動界面。對於一些較小的部分,Kyokan 的 Kenny Tram 也有幫忙。
在 Devcon 之前的一周,我完成了文件和白皮書的編寫。另外,RVs 正式驗證工作的結果也出來了。沒有發現任何問題!然而,運行時驗證團隊表達了一個擔憂。Uniswap 沒有被充分研究過重入攻擊(re-entrancy attacks),這就是 DAO 黑客背後的問題。於是我向 Phil Daian 徵求了些意見。
但是他現在非常忙,為了在 Devcon 4 上展示他的最新研究而做準備,但他還是答應在發布前查看智能合約的重入攻擊。由於最後一分鐘的性質,這當然是一個內部審計,不會有任何文字記錄,結果也不會公開。
V0 Unishirts — Devcon 4 限量版
在這一切進行的同時,我與 Callil 進行了簽約,為 Uniswap 設計一件襯衫,在會議上發放。我希望這個發布會成為一個值得紀念的時刻,人們可以參與其中,所以襯衫必須是高質量的(一件人們真正想穿的襯衫)。
在 Devcon 召開的前一周,Callil 與他的兄弟 Leander 合作完成了這個令人難以置信的設計:
為了按時完成,這些襯衫必須通過一種叫做絲印的工藝進行手工製作。製作絲網需要將近一周的時間,製作襯衫需要大約 8 個小時。
我在會議前一天飛到布拉格,開始確保所有的部件都已到位。我向 Phil 匯報了情況,他已經審查了大部分的代碼,但還想再看一遍。
Callil 買了一張在會議第一天降落的機票,以留出盡可能多的時間用於生產。這段時間他都是通宵達旦地製造襯衫(和 Leander 一起)。
襯衫一完成,他就把它們裝箱,直接去了機場,飛往布拉格。他從機場乘出租車直接到會議中心,和我一起把它們分發出去。
開發者大會 4
第一天
Devcon 開始了!我徘徊在在會議中心,向各位分發襯衫,並同所有聽我講話的人談論 Uniswap,暗示發布會即將舉行。
下午,Callil 和我第一次見到 Jacky 本人。在一些社交活動之後,我們開始工作,修復明顯的錯誤,增加用戶體驗感。
第 2 天
第二天,我花了一半的時間在會議上閒逛和觀看講座。下午,我又一次與 Jacky 和 Callil 聚在一起。我們意識到,Uniswap 作為一個項目應該有一個獨立於交易界面的登陸頁面。於是那天起,我們從頭開始建立了 uniswap.io。
第 3 天
最後,在 Devcon 的第三天,我收到了 Phil 的回复。據他所知,除非代幣轉移功能被專門設計成允許重新進入 Uniswap,否則不可能對 Uniswap 的交換合約進行重入攻擊。
這感覺是一個可以接受的結果,如果一個代幣被設計用來攻擊 Uniswap,那麼這個特定的代幣的流動性就可能被盜。所有常規的 ERC20 代幣都是安全的,不會被重入。
第四天
2018 年 11 月 2 日,Devcon 4 的最後一天,智能合約被部署到以太坊主網上。接下來,uniswap.io 和 app.uniswap.org/# 都被部署成功。最後,我聯繫了那些對於在啟動時願意提供流動性的人。
一個供應商向合約中存入了大約 30,000 美元,分成了 3 個代幣。這使得約 100 美元的交換成為可能。因為沒有其他事情可做了。
我花了大約一個小時,獨自坐在一個豆袋上,寫了又寫,改了又改要發布的推文。幸運的是,我的朋友 Ashleigh 正好路過,幫我審閱了一下推文。
我點擊了按鈕,緊張但對未來的發展感到興奮。隨之而來的是巨大的支持、想法和合作,超出了我最瘋狂的預期。
但這是 V1 的故事,是本系列的下一篇博文
彩蛋 #1 —— 誰給它取名 Uniswap?
是 Vitalik 起的。我最初打算叫它 Unipeg —— 獨角獸(unicorn)和飛馬(pegasus)的混合體。
當 Karl 第一次告訴 Vitalik 這個項目時,他說:
“Unipeg?聽起來更像是 Uniswap”
彩蛋 #2 —— 誰發明了 Uniswap?
Gnosis 的 Alan Lu 是第一個在以太坊上構想出 x*y=k 做市商的人。
Gnosis 的 Martin Koppleman 向 Vitalik 講述了這個想法。
Vitalik 看到了它的潛力,並開始公開發布相關信息。在他的網站上:
假設有人走到你面前,開始向你感嘆,他認為他已經找到瞭如何創造一個無限的自由能源的來源。他的計劃是這樣的。首先,你讓一艘宇宙飛船上升到低地球軌道。
讓我們以運行預測市場的方式運行鏈上去中心化的交易所
除了最近我們看到的其他一些去中心化交易所的範式,我想我將提供第三個選擇。這個方案借用了 Nick Johnson 的一些想法,儘管做了很多簡化,也非常類似於 gnosis 和 Augur 中的預測市場的運作方式。
我看到 MKR 市場、etherdelta 和其他市場現在的主要挑戰是高價差,通常是 10% 甚至更高。其中很大一部分原因是做市商非常昂貴,因為創建一個訂單和刪除一個訂單都需要 gas 費,即使訂單從未 “ 最終完成”。基於狀態渠道的解決方案在理論上可以解決這個問題,但遠遠沒有得到實施。我提出的解決方案是在去中心化的交易所背景下,使用預測市場中使用的 “ 鏈上自動做市商 “ 的風格。
這個機制看起來是這樣的。市場包含一個內部狀態,PRICE
,它是當前的市場價格。它也會有兩個參數,FEE
和 DEPTH
。如果用戶想購買 ORDER_AMOUNT
幣,他們將把價格提高到 PRICE + ORDER_AMOUNT / DEPTH
,並支付 ORDER_AMOUNT *(PRICE + ORDER_AMOUNT / DEPTH / 2)*(1 + FEE)
。從本質上講,這構成了在舊價格和新價格之間的每個價格點上購買一個無限數量的硬幣。
請注意,這不是無風險的設置:它需要初始的硬幣和 ETH 存款,如果價格跳動得太快,可能會被人利用。降低風險的一種方法是將訂單放入 X 區塊的隊列中,當訂單在隊列中時,其他用戶可以 “ 搶購 “ 該訂單,提供比原始報價者更有利的價格;然而,這本身有其複雜性,可以留待以後的版本。
用戶有能力對市場進行 “ 投資”。投資和撤資是成比例的:例如,如果市場目前包含 2000 個 ETH 和 400 個代幣,那麼投資者需要提供 2000 * p ETH 和 400 * p 代幣,這將使 DEPTH
增加 1 + p 的係數,並使投資者獲得 1 / (1 + p)
“ 市場份額”。當投資者想要撤資時,他們有權拿出當時市場上任何 ETH 和代幣的 1 / (1 + p)
份額出來(也許有幾個小時的延遲,以防止撤資本身在崩潰期間受到前面的追捧)。理論上說,在大多數情況下,收取的費用將大於對做市商進行搶先交易攻擊(front-running attacks)的任何損失,做市商的特定數學結構確保損失風險雖然存在,但嚴格受限,在任何情況下,投資者都是承擔風險的一方。
上述方案的一個問題是,市場必須有一個 “ 最高價格”,在這個價格之後,它就沒有代幣可賣了。一個解決方案是,在某些時候(例如,當 PRICE
超過最高價格的一半時),市場不是增加 DEPTH
,而是簡單地保持深度不變,持有代幣,以增加市場可以出售的最高價格。市場甚至可以選擇自動減少深度。一個更有力的解決方案是使深度本身與 1 / PRICE
成正比,並相應地改變公式,但如果價格太低,這將導致相反的問題;因此,在任何情況下都需要某種動態平衡。
從效率的角度來看,這個方案的優勢在於它提供了非常低的點差,但同時只需要在實際交易中進行區塊鏈交易,而不是下單或取消訂單。該設計也比較容易理解和實施。
Edit:對於那些將來看這個主題的人來說,我想我要補充一個 Martin Koppelmann 建議的簡化方案。該機制將是一個智能合約,它持有 T1 類型的 A 代幣和 T2 類型的 B 代幣,並保持 A*B=k 的不變性,對於某個常數 k(在人們可以投資的版本中,k 可以改變,但只在投資/提款交易中,而不是交易)。任何人都可以通過在 xy=k 曲線上選擇一個新的點來購買或出售,並提供缺少的 A 代幣,作為交換獲得額外的 B 代幣(或相反)。邊際價格 “ 只是曲線 xy=k 的隱性導數,或 y/x。
以及 Phil Daian 所寫的這篇文章的評論中:
Bancor 是有缺陷的
Bancor 上周剛剛進行了他們的首次代幣發行(ICO),並在幾個小時內籌集了創紀錄的 1.44 億美元。他們現在保持著人類歷史上最大的眾籌記錄。我們不想過多地討論這對當前 ICO 熱潮的說明。
我創建了 Uniswap,這是今天以太坊上存在的 x*y=k 做市商的具體實現。
感謝 Jinglan Wang。
免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。