user5254: I need to generate a Proof-of-Burn address for a project I'm working on.
I'm almost sure I can generate a valid "unspendable" address myself but I don't know how to make it verifiable and if there is a verified utility that can generate such an address.
I tried to read and understand this:
https://iohk.io/en/research/library/papers/proof-of-burn
This is a nice read, but I'm not sure I can fully understand any aspect of it.
For example this simple script I made create what I think is an "unspendable" address:
$ bech32 addr_xvk <<< $(for i in {1..64}; do printf "20"; done) | \
> cardano-address address payment --network-tag 1
addr1vxh2sv3tkgzkyhenvzrleamqj2dvtgxqah56gnhfc32depske34z3

And it's valid, it works, and I can also add some my own text at the beginning to make it unique, instead of 64 spaces...
But is it acceptable as a verifiable Proof-of-Burn address?
Is there any generally approved way to generate a Proof-of-Burn address on Cardano?

user2537: I think that the address you generate is plausibly unspendable but not provably. I can imagine that by tweaking a Plutus validator script with a lot of time and computing power you could generate a spendable script that compiles to some regular byte pattern hash that you can than pretend to have derived from an expression such as the one in your example. (Though, a repeating pattern of a two digit number for 128 bytes would probably be impossible to tweak.)
I haven't read the article but the easiest way to get an unspendable script address would be to take an unspendable Plutus validator script (like the one that always evaluates to 'false') and use its script address. This would be verifiable. Even better would be a script that allows cumulating funds so that you can re-use the UTxO and only have to pay the min-Ada once.
This being said, I don't think that these dead-end burn-UTxOs are a sustainable solution. They pollute the ledger and bind Ada. In the long term they inevitably get too expensive. The better solution is to design the currency policy of your token in such a way that tokens can always be burned. This requires the policy to be written in Plutus.

5254: <p>I need to generate a Proof-of-Burn address for a project I'm working on.</p>
<p>I'm almost sure I can generate a valid &quot;unspendable&quot; address myself but I don't know how to make it verifiable and if there is a verified utility that can generate such an address.</p>
<p>I tried to read and understand this:</p>
<p><a href="https://iohk.io/en/research/library/papers/proof-of-burn" rel="nofollow noreferrer">https://iohk.io/en/research/library/papers/proof-of-burn</a></p>
<p>This is a nice read, but I'm not sure I can fully understand any aspect of it.</p>
<p>For example this simple script I made create what I think is an &quot;unspendable&quot; address:</p>
<pre><code>$ bech32 addr_xvk &lt;&lt;&lt; $(for i in {1..64}; do printf &quot;20&quot;; done) | \
&gt; cardano-address address payment --network-tag 1
addr1vxh2sv3tkgzkyhenvzrleamqj2dvtgxqah56gnhfc32depske34z3
</code></pre>
<p>And it's valid, it works, and I can also add some my own text at the beginning to make it unique, instead of 64 spaces...</p>
<p>But is it acceptable as a verifiable Proof-of-Burn address?</p>
<p>Is there any generally approved way to generate a Proof-of-Burn address on Cardano?</p>
 2537: <p>I think that the address you generate is plausibly unspendable but not provably. I can imagine that by tweaking a Plutus validator script with a lot of time and computing power you could generate a spendable script that compiles to some regular byte pattern hash that you can than pretend to have derived from an expression such as the one in your example. (Though, a repeating pattern of a two digit number for 128 bytes would probably be impossible to tweak.)</p>
<p>I haven't read the article but the easiest way to get an unspendable script address would be to take an unspendable Plutus validator script (like the one that always evaluates to 'false') and use its script address. This would be verifiable. Even better would be a script that allows cumulating funds so that you can re-use the UTxO and only have to pay the min-Ada once.</p>
<p>This being said, I don't think that these dead-end burn-UTxOs are a sustainable solution. They pollute the ledger and bind Ada. In the long term they inevitably get too expensive. The better solution is to design the currency policy of your token in such a way that tokens can always be burned. This requires the policy to be written in Plutus.</p>
