Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-15 Thread Jacob Eliosoff via bitcoin-dev
> > Sorry, I was careless with the use of `>=` there. You are correct, forks > form a tree. For this proposal, every leaf must be assigned a unique > `nForkId`. The relationship between `nForkId` is irrelevant (e.g. which > number is bigger), as long as they are unique. Transactions are only valid

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-14 Thread Spartacus Rex via bitcoin-dev
Totally agree something like this required.. I've been burned. But I like the 'old' idea of putting the hash of a block that MUST be on the chain that this txn can eventually be added to. If the hash is not a valid block on the chain, the txn can't be added. It means you can choose exactly

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-14 Thread Mats Jerratsch via bitcoin-dev
> But I like the 'old' idea of putting the hash of a block that MUST be on the > chain that this txn can eventually be added to. If the hash is not a valid > block on the chain, the txn can't be added. > > It means you can choose exactly which forks you want to allow your txn on, > pre-fork

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-13 Thread Jacob Eliosoff via bitcoin-dev
> > This is actually incorrect. There are two transactions involved in LN. The > funding transaction, which opens a payment channel, and a commitment > transaction, which closes the channel when broadcasted to the network (the > cooperative closing transaction can be considered a commitment

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-13 Thread Mats Jerratsch via bitcoin-dev
> OK, so nForkId 0 is exactly the "valid on all chains" specifier I was asking > about, cool. And your LN example (and nLockTime txs in general) illustrate > why it's preferable to implement a generic replay protection scheme like > yours in advance, rather than before each fork: all ad hoc

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-11 Thread Jacob Eliosoff via bitcoin-dev
OK, so nForkId 0 is exactly the "valid on all chains" specifier I was asking about, cool. And your LN example (and nLockTime txs in general) illustrate why it's preferable to implement a generic replay protection scheme like yours *in advance*, rather than before each fork: all ad hoc RP schemes

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-10 Thread Mats Jerratsch via bitcoin-dev
I guess I wasn't clear on the wildcard, `nForkId=0` This proposal puts Bitcoin at `nForkId=1`, with the purpose of having `nForkId=0` valid on *all* future forks. This means you can create a `nLockTime` transaction, delete the private key and still be assured to not lose potential future

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-08 Thread Mats Jerratsch via bitcoin-dev
Hey Jacob! > Take the specific and common case of non-upgraded wallet software. Suppose a > HF happens, and becomes the network used by 90% of users. Will old wallets > still default to the old nForkId (10% legacy chain)? If so, I'd expect a lot > of accidental mis-sends on that chain.

Re: [bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-06 Thread Jacob Eliosoff via bitcoin-dev
Thanks Mats, this proposal makes sense to me (especially the idea of fork-specific addresses). It prevents replay across forks, and makes it easy for client software, and thus potentially users, to specify which fork a tx is for. But, like other (rougher) past proposals I've seen, it does little

[bitcoin-dev] Generalised Replay Protection for Future Hard Forks

2017-11-06 Thread Mats Jerratsch via bitcoin-dev
Presented is a generalised way of providing replay protection for future hard forks. On top of replay protection, this schema also allows for fork-distinct addresses and potentially a way to opt-out of replay protection of any fork, where deemed necessary (can be beneficial for some L2