0038 XLS-38d: Cross-Chain Bridge (side chains) #92
Replies: 13 comments 74 replies
-
|
Love to see movement still on this initiative well done to all involved! Have some questions.
|
Beta Was this translation helpful? Give feedback.
-
|
Thank you for this standards draft! Following from the sidelines, the design and terminology has changed a lot over the last year – so in advance sorry if some of my questions and observations are mixed up and refer to previous and now abandoned design choices.
|
Beta Was this translation helpful? Give feedback.
-
|
I planned on writing a pretty long comment and I'm halfway finished but I didn't want to write under the assumption that there are benefits to using a normal transaction with a multi-sig list on it, coordinated by the bridge's own layer-2 network (Appendix B) than using the proposed There are noted complex issues with using a separate distributed system as a service (L2) to coordinate and distribute signatures and I'm personally faced with that, mainly:
It would be nice if you could also share on how you mitigated these issues or how you planned on mitigating them if we were to go for the L2 designed ❤️ ! |
Beta Was this translation helpful? Give feedback.
-
|
Why not go with the light client approach for bridging between XRPL chains? Any XRPL chain can directly verify (on chain) whether a transaction was validated on another chain simply by knowing the other chain's UNL. If chain A knows chain B's UNL, chain A can be fed a ledger header from chain B, as well as sufficient validations for said header from validators on chain B's UNL. Then, for any cross chain transfer from chain B, all that's needed is the SHAMap proof path for the transaction, proving the transaction is in the ledger. You can store the UNL on ledger as a ledger object to make this process simple for other chains. If we did this, there would be no need to trust witness servers or any entity besides the two chains involved in bridging. As it stands right now, the witness servers are an attack vector. If the witness servers collude, or if their private keys are compromised (as has happened in many multi million dollar bridge hacks in the past few years), millions of dollars of funds will be lost. The light client approach eliminates this common attack vector, and is thus a far more secure bridge. The reason all bridges are not light clients is because it is hard to build a light client for most chains. But for XRPL chains, it is incredibly easy, because of the way XRPL consensus works. Given this, it just seems like a bad design decision to go with a design that allows for the hack we've seen so often in the bridge space. Even from an infrastructure standpoint, the light client approach is easier. All that's needed is a relayer to pass transactions between the two chains, which is not trusted and only provides liveness, and could really be run by anyone, or even done by the wallet itself. This approach would also be useful when XRPL (hopefully) starts bridging to other chains. Any remote chain can verify a transaction was validated by an XRPL chain using the same approach described here. |
Beta Was this translation helpful? Give feedback.
-
When would there ever not be a UNL? As to the UNL expiring or changing, the light client can handle that in the same way that rippled handles UNLs expiring or changing.
The validators could mount the same attack, but this is unlikely and I would argue violates the trust assumption we already have for the ledger. We trust that more than 80% of the mainnet validators will not collude in a malicious way. The attack I'm actually concerned with though is not collusion but a separate entity compromising the private keys of the witness servers. This is the bridge attack we've seen in practice several times already. In the light client approach, an attacker would need to compromise the private keys of the validators, which I think is much less likely, and would enable them to mount all sorts of attacks beyond just attacking the sidechain bridge. Furthermore, I would argue that both of these attacks (validator collusion or validator key compromise) would work with the existing bridge architecture anyways. If the validators collude to validate malicious transactions and change the state of the ledger, they can probably fool the witness servers (as well as centralized exchanges). All in all, I think the validators colluding or their keys being compromised is an all bets are off scenario, in which case the whole security assumption of the network is violated. So the light client approach is basically just not adding additional security assumptions (such as the witness servers not colluding or not getting their keys compromised). |
Beta Was this translation helpful? Give feedback.
-
|
Thank you for this open draft! Witnesses have to somehow coordinate off-chain. A consumer of such a bridge may see them as a kind of "centralized group" instead of a single centralized entity. The trust needed seems similar to me. I would like to read about specific aspects where the benefits of this proposal outweigh a bridge provided by a single centralized entity without this amendment. Right now, it's hard for me to see how this amendment outweighs the downsides. |
Beta Was this translation helpful? Give feedback.
-
|
Hi folks: per the new XLS Contributing process, it is my opinion that we have reached a "well-refined standard." As such, I propose that we move this discussion to a file (via #109) and work on final changes using additional PRs, for better change-tracking. Please comment here if you would like to object to moving this spec/discussion forward in the process into a DRAFT spec. (Note that per the Contributing guidelines, moving a spec into the DRAFT state does not mean any kind of endorsement, nor does it mean that this specification will become adopted. It is solely meant as a mechanism to enable better change tracking using PRs.) |
Beta Was this translation helpful? Give feedback.
-
|
A recent case that needs to be discussed is the The hackers utilized a multi-sig bridge powered by Orbit to launder the funds to other chains to avoid regulations & AML efforts put in place. With the bridge, the hackers swapped the stolen $XRP to $KLAY, then swapped to $ETH, then moved to Avalanche and then moved them to Bitcoin.
This brings up an additional case to discuss about the regulatory aspect of bringing native implementation of layer-2 bridges and its practicality. My personal concerns:
|
Beta Was this translation helpful? Give feedback.
-
|
Proposed implementation: XRPLF/rippled#4292 |
Beta Was this translation helpful? Give feedback.
-
|
I'd like to propose that we move this spec to the next step in our development process. I understand there are still legal concerns, and I don't want to minimize these. Since many people and groups help develop the ledger, making decisions is challenging. We try to have a good development process that helps us make good decisions. Our current process with phases for discussion, draft spec, and candidate spec are reasonable and help us make good technical decisions. I'm not sure what the best process is to resolve legal concerns. Still, I think we're in a good place technically I think it's reasonable to move from the discussion phase to a draft spec phase even with the outstanding legal concerns. I'd like to close this discussion on Tuesday, July 4th and open a pull request for a draft standard. I appreciate all of the great feedback everyone has provided. Thank you everyone. |
Beta Was this translation helpful? Give feedback.
-
|
I to would prefer this move forward, both as a technical solutions provide forward progress. I would prefer a competing solution to a single option offered to the the market. My only impetus, is simple "get to dev" instances are available at every step, something I would prefer the xumm team would be more proficient at, which they have not delivered an equivalent/better than the "existing team". I would call for further review on the xumm solution (pending their public release) vs a speedy vote to public opinion. I have no technical issue the approach, but do not agree on need to "burn to mint". This could be achieved via multiple other options. +1 to this moving forward and a -1 to xumm to find a equilibrium. |
Beta Was this translation helpful? Give feedback.
-
|
Burn to Mint isn’t mutually exclusive with XLS38. These are decentralised public blockchains anyone can use. More than one bridge mechanism is possible. As @WietseWind has pointed out, our solution is based on legal constraints. If you are lucky enough to live and work somewhere where you can run a custodial two way bridge with legal immunity and without a money services business license + AML/KYC reporting then please, by all means do. For us this is simply legally impossible. |
Beta Was this translation helpful? Give feedback.
-
|
I am now closing this discussion as I have opened a PR for the draft spec: #118 If you have any additional comments please post them in the PR or open your own PR with proposed changes. |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
An updated version of this spec can be found here: XLS-38: Cross-Chain Bridge.
The earlier version can be found by looking at the edit history.
Beta Was this translation helpful? Give feedback.
All reactions