Intro to the Electroneum Smart Chain
Last updated
Last updated
A blockchain is a public database that is updated and shared across many computers in a network.
"Block" refers to data and state being stored in consecutive groups known as "blocks". If you send ETN to someone, the transaction data needs to be added to a block to be successful.
"Chain" refers to the fact that each block cryptographically references its parent. In other words, blocks get chained together. The data in a block cannot change without changing all subsequent blocks, which would require the consensus of the entire network.
Every computer in the network must agree upon each new block and the chain as a whole. These computers are known as "nodes". Nodes ensure everyone interacting with the blockchain has the same data. To accomplish this distributed agreement, blockchains need a consensus mechanism.
Electroneum Smart Chain (ETN-SC) uses the Istanbul Byzantine Fault Tolerance (IBFT) consensus mechanism. Blocks produced by IBFT are strongly protected against tampering through the collection of signatures from the proposer and the voting validators. It is impossible to rewrite the block content without having access to all the private signing keys of the proposer and the validator nodes. This provides strong guarantees to the immutability of the blockchain.
If you would like to see how blockchain data is hashed and subsequently appended to the history of block references, be sure to check out this demo↗ by Anders Brownworth and watch the accompanying video below.
Watch Anders explain hashes in blockchains:
Electroneum Smart Chain is a blockchain with a computer embedded in it, based in the Geth (Go) implementation of the Ethereum protocol. It is the foundation for building apps and organisations in a decentralized, permissionless, censorship-resistant way. The Electroneum Smart Chain supports most of the development tooling, third-party wallets and softwares made for Ethereum.
In the Electroneum universe, there is a single, canonical computer (called the Electroneum Virtual Machine, or EVM) whose state everyone on the Electroneum network agrees on. Everyone who participates in the Electroneum network (every Electroneum node) keeps a copy of the state of this computer. Additionally, any participant can broadcast a request for this computer to perform arbitrary computation. Whenever such a request is broadcast, other participants on the network verify, validate, and carry out ("execute") the computation. This execution causes a state change in the EVM, which is committed and propagated throughout the entire network.
Requests for computation are called transaction requests; the record of all transactions and the EVM's present state gets stored on the blockchain, which in turn is stored and agreed upon by all nodes.
Cryptographic mechanisms ensure that once transactions are verified as valid and added to the blockchain, they can't be tampered with later. The same mechanisms also ensure that all transactions are signed and executed with appropriate "permissions" (no one should be able to send digital assets from Alice's account, except for Alice herself).
ETN is the native cryptocurrency of Electroneum. The purpose of ETN is to allow for a market for computation. Such a market provides an economic incentive for participants to verify and execute transaction requests and provide computational resources to the network.
Any participant who broadcasts a transaction request must also offer an amount of ETN to the network as a bounty. The network will award this bounty to whoever eventually does the work of verifying the transaction, executing it, committing it to the blockchain, and broadcasting it to the network.
The amount of ETN paid corresponds to the resources required to do the computation. These bounties also prevent malicious participants from intentionally clogging the network by requesting the execution of infinite computation or other resource-intensive scripts, as these participants must pay for computation resources.
In practice, participants don't write new code every time they want to request a computation on the EVM. Rather, application developers upload programs (reusable snippets of code) into EVM state, and users make requests to execute these code snippets with varying parameters. We call the programs uploaded to and executed by the network smart contracts.
At a very basic level, you can think of a smart contract like a sort of vending machine: a script that, when called with certain parameters, performs some actions or computation if certain conditions are satisfied. For example, a simple vendor smart contract could create and assign ownership of a digital asset if the caller sends ETN to a specific recipient.
Any developer can create a smart contract and make it public to the network, using the blockchain as its data layer, for a fee paid to the network. Any user can then call the smart contract to execute its code, again for a fee paid to the network.
Thus, with smart contracts, developers can build and deploy arbitrarily complex user-facing apps and services such as: marketplaces, financial instruments, games, etc.
The sequence of all blocks that have been committed to the Electroneum network in the history of the network. So named because each block contains a reference to the previous block, which helps maintain an ordering over all blocks (and thus over the precise history).
ETN is the native cryptocurrency of Electroneum. Users pay ETN to other users to have their code execution requests fulfilled.
The Electroneum Virtual Machine is the global virtual computer whose state every participant on the Electroneum network stores and agrees on. Any participant can request the execution of arbitrary code on the EVM; code execution changes the state of the EVM.
The real-life machines which are storing the EVM state. Nodes communicate with each other to propagate information about the EVM state and new state changes. Any user can also request the execution of code by broadcasting a code execution request from a node. The Electroneum network itself is the aggregate of all Electroneum nodes and their communications.
Where ETN is stored. Users can initialise accounts, deposit ETN into the accounts, and transfer ETN from their accounts to other users. Accounts and account balances are stored in a big table in the EVM; they are a part of the overall EVM state.
A "transaction request" is the formal term for a request for code execution on the EVM, and a "transaction" is a fulfilled transaction request and the associated change in the EVM state. Any user can broadcast a transaction request to the network from a node. For the transaction request to affect the agreed-upon EVM state, it must be validated, executed, and "committed to the network" by another node. Execution of any code causes a state change in the EVM; upon commitment, this state change is broadcast to all nodes in the network. Some examples of transactions:
Send 1 ETN from my account to Alice's account.
Publish some smart contract code into the EVM state.
Execute the code of the smart contract at address X in the EVM, with arguments Y.
The volume of transactions is very high, so transactions are "committed" in batches, or blocks. Blocks generally contain dozens to hundreds of transactions.
A reusable snippet of code (a program) which a developer publishes into the EVM state. Anyone can request that the smart contract code be executed by making a transaction request. Because developers can write arbitrary executable applications into the EVM (games, marketplaces, financial instruments, etc.) by publishing smart contracts, these are often also called dapps, or Decentralized Apps.