LoginSignup
4
4

More than 5 years have passed since last update.

electrumをコマンドラインから使う

Last updated at Posted at 2017-12-02

はじめに

この記事は暗号通貨アドベントカレンダー二日目の記事です

一日目にelectrumのサーバー側を書いたのでクライアント側の仕組みを書きます

electrumの仕組み

electrumxから必要なアドレスの情報を持ってきているクライアントサーバーモデルであると前回の記事で書いたが
それを実現するのにいくつか問題がある

  • 信用できるサーバーをちゃんと選べるのか(一応electrumがデフォルトでつなぐサーバーは信用できるホワイトリストを兼ねている)
  • あとから信用できないサーバーにならないか(ハードフォークの更新し忘れていて違うチェーンになっていないか)

秘密鍵や送金情報はelectrumクライアントが持っているので野良サーバーが盗むことはできないが
残高情報などの嘘の情報を教えることはできる

electrumはそれをちゃんと検証する仕組みを持っていてブロックヘッダを取得し、トランザクションが本物であるか検証をしている。
それによって信用できるサーバーと信用できないサーバーを区別している

electrumの知られざる機能(とかあおってみる)

実はelectrumはサーバーとして運用が可能である
bitcoindのコマンドラインから操作するウォレットのように扱える
秘密鍵はBIP32で管理されているので一度ニーモニックをバックアップしておけばアドレスが増えた場合でも再度バックアップする必要はない
ブロックチェーンの同期がないので保守が楽になるカモ?(無責任)

electrumの秘密鍵

electrumの秘密鍵は暗号通貨業界でよく見かけるニーモニック(以下BIP39ニーモニックという)のように見えるが実はちょっと違う。
何が違うかというとなんとBIP39ニーモニックと仕様が違っていて互換性がないのだ。
だからelectrumでメモってもelectrumのニーモニックに対応していなければ復元できないのだ

XPRVやWIFと呼ばれる形式にすればほかでもインポートできるがそれを使うにはアドレスがどれか特定しなくてはならない
緊急時に他のウォレットでも使いたい場合には注意がいるだろう

commandラインから使ってみよう

コマンドラインから使うにはdaemon(常駐プログラム)として起動する必要がある

daemonとして起動する

起動

electrum daemon start

終了

electrum daemon stop

秘密鍵を扱う

秘密鍵の作成

electrum create

秘密鍵の復旧

electrum restore "xxxx xxxx xxxxx xxxxx"

ウォレットを操作する

一番最初にウォレットを常駐しているelectrumに秘密鍵をロードする必要がある、そのあとウォレットを操作するコマンドが使えるようになる

秘密鍵のロード

electrum daemon load_wallet

アドレス一覧

ウォレットの入金アドレスを表示

electrum listaddresses

バランス取得

ウォレット全体の残高を取得できる

electrum getbalance

支払い作成

  • bitcoinaddressは支払先のアドレス
  • amountは送金額(0.001とかbtc指定で)
  • このコマンドを使うと数字で羅列された生トランザクションが出力される
  • その生トランザクションをネットワークに伝搬させないかぎり実際に送金されない
  • 確定処理をするコマンドを実行する必要がある
electrum payto bitcoinaddress amount

支払い確定

  • transaction_stringにpaytoで作った生トランザクションを入れる
  • このコマンドで実際の支払い処理が完了する
electrum broadcast transaction_string

他にも商売用に作られたコマンドとかもある

マーチャント用のドキュメントがあり、そこではユーザーごとに支払いを受け付ける仕組みはelectrumがやってくれるようだ
(実はあまり調べてない・・・)

オルトコインのelectrum達

コインによっては最新版に追従していなくて動かなかったり
秘密鍵を盗む目的で作られたelectrumもよくあるようだ
オルトコイン版のelectrumを使う場合は開発者が信用できるかどうかよく確認してから使うようにしよう
実際に開発者コミュニティに属している人が作成していたり、コイン開発者が作っているものはある程度信用してよいだろう
githubからであれば誰が作っているかすぐにわかるので参考にURLを張っておきます

coin url
litecoin https://github.com/pooler/electrum-ltc
monacoin https://github.com/wakiyamap/electrum-mona
dash https://github.com/dashpay/electrum-dash
bitcoincash https://github.com/fyookball/electrum
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4