ebrochain
Home
What is EBROChain
A cryptocurrency system that supports smart contracts without the scalability and privacy limitations of earlier systems like Ethereum. EBRO Chain, like Ethereum, allows parties to create smart contracts using code to specify the behavior of the virtual machine (VM) that executes the contract's function.EBRO Chain strives to solve scalability and usability issues, without compromising decentralization, and leverages the existing developer community and ecosystem. It is an off-chain/external scaling solution for existing platforms to provide scalability and superior user experience for DApps/user features
EBRO Chain continues to use the POW consensus mechanism, bringing EVM-compatible programmability and native cross-chain communication.
How Does EBRO chain Work? What is the Architecture and consensus used?
EBRO Chain relies on a system with Proof of Work (PoW) consensus that can support short block time and lower fees.
What is Proof of Work ?
Proof of Work (PoW) is a consensus algorithm used in blockchain networks. It requires participants, called miners, to solve a complex computational puzzle in order to propose the next block in the chain. The main idea behind PoW is that it's computationally hard (requires CPU time and energy) to create a block, but it's easy for others to verify that the solution to the puzzle is correct once a solution is proposed. The first blockchain to use PoW was Bitcoin, and it remains the consensus algorithm for many cryptocurrencies today. PoW is considered secure against cheating because altering past transactions would require re-doing the work of the altered block and all blocks after it, which is extremely unlikely due to the high computational costs involved. However, PoW has been criticized for its high energy consumption and potential for centralization, as those with more computational resources (more powerful hardware) have a higher chance of mining the next block. As a result, other types of consensus algorithms, such as Proof of Stake (PoS), have been proposed as alternatives.
What are the benefits for developers to build on EBRO chain?
EVM-compatible: EBRO Chain supports all the existing Ethereum tooling Fast block time, cheaper cost
Native cross-chain trasfer & communication: ebroswap in development
What Makes EBRO chain different?
Proof of Work (PoW) Consensus
Native Cross-Chain Communication using Bridge
Expand the use cases of EBRO coin by patnering with big projects on other chains
EBRO Chain is EVM-compatible. what does that mean?
EVM means Ethereum Virtual Machine. Any smart-contract written to run in EVM can be easily ported to EBRO Chain.
EBRO MAINNET
Table of Comparison
Consensus
Consensus of EBRO Chain
Abstract
We target to design the consensus engine of EBRO (EBRO Chain) to achieve the following goals:
Wait a few blocks to confirm (should be less than Ethereum 1.0), better no fork in most cases.
Blocking time should be shorter than Ethereum 1.0, i.e. 3 seconds on EBRO Chain
No inflation, the block reward is transaction gas fees.
As much compatiblity with EVM DApps as Ethereum.
With staking and governance as powerful as Cosmos SDK.
pBFT (Practical Byzantine Fault Tolerance) consensus algorithm allows a distributed system to reach a consensus even when a small amount of nodes demonstrate malicious behavior (such as falsifying information). During information transmission, PBFT uses cryptographic algorithms such as signature, signature verification, and hash to ensure that everything stays irrevocable, unforgeable, and indisputable. It also optimizes the BFT algorithm, reducing its complexity from exponential to polynomial. In a distributed system that constitutes 3f+1 nodes (f represents the number of byzantine nodes), a consensus can be reached as long as no less than 2f+1 non-byzantine nodes are functioning normally.
Basic Knowledge
Blockchain
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 EBRO to someone else, 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. The Ethereum Virtual Machine is the global virtual computer whose state every participant on the Ethereum 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
EVM Explained
Ethereum Virtual Machine (EVM)
The Ethereum Virtual Machine is the global virtual computer whose state every participant on the Ethereum 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
Nodes
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 Ethereum network itself is the aggregate of all Ethereum nodes and their communications.
Smart Contract
A Smart Contract is a computer program that automatically executes contract terms. These programs automatically carry out predefined operations when predetermined conditions are met. They play a vital role in blockchain technology, especially on the EBRO platform. The basic idea of a smart contract is to use software and mathematical algorithms to execute and enforce contract terms, without relying on third-party intermediaries such as courts or other legal services. These contracts can be used in a variety of scenarios, such as financial transactions, insurance policies, logistics tracking, and more. For example, in a financial scenario, smart contracts can be used to create automatically executed financial instruments, such as bonds or derivatives. When the interest on a bond matures, the smart contract automatically transfers the interest to the bondholder's account. Or, if a good is lost during the logistics process, the smart contract can automatically execute the terms of an insurance policy, instantly paying compensation.
Whitepaper
Whitepaper 1.0
Genesis File
This document explains how EBRO chain is Structured
What is a Genesis File
A Genesis file in the context of blockchain technology, particularly in Ethereum, is the initial block, or the "Block 0", in the blockchain. It is the first block to be mined, thus forming the foundation of any blockchain-based platform or system. The genesis file is a JSON-formatted (JavaScript Object Notation) file that sets the initial parameters of the blockchain, such as the difficulty level for mining, the gas limit per block, the initial reward for mining, and more.
Explanantion
-
Chain ID
The chain ID is a property of the chain managed by the node. It is used for replay protection of transactions
EBRO CHAIN ID:
-
period
Minimum difference between two consecutive block’s timestamps. Suggested 3s for the testnet .
-
epoch
Number of blocks after which to checkpoint and reset the pending votes. Suggested 100 for testnet .
-
nonce
The nonce is the cryptographically secure mining proof-of-work that proves beyond reasonable doubt that a particular amount of computation has been expended in the determination of this token value. EBRO Chain is Set to 0X0.
-
timestamp
Must be at least the parent timestamp + BLOCK_PERIOD.
-
extraData
EXTRA_VANITY: Fixed number of extra-data prefix bytes reserved for signer vanity. Suggested 32 bytes
Signer Info: validator address
EXTRA_SEAL bytes (fixed) is the signer’s signature sealing the header.
gasLimit
A scalar value equal to the current chain-wide limit of Gas expenditure per block. High in our case to avoid being limited by this threshold during tests. Note: this does not indicate that we should not pay attention to the Gas consumption of our Contracts.
-
difficulty
A scalar value corresponding to the difficulty level applied during the nonce discovering of this block. Suggested 0x1 for testnet
-
mixHash
Reserved for fork protection logic, similar to the extra-data during the DAO. Must be filled with zeroes during normal operation.
-
coinbase
System controled address for collecting block rewards
number
Block height in the chain, where the height of the genesis is block 0.
parentHash
The Keccak 256-bit hash of the entire parent block’s header (including its nonce and mixhash). Pointer to the parent block, thus effectively building the chain of blocks. In the case of the Genesis block, and only in this case, it's 0.
Account and Address
This default wallet would use a similar way to generate keys as Ethereum, i.e. use 256 bits entropy to generate a 24-word mnemonic based on BIP39, and then use the mnemonic and an empty passphrase to generate a seed; finally use the seed to generate a master key, and derive the private key using BIP32/BIP44 with HD prefix as "44'/60'/", which is the same as Ethereum's derivation path.
Consensus
Infrastructure Components
EBRO Chain. It is responsible for holding the staking function to determine validators of EBRO through independent election, and the election workflow are performed via staking procedure.
Consensus Protocol
The implement of the consensus engine is named as pBFT implementations of PoSA consensus. This doc will focus more on the difference and ignore the common details.
Before introducing, we would like to clarify some terms:
- Epoch block. Consensus engine will update validatorSet from NCValidatorSet contract periodly. For now the period is 200 blocks, a block is called epoch block if the height of it is times of 200.
- Snapshot. Snapshot is an assistant object that help to store the validators and recent signers of blocks.
key Features
How to Produce a new block
-
Step 1: Prepare
A validator node prepares the block header of next block.
- Load snapshot from cache or database.
- Every epoch block, will store validators set message in extraData field of block header to facilitate the implement of light client.
- The coinbase is the address of the validator
-
Step2: FinalizeAndAssemble
- If the validator is not the in turn validator, will call liveness slash contract to slash the expected validator and generate a slashing transaction.
- If there is gas-fee in the block, will distribute 1/16 to system reward contract, the rest go to validator contract.
-
Step3: Seal The final step before a validator broadcast the new block.
- Sign all things in block header and append the signature to extraData.
- If it is out of turn for validators to sign blocks, an honest validator it will wait for a random reasonable time.
How to Validate/Replay a block
Step 1: VerifyHeader
Verify the block header when receiving a new block.
- Verify the signature of the coinbase is in extraData of the blockheader
- Compare the block time of the blockHeader and the expected block time that the signer suppose to use, will deny a blockerHeader that is smaller than expected. It helps to prevent a selfish validator from rushing to seal a block.
- The coinbase should be the signer and the difficulty should be expected value.
Step2: Finalize
- If it is an epoch block, a validator node will fetch validatorSet from NCValidatorSet and compare it with extra_data.
- If the block is not generated by inturn validatorvalidaror, will call slash contract. if there is gas-fee in the block, will distribute 1/16 to system reward contract, the rest go to validator contract.
- The transaction generated by the consensus engine must be the same as the tx in block.
Key Management
This article is a guide about key management strategy on client side of your Decentralised Application on EBRO Chain
Setup Web3
web3.js
is a javascript library that allows our client-side application to talk to the blockchain. We configure web3 to communicate via Metamask.
web3.js doc is here
Testnet
Hello Frens We are Happy to announce That Our Testnet is Live.
How to access Our Testnet
Chainlist
Our Testnet can be added via Chainlist Testnets Here
Metamask
Our Testnet can also be added manually by adding the following values
Network Details | Value |
---|---|
Name | EBROchain Testnet |
Symbol | EBRO |
RPC | https://testnet.EBROchain.com |
Chain ID | 420666 |
Explorer | https://testnet-explorer.EBROchain.com/ |
Faucet
You can access Free Testnet EBROs via our faucet
For Developers
Contract Deployment
Truffle
Using Truffle
Setting up the development environment
There are a few technical requirements before we start. Please install the following: Requirements:
- Windows, Linux or Mac OS X
- Node.js v8.9.4 LTS or Later
- Git
Recommendations for Windows
If you're running Truffle on Windows, you may encounter some naming conflicts that could prevent Truffle from executing properly. Please see the section on resolving naming conflicts for solutions.
Installing
Once we have those installed, we only need one command to install Truffle:
npm install -g truffle
To verify that Truffle is installed properly, type truffle version on a terminal. If you see an error, make sure that your npm modules are added to your path.
Create A Project
The first step is to create a Truffle project. We'll use the *DogeLoop as an example, which creates a token that can be transferred between accounts:
- Create a new directory for your Truffle project
Intialize your project:
truffle init
Deploying to EBRO CHAIN
Endpoint RPCS to be announced on a later Date
ROADMAP
Q3 2022
Goal | Status |
---|---|
Public Testnet | ✔ |
Block Explorer for Testnet | ✔ |
Market Tracker Listing | |
CEX Listing |
Q4 2022
Goal | Status |
---|---|
Mainnet Beta Development | ✔ |
Block Explorer for Mainnet | ✔ |
Marketing Campaign | |
Open Partnership for Ecosystem |
Q1 2023
Goal | Status |
---|---|
Ecosystem Development | |
Launch of ebroswap | |
Wrapped USDT & USDC Support | |
Onboard more Developers & Partners |