【技术实现步骤摘要】
r * privKey),n为G的阶;客户端将交易明文和签名{r,s}发送给节点;其中,节点对交易进行验签,包括:节点读取交易的明文数据,从区块链系统合约中找到客户端的公钥pubKey,使用同样的哈希算法对明文数据进行计算哈希值,得到哈希值h1;节点计算签名的模逆元s1:s1 = s^
‑
1 (mod n);节点计算签名生成过程中的随机数对应的点R':R' = (h1 * s1) * G + (r * s1) * pubKey;节点计算R'的X轴值r' :r' = R'.x;节点对比r'是否等于签名中r,如果相等,则验证通过。
[0008]其中,节点的数量为十个以上,节点之间的网络采用局域网或者专线,节点之间采用委任权益证明机制达成节点共识。
[0009]其中,将包含交易的新区块添加到最长链上,并持久化到状态数据库,包括:设置允许分叉的阈值区块数量;当分叉链与节点的最长链的分叉点所在高度不超过阈值区块数量,分叉链被确认为正常分叉链,反之,则分叉链被丢弃。
[0010]其中,将包含交易的新区块添加到最长链上,并持久化到状态数据库,还包括:在出现临时分叉时回滚区块;在添加新区块或回滚区块时,通过依次执行或者回滚区块中包含的所有交易来更新状态数据库。
[0011]其中,节点采用多级缓存机制更新状态数据库,多级缓存机制包括:全局缓存、局部缓存以及LevelDB;缓存中存储的数据为状态数据,状态数据的类型包括:区块数据、账户数据、交易收据数据以及交易回滚数据等,更新状态数据库,包括:从局部缓存查找状态数据,如果未查找到 ...
【技术保护点】
【技术特征摘要】
1.一种区块链交易处理方法,其特征在于,包括:客户端生成一笔交易,并对所述交易进行私钥签名、序列化以及广播,其中,所述交易的数据结构包括如下多个属性:交易版本号、交易创建时的区块高度、交易发送方账户、交易接收方账户、转账金额、交易费用、交易备注、交易签名、以及交易哈希,当所述交易发送方或者交易接收方的账户第一次在链上激活时,以所述交易所在的区块高度和所述交易在区块中的位置索引来标识一个所述账户,在所述交易进行序列化时,采用压缩的变长编码进一步表示所述账户;节点对所述交易进行防重放攻击检查;在防重放攻击检查通过之后,所述节点对所述交易进行校验,所述校验包括验签;在通过校验之后,所述节点将所述交易打包进新区块,并将所述新区块进行广播;节点达成共识之后,将包含所述交易的新区块添加到最长链上,并持久化到状态数据库。2.根据权利要求1所述的方法,其特征在于,所述节点对所述交易进行防重放攻击检查,包括:在所述交易的数据结构中还设置一个属性:攻击交易失效的区块高度,将所述交易创建时的区块高度记作x,将攻击交易失效的区块高度记作n,将所述交易被所述节点打包进区块时的区块高度记作X;如果X在区间[x
‑
n,x+n]范围之外,则判定所述交易无效,否则,进入下一步;在内存中查找所述交易,如果能查找到所述交易,则判定所述交易无效,反之,则判定所述交易有效;其中,所述内存中维护着最新的n个区块包括的所有交易的键值对映射,并随着节点的最长链的变化实时更新所述键值对映射,其中,以标识唯一的区块的区块哈希作为映射的键,以所述区块包含的所有交易哈希组成的无序集合作为映射的键值。3.根据权利要求1所述的方法,其特征在于,所述区块链采用椭圆曲线数字签名算法对所述交易进行签名和验签;其中,所述客户端对所述交易进行签名,包括:所述客户端随机生成一个私钥privKey,并计算公钥pubKey=privKey*G,G为基点;所述客户端使用哈希算法对所述交易的明文计算哈希值,得到哈希值为h;所述客户端生成一个随机数k,计算点R=k*G,取点R的x轴值:r=R.x;所述客户端计算签名:s = k^
‑
1(mod n) * (h + r * privKey) ,n为G的阶;所述客户端将所述交易明文和签名{r,s}发送给节点;其中,所述节点对所述交易进行验签,包括:所述节点读取所述交易的明文数据,从区块链系统合约中找到所述客户端的公钥pubKey,使用同样的哈希算法对所述明文数据进行计算哈希值,得到哈希值h1;所述节点计算签名的模逆元s1:s1 = s^
‑
1 (mod n);所述节点计算签名生成过程中的随机数对应的点R':R' = (h1 * s1) * G + (r * s1) * pubKey;所述节点计算R'的X轴值r' :r' = R'.x;所述节点对比r'是否等于签名中r,如果相等,则验证通过。4.根据权利要求1所述的方法,其特征在于,所述节点的数量为十个以上,所述节点之
间的网络采用局域网或者专线,所述节点之间采用委任权益证明机制达成节点共识。5.根据权利要求1至4任意一项所述的方法,其特征在于,所述将包含所述交易的新区块添加到最长链上,并持久化到状态数据库,包括:设置允许分叉的阈值区块数量;当分叉链与节点的最长链的分叉点所在高度不超过所述阈值区块数量,所述分叉链被确认为正常分叉链,反之,则所述分叉链被丢弃。6.根据权...
【专利技术属性】
技术研发人员:冯国东,徐超,
申请(专利权)人:四块科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。