以太坊离线签名交易

1.什么是冷钱包?

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

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

 

2.ETH转账签名

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

<dependencies>

       <dependency>

           <groupId>org.web3jgroupId>

           <artifactId>coreartifactId>

           <version>3.4.0version>

       dependency>

    dependencies>

 

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

以太坊离线签名交易_第1张图片

参数信息

    keyStore:秘钥文件中的内容

    Transaction:

以太坊离线签名交易_第2张图片

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

以太坊离线签名交易_第3张图片

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

以太坊离线签名交易_第4张图片

参数信息

keyStore:秘钥文件中的内容

       Transaction:

以太坊离线签名交易_第5张图片

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

以太坊离线签名交易_第6张图片

nonce使用说明

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

获取地址nonce值的方法

你可能感兴趣的:(区块链)