Subsidiary Replicated Chain Security (SRCS) #43
KaiserKarel
started this conversation in
Ideas
Replies: 1 comment 1 reply
-
One thing we may consider is relying on the fact that cosmos v0.47 allow for wasm light clients (just like us using ETH wasm light client). This would mean that we wait for cosmos chains to upgrade and then implements our cometbls verifier in wasm. The cosmwasm contract would be symmetric to the solidity implementation and technically allow any v0.47+ cosmos chain to initiate an IBC connection Union. The drawback here is that we need to wait for chains to be on v0.47+. I do think it's worth it though. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Introduction
Union uses CometBLS as the consensus algorithm, which is not supported by Tendermint chains by default. We previously proposed an intermediate
hopchain
with CometBFT consensus, supporting CometBLS and CometBFT IBC connections.For chains connecting to
hop
andunion
, we can provide abstractions through multi-hop routing such that they are essentially unaware of the dual chain setup.Problem
Introducing a secondary chain adds security issues to the network and poses some questions.
Essentially, we rely on and the honest-majority assumption twice when introducing hop.
We could use ICS (interchain security) to ensure that hopchain is validated by union, however, ICS is unfinished, and intended for sovereign chains. hopchain is not sovereign and does not need its own governance, staking, validator selection, etc.
Proposed Solution
I propose Subsidiary Replicated Chain Security (SRCS) as an alternative to ICS, which in effect ensures that hop validators == union validators.
SRCS provides the following guarantees:
With this, we guarantee security and liveliness for Hop.
Implementation
We use a modified CometBLS IBC connection between hopchain and union. This light-client has the following features:
valroot
is set by union. Hopchain cannot change thevalroot
itself.Over this IBC connection, we transfer union block headers for each height, and embed the height in the hop block, meaning that for each hop block, a matching union header can be found in the hop block.
We support a few IBC messages in Hop which are used for governance control, such as:
Beta Was this translation helpful? Give feedback.
All reactions