From f645d7129e013ce38be1f751371bbe50bc92a1e5 Mon Sep 17 00:00:00 2001 From: Derek Date: Fri, 16 Dec 2022 12:49:00 -0800 Subject: [PATCH] Polymer/multihop (#1) * ICS20: Replace Metadata with Memo (#877) * memo string replacement * formatting Co-authored-by: Carlos Rodriguez * ICS9: remove localhost client (#878) * remove localhost client * Update CHANGELOG.md * Update README.md * fix: update comment about channel state check in `sendPacket` (#865) * update comment * typo * remove comment Co-authored-by: Carlos Rodriguez * ICS5: fix releasePort signature (#885) Signed-off-by: Jun Kimura Signed-off-by: Jun Kimura * ICS721: Add tokenData to PacketData (#876) * add tokenData to PacketData; improve TypeScript formatting * revert else style * extend 03-connection with a proof object for chains that can't introspect their own consensus state. (#839) * extend 03-connection with HostConsensusStateProof * make hostConsensusStateProof optional * ICS28: Reflect deferred unbonding completion in spec (#826) * call UnbondingCanComplete in EndBlock * update README * update ics23 link (#891) * update eli5 blog post link (#892) * ICS28: Sovereign to consumer chain transition (#840) * update CreateConsumerClient for sovereign chains * update InitGenesis for sovereign chains * establish CCV on ACK and handle preCCV completion * update Channel Uniqueness Correctness Reasoning * add pre-CCV module interface with staking * add clarifications * add overview TODO * fix pendingChanges bug * refactor proposal names (#855) * Update spec/app/ics-028-cross-chain-validation/system_model_and_properties.md Co-authored-by: Daniel T <30197399+danwt@users.noreply.github.com> * enable optimistic opening handshakes * remove ConsumerAdditionProposal.initialHeight * handle proposals in BeginBlock * pass consumer unbonding period via gov proposal * update channel init overview - wip * update overview * update modified date * add note re. the existing staking module Co-authored-by: Daniel T <30197399+danwt@users.noreply.github.com> * ICS28: VSCPackets should have timeout on provider (#858) * update CreateConsumerClient for sovereign chains * update InitGenesis for sovereign chains * establish CCV on ACK and handle preCCV completion * update Channel Uniqueness Correctness Reasoning * add pre-CCV module interface with staking * add clarifications * add overview TODO * fix pendingChanges bug * refactor proposal names * add VSC timeout * refactor proposal names (#855) * Update spec/app/ics-028-cross-chain-validation/system_model_and_properties.md Co-authored-by: Daniel T <30197399+danwt@users.noreply.github.com> * enable optimistic opening handshakes * remove ConsumerAdditionProposal.initialHeight * handle proposals in BeginBlock * pass consumer unbonding period via gov proposal * update channel init overview - wip * update overview * update modified date * ICS28: Channel initialization should have a timeout (#860) * add init timeout * fix typo * add note on timed out channel init * update vsc timeout as per implementation Co-authored-by: Daniel T <30197399+danwt@users.noreply.github.com> * add angbrav as code owner (#895) Co-authored-by: Carlos Rodriguez * save progress * start adding proof generation logic and update graphical_proof.jpg * rm spec/.DS_Store Signed-off-by: Jun Kimura Co-authored-by: Aditya Co-authored-by: Carlos Rodriguez Co-authored-by: Carlos Rodriguez Co-authored-by: Jun Kimura Co-authored-by: Haifeng Xi Co-authored-by: Web3 Philosopher Co-authored-by: Marius Poke Co-authored-by: Daniel T <30197399+danwt@users.noreply.github.com> Co-authored-by: Carlos Rodriguez --- spec/core/ics-032-multi-hop/README.md | 177 ++++++++++++++---- .../ics-032-multi-hop/graphical_proof.jpg | Bin 0 -> 85897 bytes 2 files changed, 138 insertions(+), 39 deletions(-) create mode 100644 spec/core/ics-032-multi-hop/graphical_proof.jpg diff --git a/spec/core/ics-032-multi-hop/README.md b/spec/core/ics-032-multi-hop/README.md index c85be70df..31268e63a 100644 --- a/spec/core/ics-032-multi-hop/README.md +++ b/spec/core/ics-032-multi-hop/README.md @@ -1,5 +1,5 @@ --- -ics: 32 +ics: 33 title: Multi-hop Channel stage: draft required-by: 4 @@ -40,13 +40,13 @@ Associated definitions are as defined in referenced prior standards (where the f ## Technical Specification -The bulk of the spec will be around proof generation and verification. Channel handshake and packet message types will remain the same. Round trip messaging semantics and flow will remain the same as well. There is additional work on the verifier side on the destination chain as well as the relayers who need to query for proofs. +The bulk of the spec will be around proof generation and verification. IBC connections remain unchanged. Addiitonally, channel handshake and packet message types as well as general round trip messaging semantics and flow will remain the same. There is additional work on the verifier side on the destination chain as well as the relayers who need to query for proofs. -Messages passed over multiple hops require proof of the connection path from source chain to destination chain as well as the packet commitment on the source chain. The connection path is proven by verifying the connection state and consensus state of each connection segment in the path to the destination chain. On a high level, this can be thought of as a connection path proof chain where the destination chain can prove the each segment of the connection path by proving the state of the prior connection within the next chains state root. +Messages passed over multiple hops require proof of the connection path from source chain to destination chain as well as the packet commitment on the source chain. The connection path is proven by verifying the connection state and consensus state of each connection in the path to the destination chain. On a high level, this can be thought of as a channel path proof chain where the destination chain can prove a key/value on the source chain by iteratively proving each connection and consensus state in the channel path starting with the consensus state associated with the final client on the destination chain. Each subsequent consensus state and connection is proven until the source chain's consensus state is proven which can then be used to prove the desired key/value on the source chain. ### Channel Handshake and Packet Messages -For both channel handshake and packet messages, additional connection hops are defined in the pre-existing `connectionHops` field. The connection IDs along the channel path must be pre-existing to guarantee delivery to the correct recipient. See `Path Forgery Protection` for more info. +For both channel handshake and packet messages, additional connection hops are defined in the pre-existing `connectionHops` field. The connection IDs along the channel path must be pre-existing and in the `OPEN` state to guarantee delivery to the correct recipient. See `Path Forgery Protection` for more info. The spec for channel handshakes and packets remains the same. See [ICS 4](https://github.com/cosmos/ibc/tree/main/spec/core/ics-004-channel-and-packet-semantics). @@ -54,15 +54,16 @@ In terms of connection topology, a user would be able to determine a viable chan ### Multihop Relaying -Relayers would deliver channel handshake and IBC packets as they currently do except that they are required to provide more proof of the channel path. Relayers would scan packet events for the connectionHops field and determine if the packet is multi-hop by checking the number of hops in the field. If the number of hops is greater than one then the packet is a multi-hop packet and will need extra proof data. +Relayers would deliver channel handshake and IBC packets as they currently do except that they are required to provide proof of the channel path. Relayers would scan packet events for the connectionHops field and determine if the packet is multi-hop by checking the number of hops in the field. If the number of hops is greater than one then the packet is a multi-hop packet and will need extra proof data. For each multi-hop channel (detailed proof logic below): -- Scan source chain for IBC messages to relay. -- Read the connectionHops field in from the scanned message to determine the channel path. -- Query for proof of connection and consensus state for each intermediate connection in the channel path to the destination connection. -- Query proof of packet commitment or handshake message commitment on source chain. -- Submit proofs and data to RPC endpoint on destination chain. +1. Scan source chain for IBC messages to relay. +2. Read the connectionHops field in from the scanned message to determine the channel path. +3. Lookup connection endpoints via chain registry configuration and ensure each connection in the channel path is updated to include the key/value to be proven on the source chain. +4. Query for proof of connection and consensus state for each intermediate connection in the channel path to the destination connection. +5. Query proof of packet commitment or handshake message commitment on source chain. +6. Submit proofs and data to RPC endpoint on destination chain. Relayers are connection topology aware with configurations sourced from the [chain registry](https://github.com/cosmos/chain-registry). @@ -70,44 +71,142 @@ Relayers are connection topology aware with configurations sourced from the [cha Graphical depiction of proof generation. -![graphical_proof.png](graphical_proof.png) +![graphical_proof.jpg](graphical_proof.jpg) Proof steps. ![proof_steps.png](proof_steps.png) -Pseudocode proof generation for a channel between chains `A -> B -> C`. +Pseudocode proof generation for a channel between `N` chains `C[0] --> C[i] --> C[N]` -```typescript -function queryBatchProof(client: Client, keys: []string) { - stateProofs = [] - for key in keys { - resp = client.QueryABCI(abci.RequestQuery{ - Path: "store/ibc/key", - Height: height, - Data: key, - Prove: true, - }) - proof = ConvertProofs(resp.ProofOps) - stateProofs = append(stateProofs, proof.Proofs[0]) +```go + +// generic proof struct +type ProofData struct { + Key *MerklePath + Value []]byte + Proof []byte +} + +// set of proofs for a multihop message +type MultihopProof struct { + KeyProof *ProofData // the key/value proof on the source chain + ConsensusProofs []*ProofData // array of consensus proofs starting with proof of chain0 state root on chain1 + ConnectionProofs []*ProofData // array of connection proofs starting with proof of conn10 on chain1 +} + +// Generate proof of key/value at the proofHeight on source chain, chain0. +func GenerateMultihopProof(chains []*Chain, key string, value []byte, proofHeight exported.Height) *MultihopProof { + + assert(len(chains) > 2) + + var multihopProof MultihopProof + chain0 := chains[0] // source chain + chain1 := chains[1] // first hop chain + + height01 := chain1.GetClientStateHeight(chain0) // height of chain0's client state on chain1 + assert(height01 >= proofHeight) // ensure that chain0's client state is update to date + + // query the key/value proof on the source chain at the proof height + keyProof, _ := chain0.QueryProofAtHeight([]byte(keyPathToProve), int64(proofHeight.GetRevisionHeight())) + prefixedKey := commitmenttypes.ApplyPrefix(chain0.GetPrefix(), commitmenttypes.NewMerklePath(key)) + + // assign the key/value proof + multihopProof.KeyProof = &ProofData{ + Key: &prefixedKey, + Value: nil, // proven values are constructed during verification + Proof: proof, } - return CombineProofs(stateProofs) + + // generate and assign consensus and connection proofs + multihopProof.ConsensusProofs = GenerateConsensusProofs(chains) + multihopProof.ConnectionProofs = GenerateConnectionProofs(chains) + + return &multihopProof } -// Query B & A for connectionState and consensusState kvs -keys = [ - "ibc/connections/{id}", - "ibc/consensusStates/{height}", -] -batchStateProofB = queryBatchProof(clientB, keys) -batchStateProofA = queryBatchProof(clientA, keys) - -// Query A for channel handshake and/or packet messages -keys = [ - "ibc/channelEnds/ports/{portID}/channels/{channelID}", - "ibc/commitments/ports/{portID}/channels/{channelID}/packets/{sequence}" -] -batchMessageProofA = queryBatchProof(clientA, keys) +// GenerateConsensusProofs generates consensus state proofs starting from the source chain to the N-1'th chain. +// Compute proof for each chain 3-tuple starting from the source chain, C0 to the destination chain, CN +// Step 1: |C0 ---> C1 ---> C2| ---> C3 ... ---> CN +// (i) (i+1) (i+2) +// Step 2: C0 ---> |C1 ---> C2 ---> C3| ... ---> CN +// (i) (i+1) (i+2) +// Step N-3: C0 ---> C1 ... ---> |CN-2 --> CN-1 ---> CN| +// (i) (i+1) (i+2) +func GenerateConsensusProofs(chains []*Chain, height) []*ProofData { + assert(len(chains) > 2) + + var proofs []*ProofData + + // iterate all but the last two chains + for i := 0; i < len(chains)-2; i++ { + + previousChain := chains[i] // previous chains state root is on currentChain and is the source chain for i==0. + currentChain := chains[i+1] // currentChain is where the proof is queried and generated + nextChain := chains[i+2] // nextChain holds the state root of the currentChain + + currentHeight := GetClientStateHeight(currentChain, sourceChain) // height of previous chain state on current chain + nextHeight := GetClientStateHeight(nextChain, currentChain) // height of current chain state on next chain + + // consensus state of previous chain on current chain at currentHeight which is the height of A's client state on B + consensusState := GetConsensusState(currentChain, prevChain.ClientID, currentHeight) + + // prefixed key for consensus state of previous chain + consensusKey := GetPrefixedConsensusStateKey(currentChain, currentHeight) + + // proof of previous chain's consensus state at currentHeight on currentChain at nextHeight + consensusProof := GetConsensusStateProof(currentChain, nextHeight, currentHeight, currentChain.ClientID) + + proofs = append(consStateProofs, &ProofData{ + Key: &consensusKey, + Value: consensusState, + Proof: consensusProof, + }) + } + return proofs + } + +// GenerateConnectionProofs generates connection state proofs starting with C1 --> starting from the source chain to the N-1'th chain. +// Compute proof for each chain 3-tuple starting from the source chain, C0 to the destination chain, CN +// Step 1: |C0 ---> C1 ---> C2| ---> C3 ... ---> CN +// (i) (i+1) (i+2) +// Step 2: C0 ---> |C1 ---> C2 ---> C3| ... ---> CN +// (i) (i+1) (i+2) +// Step N-3: C0 ---> C1 ... ---> |CN-2 --> CN-1 ---> CN| +// (i) (i+1) (i+2) +func GenerateConnectionProofs(chains []*Chain) []*ProofData { + assert(len(chains) > 2) + + var proofs []*ProofData + + // iterate all but the last two chains + for i := 0; i < len(chains)-2; i++ { + + previousChain := chains[i] // previous chains state root is on currentChain and is the source chain for i==0. + currentChain := chains[i+1] // currentChain is where the proof is queried and generated + nextChain := chains[i+2] // nextChain holds the state root of the currentChain + + currentHeight := currentChain.GetClientStateHeight(sourceChain) // height of previous chain state on current chain + nextHeight := nextChain.GetClientStateHeight(currentChain) // height of current chain state on next chain + + // prefixed key for the connection from currentChain to prevChain + connectionKey := GetPrefixedConnectionKey(currentChain) + + // proof of current chain's connection to previous Chain. + connectionEnd := GetConnection(currentChain) + + // Query proof of the currentChain's connection with the previousChain at nextHeight + // (currentChain's state root height on nextChain) + connectionProof := GetConnectionProof(currentChain, nextHeight) + + proofs = append(proofs, &ProofData{ + Key: &connectionKey, + Value: connectionEnd, + Proof: connectionProof, + }) + } + return proofs +} ``` Pseudocode proof verification of a channel between chains `A -> B -> C` . diff --git a/spec/core/ics-032-multi-hop/graphical_proof.jpg b/spec/core/ics-032-multi-hop/graphical_proof.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffd7f22957f0fd8cae6589dafe12e2f23cf22bef GIT binary patch literal 85897 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 E0PJ5