Re: [Bitcoin-development] 75%/95% threshold for transaction versions

2015-04-16 Thread s7r
Hi Pieter,

Thanks for your reply. I agree. Allen has a good point in the previous
email too, so the suggestion might not fix anything and complicate things.

The problem I am trying to solve is making all transactions
non-malleable by default. I guess there is a very good reason why BIP62
will not touch v1 anyway.

I am trying to build a bitcoin contract which will relay on 3 things:
- coinjoin / txes with inputs from multiple users which are signed by
all users after they are merged together (every user is sure his coins
will not be spent without the other users to spend anything, as per
agreed contract);
- pre-signed txes with nLockTime 'n' weeks. These txes will be signed
before the inputs being spent are broadcasted/confirmed, using the txid
provided by the user before broadcasting it. Malleability hurts here.
- P2SH

In simple terms, how malleable transactions really are in the network at
this moment? Who can alter a txid without invalidating the tx? Just the
parties who sign it? The miners? Anyone in the network? This is a little
bit unclear to me.

Another thing I would like to confirm, the 3 pieces of the bitcoin
protocol mentioned above will be supported in _any_ future transaction
version or block version, regardless what changes are made or features
added to bitcoin core? The contract needs to be built and left unchanged
for a very very long period of time...


On 4/16/2015 8:22 AM, Pieter Wuille wrote:
 
 On Apr 16, 2015 1:46 AM, s7r s...@sky-ip.org mailto:s...@sky-ip.org
 wrote:
 but for transaction versions? In simple terms, if  75% from all the
 transactions in the latest 1000 blocks are version 'n', mark all
 previous transaction versions as non-standard and if  95% from all the
 transactions in the latest 1000 blocks are version 'n' mark all previous
 transaction versions as invalid.
 
 What problem are you trying to solve?
 
 The reason why BIP62 (as specified, it is just a draft) does not make v1
 transactions invalid is because it is opt-in. The creator of a
 transaction needs to agree to protect it from malleability, and this
 subjects him to extra rules in the creation.
 
 Forcing v3 transactions would require every piece of wallet software to
 be changed.
 
 -- 
 Pieter
 

--
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] 75%/95% threshold for transaction versions

2015-04-16 Thread Mark Friedenbach
At this moment anyone can alter the txid. Assume transactions are 100%
malleable.
On Apr 16, 2015 9:13 AM, s7r s...@sky-ip.org wrote:

 Hi Pieter,

 Thanks for your reply. I agree. Allen has a good point in the previous
 email too, so the suggestion might not fix anything and complicate things.

 The problem I am trying to solve is making all transactions
 non-malleable by default. I guess there is a very good reason why BIP62
 will not touch v1 anyway.

 I am trying to build a bitcoin contract which will relay on 3 things:
 - coinjoin / txes with inputs from multiple users which are signed by
 all users after they are merged together (every user is sure his coins
 will not be spent without the other users to spend anything, as per
 agreed contract);
 - pre-signed txes with nLockTime 'n' weeks. These txes will be signed
 before the inputs being spent are broadcasted/confirmed, using the txid
 provided by the user before broadcasting it. Malleability hurts here.
 - P2SH

 In simple terms, how malleable transactions really are in the network at
 this moment? Who can alter a txid without invalidating the tx? Just the
 parties who sign it? The miners? Anyone in the network? This is a little
 bit unclear to me.

 Another thing I would like to confirm, the 3 pieces of the bitcoin
 protocol mentioned above will be supported in _any_ future transaction
 version or block version, regardless what changes are made or features
 added to bitcoin core? The contract needs to be built and left unchanged
 for a very very long period of time...


 On 4/16/2015 8:22 AM, Pieter Wuille wrote:
 
  On Apr 16, 2015 1:46 AM, s7r s...@sky-ip.org mailto:s...@sky-ip.org
  wrote:
  but for transaction versions? In simple terms, if  75% from all the
  transactions in the latest 1000 blocks are version 'n', mark all
  previous transaction versions as non-standard and if  95% from all the
  transactions in the latest 1000 blocks are version 'n' mark all previous
  transaction versions as invalid.
 
  What problem are you trying to solve?
 
  The reason why BIP62 (as specified, it is just a draft) does not make v1
  transactions invalid is because it is opt-in. The creator of a
  transaction needs to agree to protect it from malleability, and this
  subjects him to extra rules in the creation.
 
  Forcing v3 transactions would require every piece of wallet software to
  be changed.
 
  --
  Pieter
 


 --
 BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
 Develop your own process in accordance with the BPMN 2 standard
 Learn Process modeling best practices with Bonita BPM through live
 exercises
 http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
 event?utm_
 source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development

--
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] 75%/95% threshold for transaction versions

2015-04-16 Thread s7r


On 4/16/2015 8:34 PM, Mark Friedenbach wrote:
 At this moment anyone can alter the txid. Assume transactions are 100%
 malleable.
 

Anyone can alter the txid - more details needed. The number of altered
txids in practice is not so high in order to make us believe anyone can
do it easily. It is obvious that all current bitcoin transactions are
malleable, but not by anyone and not that easy. At least I like to think so.

From your answer I understand that right now if I create a transaction
(tx1) and broadcast it, you can alter its txid at your will, without any
mining power and/or access to my private keys so I would end up not
recognizing my own transaction and probably my change too (if my systems
rely hardly on txid)?

 On Apr 16, 2015 9:13 AM, s7r s...@sky-ip.org mailto:s...@sky-ip.org
 wrote:
 
 Hi Pieter,
 
 Thanks for your reply. I agree. Allen has a good point in the previous
 email too, so the suggestion might not fix anything and complicate
 things.
 
 The problem I am trying to solve is making all transactions
 non-malleable by default. I guess there is a very good reason why BIP62
 will not touch v1 anyway.
 
 I am trying to build a bitcoin contract which will relay on 3 things:
 - coinjoin / txes with inputs from multiple users which are signed by
 all users after they are merged together (every user is sure his coins
 will not be spent without the other users to spend anything, as per
 agreed contract);
 - pre-signed txes with nLockTime 'n' weeks. These txes will be signed
 before the inputs being spent are broadcasted/confirmed, using the txid
 provided by the user before broadcasting it. Malleability hurts here.
 - P2SH
 
 In simple terms, how malleable transactions really are in the network at
 this moment? Who can alter a txid without invalidating the tx? Just the
 parties who sign it? The miners? Anyone in the network? This is a little
 bit unclear to me.
 
 Another thing I would like to confirm, the 3 pieces of the bitcoin
 protocol mentioned above will be supported in _any_ future transaction
 version or block version, regardless what changes are made or features
 added to bitcoin core? The contract needs to be built and left unchanged
 for a very very long period of time...
 
 
 On 4/16/2015 8:22 AM, Pieter Wuille wrote:
 
  On Apr 16, 2015 1:46 AM, s7r s...@sky-ip.org
 mailto:s...@sky-ip.org mailto:s...@sky-ip.org 
 mailto:s...@sky-ip.org
  wrote:
  but for transaction versions? In simple terms, if  75% from all the
  transactions in the latest 1000 blocks are version 'n', mark all
  previous transaction versions as non-standard and if  95% from
 all the
  transactions in the latest 1000 blocks are version 'n' mark all
 previous
  transaction versions as invalid.
 
  What problem are you trying to solve?
 
  The reason why BIP62 (as specified, it is just a draft) does not
 make v1
  transactions invalid is because it is opt-in. The creator of a
  transaction needs to agree to protect it from malleability, and this
  subjects him to extra rules in the creation.
 
  Forcing v3 transactions would require every piece of wallet
 software to
  be changed.
 
  --
  Pieter
 
 
 
 --
 BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
 Develop your own process in accordance with the BPMN 2 standard
 Learn Process modeling best practices with Bonita BPM through live
 exercises
 http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
 event?utm_
 source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 mailto:Bitcoin-development@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/bitcoin-development
 

--
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15utm_medium=emailutm_campaign=VA_SF
___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development