BSV

Bitcoin SV (BSV) の 公式クライアント (Bitcoin Core / bitcoin-cli) が、いつまで待っても Linux 版しか提供されない事に業を煮やし、なにか変則的な方法でコインの移動が出来ないものか?と模索し、このページに書いた方法を思いつき、試してみた。

※補足: このページは前回更新「Bitcoin core (bitcoin-qt) から Electrum へ、秘密鍵を使って残高を移動させる手順」のつづき・・・・というか応用編であり、大半の内容が被っている。

このページの内容とまとめ

まとめここまで。以下本文

スポンサー リンク

実際に行った手順

以下、
bitcoin-qt は Bitcoin Cash のものを、
Electrum は Bitcoin SV のものを利用して手順解説している。
OS には Windows 10 を利用している。

前準備: 残高の入っているアドレスを確認する


※ ハードフォーク以降コインを動かしていない場合

ハードフォーク以降コインを動かしていなければ、Wallet に残高が残っているはず。この場合、まずBCH の Bitcoin core を起動する。

bitcoin core のオプションを開く。
コインコントロールを有効にする
▲クリックで拡大
「ウォレット」の「コインコントロールを有効にする」にチェックを入れる。

コインコントロールを有効にすると、「送金」時に持っているアドレスの残高を確認できるようになる。
アドレスの残高を確認できる
▲クリックで拡大
ここで残高とアドレスをメモしておく。

※ 既に残高がゼロ、もしくは残高が分からない場合

  • Bitcoin Cash は 2018年11月に Bitcoin ABC と Bitcoin SV にハードフォークしている。(※現在では Bitcoin ABC が Bitcoin Cash となっている)
  • 私の場合、Bitcoin SV の Wallet を用意する前に、Bitcoin Cash側の残高をほぼ全部、移動させてしまっていた。2019年8月時点、Bitcoin SV の 公式クライアントのバイナリは Linux版のみ。自分でWindows用クライアントをビルドするのも、Linuxマシンを用意してコマンド打ちながらブロックチェーンを同期させるのも面倒くさい。

こんな場合は
 1. bitcoin core に残っている取引履歴をもとに
 2. ブロックチェーンエキスプローラーを使い
 3. どのアドレスに、どれだけ残高があったのか
という流れで調べるしかない。

ブロックチェーンエキスプローラーはBTC.comなど1ページに沢山アドレスを掲載してくれる所を選ぶのが便利。
アドレスの残高を確認できる
▲クリックで拡大

  • 今回の私の場合、
  • 私の場合、2014~2015年にファウセットで遊びまくっていた事もあり、(当時の価値で1~10円程度の) 200件近い入金記録があるのだ。
  • 入出金が激しいアドレスを確認する場合、1ページに5~10件しか表示してくれないブロックチェーンエキスプローラーでは、全部の残高をチェックするのはとても大変。

残高のあるコインアドレスを全部洗い出せたら、次に進む

Bitcoin core で秘密鍵を生成する

bitcoin core  のデバックウインドウで以下を入力する

  • walletpassphrase <自身が設定したパスワード> 60
     ※ パスワード設定している場合は上記のロック解除コマンドが必要
     ※ 末尾の「60」は解除される時間の指定(単位:秒)
  • dumpprivkey <コインアドレス>
     ※ ウォレットを完全に移行したい場合であれば、前項で残高を確認したアドレスすべて。アドレスの数だけ行う
  • 実行時の画像
    dumpprivkey
    ▲クリックで拡大
    秘密鍵は 絶対に外部に漏れないよう、慎重に扱う。秘密鍵の文字列があれば、簡単にコインが移動できてしまう。

bitcoin coreでの作業はここまで。

Electrumで秘密鍵をインポートする

秘密鍵インポートの手順は以下
dumpprivkey
▲クリックで拡大
「ウォレット」>「秘密鍵」>「スイープ」
 ※ Electrum の秘密鍵インポートは、「スイープ」と呼ぶ。


秘密鍵スイープ用の画面が表示される。

秘密鍵のスイープ
▲クリックで拡大

  • 中央の入力ボックスに先ほど生成した秘密鍵を貼り付ける
  • 入金先アドレスを指定する
    ※ 秘密鍵を使っても、アドレスごと取り込めるワケじゃなかった。
    ※ ついでに言うと、fee も取られる。承認も必要。
  • 「スイープ」を押す
    • 補足: この時、残高がゼロだと以下のエラーが出る。
      No inputs founds. (Note that inputs needs to be confirmed)
      No inputs founds. (Note that inputs needs to be confirmed)
      残高がお釣りアドレスに移動していないか、間違えて空のアドレスから秘密鍵を生成していないか、再度確認してみる。


スイープが終わると、送金画面が表示される。

送金画面
▲クリックで拡大

  • 「送信」を押すと、出金 (この場合は入金) 処理が始まる
  • この時点ではまだコインは移動していない。「クリア」でキャンセル可能。
  • 残高が正しいか、ちゃんとチェックする
  • 以下は、「残高が合わない」あるあるネタ
    • 一回のスイープで処理できるのは100件まで。
      スイープで処理できるのは一度に100件まで
      ▲クリックで拡大
      ※ ElectrumSVで確認。他のElectrumでどうなるかは未確認。
    • なので送金側のアドレスに100件以上の入金記録があった場合、スイープを複数回繰り返す必要がある。
      dumpprivkey
      ▲クリックで拡大


送金ボタンを押すと、警告ダイアログが表示される。
Avoid Coin Loss
「OK」を押す。
※ダイアログには、『コイン消失に繋がる「ありがちな失敗」の例がリンク先に記載されています。十分注意してください。』と書いてある。

※上記ダイアログの全文和訳

  • Avoid Coin Loss
    ElectrumSV is just a Bitcoin SV wallet, it cannot stop you from making bad decisions. Read an overview of the various risks, and the mistakes others have made resulting in the loss of coins. Your coins are your responsibility, take care with them.
  • コイン消失を避けるために
    ElectrumSVは単なるBitcoin SVウォレットであり、あなたに悪意を向けた入出金を止めることはできません。 さまざまなリスクの概要、および他の人がコインの損失をもたらした間違いの概要をお読みください。 あなたのコインはあなたの責任であり、それらに注意してください。
  • ※ Bitcoin SV はハードフォークの経緯などから、大量のコインを有するアドレスが第三者に特定されやすくなっています。コインを移動する際は、その危険性を十分に理解する必要があります。


次にパスワードの入力を求められる。
パスワードの入力
Wallet 作成時に設定したパスワードを入力する。

送金処理が開始される。
Avoid Coin Loss
この段階では、クライアント側の処理が正常に終わった状態。
この後、ネットワーク上で承認作業が行われ、無事コンフォームが終了すると全ての作業が終了となる。

緑の「レ」が付いたら承認完了。
dumpprivkey
▲クリックで拡大
送金額や残高が正しいか確認し、間違いがなければこれで終了。
※ 送金手数料が引かれるので、金額は若干減ってしまう。

手順紹介は以上。

おまけ: Bitcoin SV のコインスプリットメモ

Bitcoin SV には、前述した「コイン消失の危険性」を回避するため、「Split」という手段が提案されている。
ElectrumSV にも、この「Split」機能が搭載されている。
Bitcoin SV のコインスプリットメモ
▲クリックで拡大
※ 私の場合、このページで書いたような手段でコインを移動させ、BCHとBSVは異なるアドレスで管理できるようになっている。なので、(自分の考えが正しいかどうか確信はないが) この「Split」は必要ないと思っている。

上記を書き起こし&意訳した内容

  • As of the November 2018 hard-fork, Bitcoin Cash split into Bitcoin ABC and Bitcoin SV. This tab allows you to easily split the available coins in this wallet (approximately 0.0199124 BSV) on the Bitcoin SV chain. This will involve the following steps if you choose to proceed:
    1. A small amount of SV coin will be obtained from a faucet.
    2. A transaction will be constructed including your entire spendable balance combined with the new known SV coin from the faucet, to be sent back into this wallet.
    3. As this wallet is password protected, you will be prompted to enter your password to sign the transaction.
    4. The transaction will then be broadcast, and immediately added to your wallet history so you can see it confirmed. It will be labeled as splitting related, so you can easily identify it.
    5. You can then open Electron Cash and move your ABC coins to a different address, in order to finalise the split.
    This will only split the coins currently available in this wallet.
    While any further coins you send to your wallet are included in the overall balance, if they were unsplit before sending, they remain unsplit on arrival. It it your responsibility to ensure you know if you are sending unsplit coins and what the repercussions are. If in doubt, click split and be sure.
  • 2018年11月のハードフォークの時点で、ビットコインキャッシュはビットコインABCとビットコインSVに分割されました。このタブを使用すると、ビットコインSVチェーン上のこのウォレット(約0.0199124 BSV)で利用可能なコインを簡単に分割できます。 続行することを選択した場合、これには次の手順が含まれます。
    1. faucet から少量のSVコインが取得されます。
    2. このウォレットに送り返すために、faucet からの新しい既知のSVコインと組み合わされたすべての支出可能な残高を含むトランザクションが構築されます。
    3. ウォレットがパスワードで保護されている場合、トランザクションに署名するためにパスワードを入力するよう求められます。
    4. その後、トランザクションはブロードキャストされ、すぐにウォレットの履歴に追加されるため、確認されたことがわかります。 分割関連としてラベル付けされるため、簡単に識別できます。
    5. その後、Electron Cashを開き、ABCコインを別のアドレスに移動して、分割を完了できます。
    この方法によって、このウォレットで現在利用可能なコインのみが分割されます。
    ウォレットに送信したコインは全体の残高に含まれますが、送信前に分割されていなかった場合、到着時に分割されないままになります。 分割されていないコインを送信しているかどうか、およびその影響を把握しておくことは、お客様の責任です。 もしあなたが疑うのであれば、「split」をクリックして確認してください。

あとがき

冒頭にも書いたが、コインアドレスが変わったり、fee を取られたりと、秘密鍵を使ったコイン移動のわりにスマートじゃないなあ・・・・という感想を持った。それでも、とりあえず無事全部のBSVを Windows 上で移動できたので良しとする。

このページは以上。