一种可扩展的区块链专用协处理器架构
发布时间:2022-01-22 03:57
随着区块链技术的发展,区块链系统对区块链底层的密码学算法等复杂运算的处理速度要求越来越高。双重哈希、默克尔树中哈希函数的连续计算、混合加密算法的组合运算等是区块链系统中经常出现的底层运算。为了处理这些运算,处理器频繁地访问寄存器和存储器,会使外设对总线的竞争加剧,随之引起延时变长和性能降低。为了解决这一问题,提出了一种可扩展的区块链专用协处理器架构:(1)内置的指令缓存和数据缓存使获得数据的路径变短,进而加快了处理速度;同时,外设对总线的竞争也有所缓解。(2)取指路径和取数路径都采取流水线方式,使数据处理可以不间断地工作,也会提升处理速度。(3)哈希计算单元支持双重哈希和多重哈希的计算,避免了计算的中间数据访问存储器和缓存,也使双重哈希和多重哈希的计算速度加快。还对区块链专用协处理器架构扩展到其他密码学算法、图像处理算法、神经网络算法等的可能性做了探讨。
【文章来源】:微纳电子与智能制造. 2020,2(01)
【文章页数】:8 页
【部分图文】:
比特币默克尔树
以太坊的信道加密机制,如图2所示,采用椭圆曲线集成加密方案ECIES[21]。以太坊A节点向B节点发送数据时,对数据进行加密的过程如图所示,包括:(1)利用伪随机数产生器生成一个随机数;(2)根据椭圆曲线加密算法,利用随机数生成A节点的临时非对称密钥对;(3)根据Key Agreement(KA)算法,利用A节点的临时私钥和B节点的公钥生成对称密钥;(4)根据AES算法,利用对称密钥对要发送的消息进行加密;(5)把加密数据和A节点的临时公钥发送出去。以太坊B节点接收到数据后,对加密数据的解码过程如图2所示,包括:(1)B节点从接收到的数据中解析出A节点的临时公钥和加密消息;(2)根据KA算法,利用A节点的临时公钥和B节点的私钥生成对称共享密钥;(3)根据AES算法,利用共享对称密钥解码加密的消息,得到A节点要发送的元数据。A节点每次发送消息,都会产生一个随机数,由之产生不同临时密钥对,进而产生不同的共享对产密钥,这就保证了消息不会被黑客拦截只能由B节点接收。经过上述分析,区块链系统底层牵涉到大量的密码学算法。这些算法大体可以归结为3类:(1)哈希算法,例如SHA2、SHA3等;(2)非对称加密算法,例如ECC和RSA;(3)对称加密算法,例如DES和AES等算法。另外,值得关注的是,双重哈希、默克尔树中哈希算法的连续计算、混合加密算法的组合运算是区块链底层计算的重要特征。
鉴于区块链底层计算具有默克尔树中哈希算法的连续计算、混合加密算法的组合运算等特点,本文提出一种区块链专用协处理器方案,定制协处理器的专用于区块链的密码学指令集,利用协处理器内部的指令缓存和数据缓存,不仅减少对内存的访问,还减少了与其他应用对内存访问的竞争,性能随之相应如图3所示,区块链专用协处理器包括可由AXI-Lite总线读写的寄存器组(配置寄存器、状态寄存器、中断控制寄存器)、指令DMA、含有缓存的取指单元、译码单元、数据DMA、含有缓存的数据读写单元和含有各种加密功能的执行单元。以计算?特币的默克尔树根哈希为例,说明区块链协处理器的工作原理。(1)CPU通过AXI-Lite总线初始化协处理器的寄存器组,使得协处理器知道指令在内存的首地址、待处理数据在内存的首地址和整个默克尔树运算任务完成后结果数据的存储地址。(2)根据协处理器指令首地址,取指单元向指令DMA请求从存储器中读指令数据;指令DMA读到指令数据后,把指令数据存入取指单元的指令缓存,同时也传给译码单元。(3)读取指令的同时,根据待处理数据的首地址,数据读写单元向数据DMA发出读数据请求;数据DMA读到待处理数据后,存入数据读写单元的数据缓存。(4)经过译码得知,需要对数据缓存中的数据进行SHA256加密处理。(5)根据译码单元处理完的结果,同样要存入数据读写单元的数据缓存中,以待下一次的处理。(6)如果后续指令是计算默克尔树中间节点的哈希值,数据读写单元则从数据缓存中读出对应中间节点的数据,交给执行单元进行SHA256加密处理。(7)直到默克尔树树根哈希计算完成,数据DMA通过AXI总线把默克尔树根哈希存储到内存中。
本文编号:3601510
【文章来源】:微纳电子与智能制造. 2020,2(01)
【文章页数】:8 页
【部分图文】:
比特币默克尔树
以太坊的信道加密机制,如图2所示,采用椭圆曲线集成加密方案ECIES[21]。以太坊A节点向B节点发送数据时,对数据进行加密的过程如图所示,包括:(1)利用伪随机数产生器生成一个随机数;(2)根据椭圆曲线加密算法,利用随机数生成A节点的临时非对称密钥对;(3)根据Key Agreement(KA)算法,利用A节点的临时私钥和B节点的公钥生成对称密钥;(4)根据AES算法,利用对称密钥对要发送的消息进行加密;(5)把加密数据和A节点的临时公钥发送出去。以太坊B节点接收到数据后,对加密数据的解码过程如图2所示,包括:(1)B节点从接收到的数据中解析出A节点的临时公钥和加密消息;(2)根据KA算法,利用A节点的临时公钥和B节点的私钥生成对称共享密钥;(3)根据AES算法,利用共享对称密钥解码加密的消息,得到A节点要发送的元数据。A节点每次发送消息,都会产生一个随机数,由之产生不同临时密钥对,进而产生不同的共享对产密钥,这就保证了消息不会被黑客拦截只能由B节点接收。经过上述分析,区块链系统底层牵涉到大量的密码学算法。这些算法大体可以归结为3类:(1)哈希算法,例如SHA2、SHA3等;(2)非对称加密算法,例如ECC和RSA;(3)对称加密算法,例如DES和AES等算法。另外,值得关注的是,双重哈希、默克尔树中哈希算法的连续计算、混合加密算法的组合运算是区块链底层计算的重要特征。
鉴于区块链底层计算具有默克尔树中哈希算法的连续计算、混合加密算法的组合运算等特点,本文提出一种区块链专用协处理器方案,定制协处理器的专用于区块链的密码学指令集,利用协处理器内部的指令缓存和数据缓存,不仅减少对内存的访问,还减少了与其他应用对内存访问的竞争,性能随之相应如图3所示,区块链专用协处理器包括可由AXI-Lite总线读写的寄存器组(配置寄存器、状态寄存器、中断控制寄存器)、指令DMA、含有缓存的取指单元、译码单元、数据DMA、含有缓存的数据读写单元和含有各种加密功能的执行单元。以计算?特币的默克尔树根哈希为例,说明区块链协处理器的工作原理。(1)CPU通过AXI-Lite总线初始化协处理器的寄存器组,使得协处理器知道指令在内存的首地址、待处理数据在内存的首地址和整个默克尔树运算任务完成后结果数据的存储地址。(2)根据协处理器指令首地址,取指单元向指令DMA请求从存储器中读指令数据;指令DMA读到指令数据后,把指令数据存入取指单元的指令缓存,同时也传给译码单元。(3)读取指令的同时,根据待处理数据的首地址,数据读写单元向数据DMA发出读数据请求;数据DMA读到待处理数据后,存入数据读写单元的数据缓存。(4)经过译码得知,需要对数据缓存中的数据进行SHA256加密处理。(5)根据译码单元处理完的结果,同样要存入数据读写单元的数据缓存中,以待下一次的处理。(6)如果后续指令是计算默克尔树中间节点的哈希值,数据读写单元则从数据缓存中读出对应中间节点的数据,交给执行单元进行SHA256加密处理。(7)直到默克尔树树根哈希计算完成,数据DMA通过AXI总线把默克尔树根哈希存储到内存中。
本文编号:3601510
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3601510.html