以太坊离线签名交易
1.什么是冷钱包?
冷钱包就是不连网的钱包,也叫离线钱包。热钱包就是保持联网上线的钱包,也就是在线钱包。冷钱包不联网会比热钱包更安全。
由于冷钱包只对交易信息进行签名,在通过热钱包传输签名后的hex字符串到服务端, 然后服务端再进行统一的交易处理, 所以客户端就需要做到离线签名的功能, 那么在以太坊的如何签名转账hex呢? 以太坊有ETH和基于RPC20的Token,这种是基于智能合约的, 签名也就不一样了.
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开始,当nonce为0的交易处理完之后,才会处理nonce为1的交易,并依次加1的交易才会被处理。
获取地址nonce值的方法