Protein coin

=Protein coin=

bitcoin
We'd like to see if its possible to make a cryptocoin that has a useful computation for its proof of work.

first off read the satoshi btc paper

summary of satoshi paper

to protect transactions, the sender of a given transaction signs the transaction with his private key, so only the real sender can possibly have initiated the transaction. The transaction has the recipient's public key hashed into it so only the intended recipient can possibly receive the coin.



double-spending is prevented by recording all transactions - that way the totals in each wallet are always known - since this is true there are sites where one can check the coins in any given wallet. The record is kept in the 'blockchain'. Each block in the chain takes a bunch of transactions and hashes them with the hash of previous block and a nonce value, which is manipulated until the hash of the whole business starts with a bunch of zeros. This is the work in the famous 'proof of work'. Now if you try to fake a block you will change the hash and will need to figure out a nonce that gives a bunch of zeros, as well as nonces for all subsequent blocks. So the further back the block is the harder it will be to fake.



protein coin
We take protein folding as an example tho it seems to be the case that any computation that is hard to solve but easy to verify is ok. Lets take it on faith that its 'easy' (eg linear in # atoms) to verify a claim that fold F has energy E but its hard to find minima of energy. Miners run folding algorithms looking for good minima. After a given time period the best claims are checked and the best verified claim wins the mining reward for that time period. This computation has to somehow be used to protect the chain like in btc. To do that I propose deciding on the protein to be folded from a published library. The protein is chosen based on a hash of the current transactions. That protein has to be folded. The fold is verified by making sure that is a local minimum of energy. To fake a block you have to fold a protein, and like in btc if N blocks go by you have to solve N proteins. Its a little less good than btc since only a local minimum must be found while in btc a hash ending in k zeroes must be found. There is an implicit assumption that finding even 'bad' local minima of protein folding is hard in the number of atoms.

Auctioning computations might be possible (e.g. auction a computation using the coin itself, building in demand for the coin). Protein folding is a little tough since it would take as long to verify the globally best fold, as it would to find it (assuming brute force is required). To avoid this problem we take e.g. the best fold achieved in 10 minutes. This is a little messy since it requires somehow getting everyone to agree on a universal clock, but is probably possible using time servers - note that the whole blockchain idea came out of the time server idea.



user algorithms
Users can use whatever algorithm they want for folding. If someone comes up with a better folding routine, more power. But to prevent that guy from taking all the coins, you need a way to make his (and everybody's) folding code public. A nice way to do it: user A's algorithm runs on user B's machine. The codes must be shared to be run. In the next generation everyone can run whatever they want (on someone else's machine of course) including the code that won the last block or some salad of the top 10 or what have you - so the folding algorithms evolve and gets better.