Contradiction in BIP65 text?
6 messages, 13 to 14 Nov 2015. Started by xor.
xor (3), Greg Maxwell (2), Jeff Garzik
BIP65 [1] says this:
Quoted text (6 lines)
> Motivation > [...] > However, the nLockTime field can't prove that it is impossible to spend a > transaction output until some time in the future, as there is no way to > know if a valid signature for a different transaction spending that output > has been created.
I'd interpret "can't prove that it is impossible to spend" = cannot be used for freezing funds.
Then later, at "Motivation", it says:
Quoted text (5 lines)
> Freezing Funds > > In addition to using cold storage, hardware wallets, and P2SH multisig > outputs to control funds, now funds can be frozen in UTXOs directly on the > blockchain.
This clearly says that funds can be frozen. Can the BIP65-thing be used to freeze funds or can it not be?
Notice: I am by no means someone who is able to read Bitcoin script. I'm rather an end user. So maybe I'm misinterpreting the document? I'm nevertheless trying to provide a "neutral" review from an outsider who's trying to understand whats new in 0.11.2. You may want to discard my opinion if you think that BIP65 is aimed at an audience with more experience.
Greetings and thanks for your work!
[1] https://github.com/bitcoin/bips/blob/d0cab0379aa50cdf4a9d1ab9e29c3366034ad77f/bip-0065.mediawiki
On Fri, Nov 13, 2015 at 9:48 PM, xor via bitcoin-dev <bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (27 lines)
> BIP65 [1] says this: >> Motivation >> [...] >> However, the nLockTime field can't prove that it is impossible to spend a >> transaction output until some time in the future, as there is no way to >> know if a valid signature for a different transaction spending that output >> has been created. > > I'd interpret "can't prove that it is impossible to spend" = cannot be used > for freezing funds. > > Then later, at "Motivation", it says: >> Freezing Funds >> >> In addition to using cold storage, hardware wallets, and P2SH multisig >> outputs to control funds, now funds can be frozen in UTXOs directly on the >> blockchain. > > This clearly says that funds can be frozen. > Can the BIP65-thing be used to freeze funds or can it not be? > > Notice: I am by no means someone who is able to read Bitcoin script. I'm > rather an end user. So maybe I'm misinterpreting the document? > I'm nevertheless trying to provide a "neutral" review from an outsider who's > trying to understand whats new in 0.11.2. > You may want to discard my opinion if you think that BIP65 is aimed at an > audience with more experience.
The first text is explaining nlocktime without BIP65 in order to explain the reason for having BIP65.
On Friday, November 13, 2015 09:53:57 PM Gregory Maxwell wrote:
Quoted text (2 lines)
> The first text is explaining nlocktime without BIP65 in order to > explain the reason for having BIP65.
Thanks. I would recommend changing the BIP65 to clarify what you just said, this clearly is the missing piece of information there.
On Fri, Nov 13, 2015 at 4:48 PM, xor via bitcoin-dev < bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (3 lines)
> This clearly says that funds can be frozen. > Can the BIP65-thing be used to freeze funds or can it not be? >
This language definitely trips up or worries several folks - it's been mentioned a few times before.
The user _chooses_ to freeze _their own_ funds. It is not an unwilling act of force, which many assume when they see the phrase "freeze funds."
On Fri, Nov 13, 2015 at 11:58 PM, Jeff Garzik via bitcoin-dev <bitcoin-dev@lists•linuxfoundation•org> wrote:
Quoted text (10 lines)
> On Fri, Nov 13, 2015 at 4:48 PM, xor via bitcoin-dev > <bitcoin-dev@lists•linuxfoundation•org> wrote: >> >> This clearly says that funds can be frozen. >> Can the BIP65-thing be used to freeze funds or can it not be? > This language definitely trips up or worries several folks - it's been > mentioned a few times before. > > The user _chooses_ to freeze _their own_ funds. It is not an unwilling act > of force, which many assume when they see the phrase "freeze funds."
The most frequent related point of confusion I see is that people have a dangerously wrong mental model of how scrpitpubkeys work.
It seems people think that wallets will infer whatever they can possibly spend and display that. This is not how wallets work, and if any wallet were ever created like that its users would immediately go broke (and it's author should be taken out and shot. :) ).
Rather, wallets must only display funds paid to scriptpubkeys (also addresses) they actually generated or, at least, would have generated.
Otherwise someone can just create a 1 of 2 {them, you} multisig and then claw back the coins after you think you've been paid.
As such there is no risk of anyone sneaking in CLTV locked funds for on you except by virtue of spectacular software bugs that would likely cause you to destroy funds in a zillion other ways first.
On Friday, November 13, 2015 06:58:07 PM Jeff Garzik wrote:
Quoted text (11 lines)
> On Fri, Nov 13, 2015 at 4:48 PM, xor via bitcoin-dev < > > bitcoin-dev@lists•linuxfoundation•org> wrote: > > This clearly says that funds can be frozen. > > Can the BIP65-thing be used to freeze funds or can it not be? > > This language definitely trips up or worries several folks - it's been > mentioned a few times before. > > The user _chooses_ to freeze _their own_ funds. It is not an unwilling act > of force, which many assume when they see the phrase "freeze funds."
Oh, interesting, albeit that was not subject of my question.
My question in fact was whether *I* can use it to freeze *my* funds; because I think that would be an interesting feature for various purposes. From the state of BIP65 I talked about, it is not even clear whether that is possible.
Your observation beyond that is a valid concern though. So both should be addressed.