Skip to content

Latest commit

 

History

History
45 lines (30 loc) · 1.79 KB

tip-191.md

File metadata and controls

45 lines (30 loc) · 1.79 KB
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

Abstract

This TIP proposes a specification about how to handle signed data in TRON contracts.

Motivation

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.

Specification

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.

Registry of version bytes

Version byte TIP Description
0x00 191 Data with intended validator
0x01 712 Structured data

Signatures and Hashing

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.