火星链 火星链
Ctrl+D收藏火星链

ERK:中心化交易所如何用Merkle Tree实现资产储备证明

作者:

时间:1900/1/1 0:00:00

最近,在cz几条推特的轰炸之下,全球第二大交易所FTX因为挪用用户资产,被挤兑后迅速宣告破产,由此导致了用户对CEX资产储备不透明的强烈不信任感。而cz提出CEX要做MerkleTree的资产证明,并计划几周内发布,其他交易所纷纷表示跟进。

那么,什么是MerkleTree,中心化交易所应如何通过MerkleTree实现自身资产储备≥用户资产?本文将从技术角度讨论并给出完整的证明方案与代码实现。

我们以ETH为例,当我们要实现资产证明时,我们要证明的是链上资产ETH总额≥交易所用户ETH资产总额。因此,证明分为链上与链下两部分。

链上证明

链上证明比较简单,因为交易所通常会将所有用户充值汇总到几个地址,列出这几个地址在链上自查即可。为证明这些地址是交易所拥有,可用私钥签名一条简单的消息即可,签名只需要发布一次。

Circle任命金融风险管理负责人为其董事会成员:6月29日消息,USDC 发行人 Circle Internet Financial 今天宣布金融风险管理负责人 Craig Broderick 加入其董事会。Craig 曾是高盛的前首席风险官,曾担任管理委员会成员,并担任全公司风险委员会和其他与控制相关的委员会的联席主席。在高盛 32 年的职业生涯中,Broderick 负责监督公司的信用、市场、流动性、运营、模型、交易对手和保险风险。[2023/6/29 22:08:56]

链下证明

链下证明就比较复杂,需要用到MerkleTree。

MerkleTree是一种二叉树,其最底层叶子节点存储数据以及数据的哈希,而每上一层节点则存储两个子节点的哈希,最后由根节点的哈希保证这个MerkleTree的任何节点数据的完整性。因为修改任何一个叶子节点的数据都会导致根节点的哈希变化,因此,使用MerkleTree可以保证,只要发布了Root,树的所有子节点均不可修改:

MetaMask在最新版本中为提供NFT功能:金色财经报道,web3 数字钱包 MetaMask 引入了一个新的更新,增加了其浏览器扩展的 NFT 功能。在 10.28 版本中,用户现在可以享受专用的 NFT 选项,该选项可以简化查看和传输这些独特代币的过程。[2023/4/7 13:49:25]

假设交易所全部5个用户持有若干不等的ETH,按用户ID可表示如下:

Amber Group再次裁员近百人,员工称其拖欠赔偿金:12月6日消息,Amber Group 在9月进行约30%-40%的裁员后,12月再次开始裁员近百人,并要求境内员工居家办公以及清空办公室。部分被裁员工由于未按时收到赔偿金正在寻求维权,Amber HR回复称因银行结汇问题导致延迟。

此外,据天眼查信息,Amber在国内所注册的公司之一,深圳艾贝未来科技有限公司在11月22日进行了法人变更,公司法人从贺永成变更为谭贤林。(吴说)[2022/12/6 21:25:34]

Cathie Wood增持超700万美元的Block和Robinhood股票:金色财经报道,根据其最新的交易文件,Ark周三在两个基金中购买了69,756股Block股票和343,623股Robinhood股票。在今天的财报发布前,Block股价昨天收盘下跌至54.64美元。基于这个价格,Ark Innovation ETF的购买成本约为380万美元。

Ark's Next Generation ETF增加了303,129股Robinhood股票,按收盘价计算价值超过330万美元。Ark Fintech Innovation ETF购买了40,494股Robinhood股票,价值46万美元。(the block)[2022/11/3 12:14:37]

可将用户ID视为索引,构造MerkleTree并计算MerkleRoot:

美参议员:美国稳定币法可能在今年通过:金色财经消息,美国参议员Pat Toomey在Consensus2022大会上表示,美国可能会在今年年底之前通过一项关于稳定币的新联邦法律。[2022/6/11 4:18:04]

交易所发布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

标签:MERERKETRLETGROOMER币TERK币MetriaMathWallet麦子钱包app

POL币最新价格热门资讯
元宇宙:第7届世界元宇宙大会在元宇宙与深圳高交会上顺利召开

第7届世界元宇宙大会暨第10届世界元宇宙大会新闻发布会于11月15日在元宇宙线上主会场及深圳高交会1号馆、2号馆两个分会场顺利召开.

1900/1/1 0:00:00
binance:MarsBit日报 | Binance 放弃收购 FTX;SBF 表示将再进行一次融资,正与孙宇晨进行沟通

MarsBitCryptoDaily2022年11月10日一、今日要闻Binance:根据尽职调查结果放弃收购FTXBinance官方发文表示,根据公司尽职调查的结果.

1900/1/1 0:00:00
HTT:巴比特 | 元宇宙每日必读:元宇宙东风之下,“AR试妆第一股”出现,华为、旷视、欧莱雅也在抢蛋糕

摘要:近日,为美妆品牌开发虚拟试妆APP的公司——玩美移动登陆纽交所,成为“AR试妆第一股”,其背后的投资机构包括阿里巴巴、高盛中国等.

1900/1/1 0:00:00
加密货币:Chainalysis:FTX 暴雷,投资者是否为了稳定而转向法币?

本周是加密历史上最疯狂的一周。作全球最大的交易所之一,FTX的代币FTT在过去两天暴跌84%,一项待收购的暂定协议于昨天下午也已终止.

1900/1/1 0:00:00
RPL:香港财政司司长陈茂波:稳慎推进虚拟资产业在港发展

稳慎推进虚拟资产业在港发展特区政府在上月底发表了《有关虚拟资产在港发展的政策宣言》,阐明了我们对虚拟资产行业、相关创新技术与应用,和其生态系统发展的愿景和方针.

1900/1/1 0:00:00
TRAC:OmniBOLT 的自动化做市商解决方案

密切关注去中心化金融的读者应该都很熟悉“自动化做市商”这个词。这是一个非常有趣的概念,可以协助人们的交易而无需人力干预.

1900/1/1 0:00:00