Signing is the process of creating a digital signature using a private key to verify a transaction on the Areon 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 (opens in a new tab) standard. Areon leverages EIP-712 to homogenize the interaction between the EVM and Areon.
EIP-712 introduces a standard for signing "typed-data" in a human-readable format. This standard allowed users to understand the data they are signing more easily and provides a more secure way to sign data, as it is 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 transactions, Areon utilizes the EIP-712 protocol for encoding Areon transactions in a format that can be understood and processed by Ethereum signers. 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 Areon 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 the Ethereum signer using a wallet.
- The same process is performed on the node to verify the signature.
This compatibility makes it easier for users to interact with both Ethereum and Areon, ultimately fostering greater interoperability between the two ecosystems.
Ethers supports signing with EIP-712. More information about the library can be found here (opens in a new tab).