tip: 191
title: Signed Data Standard
author: yanghang8612@163.com
discussions to: https://github.com/tronprotocol/TIPs/issues/442
status: Final
type: Standards Track
category: TRC
created: 2022-07-25
This TIP proposes a specification about how to handle signed data in TRON contracts.
Off-chain message signing for use on-chain now is widely used by some multisignature wallet implementations and tokens with permit method.
However, there is currently no standard for off-chain message signing for TRON protocol, so this TIP aims to introduce an signed data standard similar to EIP-191.
We propose the following format for signed_data
0x19 <1 byte version> <version specific data> <data to sign>.
The format is totaly cmpatible with EIP-191.
Version 0 has <20 byte address> for the version specific data, and the address is the intended validator. In the case of a Multisig wallet, that is the wallet’s own address.
The initial 0x19 byte is intended to ensure that the signed_data is not valid beginning byte for Transaction and Block. Because in TRON protocol, the bytestrings transformed by the protobuf structure of Transaction.raw and Block.Header cannot start with 0x19.
| Version byte | TIP | Description |
|---|---|---|
0x00 |
191 | Data with intended validator |
0x01 |
712 | Structured data |
A signature scheme consists of hashing algorithm and a signing algorithm. The signing algorithm of choice is secp256k1. The hashing algorithm of choice is keccak256.
Copyright and related rights waived via CC0.