Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BitcoinのDouble Spend
Search
Shu Kobuchi
September 09, 2017
Programming
720
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BitcoinのDouble Spend
2017年9月9日OSC東京Fall内の東海道らぐLT大会にて、BitcoinのDouble Spend(二重支払い)を行なった場合にどうなるのかを発表しました。
Shu Kobuchi
September 09, 2017
More Decks by Shu Kobuchi
See All by Shu Kobuchi
生成AIに振り回されない 〜確率論と決定論の使い分け〜
shukob
0
190
LT準備のToilを削減 〜決定論×確率論のスライド生成CLI〜
shukob
0
150
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
190
AIエージェント・エコノミーの幕開け 〜 オープンプロトコルが変えるビジネスの未来 〜
shukob
0
250
AIエージェント・エコノミーの幕開け 〜オープンプロトコルが変えるビジネスの未来〜
shukob
0
150
Google Cloudでの動画解析と検索のサービス紹介と比較
shukob
0
120
MCP・A2A概要 〜Google Cloudで構築するなら〜
shukob
0
490
AIエージェント入門 自律性の基礎からオープンプロトコルMCP・A2Aによる連携まで
shukob
0
150
AIエージェントの自律性と協調性を解放する Google CloudによるMCP・A2A実装のエンタープライズ戦略
shukob
0
110
Other Decks in Programming
See All in Programming
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
280
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
230
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.9k
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
970
AI時代のUIはどこへ行く?その2!
yusukebe
22
7.7k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.1k
はてなアカウント基盤 State of the Union
cockscomb
1
1.2k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
290
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
0
120
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
180
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Designing for Timeless Needs
cassininazir
1
270
How to Think Like a Performance Engineer
csswizardry
28
2.7k
A designer walks into a library…
pauljervisheath
211
24k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
First, design no harm
axbom
PRO
2
1.2k
Design in an AI World
tapps
1
260
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
660
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
What's in a price? How to price your products and services
michaelherold
247
13k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
440
Transcript
BitcoinのDouble Spend 2017年9月9日 東海道らぐLT大会@OSC Tokyo Fall 小渕 周(Shu Kobuchi)
自己紹介 なまえ:小渕 周(こぶち しゅう) 最終学歴:ブロックチェーン大学校 エンジニアブロンズコース 写真はEthereum発明者 Vitalik Buterin
Bitcoinとは • 全取引履歴をノードが持つP2P型通貨 • Bitcoin公式ノード(Bitcoin Core)はOSS • Bitcoinのデーモンはbitcoind • bitcoindをLinuxにインストール(Ubuntu推奨)
• hHps://bitcoin.org/ja/
取引TransacOon(TX)構造 AliceからBobとEdgarに送金する場合 Output OutputIndex:0 Alice → Bob OutputIndex:1 Alice →
Edgar 前のTXID:C CのOutputIndex:0 Carol → Alice Input 前のTXID:D DのOutputIndex:1 Devid → Alice OutputIndex:2 Alice → Alice(お釣り)
BitcoinのTransacOon(TX) • 取引を作成したらP2P網にブロードキャスト • 入力BTC ≧ 出力BTC • 「入力 –
出力」はネットワーク手数料(わずか) • ネットワーク手数料はマイナー報酬に • マイナー報酬 = coinbase(今は12.5BTC) + ネッ トワーク手数料
TX ValidaOon • TXIDとOutputIndexで一意に決まったBTCを秘 密鍵を持ったAliceだけが送金できる • TXをブロードキャストして、転送するときはTX として正しいかをチェック • 「入力≧出力」「正しい形式のアドレスに送
金」など • ValidaOonがTrueでノードのMemoryPoolに一 時保存
TXチェーン チェーンだが、一直線ではなく、網目 TX TX TX TX Coinbase TX TX TX
TX TX TX TX TX TX マイナー報酬(前がない) 後がないのは未使用
ブロックは何のため? • 取引を承認して、マークルルートにまとめて、 ナンスを当てはめてブロックのハッシュ値を計 算する。そのハッシュ値の頭◦桁が全て0に なるまで膨大な電気代をかけて計算する。こ の行為を「マイニング」と呼び、成功すれば、 マイニング報酬がもらえる • 「取引の承認」って何よ?
ブロックは二重支払い防止のため • 二重取引がないのを確認するのが承認 • TXはタイムスタンプを持っていない(P2Pの場 合はノードによって時刻がマチマチ) • 秘密鍵があればどのノードからでも送金がで きる •
別々のノードで同じTXID OutoutIndexを二重 支払いに使ったら?
二重支払いしたとき • 自分のノードのMemory PoolにはTXは一つだ け入り、片方は入らなかったとする(Aが入り、 Bがはじかれる) • ブロックにBが取り込まれると、自分のノード でAはなくなり、BのTXが保存させる •
実際に実験してわかった
日本暗号通貨ユーザ会 • この後、13:00から302教室にてセッション • 「最近の仮想通貨について」 • CONNPASS 暗号通貨読書/勉強会 • hHps://cryptocurrency.connpass.com/
• 次回は9/26(火)19:30- • 会場はLIFULL(最寄駅:東京メトロ半蔵門)