v神:如何构建更安全的集中交易所?_币百科_智行理财网

v神:如何构建更安全的集中交易所?

小智 0

欧易okx交易所下载

欧易交易所又称欧易OKX,是世界领先的数字资产交易所,主要面向全球用户提供比特币、莱特币、以太币等数字资产的现货和衍生品交易服务,通过使用区块链技术为全球交易者提供高级金融服务。

APP下载   官网注册

原文:《HavingasafeCEX:proofofsolvencyandbeyond》

编译:双花(@doublespending)

特别感谢BalajiSrinivasan和比特币基地、北海巨妖和币安的讨论。

每当大型集中交易平台崩溃时,一个经常被提及的问题是,我们是否可以使用加密技术来解决这个问题。交易平台可以通过创建密码证明来证明其链条上持有的资金足够支付给用户。而不是只依靠政府许可,审计师,调查公司治理,和交易平台法人回调整和其他"法定货币"程序。

更远大的是,交易平台可以建立一个系统,可以';不要提取存款';未经他们同意的资金。。我们可以试着去探索一个职业CEX和一个没有';不做坏事,效率低下。不作恶却泄露隐私。本文将深入讨论让CEX更加信任的历史尝试,以及其技术的局限性。一些强大的手段依赖于先进的技术,如ZK-斯纳克。

一个交易平台最早尝试用密码学来证明自己没有欺骗用户,可以追溯到很久以前。在2011年当时,最大的比特币交易平台MtGox通过发送交易将424,242个比特币转移到预先公布的地址,证明他们有钱。2013年,人们开始讨论如何解决问题的另一面:证明用户存款的总规模。。如果你证明用户';s的存款等于X(负债证明)并证明你有X令牌的私钥(资产证明)那么它提供了一个偿付能力的证明:你证明交易平台有足够的资金偿还储户。

提供存款证明最简单的方法就是公布一个清单。每个用户都可以在列表中查看他们的余额。并且任何人都可以查看完整的列表:(I)每个余额都是非负的;(二)总金额为申报金额。

当然,这样会破坏隐私。所以我们可以稍微改变一下方案:公布一个用户名,salt),balance

的列表,私下给用户发送salt值。但即使这样也会揭示出平衡及其分布。为了保护隐私我们采用了后续技术:Merkle树技术。

绿色:Charlie 的节点。蓝色:查理收到了证明节点。黄色:根节点,宣布

Merkle树技术将把用户余额表放入Merklesum树。在Merklesum树中,每个节点都是正确的。。底部的叶节点表示每个用户的余额和用户名的saltedhash。在每个更高一级的节点中,余额是后面两个节点的余额之和,哈希是后面两个节点的哈希。默克尔';的求和证明与Merkle'这是证据。,是一个"branch"由从叶节点到根节点的路径上的所有姐妹节点组成。

首先,交易平台将向每个用户发送其余额的Merklesum证书。然后,用户可以确定他的余额被正确地包括在总额中。。可以在这里找到简单的示例代码。

这种设计下的隐私泄露远低于公开的完全平衡表,而且每次公布默克尔根时打乱各个分支可以进一步降低隐私泄露的风险,但还是存在一些隐私泄露问题:查理知道有人';的余额是164ETH。,两个用户的余额之和为70ETH,依此类推。控制多个账户的攻击者仍然可以了解到交易平台用户的很多信息。

这个方案的一个重要微妙之处在于负余额的可能性:如果一个用户余额为1390ETH但只有890ETH储备的交易平台试图通过在树中某处的假账户下增加-500ETH的余额来弥补差额。,我该怎么办?这种可能性实际上不会破坏方案,这就是为什么我们特别使用Merklesum树而不是传统的Merkle树。假设亨利是交易平台控制的假账户。而交易平台把-500eth:

放在上面。

格里塔';s验证不会通过:当交易平台将不得不把亨利余额为-500ETH的节点给她时,她会拒绝无效节点。伊芙和弗雷德也无法证实。因为亨利上面中间节点的余额是-230ETH,所以这个节点也是无效的!为了防止盗窃被发现,交易平台只能希望没人去查树右半部分的余额证。

如果交易平台可以选择有500ETH嫌麻烦查不到余额证的用户,或者投诉没收到余额证的时候,人家不';don’不要相信他们,那么交易平台就可以蒙混过关。但是交易平台也可以通过将这些用户排除在Merklesum树之外达到同样的效果。因此,Merkletree技术基本上只在债务证明方面满足需求。但是它的隐私特性还是不太理想。。可以更巧妙的使用Merkletree进行改进,比如使用satoshi或者wei作为独立的叶节点。但是,通过使用更先进的技术,可以做得更好。

ZK-斯纳克是一项强大的技术。ZK-斯纳克对密码学的意义类似于人工智能:一种通用技术,可以碾压几十年前开发的一系列特殊技术,以解决一系列问题。因此当然,我们可以使用ZK-斯纳克法来大大简化和改善债务证明协议中的隐私。

我们可以简单地将所有用户';存入Merkle树(或更简单的KZG承诺)。并使用ZK-斯纳克证明树中的所有余额都是非负的,并且加起来等于一个要求的值。如果我们增加一层哈希来确保隐私,则发送给每个用户的Merkle分支(或KZG证书)不会泄露任何其他用户的余额。

使用KZG承诺是避免隐私泄露的一种方式,因为它不需要提供一个"姐妹节点"作为证明,一个简单的ZK-斯纳克可以用来证明余额的总和,而且每个余额都是非负的。

我们可以通过一个特殊的ZK-斯纳克证明上述KZG中的余额之和及其非负性。这里有一个简单的例子。我们引入一个辅助多项式I(x),它"构建用户平衡的每一点"(例如我们假设余额小于215),其中每隔16位跟踪一次差额,只有当实际总额等于申报总额时,值才会为0。如果z是128阶的本原根,我们可以证明等式成立:

[1]译者';注:这个多项式方程的解释。

如何将这些方程转换为多项式校正,然后转换为ZK-斯纳克,可以在这里和我关于ZK-斯纳克的文章中的另一个地方参考。。这不是一个最佳的协议,但它使这些加密证明更容易理解!

只需要几个额外的方程,约束系统可以适应更复杂的设置。例如,在杠杆交易系统中,个人用户拥有负余额是可以接受的。但前提是他们有足够的抵押贷款资产来偿还债务。SNARK可以用来证明这个更复杂的约束,并向用户保证交易平台可以';t偷偷违规豁免部分用户,从而危及用户';资产。从长远来看,这种ZK债券的用途不仅限于交易平台中的用户存款,还可以用于更广泛的贷款场景。任何借钱的人都会把记录放在一个多项式或者包含借条的树上,根会贴在链子上。。这将使任何寻求贷款的人能够向贷款人提供零知识证明,以表明他没有获得过多的其他贷款。最后,法律创新甚至可以使以这种方式承诺的贷款比没有承诺的贷款具有更高的优先权。。这与我们在《去中心化社会:寻找Web3的灵魂》中讨论的观点不谋而合:链上的负面声誉的概念是可能通过某种形式的"灵魂绑定令牌"。

资产证明最简单的版本就是我们上面看到的协议:为了证明你持有X代币,你只需要在预定的时间移动X代币或者携带"这些资金属于币安"在交易中。为了避免支付交易费用您可以对脱机邮件进行签名。比特币和以太坊都有离线签名信息标准。

在这个简单的资产证明技术中有两个实际问题:

出于安全原因。大多数交易平台存储了大多数用户';冷钱包里的资金:在离线电脑上,交易需要手动签名,带到互联网上。这种方法很常见:我用来存放私人资金的冰冷钱包放在一台永久离线的电脑上。,它会生成包含已签交易的二维码,然后我会用手机扫描这些二维码。由于资金量巨大,交易平台使用的安全协议会更加复杂,往往涉及多台设备间的多方计算,以进一步降低单个设备被黑客攻击导致密钥泄露的可能性。。在这种情况下,即使创建一个额外的消息来证明对地址的控制也是一个昂贵的操作!

交易平台可以采用以下方法:

维护一些长期公有地址。交易平台生成几个地址。,每个地址的所有权证书只发布一次,然后重用这些地址。这是迄今为止最简单的方案,尽管它在保护安全性和隐私方面增加了一些限制。

持有多个地址,然后随机证明几个地址。交易平台有很多地址。甚至有可能每个地址只使用一次,在一次交易后就停止使用。在这种情况下,交易平台需要一个协议,不定期随机选择一些地址,交易平台必须"打开了"证明所有权。一些交易平台通过审计员进行了类似的操作,但原则上,这项技术可以转变成完全自动化的程序。

更复杂的ZKP模式。例如,交易平台可以为其所有地址设置1/2以上的签名,而这些地址的一个密钥是不同的。而同一个密钥的另一个副本是以某种复杂但安全的方式(比如12/16多重签名)存储的重要应急备份盲版本。为了保护隐私,避免暴露其所有地址,交易平台甚至可以在区块链上运行零知识证明,以证明格式链上地址的总余额。

另一个主要问题是防止抵押品的重复使用。交易平台通常很容易来回转移抵押物以证明准备金,这使得在没有偿付能力的情况下很容易通过。理想情况下,偿付能力证明应实时完成。,并在每次阻止后更新证书。如果不切实际,那么退而求其次的办法就是在交易平台之间协调一个固定的时间来证明,比如每周二UTC时间下午2点证明储量。

最后一个问题是:我可以用法定货币证明我的资产吗?交易平台不仅持有加密货币,还持有银行体系内的法币。在这方面,答案是肯定的,但这样的程序将不可避免地依赖于"法定货币"信托模式:银行自己可以证明余额。审计员可以证明资产负债表等。鉴于法币无法用密码学验证,这是这个框架内最好的方案,还是值得做的。

另一种方法是将实体A与实体b分开。a负责运行交易平台,处理由部分资产背书的稳定货币USDC;而B负责处理加密货币与传统银行系统之间的现金流入流出过程。在这种情况下,B就是USDC本身。。自从USDC';s"负债"如果链中只有ERC20代币,则可以获得负债证明"轻松",而我们只需要处理资产证明的问题。

假设我们想更进一步:我们不';t只是想证明交易平台有足够的资金来偿还用户。相反,我们希望完全防止交易盗用用户';资金。

这个世界上第一个早期采用者是等离子。这是2017年和2018年以太坊研究领域流行的扩展方案。等离子的工作原理是把天平分裂成一组独立的"代币",并且每个令牌被分配一个索引。,并将其放在等离子体块的Merkle树中的特定位置。为了进行有效的令牌传输,需要将事务放在树中的正确位置,并且将根放在链上。

Plasma 的一个版本的极简图。代币存储在智能合同中,在取款时执行等离子协议的规则。

OmiseGo试图基于这个协议创建一个去中心化的交易平台,但是从那以后,他们转向了其他的东西.——在这方面,等离子集团也是这样,做过OptimalityRollup项目optimal。

2018年等离子的局限性(如证明代币碎片化的讨论让大家从根本上怀疑等离子的可行性。自2018年对等离子的讨论达到顶峰以来,ZK-斯纳克在与扩张相关的用例中变得越来越可行,正如我们上面所说。ZK-斯纳克改变了一切。

PLASMA的更新版本是Starkware的一个名为validium的方案:除了数据保存在链下之外,基本上与ZK-rollup相同。。这种结构适用于很多用例,可以想象它适用于任何集中式服务器需要证明自己正确执行代码的情况。在validium中,操作员可以';t盗取资金,但根据具体实施细节,如果运营商消失,部分用户';资金可能会被套牢。现在看起来一切都很好:CEX和德克斯远非替代品。事实证明,有一系列的选择,包括各种形式的混合集权,在这里你可以得到一些好处,比如效率,但是还是有很多密码保障的。可以防止大多数形式的集中运营商的恶意行为。

然而剩下的基本问题也值得思考:如何处理用户错误。到目前为止,最重要的错误类型是:如果用户忘记了密码,丢失了设备,被黑客攻击或无法访问他的帐户,该怎么办?

交易平台可以解决这个问题:首先使用电子邮件进行恢复,如果这一切都失败,那么通过KYC进行更复杂的恢复。但是要解决这些问题,交易平台需要真正控制这些代币。为了挽回用户';合理地分配资金交易平台需要有同样的可以用来抢用户的权力';无缘无故的资金。这是不可避免的权衡。

理想的长期解决方案是依靠自托管,用户可以方便地使用多签和社会恢复钱包等技术来帮助应对未来的紧急情况。。从短期来看,有两种明显的成本和收益不同的替代方案:

另一个重要的问题是对跨链的支持:交易平台需要支持很多不同的链,Plasma、validiums等系统需要用不同的语言编写代码来支持不同的平台。而且它可以';t以目前的形式在一些平台(尤其是比特币)上实现,有望通过技术升级和标准化来解决;不过短期来看,这也是托管交易平台维持托管模式的另一个原因。

短时间内交易平台有两种明确的类型:托管交易平台和非托管交易平台。今天,后一类是像Uniswap一样的DEX,我们可能会在未来看到CEX受到密码学的约束。,其中用户资金将以类似于validiumsmartcontracts的方式持有。我们也可能会看到一个半托管的交易平台,在这个平台上,我们信任它对法币的处理,而不是加密货币。

这两类交易平台将继续存在。提高托管交易平台向后兼容性最简单的方法就是增加储备证书。这包括资产凭证和负债凭证的组合。为这两种技术设计优秀的协议仍然存在一些挑战,但我们可以也应该促进这两种技术齐头并进,并尽可能开放源代码软件和程序。让所有交易平台都能受益。

从长远来看,我希望我们朝着所有交易平台都不受管理的方向发展,至少在加密货币方面。钱包恢复将会存在。,可能需要为因法律原因需要此类安排的小型基金和机构的新用户提供高度集中的恢复选项,但这可以在钱包级别而不是在交易平台内完成。就法定货币而言传统银行体系和加密货币生态系统之间的运动可以通过USDC等资产的原始资本流入和流出过程来完成。然而,我们还有很长的路要走。

[1]译者';s注:

每16位数字代表一个用户(前15位数字代表用户的余额,最后一位数字代表到目前为止用户的总余额与对账单的差额)。我们可以看到,上面的例子代表了两个用户(让读者在这里有所了解)

声明的用户平均余额:185

用户1的余额:20-

00000010100

差额:20185=-165[

用户2的余额:50-

000010100110010

差额:-16550-185=-300

最终遍历所有用户。要求最后一个用户的差为0

四个方程的解释

方程1:递归的初值为0

方程2:每个用户的余额需要对应KZG承诺

等式3:每个用户的递归公式';s余额,约束条件为余额

=0和214

(据说余额215应该是笔误,因为根据等式3,递归公式只有14个值,I(zi)214,

十六个数对应:I(z{16x})=0|I(z{16x1})|I(z{16x2})|…|I(z{16x14})|差

16个数字对应最大值:0|21-1|22-1|…|214-1|差值)

等式4:限制所有用户的总余额与交易平台申报的余额一致

原文链接节奏BlockBeats提醒,根据2018年8月银监会等五部门发布的《关于防范以「虚拟货币」「区块链」名义进行非法集资的风险提示》号文件,请广大市民理性看待区块链。唐';t盲目相信炒作的承诺,树立正确的货币观和投资观,切实提高风险意识;发现的违法犯罪线索可积极向有关部门举报。

相关内容

v神:如何构建更安全的集中交易所?文档下载: PDF DOC TXT