github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/docs/reference/participants.md (about)

     1  # Participants
     2  
     3  ## Accounts
     4  
     5  Accounts are identified by an address - this is the EVM's 20-byte native identifier and is encoded in hex in the GenesisDoc. The public key is redundant but included for reference. 
     6  
     7  The `Amount` is an initial amount of Burrow's native token. This native token can serve multiple purposes:
     8  
     9  - Funding an account by sending token implicitly creates that account (if it does not already exist). Only accounts that have been created by having value transferred to them (via a `SendTx` or an EVM `Call`) can themselves act as input accounts (e.g. in a `CallTx`).
    10  - The native token can be used as a value-holding token on a Burrow sidechain in the same was that eth acts as a value token on public Ethereum.
    11  - Native token can be be converted via a [BondTx](/docs/reference/transactions.md#bondtx) into validator voting power.
    12  
    13  Accounts can also hold EVM or WASM code that is initialised on account creation (and thereafter cannot be changed - except for by [GovTx](/docs/reference/transactions.md#govtx)). You can create a contract by sending a [CallTx](/reference/transactions.md#calltx) using
    14  
    15  ## Validators
    16  
    17  Validators are the nodes running on the network that are permitted to participate in block proposal and voting according to the Tendermint consensus algorithm. 
    18  Each validator is identified by it public key and can also be described by a corresponding 20-byte address. A validator is assigned a `Power` that determines the relative 
    19  power of each of its votes and how often it will be rotated into position of block proposer.
    20  
    21  ## Signing
    22  
    23  Burrow supports the following public-key signature systems.
    24  
    25  #### Ed25519
    26  
    27  This is our default signing algorithm, as defined [here](https://ed25519.cr.yp.to/). We define an address to be the first 20 bytes of the sha256 hash of a public key.
    28  
    29  #### Secp256k1
    30  
    31  Both Bitcoin and Ethereum adopt Secp256k1 elliptic curves for verification of content, but construct addresses differently:
    32  
    33  | System | Construction | Encoding |
    34  | ------ | ------------ | -------- |
    35  | Bitcoin | `RIPEMD160(SHA256(PublicKey)` | Base58Check |
    36  | Ethereum | `KECCAK256(PublicKey)[-20:]` | Hex |
    37  
    38  We adopt the Ethereum style addressing system which takes the last 20 bytes of the `KECCAK256` hash of the public key.
    39  Tendermint adopts Bitcoin's usage pattern meaning that it is not currently possible to use this signature scheme for validators,
    40  though there are [discussions](https://github.com/tendermint/tendermint/issues/2358) to extend this interface.