SlideShare ist ein Scribd-Unternehmen logo
1 von 28
BITCOIN NETWORK 後
半
鈴木雄登
Agenda
SPVノード
BloomFilter
トランザクションプール
アラートメッセージ
おさらい
ネットワークノードには4つの機能
Wallet
Miner
Blockchain
Network Routing
SPVノード
SPVノード
Simplified Payment Verification
日本語だと「簡単決済認証」
一般的なウォレットはSPVノード
SPVノードとフルノードの違
い
ブロックヘッダのみでトランザクションはDLして
いない
結果1/1000の容量になる
使用可能な全てのUTXOは分からない
SPVノードとフルノードの違
い
SPVノード
全てのブロックチェーン
SPVノードに関係あるトランザクション
フルノード
完全に検証されたブロックチェーン
全トランザクション
SPVノードの構成(おさらい
)
Wallet
Bitcoinアドレスと秘密鍵を格納す
るソフトウェア
SPVノードの構成(おさら
い)
StratumでもSPVノードはある
Stratum
・Bitcoin P2Pプロトコルとは
別のプロトコル
Stratumサーバ
・Stratumノードと
BitcoinP2Pノードの橋渡し
SPVノードの
トランザクションの確認
1. 代理ノードに対してmerkle path証明を要求
2.ブロックチェーンにあるPoWを検証
merkle path
merkle treeという二分木を使った経路探索
葉ノードはトランザクションデータをハッシュ化
詳しくはブロックチェーンの章で
SPVノードの
ブロックヘッダ同期
トランザクションの場合
request: getdata
response: tx
2000個以内の
headerを送る
プライバシー問題
SPVノードは特定のbitcoinアドレスに関するTXを要求
漏れてしまうので、特定されないようにする必要
BloomFilterを利用
BLOOM FILTER
Bloom Filterとは?
簡単に言うと、枝刈りの手法
考案は1970年
bitcoinの機能だけでなく、DBの探索などでも利用
される
BloomFilterでできること
ある要素が集合のメンバーであるかどうかを見る
ただし偽陽性がある
要素があるかは不確実
要素がないことは確実
アルゴリズム
アルゴリズム
アルゴリズム
アルゴリズム
1 1
再度同じPatternAが来ても全てのbitが立っているので存在と判定できる
BloomFilterに似てるもの
ビット配列(入力が数値なら)
ハッシュテーブル(ハッシュ関数の数が1の場合
と同じ。ただし衝突を考慮する必要あり)
SPVノードでは?
ウォレットに含んでいるBTCアドレスをハッシュ化
Node A Node B
filterload
getdata
merkleblock
tx
tx
filteradd
filterclear
bloom filter
の送信
トランザクション
の取得
パターンの
追加
Bloom filterの
再作成
トランザクションプール
トランザクションプール
未検証トランザクションの一時リスト
ブロックチェーンに含まれていないTX
Orphanプールもある
TXプールはノード単位で持ってるので、ノードが
落ちれば消えてしまう
UTXOプール
全ての未使用アウトプットの集合
常に開始当時からの全UTXOを保持
BTCネットワーク内で検証済みのもの
アラートメッセージ
機能
今まで数回しか使われたことがない
alertというメッセージで全BTCユーザに通知できる
GUIのクライアントではPUSH通知
すでに廃止された模様
フィールド一覧
ID :アラートを一意に指定するID
Expiration : アラートが失効するまでの時間
RelayUntil : アラートが中継されなくなるまでの時間
MinVer, MaxVer :アラートが適用されるBitcoinプロトコルバージョンの範囲
subVer : アラートが適用されるクライアントバージョン
Priority : アラートの優先レベル、現在使用されていない

Weitere ähnliche Inhalte

Ähnlich wie Mastering Bitcoin ~network~

OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料OpenID Foundation Japan
 
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月VirtualTech Japan Inc.
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 
VPP事始め
VPP事始めVPP事始め
VPP事始めnpsg
 
Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -Haruyuki Nakano
 
EXE #6:Lightning Network入門
EXE #6:Lightning Network入門EXE #6:Lightning Network入門
EXE #6:Lightning Network入門blockchainexe
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)Hirokuma Ueno
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解するKenji Urushima
 
みんなのブログ紹介
みんなのブログ紹介みんなのブログ紹介
みんなのブログ紹介Sanae Taniguchi
 
秋の夜長のトランスポート
秋の夜長のトランスポート秋の夜長のトランスポート
秋の夜長のトランスポートTakashi Abe
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHubK Kinzal
 
Ns2240series users manual_07
Ns2240series users manual_07Ns2240series users manual_07
Ns2240series users manual_07squat12
 
Tezos 008 Edo protocol
Tezos 008 Edo protocolTezos 008 Edo protocol
Tezos 008 Edo protocolJun Furuse
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...シスコシステムズ合同会社
 
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうAndroidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうksk sue
 
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用Ruo Ando
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of ThingsSaki Homma
 

Ähnlich wie Mastering Bitcoin ~network~ (20)

OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
OpenID Bizday #9 - 山崎重一郎氏 プレゼン資料
 
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
ミドクラ様講演 OpenStack最新情報セミナー 2014年4月
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 
VPP事始め
VPP事始めVPP事始め
VPP事始め
 
Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -Domino v12の新機能 - 多要素認証対応 (TOTP) -
Domino v12の新機能 - 多要素認証対応 (TOTP) -
 
EXE #6:Lightning Network入門
EXE #6:Lightning Network入門EXE #6:Lightning Network入門
EXE #6:Lightning Network入門
 
月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)月刊NDEF 2013年3月号(卒業号)
月刊NDEF 2013年3月号(卒業号)
 
Lightning Network入門
Lightning Network入門Lightning Network入門
Lightning Network入門
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解する
 
みんなのブログ紹介
みんなのブログ紹介みんなのブログ紹介
みんなのブログ紹介
 
秋の夜長のトランスポート
秋の夜長のトランスポート秋の夜長のトランスポート
秋の夜長のトランスポート
 
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub解説: Token Extensions - Solana Developer Hub Online #SolDevHub
解説: Token Extensions - Solana Developer Hub Online #SolDevHub
 
Ns2240series users manual_07
Ns2240series users manual_07Ns2240series users manual_07
Ns2240series users manual_07
 
OpenFlow
OpenFlowOpenFlow
OpenFlow
 
Tezos 008 Edo protocol
Tezos 008 Edo protocolTezos 008 Edo protocol
Tezos 008 Edo protocol
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
【Interop Tokyo 2016】 Seminar - EA-18 : 「Cisco の先進セキュリティ ソリューション」 Shownet 2016...
 
Androidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃうAndroidとfpgaを高速fifo通信させちゃう
Androidとfpgaを高速fifo通信させちゃう
 
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
法政大学情報科学部 2012年度コンピュータネットワーク-第11回授業-Web公開用
 
はじめてのWeb of Things
はじめてのWeb of ThingsはじめてのWeb of Things
はじめてのWeb of Things
 

Mehr von Yuto Suzuki

5xx解消への道のり
5xx解消への道のり5xx解消への道のり
5xx解消への道のりYuto Suzuki
 
MySQLのインデックス入門
MySQLのインデックス入門MySQLのインデックス入門
MySQLのインデックス入門Yuto Suzuki
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のきYuto Suzuki
 
いまさらAkkaStream
いまさらAkkaStreamいまさらAkkaStream
いまさらAkkaStreamYuto Suzuki
 
Introduction of View Through Tracking
Introduction of View Through TrackingIntroduction of View Through Tracking
Introduction of View Through TrackingYuto Suzuki
 
エンジニアのためのマーケティング
エンジニアのためのマーケティングエンジニアのためのマーケティング
エンジニアのためのマーケティングYuto Suzuki
 
How to Build a Team
How to Build a TeamHow to Build a Team
How to Build a TeamYuto Suzuki
 
プロダクトにおけるScala
プロダクトにおけるScalaプロダクトにおけるScala
プロダクトにおけるScalaYuto Suzuki
 
Do you like scala
Do you like scalaDo you like scala
Do you like scalaYuto Suzuki
 
Slackから始めるChatOps
Slackから始めるChatOpsSlackから始めるChatOps
Slackから始めるChatOpsYuto Suzuki
 
大学の時の研究の話
大学の時の研究の話大学の時の研究の話
大学の時の研究の話Yuto Suzuki
 
F.O.Xを支える技術
F.O.Xを支える技術F.O.Xを支える技術
F.O.Xを支える技術Yuto Suzuki
 
Scala戦士を増やせ
Scala戦士を増やせScala戦士を増やせ
Scala戦士を増やせYuto Suzuki
 
スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方Yuto Suzuki
 
Breezeで始めるデータ分析
Breezeで始めるデータ分析Breezeで始めるデータ分析
Breezeで始めるデータ分析Yuto Suzuki
 

Mehr von Yuto Suzuki (20)

5xx解消への道のり
5xx解消への道のり5xx解消への道のり
5xx解消への道のり
 
MySQLのインデックス入門
MySQLのインデックス入門MySQLのインデックス入門
MySQLのインデックス入門
 
Ad vol.2
Ad vol.2Ad vol.2
Ad vol.2
 
広告勉強会
広告勉強会広告勉強会
広告勉強会
 
Aerospike基本のき
Aerospike基本のきAerospike基本のき
Aerospike基本のき
 
いまさらAkkaStream
いまさらAkkaStreamいまさらAkkaStream
いまさらAkkaStream
 
Introduction of View Through Tracking
Introduction of View Through TrackingIntroduction of View Through Tracking
Introduction of View Through Tracking
 
エンジニアのためのマーケティング
エンジニアのためのマーケティングエンジニアのためのマーケティング
エンジニアのためのマーケティング
 
How to Build a Team
How to Build a TeamHow to Build a Team
How to Build a Team
 
プロダクトにおけるScala
プロダクトにおけるScalaプロダクトにおけるScala
プロダクトにおけるScala
 
Do you like scala
Do you like scalaDo you like scala
Do you like scala
 
Re invent
Re inventRe invent
Re invent
 
Slackから始めるChatOps
Slackから始めるChatOpsSlackから始めるChatOps
Slackから始めるChatOps
 
大学の時の研究の話
大学の時の研究の話大学の時の研究の話
大学の時の研究の話
 
F.O.Xを支える技術
F.O.Xを支える技術F.O.Xを支える技術
F.O.Xを支える技術
 
Scala戦士を増やせ
Scala戦士を増やせScala戦士を増やせ
Scala戦士を増やせ
 
Recommend scala
Recommend scalaRecommend scala
Recommend scala
 
スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方スクラムに学ぶ開発の回し方
スクラムに学ぶ開発の回し方
 
Breezeで始めるデータ分析
Breezeで始めるデータ分析Breezeで始めるデータ分析
Breezeで始めるデータ分析
 
進撃のSbt
進撃のSbt進撃のSbt
進撃のSbt
 

Mastering Bitcoin ~network~