eth签名信息
『壹』 如何创建和签署以太坊交易
交易
区块链交易的行为遵循不同的规则集
由于公共区块链分布式和无需许可的性质,任何人都可以签署交易并将其广播到网络。
根据区块链的不同,交易者将被收取一定的交易费用,交易费用取决于用户的需求而不是交易中资产的价值。
区块链交易无需任何中央机构的验证。仅需使用与其区块链相对应的数字签名算法(DSA)使用私钥对其进行签名。
一旦一笔交易被签名,广播到网络中并被挖掘到网络中成功的区块中,就无法恢复交易。
以太坊交易的数据结构:交易0.1个ETH
{
'nonce':'0x00', // 十进制:0
'gasLimit': '0x5208', //十进制: 21000
'gasPrice': '0x3b9aca00', //十进制1,000,000,000
'to': '' ,//发送地址
'value': '0x16345785d8a0000',//100000000000000000 ,10^17
'data': '0x', // 空数据的十进制表示
'chainId': 1 // 区块链网络ID
}这些数据与交易内容无关,与交易的执行方式有关,这是由于在以太坊中发送交易中,您必须定义一些其他参数来告诉矿工如何处理您的交易。交易数据结构有2个属性设计"gas": "gasPrice","gasLimit"。
"gasPrice": 单位为Gwei, 为 1/1000个eth,表示交易费用
"gasLimit": 交易允许使用的最大gas费用。
这2个值通常由钱包提供商自动填写。
除此之外还需要指定在哪个以太坊网络上执行交易(chainId): 1表示以太坊主网。
在开发时,通常会在本地以及测试网络上进行测试,通过测试网络发放的测试ETH进行交易以避免经济损失。在测试完成后再进入主网交易。
另外,如果需要提交一些其它数据,可以用"data"和"nonce"作为事务的一部分附加。
A nonce(仅使用1次的数字)是以太坊网络用于跟踪交易的数值,有助于避免网络中的双重支出以及重放攻击。
- const ethers = require('ethers')
- const signer = new ethers.Wallet('钱包地址')
- signer.signTransaction({
- 'nonce':'0x00', // 十进制:0
- 'gasLimit': '0x5208', //十进制: 21000
- 'gasPrice': '0x3b9aca00', //十进制1,000,000,000
- 'to': '' ,//发送地址
- 'value': '0x16345785d8a0000',//100000000000000000 ,10^17
- 'data': '0x', // 空数据的十进制表示
- 'chainId': 1 // 区块链网络ID
- })
- .then(console.log)
以太坊交易结构
以太坊交易签名
以太坊交易会涉及ECDSA算法,以Javascript代码为例,使用流行的ethers.js来调用ECDSA算法进行交易签名。
可以使用在线使用程序Composer将已签名的交易传递到以太坊网络。这种做法被称为”离线签名“。离线签名对于诸如状态通道之类的应用程序特别有用,这些通道是跟踪两个帐户之间余额的智能合约,并且在提交已签名的交易后就可以转移资金。脱机签名也是去中心化交易所(DEXes)中的一种常见做法。
也可以使用在线钱包通过以太坊账户创建签名验证和广播。
使用Portis,您可以签署交易以与加油站网络(GSN)进行交互。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
『贰』 以太坊(ETH)爆发,生态那些项目最值得关注
以太坊(ETH)爆发时,生态中最值得关注的几个项目:
1. SSV(Secure Stakeout Vaults)
- 简介:SSV是一个以太坊质押生态中的重要项目,旨在通过分片签名私钥的技术创新,提高质押过程的安全性和去中心化程度。
- 核心价值:SSV将签名私钥拆分为多个部分,分别由不同的节点操作员管理,从而避免了单一节点或操作员掌握完整私钥的风险。这种设计不仅保护了质押者的资产安全,还提高了节点的稳定性和抗风险能力。
- 发展前景:随着以太坊质押生态的不断发展,SSV的技术优势将逐渐显现,有望吸引更多质押者选择其作为质押解决方案。此外,SSV的技术还可以扩展到其他POS公链,具有广阔的应用前景。
2. Ethfi
- 简介:Ethfi是一个专注于以太坊金融生态的项目,提供多种金融产品和服务,以满足用户对资产管理和增值的需求。
- 核心价值:Ethfi通过整合以太坊生态中的优质资产和资源,为用户提供高效、便捷、安全的金融服务。其产品和服务涵盖了借贷、交易、资产管理等多个领域,为用户提供了全方位的金融解决方案。
- 发展前景:随着以太坊生态的不断繁荣,Ethfi有望吸引更多用户关注和使用其产品和服务。同时,Ethfi也在不断探索和创新,以提供更多元化、更个性化的金融服务,满足用户不断变化的需求。
3. Optimism(OP)
- 简介:Optimism是以太坊上的一个二层扩展解决方案,旨在通过乐观滚存技术提高以太坊的交易速度和吞吐量。
- 核心价值:Optimism通过构建一个与以太坊主网兼容的二层网络,实现了交易的快速确认和低成本执行。这为用户提供了更加流畅和高效的交易体验,同时也促进了以太坊生态的繁荣和发展。
- 发展前景:随着以太坊生态的不断扩大和用户对交易速度、吞吐量等需求的不断提高,Optimism等二层扩展解决方案将扮演越来越重要的角色。未来,Optimism有望与更多项目和生态进行深度融合,共同推动以太坊生态的持续发展。
4. ENS(Ethereum Name Service)
- 简介:ENS是一个基于以太坊的去中心化域名系统,允许用户将人类可读的名称(如网址)映射到以太坊地址上。
- 核心价值:ENS为用户提供了一个简单、直观的方式来识别和访问以太坊上的资源和账户。这降低了用户的使用门槛,提高了以太坊生态的易用性和普及度。
- 发展前景:随着以太坊生态的不断发展和用户对去中心化应用的需求不断增加,ENS有望成为一个重要的基础设施项目。未来,ENS可能会进一步扩展其功能和应用场景,为用户提供更多元化、更便捷的服务。
综上所述,SSV、Ethfi、Optimism和ENS是以太坊生态中最值得关注的几个项目。它们各自具有独特的核心价值和发展前景,共同推动了以太坊生态的繁荣和发展。在以太坊爆发的背景下,这些项目有望获得更多关注和支持,实现更加广阔的发展。
(注:以上图片为SSV相关技术对比图,展示了SSV与其他质押方式的异同点。)
『叁』 以太坊web3.sendRawTransaction离线签名交易
工作中需要复现短地址攻击和the重入攻击,重入攻击可以直接通过eth.sendTransaction和remix来发送交易,但是短地址攻击由于钱包和remix这些都对input做了长度检测,无法通过这些方式来复现,只能通过发离线签名交易来实现。
1.环境依赖:nodejs , keythereum , ethereumjs-common , ethereumjs-tx 。
2.进入Node控制台,获取相应账户私钥。
3.签名交易,进入Node,这里注意nonce问题,需要Nonce是实际可执行的nonce,Nonce不对会发送交易失败,关于如何获取input data网络比较多就不详述了。
4.遇到的坑,网络出来的步骤是有问题的或者过时了,当时是参考的这篇文章, https://www.freebuf.com/articles/blockchain-articles/199903.html
,在控制台通过eth.sendRawTransaction发送签名好的交易,我遇到了这个错误 ** sendRawTransaction invalid sender **