以太坊离线签名交易

1.什么是冷钱包?

冷钱包就是不连网的钱包,也叫离线钱包。热钱包就是保持联网上线的钱包,也就是在线钱包。冷钱包不联网会比热钱包更安全。

由于冷钱包只对交易信息进行签名,在通过热钱包传输签名后的hex字符串到服务端, 然后服务端再进行统一的交易处理, 所以客户端就需要做到离线签名的功能, 那么在以太坊的如何签名转账hex? 以太坊有ETH和基于RPC20Token,这种是基于智能合约的, 签名也就不一样了.

 

2.ETH转账签名

         这里需要用web3j的方法, 所以需要在pom.xml中先添加web3j依赖

<dependencies>

       <dependency>

           <groupId>org.web3j</groupId>

           <artifactId>core</artifactId>

           <version>3.4.0</version>

       </dependency>

    </dependencies>

 

那么现在来试试如何做离线签名吧

以太坊离线签名交易

参数信息

    keyStore:秘钥文件中的内容

以太坊离线签名交易

    Transaction:

以太坊离线签名交易

服务端接收到客户端的签名信息进行广播

以太坊离线签名交易

2.ERC-20代币与以太坊转账是不同的,需要执行智能合约.

以太坊离线签名交易

参数信息

keyStore:秘钥文件中的内容

以太坊离线签名交易

       Transaction:

以太坊离线签名交易

服务端接收到客户端的签名信息进行广播

以太坊离线签名交易

nonce使用说明

为了防止交易的重播攻击,每笔交易必须有一个nonce值,针对每一个账户nonce都是从0开始,当nonce0的交易处理完之后,才会处理nonce1的交易,并依次加1的交易才会被处理。

获取地址nonce值的方法

以太坊离线签名交易