Recently had a conversation about a weird use case for ILP, thought it would be fun to write up. The challenge is as follows: how can we utilize ILP’s trust model for non-fungible assets like Cryptokitties?
A fun solution is to place the kitty into a smart contract which maintains a token and a
resolveOwner function. On
resolveOwner, the contract looks at all token balances, and randomly distributes the kitty to an owner with probability equivalent to the relative balance of each token holder.
The token balance would be initialized as fully owned by the initial owner of the kitty. Then, they may put that token in a payment channel, and stream the token like any other. Each packet would be equivalent to giving up a small probability of owning the kitty after the contract is resolved.
In expected value, this should be equivalent to sending “fractions” of the indivisible object. Of course, since that’s only in expected value, this might not be an appealing option unless you’re trading many kitties–at which point, you might argue you should stream individual kitties and execute trades over large batches of kitties. Nevertheless, this construction does allow you to trade “one at a time” instead of in batches.