Bitcoin is a great innovation in how we digitally hold and transfer value. Coding user-facing applications for blockchain-based technologies requires to delve deep into how these technologies work and to examine carefully the unique challenges and trade-offs.
I am particularly interested in game theory games coded on trust-less blockchains and identifying trade-off between design, user experience, auditability and trust.
Here are some of my attempts at coding on Ethereum. Although the DApps listed below are still “work in progress”, they seem to work as intended (testing live DApps is really hard). Currently deployed on the Ethereum testnet, so grab some free Ropsten testnet ETH from a faucet and give them a try. (requires Metamask). Comments and suggestions welcome! Collaborators too!
The alias service is contract registry with a twist. You can create list of contract aliases and call them from your contracts. You could of course easily create your own contract with aliases but what if you want to access already existing lists? I added a function to delegate access to your lists to external contracts for a fee (which can be 0 if you wish). (The lists can be of course accessed directly on the network but it can be a bit tedious). This may be useful if you have multiple contracts accessing the same external contract and don’t want to mess up the contract addresses. All you need to do is to remember the Alias Service contract address and the aliases like “My First Cool Contract”.
I am currently researching the use of schema for Ethereum contract introspection.
Richard Thaler’s Guessing Game
Guess the Number illustrates that when faced with logic based decisions, people act irrationally, but it is equally irrational to overlook this in your own assessment; being smart isn’t enough you need to be smart enough to understand and account for other people’s shortcomings.
I coded this classic game on Ethereum. It was fun but there surely are better ways to do that with sidechains. Sidechains or coding on L2 also solve the problem of data confidentiality, user experience and speed.
Many ideas for other games. It takes however a long time for me to code and test them properly.