Introducing the Browser-based Blockchain
Nimiq is a third-generation Blockchain designed for simplicity. Its core values are ease-of-use, scalability and speed.
(This document is very high-level. If you are looking for more in-depth tech specs, read our Whitepaper)
To lower barriers of entry for both users and developers, Nimiq is browser-based.
There are two kinds of nodes: browser nodes and backbone nodes. Backbone nodes run on NodeJS and use the same code base as the browser nodes. Backbone nodes communicate with each other and Browsers via WebSocket. Backbone nodes also act as signaling servers for browsers to establish WebRTC connections.
Browser nodes use the IndexedDB to store the Blockchain Data. Backbone nodes use LevelDB.
The standard Bitcoin and Ethereum Clients download about 100 GB to establish consensus with the network. This is a huge barrier for most users, and has led to only “elite” users actually capable of participating in the network without an intermediary.
Nimiq solves this problem by leveraging the Mini-Blockchain Scheme and allowing for Light-Clients. By introducing an AccountsTree (similar to Ethereums Merkle-Patricia-Tree) and the concept of a Headers Chain, the protocol can discard almost all old blocks and only download and store a couple of megabytes.
Additionally, Micro-Clients only download a segment of the Header Chain and slices of the AccountsTree that are relevant to the user’s accounts. Which means only a few kilobytes will be downloaded in order to participate trustless and without an intermediary.
By introducing Hashed Timelock Contracts (HTLCs), users can establish Payment Channels with each other to send Off-Chain Transactions.
Off-Chain Transactions are as secure as regular On-Chain Transactions, and they don’t require any space in the Blockchain itself. These transactions are instant because the payment is settled immediately once the recipient receives the transaction — no block confirmation is necessary and the cost is minimal.
With Hashed Timelock Contracts, users can establish networks of payment channels in which participants can exchange payments even if they have not established a direct payment channel with each other.
Browser Library and the Miner Demonstration
The most fundamental part of the Nimiq Ecosystem is the Browser Library. It enables any website to become a first-class citizen of the Nimiq network.
It can synchronize with the network, validate the Blockchain, query account balances as well as create and send transactions.
The Nimiq Betanet interface showcases the features of this library.
Web-based Wallet (Beta June 2017)
The web-based wallet uses the browser library to provide users with a wallet for everyday use.
The main goal is to provide a first-class user experience and empower inexperienced users to become familiar with the Blockchain technology.
Educating users about unfamiliar aspects of Blockchain technology will be key to the wallet interface — i.e., explain the need for confirmations and how to keep private keys secure.
Functionality to print cold wallets that store funds with physical security will also be integrated.
Peer-to-Peer Exchange (Beta Q4 2017)
The Peer-to-Peer Exchange will make exchanging Nimiqs into local fiat currency easy, fast and cheap.
There are multiple steps to achieving this goal:
Initially, the easiest way to acquire Nimiq will be via regular Token Exchanges just like any other Blockchain token.
Use HTLCs for cross-chain transactions. Cross-chain transactions allow users to exchange tokens across different Blockchains without an escrow. This will enable Nimiq to make use of the exchange services around Bitcoin and Ethereum without paying high fees for the token exchange.
Partner with VISA payment services to create a VISA-to-Nimiq exchange (centralized in the first place).
Create a centralized Peer-to-Peer Exchange like localbitcoins.com. Main difference will be the radically improved usability.
After reaching this step we want to implement results on state-of-the-art research on decentralized Peer-to-Peer Exchanges on top of our web-based protocol to create a decentralized exchange that is cheap, fast and usable for everyone.
The Nimiq Betanet is a preview of the Nimiq Protocol. Its purpose is to introduce the concept to the Blockchain community, collect feedback and build a strong community around the protocol.
It is a beta version and is not suited for permanent Nimiq Token creation. Its purpose is to learn how the Nimiq protocol behaves in the wild and get real world data about the most important improvements. To keep our development agile we might reset the Blockchain at any point in time. This will lead to the loss of all your Betanet Nimiq Tokens.
The Betanet does yet not contain the features for fast syncing or Off-chain transactions.
Provisional Tech Specs
For simplification purposes the Betanet uses SHA256 as Proof-of-Work algorithm. It uses the WebCrypto API to reach near native performance. A Drawback of our Betanet approach is that Nimiq uses NIST curves for elliptic curve signatures because those are the only curves supported by WebCrypto.
For the Mainnet release we will use WebAssembly to implement both an ASIC-resistant POW and nothing-up-my-sleeves ECDSA.
Based on current research we chose a block time of one minute. This parameter is likely to change this parameter before the Mainnet launch. It may be desirable to achieve Blocktimes similar to Ethereum (15sec), although we have not yet decided if we want to introduce the complexity of the GHOST protocol (or some variations of underlying).
- June 6: Released Betanet, Started building a community
- AMA on Reddit and via Youtube livestream
- June: Token Sale
- July 6: Start of second Project Phase:
- Implement Light-Clients following the Mini-Blockchain Scheme
- Implement HTLCs to complete the Blockchain protocol features
- Launch Feature Complete Testnet
- Implement and launch Lightning Network Infrastructure
- December 2017: Launch of Mainnet
- Implement and launch Peer-to-Peer Exchange
If you are a developer and want to check out our browser-based Blockchain, visit our core repository and follow the getting started guide.
If you have a feature request or discovered a bug: open an issue or fix it and do a pull request.
If you are new to Blockchain technology, visit our Youtube Channel, get to know the team and watch our interviews and explanations around the topic of Blockchains and Nimiq.
If you want to join the team, build a sample application with our Blockchain, send it to firstname.lastname@example.org and tell us about your skills, experiences and why you want to work on Nimiq.
If you have any other feedback, please join our Telegram Channel.