なるほど!をお届けする仮想通貨情報メディア

  • BTCBTC

    1,068,727円

  • ETHETH

    22,311円

  • ETCETC

    652.27円

  • LTCLTC

    8,000.9円

  • BCHBCH

    33,581円

  • XRPXRP

    31.396円

  • LSKLSK

    0.0000円

  • XEMXEM

    4.8790円

ビットコインのスケーラビリティを解決するMAST

導入

ビットコインの送金時に、ただ「アリスからボブに0.1BTC送金する」というような取引ではなく、「ボブがアリスから0.1BTCを受け取らなかったら、チャーリーとダンが受け取れる」というような複雑な取引を行うことが可能です。

このように、異なる条件下で、送金の挙動が異なる場合、「条件分岐のあるトランザクション」と表現します。

条件分岐があるトランザクションでは、送金の利便性が向上する一方で、条件設定が複雑になればなる程、トランザクションデータサイズが大きくなってしまうという問題点を抱えます

この問題点を解決するために、MAST(Merklized Abstract Syntax Tree:マークル化抽象構文木)という技術が開発されています。

MASTは、ブロックチェーンにスクリプトの未使用部分を含める必要性を排除することで改善することができます。

 

ビットコインのスクリプト

ビットコインの送金時には、送金者が取引データであるトランザクションを作成することで実行されます。

トランザクションには、以下のような様々な情報が記載されており、ブロックチェーン上にデータを保存する必要があります。

バージョン

タイムスタンプ

インプット数

アウトプット数

インプット

アウトプット

・トランザクションハッシュ

・UTXOのインデックス番号

・scriptSigのサイズ

・scriptSig(公開鍵と署名)

・ビットコイン額

・scriptPubKeyのサイズ

・scriptPubKey(条件分岐のスクリプトによる記述内容)

ビットコインを送金するためには、

①受信者である自分のアドレスに紐づけられたUTXOのロックを解除するために、インプットにあるscriptSigにより送信者の秘密鍵で署名し、送金者である自分の公開鍵とをセットにし、

②アウトプットにあるscriptPubKeyで条件設定し、これらの必要な情報をスクリプト言語で記述することで実行され、

③公開鍵と署名付き送金情報を照合して、整合性が取れたら、受信者のアドレスに紐づける

ことで成立します。

アドレスは、送信者が自身の秘密鍵をECDSA楕円曲線に通し公開鍵を生成し、公開鍵をSHA-256などにハッシュ関数に通すことで、定型の規格サイズにまとめ、ハッシュ値であるアドレスを得ます。




MAST

従来のプロトコルモデルでは、条件分岐に必要なスクリプト全体がトランザクションに記録され、ブロックチェーンに保存され、実行されなかった条件の方はデータは余分であり、スケーラビリティ的にも保存する必要がありません。

このような問題に対して、MASTは、条件分岐のスクリプトにおいて実際に実行する条件のスクリプトのみ公開し、ほかの実行しない部分は公開せずにハッシュ化したままぶすることができるプロトコルです。

 

これを可能にするために、抽象構文木(abstract syntax tree:AST)とマークル木(mercle tree)というふたつの技術が使用されます。

抽象構文木で条件分岐したスクリプトを分割し、マークル木ですべてのスクリプトが提示されなくてもある条件がそのスクリプトに含まれているかどうかを確認することができます

merkle treeからみる量子コンピューター耐性をもつ署名の探求

送金の実行時には、

「実行する条件のスクリプト」

「実行しない条件のハッシュ(32バイト)」

「実行する条件のマークル木における位置(マークルパス)」

を提示するだけで良くなります。



まとめ

MASTを実装することで、取引規模の拡大必要以上の情報を公開するためのプライバシーの拡大スマート契約を検証コストではなくサイズによる規制などの、既存の問題を改善することができます。

Segwitと並んで、ビットコインのスケーラビリティの解決を導くソリューションとして有力です。

今後の動向に注目な技術であるといえます。

参考

What is a Bitcoin Merklized Abstract Syntax Tree (MAST)?

https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

ブロックチェーンのセキュリティに必要不可欠な鍵「秘密鍵・公開鍵」

http://gaiax-blockchain.com/key

ビットコインおけるトランザクションスクリプトの仕組みとその種類

https://zoom-blc.com/transaction-script