TapScriptの条件でユーザーに全ブロックの検証を強制することは可能か
メモ(理解が浅いので色々根本的に前提が間違っているかも)
ブロックの検証で使うのは
1) ブロックのハッシュが前のブロックのマークルツリーのヘッダを含むこと
2) トランザクションのマークルツリーハッシュがブロックのハッシュに含まれること
3) それぞれのトランザクションの署名+スクリプトが有効なものであること
だが、1)-3)の全てはスクリプトのロジックで表現できる。したがって「固定された特定のブロックXまでのビットコインのブロックチェーンが正しくなければ検証に失敗する」ようなスクリプトを書くことができる。これは現実的とはいえないサイズだが、MASTを使うと検証可能な長さのスクリプトに収めることができるようになる(かもしれない)。つまり、以下が言える。
・「固定された特定のブロックXまでのビットコインのブロックチェーンが正しくなければ検証に失敗する」ような条件をTapScriptに入れられる。
TapScriptにこれを入れると嬉しいこと
1) http://kmlab.iis.u-tokyo.ac.jp/papers/scaling19-matsuura-final.pdf のかわりに、マイナーの報酬支払いTxのアウトプットがこのようなスクリプトをOR条件で含むような形になることを強制すれば、マイナーが確実にブロック検証を行ったことを証明できる(さもないとブロックチェーンが誤っていることを証明するトランザクションで採掘報酬を奪われてしまう)。既存のブロック全ての検証はコストがかかるが、追加されるブロックについてどのようなロジックで条件を追加しTapScriptを更新するかを決めておけば低いコストでマイナーに検証を強制できる可能性がある。
2) もっと過激な主張として、全てのトランザクションはこのような証明を出力の条件に含めなければならないということもできる。トランザクションを受け取る全ての主体は、全ブロックチェーンの検証を自分で行わなければ、安心してアドレスを発行することすらできなくなる。
他に使いみちがあったらおしえてください。