リスク警告:「仮想通貨」「ブロックチェーン」の名のもとでの違法な資金調達のリスクに注意してください。—銀行保険監督管理委員会など5部門
検索
ログイン
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
View Market
技術的解釈: 効率的なオンチェーンの動的マークル ツリー
QuarkChain夸克链
特邀专栏作者
2021-10-28 11:08
この記事は約1612文字で、全文を読むには約3分かかります
この記事は、QuarkChain の創設者兼 CEO である Zhou Zhou 博士がイーサリアム技術フォーラム ethresear.ch に公開した技術記事で、効率的なマークル ツリー スキーム設計を紹介しています。

導入

元のリンク:

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

導入

Ethereum 2.0 のステートレス クライアントのアイデアに従って、効率的なオンチェーンの動的マークル ツリー (マークル ツリー) を実装しました。

オンチェーン封じ込め検証。
オンチェーン追加/インプレース更新。
O(1) 保管スペースのコスト。
背景

背景

マークル ツリーは、Uniswap オンチェーン エアドロップなど、非常に低いストレージ コストでチェーン上の多数のメンバーを認証するために広く使用されています。チェーン上のすべてのユーザーについて大量のエアドロップ情報 (住所、数量など) をアップロードする必要はなく、エアドロップは次の方法でコストを大幅に節約できます。

ツリーのルート ハッシュをオンチェーンに保存する
オフチェーン計算を使用したユーザー報酬の証明
ユーザーはチェーン上にプルーフを送信することで報酬を受け取ります

さらに、オンチェーンの動的マークル ツリーにも関心が集まっています。有名な会計事務所アーンスト アンド ヤング (EY) は、動的なマークル ツリー (https://github.com/EYBlockcha...5)。ツリーのすべてのノードではなく「境界」ノードのみを保存することでツリーのストレージ コストを節約しますが、操作を追加する際の書き込みコストは O(log2(N)) となり、EVM でかなりのガスを消費する可能性があります。

基本的な考え方

マークル証明を使用して包含を検証する既存の静的マークル ツリーと同様に、オンチェーン動的ツリーの基本的な考え方は、マークル証明を再利用して、包含検証後にツリーのルート ハッシュを更新することです。ツリーを更新する手順は次のとおりです。

LeafIndex、oldLeafHash、newLeafHash、oldRootHash、proof が与えられた場合
oldLeafHash と証明を使用して rootHash を計算します。計算された rootHash != oldRoothHash の場合、包含検証は失敗します。それ以外の場合は続行します。
newLeafHash と証明を使用して newRootHash を計算します。証明が再利用される場合、newRootHash は更新されたツリーのルート ハッシュになります。

応用

応用

Merklized ERC20

ERC20 標準は、(口座、残高) のツリーをメルクライズするように変更できます。マークルプルーフは、ミント/書き込み/転送の操作に必要です。マーク化された ERC20 アプリケーションは次の可能性があります。

オンチェーン投票 - ガバナンス提案投票では、ERC20 バランス変更 (複合) やオフチェーン スナップショットのすべての履歴を保持することなく、ERC20 スナップショットを安価に使用し、スナップショットに基づいてオンチェーン投票を計算できます。
リモート流動性マイニング - リモート チェーン上のコントラクトは、ローカル ERC20 ユーザーに対してエアドロップ/流動性マイニングを実行します。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
Odaily公式コミュニティへの参加を歓迎します
購読グループ
https://t.me/Odaily_News
チャットグループ
https://t.me/Odaily_CryptoPunk
公式アカウント
https://twitter.com/OdailyChina
チャットグループ
https://t.me/Odaily_CryptoPunk
AI要約
トップに戻る
この記事は、QuarkChain の創設者兼 CEO である Zhou Zhou 博士がイーサリアム技術フォーラム ethresear.ch に公開した技術記事で、効率的なマークル ツリー スキーム設計を紹介しています。
著者ライブラリ
QuarkChain夸克链
Odailyプラネットデイリーアプリをダウンロード
一部の人々にまずWeb3.0を理解させよう
IOS
Android