Commitment Hashes are nothing more than cryptographic IoUs on the Ethereum blockchain. If you still haven’t got the idea, then continue reading.

In this post, I describe a very simple implementation of commitment hashes on the Ethereum blockchain. A Commitment hash is a special hash very similar to how commitment transactions work in the Lightning Network Whitepaper. If you haven’t read it yet, I would highly recommend going through it once.

Commitment hashes are a great way for creating blockchain applications that are simple and easy to use. Commitment hashes don’t need to be broadcast onto the blockchain but the very possession of them ensure that the user can claim something in the future. It’s like an IoU that is given to users.

But before we deep into the what/why of commitment hashes, I first will explain the problem for which I was trying to solve this for.

ENA coins and using the blockchain for music

On June 2018, I had met with Ena Marley, a wonderful and incredibly talented spanish musician who wanted to use her ideas on creating music that’d leave a deep social impact.

After a few weeks of discussion, we decided to launch a project that would create a cryptocurrency that will be used to represent shares in an artist (in this case called as ENA coins). Users/fans of the artist, would use the cryptocurrency to interact with the artist and earn royalties from the artist’s success.

However, the challenge with cryptocurrencies and making it easier for the public to use it

It’s pretty clear that 99.99% of Ena’s fans won’t even know what Ethereum is, let alone have even heard of Bitcoin. Which is a problem because it can really become hard for people to understand how to use the platform.

Since most users won’t have any Ether amongst themselves, the only way for people to interact with ENA coins was if somehow they were to interact with the blockchain and not pay any transaction fees at all.

Which means probably the site would have to pay for the transaction fees on behalf of the user if it needs to make any transaction. This clearly becomes very expensive as the number of users grows.