USX / EUX's layer 2 solution - Custom USX/EUX Gateway

As dForce’s lending is now the largest lending protocol on Arbitrum and it is important that we could allow more interoperability between Ethereum layer 1 and layer 2.

There are two ways to do it, 1) Standard Arbitrum Gateway, this is what already implemented, where USX and EUX on Ethereum are able to be bridged to Arbitrum via the Standard Gateway, but the token bridged from Ethereum layer 1 to Arbitrum will be different than the USX/EUX natively minted on Aribitrum (which is very confusing) and they can’t be used as collaterals on Arbitrum, they are not fungible with layer2 USX/EUX.

2) Custom Aribtirum Gateway, this is what Maker had done, they already implemented their custom Arbitirum and Optimism gateways, so through the gateway, users’ DAI on Ethereum can be bridged to Arbitrum/Optimism and their Arbitrum and Optimism native DAI token (allow minting) will be the same token as ones bridged from Ethereum.
here is their announcement and implementation:

there are several benefits for this approach:
a) just one token address. For layer2 native and the layer1-to-layer2 USX/EUX, they have the same address as the layer2 native USX/EUX, this is much simpler UI and less confusing.
b) given the custom gateway is upgradable, it allows possible fast withdrawal from layer2 to layer 1 in the future.

Implementation: given similar design intention, we could use DAI Custom Arbitrum gateway code (implemented and heavily audited and reviewed) but add some constraints such as capping the USX/EUX amount to be bridged via the gateways