Access Control
Last updated
Last updated
The use of GMP (Generic Message Passing) protocols allows contracts residing on remote chains to interact with and execute functions in local contracts. This interaction is usually achieved without restrictions, meaning that multiple remote contracts on different chains have the ability to perform a wide range of operations or functions on local contracts.
In certain situations, unrestricted access offered by technologies like GMP protocols may not be ideal. Instead, controlled or restricted access is preferred.
While some GMP protocols incorporate these type controls, not all do, and moreover, each one presents different mechanisms for their enforcement.
The Glacis Access Control feature allows destination contract owners to define a standardized list of authorized incoming routes that are able to access their local contracts through the different GMP protocols.
An incoming route is defined by these parameters:
GMP Id: The Glacis GMP Id that have passed the message
Chain Id: The Glacis chain ID where the message comes from
Contract Address: The address of the source contract on remote chain (where the message was originated)
The access control mechanism is based on consulting the destination contract to determine if the incoming route of a message is an authorized one before sending it to the requested address in the destination chain. This task is performed by the Glacis Infrastructure on the destination chain.
If the route is recognized as authorized, the message is then successfully delivered.
In case that the route is not recognized as authorized, the transaction is rejected.
At any time the contract owner can make use of zero values for each one of the authorized incoming route parameters, Glacis will understand these parameters as "any".
GMP Id = 0 -> The message can arrive from any GMP
Chain Id = 0 -> The message can arrive from any chain
Contract Address = "0x" -> The message can arrive from any source address
Combinations of values and wildcards can be used, for example a contract with an authorized route of (0,1,"0x") implies that Glacis will only deliver messages to destination if they come from Ethereum chain regardless the GMP used for message passing or the source contract address.