changes italicized
ETA: based on my current rate of output, heat death of universe
Proof-of-work algorithm:
The block header is hashed with Keccak[r=1416,c=184] with 8192 bits (1 kibibyte) of output. Using a sequential memory-hard function, the previous hash is hashed again, repeatedly until it is hashed ((1.04^(months past first block))*1.5*difficulty) (rounded down) times. The block headers are then hashed again with Keccak[r=1088,c=512] with 256 bits of output. The previous hash outputs are then collectively hashed using Keccak[r=1344,c=256] with 256 bits of output. In order for the hash to be accepted, it must have an equal or greater number of leading zeroes then the difficulty target.
The intent is simple, to make this ASIC resistant (no one can determine the precise amount of memory needed for an ASIC miner, and thus some chip space will be underutilized), and to be within the cache limits of a CPU to allow mobile devices to still be able to confirm blocks.
Block reward and block difficulty will be retargeted every 660 blocks. The difficulty will target generating a new block every 15 minutes. The block reward will be targeted to equal 200*(difficulty-minimum_difficulty) coins per block.
This is meant to stabilize prices and incentive miners to mine, an increase in economic security (through an increase in liquidity) and an increase in computational security.
Block difficulty is the count of the required number of leading zero bits for a hash. While this decreases precision, it is unlikely for this to matter significantly. It is also unlikely that the distribution of outputs with most pseudorandom functions immune to preimage attacks to be 100% uniformly distributed. This of course means that the average block will be generated between 10 minutes and 22.5 minutes, but averages are a fiction anyway, since it can take between a millisecond and a day for a block to be generated for any cryptocoin.
Block header contains only block number, 8-byte nonce, and merkle root. Version, previous hash, difficulty, timestamp, extranonce, and transactions are located within the merkle root. The difficulty is a one-byte value.
Block fees will be charged per byte of a block, however the first kilobyte for a block is free (the block header and first transaction ought to be free). Block fees will be sent to an invalid address, this is a fee that is effectively collected by the entire community to avoid miners or other entities from causing a tragedy of the commons by spamming the blockchain with either data or dust transactions. Its conceivable that in the future cryptocoins which round up to the nearest kibibyte will result in people using the spare room in their transactions to upload a book byte by byte. Block fees will be 0.002 coins per byte, although in the beginning block fees are too insignificant to matter. For every additional megabyte, marginal block fees per byte doubles.
The first 67,500 blocks may not be larger than one megabyte to prevent blockchain spam. The first 200,000 blocks may not be larger than two megabytes for the same reason.
Transaction fees will be a means for miners to make profit and to pay off block fees. Transactions fees could be at minimum 0.002 coins per byte.
Smallest coin size will be 0.0001.
Transactions in a future version should include data. It is wrong restricting the ability to add data to the blockchain to miners.
Sanity check for maximum transaction or maximum coins per block is 66000*difficulty.
Terminology will be changed. Wallets for this coin will be password managers, and each private key is a password. This is more accessible to relative laymen and might prevent certain forms of confusion. It is doubtable an absolute layman will ever be able to truly access a cryptocoin without an online wallet.
The client will ideally include a way to open a bootstrap file, instead of manually navigating through folders and moving files around. The bootstrap file extension should be changed to .ledger.
Future plans: Restrict stored transactions per public key to 1 until a block includes the transaction. Delete transactions stored after a week.