-
Notifications
You must be signed in to change notification settings - Fork 80
collusion resistance #143
Comments
I also think this is a good case for having separate sets of bridge and chain authorities. It's not possible to make the security of a sidechain any better than the security of the network overall and having the authorities be different actors than those who are meant to provide security for the network really raises the bar against collusion. |
i thought ethereum didn't have UTXOs? i'm curious, how do UTXOs enable this scheme? |
that would be great! security was the biggest issue in feedback at scaling now barcelona
indeed. those authorities would be the weakest link and they could (currently) collude to transfer main network assets that are in custody of the bridge. reducing that collusion risk is important.
in other words: users of the bridge submit a hash of the message, that hash is relayed, then the user reveals the message on both sides (or one side and the authorities do so on the other later)? the contents of the message are not known to authorities during the relay. is that correct? when relaying hashes there's no way to verify a message on the originating side. currently for example when transferring back there's a balance check. if only the hash is known no balance check is possible. users could send over invalid messages. solving this would require another roundtrip. in general i'd prefer collusion resistance and security over low latency and low relay costs. |
if we'd require bridge users to sign (only possible off chain, right?) off on the withdraw message (recipient, amount) as well, submit message and signature on side, relay both as usual and check that signature on home, then authorities, even if they collude, could not forge requests that transfer a users funds. users would not give up control. to withdraw from if i'm not mistaken this would decrease collusion risk to censorship. on the other hand it would require the additional off chain signing step for any use of the bridge. it would also make the bridge less "programmable" as smart contracts could only call the bridge if they themselves took the signature (on withdraw) from the user. |
@snd what I mean about UTXOs is that they make it easy to provide a chain of ownership of a specific coin (we can use different denominations). The alternative approach is merkle trees mapping [coin id -> owner] sort of like plasma cash. |
@rphmeier after watching vitaliks talk on plasma cash from ethcc i get why you mentioned UTXOs. i can see a design similar to plasma cash make sense for the bridge. i imagine dapps bridging their token would feel much more comfortable if they had a daemon running that would verify all exits (withdraws) and automatically challenge them if the bridge authorities colluded. |
@rphmeier this is all token (deposit, withdraw) specific. does this generalize into a bridge that does arbitrary message passing (essentially calling a function on the other chain)? |
provided that calls each correspond to some kind of proof of existence like coins would then I think so, yeah. We can think of transferring a call as depositing or withdrawing a single non-fungible coin. |
notes by @rphmeier
The text was updated successfully, but these errors were encountered: