bitcoin P2SHとは?

技術メモ

Mastering bitcoin本より

https://www.bitcoinbook.info/translations/ja/book.pdf

以下mastering bitcoin より pay-to-script-hashの利点

pay-to-script-hashはlocking scriptを複雑なまま直接扱うことに比べて以下の利点があります。
• より短いフィンガープリントで複雑なscriptを置き換えることで、トランザクションのデータサイズを小 さくする
• scriptがアドレスとして実装されることで、送り主と送り主のウォレットはP2SHに関する複雑な実装をす る必要がない
• P2SHは、scriptを構成する負担を送り手ではなく受け手側に移している
• P2SHは、アウトプットが持つ長いscript(これはUTXOセットに含まれるためメモリを圧迫する)をインプ
ット側(ブロックチェーン上にのみ保存される)に移すことでデータストレージの負担をインプット側に移 している
• P2SHは、支払い時点に生じる長いscriptを資金が使われる時点で生じるようにすることで、データストレ ージの負担が生じる時刻を移している
• P2SHは、送り手が長いscriptを伴って資金を送るときに負担するトランザクション手数料を、受け手がre deem scriptを使って資金を使うときに負担するように変更している

各トランザクションscriptの特徴

1. P2PKH (Pay to Pubkey Hash)
 scriptSig (unlocking script)
  <署名><公開鍵>
 scriptPubKey (locking script)
  OP_DUP OP_HASH160 <アドレスPKH> OP_EQUAL OP_CHECKSIG
 検証Script
  <署名><公開鍵> OP_DUP OP_HASH160 <アドレスPKH> OP_EQUAL OP_CHECKSIG
 bitcoin上で多く取引されているのがこの形式

2. P2PK (Pay to Pubkey)  * あまり使われないらしい
 scriptSig (unlocking script)
  <署名>
 scriptPubKey (locking script)
  <公開鍵> <OP_CHECKSIG>
 検証Script
  <署名> <公開鍵> <OP_CHECKSIG>

3. multi-signature
 N個の公開鍵 & M個の署名
 scriptSig (unlocking script)
  OP_0 <Signature 1> <Signature 2> ・・・ <Signature M>
 scriptPubKey (locking script)
  M <Public Key 1> <Public Key 2> ... <Public Key N> N OP_CHECKMULTISIG
 検証Script
  OP_0 <Signature 1> <Signature 2> ・・・ <Signature M> M <Public Key 1> <Public Key 2> ... <Public Key N> N OP_CHECKMULTISIG

4. data output (OP_RETURN)
 scriptSig (unlocking script)
  なし
 scriptPubKey (locking script)
  OP_RETURN <data>

5. P2SH (Pay to Script Hash)
 P2SHは、scriptからaddressを生成する
 もっとも一般的なP2SHの実装方法は multisigになる。
 scriptSig (unlocking script)
  OP_0 <Signature 1> <Signature 2> ・・・ <Signature M> <Redeem Script>
 scriptPubKey (locking script)
   OP_HASH160 <20-byte hash of redeem script> OP_EQUAL
 Redeem Script
   M <Public Key 1> <Public Key 2> ... <Public Key N> N OP_CHECKMULTISIG

pycoinの実装

ScriptPayToScript.py

Sponsored Link

ビットコイン(Bitcoin)、イーサリアム(Ethereum)、リップル(Ripple)、ネム(NEM)などの仮想通貨を買うならZaifがおすすめです。

特に国内でETHを購入するなら、アルトコインでも板取引に対応しているZaif(ザイフ)が割安なのでよいですよ。

コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


Ethereum(イーサリアム)
Error: The contract code couldn’t be stored, please check your gas amount.

ALISのICOソースのzeppelinバージョンを1.2から1.8にあげようとしたときにはまったエ …

Dapps
日本の都道府県を所有できるDApps & ERC721 のサンプルを公開してみました

最近、Ethereum上でカードなどを所有できるdAppsが流行っているので、試しに日本の都道府県を …

Ethereum(イーサリアム)
TX doesn’t have the correct nonce – Metamask

EthereumのdAppsを作ろうとしていてはまったのでメモ。 Metamaskを使用して支払いを …