Signing
Signing is the process of creating a digital signature using a private key to verify a transaction on the E Money Network. The signature is created using a specific cryptographic algorithm that ensures the authenticity and integrity of the transaction using methods like wallets and the CLI.
There are different methods for signing, but one of the most commonly used methods is the EIP-712 standard. Scallop’s E Money Network leverages EIP-712 to homogenise the interaction between the EVM and Cosmos.
EIP-712
EIP-712 introduces a standard for signing "typed data" in a human-readable format. This standard allows users to understand the data they are signing more easily. It also provides a more secure way to sign data making it less susceptible to phishing attacks. EIP-712 is not an Ethereum transaction type but a method for signing structured data that can be used for authentication and indirect influence on program logic.
To support signing for Cosmos transactions E Money Network utilises the EIP-712 protocol. This protocol encodes Cosmos transactions in a format that can be understood and processed by Ethereum signers including Ledger hardware wallets. This approach helps to overcome the limitations of Ethereum signing devices which often do not support signing arbitrary bytes for security reasons.
The process works as follows:
A Cosmos transaction is represented as a JSON sign-doc.
The JSON sign-doc is converted to an EIP-712 object which consists of types and messages.
The EIP-712 object is signed using an Ethereum signer such as MetaMask or a Ledger hardware device.
The same process is performed on the node to verify the signature.
By using EIP-712 for signing Cosmos transactions E Money Network ensures compatibility with popular Ethereum signing tools like MetaMask and Ledger devices as well as Keplr. This compatibility makes it easier for users to interact with both Ethereum and Cosmos networks ultimately fostering greater interoperability between the two ecosystems.
Last updated