[Bitcoin-ml] Malleability Fix SIGHASH_ANYOUTPUT

Tom Zander tomz at freedommail.ch
Mon Oct 9 09:28:25 UTC 2017


On Sunday, 8 October 2017 19:17:19 CEST Tomas via bitcoin-ml wrote:
> I don't see a problem with transaction malleability if you publish
> transactions on-chain.

This is an interesting point of view. I definitely think you are quite wong 
in that regard.

I'm not going to argue that malleability is a big thing that needs fixing as 
soon as possible, as we know its not really high on the priority list as 
many other things are in need of being done first.
But one thing is very clear in my mind, IT IS a bug in the protocol that 
needs fixing. (at least opt-in).

Let me give you a simple usecase where this is relevant. One that is often 
overlooked by developers because they focus on bitcoin technology only, 
forgetting how the rest of the world works today,


Today we have lots of companies that cash a check or take a bank-transfer 
every month or so to get paid. Lets take as an example a building-society. 
One that owns various flats or buildings and rents them out to a large number 
of tenants.
Their current system is one where they have simple software to monitor the 
payment history of every tenant. They briefly connect to the bank to get new 
incoming payments once a day or so.
The information they get from that will get pushed into their administration 
software. That software will send payment reminders letters etc.

Now imagine a good portion of the people will want to start paying with 
Bitcoin instead.

If malleability is a problem we have several ways that this can be 
implemented. Without exception they need either an external company doing 
the payment processing or they need an actual full node on site to monitor 
the traffic or create new incoming addresses.
Both of these solutions are not acceptable for the majority of companies. 
They require a huge investment in both trust and infrastructure.

If malleability if fixed, on the other hand, stuff suddenly gets dead simple.
The building society puts out one address for all incoming payments. 
Probably one address per month. for all tenants. Each tenant sends their 
payment and communicates the txid they used to the building society.
Naturally wallets need to be updated to show the txid before sending the 
transaction to the network, but this is a rather low effort fix, don't you 
think so? (full node wallets actually already do that).
Once a day the building society connects to an online API the same way they 
connect to the bank. They check if the incoming transactions actually got 
confirmed and are the right amount.
Simple to add to most existing software.
Practical because the company hardly needs to change their ways of working.


In short, malleability takes away a rather large portion of usability that 
people currently have in actual normal banking. Which is that a specific 
transaction can be identified. Normal banking does this with a comment, we 
use a transaction-id.
To not fix this means we force people to jump from zero crypto currency all 
the way to being a very involved crypto-currency company in one go. And in 
real life that's just not how things work.

Fixing malleability allows people to have more certainty on some of the 
simple things in Bitcoin.
Keeping Bitcoin simple for average people is certainly something I think is 
valuable.

-- 
Tom Zander
Blog: https://zander.github.io
Vlog: https://vimeo.com/channels/tomscryptochannel


More information about the bitcoin-ml mailing list