2017/08/24

[btc]confirmation

Bitcoinだけではないと思うが、ブロックチェーンに関することをやっていると「confirmation」というものに出くわすと思う。

自分がBitcoinで取引するためにトランザクションを作ってブロックチェーンに公開する場合、だいたいこういう流れになる。

  1. 自分が送金したい相手に対してのトランザクションデータを作る
  2. トランザクションデータをブロックチェーンに公開するため、どこかのノードに送信する
  3. (トランザクションデータが正しくて、ブロックチェーンのノードに受け入れられたとする)
  4. そのノードが、他のつながっているノードに対してトランザクションデータを転送する
  5. 一定期間が経つと、マイナーがブロックを作り始める
  6. あるマイナーが作ろうとするブロックに、自分が送信したトランザクションデータが取り込まれる
  7. そのマイナーが他のマイナーとの競争に競り勝ち、作ったブロックがブロックチェーンに公開される

大ざっぱに、だ。
まだマイニングしたことがないので、詳細な流れは把握していない。


さて、confirmationというのがこの流れのどこに出てくるかというと、「ブロックに取り込まれたときが1confirmations」だ。
ブロックに取り込まれるまでは、mempoolという貯木場みたいなところにトランザクションが浮かんでいるだけだ。

では、2confirmationsはいつかというと、1confirmationsになったブロックに、次のブロックが連結したときだ。
以降、ブロックが載っていくごとにconfirmationは増えていく。


一般的に、confirmationが6以上であれば大丈夫、といわれている。

大丈夫?何が??

最初に書いておかねばならんが、私はこの辺の数学的な検証については非常に疎い。
つまり、うん、わからんのだ。。。
だいたいどこにでもそう書いてあるから、そうなんだろう、くらいの根拠しかない。
まあ、6というと、6σとかあるから、なんかそれっぽいな、程度しか言えることがない。


ただ、Bitcoinのブロックチェーンには「展性」という脆弱性がある。
トランザクション展性、などと呼ぶらしい。
詳しくないので割愛するが、実際に開発している間に受けると、かなりびっくりする。
自分がトランザクションを作って、トランザクションをブロックチェーンに公開して、それが自分の立てたノードに受け入れられたところまで確認しているのだが、コーヒー飲んでおしゃべりして、そろそろconfirmationが増えたかと思って確認しようとしたら、TXIDが存在しない、ということになるのだ。


ああいうのを受けてしまうと、いろいろ考えますわな。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。