Bitcoin Coreについて

Nayutaの広報、Hitomiです!

今回は、Bitcoin Core を紹介します。Bitcoin Coreは、ビットコインの公式クライアントソフトウェアのことです。このソフトウェアにウォレット機能が含まれているため、前回の記事に続き、ウォレット紹介の一部として取り上げます。
 
この記事では、Bitcoin Core の特筆すべき特徴を、ウォレットを実際に操作したときの画像も交えながら説明していきます。使い方などは、他の方がきれいにまとめている記事があると思うので、そちらを参考にしてください。


 
000

出典元:Bitcoin Core 公式ホームページ

概要
Bitcoin Coreは、ビットコインの公式クライアントソフトウェアです。Bitcoin Coreをコンピュータにインストールすると、全てのブロックチェーンの情報をダウンロードします。ウォレット機能や、マイニング機能も含まれています。無料で使えますし、日本語にも対応しています。

基本情報
URL: https://bitcoin.org/en/bitcoin-core/
Satoshi Nakamotoの論文をもとに、実際にビットコインネットワークをつくるため有志が集まり開発したものです。

Bitcoin Coreを動かす際の最低限の動作要件は、以下の通りです。
・Windows / Mac OS X / Linux の最近のバージョンが動くデスクトップ または ラップトップ
・200GBの空ディスクスペース、最低限100 MB/s のスピードで読み書きできること
・2GBのメモリ(RAM)
・最低限400Kbits(50KB)/s のアップロードスピードがあるブロードバンドインターネット接続
・従量課金制ではない接続、高いアップロード制限のある接続、またはアップロード制限を超過しないことを常にモニターできる接続
・1日6時間以上、Bitcoin Coreのフルノードを動かしておけること

2018年11月2日現在の最新バージョンは0.17.0.1です。

(注意)ビットコインの開発者もまた、Bitcoin Coreと呼ばれることがあります。


 

特徴 

1:ユーザーインターフェースは3つあります。
1つ目は、GUI版です。Bitcoin Coreはアプリケーションの名前ですが、実行ファイル名はBitcoin-Qtといいます。今回は、テストネットのGUI版をWindowsで動かしています。
2つ目は、CLI版です。Bitcoin Core内で動いているプログラムを、Bitcoind(ビットコインプロトコルを実装したプログラマ向けクライアントのこと)と呼びます。
3つ目は、Bitcoin Coreを使った軽量ウォレットです。特定の軽量ウォレットは、そのユーザーのBitcoin Coreのフルノードだけに、つなぐことも出来ます。こうすることで、フルノードの安全性と秘匿性というメリットを、軽量ウォレットも受けることが出来ます。通常、軽量ウォレットはいくつかの不特定なノードにつなぎ情報を得ます。もしこの場合、悪意のあるノードにつないでしまうと、プライベート情報が漏れてしまうなどの危険性があります。

ユーザーインターフェースの詳細はこちらです。

Clipboard04

図1:GUI版

 

2:Bitcoin Coreをインストールしたコンピュータはフルノードとして自動的に機能します。そもそもノードとは、分散型のビットコインネットワークを構成する一員となり、稼働するコンピュータのことを指します。そしてフルノードといった場合、世界で1番最初に生まれたブロック(ジェネシスブロック)~現在のブロックまでの、すべてのブロックチェーン情報をダウンロードし、すべてのトランザクションやブロックの検証を行うコンピュータのことを指します。

膨大な情報がダウンロードされるため、Bitcoin Coreのインストールには長時間かかり(1日かかることも)、大量のストレージが必要になります。
しかし、フルノード同士がもつ情報の正当性を検証しあっているので、他のウォレットクライアントで心配されうる「外部サーバーやネットワーク内の第三者からの情報は、本当に正しいのか」などと心配する必要がありません。

Clipboard02

図2:Bitcoin Core 起動時は毎回ブロックの検証を行う

 

3:完全にオープンソースです。ビットコインネットワーク上でどのような仕様やルールが適用されるのかは、このソフトウェアに依存します。そのリソースは完全に公開されており、誰でも改善案BIP (Bitcoin Improvement Proposal) の提案を自由に行うことが出来ます。提案が反映されるかどうかは、ビットコインネットワーク関係者が参加するメーリングリスト内での議論をもとに決められます。

 

4:自分で資産を完全にコントロールすることができます。誰かが資金を凍結したり、失くすといった心配がありません。その代わり、ウォレットを安全に保つことも、自分の全責任となります。秘密鍵がファイルに保存されるため、そのファイルまたはコンピュータを紛失する・壊すと、パスワードを持っていたとしても、資産を失います。
ウォレットには通常、復元シードというものがあり、端末が壊れても資産を復元することが出来るようになっています。しかし、Bitcoin Coreには復元シードがありません。
コンピュータ自体のウイルス対策や、資産をオフラインの別端末に保管する等の対策をしっかりと行いましょう。ここには、一般に推奨されている対策方法が記載されているのでご参考ください。

Clipboard05

図3:Bitcoin Coreのファイル

 

5:匿名性が高いです。サービスによっては、第三者がユーザーのプラバシー情報を知っている場合がありますが、Bitcoin Coreはそれを出来る限り、少なくしています。また、匿名ネットワークサービスのTorとの互換性もあるので、併用して使うことが出来ます。プライバシーに関する詳細はこちらです。

Clipboard01

図4:Bitcoin Core と他ウォレットのプライバシー比較
(上記リンク先から引用)

Clipboard09

図5:繋がっているノードの情報も見ることができる

 

6:Bitcoin Coreでは、セグウィットネスティド(P2SH)の着金アドレスがデフォルトで生成されます。このアドレスは、メインネットの場合はから、テストネットの場合はからアドレスが始まります。

・セグウィットネイティブ(P2WPKH)を生成する場合は、図6の「Segwitアドレスを生成する」にチェックを入れてください。メインネットはbc、テストネットはtbからアドレスが始まります。
・セグウィットではない普通のアドレス(レガシーアドレスといいます)を生成したい場合は、「ヘルプ(H)」→「デバックウィンドウ(D)」→「コンソール(C)」→「getnewaddress “” legacy」とコマンド入力、してください。メインネットは 1、テストネットは mまたはn からアドレスが始まります。(図7)

Clipboard03

図6:Bitcoin Core 入金画面

Clipboard06

図7:レガシーアドレスが生成された様子

 

7:テストネットだけはなく、レグテスト(regtest)を作ることが出来ます。レグテストとは、自分だけのブロックチェーンを作ることができるシュミレーションのようなものです。マイニングコマンドがあるので、Bitcoinをゲットすることが出来ます。ただし、他のノードと繋がっていない閉じた世界なので、実際にブロックチェーンはダウンロードしません。また、Blockchain Explorer のようなサービスで送金のチェックが出来ません。

Clipboard015

図8:左から、メインネット・テストネット・レグテストのアイコンの色

 

8:RBF(Replace By Fee)を使うことが出来ます。トランザクションが、いつまで経ってもMEMプールに入ったままで承認が行われない場合(未承認トランザクション、0承認トランザクション)、トランザクション手数料を増加して承認されるように新しいトランザクションに置き換えることができる機能です。

また、推奨される手数料は、その時点でのネットワーク状況に依拠してはじき出されるので、タイムリーに承認される額になっています。

Clipboard010

図9:RBFを有効にするチェックがある

 


感想

以前、Electrumウォレットについて記事を書きましたが、同じコンピュータ上のウォレットでも特徴が全く違います。実際に使ってみると、よりよくわかります。Bitcoin Coreは、Electrumに比べるとシンプルではないので多少使いずらいです。しかし、フルノードというメリットを享受したい人にとっては、最適なウォレットではないでしょうか。自分や用途にあったウォレットを使っていきたいですね。

Clipboard011

図10:様々な条件を設定できる画面

Clipboard08

図11:ネットワークに使用したバイト数も見ることが出来る