The xDai bridge is an instance of TokenBridge between Ethereum and xDai Chain. Using the bridge, token holders of Dai can move their Dai from Ethereum to a pegged native token on xDai Chain. In reverse order, token holders of xDai can move their xDai to Dai using the same bridge.
The bridge consists of multiple independent parts:
- TokenBridge smart contracts on xDai Network;
- TokenBridge smart contracts on Ethereum Network;
- Multisigs on both networks to manage essential parameters of smart contracts such as daily limits, quotas per transaction, set of validators, upgradability;
- Nodes of oracles between two networks. Oracles listen for token transfer events and relay them between networks.
Also, the following two permissioning contracts supported by parity are used:
- Certifier at address 0x61f399be19c115d5ae400b1943d0df8c952ff9d6
Registrar at address 0x1ec97dc137f5168af053c24460a1200502e1a9d2
Address of the registrar contract is stored in spec.json on each node.
After the ceremony on the network initiation, which finished in December 2018, the bridge has following decentralization and security assumptions:
- Four validators can relay events;
- Three of the four validators are required to relay an event;
- Four validators can modify bridge parameters
- Three of four signatures are required to modify bridge parameters such as daily limits, quotas per transaction, set of validators, upgradability
You can always double check provided information yourself:
- List of validators of the bridge and the required number of signatures Bridge
- Management multisig on Mainnet MultiSigWallet (0x0D3726e5a9f37234D6B55216fC971D30F150a60F) - xDai Explorer
- Management multisig on xDai https://blockscout.com/eth/mainnet/address/0xff1a8eda5eacdb6aaf729905492bdc6376dbe2dd/contracts
You can read more on the security model of the bridge here: