這是一篇觀點社論 丹·古爾德和尼克·法羅。 Gould 是一名開發者,曾在TumbleBit、PayJoin 和Chaincase App 上工作,並得到了人權基金會和Geyser Grants 的讚助。 Farrow 是一位澳大利亞比特幣工程師,以其開源支付處理器SatSale 而聞名。
“嘿,我剛剛收到了在馬來西亞舉辦的黑客鬆的邀請,”Evan Lin 打斷了我在台北黑客空間的筆記本電腦上的流程。 “這聽起來很神奇,”我反駁道。 “我能來嗎?”
幾個星期以來,我一直在用頭敲桌子。林一直在撕毀我對比特幣隱私的概念。 “這是一個私人活動,而不是典型的黑客馬拉松。 我可以問。”
一次飛行,兩週零六分鐘的語音信息物流後,我們和勞埃德·福尼耶(Lloyd Fournier)一起走在馬來西亞吉隆坡榴蓮林立的街道上,思考著讓比特幣隱私成為現實的共同熱情。現在我們是一個團隊。我們開始使用半拋光的密碼學和一些草草記下的筆記來升級Fedimint,然後在五天后的第一次馬來西亞BitDevs 聚會上進行演示。
Fournier 在幾個月前與Nick Farrow 一起開發了FROST,這是一種利用Taproot 的新閾值密碼學。作為比特幣人力資源的源泉,Fournier 還與作為比特幣開發工具包(BDK) 貢獻者的Lin 密切合作。在過去的幾周里,他和我在台灣台北的凌晨在熒光燈下升級了PayJoin 隱私,因此我們建立了信任,共同深入開展一個項目。 Fournier 的邀請是邁向邊緣的一步。為了向世界展示尖端的密碼學,我們必須將FROST 放入應用程序中。 聯邦命題 其新的門檻託管模式吸引了所有人的眼球。它適合這個任務。
對大多數人來說,自我監護是一個新穎而可怕的概念。如此多的人將比特幣存儲在交易所的第三方託管中,使他們面臨審查和不雅監視。聯合鑄幣廠提供第三種方式:由已知監護人組成的聯盟確保社區資金安全。那麼它是怎樣工作的?
任何人都可以將比特幣發送到Fedimint 以換取電子現金代幣。監護人在多重簽名錢包中共享社區比特幣的保管權。電子現金代幣只是一些數據:盲簽名,稍後可兌換一定數量的比特幣。它們是超級強大的鈔票。提交閃電發票和您的電子現金代幣以“掛鉤”。您可以通過文本獲得電子現金,並讓聯邦重新簽發簽名,這樣其他人就無法接受。簽名是盲目的,因此可以完全匿名贖回。任何人都可以將電子現金發送到Fedimint 以獲得比特幣。
為了在監護人之間共享監護權,Fedimint 使用傳統的基於比特幣腳本的多重簽名地址。一定數量的監護人簽名以轉移資金。這些資金很容易在區塊鏈上發現,因為Script multisig 將簽名者的數量和監護人的總數寫入區塊鏈以供任何人查看。即使E-cash 是匿名的,監控公司也可以識別掛鉤、掛鉤和集群社區基金。通過利用比特幣的最新升級Taproot,我們的團隊通過將Script multisig 切換到FROST 解決了這個隱私問題。
進入弗羅斯特
霜(靈活的回合優化Schnorr 閾值) 是一種強大的新型多重簽名,它將聯邦成員的關鍵份額聚合成一個聯合FROST 密鑰。要在此密鑰下消費,必須有一定數量的成員各自產生一個簽名份額。然後將這些份額組合起來形成一個在聯合FROST 密鑰下有效的單一簽名。成員協調脫鏈。 FROST 交易與常規的單方Taproot 支出無法區分,因此停止了令人毛骨悚然的監視。最重要的是,FROST 允許靈活的聯邦,允許新的監護人加入,而無需協調聯邦的每個成員再次生成新密鑰。
我們的第一步是了解聯邦如何在每一輪簽署中達成共識。 Fedimint 的共識算法可以容忍多達三分之一的聯邦成員的不良行為,並且仍能達成共識。在白板上花了一天時間來解碼共識算法,另外一天時間來配置初始FROST 密鑰生成。
我們通過在單個受信任設備的內存中完成所有操作來欺騙密鑰生成。在最佳實踐中,兩輪儀式會保留個人對僅存在於該個人設備上的聯合FROST 密鑰的秘密共享。整個秘密永遠不會被重建。
達成共識(簽名)
在修改Fedimint 錢包代碼並感到困惑之前,我們測試了一個掛鉤交易。由於盲簽名的限制,Fedimint E-cash 代幣(類似於CoinJoin 輸出)僅限於預設面額,因此每個E-cash 代幣轉移都有一個匿名集。等啊等啊等,林笑說我們一定是搞砸了。
事實證明,我們設置的標準紙幣面額要求造幣廠生成大約300,000 個簽名,才能發行足夠的電子現金來支付掛鉤金額。有 解決此問題的建議 改為使用匿名憑據。因為我們只是在測試,所以我們重置了鑄幣廠以使用更高的默認面額。畢竟,黑客馬拉松是針對黑客的。
幸運的是,Bitcoiner Malaysia 剛剛成立並為他們的第一次活動做好了準備。在我們四個黑客、中國最大的比特幣播客主持人和有望獲得第一個比特幣博士學位的學者之間。在馬來西亞,我們計劃在本週末在BitDevs 展示我們的工作量證明。
我們最艱鉅的任務仍然擺在我們面前:聯合簽名。要生成FROST 共享,簽名者必須同意共同的隨機性,稱為隨機數。在Fedimint 的情況下,簽名者使用共識來為每個加入簽名會話的聯盟成員就一個唯一的隨機數達成一致。然後簽名參與者將共享聚合成一個完整的簽名。
當我們為聚會起草現場演示時,我們設法讓一些nonce 共享半工作,並修復了一些費用錯誤。儘管我們努力工作,但晚餐還是在我們的代碼運行之前就結束了。我們跨過門檻,進入了最深的黑客馬拉松領域,在Farrow 的酒店房間裡,我們擠在電視機旁觀看三對編程。
不真實的體驗
準備好自來水並啟動虛幻錦標賽音板後,Fournier 坐在鍵盤前,而我們則從後座提出錯誤修復、變量名稱和命令。凌晨1 點30 分左右,我們的眼皮很重。幾次敲擊之後,就像變魔術一樣,掛鉤成功了。每個簽名者將從其他簽名者那裡獲得簽名份額,並兌換匿名者的電子現金以換取比特幣。 “完美的勝利”從音板中響起。我們難以置信地歡呼起來。
除了它沒有用。第二天,我們運行代碼並立即發現問題。我們前一天晚上才走運。它在三到四次嘗試中只有一次奏效。我們花了幾個小時梳理了黑客馬拉鬆質量的代碼。午飯後,我們仍然擔心我們不得不在另一個深夜補習。我們發現了問題:一個典型的索引錯誤。下午5:00 FROSTimint 準備好展示。
一旦我們選擇了BitDevs,當地人就採用了一種自我描述的“支持小組”形式進行介紹。 Fournier 用技術把我們帶回了現實。就職會議愉快地討論了託管人的未來和弱點。我們將如何選擇監護人?他們可以持有部分準備金嗎?最重要的是,我的叻沙麵湯店如何使用Fedimint 超越法令?
這是Dan Gould 和Nick Farrow 的客座帖子。表達的觀點完全是他們自己的,不一定反映BTC Inc. 或比特幣雜誌的觀點。