mirror of
				https://github.com/bitcoin/bips.git
				synced 2025-11-03 14:19:40 +00:00 
			
		
		
		
	Merge pull request #1109 from Crypt-iQ/tuple_fix_04232021
BIP 341: fix tuple index in taproot_tweak_pubkey
This commit is contained in:
		
						commit
						fb6930cc1d
					
				@ -173,7 +173,7 @@ First, we define <code>taproot_tweak_pubkey</code> for 32-byte [[bip-0340.mediaw
 | 
				
			|||||||
The function returns a bit indicating the tweaked public key's Y coordinate as well as the public key byte array.
 | 
					The function returns a bit indicating the tweaked public key's Y coordinate as well as the public key byte array.
 | 
				
			||||||
The parity bit will be required for spending the output with a script path.
 | 
					The parity bit will be required for spending the output with a script path.
 | 
				
			||||||
In order to allow spending with the key path, we define <code>taproot_tweak_seckey</code> to compute the secret key for a tweaked public key.
 | 
					In order to allow spending with the key path, we define <code>taproot_tweak_seckey</code> to compute the secret key for a tweaked public key.
 | 
				
			||||||
For any byte string <code>h</code> it holds that <code>taproot_tweak_pubkey(pubkey_gen(seckey), h)[0] == pubkey_gen(taproot_tweak_seckey(seckey, h))</code>.
 | 
					For any byte string <code>h</code> it holds that <code>taproot_tweak_pubkey(pubkey_gen(seckey), h)[1] == pubkey_gen(taproot_tweak_seckey(seckey, h))</code>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<source lang="python">
 | 
					<source lang="python">
 | 
				
			||||||
def taproot_tweak_pubkey(pubkey, h):
 | 
					def taproot_tweak_pubkey(pubkey, h):
 | 
				
			||||||
@ -219,7 +219,7 @@ def taproot_output_script(internal_pubkey, script_tree):
 | 
				
			|||||||
        h = bytes()
 | 
					        h = bytes()
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        _, h = taproot_tree_helper(script_tree)
 | 
					        _, h = taproot_tree_helper(script_tree)
 | 
				
			||||||
    output_pubkey, _ = taproot_tweak_pubkey(internal_pubkey, h)
 | 
					    _, output_pubkey = taproot_tweak_pubkey(internal_pubkey, h)
 | 
				
			||||||
    return bytes([0x51, 0x20]) + output_pubkey
 | 
					    return bytes([0x51, 0x20]) + output_pubkey
 | 
				
			||||||
</source>
 | 
					</source>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user