The Minima protocol is a paradigm shift in blockchain technology. For the first time, every user is an equal participant of a secure, scalable and truly decentralised network. Here are the highlights what makes Minima tick. For deeper insight, check out the whitepaper.
Minima is a base-layer blockchain protocol that has been in development since 2014. Designed to remain totally decentralised with no rulers, no miners and no ever-growing database.
Minima uses a simple yet powerful scripting language; cascading proof chain; adaptive block scaling; and an innovative Proof of Work backed, user-centric blockchain algorithm, that uses both on-chain and off-chain traffic for security. It's quantum secure, and small enough to run – as a complete node – efficiently on a mobile phone.
Everyone can run a complete node. Forever.
Minima’s TX-PoW has removed the need for miners, and instead requires all users to secure the chain, equally.
To do this, every user performs a small amount of work, this then combines into a block's worth of PoW. All users benefit from the total work. This way Minima removes the miners but keeps the blockchain as a single PoW-secured time-ordered list of events.
Rather than mining blocks, each transaction is mined. The process is similar to searching for blocks on any other PoW blockchain.
Every user is involved in not only validating the entire chain but also in maintaining the network and in preventing censorship attacks. All Minima users perform both the validation and construction of the blockchain.
For the user, all this happens seamlessly in the background.
Minima's cascading chain allows each user to keep the total PoW without requiring the storage of every block. Only certain 'lucky' blocks are kept, all of which reference each other, to keep a short unbroken chain of ever-increasing total PoW.
Almost all blocks and transactions are pruned, this has no negative affect on security. Once a transaction has been checked, that transaction doesn’t need checking again, a simple reference is all that is needed.
All blocks are kept for a certain period of time before being pruned, so that when a user logs on to the network they can catch up with the previous blocks.
There are three possible block types - Transaction, Block and Super Block. When the block hash difficulty is high enough it becomes a Super Block. Eventually, all blocks and data are discarded and only a chain of Super Block headers is kept as a long term store of the total PoW in the chain.
In the old world, every user had copy of every account in a big book (database). When a user wanted to send a transaction, every user had to confirm it by checking the inputs were valid, updating the books’ pages as necessary. The more transactions, the bigger the book.
With Minima, each user has a specific page in the book with their account details, and the spine of the book. When a user wants to send a transaction, they add a copy of their page, which verifiably fits the spine. Now users only store their own transactions, and a cryptographic spine no thicker than a single page.
To achieve this, Minima utilises Peter Todds’ MMR storage-less Proof DB, which allows for an almost limitless amount of provable data to be added and updated in a particular hash tree. Data proves it exists with a Merkle proof to the root of the MMR hash tree.
Each user keeps track of their own account, rather than miners (or even all users) keeping track of all the coins. This is an infinitesimally small amount of data in comparison to an entire blockchain.
Minima runs over a Peer-to-Peer network called Maxima. Every user on the Minima network is connected to every other user. Maxima opens up this P2P backbone, via a simple network API, so that users can transmit any data, not just Minima transactions, to other individual Maxima users, point-to-point and not flood-fill. This gives a method of communication that can be used by all the layer 2 protocols, such as the Lightning Network, Sidechains, Decentralised Exchanges etc.
All Maxima users run Minima. All messages pay PoW. All PoW secures Minima.
We define a:
Minima and Maxima require users to perform a small amount of work (PoW) when sending messages (data transactions). The more messages, the more PoW. The more PoW, the more secure the network is.
When users are not actively sending messages, they still to support the network, by sending PING messages. PING messages are nothing new - many other network protocols use them to monitor the health of a network. However, Minima can include far more information in these messages, we add a small amount PoW.
Add PoW to PING, you get the Pulse.
Every 10 minutes, each Minima user creates a valid Tx-PoW message, with its’ current correct block details, but leaves the transaction blank, then sends this message to each of its peers. This process is invisible to the user, happening behind the scenes.
The pulse has many benefits:
• Shares the peers’ current mempool
• Confirms the peer as a functioning Minima node
• Adds to the overall PoW security of the network.
The Pulse occurs off-chain. Only a users’ immediate peers check the Pulse message and only a block is forwarded on to the entire of the network.
The Minima consensus is driven by HashCash and Burn.
Adam Back’s HashCash was the first ‘real-world’ use of PoW, created to counter email spam. Sending millions of emails ‘costs’ nothing - a computer connected to the internet could send millions of emails in almost no time. HashCash meant that a PoW 'payment' was included whenever an email was sent. To a regular user sending a few emails per day, this was negligible, a background process that hummed for a few seconds after you press the ‘send’ button. But to a spam-machine trying to send millions of emails, this would require millions of seconds of work, an almost impossible task.
HashCash is great when only one computer is causing the attack - Denial of service (DoS), but not when multiple computers are used - Distributed Denial of Service (DDoS).
To stop a DDoS attack we need something that isn’t ‘free’ to users.
On miner-centric chains a fee must be paid for a transaction to be valid, so that one million messages now requires ‘one million fees’. Which is very prohibitive.
Minima tackles this in the opposite way, using a burn. For every transaction, a small amount of Minima is burnt, which benefits all users, because ‘burning’ reduces the total number of Minima in circulation. Unlike fees, the burn has no minimum amount, the burn may increase network traffic is heavy traffic, and reduce when traffic is lower. Minima self-regulates relative to the number of transactions.