Bitcoin: OP_RETURN と応用例の技術的説明

NO IMAGE

Bitcoin 0.9 から利用できるようになったOP_RETURNとは何か?の説明

前提知識

  • Bitcoinの技術の知識
  • Bitcoinのトランザクションの仕様 (txout, txinの意味)
  • UTXO: (unspent transaction output)
  • BitcoinのScriptの仕様 (scriptPubKey, ScriptSigの意味)
  • coinbase
  • プログラミングの知識

概要

  • 一般的なプログラミングのreturnと同じで、そこに来るとScriptをストップする
  • その出力の参照を許さない
  • けど、それ以降に40bytesデータを入れていいことになった。現在、80bytes。
  • それを使って色々なことをするアイディアやソフトウェアが出てきた
  • データは、剪定(prune)される可能性もある
  • Bitcoin v0.9 (2014/03/19リリース) ブロック 291xxx から

OP_RETURN の仕様

以下より引用、翻訳

Script – Bitcoin

フローコントロール

ワード オプコード Hex Input Output 説明
OP_RETURN 106 0x6a なし なし トランザクションinvalidとして印をつける

説明

Script – Bitcoin

トランザクションを利用できる可能性がないだろうと印をつけるスタンダードな方法は、以下の形式で、scriptPubKeyと一緒にすることだ。

scriptPubKey: OP_RETURN {zero or more ops}

OP_RETURN は、すぐにこのスクリプトを不正とし、そのアウトプットを利用できる可能性があるscriptSigがないことを保証する。なので、そのアウトプットは、使われてなくても、すぐにUTXOセットから、削除される。

Tx eb31ca1a4c… – Bitcoin Block Explorer が一例です。ゼロの値のアウトプットを持っているので、0.125BTCの全てを、UTXO setへのエントリーを付け加えることなく、このトランザクションを採掘した採掘者に与えている。それに加え、OP_RETURNを、UTXO setに現れるデータがないトランザクションへのデータ追加に利用できる。1a2e22a717d626fc5db363582007c46924ae6b28319f07cb1b907776bd8293fc の中にあるように。P2Poolは、P2Poolが作り出すブロックのcoinbaseの中のサイドチェーンハッシュtxoutでこれをしている。
このメカニズムは、まだスタンダードなトランザクションタイプでないことに注意。なので、mainnetのノードにリレーされないこともある。

OP_RETURNの利用例

Open Assetsの場合

Mastercoinの場合

mastercoin-MSC/spec

Counterpartyの場合

Dark Wallet の場合

以下を参考に
DarkWallet/Stealth – unSYSTEM

ステルスアドレスの場合

ジョナサン・アンダーウッド氏@ Cryptocurrency Tech Japan より引用

OP_RETURN   <送金者公開鍵:33byte> (=38 bytes)

OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
  • VERSIONは、ステルスアドレスのプロトコルのバージョン

以下、技術勉強会グループでのジョナサン・アンダーウッド氏の発言から引用

NONCEというのは、乱数という意味で、ステルスアドレスの最後に「prefix」というものがあり、4バイトの16進数です。obeliskのサーバにステルスの取引へのポインターを入れて、シードからのウォレット復元を促進しているんですので、何か調べる対象のものが無いといけません。なので、SHA256(NONCE+公開鍵)の頭4バイトがステルスアドレスの尻4バイトと一致するまで、NONCEを進めてbrute forceで正しいNONCEを見つけます。そうすると、シード復元の際に役立ちます。

ただし、今現在、NONCEと prefixの使い方については今後検討しないといけないみたいです。

スライド

参考になる記事

40bytes から 80 bytesに変更関連

Bitcoin Core v0.11.0から80bytesに変更されている?

便利サイト

OP_RETURNのメタデータ表示サイト

ツール

ビットコインのOP_RETURNを扱えるPythonのツール
* coinspark/python-OP_RETURN

関連サービス

     

免責事項

本記事に掲載されている記事の内容につきましては、正しい情報を提供することに務めてはおりますが、提供している記事の内容及び参考資料からいかなる損失や損害などの被害が発生したとしても、弊社では責任を負いかねます。実施される際には、法律事務所にご相談ください。

技術・サービス・実装方法等のレビュー、その他解説・分析・意見につきましてはblock-chani.jp運営者の個人的見解です。正確性・正当性を保証するものではありません。本記事掲載の記事内容のご利用は読者様個人の判断により自己責任でお願いいたします。

     

コンセンサス・ベイス(株)とブロックチェーン事業を行なってみませんか?

当サイトを運営するコンセンサス・ベイス株式会社は、2015年設立の国内で最も古いブロックチェーン専門企業です。これまでに、大手企業の顧客を中心に、日本トップクラスのブロックチェーンの開発・コンサルティング実績があります。

ブロックチェーンに関わるビジネスコンサル・システム開発・教育・講演などご希望でしたら、お気軽にお問い合わせください。

     
     

ブロックチェーン学習に最適の書籍の紹介

図解即戦力 ブロックチェーンのしくみと開発がこれ1冊でしっかりわかる教科書

ブロックチェーン イーサリアムへの入り口 第二版 (ブロックチェーン技術書籍)

本書は、ブロックチェーン技術に興味を持ったエンジニアや、その仕組みを学び、自分の仕事に活かしたいビジネスパーソンを対象にして、ブロックチェーンのコア技術とネットワーク維持の仕組みを平易な言葉で解説しています。この本を読んだうえで、実際にコードを書くような専門書、ブロックチェーンビジネスの解説書を読むことで、理解度が飛躍的に高まるでしょう。(はじめにより)

ビットコイン(Bitcoin)カテゴリの最新記事