Byteball is a decentralized cryptocurrency system that is unlike none seen before it. It’s not based on blockchain technology nor on proof of work mining. There are no blocks in Byteball, instead transactions are their own blocks. Byteball allows the transfer of value in the form of its own native currency, Bytes or in user issued assets that can represent currencies, property titles, debt, shares, bonds, and so on. Furthermore, Byteball allows transfers to be transparent or completely anonymous without the need to recur to zero knowledge proofs.
Byteball was created to solve some of the biggest issues and limitations found in Bitcoin and its descendants, such as speed, volatility, privacy and compliance.
Since there are no blocks in Byteball, there is no block size issue, a dilemma that has plagued the bitcoin community for quite some time now. Instead, transactions form their own blocks known as “units” and can be as large as required. Transaction fees are proportional to the size of the data contained in each transactions. Bytes, the value token within this system, is used to pay for transaction fees on a one-to-one scale, meaning that if a transaction has 1000 bytes of data, the sender will be required to pay 1000 bytes (or 1kb) in transaction fees, giving Bytes an intrinsic value (the utility of permanently storing that size of data in a decentralized immutable database) and not a speculative one.
But if there are no blocks or blockchain, how do we know that value is not being double-spent? Since there are no blocks, every new transaction references one or more transactions that have come before it, known as “parents”, by including the hashes relative to the parents . The links among these transactions form a DAG (directed acyclic graph).
In Byteball, instead of blocks piling on top of each other to form confirmations, every new transaction (child) in the DAG, confirms the transactions before it (parents). So, instead of miners confirming transactions with new blocks, users that make transactions, confirm the previous transactions. If one tries to edit a unit, he will also have to change its hash, meaning that the newer child transactions that reference this transaction would not match the changed parent. To game the system one would be required to collaborate with the users that create transactions after him. In this case, instead of waiting for miners to produce the next block, the dense links among transactions act as anti-tampering measure that starts working almost immediately.
Instead of proof of work, we have a Main Chain (MC) within the DAG that allows to define total order between transactions by checking which transactions get included earlier on the Main Chain. When there is a double-spend, the version of the transaction that comes earlier in the total order is deemed valid, all others are deemed void.
The Main Chain will go through the transactions that are authored by well known users within the community, dubbed witnesses. Witnesses are just like regular users. When someone makes a transaction, they list a group of witnesses for said transaction. The list can be comprised of random users, or of pre-selected witnesses that have earned that user’s trust and are expected to make regular transactions to confirm the transactions that reference it.
Confirmation time in Byteball depends on the frequency with which the referenced witnesses post new transactions. In optimal conditions, the confirmation time can be as fast as 30 seconds.
Byteball also provides anonymous transactions in the form of private assets. These are not published on the sequence of transactions or database. Instead only the hash of the transaction and a spendproof are stored, and a plaintext version of the transaction is sent to the receiver. These private assets are called BlackBytes. Read more.
Other features include private end-to-end encrypted messaging, multi-signature addresses, and smart contracts, which can be written using an easy to understand declarative language. Furthermore, these contracts have access to on-chain oracles that can post data (such as timestamps, exchange rates, weather, various events) directly to the database to be used by the contracts as spending conditions.
Byteball will have no Initial Coin Offering, instead 98% of the total supply (10^15 Bytes) will be distributed to Bitcoin holders according to their balance. Users will be able to link their Bitcoin and Byteball addresses to receive a proportional amount of Bytes and BlackBytes which will be issued on December 25, when the main net goes live.
The other 1% will be kept by the developer and the remaining 1% will be given away to the first 100m users who install Byteball wallet.