mirror of
				https://github.com/bitcoin/bips.git
				synced 2025-11-03 14:19:40 +00:00 
			
		
		
		
	BIP-345: add sigops cost of 60
This commit is contained in:
		
							parent
							
								
									4aae726be9
								
							
						
					
					
						commit
						014b832e07
					
				@ -266,6 +266,7 @@ where
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
After the stack is parsed, the following validation checks are performed:
 | 
					After the stack is parsed, the following validation checks are performed:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Decrement the per-script sigops budget (see [https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki#user-content-Resource_limits BIP-0342]) by 60<ref>'''Why is the sigops cost for OP_VAULT set to 60?''' To determine the validity of a trigger output, OP_VAULT must perform an EC multiplication and hashing proportional to the length of the control block in order to generate the output's expected TapTweak. This has been measured to have a cost in the worst case (max length control block) of roughly twice a Schnorr verification. Because the hashing cost could be mitigated by caching midstate, the cost is 60 and not 100.</ref>; if the budget is brought below zero, script execution MUST fail and terminate immediately.
 | 
				
			||||||
* Let the output designated by <code><trigger-vout-idx></code> be called ''triggerOut''.
 | 
					* Let the output designated by <code><trigger-vout-idx></code> be called ''triggerOut''.
 | 
				
			||||||
* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately.
 | 
					* If the scriptPubKey of ''triggerOut'' is not a witness program of the same version and same tapleaf version as the currently executing script, script execution MUST fail and terminate immediately.
 | 
				
			||||||
* Let the script constructed by taking the <code><leaf-update-script-body></code> and prefixing it with minimally-encoded data pushes of the <code><n-pushes></code> leaf-update script data items be called the ''leaf-update-script''.
 | 
					* Let the script constructed by taking the <code><leaf-update-script-body></code> and prefixing it with minimally-encoded data pushes of the <code><n-pushes></code> leaf-update script data items be called the ''leaf-update-script''.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user