自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 secp256k1雅可比坐标加重射影坐标点的点加计算

本文主要对secp256k1的有个雅可比加重射影坐标的点加关系进行描述,为后来读代码者起到一点点的启发作用。网上有很多有个雅可比加重射影坐标的点加公式,可很多公式与实际使用在BTC代码库的程序不一致,这与椭圆曲线的系数选取及其坐标优化有关,看对于学习代码的人来说,需要找到符合代码中要求的公式却相对困难,希望此文能帮到一些人。

2024-06-27 17:07:15 158

原创 secp256k1-雅可比加重射影坐标的倍加计算

此公式的计算,椭圆曲线系数a=0。

2024-06-27 11:56:09 206

原创 wNAF标量乘算法介绍

椭圆曲线标量乘法是椭圆曲线密码系统中最关键(也是消耗资源和能量最多)的步骤,是椭圆曲线上一个点P与一个随机的整数k的乘积,即𝑄=𝑘𝑃=𝑃+𝑃+⋯+𝑃.因此通常做法是将k进行转换以减少其中点加次数,如二进制、NAF、wNAF等标量乘算法这些算法比可以较大降低计算的次数。今天主要介绍wNAF,wNAF是一种NAF的w进制表示形式,这里的w指的是占二进制位数,比如w=1表示1位:0b1,w=2表示2位:0b11,w=3表示3位:0b111,w=4表示4位:0B1111等等依次类推。

2024-06-19 14:11:17 823

原创 NAF算法介绍

最近研究SECP256K1曲线的相关运算时,在做ECDSA的验证时,需要计算aG + bP,其中a/b是标量,G/P是点,为了加速nP的运算,函数库中使用了w-NAF的算法,有些不甚理解,仔细研究了该算法的具体原理,并根据根据自己的理解进行如下的分析,w-NAF算法的核心就是NAF算法了。NAF算法的全称为非邻接形式(Non-Adjacent Form)表达。其核心思想是把标量b进行拆分,拆分为多项式表达式(1):b =,其中,n为最低位到最高位之间长度,在解释NAF之前先看b值转化为2进制表述法。

2024-06-17 15:40:09 442

原创 椭圆曲线群几个基本概念

所以一般来说,我们会选择一条椭圆曲线,计算它的阶数N,选择一个较大的除数作为子群阶数n,最终找到一个合适的基点。一个简单的想法就是,我们尝试把0到p-1的所有整数x代入方程,然后对于每个x都找到所有满足方程的解,这样我们就找到了曲线上所有的点。“循环子群”是元素循环重复的子群,循环群中的每个元素都可以写成是一个基本元素的倍数,就像我们在前面的例子中展示的那样。取椭圆曲线上任意一点P,所有P的倍数构成的集合是”定义在Fp上的椭圆曲线群“的一个循环子群。在有限域上定义的椭圆曲线包含的点的数量是有限的。

2023-10-02 15:37:22 887 1

原创 ECDSA的签名实现分析

本文分析ECDSA的具体计算过程,可以更加深入了解其签名的数学实现。

2023-09-25 16:24:46 82

原创 比特币隔离见证简述

简介BTC实现隔离见证

2023-09-20 19:00:20 416 1

原创 欧拉函数定义

φ(x)=x(1-1/p(1))(1-1/p(2))(1-1/p(3))(1-1/p(4))…..(1-1/p(n)) 其中p(1),p(2)…若m,n互质,φ(mn)=(m-1)(n-1)=φ(m)φ(n)。当n=p 且 a与素数p互质(即:gcd(a,p)=1)则上式有: a^(p-1)=1 mod n (恒等于)此公式即。若N是质数p的k次幂(即N=p^k),φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)。若N是质数p(即N=p), φ(n)= φ(p)=p-p^(k-1)=p-1。

2023-09-18 22:47:58 142

原创 BTC基于脚本公钥交易的签名过程

现在假设有一个地址S_ADD_001,该地址收到了两笔转账,一笔交易ID为TX001,金额0.4BTC,另一笔交易ID为TX002,金额1.1BTC,这两笔收入都是在其交易Output的第0条,也就是Index=0。现在需要用私钥,对该交易进行签名,因为有2个Input,所以需要进行签名2次,每个签名的原理是一样的,以第一个Input例来说明。显然这个副本与第一个签名时的数据【数据位置不同,同时可能锁定脚本可能不同】是不一样的,所以签名结果也不一样。3.复制该交易T对象,并在复制副本中将该Input的。

2023-09-15 18:50:23 376

原创 快速取模指数算法

参考1参考2。

2023-07-08 22:33:15 177 1

原创 椭圆曲线实现数字签名算法

曲线签名

2023-07-02 22:27:57 244 1

原创 Aleo区块产生全过程

ALEO的PPS概念及其证明过程

2023-02-02 18:01:28 223

原创 mining.notify数据简略说明

parse_method{"id":null,"method":"mining.notify","params":["B8ogsfZUm", //任务号"ce76aec7db69ea684be8b0633043d3cca3cbfa22000a15220000000000000000",//前一个块的hash值,小端字节"01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff64038f

2020-05-31 21:05:54 590

原创 CSS入门知识

1、CSS定义:CSS是层叠样式表的缩写(Cascading Style Sheets),其主要作用是解决如何显示HTML元素。2、CSS分类:A、浏览器缺省设置B、外部样式表C、内部样式表D、内联样式表3、CSS语法CSS规则主要由两部分组成:选择器与一条或多条声明selector {declaration1; declaration2; ... declarat...

2020-03-12 23:31:39 74

原创 BTC找零处理方式

一、coinbase交易结构每个区块的第一个交易叫做coinbase交易,它的结构如下:字节长度 字段 说明 4 交易版本号 明确这笔交易参照的规则 1-9 输入计数器 包含的交易输入数量 不定 交易输入 一个或多个交易输入 1-9 输出计数器 包含的交易输出数量 不定 交易输出 一个或多个交易输出...

2020-02-09 22:41:58 1532 1

原创 授权(mining.authorize)与 auth_stratum函数

一、授权(mining.authorize)命令  矿机收到矿池的订阅响应消息后,接着向矿池发送授权消息,消息内容如下:  {"id":2,"method":"mining.authorize","params":["zsc.1","x"]}  params包含两部分,第一部分是矿工名,第二部分是矿工密码(随意)。  矿池收到矿机的授权消息后,先对矿工名进行验证,矿工名的第一部分(“...

2020-01-12 23:16:51 1126

原创 mining.subscribe与initiate_stratum函数

一、mining.subscribe请求过程矿机启动后,先和矿池建立TCP连接,然后向矿池发送订阅消息,消息内容如下:  {"id":1,"method":"mining.subscribe","params":[]}矿池收到矿机的订阅消息后,响应消息内容如下:  {"id":1,"result":[[["mining.set_difficulty","01000000"],["m...

2020-01-12 23:04:35 2008

原创 转,go: github.com/go-xorm/core@v0.6.3: parsing go.mod: unexpected module path "xorm.io/core"

go: github.com/go-xorm/core@v0.6.3: parsing go.mod: unexpected module path "xorm.io/core"在go mod 中增加了这个的话,会报这个错误replace github.com/go-xorm/core v0.6.3 => xorm.io/core v0.6.3go: xorm.io/core@v...

2019-12-07 22:20:41 2971

原创 大小端规则

数据值:0X1234abcd小端:值 12 34 ab cd 地址 FF FE FD FC 大端:值 cd ab 34 12 地址 FF FE FD FC 在stratum协议中,版本号为00000002,采用小端编码方式。...

2019-11-24 20:25:36 270

原创 随记:iris/hero的依赖注入

package mainimport "github.com/kataras/iris"import "github.com/kataras/iris/hero"func main() {app := iris.Default() //1. 根据路径参数进行注入,{to:string},与func hello(to st...

2019-11-24 16:31:46 799

原创 挖矿中几个关键指标

utility:accepted/dev_runtime * 60,表示1分钟内被矿池接受的NONCE平均数Elapsed:表示矿机开启至今的秒数GH/S(RT):实时算力GH/S(avg):平均算力Local Work:本地使用的work数,通常本地work的变化有两部分,一部分是通过nonce2的改变生成,一部分通过时间的微调产生Work Utility:等于 total_diff1...

2019-11-23 17:13:19 2063

android开发串口,修改串口为非阻塞模式

最近用android_serialport_api开发了一个串口通讯程序,在使用过程中发现android_serialport_api基本构架都有 ,不过还有不少的缺陷,缺陷之一是:读取串口信息是阻塞模式,在向串口发出命令后,如果没返回的话,串口将被阻塞 这样,如果在没数据返回的情况,线程将不能安全退出。缺陷之二是:没有停止位、奇偶校验位,停止位的设置。缺陷之三是:如果退出串口通讯后,下位机可能会在此发送信息到端口,下次马上进入时,会有上次残留数据。 在通过网络查找,参考各位大能给的信息,重新修改了SerialPort.c,修改了打开串口参数,满足设置停止位、奇偶校验停止位功能。 修改了端口读取阻塞模式为非阻塞模式,增加一个清除端口数据函数。同时已经编译过了,只要直接调用就行了。 在网上很多大神给的方案,方案多有,大都是源代码的修改,没有编译的。用本案例的话,应该可以完美解决了读取串口的各种情况。

2018-08-21

MFC多客户端SOCKET实例

基于MFC的多客户端SOCKET连接,实现了一个服务器,多个客户的连接方式,下一步准备实现客户端重连机制

2018-04-20

Vc Socket网络通讯编程,服务器端与客户端

最近因为做一个小项目需要进行局域网络通讯,博主多年不写vs c++ ,在认真复习了C++、windows网络通讯编程原理,花了大概几天时间总算是把网络通讯程序给跑起来了。目前实现了服务器与客户端通信,本代码对新手来说应该是一个入门教程。可以直接运行。

2018-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除