-1
I would like to know if a bitcoin burn address can be tied to a string. This question is not about OP_RETURN or other ways of embedding into a blockchain.
Here's the processes that I went through:
- Create a 21-byte string (aaaaaaaaaaaaaaaaaaaaa)
- Convert this string to hex here: http://string-functions.com/string-hex.aspx. I get: 616161616161616161616161616161616161616161
- Take the SHA256 of it here twice: http://extranet.cryptomathic.com/hashcalc/index Get the first four bytes: 7df8e299
- Now I have a hex string: 7df8e299616161616161616161616161616161616161616161. I convert it using a hex to base58 encoder: https://incoherency.co.uk/base58/
- Finally I get this string: sgwP7Xqw3GWATXNF9TW3RyDG16vbzTgRHA. Which I plug into the bitcoin address cheker: http://lenschulwitz.com/base58.
- The error that I get is
Invalid Bitcoin address! Bad SHA-256 checksum!
Where did I go wrong?
2May I ask why you would want to do this? You can have an address that commits to a string without burning money. – Pieter Wuille – 2019-03-16T02:55:53.097
Sure Pieter big fan of your work. Omni transactions take up the OP_RETURN call. So if you want a cross-platform proof-of-burn token, that also puts data into the chain, you have to add tx outputs to stringified addresses. – nick carraway – 2019-03-16T03:02:12.230
1Nick, creating unspendable outputs is harmful to the Bitcoin system because it perpetually burdens nodes to carry around state relating to these coins, you should avoid doing this. If you adopt practices like this commercially and at scale, over the long run it may cause Bitcoin users to adopt countermeasures that block your activity. (and this sort of thing is eminently blockable at the cost of making addresses quite a big longer) – G. Maxwell – 2019-03-16T03:17:12.033
I will try and do it with only 0 Satoshi outputs (as part of a larger tx with more outputs). This should protect the UTXO pool. Nodes should not be holding 0 Satoshi outputs for any reason whatsoever. As far as blockchain "bloat" goes, I'm paying the fee for permanent graffiti, and it won't be very many transactions. – nick carraway – 2019-03-16T03:24:59.147
1@nick carraway: spending 0-value outputs is legal. Full nodes have no choice but to keep such outputs in their UTXO set. – Pieter Wuille – 2019-03-16T04:44:35.503
Aight well then i can try and create a new address version number for burning (to label the addresses used by my protocol) but i dont know if a node will accept it. If nodes start banning my non compliant version numbers i will just disguise them as traditional addresses. – nick carraway – 2019-03-16T17:58:53.527
@PieterWuille, you mentioned that spending 0-value outputs is legal, which is true. But generating 0-value outputs is not allowed through Core? – nick carraway – 2019-03-30T19:17:53.037
1@nickcarraway The consensus rules allow it. There are policies around the creation of dust limits, but those don't alleviate the need to keep such outputs around if they're created in a block, as validity of future blocks may depend on them. – Pieter Wuille – 2019-03-30T20:04:41.340