[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