Agenda 1. 目標 2. BC2のBitcoin 3. Bitcoin-cliの体験 4. Bitcoinの概要 2

Similar documents
Agenda Transaction とは インプットとは アウトプットとは インプットとアウトプットの関係 手数料 (fee) とは UTXO(Unspent Transaction Output) とは 2

Lab Nakagawa 2017 Digital Garage. All rights reserved. Redistribution or public display not permitted without written permission from

ビットコインとは ビットコインは仮想通貨 1 円やドルは 国家単位で運営されている通貨ビットコインは世界中で利用できる次世代の通貨を目指したもの 2オンラインゲームや特定のWebサイトでのみ使える仮想通貨は多いビットコインは 円やドルと同じく 広範な経済活動での利用を目指したもの 3 電子マネーは

RPC Lab - Karl-Johan Alm 2017 Digital Garage. All rights reserved. Redistribution or public display not permitted without written permissio

RPC Lab - Karl-Johan Alm 2017 Digital Garage. All rights reserved. Redistribution or public display not permitted without written permissio

村田智英(むらた ともひで) 主にWEB系のバックエンドのエンジニアです 好きなもの: D言語, perl, emacs, fedora 嫌いなもの: PHP, Ora

Microsoft PowerPoint ppt

このセッションについて RPC アプリの作成 : 注意点とベストプラクティス ( 前半 ) RPC のコードを触ろう RPC アプリの作成 : 注意点とベストプラクティス ( 後半 ) 2

分散台帳技術におけるインテグリティとプライバシー保護に関する考察

BitcoinでCTF Bitcoin based CTF

PowerPoint プレゼンテーション

仮想通貨の基礎知識 基礎用語 取引所 口座 ( ウォレット ) トランザクション 承認 (confirm) ビットコイン アルトコイン ブロックチェーン ハードフォーク / ソフトフォーク マイニング ( クラウドマイニング )/ マイナー カウンターパーティーリスク ICO ホワイトペーパー

ブロックチェーンで変わる 情報・産業・組織

ブロックチェーン技術入門 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 初版 1 刷発行当時のものです.

仮想通貨の基礎知識

資料概要 分散型仮想通貨の構造 ウォレットの種類と保管 ブロックチェーン エコノミー 仮想通貨の位置づけ 1

ブロックチェーンで変わる 情報・産業・組織

目次 No. 内容 メニュー名 ページ番号 事前準備 IEバージョン情報確認 互換表示設定 (IE9 IE0 IEの場合 ) 信頼済みサイトへの登録 (IE0 IEの場合 ) 4 受注データを (IE0 IEの場合 ) 6 5 リストを出力する為の設定 (IE0 IEの場合 ) 7 6 ( その)(

TaoTao 株式会社 2019 年 3 月 4 日 取り扱い仮想通貨概要書 仮想通貨の名称ビットコイン取引所内取扱最小単位 ( 現物 )0.001BTC ( レバレッジ )0.01BTC 仮想通貨ティカーコード BTC, XBT 取引所内最小刻み幅 1 円当該仮想通貨の 総発行数量 17,569,

- 2 Copyright (C) All Rights Reserved.

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

ex04_2012.ppt

取扱い仮想通貨の概要 仮想通貨の名称 Bitcoin 仮想通貨の単位 BTC 売買市場の有無 国内外の取引所で扱われている 記録されている財産的価値 ブロックチェーン 発行方法 発行者は存在せず マイニング作業に成功したマイナー( マイニング作業をする人 ) に報酬として新規発

目次 No. 内容 メニュー名 ページ番号 事前準備 IEバージョン情報確認 互換表示設定 (IE9 IE0 IEの場合 ) (IE0 IEの場合 ) 4 受注データを (IE0 IEの場合 ) 6 5 ( その)(IE0 IEの場合 ) 7 6 ( その)(IE0 IEの場合 ) 8 7 (IE9

1. < 商品検索 > 1-1. 商品を検索する 商品の検索はヘッダーにある検索欄でできます 初期状態では 全検索ができます 検索欄に任意の検索キーワードを入力することで検索できます 複数キーワードを指定する場合は空白で続けます 全検索 全検索では検索キーワードが書誌名 曲名 コメント

平成30年度 パソコン・ネットワークの設定について

スライド 1

HashFlare( 仮想通貨をマイニングしよう ) 登録はココから ハッシュフレア ハッシュフレアはハッシュコインズという暗号通貨採掘のエキスパート集団が立ち上げたクラウドマイニングサービスです このハッシュコインズはビットコインネットワークの立ち上げにも携わった 言わば暗号通貨のプロ中のプロ!

プレゼンテーション1

第1章 業務共通

メール設定方法 メール (Windows10) 設定 Outlook 2016 設定 Outlook 2013 設定 Thunderbirdメール設定 Mail 6.x (Mac OS X 10.8) 設定トラブルシューティング 訪問設定サポート [ 初回無料 ( 一部有料 )] もございます 詳し

発行者 なし リスク 価値変動リスク需給バランスや相場状況の変化により 急激に変動する可能性があるほか 価値がゼロになる可能性がある サイバー攻撃のリスク国内の大手交換所がハッキングの攻撃を受けて 不正にビットコインを盗み取られた事例がある 香港の取引所で大量のビットコインが不正に出金された事例があ

目次 はじめに 1サーバ作成 2 初期設定 3 利用スタート 付録 Page.2

第5回 マインクラフト・プログラミング入門

第1章 業務共通

R80.10_FireWall_Config_Guide_Rev1

Cyva ~サイバ~

SimLab Plugins for SketchUp 評価版インストールおよびアクティベート方法 注意事項 評価版をお使い頂くには 評価用ライセンスでのアクティベートが必要です 評価用ライセンスファイルの取得を行い 手動でアクティベートする必要があります 各 SimLab プラグインは 評価用とし

<4D F736F F F696E74202D F82ED82A982DD82B889EF5F D E B839382D682CC975582A25F8CF68A4A94C52E B93C782DD8EE682E890EA97705D>

SQL インジェクションの脆弱性

操作ガイド(本体操作編)

2. FileZilla のインストール 2.1. ダウンロード 次の URL に接続し 最新版の FileZilla をダウンロードします URL: なお バージョンが異なるとファイル名が

Our Vision moldcoin

Microsoft PowerPoint - DNSSECとは.ppt

Shareresearchオンラインマニュアル

指定立替納付を使った場合の 国内提出書類の提出方法 1 出願書類や 納付書などを 指定立替納付で支払う場合の手順をご案内します ここでは ひな型を Word で編集する場合の手順を案内します 他を利用する場合は ユーザガイドをご覧ください (1) 指定立替納付を使うための事前準備 a. クレジットカ

目次 1. 会員登録 推奨動作環境 サイト閲覧環境 シミュレーション動作環境 各種設定について メールアドレスおよびニックネームの登録 個人情報の取り扱い

IIJ GIOリモートアクセスサービス Windows 7 設定ガイド

タイトル情報サーチ 目次 取扱説明書 Version 1.10 タイトル情報サーチの概要 必要なもの インストール 注意事項 音楽 CD のタイトル情報取得の手順 1 USB への記録 2 USB の接続 3 Gracenote データベースへのアクセス 4 USB への保存 5 NissanCon

1. WebShare(HTML5 版 ) 編 1.1. ログイン / ログアウト ログイン 1 WebShare の URL にアクセスします xxxxx 部分は会社様によって異なります xxxxx 2 ユーザー名 パ

秘密鍵ファイルを格納しているフォルダや秘密鍵ファイル自体に、該当ユーザアカウントのフルコントロールアクセス権が設定されているかどうかの確認方法および設定方法について

WLX302 取扱説明書

Microsoft PowerPoint ï½žéł»å�’å–¥æœ�ㇷㇹㅃㅀ㇤ㅳㇹㅋㅼㅫ曉逃.ppt [äº™æ‘łã…¢ã…¼ã…›]

Microsoft Word - V70MAX-Vista_XP.doc

IIJ GIOリモートアクセスサービス Windows 10 設定ガイド

目次 5. よくある質問とその答え 会員登録関連 質問 会員登録をしましたが 認証 E メールが届きません 質問 退会したいのですが ログイン関連 質問 正しいメールアドレスやパスワードを入力しても

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

Real4Dumps Real4dumps - Real Exam Dumps for IT Certification Exams

■POP3の廃止について

お持ち帰りいただきたいモノ Internet Identity の進化 Self-Sovereign IDentity とその位置付け SSID を支える技術としてのブロックチェーン 応用例としての Sovrin ユースケース Copyright (c) NPO 日本ネットワーク

Notes and Points for TMPR454 Flash memory

PowerPoint プレゼンテーション

How_to_use_integritycheck

クライアント証明書インストールマニュアル

発行者 その他の事項 リスク 価値変動リスク需給バランスや相場状況の変化により 急激に変動する可能性があるほか 価値がゼロになる可能性がある サイバー攻撃のリスク国内の大手交換所がハッキングの攻撃を受けて 不正にビットコインを盗み取られた事例がある 香港の取引所て 大量のビットコインが不正に出金され

Microsoft Word - (修正)Internet Explorer 8 9設定手順 受注者.DOC

基本操作ガイド

操作ガイド(本体操作編)

Microsoft PowerPoint - メールソフト設定方法マニュアル_ver.1.5.ppt

日本バドミントン協会

組合会計システム ( 基本システム ) インストールマニュアル 1 目次 第 1 章インストール手順 インストーラーの起動... 2 第 2 章ユーザ登録及びライセンスの申請 ユーザ登録 ライセンス番号発行 ライセンス番号

SILAND.JP テンプレート集

ユーザーズガイド Brother Meter Read Tool JPN Version 0

Microsoft PowerPoint - JP_Order guide_MAC address_revise_Jan2016.pptx

2. Activity-Based Micro-Pricing 2.1 Activity-Based Micro-Pricing Activity-Based Micro-Pricing Activity- Based Micro-Pricing Activity-Based Micro-Prici

Mozilla Thunderbird アカウント設定手順 株式会社アマダアイリンクサービス

<4D F736F F D CC82BD82DF82CC50438AC28BAB90DD92E82E646F63>

 

情報システム運用・管理規程

目次 はじめに ますます増える仮想通貨 ブロックとブロックチェーン ハッシュ関数 ビットコインの取引 ( トランザクション ) ビットコインアドレスと署名 マイニング マイニング

情報処理概論(第二日目)

<< 目次 >> 1 PDF コンバータのインストール ライセンスコードの入力 PDF にフォントを埋め込みたい場合の設定 PDF オートコンバータ EX で使用しない場合 PDF コンバータ単体で使用する場合の説明 PDF コンバータのアン

1. 作業フロー 公開鍵 / 秘密鍵の生成 スパコンゲートウェイノードへの ログイン時に使用する鍵の作成 公開鍵の設置 スパコンゲートウェイノードへの ログイン時に使用する公開鍵をスパコンに登録 SSH 接続確認 スパコンゲートウェイノード / インタラクティブノードへのログイン 初期パスワードの変

1. WebShare 編 1.1. ログイン / ログアウト ログイン 1 WebShare の URL にアクセスします xxxxx 部分は会社様によって異なります xxxxx. 2 ログイン名 パスワードを入力し

ビットコイン・ブロックチェーンの資金貸借市場への応用可能性

JPNICプライマリルート認証局の電子証明書の入手と確認の手順

SimLabプラグインは各機能を15回分評価版として試用できます

.1 準備作業の流れ 準備作業の流れは 以下のとおりです 必要なものを用意する. パソコンインターネット接続回線 E メールアドレス.-(1).-().-(3) 当金庫からの送付物.-(4) パソコンの設定をする.3 Cookie の設定を行う.3-(1) Java の設定を有効にする ( ファイル

I N D E X リダイレクト画面投稿手順 リダイレクト画面投稿手順 2 1 管理画面にログイン 2 右上の + 追加 を押す メールサービスのご利用について 4 メールソフト設定方法 ご利用のバージョンにより 画面や設定項目が異なる場

BizBrowser SmartDevice Android開発用スタートアップガイド

他の章は下記をクリックして PDF 一覧からお入り下さい IT ライブラリー (pdf 100 冊 ) 目次番号 270 番 Windows Server Enterprise 2008 R2 完全解説 ( 再入門 )

第5回 マインクラフト・プログラミング入門

相続支払い対策ポイント

150423HC相続資産圧縮対策のポイント

現象

<4D F736F F D E30318C8E90A792E85F838F E F815B836882B D836A B2E646F6378>

ハピタス のコピー.pages

Copyright 2008 All Rights Reserved 2

INS メイト V30Slim を Windows Vista がプレインストールされたパソコンでご使用になるお客様へ < ご案内 > 2007 年 4 月 このたびは INS メイト V30Slim をお買い求めいただき 誠にありがとうございます 本紙は INS メイト V30Slim を Win

学内印刷システム 個人所有 PC の印刷設定マニュアル (Windows 版 ) 2016 年 3 月 対象 OS:Windows Vista (32/64bit 日本語版 ) 駒澤大学総合情報センター

Transcription:

Bitcoin の基本と体験 @ DG Lab - Anditto Heristyo 2017 Digital Garage. All rights reserved. Redistribution or public display not permitted without written permission from Digital Garage.

Agenda 1. 目標 2. BC2のBitcoin 3. Bitcoin-cliの体験 4. Bitcoinの概要 2

このセッションの目標 3

目標 1. Bitcoin-cli の体験 2. Bitcoin 全般の話 全般的な話ですので 今は全部わからなくても大丈夫です 4

事前チェック - ソースコードはダウンロードしましたか? - ちゃんとコンパイル出来ましたか? - まだ問題がある方は はやめに声をかけてください 完了しなかったら続けないよ 本当に困っている人はスタッフに声をかけてください 5

BC2 の Bitcoin バージョン 6

ワークショップで使う Bitcoin https://www.github.com/dgarage/bc2 - Bitcoin Core のフォークです - 中身はほぼ同じですが 7

BC 2 バージョン BitcoinのP2Pネットワーク プライベートネットワーク マジックナンバーが異なる マイニングは難しい 簡単に設定した (10 分ごとに生成する ) 1 分にする アドレスの頭は 1 または 3 B または C になる 8

BC 2 と Bitcoin Core Bitcoin Core ネットワーク BC 2 全く別のネットワーク 9

注意点 操作は本物の bitcoind および bitcoin-cli と全く同じです 両方持っている人は間違わないように ご注意をお願いします 10

早速始めましょう! まず ターミナルを開いて bitcoind を実行します $ cd ~/bc2/src $./bitcoind -printtoconsole あるいは : $./bitcoind -daemon 11

最初の出力 - ウォレット ( 秘密鍵 ) の作成 - ネットワークに繋ぐ - ブロック情報の更新 12

確認 別のウインドウで : $./bitcoin-cli getblockchaininfo 13

(BC 2 )Bitcoin をゲットしましょう! アドレスを作成します : $./bitcoin-cli getnewaddress 14

Bitcoin をゲットしましょう! 出力されたアドレスはここに入力してください : http://172.16.120.201:8888/faucet.html 出力された TxID をどこかに保存してください 残高のチェック : $./bitcoin-cli getbalance 何が出ましたか? 15

Mempool トランザクション (Tx) が有効であれば Mempool に入れます そして ノードに送信します $./bitcoin-cli getrawmempool 16

マイニングします $./bitcoin-cli generate 1 ( マイニングは後ほど説明します ) $./bitcoin-cli generate 1 50000000 もう一度やってみると : $./bitcoin-cli getbalance 17

BTC を送ってみよう もう一度アドレスを作成して グループ内の人にアドレスを聞いて 送ってみてください 一番シンプルなやり方 : $./bitcoin-cli sendtoaddress < アドレス > < 金額 > 18

ブロックチェーン エクスプローラ BC 2 は : http://explorer.bc-2.jp Bitcoin は : 検索すれば色々と見つかります 19

データの信用性 結局自分のデータしか信用できません でも 他の人に頼らなくて 自分のデータがあるからこそ分散台帳技術 (Distributed Ledger Technology ) には価値があります 20

bitcoin-cli のコマンド $./bitcoin-cli help $./bitcoin-cli help < コマンド > https://en.bitcoin.it/wiki/original_bitcoin_client/api_calls_list 注意点 : ウォレットの account 系のコマンドはバグっています 21

Bitcoin の概要 22

3 つのネットワーク 23

Bitcoin のネットワーク Peer-to-Peer (P2P) Icon by Creative Stall From Noun Project 24

3 つのネットワーク 1. Mainnet - メインネットワーク $ bitcoin-cli < コマンド > 注意点 Mainnet はリアルなお金なので 気をつけてください 25

3 つのネットワーク 2. Testnet - テストネットワーク $ bitcoin-cli -testnet < コマンド > - 機能などは Mainnet とほぼ同じ - マイニングの難しさは低く設定されている - BTC は価値が無い ( だから価値がある ) - よく壊れている 26

3 つのネットワーク 3. Regtest - Regression Test 用のネットワーク $ bitcoin-cli -regtest < コマンド > - 自分のローカル環境のみ - 自分でマイニングしないといけない 27

ブロックチェーンの中身 28

ブロックチェーン ブロック 44121 ブロック 44122 ブロック 44123 もっと詳しく見よう 29

ブロックの中身 マジックナンバー 4 bytes ブロックサイズ 4 bytes ブロックヘッダー 80 bytes トランザクションの数 1-9 bytes 全トランザクションのデータ もっと詳しく見よう $./bitcoin-cli getbestblockhash $./bitcoin-cli getblock 30

ブロックのヘッダー hashprevblock hashmerkleroot Bits Nonce バージョン 4 bytes 前ブロックヘッダーの 256-bit ハッシュ 32 bytes トランザクションデータの MerkleRoot 32 bytes タイムスタンプ 4 bytes ターゲット ( 難しさ ) 4 bytes 32-bit の数値 4 bytes $./bitcoin-cli getbestblockhash $./bitcoin-cli getblockheader 31

Merkle Root https://ja.wikipedia.org/wiki/ ハッシュ木 Tx 1 Tx 2 Tx 3 Tx 4 32

マイニング 33

マイニング Bitcoin Core の場合 自分の Regtest ネットワークであれば 先ほどと同じく : $./bitcoin-cli -regtest generate 1 34

ASIC マイニング Application Specific Integrated Circuit Bitcoin( あるいは他のコイン ) のためだけの IC 例えば Antminer S9 は 14TH/s 一方 現在私たちのネットワークは : $./bitcoin-cli getmininginfo Antminer S9 https://www.bitmain.com/ 35

マイニング ( 実際は ) 一番大きなマイナー Antpool 2015 年 2 月の記事 http://qntra.net/2015/02/inside-the-bitcoin-mine-of-antpool-bw-com/ 36

マイニングのインセンティブ リソースを大量に使ってまで何故マイニングするのでしょう? 1. Block Reward( 報酬 ) a. 現在は12.5 BTC b. CoinbaseのTxになる (TxInが無い) 2. Transaction Fee ( 手数料 ) a. ブロック全 Txのデータから集める b. Block Reward は4 年毎に半減し2140 年頃ゼロになる 37

マイニングプール 基本的に : 参加者のプロセッシングパワーを合わせて 目指すハッシュ値が出る確率を高め マイニングで獲得した報酬や手数料を分配します 仕組みはマイニングプール毎に様々なので ここでは説明しません 38

Proof of Work 39

Proof of Work(PoW) ブロックのハッシュ < ターゲット 例えば : 0x0000000000000000029d053e0ebe6a40db0fb47c5b24e30dbd751f0d767cfcda < 0x00000000FFFF0000000000000000000000000000000000000000000000000000 40

もっと説明すると 1. 出力したハッシュの値は完全ランダム 2. 1 番目のビットが 0 である確率は1/2 3. 2 番目のビットも 0 である確率は更に1/2( つまり1/4) 4.... 考え方 : コインを投げ続けて 何回も勝ち続けている 0x0000000000000000029d053e0... 41

Proof of Work(PoW) $./bitcoin-cli getdifficulty $./bitcoin-cli getblockchaininfo difficulty = 最大のターゲット / 現在のターゲット https://en.bitcoin.it/wiki/difficulty あるいは : $./bitcoin-cli getblocktemplate $./bitcoin-cli convertcompact <bits> #BC2 のみ 42

Proof of Work(PoW) - Hashcash (Adam Back, 1997) (https://en.wikipedia.org/wiki/hashcash) - BTC Mainnet :1 ブロック 10 分ぐらい - 2016 ブロックごとに再計算 (2 週間分 ) - BC 2 : 1 ブロック 1 分ぐらい - 60 ブロックごとに再計算 (1 時間分 ) 43

Proof of Work(PoW) ブロックのデータを作成 ハッシュ 結果はターゲット範囲ですか? Nonce++ はい ブロックを完成して 送信する 44

Proof of Work(PoW) ブロックのデータを作成 ハッシュ 結果はターゲット範囲ですか? Nonce++ 32-bit Nonce が限界になったら? ( よくあること ) ExtraNonce( 時間 ++) 未来時間は 2 時間まで許されている MerkleRoot の一番左の Tx を変更 (Coinbase Tx) はい ブロックを完成して 送信する 45

トランザクション (Tx) 46

トランザクションの中身 前の Tx TxIn 0 TxIn 1... バージョン 4 bytes TxIn の数 1-9 bytes TxIn 0 TxIn 1... TxOut の数 1-9 bytes TxOut 0 TxOut 1... ロックタイム 4 bytes 午後のセッションで詳しく見ましょう TxOut 0 TxOut 1... 47

TxIn の中身 前の Tx のハッシュ 32 bytes その Tx の TxOut のインデックス 4 bytes TxIn- スクリプトの長さ 1-9 bytes scriptsig TxIn- スクリプト シーケンス番号 (0xFFFFFFFF) 4 bytes scriptsig Unlocking Script 48

TxOut の中身 バリュー 8 bytes TxOut- スクリプトの長さ 1-9 bytes scriptpubkey ロックのスクリプト scriptpubkey Locking Script 49

UTXO Unspent Transaction Output まだ使われてない / 他のTxInとして使えるTxOut ネットワーク全体のUTXO 情報 : $./bitcoin-cli gettxoutsetinfo 50

手数料 (Transaction Fee) Tx 1A1AAA... 1 BTC Tx 1B2BBB... 0.99998 BTC 余り / 手数料 0.00002 BTC 任意の値ですが 手数料を高く設定する理由は : 1. Txのサイズが大きい 2. 早めにブロックに入れて欲しい 51

トランザクションの流れ 1. Txの作成 2. Verify 3. ノードに送信する 4. 他のノードもVerifyする 5. Mempoolに入る 6. ノードの中にマイナーがいたらブロック作成時に組み入れる 7. ブロック作成が成功したら ブロックチェーンに入る (confirmation=1) 8. その後ブロックが積み重なっていくとconfirmationの回数も上がる 52

ブロックチェーン Block 44121 Block 44122 Block 44123 Tx Tx Tx Tx ブロックと Tx の連鎖であり ブロックとブロックの連鎖である 53

コンセンサス 54

コンセンサス 複数の意味があります : - プロトコル? - デベロッパー? 基本的に : 皆が持っているブロックを同じにするためのルール 55

考え方 望ましい ( 正しい ) 行動のほうがインセンティブが高い 例 : Tx をわざと却下するより OKを出したほうが儲かる Tx 送信 マイナー A マイナー B Fee をもらう 56

考え方 例 : マイナーはブロックを却下するより 一番長い連鎖を作った方が儲かる マイナー A マイナー C マイナー B 57

コンセンサス - どのチェーンが一番正しい? - どういうブロックが有効 ( あるいは無効 )? - どのトランザクションが有効 ( あるいは無効 )? 2 日目にデモがあります! 58

アドレス 59

Bitcoin アドレス Mainnet の場合は現在 : - P2PKH (Pay to Public Key Hash) - P2SH (Pay to Script Hash) 60

Bitcoin アドレスの基本的な作り方 Private Key (ECDSA) Public Key RIPEMD160( SHA256( Key ) ) SHA256( SHA256( X ) ) バージョン + 160-bitデータ Checksum Main: 1 Test: m/n 0 160-bitデータ 4-byteデータ Base58 Encode 最初の 4-byte 1 アドレス 61

注意点 アドレスを使うのは 1 回のみ!(Address Re-use) 先ほども毎回 getnewaddress をやるべき 問題 : 匿名性 セキュリティ... 62

Address Re-use 問題 例 : 1. あなたのウォレットの残高はバレています 2. あなたの全てのTxがバレています 3. 自分が今はOKでも 次のTxを持ってる人は違うかも 別のセッションで もっと詳しく説明します 63

よくある間違い - アドレスは 口座 ではありません - アドレスにある金額は残高ではありません Tx 1A1AAA... 1 BTC Tx 1B2BBB... 0.5 BTC 残高 :0.5 BTC 1C3CCC... 0.5 BTC 64

UTXO モデル Tx1 Tx2 Tx3... 自分のウォレット ネットワークの UTXO Set 65

なぜ UTXO モデル? 1. アカウンティング a. 通知 b. インプットとアウトプットの管理 2. セキュリティ a. ダブルスペンド攻撃の防止 b. プライバシー 3. スケーラビリティなど アカウントモデルとは別のパラダイム 66

ウォレット 67

ウォレット Bitcoin はオープンなシステムなので 鍵の管理システムは一番重要なセキュリティのポイント 注意 自分で鍵を管理していないことは自分のお金では無いのと同じです 68

よくあるパターン ユーザがエクスチェンジ ( 交換所 ) で円から BTC に交換した後 秘密鍵をそのまま同じサービスに放置する Exchange Service BTC 1 つの解決方法 : 交換後に自分のウォレットに移動する 今までの大きな事件 :MtGox Bitfinex など 69

自分の Bitcoind のウォレットの場合 - 環境にウイルス Malware キーロガーなどが無いことを確認する - ハードディスクを暗号化する - ウォレットの暗号化 : - $./bitcoin-cli encryptwallet PASSPHRASE - $./bitcoin-cli walletpassphrase PASSPHRASE TIMEOUT カリキュラムの都合上 BC2 ではウォレットの暗号化は 行わないでください 70

HD (Hierarchical Deterministic) ウォレット BIP 32 71

ハードウェア ウォレット https://www.ledgerwallet.com/ https://trezor.io/ 72

ハードウェア ウォレット メリット : 1. 秘密鍵をハードウェア外に持ち出せない 2. HDウォレットなので ハードウェアを無くしてもウォレットを再 現することが出来る 3. Plausible Deniability / 犠牲ウォレット (Ledgerのみ) 73

anditto@dglab.com github.com/anditto 74