Submit Search
知らなかった! Bitcoinとethereumの違い
Download as PPTX, PDF
4 likes
3,017 views
Shinji Ayanami
EthereumのブロックチェーンとState Treeのデータ構造について
Engineering
Read more
1 of 34
Download now
Downloaded 28 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
More Related Content
PDF
Open vSwitchソースコードの全体像
Sho Shimizu
PPTX
Prometheus入門から運用まで徹底解説
貴仁 大和屋
PDF
katagaitai CTF勉強会 #5 Crypto
trmr
PDF
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
PDF
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
PDF
今なら間に合う分散型IDとEntra Verified ID
Naohiro Fujie
PDF
muCon 2016: Authentication in Microservice Systems By David Borsos
OpenCredo
PDF
分散型IDと検証可能なアイデンティティ技術概要
Naohiro Fujie
Open vSwitchソースコードの全体像
Sho Shimizu
Prometheus入門から運用まで徹底解説
貴仁 大和屋
katagaitai CTF勉強会 #5 Crypto
trmr
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
実装して理解するLINE LoginとOpenID Connect入門
Naohiro Fujie
今なら間に合う分散型IDとEntra Verified ID
Naohiro Fujie
muCon 2016: Authentication in Microservice Systems By David Borsos
OpenCredo
分散型IDと検証可能なアイデンティティ技術概要
Naohiro Fujie
What's hot
(20)
PPTX
やってはいけない空振りDelete
Yu Yamada
PDF
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
PPTX
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
PDF
Optimistic Rollupとは何か
Syuhei Hiya
PDF
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
PDF
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
NTT DATA Technology & Innovation
PPTX
継続的にテスト可能な設計を考える
Atsushi Nakamura
PDF
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
昌桓 李
PDF
LINE Login総復習
Naohiro Fujie
PDF
SQL Server/SQL Database の新機能のお話し
Insight Technology, Inc.
PDF
Keycloak拡張入門
Hiroyuki Wada
PPTX
Azure Artifactsを触ってみよう
DevTakas
PDF
MySQLレプリケーションあれやこれや
yoku0825
PDF
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
PDF
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
Masaya Tahara
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
PDF
Cloud Foundryで学ぶ、PaaSのしくみ講座
Kazuto Kusama
PPTX
PHPとシグナル、その裏側
do_aki
PDF
Ruby で高速なプログラムを書く
mametter
やってはいけない空振りDelete
Yu Yamada
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
NGINXをBFF (Backend for Frontend)として利用した話
Hitachi, Ltd. OSS Solution Center.
Optimistic Rollupとは何か
Syuhei Hiya
JDKの選択肢とサーバーサイドでの選び方
Takahiro YAMADA
AWSにおけるIaCを活かしたTerraformの使い方2選! ~循環型IaCとマルチクラウドチックなDR環境~ (HashiTalks: Japan 発...
NTT DATA Technology & Innovation
継続的にテスト可能な設計を考える
Atsushi Nakamura
スケールアップファーストのNoSQL、ScyllaDB(スキュラDB)
昌桓 李
LINE Login総復習
Naohiro Fujie
SQL Server/SQL Database の新機能のお話し
Insight Technology, Inc.
Keycloak拡張入門
Hiroyuki Wada
Azure Artifactsを触ってみよう
DevTakas
MySQLレプリケーションあれやこれや
yoku0825
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
なぜあなたのプロジェクトのDevSecOpsは形骸化するのか(CloudNative Security Conference 2022)
Masaya Tahara
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
NTT DATA Technology & Innovation
Cloud Foundryで学ぶ、PaaSのしくみ講座
Kazuto Kusama
PHPとシグナル、その裏側
do_aki
Ruby で高速なプログラムを書く
mametter
Ad
Viewers also liked
(8)
PDF
ブロックチェーンに冷水をぶっかける
Bizuayeu
PDF
Blockchain@OSC Kyoto 2016
Masanobu Takagi
PPT
メイドカフェの歴史と今
Shinji Ayanami
PPTX
Bitcoinの個人的勉強ノート 第3版(2015年1月4日)
pizyumi
PPTX
Ethereumをさわって実感するブロックチェーンハンズオン(新版はここ https://www.slideshare.net/mogiken1/et...
健一 茂木
PDF
Bitcoinを技術的に理解する
Kenji Urushima
PDF
ブロックチェインとOpen asset protocol
Kindai University
PDF
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
ブロックチェーンに冷水をぶっかける
Bizuayeu
Blockchain@OSC Kyoto 2016
Masanobu Takagi
メイドカフェの歴史と今
Shinji Ayanami
Bitcoinの個人的勉強ノート 第3版(2015年1月4日)
pizyumi
Ethereumをさわって実感するブロックチェーンハンズオン(新版はここ https://www.slideshare.net/mogiken1/et...
健一 茂木
Bitcoinを技術的に理解する
Kenji Urushima
ブロックチェインとOpen asset protocol
Kindai University
Nosqlの基礎知識(2013年7月講義資料)
CLOUDIAN KK
Ad
Similar to 知らなかった! Bitcoinとethereumの違い
(14)
PPTX
ブロックチェーンの仕組みと動向(入門編)
NTT DATA OSS Professional Services
PDF
5分でわかるブロックチェーンの基本的な仕組み
Ryo Shimamura
PDF
ブロックチェーンの基本構造
Soichiro Takagi
PDF
Ethereum whitepaper
Kenichi Kurimoto
PPTX
Blockchain wg 20170803
Tomokazu Hatate
PPTX
筑波大学 Blockchain meetup 第一回
Takuya Fujita
PPTX
ビットコイン~原理からソースまで~
bitbank, Inc. Tokyo, Japan
PPTX
ブロックチェーン書き換え不可能な記録によって社会はどう変化するか?
Yoshiharu Ikutani
PDF
ブロックチェーン連続講義 第3回 ビットコインの技術
Kenji Saito
PDF
仮想通貨始めました~GethではじめるEthereum~
Hiroyuki Ohnaka
PPTX
170301 いまさら聞けないブロックチェーン①
勇太 荒瀬
PDF
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
周 小渕
PDF
Blockchain innovation
Yuto Takei
PDF
Blockchain入門
YUSHI MATSUDA
ブロックチェーンの仕組みと動向(入門編)
NTT DATA OSS Professional Services
5分でわかるブロックチェーンの基本的な仕組み
Ryo Shimamura
ブロックチェーンの基本構造
Soichiro Takagi
Ethereum whitepaper
Kenichi Kurimoto
Blockchain wg 20170803
Tomokazu Hatate
筑波大学 Blockchain meetup 第一回
Takuya Fujita
ビットコイン~原理からソースまで~
bitbank, Inc. Tokyo, Japan
ブロックチェーン書き換え不可能な記録によって社会はどう変化するか?
Yoshiharu Ikutani
ブロックチェーン連続講義 第3回 ビットコインの技術
Kenji Saito
仮想通貨始めました~GethではじめるEthereum~
Hiroyuki Ohnaka
170301 いまさら聞けないブロックチェーン①
勇太 荒瀬
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
周 小渕
Blockchain innovation
Yuto Takei
Blockchain入門
YUSHI MATSUDA
知らなかった! Bitcoinとethereumの違い
1.
BitcoinとEthereumの違い ブロックチェーンとデータ構造 ちゃーりー(@charlie_rebirth) 2016年9月
2.
ブロックチェーンの構造のこと Bitcoinのブロックチェーン構造について Mastering Bitcoinなどでよくまとまっている (7章「ブロックチェーン」に詳細が解説) が、Ethereumのブロックチェーンは解説が世の中にあまりない? それについて話します
3.
Bitcoinのブロックチェーン ・ヘッダー部 ・トランザクション部 * すべての取引情報(お金のやり取り)はブロックチェーンに書いてある。 ブロックチェーンのデータさえあれば残高わかる
4.
ブロックの図 HEADER部:ブロックに関するデータ timestamp Difficulty:採掘難度 Nonce: PoWの結果の値 Merkle Root:
マークルツリーの根(root)の値 Transactions部:取引データ ex ) Alice to Bob: 1BTC Bob to Charlie: 0.5 BTC etc
5.
Merkle Root ブロックの中のトランザクションデータの要約値 = 取引が改ざんされていないことを確認するための値
6.
マークルツリー(ハッシュ木)
7.
マークル・パス マークルツリーをたどって特定の取引データにたどり着くための必要最小限の 情報
8.
マークルパス 途中のノードのハッシュ値だけでたどることができる
9.
Bitcoinのおさらい Merkle Treeが使われる 取引データの整合性の確認ための木構造データ
10.
・通貨を送るだけのシステムではない。 ・ユーザーが任意のプログラムを書いてそれを実行させる(万能チューリング・マシン) ・取引データだけでなく、「状態データ」(State)を記憶しないといけない (全アカウント・コントラクトの情報) 膨大なデータ量!!! Ethereumは複雑だった
11.
Bitcoin
12.
Ethereum
15.
Ethereum Architecture 参考ページ Ethereum block
architecture http://ethereum.stackexchange.com/questions/268/ethereum-block- architecture
16.
> eth.getBlock(2040449) { difficulty: 57164803413005, extraData:
"0xe4b883e5bda9e7a59ee4bb99e9b1bc", gasLimit: 4712380, gasUsed: 252000, hash: "0x00a75e75a5a70f7a2550718ae56a34904d63c8a28ef293a18611eb8766a58c92", logsBloom: "", miner: "0x61c808d82a3ac53231750dadc13c777b59310bd9", nonce: "0x5f130ae01311795b", number: 2040449, parentHash: "0x5ef63a62aa871d58b8f26cd4acda621557806a943f46ed76e401030f79982b2b", receiptRoot: "0x42dbcf6a2f8716f63d441459a96b54fdc6d70bc44f6641c144f24647c04c3a97", sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", size: 1896, stateRoot: "0xb4980433b3f53d0dbfffbe833102e0f37296b60081e9e8170975a05a767d7946", timestamp: 1470749971, totalDifficulty: 46140009996266484451, transactions: ["0xf38046731a2268e0558305449f366c49604bccc0c056efda0dac20207cecd802", "0x8c10abdf63e369d2db09297de90a9d8b2831ad0b796de36be8ef109643e7d6f5", "0x0a090cc48494aba9ab587e8e0b4d48e632d27578aab333adc37f85b79dbd1684", "0xaea8cfbae769dd579d274c0ebbf731b182167decf83ac6dd7c0f42f9d7551acf", "0x0547b8962b4be66a3636be1ad39221d21f4ad630e203ad62b7ac52ef8e5aabaa",
17.
ブロックチェーンに記録されているのはトランザクション情報のみ ✕「ブロックチェーンにコントラクトを書き込んであってすべての変数が保存 されている」 正しくは↓ コントラクトそのものや、内部変数、状態変数のデータは ブロックチェーン上には無い 大丈夫かそれ?
18.
状態データ、アカウントデータ 各ノードでデータを保持してる Transactionsを元に、各ノード独自でState Treeを計算して生成 State Tree(全アカウント・コントラクトの状態を記録した木構造のデータ) 容量が大きくなるが、ブロックチェーン本体さえあればいつでも再構築でき るのがポイント(State
Treeを改ざんできない)
19.
Merkle Patricia Tree データの整合性(改ざんへの耐性)のためのMerkle
Tree × データの効率的保持のためのState Tree(Patricia Tree) ↓ 融合合体
20.
マークルツリー(ハッシュ木)
21.
Radix Tree (基数木、トライ:Trie) ・検索が高速 ・必要なノード(節)の数が 多い ⇨ 深くなるほどデータ容量が O(N^2)で増える 非効率 ※ハッシュ値は長い文 字列なので非効率
22.
Patricia Tree(パトリシア木) 通常のトライ木と異なり、 辺には1つの文字だけでなく文字の並びが ラベルとして付与される。 これは長い文字列の集合や 長い接頭部を共有する文字列の集合などで 効果を発揮する。
23.
パトリシア木 ・必要なノード(節)の数 が少なくできる。 ⇨データ容量を減らせる ・だが、実装は複雑になる
24.
Merkle Patricia Trie ●
Patricia Treeのように効率よくデータを格納・取り出しができる ● Merkle Treeのようにハッシュ値を元にしたツリー構造で改ざんされてい ない証明ができる (ツリーのどこかのデータが変わるとState Root値が変わってしまう) ⇨ State Treeにも暗号学的な改ざんへの耐性がある(PoWに基づく)
25.
State tree ● state
root から分岐する木構造 ● 各ノードはハッシュ値を保持し、子ノードのハッシュ値は親ノードのハッシュ値に影響を与 える ● いずれかのノード内の値を変えると、ハッシュ値が変更⇨親ノードのハッシュ値が変更⇨root hashが変更される ● root hashが与えられた時、そのハッシュ値と整合性のあるState treeのみが正しい。 ⇨ 不正な変更は見つかる
27.
Ethereum wiki /
Ethereum Development Tutorialより
28.
Ethereum Scalability and
Decentralization Updates
29.
Merkle Patricia tree
のノードの種類 1. NULL (空文字) [ null ] 2. key-value型 [ key, value] 3. 配列型 [ v0 ... v15, vt ] 例 <以下のkey:valueを記録する場合> ('dog', 'puppy'), ('horse', 'stallion'), ('do', 'verb'), ('doge', 'coin') key を16進数の値(ASCIIコード)に変換し、配列にする。(その配列は対応するvalueまで辿る経 路を表す) [ 6, 4, 6, 15, 16 ] : 'verb' [ 6, 4, 6, 15, 6, 7, 16 ] : 'puppy' [ 6, 4, 6, 15, 6, 7, 6, 5, 16 ] : 'coin' Ethereum
30.
基数木(Radix Tree)で値を保存する場合 存在する全経路・分岐でノードを作成する必要が ある ⇨ 分岐(ノード)が多く、深くなればなるだけ記憶 容量をとってしまう。
31.
Merkle Patricia Tree Patricia
Tree状になるように計算(key の値はRLPエンコーディングというもので変換 されている) ROOT: [ '¥x16', A ] A: [ '', '', '', '', B, '', '', '', C, '', '', '', '', '', '', '', '' ] B: [ '¥x00¥x6f', D ] D: [ '', '', '', '', '', '', E, '', '', '', '', '', '', '', '', '', 'verb' ] E: [ '¥x17', F ] F: [ '', '', '', '', '', '', G, '', '', '', '', '', '', '', '', '', 'puppy' ] G: [ '¥x35', 'coin' ] C: [ '¥x20¥x6f¥x72¥x73¥x65', 'stallion' ] この時、子ノードへの参照であるA,B,C,D,E,F,Gは ハッシュ関数 sha3([..... ]) によって算出される。 そのため、値が変わると参照値が変更され、Rootのハッシュ値も変更される。
32.
Patricia Treeにvalueを格納する図 必要なノード数が少ない ⇨ 記憶容量の節約
33.
詳細は Understanding the ethereum
trie https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/ または Ethereum wiki のPatricia Treeの項目参照
34.
まとめ ● Ethereumでは、ブロックチェーンに全データを保持していなくても、改 ざん不可能なデータ構造を各クライアントに保持させることができる。 ● 外部記録を有効に活用することで、ブロックチェーンのサイズの肥大化は 抑えられているみたいだー。
Download