以太坊交易签名

摘要:
以太坊的交易结构如下follows://The以下是事务本身的数据信息letaccountNone:UInt64letprice:BigIntgasLimit:BigIntletreceiver:Addressletamount:BigUIntvarpayload:data//以下是签名信息varV:BigIntvarR:BigIntvarS:BigInt签名事务的步骤如下:

以太坊的Transcation结构如下:

// 以下为交易本身数据信息
    let accountNonce: UInt64
    let price: BigInt
    let gasLimit: BigInt
    let recipient: Address
    let amount: BigUInt
    var payload: Data?
    
// 以下为签名信息
    var V: BigInt
    var R: BigInt
    var S: BigInt

对交易签名步骤如下:

  1. 对交易本身进行rlp编码,再对rlp编码进行keccak256哈希
  2. 对第一步的结果进行椭圆曲线ecdsa的签名
  3. 对第二步的结果进行拆解,分别赋值到V R S中

最终V R S即为签名信息,可以从V R S得到发送者的地址



作者:Xiao_Li
链接:https://www.jianshu.com/p/9b225033762e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

免责声明:文章转载自《以太坊交易签名》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux下的压缩和解压缩命令gzip/gunzipAndroid开发 GridLayout网格布局下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

vue可调整大小和可拖动的组件---vue-draggable-resizable

border:位置:调整大小=“onResize”:{{width}};{{高度}}<importVueDraggableResizablefrom'vue-dragable-resizeable'导出默认值{data:height:methods:y){this.x=xthis.y=y}}}<...

安装pygame

在python3中安装pygame库。一段时间后,您可以看到安装成功,并且可以导入pygame...

使用 supervisor 管理进程

Supervisor可以在Linux和Mac OS X上运行。Supervisor功能强大,提供了很多功能,但我们可能只需要使用其中的一小部分。为了方便起见,我们将配置分为两部分:管理程序和应用程序。首先,让我们看看supervisord的配置文件。...

C#实现图片的无损压缩

//////图像缩略图处理//////图像源数据///压缩质量1-100///缩略图的宽///缩略图的高///publicstaticbyte[]ConvertToThumbnail{byte[]bs=null;try{if(bytes!...

Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构

本文提供了一个在Windows环境下使用VisualStudio2013编辑现有源代码并且保持目录结构的方法。打开VS2013,选择--选择项目类型:VisualC++项目文件位置:创建完成后会在这个目录生成sln,suo,vcxproj,filters和user等VS解决方案和项目文件,这个必须和源代码的根目录保持一致,否则不能导入文件夹结构。解决方法是添...

程序包javax.servlet.http不存在

在maventest项目时,出现错误:java:[7,26]程序包javax.servlet.http不存在原因:pom.xml中未引入javax.servlert-api相关的包javax.servletjavax.servlet-api3.1.0providedmaven中标签的意义compile默认的scope,表示dependency都可以在生命周期...