Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Merkle Sum Sparse Merkle Tree
shigeyuki azuchi
January 25, 2023
Technology
0
4
Merkle Sum Sparse Merkle Tree
GBECの解説動画のスライドです。
https://goblockchain.network/2023/01/merkle-sum-sparse-merkle-tree/
shigeyuki azuchi
January 25, 2023
Tweet
Share
More Decks by shigeyuki azuchi
See All by shigeyuki azuchi
Schnorr署名のハーフアグリゲーション
azuchi
0
8
BLS署名の集約
azuchi
0
25
BLS署名
azuchi
0
35
Zero-conf Channel(Turbo Channel)
azuchi
0
23
OP_CTV(BIP-119)
azuchi
0
18
CoinPool
azuchi
0
24
LNで受信者の匿名性を提供するRoute Blinding
azuchi
0
27
Peer Swap
azuchi
0
24
Fast Forward Protocol
azuchi
0
36
Other Decks in Technology
See All in Technology
日経電子版だけじゃない! 日経の新規Webメディアの開発 - NIKKEI Tech Talk #3
sztm
0
320
re:Inventで発表があったIoT事例の紹介と考察
kizawa2020
0
190
オブザーバビリティのベストプラクティスと弥生の現状 / best practices for observability and YAYOI’s current state
yayoi_dd
0
100
AI Builderについて
miyakemito
0
910
SSMパラメーターストアでクロススタック参照の罠を回避する
shuyakinjo
0
7k
02_プロトタイピングの進め方
kouzoukaikaku
0
520
SmartHRからOktaへのSCIM連携で作り出すHRドリブンのアカウント管理
jousysmiler
1
120
AWS Cloud Forensics & Incident Response
e11i0t_4lders0n
0
360
S3とCloudWatch Logsの見直しから始めるコスト削減 / Cost saving S3 and CloudWatch Logs
shonansurvivors
0
250
目指せCoverage100%! AutoScale環境におけるSavings Plans購入戦略 / JAWS-UG_SRE_Coverage
taishin
0
510
03_ユーザビリティテスト
kouzoukaikaku
0
500
USB PD で迎える AC アダプター大統一時代
puhitaku
2
1.9k
Featured
See All Featured
Web development in the modern age
philhawksworth
197
9.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
13
1.1k
A designer walks into a library…
pauljervisheath
199
16k
What the flash - Photography Introduction
edds
64
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
182
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
44
14k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.8k
Streamline your AJAX requests with AmplifyJS and jQuery
dougneiner
128
8.8k
Building Applications with DynamoDB
mza
85
5k
Intergalactic Javascript Robots from Outer Space
tanoku
261
26k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
500
130k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Transcript
Merkle Sum Sparse Merkle Tree (Taro Protocol)
1 Sparse Merkle Tree Key/Value形式のデータエンコードするマークルツリー ・・・ Key Keyの値からツリー内の
エントリーの位置が特定できるツリー TaroではKeyは256 bit Keyをビット列にし、 • 0であれば左の子ノード • 1であれば右の子ノード と順にツリーを下っていく 空のリーフノードの値を決めておくことで、 エントリーが空であることを空のリーフまでの マークルプルーフを提供することで証明できる
2 Merkle Sum Tree H(H(H(A) || H(B)) || H(H(C) ||
H(D))) H(H(A) || H(B)) H(A) H(B) H(H(C) || H(D)) H(C) H(D) 一般的なマークルツリーは、 左右の子ノードのハッシュ値を連結しハッシュ値を計算し、 それを親ノードのハッシュ値とする H(H(H(A) || H(B)) || H(H(C) || H(D)) || 80 + 82) H(H(A) || H(B) || 50 + 30) H(A), 50 H(B), 30 H(H(C) || H(D) || 15 + 67) H(C), 15 H(D), 67 Merkle Sum Treeは、各ノードが子ノードの数値の合計に コミットする。 親ノードのハッシュ値は、 • 左右の子ノードのハッシュ値 • 左右の子ノードの数値の合算値 を連結したハッシュ値
3 Merkle Sum Sparse Merkle Tree Sparse Merkle Tree とMerkle
Sum Treeを組み合わせたマークルツリー Taroでは2階層のMerkle Sum Sparse Merkle Tree を使用 https://github.com/Roasbeef/bips/blob/bip-taro/bip-taro-ms-smt.mediawiki Asset Tree Root 256 ・・・ Asset ID Tree Root ・・・ Asset ID Asset Script Key • 1階層めのツリーは、アセットIDをキーに対象アセットの エントリーを格納 • このツリーの全アセットの量にコミット Leaf:H(Taro version || Asset ID Tree Root || Asset Sum) • 2階層めのツリーは対象アセットについて、 各ユーザー(アカウント)が保持する アセットの量をコミット Leaf:H(Asset Leaf || Asset Sum) ※ Asset Leaf=アセットに関するTLVレコード 256 2256個のリーフノード