CN111970112A - 基于zynq异构计算平台的以太坊部署方法及系统 - Google Patents
基于zynq异构计算平台的以太坊部署方法及系统 Download PDFInfo
- Publication number
- CN111970112A CN111970112A CN202010796356.6A CN202010796356A CN111970112A CN 111970112 A CN111970112 A CN 111970112A CN 202010796356 A CN202010796356 A CN 202010796356A CN 111970112 A CN111970112 A CN 111970112A
- Authority
- CN
- China
- Prior art keywords
- algorithm
- zynq
- matrix
- deployment
- computing platform
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本公开提供了一种基于ZYNQ异构计算平台的以太坊部署方法及系统,包括以下步骤:获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值;本公开考虑了待部署算法的性能指标和每种算法的不同运行方式,极大的提高了部署后的运行速度和资源的利用率。
Description
技术领域
本公开涉及区块链技术领域,特别涉及一种基于ZYNQ异构计算平台的以太坊部署方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。
以太坊(Ethereum)作为开源的有智能合约功能的公共区块链平台,通过其专用的加密货币以太币(Ether)来提供去中心化的以太虚拟机(Ethereum Virtual Machine)来处理点对点合约。以太坊可视作区块链2.0版本,与区块链系统相比较,在软件层面,以太坊新加入了智能合约,在实际应用中则加入了通证这一重要元素。作为以太坊的基础,比特币区块链常常被分为网络层和数据层两个层次,而更上层次的则是作为比特币协议的应用层、激励层与共识层(如图2所示)。
在比特币区块链的最底层数据层包括散列函数(hash),非对称加密函数等多种不同的密码算法函数以及梅克尔树、链式结构等数据结构。
在以太坊中也同样使用众多加密算法,主要包括SHA系列的SHA-256和SHA-512、基于ECDSA(椭圆曲线数字签名算法)的secp256k1、AES算法(高级加密标准)、PBKDF2(密钥导出函数)、ECIES(椭圆曲线集成加密方案)等等,他们大多放于以太坊源码的文件“crypto”下。众多的加密算法在以太坊中具有不同的使用场景与使用频率,这些加密算法的具体实现方式与部署方案都影响着整个以太坊系统的运行效率。
比特币挖矿的芯片已经经过几轮演变,其计算能力也越来越强:从CPU演变到GPU(显卡),再到现场可编程门阵列(FPGA)以及专用集成电路技术(ASIC),即只能进行比特币挖矿所需的哈希计算的专用芯片中。并且随着矿机的升级迭代和数量增多,接入比特币区块链网络、参与挖矿竞争的计算力也越来越大。将以太坊部署到FPGA平台上可以有效提高以太坊系统中各密码算法的运行速率,还可以通过合理部署FPGA资源,提高基于FPGA平台运行的以太坊系统的资源利用率。
但是,本公开发明人发现,现有的以太坊部署方式大多采用随机部署的方式,没有考虑各种算法的特性,也没有考虑各种算法的不同运行方式,从而使得得到的部署方案运行速度较慢,而且无法达到较高的资源利用率。
发明内容
为了解决现有技术的不足,本公开提供了一种基于ZYNQ异构计算平台的以太坊部署方法及系统,考虑了待部署算法的性能指标和每种算法的不同运行方式,极大的提高了部署后的运行速度和资源的利用率。
为了实现上述目的,本公开采用如下技术方案:
本公开第一方面提供了一种基于ZYNQ异构计算平台的以太坊部署方法。
一种基于ZYNQ异构计算平台的以太坊部署方法,包括以下步骤:
获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
作为可能的一些实现方式,预设整数线性规划模型的约束条件为:仅有一种密码算法部署到ARM端,各个密码算法的决策因子与某一成本性指标资源占用量的乘积的和小于此成本线指标在FPGA端的资源量。
作为可能的一些实现方式,对每种算法在FPGA端的多种实现方式进行寻优,具体为:
获取每种待部署算法的多种实现方式以及每种实现方式的多个评价指标;
根据获取的实现方式和评价指标构建决策矩阵,决策矩阵中的每一行对应于一种实现方式,每一列对应于一个评价指标;
对不同的数据类型的评价指标进行规范化处理得到规范化矩阵,然后将规范化矩阵的列归一化为新的矩阵;
计算每个指标输出的信息熵,根据得到的信息熵,计算各个指标的属性权向量;
每个方案的综合评分为规范化矩阵中此方案所在行的各个元素与属性权向量的加权和;
以综合评分最高的实现方式为此算法在FPGA端的最优实现方式。
作为进一步的限定,对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值除以此元素所在行的最大值。
作为进一步的限定,对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值与此元素所在行的最大值的差除以此元素所在行的最大值与最小值的差。
作为进一步的限定,对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值除以原矩阵中此元素的值。
作为进一步的限定,对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值与原矩阵中此元素的差除以此元素所在行的最大值与最小值的差。
作为可能的一些实现方式,通过对以太坊底层源代码解读结果和实际实验测试结果甄选出使用率高以及对以太坊安全性影响大的预设个数的密码算法。
作为可能的一些实现方式,所述待部署算法为哈希算法Keccak256、用作签名的ECDSA算法和用作存储本地密钥和发送信息的AES算法。
作为可能的一些实现方式,每种算法在ARM端的实现方式以运行速率为单一正相关指标进行排序和选择,以运行速率最大的实现方式为此算法在ARM最优实现方式。
本公开第二方面提供了一种基于ZYNQ异构计算平台的以太坊部署系统。
一种基于ZYNQ异构计算平台的以太坊部署系统,包括:
数据获取模块,被配置为:获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
部署方案获取模块,被配置为:将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
本公开第三方面提供了一种介质,其上存储有程序,该程序被处理器执行时实现如本公开第一方面所述的基于ZYNQ异构计算平台的以太坊部署方法中的步骤。
本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开第一方面所述的基于ZYNQ异构计算平台的以太坊部署方法中的步骤。
与现有技术相比,本公开的有益效果是:
1、本公开所述的方法、系统、介质及电子设备,考虑了待部署算法的性能指标和每种算法的不同运行方式,极大的提高了部署后的运行速度和资源的利用率。
2、本公开所述的方法、系统、介质及电子设备,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值,得到的部署方案能够实现运行速度的最大化。
3、本公开所述的方法、系统、介质及电子设备,对每种算法在FPGA端的多种实现方式进行寻优,得到每种算法在FPGA端的最优运行方式排列方式,在进一步的提高运行速度的同时,提升了资源利用率。
4、本公开所述的方法、系统、介质及电子设备,每种算法在ARM端的实现方式以运行速率为单一正相关指标进行排序和选择,以运行速率最大的实现方式为此算法在ARM最优实现方式,使得部署方案在ARM端能够获得最优的运行速率。
附图说明
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
图1为本公开实施例1提供的基于ZYNQ异构计算平台的以太坊部署方法的流程示意图。
图2为本公开实施例1提供的比特币系统架构图。
图3为本公开实施例1提供的ZYNQ芯片架构示意图。
图4为本公开实施例1提供的ZYNQ系列开发板PS端数据图(包括ARM处理器个数)。
图5为本公开实施例1提供的ZYNQ系列开发板FPGA部分各计算资源数据图。
具体实施方式
下面结合附图与实施例对本公开作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例1:
如图1所示,本公开实施例1提供了一种基于ZYNQ异构计算平台的以太坊部署方法,包括以下步骤:
获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
具体为:
通过对以太坊底层源代码解读和实际实验测试甄选出使用率较高以及对以太坊安全性影响较大的密码算法;
通过指令级优化得到较优的算法在ARM端的实现方式;
通过熵权法甄选出各算法在FPGA平台上的最优实现方案;
选择合适的ZYNQ平台部署以太坊,通过整数线性规划模型用Lingo软件求解得出最优部署方案。
详细的,包括以下内容:
在以太坊中使用了众多的加密算法,主要包括SHA系列的SHA-256和SHA-512、基于ECDSA(椭圆曲线数字签名算法)的secp256k1、AES算法(高级加密标准)、PBKDF2(密钥导出函数)、ECIES(椭圆曲线集成加密方案)等等,它们大多放于以太坊源码的文件“crypto”下。
首先对各种加密算法在以太坊内的使用按照不同的使用情景进行测试。按照预先对以太坊源码的初步解读,加密算法的使用主要在四个位置,分别是:
(1)P2P网络通信。以太坊在TCP加密通信层中使用的协议是RLPx协议,与其他节点进行握手并建立安全加密连接。使用ECIES对消息进行集成加密。
(2)区块签名。以太坊使用第三方库secp256k1来完成签名工作,它拥有一组特定的椭圆曲线数字签名参数,在比特币中就有所应用。
(3)本地管理账户信息。以太坊中使用wallet-keystore实现本地用户的账户管理,其中必须要在passphrase中实现对用户密钥对的加密,而用户只有输入正确的密码才能解封账户,并发起交易。
(4)Crypto.go。以太坊在这个文件中封装了大量的加密算法调用接口,这些接口在以太坊的所有代码模块中都有使用。
主要测试方法为针对其中所使用的不同加密算法所需要调用的接口,对它们进行使用率与运行时间的检测。
首先使用以太坊自身在源码中集成的“metrics”包在各相应的接口使用处打下时间桩。“metrics”是一套监控指标的度量类库,提供了Gauge、Counter、Meter、Histogram、Timer等度量工具。这里主要使用的是Timer,可以测量代码被调用的速率和用时。最后每隔特定时间使用reporter对象输出各加密算法接口当前的调用情况。
而四种不同的使用情景分别为:
1)NothingToDo,节点只是单纯的开启客户端,处于等待获取新的区块到来的状态。
2)OnlyMiner,节点执行miner.start开始进行挖矿工作。
3)MetaCoin,节点是部署了一个简单的代币实例智能合约,执行智能合约的测试工作。
4)SimpleVitalHealth,节点上部署了一套简单的医疗信息交付智能合约,执行智能合约的测试工作。
因为暂时还不清楚不同智能合约的使用是否会对加密算法的调用产生影响,所以,选用了两套不同的智能合约进行部署,其中SimpleVitalHealth智能合约的执行过程相比MetaCoin要复杂一些。
实验测试结果如下:
表1:NothingToDo使用场景下各方法的每分钟调用次数,平均调用延迟与总延迟。
表2:OnlyMiner使用场景下各方法的每分钟调用次数,平均调用延迟与总延迟。
表3:MetaCoin使用场景下各方法的每分钟调用次数,平均调用延迟与总延迟。
表4:SimpleVitalHealth使用场景下各方法每分钟调用次数,平均延迟与总延迟。
根据对以上实验数据的分析,关注到几个点。首先是ECIES加密算法的使用,因为是应用在网络通信模块,所以不论是否挖矿或者执行智能合约它的使用情况都相差不大。而很显然Transaction_signing中的signTX用于对交易进行签名,只有当调用智能合约发送交易时才会被调用,其内部通过secp256k1完成交易的签名。
Keystore模块的使用情况实际上比较清晰,加密账户只有在创建账户时才使用,解密账户只有当对特定账户使用“personal.unlock”操作对其解封时才会调用,根据用户输入的密码将用户的账户解封,只有解封的账户才能发送交易。在以上的实验过程中共创建了两个账户,在运行时间为5分钟的情况下,每分钟的调用频率为0.4。所以账户的加密、解密与程序运行时间无关,只与用户操作有关。
然后是Crypto模块,其中的keccak256与keccak512实际上就是调用了SHA-256与SHA-512对数据进行散列。可以看到当开始进行挖矿时他们的调用次数陡增。根据对源码的分析,Keccak512方法只在挖矿的过程中使用,所以他对以太坊的加密与安全性的影响不大,而Keccak256则不同,深入查看发现实际上它在keystore、P2P、consensus等各个模块中都有使用,使用频率较高,同时对以太坊的安全性也影响巨大。
进一步分析可知,数字签名算法在以太坊中的使用也不少,目前已知的分别是在每个交易生成时对其进行签名以及在Clique共识算法中的作为新区块的Seal(授权、包装,在另外一种共识算法Ethash中此操作主要就是进行POW)的一部分。除此之外以太坊中还将签名中的公钥转换为一个特殊的数据类型address(如之前所提到的操作fromECDSAPub就会从公钥获取address),作为账户地址的表示。
以上两处中所使用的都是椭圆曲线数字签名算法(ECDSA),它基于椭圆曲线的特点,进一步说,其核心就是椭圆曲线上求两点的点倍积这一操作不可逆的特点,从而保证由私钥可以推出公钥,而公钥无法反推私钥。以太坊中采用的椭圆曲线数字签名算法来自第三方库secp256k1,它拥有一条特殊的曲线,而且由于其构造的特殊性,优化后实现性能相比其他的曲线要略高,除此之外它还有占用带宽和存储资源少的特点。
最后AES(高级加密标准)作为当今对称密钥加密中最流行的算法之一在以太坊中也有所使用,主要用在存储本地密钥、发送信息(p2p模式)等方面。AES是在一个由明文构成的字节矩阵上进行数轮的加密循环,每轮分别执行AddRoundKey、SubBytes、ShitfRows1MixColumns等变换步骤。AES的分组长度为128比特,而密钥的长度是128比特、192比特、256比特不等。
综上所述,以太坊中使用频率最高的是哈希算法Keccak256(sha-256的一种),其次是用作签名的ECDSA(以太坊中使用secp256k1),最后是用作存储本地密钥、发送信息(p2p模式)的AES(高级加密标准)。因此,在将以太坊部署到基于ZYNQ的异构计算平台上时也着重考虑这三种类型的密码算法,ZYNQ芯片示意图如图3所示。
下面给出一种通用的将以太坊部署到ZYNQ平台上的基于整数线性规划的计算资源分配方案。
假设密码算法Keccak256、ECDSA和AES在ZYNQ中的ARM端(单核)与FPGA端的运行速率如下表所示:
构造算法运行的速率矩阵
设决策矩阵
当ZYNQ平台的ARM端为单核时,a11、a21和a31分别表示是否在当前ZYNQ平台的ARM端部署该密码算法。
即:
而当ZYNQ平台的ARM端为双核时,a11、a21和a31的具体含义为:
各ZYNQ系列开发板的PS端ARM处理器个数及PS端其他数据如图4所示。
a12、a22和a32分别表示算法Keccak256、ECDSA和AES在ZYNQ平台的FPGA部分部署的IP核个数。
f1、f2、f3分别表示以太坊中密码算法Keccak256、ECDSA和AES的调用频率。
定义矩阵中点乘:Am,n⊙Bm,n=Cm,n,其中:
cij=aijbij(1≤i≤m,1≤j≤n)
令M=A⊙V
可得到整数线性规划模型如下:
max:F=f1a11v11+f1a12v12+f2a21v21+f2a22v22+f3a31v31+f3a32v32
其中,rlj、rfj、rbj分别表示算法j在LUTs、FF、BRAM方面的资源占用量,rlz、rfz、rbz分别表示所选用的部署以太坊的ZYNQ平台的FPGA部分在LUTs、FF、BRAM方面的资源量。常见的ZYNQ系列平台的FPGA部分的各方面计算资源数据如图5所示。
通过lingo或者matlab软件可以求解得出以太坊算法在ZYNQ平台上的具体部署方案,具体为:
算法Keccak256、ECDSA和AES在以太坊中实际测得的使用频率满足f1:f2:f3=7749366:75:73。由于目标函数F中每一项均有且只含有一个f1/f2/f3,因此每一项均可以乘以相同的常数使得目标函数的最大值特性不予改变,因此f1、f2和f3可以分别取整数值为7749366、75、73。
运行速率v同理,由实验得出速率矩阵:
在Z-7020平台下的测试数据如下表所示:
算法 | LUTs | FF | BRAM |
Keccak256 | 4% | 4% | 8% |
ECDSA | 8% | 4% | 10% |
AES | 25% | 4% | 20% |
Z-7020平台的LUTs、FF、BRAM的资源数据如图5所示,根据测试数据的百分比可以计算得出实际的资源占用量。
重新选择型号为Z-7007S的ZYNQ平台作为新的测试平台,Z-7007S的ARM端和FPGA部分的资源数据如图4、图5所示。在lingo软件(一种可用于求解线性规划类问题的数学软件)中输入的代码如下:
求解该模型即可求得合适的以太坊中算法部署方案。该模型求解得出的一定是精确的全局最优解。
在实际应用当中,即使是同一算法部署到同一FPGA平台上,采用不同的实现方式(如不同的Verilog代码或者不同的高级综合优化方法)所生成的IP核在算法运行速率以及资源利用率方面都有着不小的区别。因此对于以太坊中不同的密码算法去选择不同的最合适的实现方式也是基于ZYNQ异构计算平台的以太坊部署方案需要解决的内容。
假设该算法(如Keccak256、ECDSA和AES)在ZYNQ平台的FPGA部分的现有的实现方案共有n个,记为方案集:
D={d1,d2,…,dn},
式中di表示第i个方案。进一步地,设影响方案评判的具有多属性的评价指标共有m个,记为x1,x2,…,xm。
记第i个备选方案di对应的m个评价指标的属性值向量为:
(ai1,ai2,…,aim),i=1,2,…,n.
把所有方案的属性值行向量按方案次序组合在一起,即构成一个决策矩阵:
其中决策矩阵A中的每一行对应于一个方案,每一列对应于一个属性指标。对不同的数据类型的指标进行规范化处理,就等价于对决策矩阵的列向量进行规范化处理。
在实际评估以太坊中的密码算法时所采用的评价指标为算法运行速率、Look-UpTables(LUTs)、Flip-Flops(FF)、Block RAM(BRAM)。这其中只有算法运行速率为效益型指标,LUTs、FF与BRAM均为典型的成本型指标。
下面给出对于不同属性类型的指标的规范化方法。对不同属性值类型的指标,同时考虑消除量纲和数量级的差异,统一规范化为效益型即极大型指标的方法为:
对于效益型指标算法运行速率xj,令:
或
该方法规范化的结果是将效益型指标化为(0,1]或[0,1]型无量纲效益型指标。而对于成本型指标(LUTs、FF、BRAM)xj,令
或:
该方法规范化的结果是将效益型指标化为(0,1]或[0,1]型无量纲效益型指标。
在对各个方案进行评价时的具体步骤如下:
STEP 1:
确定决策矩阵:
A=(aij)n×m
对于的用例,n为备选方案个数,m=4(算法运行速率、LUTs、FF和BRAM)。
STEP 2:
对矩阵A采用之前所述的规范化方法处理,得到矩阵
R=(rij)n×m
STEP 3:
把规范化矩阵R=(rij)n×m按列归一化为矩阵
式中
STEP 4:
计算第j个指标输出的信息熵:
STEP 5:
计算属性权向量w=(w1,w2,…,wm),其中
STEP 6:
计算第i个方案的综合得分值zi(w):
STEP 7:
按照方案得分值zi(w),i=1,2,…,n的大小来对方案进行排序和择优。一般选择得分最高即zi(w)取值最大的方案作为该算法在ZYNQ平台的FPGA部分实现方案。
而对于各算法在ZYNQ平台的ARM端的实现方案只需以运行速率为单一正相关指标进行排序和选择。
以以太坊中的哈希算法Keccak256为例,现有Keccak256在ZYNQ平台的FPGA部分的三种不同的实现方案如下表所示:
注:LUTs、FF、BRAM的资源消耗数据表示该算法所占资源占整个FPGA部分资源的比例,可由vivado软件综合之后的仿真模拟报告以及高级综合后的软件报告中的utilization部分得出。
计算最优方案过程如下:
STEP 1:
确定决策矩阵
STEP 2:
对矩阵A采用之前所述的规范化方法处理,得到矩阵
STEP 3:
把规范化矩阵R=(rij)n×m按列归一化为矩阵
STEP 4:
计算各指标的信息熵向量:
E=(0.9,0.96,1.0,0.93)T
STEP 5:
计算属性权向量:
w=(0.476,0.19,0,0.33)T
STEP 6:
计算方案得分向量:
z=(0.375,0.834,0.901)T
STEP 7:
按照方案得分向量z的各分向量大小确定各实现方案的优先次序,即
方案3>方案2>方案1
也就是说,所有的Keccak256实现方案中选择方案3作为最优方案部署到ZYNQ平台的FPGA部分进行硬件实现。
实施例2:
本公开实施例2提供了一种基于ZYNQ异构计算平台的以太坊部署系统,包括:
数据获取模块,被配置为:获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
部署方案获取模块,被配置为:将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
所述系统的工作方法与实施例1提供的基于ZYNQ异构计算平台的以太坊部署方法相同,这里不再赘述。
实施例3:
本公开第三方面提供了一种介质,其上存储有程序,该程序被处理器执行时实现如本公开实施例1所述的基于ZYNQ异构计算平台的以太坊部署方法中的步骤,所述步骤为:
获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
预设整数线性规划模型的约束条件为:仅有一种密码算法部署到ARM端,各个密码算法的决策因子与某一成本性指标资源占用量的乘积的和小于此成本线指标在FPGA端的资源量。
对每种算法在FPGA端的多种实现方式进行寻优,具体为:
获取每种待部署算法的多种实现方式以及每种实现方式的多个评价指标;
根据获取的实现方式和评价指标构建决策矩阵,决策矩阵中的每一行对应于一种实现方式,每一列对应于一个评价指标;
对不同的数据类型的评价指标进行规范化处理得到规范化矩阵,然后将规范化矩阵的列归一化为新的矩阵;
计算每个指标输出的信息熵,根据得到的信息熵,计算各个指标的属性权向量;
每个方案的综合评分为规范化矩阵中此方案所在行的各个元素与属性权向量的加权和;
以综合评分最高的实现方式为此算法在FPGA端的最优实现方式。
对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值除以此元素所在行的最大值。
或者,对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值与此元素所在行的最大值的差除以此元素所在行的最大值与最小值的差。
对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值除以原矩阵中此元素的值。
或者,对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值与原矩阵中此元素的差除以此元素所在行的最大值与最小值的差。
通过对以太坊底层源代码解读结果和实际实验测试结果甄选出使用率高以及对以太坊安全性影响大的预设个数的密码算法。
所述待部署算法为哈希算法Keccak256、用作签名的ECDSA算法和用作存储本地密钥和发送信息的AES算法。
每种算法在ARM端的实现方式以运行速率为单一正相关指标进行排序和选择,以运行速率最大的实现方式为此算法在ARM最优实现方式。
详细步骤与实施例1提供的基于ZYNQ异构计算平台的以太坊部署方法相同,这里不再赘述。
实施例4:
本公开第四方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述处理器执行所述程序时实现如本公开实施例1所述的基于ZYNQ异构计算平台的以太坊部署方法中的步骤。
,所述步骤为:
获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
预设整数线性规划模型的约束条件为:仅有一种密码算法部署到ARM端,各个密码算法的决策因子与某一成本性指标资源占用量的乘积的和小于此成本线指标在FPGA端的资源量。
对每种算法在FPGA端的多种实现方式进行寻优,具体为:
获取每种待部署算法的多种实现方式以及每种实现方式的多个评价指标;
根据获取的实现方式和评价指标构建决策矩阵,决策矩阵中的每一行对应于一种实现方式,每一列对应于一个评价指标;
对不同的数据类型的评价指标进行规范化处理得到规范化矩阵,然后将规范化矩阵的列归一化为新的矩阵;
计算每个指标输出的信息熵,根据得到的信息熵,计算各个指标的属性权向量;
每个方案的综合评分为规范化矩阵中此方案所在行的各个元素与属性权向量的加权和;
以综合评分最高的实现方式为此算法在FPGA端的最优实现方式。
对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值除以此元素所在行的最大值。
或者,对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值与此元素所在行的最大值的差除以此元素所在行的最大值与最小值的差。
对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值除以原矩阵中此元素的值。
或者,对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值与原矩阵中此元素的差除以此元素所在行的最大值与最小值的差。
通过对以太坊底层源代码解读结果和实际实验测试结果甄选出使用率高以及对以太坊安全性影响大的预设个数的密码算法。
所述待部署算法为哈希算法Keccak256、用作签名的ECDSA算法和用作存储本地密钥和发送信息的AES算法。
每种算法在ARM端的实现方式以运行速率为单一正相关指标进行排序和选择,以运行速率最大的实现方式为此算法在ARM最优实现方式。
详细步骤与实施例1提供的基于ZYNQ异构计算平台的以太坊部署方法相同,这里不再赘述。
本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,包括以下步骤:
获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
2.如权利要求1所述的基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,预设整数线性规划模型的约束条件为:仅有一种密码算法部署到ARM端,各个密码算法的决策因子与某一成本性指标资源占用量的乘积的和小于此成本线指标在FPGA端的资源量。
3.如权利要求1所述的基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,对每种算法在FPGA端的多种实现方式进行寻优,具体为:
获取每种待部署算法的多种实现方式以及每种实现方式的多个评价指标;
根据获取的实现方式和评价指标构建决策矩阵,决策矩阵中的每一行对应于一种实现方式,每一列对应于一个评价指标;
对不同的数据类型的评价指标进行规范化处理得到规范化矩阵,然后将规范化矩阵的列归一化为新的矩阵;
计算每个指标输出的信息熵,根据得到的信息熵,计算各个指标的属性权向量;
每个方案的综合评分为规范化矩阵中此方案所在行的各个元素与属性权向量的加权和;
以综合评分最高的实现方式为此算法在FPGA端的最优实现方式。
4.如权利要求3所述的基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值除以此元素所在行的最大值;
或者,
对于效益型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素的值与此元素所在行的最大值的差除以此元素所在行的最大值与最小值的差。
5.如权利要求3所述的基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值除以原矩阵中此元素的值;
或者,
对于成本型指标,规范化方法为:
使得规范化矩阵中的对应元素为原矩阵中此元素所在行的最大值与原矩阵中此元素的差除以此元素所在行的最大值与最小值的差。
6.如权利要求1所述的基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,通过对以太坊底层源代码解读结果和实际实验测试结果甄选出使用率高以及对以太坊安全性影响大的预设个数的密码算法;
或者,所述待部署算法为哈希算法Keccak256、用作签名的ECDSA算法和用作存储本地密钥和发送信息的AES算法。
7.如权利要求1所述的基于ZYNQ异构计算平台的以太坊部署方法,其特征在于,每种算法在ARM端的实现方式以运行速率为单一正相关指标进行排序和选择,以运行速率最大的实现方式为此算法在ARM最优实现方式。
8.一种基于ZYNQ异构计算平台的以太坊部署系统,其特征在于,包括:
数据获取模块,被配置为:获取待部署的各密码算法的调用频率以及在ARM端和FPGA端的运行速度;
部署方案获取模块,被配置为:将获取的调用频率和运行速度数据输入到预设整数线性规划模型中,求解得到各密码算法在ARM端和FPGA端的部署方案;
其中,预设整数线性规划模型为各密码算法的运行速度、决策因子和调用频率三者乘积的和的最大值。
9.一种介质,其上存储有程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一项所述的基于ZYNQ异构计算平台的以太坊部署方法中的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一项所述的基于ZYNQ异构计算平台的以太坊部署方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010796356.6A CN111970112B (zh) | 2020-08-10 | 2020-08-10 | 基于zynq异构计算平台的以太坊部署方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010796356.6A CN111970112B (zh) | 2020-08-10 | 2020-08-10 | 基于zynq异构计算平台的以太坊部署方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111970112A true CN111970112A (zh) | 2020-11-20 |
CN111970112B CN111970112B (zh) | 2022-01-21 |
Family
ID=73364149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010796356.6A Active CN111970112B (zh) | 2020-08-10 | 2020-08-10 | 基于zynq异构计算平台的以太坊部署方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970112B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113627108A (zh) * | 2021-08-13 | 2021-11-09 | 山东大学 | Fpga中密码算法的最大运行频率自动化搜索方法和系统 |
CN114124389A (zh) * | 2021-11-09 | 2022-03-01 | 国网山东省电力公司电力科学研究院 | 一种基于可重构计算的国密算法fpga部署方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300134A1 (en) * | 2008-05-30 | 2009-12-03 | Microsoft Corporation | Linear programming formulation of resources in a data center |
CN104572251A (zh) * | 2015-01-30 | 2015-04-29 | 中国联合网络通信集团有限公司 | 虚拟机部署方法和装置 |
CN107967539A (zh) * | 2017-11-29 | 2018-04-27 | 暨南大学 | 基于机器学习和区块链技术的预测以太坊上交易的燃料限制的方法 |
CN109947740A (zh) * | 2019-01-25 | 2019-06-28 | 北京邮电大学 | 区块链系统的性能优化方法及装置 |
CN110554988A (zh) * | 2018-06-03 | 2019-12-10 | 北京化工大学 | 一种基于cpu+gpu异构计算的高维多目标支配方法 |
CN111324453A (zh) * | 2020-01-23 | 2020-06-23 | 天津大学 | 用于区块链平台资源调度的方法 |
-
2020
- 2020-08-10 CN CN202010796356.6A patent/CN111970112B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300134A1 (en) * | 2008-05-30 | 2009-12-03 | Microsoft Corporation | Linear programming formulation of resources in a data center |
CN104572251A (zh) * | 2015-01-30 | 2015-04-29 | 中国联合网络通信集团有限公司 | 虚拟机部署方法和装置 |
CN107967539A (zh) * | 2017-11-29 | 2018-04-27 | 暨南大学 | 基于机器学习和区块链技术的预测以太坊上交易的燃料限制的方法 |
CN110554988A (zh) * | 2018-06-03 | 2019-12-10 | 北京化工大学 | 一种基于cpu+gpu异构计算的高维多目标支配方法 |
CN109947740A (zh) * | 2019-01-25 | 2019-06-28 | 北京邮电大学 | 区块链系统的性能优化方法及装置 |
CN111324453A (zh) * | 2020-01-23 | 2020-06-23 | 天津大学 | 用于区块链平台资源调度的方法 |
Non-Patent Citations (1)
Title |
---|
RUNCHAO HAN: "Demystifying Crypto-Mining: Analysis and Optimizations of Memory-Hard PoW Algorithms", 《2019 IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE (ISPASS)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113627108A (zh) * | 2021-08-13 | 2021-11-09 | 山东大学 | Fpga中密码算法的最大运行频率自动化搜索方法和系统 |
CN113627108B (zh) * | 2021-08-13 | 2023-08-25 | 山东大学 | Fpga中密码算法的最大运行频率自动化搜索方法和系统 |
CN114124389A (zh) * | 2021-11-09 | 2022-03-01 | 国网山东省电力公司电力科学研究院 | 一种基于可重构计算的国密算法fpga部署方法及系统 |
CN114124389B (zh) * | 2021-11-09 | 2023-08-11 | 国网山东省电力公司电力科学研究院 | 一种基于可重构计算的国密算法fpga部署方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111970112B (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Huang et al. | Security modeling and efficient computation offloading for service workflow in mobile edge computing | |
Gai et al. | Privacy-aware adaptive data encryption strategy of big data in cloud computing | |
CN111898137A (zh) | 一种联邦学习的隐私数据处理方法、设备及系统 | |
CN111970112B (zh) | 基于zynq异构计算平台的以太坊部署方法及系统 | |
CN102131198B (zh) | 认证系统中椭圆曲线密码运算装置的实现方法 | |
US20140055347A1 (en) | Imaging task pipeline acceleration | |
CN110933063B (zh) | 数据加密方法、数据解密方法及设备 | |
CN104917608B (zh) | 一种密钥抗功耗攻击的方法 | |
CN109189572B (zh) | 一种资源预估方法及系统、电子设备和存储介质 | |
CN109376021A (zh) | 接口调用的响应方法及服务器 | |
CN109325357A (zh) | 基于rsa的信息值计算方法、设备及可读存储介质 | |
CN109190413B (zh) | 一种基于fpga和md5加密的串行通信系统 | |
CN112052156B (zh) | 一种模糊测试方法、装置和系统 | |
CN109327479A (zh) | 加密流的识别方法及装置 | |
Avdiukhin et al. | Multi-dimensional balanced graph partitioning via projected gradient descent | |
CN108733799A (zh) | 一种报表数据处理方法、装置及终端 | |
CN112532542B (zh) | 一种负载均衡模式的选择方法及装置 | |
CN116070240B (zh) | 多芯片调用机制的数据加密处理方法及装置 | |
CN114338049B (zh) | 基于模归约的国密算法sm2的快速实现方法及系统 | |
CN107204856B (zh) | 一种检测椭圆曲线算法漏洞的方法及装置 | |
CN110334018A (zh) | 一种大数据导入方法以及相关设备 | |
Araújo et al. | Accelerating VNF-based Deep Packet Inspection with the use of GPUs | |
CN109639672A (zh) | 基于jwt数据的防止重放攻击的方法及系统 | |
CN114697142A (zh) | 一种通信数据加密方法及装置、电子设备、存储介质 | |
CN115955323A (zh) | 一种网络安全态势感知方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Wei Puwen Inventor after: Wei Zhiqian Inventor after: Wei YuanJu Inventor after: Ju Lei Inventor after: Shen Zhaoyan Inventor before: Wei Zhiqian Inventor before: Wei Puwen Inventor before: Wei YuanJu Inventor before: Ju Lei Inventor before: Shen Zhaoyan |
|
GR01 | Patent grant | ||
GR01 | Patent grant |