omni / poa-bridge

POA <-> Ethereum bridge for self transfers of POA native token to POA20 (ERC20 representation). Not supported. Use TokenBridge instead
https://github.com/poanetwork/token-bridge
GNU General Public License v3.0
80 stars 38 forks source link

Ability to manage list of authorities required #17

Closed akolotov closed 6 years ago

akolotov commented 6 years ago

At this moment the bridge contracts are working with pre-defined list of authorities which is passed to the contract constructor during deployment process. There is no possibility to extend the list if new authority is added later or the number of required signatures needs to be changed.

Proposal for changes

  1. Introduce a new contract Authorities
  2. Change HomeBridge and ForeignBridge:
    • to verify messages sender by using Authorities contract
    • to verify if necessary number of signatures collected
  3. Introduce the functionality to add and remove authorities, to change number of required signatures
  4. Consider and implement a model to manage authorities list:
    • it can be done by bridge owners;
    • or it can be done by authorities voting.
  5. Probably it is a good idea to allow owners of bridge to change address of Authorities contract in order to allow change consensus describing in item 4 above.