segwit2xやらがそろそろ目前?になってきたようですが、先月先々月あたりからまだ全然情報を追えていないのでとりあえず復習シリーズ。
segwitがアクティベートされたのはずいぶん昔に感じてしまう方もいるかもしれませんが、8月24日、まだ1か月半程度で対応ウォレットもまだ非常に少ない状況です。
現在対応している主要ウォレットは、おそらくハードウェアウォレットのTrezor、Ledgerとウェブウォレット(運営側とのマルチシグ)のGreen Address(Greenbits)のみです。その他一部取引所とかウェブウォレットのBitGoなども対応しているようです。
segwitに対応したElectrumの次バージョンが間もなく出る予定なので、そちらを試してから書いてもよかったのですが、リリースが延期し続けているので、もうgithubから自分でコンパイルして次バージョンのbcからはじまるsegwitウォレットを一応試したので書いてみます。
Segwitアドレスを使うメリット
大前提として、segwitが有効化されても、segwitアドレスにBTCを移動させてそのアドレス上のBTCを使わないと、segwitを利用したことにはならず今までと全く変わりありません。
segwit自体のメリットは過去の記事やほかのサイトを参考にしていただければ良いかと思いますが、エンドユーザーがsegwitアドレスを使うことの最大のメリットは手数料が安いということにつきます。
トランザクションの構成によって変わってくるので、個別の送金に対しては一概には言えませんが、トランザクションの中の署名が占める割合は総平均で大体60%程度で、従来の半分程度の手数料で安く送れることが期待できます。
最近は時々ネットワークが空いている状態になっており、タイミングを見計らって手動で手数料設定すればsegwitでなくてもかなり安く送れることも多いのですが、全般的に安くなるのは大きなメリットでしょう。ちなみに後で説明するbcアドレスから試しにBTCを送金したら1円の手数料でも6ブロック程度ですぐに承認されました。とはいえまあこれもネットワークが空いている影響が大きいので参考程度にお考え下さい。
細かい話をはじめると、セキュリティ的に優れてるとかも一応ありますが、今の1からはじまるアドレスが危険というわけでは全くありませんし、普通のユーザーが気にするレベルの話ではありません。
Segwitアドレスの種類
3からはじまるアドレス(P2SH)
3からはじまるsegwitのアドレス。今まではマルチシグネチャアドレスでもこのアドレス形式が利用されており、一見マルチシグと区別ができません。マルチシグアドレスが自動的にそのままsegwit対応になるわけではないので、マルチシグネチャウォレットを使っている場合でも、新しいsegwitアドレスに送らないとsegwitを利用することはできません。
現在はすべてのウォレットが3からはじまるアドレスへの送金には対応しているので、segwitアドレスの生成に対応しているソフトでウォレットを作れば、すぐにこのsegwitアドレス宛にBTCを移してsegwitを利用することができます。
bcからはじまるアドレス(bech32、BIP173)
bcからはじまるsegwit専用のアドレス。segwit専用とはされていますが、今までのアドレスと大きく仕様を変えており、見た目としては大文字小文字の区別をなくしてコンパクトにしたり、segwitとは関係なく(base58から)アドレスそのものの改善が図られています。今後シュノア署名などが導入された際にもbech32が利用される可能性は高いと思われます。
アドレスとして優れているので、今後はbech32がメインでP2SHのsegwitアドレスはあくまで移行期間中のものと考えるのが良いと思います。ただbech32を規定するBIP173はまだdraft状態ですし、対応ウォレットはゼロです。
対応ウォレットでなければ送ることができないので、bcアドレスを生成してもそこにBTCは送れないことになります(bech32のアドレス内のBTCを外部を送ることはできるので、BTCが取り出せなくなってしまうことはありません。)。
今の1からはじまるアドレスからbcからはじまるアドレスへ直接BTCを送って移行することは技術的・仕様的には可能ですが、試しにbech32のアドレスへの送金をブロックエクスプローラで見ても、アドレスの詳細が表示できなかったり、アドレスそのものが表示されなかったりとウォレット以外もまだまだ未対応な状況なので、実験目的ではなく普通にsegwitを利用したいならP2SHの3からはじまるアドレスを利用するのが無難でしょう。
ちなみにElectrumの次バージョンは現時点ではP2SHのウォレット生成には対応しておらず、segwitウォレットを選択すると強制的にbech32のbcからはじまるアドレスになるので、なかなかsegwitウォレットは選択しづらいかもしれません。
3からはじまるアドレス、P2SH形式のアドレスが実装された時も、多くのウォレットが対応し送れるようになったのも2,3年程度かかったようなので、bech32への移行も少なくとも1年、数年程度は見ておく必要があるのかなと思います。
まとめ
今回のsegwit導入により新しいアドレス形式が導入され、必須ではないもののビットコインでは初めてアドレス移行が推奨される状況となりました。今後も新しい署名形式が導入された際などはアドレスを移行する必要がでてくるかもしれません。
segwitに関してはとりあえず3からはじまるP2SHに移行、いずれbcからはじまるbech32へ、という感じでしょう。
参考サイト
bips/bip-0173.mediawiki at master · bitcoin/bips · GitHub