Taproot
Privacy preserving switchable scripting for Bitcoin
Gregory Maxwell による
Taproot の key path に lock する output をつくる
bitcoinbook/ch07_authorization-authentication.adoc at third_edition_print1 · bitcoinbook/bitcoinbook
Taproot | Bitcoin Optech
Preparing for taproot | Bitcoin Optech
Taproot funds burned on the bitcoin blockchain - Suredbits
Taproot Demonstration | BitMEX Blog
Taproot について - Google スライド
BIP341 bips/bip-0341.mediawiki at master · bitcoin/bips
Taproot は Segwit v1 である
address is bech32m
bips/bip-0350.mediawiki at master · bitcoin/bips
a new witness version is added (version 1), whose programs consist of 32-byte encodings of points Q. Q is computed as P + hash(P||m)G for a public key P, and the root m of a Merkle tree whose leaves consist of a version number and a script. These outputs can be spent directly by providing a signature for Q, or indirectly by revealing P, the script and leaf version, inputs that satisfy the script, and a Merkle path that proves Q committed to that leaf.
witness program が Q である
Q に対応する秘密鍵をもっていれば unlock できる
Q = P + hash(P||m)G
P is pulick key
P = k*G
hash(P||m)*G は hash(P||m) を秘密鍵とする公開鍵と言える
schnorr の場合秘密鍵を足した鍵は、公開鍵を足したものに対応する秘密鍵になっている
if you know k
k + hash(P||m) を計算できる
m を知る必要はない
Q, P, G を知っているので hash(P||m) もわかる
これは Q に対する秘密鍵 になっている
したがって unlock できる
m を示せる場合
script と script path から m を導ける知識がある場合
P, m, マークルパス を使って Q になることを示して、script を使って unlock する
SIGHASH_DEFAULT が導入される
なにが違うのかわかっていない、、
TapScript
OP_SUCCESSx が追加されている
新しい op code を softfolk を導入するため
OP_SUCCESS が script にあった場合、その時点でその script は有効になる
新しい意味が追加されたときに、それを知らない古いパーサーが無効にしないようにだと思う
署名は Schnorr signature を採用
Key derivation は BIP86
bips/bip-0086.mediawiki at master · bitcoin/bips
BDK テスト古いのでは?
[Add support for Taproot and tr() descriptors by afilini · Pull Request #593 · bitcoindevkit/bdk https://github.com/bitcoindevkit/bdk/pull/593/files]
bitcoin-dev Taproot: Privacy preserving switchable scripting
【動画で学ぶブロックチェーン】【Bitcoin】 BIP341 Taproot - 安土 茂亨氏 - GBEC - Blockchain を推進するエンジニアリングコミュニティ -
Taproot Is Coming: What It Is, and How It Will Benefit Bitcoin
MAST
なにがうれしいか
script が小さくなる
script をすべて公開しておく必要がない
従来は spend するときにスクリプト全体を公開する必要があったが、taproot の場合は使用する条件だけでいい?
MAST のスクリプトであることがわかってしまう
これを区別できなくする効果も Taprootにはある
Taproot は Segwit
witness program が 公開鍵
Q に対して有効な署名で unlock する
Q に対応する秘密鍵が必要
bitcoin script
unlock できるスクリプトをリーフにした hash tree をつくる
細かいルールはいろいろある
root hash が t
Q = P + tG
Paul Sztorc (Bip300 ⇔ BTC Maximalism)さんはTwitterを使っています: 「RT @ercwl: @Mario_Gibney @pwuille See this excerpt from the state of discussion around Taproot QC security implications. https://t.co/mMy4a…」 / Twitter