编按:本文是QuarkChain创始人&CEO周期博士在以太坊技术论坛ethresear.ch发布的一篇技术文章,介绍了一个高效的Merkletree方案设计。
原地址:
https://ethresear.ch/t/effici...
简介
遵循以太坊2.0的无状态客户端的思想,我们实现了一个高效的链上动态Merkletree:
Phantom宣布已兼容以太坊、Polygon和Solana上的所有应用:金色财经报道,Web3钱包Phantom宣布目前已兼容以太坊、Polygon和Solana上的所有应用,用户可选择MetaMask图标连接或点击浏览器钱包连接。Phantom还引入了默认应用钱包设置,允许选择默认钱包或在每次连接钱包时被询问。[2023/3/31 13:36:56]
链上包含性验证;链上添加/就地更新;O(1)存储空间成本;更新/添加操作的O(1)存储写入成本。
背景
Merkletree广泛用于以极低存储成本在链上大量成员身份验证,例如Uniswap链上空投。无需上传链上所有用户大量的空投信息,空投可以通过以下方式显著节省成本:
报告:Polkadot是仅次于以太坊的第二大链上开发生态系统:金色财经报道,根据 Electric Capital 的报告,Polkadot目前是仅次于以太坊的第二大链上开发生态系统。尽管由于 NFT 炒作,Solana 在今年早些时候成为了 DeFi 的吸引力,但在总开发人员方面,它仍然落后于 Polkadot,而 Polkadot 以大约 1000 至 2000 的开发人员领先于以太坊。甚至在 Moonbeam 的发布完成之前,Polkadot 就已经开始了第二轮拍卖。这证明 Polkadot 将继续吸引越来越多的开发人员,甚至可能在未来成为主要的 DeFi 中心。(ambcrypto)[2022/1/10 8:36:57]
将树的根哈希存储在链上使用链下计算证明用户奖励用户通过链上提交证明来获取奖励
OpenSea针对NFT收藏品推出分析功能:10月20日消息,据官方推特,NFT市场OpenSea针对NFT收藏品推出分析(Analytics)功能。目前该功能为Beta版本,大多数NFT收藏品都包含一个Analytics选项卡,用户可以在其中浏览趋势、指标和NFT活动,包括数量、销售额和地板价这三个核心指标,以简化用户获取NFT信息的过程并帮助其做出明智决定。[2022/10/20 16:31:15]
此外,链上动态Merkletree正在引起人们的兴趣。著名的会计事务所安永(Ernst&Young,EY)开发了一种仅能在链上添加的动态Merkletree(https://github.com/EYBlockcha...5)。它通过只存储“边界”节点而不是树的所有节点来节省树的存储成本,但是,添加操作的写入成本为O(log2(N)),这可能会在EVM上消耗相当大的gas。
金色财经独家分析 联合国:币圈以外的区块链价值:饱受苦难的叙利亚以及普渡众生的联合国之间,这一次用blockchain链接起来。联合国粮食计划署用与业界合作,实现了更加方便的救助,同时实现了难民身份隐私的保护。这一次没有资本驱动,没有大规模的商业推广,唯有人道主义精神。在这里我们再次看到了对世界非功利性的改变。此前联合国官员就指出,区块链正在帮助困难人群,优化政府职能等方面能做的更多。目前,联合国已经在应对气候变化、保护妇女、儿童权益,解决非洲发展问题已经开始行动。联合国与企业的合作也正在加深,ConseSys利用区块链打击拐卖儿童问题、数字货币钱包Blockchain与联合国达成合作探索区块链在自然资源保护、民主系统保护等多领域的应用等,区块链企业一方面应该抓住在此方面的机会,也应该在做事业的层面致力于提高世界人民福祉,这也是频繁提到“区块链改变世界”的应有之义。[2018/4/16]
基本想法
类似于现有的静态Merkletree,它使用默克尔证明来验证包含性,链上动态树的基本思想是在包含验证后重用默克尔证明来更新树的根哈希。树更新的步骤如下:
给定LeafIndex、oldLeafHash、newLeafHash、oldRootHash、proof用oldLeafHash和proof计算rootHash。如果计算出的rootHash!=oldRoothHash,则包含验证失败;否则继续使用newLeafHash和proof计算newRootHash,其中证明被重用,newRootHash将是更新后树的根哈希
请注意,只有newRootHash被写入区块链,因此空间和写入的成本是O(1)。
应用
MerklizedERC20
ERC20标准可以修改为Merklize的树。任何造币/销毁/转移操作都需要Merkle证明。MerklizedERC20的应用或许可以:
链上投票——治理提案投票可以廉价地使用ERC20快照并根据快照计算链上投票,而不需要保留ERC20余额变化或链下快照的所有历史记录。远程流动性挖掘——远程链上的合约对本地ERC20用户进行空投/流动性挖矿,其中ERC20快照通过去中心化预言机定期转发到另一条链。
示例代码可以在这里找到:https://github.com/QuarkChain...
/SPDX-License-Identifier:MITpragmasolidity^0.8.0;import"hardhat/console.sol";import"@openzeppelin/contracts/token/ERC20/IERC20.sol";import"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";import"@openzeppelin/contracts/utils/Context.sol";import"./DynamicMerkleTree.sol";
contractMerklizedERC20isContext,IERC20,IERC20Metadata{mapping(address=>uint256)private_balances;mapping(address=>uint256)private_indices1;uint256private_totalSupply;stringprivate_name;stringprivate_symbol;
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。