Taproot
TapLeaf 版本是否意味著增加兩個?
使用目前 TapLeaf 版本,0xc0 (192)
$$ parity bit + version $$可以是 0xc0 或0xc1。 我假設選擇下一個 TapLeaf 版本為 0xc1 (193) 是行不通的,因為
$$ parity bit + version $$仍然可以是0xc1(和 0xc2),它與較低的 TapLeaf 版本重疊。所以我假設 TapLeaf 版本應該增加兩個。
是的,差不多。不過,還有一些限制。來自BIP341:
- **葉版有什麼限制?**首先,葉子版本不能像 c$$ 0 $$& 0xfe 將始終是偶數,並且不能是 0x50,因為這會導致與附件的歧義。此外,為了支持某些形式的靜態分析,這些分析依賴於能夠辨識腳本花費而不訪問正在花費的輸出,建議避免使用任何會與有效第一個字節衝突的葉子版本。 P2WPKH pubkey 或有效的 P2WSH 腳本(即 v 和 v | 1 都應該是未定義的、無效的或禁用的操作碼,或者作為第一個操作碼無效的操作碼)。符合此規則的值是 0xc0 和 0xfe 之間的 32 個偶數值,以及 0x66、0x7e、0x80、0x84、0x96、0x98、0xba、0xbc、0xbe。還要注意這個約束意味著葉子版本應該在不同的見證版本之間共享,