rob -
To ensure this data entry is never altered, is it possible to set this weight extremely high?
The "manage data" operation has the same weight as most of the other account operations, so I don't think there's be a way to prevent managing data without also crippling the entire account. Since "manage data" is medium, if you wanted to lock someone out of it you'd also lock them out of everything besides "allow trust".
Essentially, a trusted entity creates cats....
Cryptokitties is an interesting example because the value of a cat is entirely tied to its appearance and even though the data behind a cat is stored on the blockchain the appearance comes from how it looks on a specific website. At least that's how I understand it, I'm not a cryptokitties expert. ?
If I was going to recreate that in Stellar and make it truly distributed, I'd publish some art assets and an algorithm for generating a random number and then turning that number into a set of properties that rendered a cat (color, stripes vs. spots, does it have crazy whiskers, etc.)
Instead of using data values I think you could use the public key of an account as part of the random number generator. Since you can generate tons of keypairs for free offline, you'd also have to add in another source of entropy. So, taking a rough stab at a cryptokitties algorithm:
- Generate a keypair. This represents a cryptokitty.
- Fund the account and keep track of the hash of the ledger that the account was funded in (call it L0)
- Wait until 5 more ledgers have passed
- Calculate the sha256 of public key + L0 hash + L1 hash + L2 hash + ... + L5 hash
- Use the value calculated in step 4 as the seed of a random number generator
- Use some agreed upon algorithm to generate and display the graphic for the kitty
As long as everyone agrees on the RNG algorithm and is using the same art assets, they should all agree what the resulting kitty looks like. Since you have to fund an account and wait 5 ledgers, there's a price for creating new kitties so you can't generate an infinite number offline and wait until you get one that looks cool and might be valuable. Hopefully it's not possible to control the hash of 5 Ledgers, so you have a source of entropy.
I think that would let you get rid of the "cat god" and still have valuable cats.
Also, I am very interested in decentralized poker (Mental Poker) and brainstorming how this may work with Stellar's "Smart Contracting" capabilities.
That's a really neat problem, perhaps you could use the same technique of getting entropy from Ledger hashes to make a fair card shuffling algorithm? Great suggestion for a smart contract example!