This is a list of improvements over Bitcoin that make Nimblecoin outstanding.
The main features are:
- Confirmation of transactions in 20 seconds (4 block confirmations)
- Safe merged-mining
- Extended scripting language.
- No transaction malleability
- Steady money supply to keep an incentive on mining after initial inflationary bootstrapping period.
- Almost no pre-mining (minimum pre-mining is required to bootstrap the safe merged-mining system)
Here is a list of every technical change that is required to support the main features:
Confirmation of transactions in 20 seconds (4 block confirmations)
- 5 seconds block interval
- Full network propagation of last competing blocks to prevent selfish mining and reduce stale block rate.
- Transactions are delayed 5 seconds on each miner’s block transaction queue to allow the fastest possible block verification, because transactions are already present in the pools of every node of the network.
- New network command to spread block headers with time critical priority.
- New network command to spread block transactions hash list immediately after block header propagates.
- Mining over block headers with unverified transactions with a 5 seconds fall-back.
- Block headers are flagged when they have no transactions (except for coinbase)
- New message transport layer with message-slicing allowing two parallel sessions with distinct priority. This allows block headers to be sent over the high priority session and interrupt whatever message was being transmitted over the low priority session.
- Local optimal block routing based on peer priorities.
- Local optimal transaction routing based on peer priorities
Extended scripting language
- Pay2hash is not anymore implemented as : OP_HASH160 <scriptHash> OP_EQUAL. it’s implemented as: in the output, the LAST value pushed in the stack is the script. The input is: OP_DUP OP_HASH160 <scriptHash> OP_EQUAL OP_EVAL. OP_EVALs are only be available during the execution of a scriptpubkey and nested OP_EVALs are not permitted.
- All Bitcoin opcodes are enabled by default.
- Opcodes extended to handle up to 4096 bit numbers.
- New flow control opcodes:
OP_CONDITIONAL_JUMP , OP_JUMP, OP_STOP
- New crypto-related opcodes:
OP_MODEXP, OP_INVERSE, OP_SCRYPT , OP_SHA3, and more..
- New bit-handling opcodes:
OP_GETBIT <index> / OP_SETBIT <index> <value> (bit manipulation)
- Special transaction to register and merged miner identity. Registration payment can go to the NimbleCoin Foundation or be burned (the merged miner can choose freely between these two options).
- Punishment on miners which publish two blocks with same height
No transaction malleability
- New OP_PUSH_MALLEABLE_DATA opcode to push data that is stored out of the hashed transaction.
- Input script are fully hashed