The Obyte cryptocurrency uses a distributed ledger type called a directed acyclic graph (DAG). Besides coins, this structure can store property titles, debts, shares, and other information. There are no miners and no clear structure of transaction blocks. All Obyte nodes are equal and each of them can add a transaction that will be recorded in the registry.
How does the acyclic graph (DAG) work?
Directed acyclic graph (DAG) is based on a system of individual cells. Each cell becomes a public node DAG which has an address used for sending funds. The address can be either a user or a computer program. When sending funds to the program address, a DAG script is executed, executing a smart contract. Since each full Obyte node works only with its database version, there is no need for miners to confirm transactions. There is no need for one Obyte node to pass its state to other free nodes, each of them acts as an autonomous agent. The code of each Obyte node is transparent and verifiable and the user cannot make any changes to it.
Why do we need autonomous agents?
Thanks to autonomous agents it is possible to program the execution of options and futures contracts, as well as to program other derivatives and synthetic assets. It is also possible to program a public node system, called an acyclic graph, to program margin trading, economic game, DeFi exchange, or oracle for DeFi. The Obyte website has examples of DAG applications for chatbots, IoT devices, oracles, and other tasks.
How to program the acyclic graph?
The scripting language Oscript is used for contract programming. It allows us to access the variables describing the state of this or that Obyte node. Obyte nodes can also use the data about sent sums, senders and recipients of transactions, and data obtained from oracle and other external sources. Although Oscript does not have Turing completeness, it allows performing logical addition and multiplication operations, arithmetic operations, and some cryptographic functions (such as comparison of hashes). The Oscript language has branching procedures defined by the if... else. The main difference from the full programming language is that Oscript does not allow the execution of loops and functions. This is done so that the state of any public node is fundamentally impossible to loop. To prevent a spam attack causing network overload, a limit has been introduced to perform heavy operations, such as accessing the database. Also, the limit on performing operations prevents the deployment of a malicious script for the network. For the convenience of developers, there is a testnet, where you can execute scripts without spending Obyte coins. Writing a smart contract, as well as debugging and running it on the Obyte network is not incomparably easier than on the Ethereum network.
What are the units of Obyte?
The Obyte cryptocurrency uses a unit of computation called a byte. Data storage in a decentralized Obyte network is paid for bytes. Each byte of information costs one byte in the Obyte cryptocurrency. All stored information, including headers and captions, is taken into account. A total of 10 to 15 bytes are circulating in the system. Because this amount in the network is constant, it is possible to prevent double waste. 1000 bytes in Obyte system are called kilobytes, 1 000 000 bytes of megabytes, and so on. It is also possible to hide the transaction between Obyte nodes, for which the Blackbytes technology is used. Transaction sent with Blackbytes is not visible on the public ledger.