Update 2/23: The contract is now live!

So one of my all time favorite bands is this band named HORSE the band; they’re kind of a cerebral thrash metal band with chiptune influences or…I don’t know, you decide what they are:

Lots more fantastic HTB on Soundcloud…

Perhaps not everyone’s cup of tea, but I love them! And hey, this is supposed to be the promise of the information era: People with obscure “long tail” interests are enabled to work together and expand the catalog of media in a multitude of different dimensions, be it literature, film, or music — even if we don’t all have the same tastes, in the aggregate we will all be better off if we can establish a universal environment open to experimentation and exploration.

Anyway, HTB hadn’t put out any material in a while — so I sent the band an email to let them know I wanted to donate some funds, no strings attached, but with the hope that maybe, possibly, we’d see some new HTB material one day. I told them I could send the donation in dollars or, if they were familiar with cryptocurrencies, I could also send them the funds in ether.

Here was their response:

Wow. This is very nice of you. Thank you. :) Dave and I discussed and we think the best thing to do would be for you to make a smart contract for us in ethereum that gets released when we release the 3 songs we’re in the middle of recording (and have been for the past year). That way me [Erik] and Nathan have an incentive to finish our parts. Is that possible? Thanks again man. What an awesome email to get! Erik

Much to my surprise, not only are they in the process right now of releasing new material for an EP, but they are also savvy about cryptocurrency… and have already come up with a fantastic use case for Ethereum!!!

Designing The Contract

Alright, so at this point I had to design a contract with the desired capabilities requested by the band. For safety, I decided to base the contract on Christian Lundkvist’s security-first multisig contract, which he described in detail here:

Using this multisig contract, I could designate 4 people as signatories for the funds, and enable a 2 out of 4 multisig process for performing actions in the contract. These signers will be tasked with attesting when the new album is fully mixed and also when it has been released.

Also, I had to perform two additional modifications to the contract to enable important new functionality.

Modification #1: Payout in 3 Phases

I decided that payouts to the contract would happen in three phases:

The first phase will be a minimal amount of funds (< 0.1 ETH) and will enable us to perform a live test of the signing process and the band member’s ethereum wallets before the bulk of the funds have been committed to the contract. When this phase completes successfully, I will submit my full donation into the contract. After the album has been fully mixed, the signatories can unlock up to 1/3rd of the funds for the first milestone of the new album. This milestone will be unlocked when the band sends emails to the signatories notifying them that the mix is complete (i.e., we’re validating whether the mix is complete based on the honor system.) After the album has been publicly released, the signatories will unlock the remaining funds.

Excerpt from the “execute” member function that restricts payout amount based on withdrawal nonce.

Modification #2: Payout is Split Between Band Members with Hardcoded Destination Addresses

Besides being able to release the funds based on milestones, smart contracts allow us to provide many other compelling benefits, especially if we design the final contract to only send payouts to hardcoded destination addresses. By combining multisig with hardcoded destination addresses (e.g., two specific addresses belonging to two of the band members) we give the band some important additional guarantees:

There is a guarantee that the donation cannot be withdrawn due to a change of heart of the donating person.

It is impossible for the signatories to abscond with any funds.

It is also difficult for any signatories to extort the band for a portion of the funds. This is because the multisig process would require collusion of at least 3 of the 4 signatories to prevent a valid signature set from being supplied.

Additionally, by having automatic splitting of the payout between multiple band member accounts, we can provide greater assurance to the band members that the funds will be distributed fairly; and, of course, the transparency of transactions on the public blockchain makes it easy for all band members to get accurate accounting of all funds.

Excerpt from the “execute” contract function which splits payout evenly between two predetermined band member accounts.

The Completed Contract

The most recent version of the smart contract can now be viewed on github, with all the planned modifications in place. I would encourage any experienced smart contract developers to take a peek and let me know if they see any potential issues with the final code — I’ll wait at least a week before deploying this contract to take into account all feedback that is received from this medium post.

Conclusion

There are many opportunities for improving the music industry with ethereum smart contracts — it is an industry rife with inefficiencies and coordination problems. Hopefully large-scale ethereum projects, such as the promising ujo project and others, will be able to help solve these problems.

However, the promise of blockchain tech is that it is decentralized and that nobody needs to wait for “someone else” to solve all the big problems — Instead, each of us is already free to start using this tech at any point and in permission-less ways, to immediately solve small and highly personal problems. But mostly, it’s just super fun to try out new ideas!

Final Note: If you have interest in supporting this experiment, and simultaneously supporting HORSE the band’s new EP, please follow my twitter feed where I will publish the address of the final, official contract once it is live. Any ether send to this contract will automatically augment the donation and will be similarly distributed to the band members based on the rules of the contract. At that point, I will also publicly announce the 4 official signatories.

I am confident the contract will be live on the ethereum mainnet within the next week or two- Stay Tuned!

Conrad Barski

CEO, ForwardBlockchain.com

twitter: @lisperati

email: lisperati@gmail.com