Nomic (
http://en.wikipedia.org/wiki/Nomic) is a very fun pen and paper game to play with friends. I've done it with friends to kill time on long bus trips a few years back: you write down a pad of paper a couple of basic rules of the game, including a few rules on how to add and vote for rules, and you keep playing in turn until the rules change enough for someone to be declared the winner or that the game becomes unplayable.
Ethereum would be a great platform for an online version of Nomic, with real stake. First you use some way to know that all players are different people (no sock puppets) and then everyone puts down some amount of money that can't be moved by the initial contract. Then the players vote on changes to the contract until someone is able to withdraw the money. Since some money will always be spent playing, if the money is distributed equally, everyone will have lost money.
Has anyone ever played Nomic?
Comments
My understanding is that as of PoC4 the code is stored separately...so basically the contract is immutable. You can't overwrite beginning storage to overwrite contract code.
So the way I'd implement this would be to have a voting mechanism for contract changes. Store the Serpent or LLL of the proposed change (full new contract) in contract storage as well as the bytecode. People can inspect the code and determine that it does in fact match the bytecode and it does what they expect (on the testchain or simulators).
Then if the vote passes a call is made to create the new contract with the new bytecode and to suicide the old contract.
Maybe there's a cleaner way to do this. Any ideas?
I don't think the sock puppet is a hard thing: it's a game, you should play with friends you already know (online or offline). It's even better to play stab-your-back games with old time friends. Resentment just adds to the fun.