モナーでもわかるビットコイントランザクションスクリプト

Bitcoin Transaction Script for Monā

ビットコインなどの暗号通貨では、送金の取引を作成したのがたしかにそのコインの所有者であることを確認するために、電子署名が用いられています。 この電子署名は公開鍵と電子署名がそのまま取引中に含まれているわけではありません。 scriptPubKeyscriptSigという対になるスクリプトが用いられています。 コインを送金するときは送金先としてscriptPubKeyを指定します。 このコインを別の宛先に送金するときには、電子署名などを含んだscriptSigを作成します。 ビットコインのネットワークの各ノードは、scriptSigSciptPubKeyを続けて実行し、結果が真となれば、正当な取引として認めます。 本書はこのスクリプトの解説本です。 また、ブロックチェーンに含まれる過去の取引のスクリプトを分析した結果もまとめています。

 

サンプル

  • sample.pdf(1と素数のページのみ抜粋しています)

委託販売

  • COMIC ZIN
    • MonapartyのMONATXSCRIPTトークンは付属しません

詳細

サークル情報
金曜日 西め24a 「superflip」
頒布価格
  • 1,000 円pixiv PAY利用可)
  • 4 MONA
  • 0.001 BTC
  • 1,000 KUSA
  • Pixiv PAY、モナコイン、ビットコインでの支払いは@kusano_kがスペースにいるときのみ
サイズ
B5
ページ数
本文50ページ
おまけ
MonapartyのトークンMONATXSCRIPTを1,000個おまけに付ける予定です。Monacardを設定しています
Q. MONATXSCRIPTを持っていると何か良いことがあるのですか?
A. ありません

Kusacoin

https://kusacoin.github.io/

詳細は本書中に記載していますが、ビットコインのスクリプトには削除された命令が多く、取引中のスクリプトには厳しい制約があります。 削除された命令を再実装し、(ほぼ)自由にスクリプトを使えるようにした暗号通貨Kusacoinを作成しました。 Kusacoinでの支払いも受け付けます。 現状の採掘難易度のままであれば、頒布価格の1,000 KUSAはCPUでも半日程度でマイニングできる量です。

モバイルウォレットが無いので、下記の手順で頒布します。

  1. 2018年8月8日23時59分までに、@kusano_kに「Kusacoinでの支払い希望」とDMを送る
  2. @kusano_kが送金先アドレスを連絡する
  3. 2018年8月9日12時00分までに、1,000 KUSAを送金する
  4. @kusano_kがパスワードをDMで送る
  5. スペースでパスワードと本書を引き換える

注意事項

  • @kusano_kをフォローするか、「すべてのユーザーからダイレクトメッセージを受信する」設定にして、@kusano_kからのDMを受信できるようにしてください
  • 1人1冊まで
  • (ありえないとは思いますが)希望者があまりにも多ければ、途中で受付を終了します
  • 支払いを希望してマイニングが間に合わないなどでキャンセルでも構いません
  • 当日スペースにいらっしゃらなければ、送金元のアドレスに後日返KUSAします

本書中の取引IDなど

紙の本を見ながら取引IDなどを打ち込むのは面倒なので、ここに載せておきます。

cca7507897abc89628f450e8b1e0c6fca4ec3f7b34cccf55f3f531c659ff4d79
初めて決済に用いられたビットコインを引き出す取引
sign.py
OP_CHECKSIGの方法で電子署名を検証するスクリプト
6a26d2ecb67f27d1fa5524763b49029d7106e91e3cc05743073461a719776192
P2SHのscriptPubKeyの形式だが、P2SHの検証が行われない取引
00000000000002dc756eebf4f49723ed8d30cc28a5f108eb94b1ba88ac4f9c22
上記の取引を含むブロック
fb4a1feda78f2a5e219ce39d793e180fa62b4707b3b021b5632abd0696ed9cec
連立方程式の答えで出金する取引
264887a5a42319a4b25cab843f3bbe8699432fbdab95742157b32a0239230d1a
唯一のP2WSHを用いたP2PKの取引
381917e8d1232aa8eba9893a3b43b7d6e2522654cabf770accb1c63ffbeacb1e
最高金額のNull Data取引
fcc78d0f68a3e9b3c7dc81f050714f24c2a71af1f141131d4b4992f863d0f2bc
0-of-1 multisig
c4aaf7fbec7a9a079e670e50f6a672315451c7618814494ab1f89cf3fd97b3bb
20-of-20 multisig
8e2c7cec5006949e1929f70961da8f85eebfe06a4979d611ec93ab384eaa34ed
一方の公開鍵の長さが不正な1-of-2 multisig
83af72371e38fad1a6a7f18d599d1022bbbf14aafe9e63d51ec53fed0b2f8c5f
一方の公開鍵の長さが不正な1-of-2 multisigを試した例
a165c82cf21a6bae54dde98b7e00ab43b695debb59dfe7d279ac0c59d6043e24
XSSを狙った取引 (1)
8af4152ee88a5ea7c996ac92ae6d0f430b98a88ab512a789dfe97cbba7c72fec
XSSを狙った取引 (2)
219b5815886af9c9ff74fdbe8146731534b0c1b1dc23bfd3fab81745433bbc3f
問題になっているscriptPubKey
ab149362ea4e119d2bc5211b35083c23ec41842af6bbc2ff3c5f1e55941199cc
より簡単な問題
fa735229f650a8a12bcf2f14cca5a8593513f0aabc52f8687ee148c9f9ab6665
scriptという文字列
03acfae47d1e0b7674f1193237099d1553d3d8a93ecc85c18c4bec37544fe386
多額のビットコインが入った出金できないスクリプト
ed7f71fdf6ae57f55b25c60e88771449a88f9c459db495a9efd9e90149af8b92
the password is password
c0b2cf75b47d1e7f48cdb4287109ff1dd5bcf146d5f77a9e8784c0c9c0ef02ad
TheCakeIsALie