这是DanGould和NickFarrow社论的观点。Gould是开发者,曾在TumbleBit,PayJoin和ChaincaseApp工作,得到人权基金会和GeyserGrants的赞助。Farrow是澳大利亚BTC工程师因其开源付款CpuSatSale而闻名。
“嘿,我刚收到了在马来西亚举办的黑客松的邀请,”EvanLin打断了我在台北黑客空间笔记本电脑上的流程。“听起来很棒,”我反驳道。“我能来吗?”
我已经用头敲桌子好几个礼拜了。林一直在撕毁我的对手BTC隐私的概念。“这是个人活动,不是典型的黑客马拉松。我可以问。”
经过两周零六分钟的语音信息物流,我们和劳埃德·福尼耶(LloydFournier)一起走在马来西亚吉隆坡榴莲林立的街道上,思考让BTC隐私成为现实共同的热情。如今我们是一个团队。我们广泛应用半抛光密码学和一些轻率笔记来升级Fedimint,五天后第一次马来西亚BitDevs演示将在聚会上开展。
Fournier几个月前和NickFarrow一起研发了FROST,这是一种应用Taproot新的阈值密码学。BTC人力资源来源,Fournier还跟作为BTC开发工具包(BDK)推动者的Lin紧密配合。在过去的几周里,他和我在台湾台北的凌晨在荧光灯下升级PayJoin因此,我们设立了信赖,共同开展了一个项目。Fournier邀约是迈向边缘的一步。为了向世界展现顶尖的密码学,我们应该FROST放进应用程序中。Fedimint新的门槛托管模式吸引了所有人的注意。适用于此任务。
对大多数人来说,自我监控是一个新颖而可怕的概念。这么多人会BTC储存在交易所的第三方托管中,使他们面临审查和不雅监管。联合铸币厂提供第三种方式:由已知监护人组成的联盟,以保证社区资产的安全。那么它是怎样工作的呢?
任何人都可以BTC发送到Fedimint得到电子现金代币。监护人在多个签字夹中共享社区比特币的储存权。电子现金代币只是一些数据:盲签字,以后可以换取一定数量BTC。它们是超级强大的钞票。递交闪电发票和电子现金代币“挂勾”。您可以通过文字获得电子现金,并让联邦再次签发签名,这样别人就无法接受。签名是一味的,因此可以完全密名赎出。任何人都可以电子现金发送到Fedimint以获得BTC。
监护人共享抚养权,Fedimint传统传统的前提BTC脚本的多个签字地址。一定数量的监护人签名转移资金。因为区块链上的资金很容易找到,这些资金很容易在区块链上找到Scriptmultisig将签名者和监护人的总数写入区块链,供任何人查看。E-cash是匿名的,监控公司也可以识别挂勾、挂勾和社区基金的集合。通过比特币的新升级Taproot,我们的团队通过将军Scriptmultisig切换到FROST解决了隐私问题。
进到弗罗斯特
FROST(提高灵活轮Schnorr阈值)是一种强大的新式多重签名,将联邦成员的关键份额汇集成联合签名FROST钥匙。如果你想在这把钥匙下消费,你必须有一定数量的成员各自产生签字份额。然后将这些份额组合起来,产生联合份额FROST密匙下高效的单签。成员协调脱链。FROST常规单方交易Taproot花费无法区别,因此停止了令人毛骨悚然的监管。最主要的是,FROST允许灵活的联邦和新的监护人加入,而不需要协调联邦的每个成员再次生成新的钥匙。
我们的第一步是了解联邦怎样在每一轮签约中达成共识。Fedimint共识算法能够容忍高达三分之一的联邦成员的不良行为,而且仍然能够达成共识。花一天时间在白板上解码共识算法,并配置初始算法FROST密钥生成。
一组马来西亚开发商正在努力工作FROST和Taproot结合使用Fedimint协议联合建立Chaumian铸币厂。
达成Fedimint共识(作者提供的照片)
我们通过完成单个受信任设备内存中所有操作来欺骗密钥生成。在最佳实践中,第二轮典礼将保留个人对个人设备的联合FROST密匙秘密共享。整个秘密永远不会重建。
达成共识(签名)
在修改Fedimint在我们感到困惑以前,我们检测出了一个挂勾交易。因为盲名的限定,FedimintE-cash代币(类似CoinJoin导出)仅限预设面值,因此每个面值E-cash代币转移有一个密名集。等,林笑道我们一定搞砸了。
事实证明,我们设置的规范钞票面值要求造币厂生成约3万元左右,才能发行充足的电子现金结算挂勾额度。有人建议用密名凭据解决这个问题。因为我们只是在检测,我们重置了铸币厂,使用更高的默认面值。毕竟黑客马拉松是针对黑客的。
庆幸的是,BitcoinerMalaysia刚刚创立并为他们的第一次活动做好了准备。中国最大的黑客是我们四个黑客BTC播客主持人和预计获得第一个比特币博士学位的学者之间。在马来西亚,我们计划在本周末BitDevs展现我们的工作量证明。
我们最艰巨的任务依然摆在我们眼前:联合签名。FROST签名者必须同意共同的随机性,称为随机数。Fedimint在这种情况下,签名者使用共识与每个加入签名会话的联盟成员就唯一的随机数达成一致。随后签字参与者将共享汇集成一个完整的签字。
在我们为聚会做现场演示时,我们尝试让一些nonce分享一半的工作,修补一些成本错误。尽管我们努力工作,但晚饭在我们的代码运行以前就结束了。我们越过了门槛,进入了黑客马拉松最深的行业Farrow在酒店房间里,我们挤在电视边上看三对编程。
不真实的感觉
备好自来水并启动虚幻联赛音板后,Fournier坐在键盘前,我们从后座给出了错误的修复、变量名和命令。凌晨1点30分左右,我们的眼睑很重。经过几回敲打,如同法术一样,钩成功了。每个签名者将从其他签名者那里得到签字份额,并以密名电子现金换取BTC。“完美胜利”从音板里传出。我们难以置信地喝彩起来。
除了它没用。第二天,我们运行代码,立即发现问题。我们前一天晚上很幸运。它只有三到四次试着一次。我们花了几小时整理了黑客马拉松品质的代码。午饭后,我们仍然担忧我们不得不在另一个深夜补习。我们发现了一个问题:一个典型的索引错误。下午5点FROSTimint备好呈现。
一旦我们选了BitDevs,本地人使用自我描述“支持小组”介绍方式。Fournier用技术把我们带到现实。工作会议愉快地讨论了代理人的将来和缺点。我们将怎么选择监护人?他们会有一些储备吗?最主要的是怎么使用我的汤店Fedimint超越法令?