[BIP draft] CHECKLOCKTIMEVERIFY [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2014-10-09T06:40:59+00:00


Summary:

A proposal has been made to implement arbitrary logic in the Bitcoin network using a new opcode called CHECKLOCKTIMEVERIFY. This opcode would allow complex logic to be implemented, such as output being unable to be spent until a certain time and output only being able to be spent until a certain time. The proposed opcode is considered more flexible than the existing OP_CHECKLOCKTIMEVERIFY and can be used to achieve various use cases involving alternative key groups and time constraints.The conversation between Peter Todd and Luke Dashjr revolves around the implementation of this opcode. Luke asks if it can be used to build a script that can only be spent up until a specific block. Peter suggests creating a GET-TXIN-BLOCK-(TIME/HEIGHT)-EQUALVERIFY operator to achieve this functionality. They also discuss the implications of short maturity periods and the potential for mining centralization. Instead of destroying coins, Peter suggests sacrificing them to incentivize miners.Another email exchange between Gavin Andresen and Alan Reiner explores the concept of proof-of-burn as a method of funding transactions in Bitcoin. They discuss the advantages and disadvantages of using P2SH transactions for proof-of-burn schemes. Gavin explains that using P2SH can prevent miners from knowing the advantage of holding the first transaction until it's too late. They also touch upon the importance of revealing the redeeming script to ensure the validity of the sacrifice.In another discussion, Gavin Andresen notes that encoding the target height/time directly may lead to miners delaying the mining of the first transaction. He suggests reproducing the generation maturity rule by stating "cannot be spent until 100 blocks after the first transaction is mined." Short maturity periods are deemed appropriate for many use cases.Sergio Lerner suggests that applications and nodes should only broadcast transactions with OP_CHECKLOCKTIMEVERIFY a few blocks after the timeout value to avoid rejection by peers. There is a debate about banning peers that send transactions failing to verify OP_CHECKLOCKTIMEVERIFY, with Sergio expressing his dislike for this option. Another suggestion is for the sender to periodically check the height of their peers to ensure they are up to date with the blockchain.Gavin Andresen suggests deferring discussions on rolling out the proposal until there is a consensus on its benefits and risks. He emphasizes the importance of carefully considering the semantics and implementation details. The message supports the proposal but highlights the need for thorough evaluation before proceeding.Overall, the discussions revolve around the implementation and potential use cases of the proposed opcode CHECKLOCKTIMEVERIFY. Various ideas and concerns are raised, including mining centralization, scriptPubKey manipulation, proof-of-burn schemes, and broadcasting transactions with OP_CHECKLOCKTIMEVERIFY.


Updated on: 2023-08-01T10:22:48.727877+00:00