Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
EdNoepel committed Jan 17, 2024
1 parent 90c880b commit a0c054b
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions MULTICHAIN_STRATEGY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,27 @@

## Design

Ajna deployments to each chain are sovereign and independant. Each chain will utilize the token address of Ajna on that chain for the burn-and-buy mechanism. The grant fund will remain entirely on L1, with only L1 token delegates able to vote.
Ajna deployments to each chain are sovereign and independant. Each chain will utilize the AJNA token address on that chain for the burn-and-buy mechanism. The grant fund will remain entirely on L1, with only L1 token delegates able to vote.

### **Rollups**
L1 AJNA should be burn-wrapped before being bridged to any L2 solution. To facilitate this, a `BurnWrapper` contract shall be deployed to L1 to create a canonical L1 bwAJNA. The `BurnWrapper` contract enables L1 Ajna tokens to be wrapped via OpenZeppelin's _ERC20Wrapper_ extension, and converted into bwAJNA tokens. These tokens cannot be unwrapped.

Ajna pool factories will be deployed on every Ethereum L2 rollup, with each pool pointing at the token address created by each rollup's canonical bridge. This token address is deterministic and tied to the L1 address, so it doesn't matter who bridges the token first. This behaviour is the same across rollups (Arbitrum, Optimism, Zksync).
### Rollups

Ajna pool factories may be deployed on Ethereum L2 rollups, with each pool pointing at the bwAJNA token address created by sending L1 bwAJNA across the rollup's canonical bridge. This token address is deterministic and tied to the L1 address, so it doesn't matter who bridges the token first. This behaviour is the same across rollups (Arbitrum, Optimism, Zksync).

Third party bridges can be used as support is added via bridge governance. Third party bridges point at the token address created by the standard token bridges.

NOTE (11/16/22): Starknet doesn't currently support non-whitelisted ERC20 tokens. ZKSync is permissionless, but only supports testnet tokens for permissionless bridging.

<br>

### **Sidechains**
### Sidechains

Due to the lower safety of sidechain bridges, Ajna tokens must first be wrapped in the `BurnWrapper.sol` contract. The BurnWrapper contract enables L1 Ajna tokens to be wrapped via OpenZeppelin's ERC20Wrapper extension, and converted into BurnWrapped tokens. Tokens wrapped this way cannot be unwrapped. Pools in the sidechains will point to the sidechain token address created by mapping the BurnWrapped tokens to the sidechain token. Each sidechain will have it's own BurnWrapper instance. This design prevents double-spends due to sidechain bridges being compromised and releasing L1 tokens incorrectly, artifically increasing the token supply available for burn-and-buy.
Due to the lower safety of sidechain bridges, bwAJNA tokens should be double-wrapped by a sidechain-specific `BurnWrapper` also deployed on the L1. This design prevents double-spends of the bwAJNA token due to sidechain bridges being compromised and releasing bwAJNA tokens incorrectly, artifically increasing the token supply available for burn-and-buy on other L2 solutions.

#### Polygon

Tokens must be mapped to the polygon sidechain prior to bridging. This mapping will create a unique address for the token on the sidechain. Once this address has been created, it can be referenced permissionlessly in either of the Polygon POS, or Polygon Plasma bridges.
bwAJNA tokens must be mapped to the polygon sidechain prior to bridging. This mapping will create a unique address for bwAJNA on the sidechain. Once this address has been created, it can be referenced permissionlessly in either of the Polygon POS, or Polygon Plasma bridges.

#### Binance

Expand All @@ -35,6 +37,10 @@ Requires a Binance account to use the canonical binance bridge. Third-party brid
2. https://community.optimism.io/docs/developers/bridge/basics/
3. https://github.com/OffchainLabs/token-bridge-contracts/blob/main/contracts/tokenbridge/test/TestArbCustomToken.sol

**Base**
1. https://docs.base.org/tools/bridges
2. https://docs.base.org/tools/bridge-faq

**Optimism**
1. https://community.optimism.io/docs/developers/bridge/standard-bridge/#adding-an-erc20-token-to-the-standard-bridge

Expand Down

0 comments on commit a0c054b

Please sign in to comment.