advertisement

Bitcoin 3

67 %
33 %
advertisement
Information about Bitcoin 3
Technology

Published on February 28, 2014

Author: 11ro_yamasaki

Source: slideshare.net

Description

Bitcoin の仕組みの説明とビットコインへの攻撃および対処方法
advertisement

bitcoin 勉強会3 近畿大学 山崎重一郎

ビットコイン 一反もめん説 国立情報学研究所 岡田仁志先生より 杉浦日向子著 百物語より抜粋 注)この絵に描かれ ている物語では一反 もめんではなく狢の しわざの一つです

杉浦日向子著 百物語より抜粋   見える人にだけ見える 大福帳 大福帳を管理する 銀行みたいなものは ない

杉浦日向子著 百物語より抜粋   A 送金者 B 受領者 AがBに50BTC 支払った 取引の記録

杉浦日向子著 百物語より抜粋   送金者が 取引の記録 を放送 A 送金者 B 受領者 放送は実際 はリレーで実 行

杉浦日向子著 百物語より抜粋   マイナーが 計算競争 A 送金者 B 受領者

杉浦日向子著 百物語より抜粋   勝利したマイナーが 取引記録を大福帳= ブロックに書き込み 報酬獲得 25BTC ブロック 取引記録 A 送金者 B 受領者

杉浦日向子著 百物語より抜粋   全員で取引記録を 承認 記録 ミトドケター ミトドケター ミトドケター ミトドケター ブロック 取引記録 ミトドケター A 送金者 B 受領者 ミトドケター この時点で決済が完了 決済に全員が関与

杉浦日向子著 百物語より抜粋   全員で取引記録を 保存 記録 A 送金者 B 受領者 一反もめん=大福帳 はP2P型分散ファイル システム 銀行はない ブロック 取引記録

ビザンティン将軍問題 p 裏切り者がいるネットワークで合意する 多数決をとりたいが、失敗させられてしまう    和睦 攻撃 攻撃 攻撃 攻撃 和睦 裏切り者 裏切り者 裏切り者

古典的解:情報交換を繰り返し、認知レベルを上げる 第1段階、相互の意見の交換 第2段階、自分が知った他の将軍たちの意見(意見ベクトル)の交換 第3段階、...(意見ベクトルのベクトル)の交換    和睦 攻撃 攻撃 攻撃 攻撃 裏切り者 裏切り者 裏切り者 1/3以上裏切り者がいると解が無い 和睦

サトシ・ナカモトの解 ネット上の計算資源の総量が有限 「攻撃」チーム VS 「和睦」チーム 計算競争をして勝った方の意見を採用!→ 人間の欲望を利用    和睦 攻撃 攻撃 攻撃 裏切り者 裏切り者 裏切り者 何回戦かすると たまたま少数派が勝つ確率は 極小になる 和睦 マイニング 攻撃

プルーフ・オブ・ワークと 計算難易度の調整 p 難しい計算をした証拠 ハッシュキャッシュという暗号学的に無意味な計算 p 2016ブロックの計算ごとに難易度を調整 2016☓10分=2週間 計算完了が2週間より早ければ→難しくする 計算完了が2週間より遅ければ→簡単にする

難易度の変遷 ビットコイン ライトコイン

取引記録の構造 input (25 生成) output (お釣 15) output (10) input (10) output (14) input (15) output (お釣 5) output (10) input (10) output (お釣 5) ビットコインアドレス ビットコインアドレス ビットコインアドレス ハッシュで結合 ハッシュで結合 取引記録 取引記録 取引記録 inputの和と outputの和の 差額は手数料 になる

取引記録のデータ構造 Input: インプット Previous tx: f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6 Index: 0 scriptSig: 電子署名と公開鍵 304502206e21798a42fae0e854281abd38bacd1aeed3ee3738d9e1446618c4571d10 90db022100e2ac980643b0b82c0e88ffdfec6b64e3e6ba35e7ba5fdd7d5d6cc8d25c6b 241501 Output: アウトプット Value: 5000000000 支払い金額(単位はsatoshi = 1億分の1BTC) scriptPubKey: OP_DUP OP_HASH160 404371705fa9bd789a2fcd52d2c580b65d35549d OP_EQUALVERIFY OP_CHECKSIG ← 検証スクリプト

取引記録のデータ構造 p インプット 直前の取引のハッシュ値:直前の取引とのリンクをつくる インデックス:     直前の取引のアウトプットの識別 p 電子署名と公開鍵 公開鍵:この取引による送金者の公開鍵 電子署名:この取引記録を単純化形式へのハッシュへの署名 p アウトプット バリュー:支払い金額 scriptPubKey:検証スクリプトの後半部分

検証すること input (25 生成) output (お釣 15) output (10) input (10) output (14) input (15) output (お釣 5) output (10) input (10) output (お釣 5) 取引記録1 取引記録2 取引記録3 取引記録1 のハッシュ値 が格納 取引記録2 のハッシュ値 が格納

検証とスクリプト p  検証すること 各インプットがそれぞれアウトプットの対応 ハッシュの一致、電子署名の正しさ p  BitcoinはForth言語的スクリプト言語が利用可能 p  インプットを直前のアウトプットの連続性の検証 p  各インプットが参照している直前のアウトプットを 検証する

bitcoinへの攻撃方法 p  Transaction malleability(Dos攻撃) 署名可塑性、スクリプト可塑性   Mt.Goxへの攻撃? p  51%攻撃(コインの多重使用) マイニングプールの50%以上を支配できる場合の攻撃 p  Race攻撃(コインの多重使用) 店は10分待たないという前提。送金者が、同一のコインで、代金支払と 自分自身への送金の二つを同時に放送する。 p  Finny攻撃(コインの多重使用) 店は10分待たないという前提。マイナー自身が支払者で、こっそり自分 への支払い取引をブロックに入れる p  ベクター76攻撃(コインの多重使用) Race攻撃とFinny攻撃の組み合わせ

電子署名やハッシュ計算の大前提 p  ハッシュ関数 乱数を発生する関数 入力が同一なら、対応する出力も同一 しかし、入力が1ビットでも違うと、出力は全く違う p  要件 署名対象は、通信過程で1ビットも変更されてはならない 経由するマシン、OS、プロトコルなどに依存しない p  実現技術 ASN.1:抽象構文 DER: エンコード方法 (型、長さ、値)

Transaction malleability 署名展性、スクリプト展性 A 送金者 B 受領者 「放送」の中継者が 取引記録を少し修正する 中継者 中継者 中継者 マイナー 取引の記録 中継者

署名展性 p  電子署名検証は成功状態のまま取引データを改ざんする方法 ecdsaの署名= (r,s)  という整数の組 しかし、    (r,-s (mod n))  でも署名検証は成功する p  その結果 取引のハッシュが違うので、ブロックに組み込まれ、承認されると 正統な取引の連鎖が途絶え、そのコインがそれ以降使えなくなる

スクリプト展性 p 取引には Forth言語に似たスクリプト 言語が記述されている p スクリプト部分は署名対象の外部 p スクリプトを変更できてしまう

典型的対処方法 p  悪意のリレーノードを見つけるのは容易 (r,-s (mod n)) を出してきたノード見つければいい p  接続する相手を選ぶ 交換所のような有名な送金者ノードは、中継ノードをなくし て、直接信頼できる有力なマイナーと接続すればよい

opensslのECDSA署名を試す ビットコインの電子署名は、ECDSA Secp256k1 を利用しています。 ■openssl version 1.0.1e以上を使う ●プライベート鍵の生成(ランダムに生成されます) openssl ecparam -genkey -name secp256k1 -out privkey.pem ●プライベート鍵から公開鍵の生成 openssl ec -in privkey.pem -pubout -out pubkey.pem ■Ruby opensslを利用 (require 'openssl') ●ECDSA署名 skey = OpenSSL::PKey::EC.new(File.read('./privkey.pem')) hash = OpenSSL::Digest::SHA256.digest('abc12345') sign = skey.dsa_sign_asn1(hash) ●ECDSAの署名検証 pkey = OpenSSL::PKey::EC.new(File.read('./pubkey.pem')) pkey.dsa_verify_asn1(hash, sign)

Bitcoinの匿名性について p  anonymityとpseudonymity 匿名(意図的)と仮名(ID切り離し)で明確に区別される p  ビットコインアドレスは仮名 全ての取引記録が、ビットコインアドレスで追跡可能 例:Mt.Goxのビットコインアドレスに匿名性は無い p  ビットコインを匿名化するサービスも存在する ミクシングサービスを経由させると追跡が難しくなる

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Bitcoins kaufen, Bitcoin Kurs bei Bitcoin.de!

Bitcoin.de ist Deutschlands erster und größter Handelsplatz für die digitale Währung Bitcoin.
Read more

Bitcoin – Wikipedia

Das Bitcoin-Netzwerk entstand am 3. Januar 2009 mit der Schöpfung der ersten 50 Bitcoins. Einige Tage später wurde unter dem Pseudonym „Satoshi ...
Read more

Bitcoin - Open Source P2P Geld

Bitcoin ist Open-Source; das Design ist öffentlich, Bitcoin gehört niemandem und wird von niemandem kontrolliert. Jeder kann teilhaben.
Read more

Bitcoin.com

Buy Bitcoin, Create Bitcoin Wallets, Read Bitcoin News, and more, at Bitcoin.com
Read more

Bitcoin - Open source P2P money

Bitcoin is an innovative payment network and a new kind of money. Find all you need to know and get started with Bitcoin on bitcoin.org.
Read more

Bitcoin Kurs | BTC-EUR | Wechselkurs | aktueller Preis ...

Bitcoin-Euro-Kurs: Aktueller Bitcoin-Euro-Kurs heute BTC/EUR mit Chart, historischen Kursen und Nachrichten. Wechselkurs Bitcoin Euro
Read more

CoinForum.de - das Forum für Bitcoin und andere virtuelle ...

Das Forum für Bitcoin und andere virtuelle Währungen. Inhalte aufrufen ... 3.063 Antworten; Mit Electrum 2.7.9 eine Col... Von Axiom0815 20 Okt 2016; Mining.
Read more

Bitcoin Forum - Index

The main Bitcoin discussion forum, includes subforums for technical support, mining, development and economics.
Read more

Umrechnung Bitcoin (BTC) und Euro (EUR): Wechselkurs Rechner

Rechner, um Geld in Bitcoin (BTC) nach und von Euro (EUR) , unter Verwendung aktueller Wechselkurse, umzuwandeln.
Read more

Bitcoin Euro (BTC EUR) Währungsrechner - Investing.com

BTC/EUR - Bitcoin Euro BTC-e Symbol Börsenplatz Währung : BTC/EUR: BTC-e: EUR: ... 3.074,55 +18,61 +0,61% : US Dollar Index: 98,28 +0,41 +0,42% : Euro ...
Read more