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:

  1. Wait a few blocks to confirm (should be less than Ethereum 1.0), better no fork in most cases.

  2. Blocking time should be shorter than Ethereum 1.0, i.e. 3 seconds on EBRO Chain

  3. No inflation, the block reward is transaction gas fees.

  4. As much compatiblity with EVM DApps as Ethereum.

  5. 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:

  1. 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.
  2. 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:

  1. Windows, Linux or Mac OS X
  2. Node.js v8.9.4 LTS or Later
  3. 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