暗号通貨に関する事など

暗号通貨に関する覚書など。メモや日記。

※技術的なことに関して、間違っていたらコメントから指摘していただけると泣いて喜びます

Segwitに関して調べた記録1

MonacoinでSegwit可決されたということで、今更だがSegwitに関して詳しく調べてみた。折角なので他人が見れる形で調べた内容に関する記録を残しておこうと思う。


はじめに(事前知識など)

 これから私が書くのはSegwitがもたらしてくれる利益や不利益などと言った概要的な内容ではなく、詳細な仕組みに関することがメインだ。
 そのため、現時点で「Segwitって何?」という方には全く理解できないであろう内容をこれから書いていく。また、ビットコインのトランザクションの構造やスクリプトのシステムをおおまかにでも理解できていないなら、これから私が書くことを読んでも理解できないかもしれない。



見出し

 都合により変更する可能性が大きいが、ざっくりと以下のような感じで書いていこうと思う。

  1. 概要(これだけ今回書く)
  2. トランザクションと新たに追加されるWitnessという構造に関して
  3. Segwitとトランザクション展性攻撃耐性に関して
  4. Witnessと署名検証に関して
  5. Witnessとアドレスフォーマットに関して


1,Segwitの概要

 SegwitはBIP141〜145に詳細な仕組みが記載されている。大まかな理解として良く知られているのは「トランザクションから署名部分を分離する」ということかと思う。トランザクションから署名部分を分離すると何が嬉しいのか、一般的に以下のように言われている。

  1. ブロックサイズを変更することなく(ハードフォークすることなく)実質的に時間あたりのトランザクションの処理数を増やすことができる
  2. トランザクション展性攻撃に対する耐性が増す

 1の部分は感覚でも理解できると思う。署名部分をWitnessと呼ばれる新しい構造体としてトランザクションとは別に保管することで、トランザクションの署名部分はトランザクションサイズとしてカウントされなくなるので、トランザクションサイズは小さくなったとみなされる。
 トランザクションのサイズが小さくなれば、ブロックサイズが今までと同じでも、より多くのトランザクションをブロックの中に詰めることができるようになる。

 2の部分は説明がいると思う(少なくとも私には説明が必要だった)。が、これを説明するにはトランザクション展性を用いた攻撃に関することも併せて書かないといけなくなるので、次以降に回す。


~2へ続く~


私感など雑記(以降関係のない話)

 Segwitに限らず、暗号通貨に関して日本語ソースって本当に無い。技術的なことに関するものは英語ソースでも少ないように思う。困るよね。
×

非ログインユーザーとして返信する