最近,在cz几条推特的轰炸之下,全球第二大交易所FTX因为挪用用户资产,被挤兑后迅速宣告破产,由此导致了用户对CEX资产储备不透明的强烈不信任感。而cz提出CEX要做MerkleTree的资产证明,并计划几周内发布,其他交易所纷纷表示跟进。
那么,什么是MerkleTree,中心化交易所应如何通过MerkleTree实现自身资产储备≥用户资产?本文将从技术角度讨论并给出完整的证明方案与代码实现。
我们以ETH为例,当我们要实现资产证明时,我们要证明的是链上资产ETH总额≥交易所用户ETH资产总额。因此,证明分为链上与链下两部分。
链上证明
链上证明比较简单,因为交易所通常会将所有用户充值汇总到几个地址,列出这几个地址在链上自查即可。为证明这些地址是交易所拥有,可用私钥签名一条简单的消息即可,签名只需要发布一次。
LI.FI和InsurAce合作开发保险工具:金色财经报道,LI.FI正在与InsurAce合作开发 \"桥梁保险\",为黑客、故障和漏洞提供保障,否则将耗尽用户的资金。根据协议文件,InsurAce的产品可以保护参与转账的分散式交易所的 \"滑点错误 \"造成的损失。
对桥接故障的保险可以为那些在一些加密货币最大的黑客攻击中失去资金的用户提供一个缓和的机会,比如Ronin exploit。[2023/4/19 14:11:48]
链下证明
链下证明就比较复杂,需要用到MerkleTree。
MerkleTree是一种二叉树,其最底层叶子节点存储数据以及数据的哈希,而每上一层节点则存储两个子节点的哈希,最后由根节点的哈希保证这个MerkleTree的任何节点数据的完整性。因为修改任何一个叶子节点的数据都会导致根节点的哈希变化,因此,使用MerkleTree可以保证,只要发布了Root,树的所有子节点均不可修改:
杜均:Huobi期待未来能够与香港政府在行业监管合作及合规领域得有效突破:11月1日消息,10月31日,应香港立法委员兼全国政协委员吴杰庄与Nano Labs创始人Jack孔邀请,波场创始人兼Huobi全球顾问委员会委员孙宇晨和Huobi联合创始人杜均一同出席Twitter Space线上主题活动,与各界专家共同讨论和解读香港加密新政。
Huobi联合创始人杜均在活动中表示,任何一个新政策的出现往往都会面临质疑,但香港的加密新政无疑是历史的一大步,它给全球华人Web3创业者带来了极大的信心和鼓舞。与迪拜、新加坡和美国等国家相比,中国香港背靠大陆,有极强的人才优势,对于Huobi和全球Web3创业者而言能更好地解决人才储备难题,方便本土业务拓展。此前,Huobi是新加坡第一只持有合规牌照的投资基金,期待未来也能够与香港政府在行业监管合作及合规领域取得有效突破,助力Huobi相关业务落地,支持香港本地区块链和加密技术创新发展。[2022/11/1 12:02:21]
数据:交易所单日转入ETH数额创下五年新低:10月22日消息,据Galssnode数据显示,交易所单日转入ETH的数额(7d MA)创下5年新低,已经跌破1万枚,回到2017年5月水平。[2022/10/23 16:35:44]
假设交易所全部5个用户持有若干不等的ETH,按用户ID可表示如下:
可将用户ID视为索引,构造MerkleTree并计算MerkleRoot:
非营利筹资平台Heroe5宣布成立Web3融资平台:金色财经报道,非营利筹资平台Heroe5今天宣布成立The Good Society?,以满足慈善组织对可持续筹资平台日益增长的需求。The Good Society 成为第一个专注于 Web3 解决方案的项目,旨在提高认识并支持致力于对我们的社区产生积极影响的全球事业。
Heroe5 和 The Good Society 的首席执行官 Sebastien Heimann 表示:The Good Society 是筹款行业发展的重要下一步:一个创造艺术影响体验的 Web3 平台。随着世界转向 Web3,慈善机构需要更多的筹款工具来保持领先地位,并采用新的方式来吸引潜在的捐助者。Good Society 将提供这些创新,使他们能够为重要事业筹集关键资金和提高认识,同时满足公众对数字收藏品日益增长的兴趣。[2022/8/11 12:18:27]
加密艺术平台Outland完成500万美元种子轮融资:6月19日消息,位于美国洛杉矶的新兴加密艺术平台 Outland 宣布已于 2022 年 3 月完成 500 万美元种子轮融资。本轮融资由 OKX Blockdream Ventures 领投,IMO Ventures 、Dragon Roark、JDAC Capital 参投。
Outland 于 2022 年 2 月上线,是首个由艺术机构、策展人、评论家等参与创始的 NFT 平台。Outland 首发项目方力钧 NFT 作品《Elemental》系列总交易额约 4000 ETH,并获得 OpenSea 首?持续推荐。4 月底,Outland 发售美国当红艺术家 James Jean 的 NFT 作品《Fragments》,总交易额达到 3700 ETH。7 月,Outland 将推出美国著名艺术家 Ian Cheng 的 NFT 作品《3Faces》。[2022/6/19 4:38:16]
交易所发布MerkleRoot后,可确保所有子节点——即用户ID对应的子节点余额均完全确定下来,每个用户均可根据自己的用户ID查询余额是否相符,只要有任何一个用户发现自己的余额在指定索引的位置不符,即可判断交易所造假。
为了证明交易所的用户资产储备总额,交易所也不得不公开所有子节点的索引与余额,这样任何第三方才能计算出用户资产总额,并根据交易所公布的MerkleRoot确认这些子节点数据没有被篡改。
然而,这样一来,每个用户的持币余额就完全公开了,可以很容易地对持币大户进行跟踪。因此,我们需要一种机制将一个用户的余额拆成若干份,并存储在多个不同的索引地址。为了确保索引不会冲突,可使用SparseMerkleTree,用以太坊地址作为索引。对SparseMerkleTree不熟悉的同学可以参考针对以太坊实现的一种SparseMerkleTree。
例如,对于用户45678持有的45.67余额,我们可以分为3份:
14.727835427.8394771023.10268748然后,根据ID计算出确定的若干地址索引:
6f1cc8a44919eb1c6576d6819b37ac9ab288ecb59759bf1d54e5f25f135d7674dea3bef0d24fb15346daefba020f7e5bfa957b13aeaa4b72034a90fd这样我们就可以把这个用户的余额分别存放在3个子节点上。把所有用户都处理一遍,假设结果如下:
我们就可以得到一个地址索引=余额的列表。对地址进行排序,以便让同一个用户的多个地址不再连续列出,得到地址/余额的CSV如下:
交易所计算总额683.91以及MerkleRoot值0x61cdf659...c41c40fe,公开CSV文件及MerkleRoot后,任何第三方可校验树的有效性,并获得用户资产总额,再与链上对比。对于每一个用户来说,需要根据自己的ID,快照时产生的余额,以及交易所给出的用于生成确定性地址的随机数,可自行验证对应的若干节点余额总和与自己的资产额度完全相等。
这种方式既能保证每个用户可验证自己的资产,又能保证其他人无法推算某个用户的资产,其缺点是计算较为繁琐,需要相应的第三方工具帮助用户校验。
小结
本文给出了一种交易所用户资产的额度证明,并保证不泄漏任何用户的额度。详细代码可参考GitHub源码:
https://github.com/michaelliao/eth-smt/blob/master/sample/src/main/java/com/itranswarp/sample/Proof.java
责任编辑:Kate
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。