Investigation of deploying pallet-bridge-messages
on the source/destination chain (without finality pallets) a.k.a. sync finality proofs service
#5827
Labels
T15-bridges
This PR/Issue is related to bridges.
TL;DR:
The
pallet-bridge-messages
must validate received proofs from the bridged chain, which requires verified/provenbridged_header_hash
andstate_root
by finality pallets. However, we don't want to deploy finality pallets everywhere.Essentially, we need a solution that propagates (makes available) this information (
bridged_header_hash
andstate_root
) to the (para)chain where we want to deploypallet-bridge-messages
.Description
The
pallet-bridge-messages
needs to validate received proofs from the bridged chain inverify_messages_proof
. It only requires thestate_root
of the bridged chain for the verifiedbridged_header_hash
:pallet-bridge-grandpa
provides thebridged_header_hash
andstate_root
for bridging to a GRANDPA chain through theHeaderChain
implementation here.pallet-bridge-parachains
provides thebridged_header_hash
andstate_root
for bridging to a parachain through theHeaderChain
implementation here.It doesn’t make sense to deploy
pallet-bridge-grandpa
orpallet-bridge-parachains
on all source or destination chains. If we want to deploy onlypallet-bridge-messages
on a source or destination chain, we need to ensure or provide a mechanism to deliver a proven/verifiedstate_root
for the requestedbridged_header_hash
.1. Solution
Sync parachain proofs from BridgeHub to AssetHub using XCM
Transact
.pallet-bridge-sync-proofs
, on the AssetHub.update_proofs(bridged_header_hash, state_root)
.HeaderChain
trait for verifying proofs.pallet-bridge-messages
on the AssetHub using theHeaderChain
implementation frompallet-bridge-sync-proofs
to validate with synced proofs.pallet-bridge-parachains
:subscribe_for_proofs
andunsubscribe_for_proofs
.Transact(update_proofs(bridged_header_hash, state_root))
when new verified/proved data are produced, but only for the subscribed origins.2. Solution
I am borrowing @jakoblell's great summary here:
3. Solution - sync
state_root
of BridgeHub to the AssetHubSo when we have
state_root
of BridgeHub at the AssetHub, we can prepare proofs and we don't need to sync it with HRMP.#7445
Other solutions
Maybe BEEFY could be useful here?
TODO / Questions
snowfork-inbound/outbound-queue
possibilitiesThe text was updated successfully, but these errors were encountered: