Will it be possible for a contract to replicate itself?
Why would you want this you ask? Consider the following example:
A notary contract
- Stores hashes of documents in the contract storage.
- A contract plugin will allow you to open a document and verify if (and if so when) the has of the document has been stored in the Etherum blockchain.
- When the contract storage is almost full, the contract uses parts of the received ether to open a new contract, so it has new storage available.
- It will notify a 'tracker' contract of it's new location by sending a transaction with a small amount of either to the tracker contract, which stores the senders address in address storage.
An alternative would be to store the hashes off-blockchain, and just use the contract for the payment and verification (in the same way as the dropbox alternative example in the whitepaper).