風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
技術解讀:高效的鏈上動態Merkle Tree
QuarkChain夸克链
特邀专栏作者
2021-10-28 11:08
本文約1612字,閱讀全文需要約3分鐘
本文是QuarkChain創始人&CEO週期博士在以太坊技術論壇ethresear.ch發布的一篇技術文章,介紹了一個高效的Merkle tree方案設計。

簡介

原文鏈接:

https://ethresear.ch/t/effici...

簡介

簡介

原文鏈接:
簡介
鏈上添加/就地更新;
背景

背景

O(1) 存儲空間成本;

背景
背景
Merkle tree廣泛用於以極低存儲成本在鏈上大量成員身份驗證,例如Uniswap 鏈上空投。無需上傳鏈上所有用戶大量的空投信息(比如,地址、數量),空投可以通過以下方式顯著節省成本:

將樹的根哈希存儲在鏈上https://github.com/EYBlockcha...用戶通過鏈上提交證明來獲取獎勵

基本想法

此外,鏈上動態Merkle tree 正在引起人們的興趣。著名的會計事務所安永(Ernst & Young ,EY) 開發了一種僅能在鏈上添加的動態Merkle tree (

5)。它通過只存儲“邊界”節點而不是樹的所有節點來節省樹的存儲成本,但是,添加操作的寫入成本為O(log2(N)),這可能會在EVM 上消耗相當大的gas。
基本想法
用oldLeafHash 和proof 計算rootHash。如果計算出的rootHash != oldRoothHash,則包含驗證失敗;否則繼續

應用

應用

Merklized ERC20

使用newLeafHash 和proof 計算newRootHash,其中證明被重用,newRootHash 將是更新後樹的根哈希

應用
應用

ERC20 標準可以修改為Merklize (賬戶,餘額)的樹。任何造幣/銷毀/轉移操作都需要Merkle 證明。 Merklized ERC20 的應用或許可以:
https://github.com/QuarkChain...

/SPDX-License-Identifier: MIT
pragma solidity ^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";

contract MerklizedERC20 is Context, IERC20, IERC20Metadata {
   mapping(address => uint256) private _balances;
   mapping(address => uint256) private _indices1;
   uint256 private _totalSupply;    
string private _name;    
string private _symbol;

ETH
AI總結
返回頂部
本文是QuarkChain創始人&CEO週期博士在以太坊技術論壇ethresear.ch發布的一篇技術文章,介紹了一個高效的Merkle tree方案設計。
作者文庫
下載Odaily星球日報app
讓一部分人先讀懂 Web3.0
IOS
Android