查看原文
其他

如今创建完全去中心化的代币交易所的秘诀

Dfifans DFINITY 2022-07-07




许多使用加密技术已有一段时间的人在交易所中遭受了某种损失,包括您在Gox和Bitfinex黑客中的损失。历史上,盗贼从未如此轻松地拿走如此庞大的赏金!


加密令牌的独特性在于仅存在于网络空间中,一旦被盗就无法轻易找回(尽管DFINITY链上即将出现的区块链神经系统可能会做一些事情),使其他黑客和内部盗窃行为极有可能发生。


就是说,除非我们可以创建真正的去中心化交易所,这样我们不必将代币和金钱转移给中介机构。


这种完全分散和防篡改的交易所,也应该大大降低交易费用,这是我们行业不断成熟的关键一步,但到目前为止,此目标难以达到。


但是,在这篇文章中,我将解释密码学的一些最新创新如何使今天的构想成为可能。


本文将说明如何从以Solidity编写的智能合约和以HTML/Js编写的Dapp用户界面(您可以使用Truffle创建的那种类型)创建去中心化的令牌交换(对于打包成Docker映像的即用型开发环境,包括Cloud9 IDE以及Truffle和其它工具,检查Instant-dapp-ide)。


尽管还必须创建一些特殊的随附软件客户端以应用密码学,但是我们将不需要侧链、状态通道、特殊的共识中心或任何其它尚不存在或具有自身严重缺陷的事物。


除了今天已经可用的之外,什么都不需要!


因此,我们将介绍如何在以太坊(或最终成为DFINITY)上创建加密货币到加密货币的交换,这将使安全而廉价地交易BTC/ETH和其它货币对成为可能。


第1步:智能合约逻辑


以太坊智能合约已经为我们提供了在区块链计算机上运行连续两次拍卖交易(例如GDAX、Bitfinex、Kraken或Poloniex)逻辑的手段。


当今网络的速度在用户体验方面提出了实际挑战,因为在提交新订单并且显然执行了交易之后,可能会在几分钟内重新组织市场,但是解决方案已经开始。


阈值中继将使最终性降低到几秒钟(与以太坊相比,今天的速度提高了50倍以上),而且Casper团队也在研究解决方案,因此我们可能会花一些时间。


真正的挑战是,我们在智能合约中创建的代币不能与其它链上的有价值的本地代币无信任地连接。例如,我们无法以不信任的方式连接到比特币的以太坊智能合约中创建XBT令牌,然后我们可以将其交换为本地以太币。


高级技术说明:这是Solidity中一些有兴趣的人的连续两次拍卖样式交换代码示例(这实际上是我第一个Solidity合同,是在该语言首次可用时编写的)。


您必须考虑几个设计注意事项,例如,有必要通过套利者观察快速集中交易的价格变化来解决HFT“狙击”的问题。也有充分的理由考虑使用其它交换模型,例如单价批量拍卖。如果有时间,这些考虑值得再次发表。


第2步:阈值签名破解


为简单起见,此后我们将仅讨论在以太坊托管的交易所中托管比特币的问题,尽管实际上该技术同样适用于托管来自使用ECDSA签名授权交易链中的任何本地加密令牌。


我们的要求是让大量独立方共同控制一个标准的比特币地址,以便用户可以将比特币发送到那里,但是只有在这些方的某个阈值比例之间达成协议后才能转移比特币。


例如,假设我们的交易所将有50名“监护人”,这些监护人来自加密行业内的知名和独立人士以及公司。


他们必须控制一个比特币地址,用户可以在其中发送比特币以换取以太坊交易所中托管的XBT令牌,并且他们必须能够将比特币从该地址分配给那些兑换XBT令牌的人。


传统上,在密码学中,这种功能是使用“阈值签名”创建的。


高级技术说明:比特币网络仅中继最多3位参与者的本地“多重签名”交易,按脚本哈希付费可以减轻一些负担,但仍将参与者限制为15个。


现在,我们可以为不耐烦的人划清界限:尽管比特币和以太坊交易使用标准ECDSA签名进行签名,并且两者都不原生支持阈值签名,但一些创新的研究人员最近展示了一种利用标准ECDSA签名比特币和以太坊使用,可以产生向后兼容的阈值签名的破解方法。


也就是说,我们的监护人可以为将被比特币网络接受为解锁UTXO的标准ECDSA签名的地址创建阈值签名!


您可以在此处找到描述如何执行操作的论文:


• https : //eprint.iacr.org/2016/013.pdf

• https://www.cs.princeton.edu/~stevenag/threshold_sigs.pdf


需要明确的是,这些阈值签名方案与我们在DFINITY阈值中继中使用的优化的BLS系统不同,该系统可以组合数百个签名者的输出以在几毫秒内创建唯一的确定性阈值签名。


实际上,此系统效率极低,以至于结合我们的监护人的签名输出确实会花费很长时间,并且其CPU会发热,但这不是问题。


收取适度的提款费以支付计算成本并要求从我们基于以太坊的金融交易所提款需要一段时间来处理是完全可以接受的。毕竟,为方便起见,许多人会很乐意将其资金安全地用于交换!


这项技术的应用将使我们能够在一定数量的监护人之间分散信任,使他们既可以接受比特币作为XBT分配的回报,又可以在兑换XBT令牌时分配比特币,从而以一种不信任和安全的方式将比特币与XBT令牌挂钩。


当然,我们必须考虑到某些监护人可能会丢失其签名密钥或被隐喻总线撞倒,但是阈值签名使我们能够解决此问题。我们可以简单地要求50位监护人中仅35位的输出就可以创建新的签名。


第3步:监护人奖励


我们需要为监护人制定激励计划,因为我们希望让不会消失或串通的值得信赖的个人和公司参与进来并宣传他们。


最简单的方法是,从交易所收取的所有提款额中,给他们少量的交易费用。


第4步:治理


由于必须选举监护人,对采用的智能合约进行软件更新等,因此分散式金融交易需要其自己的管理系统。因此,我们将把交换机设计为DAO(分散式自治组织)。


如果这些系统及时可用,我们甚至可以从DFINITY区块链神经系统技术中获得更高级的治理神经系统(DFINITY团队非常希望BNS将以这种方式重新利用)。


在治理系统内,将有具有“投票权”的代币持有者按比例分享交易收取的微薄费用。智能合约会定期举行“选美大游行”,潜在的监护人可以申请职位,最终由选民分配。


高级技术说明:攻击者可能会尝试购买所有投票代币,然后将监护人换成自己的傀儡(通常是DAO 51%的攻击)并窃取已存的资金。


出于这个原因,经过表决后,合同必须仅在一段时间延迟后才退出监护人,这可以使加密货币持有人有足够的时间安全地撤出资金(如果发生此类攻击)。这也适用于采用软件更新。


步骤5:阈值加密设置


一旦设置了监护人集,他们就必须设置其阈值签名方案。这意味着必须运行某种过程或协议,以确保完成后我们的50位监护人中的每位都有私人“密钥共享”,用于共同产生阈值签名,该阈值签名可以用作授权ECDSA的单个简单ECDSA签名。网络从存款地址分配比特币。


如前所述,引用的阈值签名方案实际上是黑客,它们创建的签名与当前由比特币和以太坊网络使用的常规ECDSA签名向后兼容。这意味着,与DFINITY阈值中继使用的BLS阈值签名方案相比,设置更具挑战性。


最简单的方法是像Z-Cash网络最近那样在安全的仪式中执行受信任的设置,并在允许存款地址变为“活动”之前,让每个监护人向交易所的智能合约发出信号,表示他们对输出感到满意。


尽管受信任的设置过程将比Z-Cash所使用的实现起来简单得多,但许多人希望实现无信任的分布式设置,特别是因为在需要旋转监护人时更容易重复。这将包括两个部分。


首先涉及在监护人之间分配普通密钥,并且可以非常简单地通过应用例如IPFS来完成作为汇总和共享分布式密钥生成协议中涉及的消息的日志。


第二部分(黑客中使用的同态加密技术使之成为必需)涉及Paillier密钥份额的分配。如果您希望快速启动和运行交换机,那么这最后一部分需要对执行成本进行仔细分析!


第6步:监护人客户端软件


我们必须创建一些特殊的“监护人客户端软件”来监视交易所的智能合约,并在用户希望赎回XBT时定期合作签署比特币交易。


第7步:众筹


应该进行众筹以收集用于研发的资金,并且可能是第一个将资金转移到那里的激励措施(可能会在一段时间内专门锁定那里)以帮助引导流动性。


请注意,我们可能只是从治理系统开始,然后允许其向开发者分配资金以完成交易。


一旦交易开始进行,我们应该期望交易量会迅速增加!分散交易涉及的基本成本比公司经营的集中交易要低几个数量级,这将反映在交易费用中。


此外,所描述的分散系统还具有更强的抵抗黑客和攻击的能力,您可以期望在这样的交易所中安全地存放和交易大量的加密货币。


手指交叉有人建造这个!


最后说明乍看之下,去中心化的金融交易似乎使加密货币到加密货币的交易成为可能。在短期内这可能是正确的。但是有兴趣的人应该查看Palo Alto与String Labs相关的研究人员目前正在开发的PHI系统。


这模仿了商业银行系统的运作方式,并创建了由贷款抵押担保的去中心化“加密货币”。


一旦我们在以太坊和DFINITY链上获得了该代币(并希望在两年内实现),便有可能将代币存放在去中心化交易所中,其代币的价值与某些法定货币的价值相仿。



作者:Dominic Williams

(Medium, 2017.3.25)

翻译:Catherine



简而言之DFINITY:非技术性介绍

攻击向量:长程攻击

攻击向量:无利害攻击

攻击向量:自私挖矿攻击

如何开始学习区块链?



进Dfinity官方社群,请添加小助手微信:

comiocn




长按关注

Dfinity官方微信

给你第一手资讯和项目信息

更可随时答疑解惑



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存