CN116346500B - 一种通过智能合约管理帐户控制权限的实现方法及系统 - Google Patents
一种通过智能合约管理帐户控制权限的实现方法及系统 Download PDFInfo
- Publication number
- CN116346500B CN116346500B CN202310517991.XA CN202310517991A CN116346500B CN 116346500 B CN116346500 B CN 116346500B CN 202310517991 A CN202310517991 A CN 202310517991A CN 116346500 B CN116346500 B CN 116346500B
- Authority
- CN
- China
- Prior art keywords
- transaction
- account
- intelligent contract
- verification
- user
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012795 verification Methods 0.000 claims abstract description 850
- 238000011084 recovery Methods 0.000 claims abstract description 144
- 238000012545 processing Methods 0.000 claims abstract description 79
- 230000004044 response Effects 0.000 claims description 216
- 239000000284 extract Substances 0.000 claims description 75
- 230000006870 function Effects 0.000 claims description 58
- 238000012790 confirmation Methods 0.000 claims description 49
- 238000004458 analytical method Methods 0.000 claims description 34
- 230000001343 mnemonic effect Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000007812 deficiency Effects 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 5
- 238000012217 deletion Methods 0.000 description 27
- 230000037430 deletion Effects 0.000 description 27
- 238000007726 management method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02W—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO WASTEWATER TREATMENT OR WASTE MANAGEMENT
- Y02W90/00—Enabling technologies or technologies with a potential or indirect contribution to greenhouse gas [GHG] emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种通过智能合约管理帐户控制权限的实现方法及系统,主设备根据新的用户密钥对、帐户智能合约地址和提供事务处理消耗数的地址生成包含第一签名结果、第一中间签名值、第二签名结果的恢复帐户事务,将主设备ID和恢复帐户事务发送至服务器;服务器将恢复帐户事务发送至事务暂存池;区块链节点对从事务暂存池提取的恢复帐户事务中的第二签名结果、第一中间签名值和第一签名结果进行验证,如均验证成功则用新的用户公钥替换保存的用户公钥,将事务执行结果上传到区块链;服务器从区块链上获取到事务执行成功时将主设备ID与帐户智能合约地址对应保存,主设备保存新的用户密钥对。本发明使用安全方便。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种通过智能合约管理帐户控制权限的实现方法及系统。
背景技术
电子设备的功能本质是私钥的生成、私钥的存储、私钥的管理和对事务进行签名,私钥是控制区块链上事务所有权的唯一手段,从技术原理上看,掌握私钥就完全掌握了对应事务的处置权。如果私钥丢失,用户需要使用备份的私钥或助记词恢复事务,如电子设备和备份数据均丢失则会失去事务处置权,如果私钥被盗,用户同样会失去事务处置权并且没有任何方式找回。可见,私钥对事务处理极为重要,丢失私钥的代价很高,现有技术以导出私钥或显示助记词的方式来备份私钥并要求用户将私钥的备份数据严密保存,但仍可能出现由于保存不当而导致私钥丢失和泄露的问题,从而失去对事务处理的控制权。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种通过智能合约管理帐户控制权限的实现方法及系统。
第一方面,本发明实施例提供了一种通过智能合约管理帐户控制权限的实现方法,包括:
步骤Y1:当主设备接收到用户选择的恢复帐户操作信息时,接收用户输入的帐户智能合约地址并生成新的用户密钥对,判断是否能执行恢复帐户操作,是则通过服务器与验证设备通讯,通过所述验证设备对所述新的用户密钥对中的用户公钥和所述帐户智能合约地址进行签名得到第一签名结果,执行步骤Y2,否则删除所述新的用户密钥对,所述新的用户密钥对包括新的用户公钥和新的用户私钥;
步骤Y2:所述主设备根据所述第一签名结果、所述帐户智能合约地址和所述新的用户公钥生成待签名信息,使用所述新的用户私钥对所述待签名信息进行签名得到第一中间签名值,根据所述待签名信息和第一中间签名值生成第一拼接结果,使用用户输入的提供事务处理消耗数的地址对应的私钥对所述第一拼接结果进行签名得到第二签名结果,根据所述第二签名结果和所述第一拼接结果生成恢复帐户事务,将包含主设备ID和所述恢复帐户事务的指令发送至所述服务器;
步骤Y3:所述服务器对接收到的指令进行解析得到主设备ID和恢复帐户事务,将所述恢复帐户事务发送至所述事务暂存池,并接收所述事务暂存池返回的信息;
步骤Y4:区块链节点从所述事务暂存池中提取事务,当判断提取的事务为恢复帐户事务时,执行步骤Y5;
步骤Y5:所述区块链节点对所述恢复帐户事务中的第二签名结果、第一中间签名值和第一签名结果进行验证,如均验证成功则用所述恢复帐户事务中的新的用户公钥替换保存的用户公钥,将事务执行成功写入到恢复帐户事务的事务日志中,执行步骤Y6,否则将事务执行失败写入到恢复帐户事务的事务日志中,执行步骤Y6;
步骤Y6:当所述区块链节点轮询成为提议节点时将所述恢复帐户事务和所述事务日志上传到区块链;
步骤Y7:所述服务器实时获取所述区块链上的数据,并从获取的数据中提取恢复帐户事务和事务日志,判断所述事务日志中是否包含事务执行成功,是则将所述主设备ID与所述恢复帐户事务中的帐户智能合约地址对应保存,将所述事务日志返回给所述主设备,执行步骤Y8,否则直接将所述事务日志返回给所述主设备,执行步骤Y8;
步骤Y8:所述主设备判断接收到的事务日志中是否包含事务执行成功,是则保存所述新的用户密钥对,否则删除所述新的用户密钥对。
第二方面,本发明实施例又提供一种通过智能合约管理帐户控制权限的实现系统,包括:主设备、服务器、验证设备和区块链节点,用于实现前述的通过智能合约管理帐户控制权限的实现方法。
第三方面,本发明实施例又提供一种电子设备,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现前述的通过智能合约管理帐户控制权限的实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行前述的通过智能合约管理帐户控制权限的实现方法。
第五方面,本发明实施例又提供一种芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行前述的通过智能合约管理帐户控制权限的实现方法。
本发明与现有技术相比,具有以下优点:本发明实施例中,用户私钥不需要以明文、密文或助记词等形式导出备份,用户私钥不出设备保证了用户私钥的安全,如设备丢失或用户私钥泄露可以通过其他验证设备对用户身份进行验证,验证成功后重新生成用户私钥,可使用新的用户私钥恢复用户原帐户的控制权限,同时使原用户私钥作废,使用户能够继续进行事务管理,使用安全方便。
附图说明
图1为本发明实施例一提供的一种通过智能合约管理帐户控制权限的实现方法的流程图;
图2为本发明实施例二提供的一种通过智能合约管理事务的实现方法的流程图;
图3至图5为本发明实施例二中步骤204中的执行恢复帐户操作的实现过程流程图。
具体实施方式
本申请提出了一种通过智能合约管理帐户控制权限的实现方法及系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
本实施例中的智能合约均设置在区块链节点上,智能合约对应的地址设置在主设备中或服务器中。
实施例一
本发明实施例一提供了一种通过智能合约管理帐户控制权限的实现方法,如图1所示,包括:
步骤Y1:当主设备接收到用户选择的恢复帐户操作信息时,接收用户输入的帐户智能合约地址并生成新的用户密钥对,判断是否能执行恢复帐户操作,是则通过服务器与验证设备通讯,通过验证设备对新的用户密钥对中的用户公钥和帐户智能合约地址进行签名得到第一签名结果,执行步骤Y2,否则删除新的用户密钥对;
在本实施例中,新的用户密钥对包括新的用户公钥和新的用户私钥;
在本实施例中,新的用户密钥对包括新的用户公钥和新的用户私钥;
具体的,在本实施例中,通过服务器与验证设备通讯,通过验证设备对新的用户公钥和帐户智能合约地址进行签名得到第一签名结果,包括:
步骤T1:主设备根据帐户智能合约地址和新的用户公钥生成确认新公钥指令并发送给服务器;
步骤T2:服务器根据确认新公钥指令中的帐户智能合约地址判断区块链上和本地是否保存对应的帐户,是则执行步骤T3,否则删除接收到的确认新公钥指令,通知主设备删除生成的新的用户密钥对;
步骤T3:服务器根据本地保存的验证设备列表中的验证设备ID将确认新公钥指令发送给对应的验证设备;
步骤T4:验证设备使用自身的验证设备公钥对确认新公钥指令中的帐户智能合约地址和新的用户公钥进行签名得到第一签名结果,通过服务器将第一签名结果返回给主设备。
步骤Y2:主设备根据第一签名结果、帐户智能合约地址和新的用户公钥生成待签名信息,使用新的用户私钥对待签名信息进行签名得到第一中间签名值,根据待签名信息和第一中间签名值生成第一拼接结果,使用用户输入的提供事务处理消耗数的地址对应的私钥对第一拼接结果进行签名得到第二签名结果,根据第二签名结果和第一拼接结果生成恢复帐户事务,将包含主设备ID和恢复帐户事务的指令发送至服务器;
步骤Y3:服务器对接收到的指令进行解析得到主设备ID和恢复帐户事务,将恢复帐户事务发送至事务暂存池,并接收事务暂存池返回的信息;
步骤Y4:区块链节点从事务暂存池中提取事务,当判断提取的事务为恢复帐户事务时,执行步骤Y5;
步骤Y5:区块链节点对恢复帐户事务中的第二签名结果、第一中间签名值和第一签名结果进行验证,如均验证成功则用恢复帐户事务中的新的用户公钥替换保存的用户公钥,将事务执行成功写入到恢复帐户事务的事务日志中,执行步骤Y6,否则将事务执行失败写入到恢复帐户事务的事务日志中,执行步骤Y6;
步骤Y6:当区块链节点轮询成为提议节点时将恢复帐户事务和事务日志上传到区块链;
步骤Y7:服务器实时获取区块链上的数据,并从获取的数据中提取恢复帐户事务和事务日志,判断事务日志中是否包含事务执行成功,是则将主设备ID与恢复帐户事务中的帐户智能合约地址对应保存,将事务日志返回给主设备,执行步骤Y8,否则直接将事务日志返回给主设备,执行步骤Y8;
步骤Y8:主设备判断接收到的事务日志中是否包含事务执行成功,是则保存新的用户密钥对,否则删除新的用户密钥对。
可选的,本实施例中的方法还包括:
步骤Q1:当主设备接收到用户选择的创建帐户操作信息时,显示创建帐户页面,提示用户进行操作,当接收到操作信息时判断操作信息的类型,如为生成新帐户信息时则生成用户密钥对,执行步骤Q2,如为导入私钥信息时则导入用户私钥,并根据用户私钥生成对应的用户公钥,执行步骤Q2,用户密钥对包括用户私钥和用户公钥;
步骤Q2:主设备根据主设备ID、用户公钥和用户输入的提供事务处理消耗数的地址生成创建帐户智能合约事务,使用提供事务处理消耗数的地址对应的私钥对创建帐户智能合约事务进行签名得到创建帐户签名结果,将创建帐户签名结果写入到创建帐户智能合约事务的签名数据位置,将包含主设备ID和创建帐户智能合约事务的指令发送至服务器;
步骤Q3:服务器对接收到的包含创建帐户智能合约事务的指令进行解析,从解析结果中提取主设备ID并缓存,将解析结果中的创建帐户智能合约事务发送至事务暂存池,并接收事务暂存池返回的信息;
步骤Q4:区块链节点从事务暂存池中提取事务,当判断提取的事务为创建帐户智能合约事务时,执行步骤Q5;
步骤Q5:区块链节点对创建帐户智能合约事务中的创建帐户签名结果进行验证,如验证成功则创建帐户智能合约,并将创建帐户智能合约事务中的用户公钥写入到创建的帐户智能合约中,从创建的帐户智能合约中获取帐户智能合约地址,将帐户智能合约地址和事务执行成功写入到创建帐户智能合约事务的事务日志中,执行步骤Q6,如验证失败则将事务执行失败写入到创建帐户智能合约事务的事务日志中,执行步骤Q6;
步骤Q6:当区块链节点轮询成为提议节点时将创建帐户智能合约事务和事务日志上传到区块链;
步骤Q7:服务器实时获取区块链上的数据,并从获取的数据中提取创建帐户智能合约事务和事务日志,如事务日志中包含事务执行成功则将创建帐户智能合约事务中的帐户智能合约地址与缓存的主设备ID对应保存,将帐户智能合约地址返回给主设备进行保存,并通知主设备保存用户私钥和用户公钥,如事务日志中包含事务执行失败则通知主设备删除用户私钥和用户公钥。
本发明实施例中,用户私钥不需要以明文、密文或助记词等形式导出备份,用户私钥不出设备保证了用户私钥的安全,如设备丢失或用户私钥泄露可以通过其他验证设备对用户身份进行验证,验证成功后重新生成用户私钥,可使用新的用户私钥恢复用户原帐户的控制权限,同时使原用户私钥作废,使用户能够继续进行事务管理,使用安全方便。
实施例二
本发明实施例二提供一种通过智能合约管理事务的实现方法,如图2所示,包括:
步骤201:当主设备接收到用户的触发信息时,判断是否存在对应帐户,是则执行步骤205,执行步骤否则202;
步骤202:主设备显示选择界面并判断用户的选择信息,如为创建帐户则执行步骤203,如为恢复帐户则执行步骤204;
步骤203:主设备执行创建帐户操作;
具体的,在本实施例中,步骤203的具体实现过程包括:
步骤A1:主设备显示创建帐户页面,提示用户进行操作,当接收到操作信息时判断操作信息的类型,如为生成新帐户信息时则执行步骤A2,如为导入私钥信息时则执行步骤A10;
步骤A2:主设备显示生成新帐户界面,提示用户进行选择,当接收到用户的选择信息时判断选择信息的类型,如为软件生成私钥信息则执行步骤A3,如为硬件设备生成私钥信息则执行步骤A5;
步骤A3:主设备提示用户设置事务密码,并保存设置好的事务密码;
可选的,在本实施例中,步骤A3还包括:主设备提示用户选择是否显示私钥对应的助记词,如接收到用户触发的确认信息时主设备显示私钥对应的助记词;
步骤A4:主设备根据第一预设算法生成用户私钥,并使用事务密码对用户私钥进行加密,将用户私钥密文保存在本地数据库中,根据用户私钥计算对应的用户公钥,将用户公钥显示给用户,当接收到用户触发的继续操作信息时执行步骤A15;
步骤A5:主设备连接硬件设备,并向已连接的硬件设备发送设置事务密码指令;
在本实施例中,主设备可通过蓝牙或USB或NFC连接硬件设备;
步骤A6:硬件设备接收设置事务密码指令,提示用户在硬件设备上设置事务密码,当接收到用户设置的事务密码时保存该事务密码,并向主设备返回密码设置完成响应;
步骤A7:主设备接收密码设置完成响应,向硬件设备发送生成私钥指令;
步骤A8:硬件设备接收生成私钥指令,使用第一预设算法生成用户私钥;
可选的,在本实施例中,步骤A8还可包括:提示用户选择是否显示用户私钥对应的助记词,如接收到用户触发的选择显示信息时硬件设备显示用户私钥对应的助记词;
步骤A9:硬件设备将用户私钥存储在安全存储区中,根据用户私钥计算对应的用户公钥,将用户公钥显示给用户,并将用户公钥返回给主设备,执行步骤A15;
步骤A10:主设备显示导入私钥页面,提示用户进行选择并判断接收到的用户选择的类型,如为导入助记词时则执行步骤A11,如为连接硬件设备则执行步骤A13;
步骤A11:主设备提示用户设置事务密码,并保存设置好的事务密码,提示用户输入助记词;
步骤A12:当主设备接收到用户输入的助记词时根据用户输入的助记词计算用户私钥,并使用保存的事务密码对用户私钥进行加密,将用户私钥密文保存在本地数据库中,根据用户私钥计算对应的用户公钥,将用户公钥显示给用户,当接收到用户触发的继续操作信息时执行步骤A15;
步骤A13:主设备连接硬件设备,并向已连接的硬件设备发送获取公钥指令;
在本实施例中,主设备可通过蓝牙或USB或NFC连接硬件设备;
步骤A14:硬件设备接收到获取公钥指令后根据其内部保存的用户私钥计算对应的用户公钥,并将用户公钥返回给主设备,执行步骤A15;
步骤A15:主设备提示并接收用户输入的提供事务处理消耗数地址、单位事务处理消耗数、总事务处理消耗数,根据主设备ID、用户公钥、预设的创建帐户智能合约的智能合约地址、创建帐户函数名称、总事务处理消耗数、单位事务处理消耗数、提供事务处理消耗数的地址生成创建帐户智能合约事务,使用提供事务处理消耗数的地址所对应的私钥对创建帐户智能合约事务进行签名得到创建帐户签名结果,将创建帐户签名结果写入到创建帐户智能合约事务的签名数据位置,将包含主设备ID和创建帐户智能合约事务的指令发送至服务器;
例如,在本实施例中,创建帐户智能合约事务为:0xf9010a2785035458af00830186a094f047bbbc3741147651ac98d12c3ed65ebff45be180b8a412d6ea230000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6000000000000000000000000f047bbbc3741147651ac98d12c3ed65ebff45be126a0a5a04faf1d907b129fed7201986182ff08ec98dbcbf2efec35b21fad55c06d07a00dda15ee4b330867a71cbef12ce6e19a7fc3e2869bbc43149dcc76fa8a039f1e;其中,0x代表16进制字符串, f9为指令头,010a表示后面数据的长度为266字节; 27表示事务序号为39,85为单位事务处理消耗数数据的长度(占5字节),035458af00为具体的单位事务处理消耗数14,300,000,000;83为最高事务处理消耗数数据的长度(占3字节),0186a0为最高事务处理消耗数数量100000份;94为帐户智能合约地址的长度(占20字节),f047 bbbc 3741 1476 51ac98d1 2c3e d65e bff4 5be1为对应的帐户智能合约地址,80 为事务的转移总额(本事务为0),b8a4为事务数据域中的数据长度(占164字节),12d6ea23为函数ID/函数名称,第四十五字节数据至第七十七字节数据0000000000000000000000000000000000000000000000000000000000000001为主设备ID(占32字节),000000000000000000000000000000000000000000000000000000000000000450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6为用户公钥,000000000000000000000000 f047 bbbc 3741 1476 51ac 98d1 2c3e d65ebff4 5be1为预设的用于为用户自动创建新的帐户智能合约的智能合约地址(实际长度为20字节,不足32字节时前面补0),26 事务签名的v字段(占1字节),a0表示下面是事务签名的R字段,a5a04faf1d907b129fed7201986182ff08ec98dbcbf2efec35b21fad55c06d07为事务签名R字段(占32字节),a0表示下面是签名数据的S字段,0dda15ee4b330867a71cbef12ce6e19a7fc3e2869bbc43149dcc76fa8a039f1e为事务签名的S字段(占32字节);
在本实施例中,步骤A15具体包括:主设备提示并接收用户输入的提供事务处理消耗数的地址、单位事务处理消耗数、总事务处理消耗数,根据主设备ID、用户公钥、创建帐户函数名称生成数据域,根据事务序号、预设的创建帐户智能合约的智能合约地址、提供单位事务处理消耗数的地址、总事务处理消耗数、数据域生成创建帐户智能合约事务,将总事务处理消耗数、数据域、预设的创建帐户智能合约的智能合约地址显示给用户进行确认,当接收到用户的确认信息时使用事务处理消耗数地址所对应的私钥对创建帐户智能合约事务进行签名得到创建帐户签名结果,根据区块链要求的事务结构将创建帐户签名结果写入创建帐户智能合约事务的签名数据位置,将包含创建帐户智能合约事务和主设备ID的指令发送至服务器;
步骤A16:服务器对接收到的指令进行解析,从解析结果中提取主设备ID并缓存,将解析结果中的创建帐户智能合约事务发送至事务暂存池,服务器接收暂存池返回的接收到事务的成功信息;
在本实施例中,暂存池实时接收全网所有服务器上传的事务;
步骤A17:区块链节点从事务暂存池中提取事务;
在本实施例中,区块链节点从事务暂存池中提取事务,具体为:区块链节点将事务按单位事务处理消耗数由高到低排列,每次提取单位事务处理消耗数最高的事务,提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;
在本实施例中,如事务暂存池监测到有超过预设时间内未被区块链节点提取的事务,则删除该事务,例如,预设时间为24小时;
步骤A18:区块链节点判断提取的事务是否为创建帐户智能合约事务,是则执行步骤A19,否则报错,结束;
具体的,在本实施例中,步骤A18包括:区块链节点判断提取的事务的数据格式是否符合创建帐户智能合约事务的要求,是则执行步骤A19,否则报错,结束;
步骤A19:区块链节点从创建帐户智能合约事务中提取创建帐户智能合约的智能合约地址和创建帐户函数名称,根据创建帐户智能合约的智能合约地址查找对应的创建帐户智能合约的智能合约,根据创建帐户函数名称判断找到的创建帐户智能合约的智能合约中是否存在对应的创建帐户函数,是则根据创建帐户智能合约事务调用该创建帐户函数,执行步骤A20,否则报错,结束;
步骤A20:创建帐户智能合约的智能合约检测到创建帐户函数被调用时,从创建帐户函数中获取创建帐户智能合约事务;
步骤A21:创建帐户智能合约的智能合约对获取的创建帐户智能合约事务进行解析得到主设备ID、用户公钥、创建帐户智能合约的智能合约地址、创建帐户函数名称、事务处理消耗数地址、单位事务处理消耗数、总事务处理消耗数、创建帐户签名结果;
步骤A22:创建帐户智能合约的智能合约根据提供事务处理消耗数的地址计算出对应的公钥,使用该公钥对创建帐户签名结果进行验证,如验证成功则执行步骤A26,如验证失败则执行步骤A23;
步骤A23:创建帐户智能合约的智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤A24,否则执行步骤A25;
步骤A24:创建帐户智能合约的智能合约用验证操作的实际事务处理消耗数更新总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入创建帐户智能合约事务的事务日志中,给区块链节点返回创建帐户智能合约事务和事务日志,执行步骤A30;
步骤A25:创建帐户智能合约的智能合约将总事务处理消耗数清零,将消耗数不足和事务执行失败写入创建帐户智能合约事务的事务日志中,给区块链节点返回创建帐户智能合约事务和事务日志,执行步骤A30;
步骤A26:创建帐户智能合约的智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤A27,否则执行步骤A25;
步骤A27:创建帐户智能合约的智能合约用验证操作的实际事务处理消耗数更新总事务处理消耗数并作为当前总事务处理消耗数,根据创建帐户操作的实际事务处理消耗数和写入操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤A29,否则执行步骤A28;
步骤A28:创建帐户智能合约的智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入创建帐户智能合约事务的事务日志中,给区块链节点返回创建帐户智能合约事务和事务日志,执行步骤A30;
步骤A29:创建帐户智能合约的智能合约创建帐户智能合约,将用户公钥写入创建的帐户智能合约中,用创建帐户操作的实际事务处理消耗数和写入操作的实际事务处理消耗数更新当前总事务处理消耗数,从创建的帐户智能合约中获取帐户智能合约地址,将帐户智能合约地址、所有操作的实际事务处理消耗数和事务执行成功写入创建帐户智能合约事务的事务日志中,将创建帐户智能合约事务和事务日志返回给区块链节点,执行步骤A30;
在本实施例中,所有操作的实际事务处理消耗数,包括:所有验证操作的实际事务处理消耗数、创建帐户智能合约和写入用户公钥的实际事务处理消耗数;
步骤A30:区块链节点接收创建帐户智能合约的智能合约返回的创建帐户智能合约事务和事务日志并保存,当区块链节点轮询成为提议节点时,提议节点将创建帐户智能合约事务和事务日志上传到区块链;
在本实施例中,提议节点将创建帐户智能合约事务和事务日志上传到区块链,包括:
步骤A30-1:提议节点根据创建帐户智能合约事务和事务日志计算出符合区块链网络要求的区块并进行广播;
步骤A30-2:其他节点接收区块,判断区块的数据结构是否符合区块链网络要求,是则执行步骤A30-3,否则广播包含上链失败信息的区块,抛弃接收到的区块,执行步骤A30-5;
步骤A30-3:其他节点判断该区块内包含的每个事务结构是否符合区块链网络要求且判断是否包含有事务执行结果,如均为是则将该区块保存在自己的区块链最后,广播包含上链成功信息的区块,执行步骤A30-4,否则广播包含上链失败信息的区块,抛弃接收到的区块,执行步骤A30-5;
在本实施例中,事务执行结果包括事务执行成功或事务执行失败;
步骤A30-4:当提议节点接收到第一预设数量的包含上链成功信息的区块时将计算得到的区块保存在自己的区块链最后并广播包含上链成功信息的区块;
步骤A30-5:提议节点收到第二预设数量的包含上链失败信息的区块时,抛弃计算得到的区块;
在本实施例中,每个节点作为提议节点时均会从事务暂存池提取事务,根据提取的事务打包区块;
当全网所有节点都将该区块保存时,创建帐户智能合约事务和事务日志被成功上传到区块链中;
步骤A31:服务器实时获取区块链上的数据,并从获取的数据中提取创建帐户智能合约事务和事务日志;
步骤A32:服务器判断事务日志中是否包含有事务执行成功,是则执行步骤A35,否则执行步骤A33;
步骤A33:服务器将创建失败响应返回给主设备;
步骤A34:主设备接收到创建失败响应时删除生成的用户私钥和用户公钥,结束;
可选的,如主设备与硬件设备连接,则步骤A34中主设备接收到创建失败响应后删除接收到的用户公钥,并通知硬件设备删除生成的用户私钥和用户公钥;
步骤A35:服务器提取创建帐户智能合约事务中的帐户智能合约地址,将帐户智能合约地址与主设备ID作为帐户信息对应保存,将包括帐户智能合约地址的创建成功响应返回给主设备;
在本实施例中,帐户智能合约地址与主设备ID可作为用户唯一标识进行使用;
步骤A36:主设备从接收到的创建成功响应中提取帐户智能合约地址并保存,保存生成的用户私钥和用户公钥,提示帐户创建成功;
可选的,在本实施例中,步骤A36还包括:提示用户抄写帐户智能合约地址用于备份;
步骤204:主设备执行恢复帐户操作;
具体的,在本实施例中,步骤204具体实现过程如图3至图5所示,包括:
步骤B1:主设备显示恢复帐户页面,提示用户输入帐户智能合约地址,当接收到帐户智能合约地址时生成新的用户密钥对;
在本实施例中,新的用户密钥对包括新的用户公钥和新的用户私钥;生成新的用户密钥对有多种实现方式,并不限于公开的以下四种实现方式;
(1)软件方式,具体包括:
步骤a11:主设备提示用户设置事务密码,并保存设置好的事务密码;
可选的,在本实施例中,步骤a11还包括:主设备提示用户选择是否显示用户私钥对应的助记词,如接收到用户触发的选择显示信息时主设备显示用户私钥对应的助记词;
步骤a12:主设备根据第一预设算法生成用户私钥,并使用事务密码对用户私钥进行加密,将用户私钥密文保存在本地数据库中,根据用户私钥计算对应的用户公钥;
(2)硬件方式,具体包括:
步骤a21:主设备连接硬件设备,并向已连接的硬件设备发送设置事务密码指令;
在本实施例中,主设备可通过蓝牙或USB或NFC连接硬件设备;
步骤a22:硬件设备接收设置事务密码指令,提示用户在硬件设备上设置事务密码,当接收到用户设置的事务密码时保存该事务密码并向主设备返回密码设置完成响应;
步骤a23:主设备接收密码设置完成响应,向硬件设备发送生成用户私钥指令;
步骤a24:硬件设备接收生成用户私钥指令,使用第一预设算法根据助记词生成用户私钥;
可选的,在本实施例中,步骤a24还可包括:硬件设备提示用户选择是否显示用户私钥对应的助记词,如接收到用户触发的选择显示信息时硬件设备显示用户私钥对应的助记词;
步骤a25:硬件设备将用户私钥存储在安全存储区中,根据用户私钥计算对应的用户公钥,将用户公钥显示给用户,并将用户公钥返回给主设备;
(3)导入软件方式,具体包括:
步骤a31:主设备提示用户设置事务密码,并提示用户输入助记词;
步骤a32:当接收到用户输入的助记词时,主设备使用第二预设算法对用户输入的助记词进行计算得到种子,使用第一预设算法对种子进行计算得到用户私钥,并使用保存的事务密码对用户私钥进行加密,将用户私钥密文保存在本地数据库中,根据用户私钥计算对应的用户公钥;
(4)硬件设备用户公钥方式;
步骤a41:主设备通连接硬件设备,并向已连接的硬件设备发送获取用户公钥指令;
在本实施例中,主设备可通过蓝牙或USB或NFC连接硬件设备;
步骤a42:硬件设备接收获取用户公钥指令,根据其内部保存的用户私钥计算对应硬件设备用户公钥,并将硬件设备用户公钥返回主设备;
步骤B2:主设备根据帐户智能合约地址和新的用户公钥生成确认新公钥指令,并将确认新公钥指令发送至服务器;
步骤B3:服务器从接收到的确认新公钥指令中提取帐户智能合约地址,判断区块链上是否存在该帐户智能合约地址,是则执行步骤B4,否则删除接收到的确认新公钥指令,通知主设备删除生成的新的用户密钥对,结束;
步骤B4:服务器使用帐户智能合约地址判断本地保存的帐户列表是否有对应的帐户信息及该帐户的验证设备列表,是则执行步骤B5,否则删除接收到的确认新公钥指令,通知主设备删除新的用户密钥对,结束;
在本实施例中,帐户信息包括帐户智能合约地址和主设备ID;
步骤B5:服务器从该帐户的验证设备列表中获取验证设备序号和验证设备ID,生成请求ID,根据请求ID、新的用户公钥和帐户智能合约地址生成新公钥确认请求,服务器按照验证设备序号的顺序,依次根据验证设备ID将新公钥确认请求发送给对应的验证设备,服务器使用请求ID、帐户智能合约地址、验证设备序号和验证设备ID生成恢复帐户操作响应收集表,将验证设备签名数量设置为0,恢复帐户操作计时开始;
步骤B6:每个验证设备接收新公钥确认请求后,从新公钥确认请求中提取帐户智能合约地址和新的用户公钥并显示,当接收到验证设备用户的触发信息时判断触发信息的类型,如为确认信息则执行步骤B8,如为取消信息则执行步骤B7;
步骤B7:验证设备根据取消信息、自身的验证设备ID和请求ID生成处理响应并返回服务器,执行步骤B9;
步骤B8:验证设备使用自身的验证设备私钥对帐户智能合约地址和新的用户公钥进行签名得到第一签名结果,根据确认信息、第一签名结果、自身的验证设备ID和请求ID生成处理响应并返回给服务器,执行步骤B9;
步骤B9:服务器接收处理响应,从处理响应中提取请求ID,判断提取到的请求ID是否在响应收集表中,是则执行步骤B10,否则删除接收到的处理响应和确认新公钥指令,通知主设备删除新的用户密钥对,结束;
步骤B10:服务器根据请求ID判断接收处理响应是否超时,是则删除对应的响应收集表、收到的事务响应和确认新公钥指令,通知主设备删除生成的新的用户密钥对,结束,否则执行步骤B11;
在本实施例中,判断新公钥确认事务是否超时具体为:判断恢复帐户操作计时开始到目前为止是否超过三天,是则超时,否则未超时;
步骤B11:服务器判断处理响应中的信息类型,如为确认信息则执行步骤B12,如为取消信息则执行步骤B13;
步骤B12:服务器从处理响应中提取验证设备ID和对应的第一签名结果,根据验证设备ID将第一签名结果存入恢复帐户操作响应收集表中,验证设备签名数量自加1,执行步骤B14;
具体的,在本实施例中,步骤B12中服务器将第一签名结果存入恢复帐户操作响应收集表中的验证设备ID之后;
步骤B13:服务器从处理响应中提取验证设备ID和取消信息,根据验证设备ID将取消信息填入恢复帐户操作响应收集表中,执行步骤B14;
具体的,在本实施例中,步骤B13中服务器将取消信息填入恢复帐户操作响应收集表中的验证设备ID之后;
步骤B14:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则等待接收处理响应,返回步骤B9,否则执行步骤B15;
在本实施例例中,如验证设备总数为奇数则向上取整数;例如验证设备总数为17,则步骤B14为:验证设备智能合约判断验证确认数是否小于9,是则等待接收处理响应,返回步骤B9,否则执行步骤B15;
步骤B15:服务器将恢复帐户操作计时设置为超时,根据恢复帐户操作响应收集表、验证设备签名数量、验证设备总数和处理响应生成新公钥确认响应并将该新公钥确认响应发送给主设备,服务器删除响应收集表和新公钥确认请求;
步骤B16:主设备对接收到的新公钥确认响应进行解析得到恢复帐户操作响应收集表、验证设备签名数量、验证设备总数和处理响应,从响应收集表中提取验证设备ID和验证设备ID对应的第一签名结果,将验证设备ID、验证设备ID对应的第一签名结果、恢复帐户函数名称、新的用户公钥、验证设备签名数量和验证设备总数生成恢复帐户事务的数据域;
步骤B17:主设备提示并接收用户输入的提供事务处理消耗数的地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数地址获取保存的总消耗数,判断用户输入的总事务处理消耗数是否小于获取的总消耗数,是则执行步骤B18,否则提示用户重新输入信息;
步骤B18:主设备根据帐户智能合约地址、提供事务处理消耗数的地址、总事务处理消耗数、单位事务处理消耗数、恢复帐户事务的数据域生成待签名信息,使用新的用户私钥对恢复帐户事务的数据域进行签名得到第一中间签名值,将第一中间签名值拼接在待签名信息之后得到第一拼接结果,使用提供事务处理消耗数的地址所对应的私钥对第一拼接结果进行签名得到第二签名结果,根据第二签名结果和第一拼接结果生成恢复帐户事务,将包含主设备ID和恢复帐户事务的指令发送至服务器;
例如,该步骤中的恢复帐户事务为:0xf902eb2885035458af00830186a094dac17f958d2ee523a2206206994597c13d831ec780b802840x199e38ea00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0ae483f90d16035c623cba51c5bebd0c7c92f5788cb0492ea5fc7ba0024ac985600000000000000000000000000000000000000000000000000000000000000a06a0f98dbd1b90584be645d17c6c9f8508d958701f957b918bb37ffb210b7145000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0d693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c04200000000000000000000000000000000000000000000000000000000000000a024e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b354000000000000000000000000f047bbbc3741147651ac98d12c3ed65ebff45be1000000000000000000000000000000000000000000000000000000000000000450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba60000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000226a0a5a04faf1d907b129fed7201986182ff08ec98dbcbf2efec35b21fad55c06d07a00dda15ee4b330867a71cbef12ce6e19a7fc3e2869bbc43149dcc76fa8a039f1e;
其中0x代表16进制字符串,f9为指令头,02eb表示后面数据的长度为747字节,28表示事务序号为40,85表示单位事务处理消耗数的数据长度(占5字节),035458af00为单位事务处理消耗数14,300,000,000;83表示最高事务处理消耗数的数据长度(占3字节),0186a0为最高事务处理消耗数数量(100000份),94表示帐户智能合约地址的数据长度(占20字节),dac17f958d2ee523a2206206994597c13d831ec7 为帐户智能合约地址,80表示事务的转移总额(本事务为0),b80284表示事务数据域的数据长度(644字节),0x199e38ea为函数ID/函数名称;
下面是每个验证设备的ID、响应和签名(以实际收到的签名数量会有不同,但结构是一样的,该数据表示主设备有3个验证设备,收到2个验证设备的签名,且其中1号验证设备给出的响应是取消);
0000000000000000000000000000000000000000000000000000000000000001为验证设备ID(1号验证设备),0000000000000000000000000000000000000000000000000000000000000000为验证设备响应是取消(0表示取消),000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0ae483f90d16035c623cba51c5bebd0c7c92f5788cb0492ea5fc7ba0024ac985600000000000000000000000000000000000000000000000000000000000000a06a0f98dbd1b90584be645d17c6c9f8508d958701f957b918bb37ffb210b71450为签名(V、R、S字段);
0000000000000000000000000000000000000000000000000000000000000002为验证设备ID(2号验证设备),0000000000000000000000000000000000000000000000000000000000000001验证设备响应是确认(1表示确认),000000000000000000000000000000000000000000000000000000000000002600000000000000000000000000000000000000000000000000000000000000a0d693b532a80fed6392b428604171fb32fdbf953728a3a7ecc7d4062b1652c04200000000000000000000000000000000000000000000000000000000000000a024e9c602ac800b983b035700a14b23f78a253ab762deab5dc27e3555a750b354签名 (V、R、S字段);
000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7为帐户智能合约地址、000000000000000000000000000000000000000000000000000000000000000450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6为用户的新公钥; 0000000000000000000000000000000000000000000000000000000000000003表示验证设备总数有3个、0000000000000000000000000000000000000000000000000000000000000002表示签名结果数量为2个、26表示事务签名的v字段(占1字节),a0表示下面是事务签名的R字段(占32字节)a5a04faf1d907b129fed7201986182ff08ec98dbcbf2efec35b21fad55c06d07 为事务签名的R字段,a0表示下面是签名数据的S字段(占32字节),0dda15ee4b330867a71cbef12ce6e19a7fc3e2869bbc43149dcc76fa8a039f1e为事务签名数据的S字段;
步骤B19:服务器对接收到的指令进行解析得到恢复帐户事务,将恢复帐户事务发送至事务暂存池,服务器接收暂存池返回的接收到事务的成功信息;
在本实施例中,暂存池实时接收全网所有服务器上传的事务;
步骤B20:区块链节点从事务暂存池中提取事务;
在本实施例中,每个区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,提取事务的数据量在区块最大可容纳数据量内,通常为10-15个事务;例如步骤B20中每个区块链节点都从事务暂存池中提取15个事务;
在本实施例中,如事务暂存池检测到有超过一定时间未被区块链节点提取的事务,则将该事物删除;例如事务暂存池检测到事务在24小时内未被区块链节点提取删除该事物;
步骤B21:区块链节点判断提取的事务是否为恢复帐户事务,是则执行步骤B22,否则报错,结束;
具体的,在本实施例中,步骤B21包括:区块链节点判断提取的事务的数据格式是否符合恢复帐户事务的要求,是则执行步骤B22,否则报错,结束;
步骤B22:区块链节点提取恢复帐户事务中的帐户智能合约地址和恢复帐户函数名称,根据帐户智能合约地址查找对应的帐户智能合约,根据恢复帐户函数名称判断找到的帐户智能合约中是否存在恢复帐户函数,是则根据恢复帐户事务调用帐户智能合约中的恢复帐户操作函数,执行步骤B23,否则报错,结束;
步骤B23:帐户智能合约检测到恢复帐户函数被区块链节点调用时,从恢复帐户函数中获取恢复帐户事务;
步骤B24:帐户智能合约对恢复帐户事务进行解析得到帐户智能合约地址、第二签名结果、第一中间签名值、提供事务处理消耗数的地址、总事务处理消耗数、单位事务处理消耗数、恢复帐户事务的数据域,对恢复帐户事务的数据域进行解析得到验证设备ID、验证设备ID对应的第一签名结果、恢复帐户函数名称、新的用户公钥、验证设备总数和验证设备签名数量;
步骤B25:帐户智能合约根据提供事务处理消耗数的地址生成对应的公钥,使用该公钥对第二签名结果进行验证,如验证成功则执行步骤B29,如验证失败则执行步骤B26;
步骤B26:帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤B28,否则执行步骤B27;
步骤B27:帐户智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B28:帐户智能合约用验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B29:帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤B30,否则执行步骤B27;
步骤B30:帐户智能合约用验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,使用解析得到的新的用户公钥对第一中间签名值进行验证,如验证成功则执行步骤B34,如验证失败则执行步骤B31;
步骤B31:帐户智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤B33,否则执行步骤B32;
步骤B32:帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B33:帐户智能合约用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B34:帐户智能合约根据验证操作实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤B35,否则执行步骤B32;
步骤B35:帐户智能合约用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据所有验证设备ID、验证设备ID对应的第一签名结果、新的用户公钥、智能合约地址、验证设备总数、验证设备签名数量和当前总事务处理消耗数生成验证设备验证请求,根据保存的验证设备智能合约地址向对应的验证设备智能合约发送验证设备验证请求;
步骤B36:验证设备智能合约解析接收到的验证设备验证请求得到验证设备ID、验证设备ID对应的第一签名结果、新的用户公钥、智能合约地址、验证设备总数、验证设备签名数量和当前总事务处理消耗数;
步骤B37:验证设备智能合约判断解析得到的验证设备签名数量是否大于验证设备总数的一半,是则执行步骤B39,否则给帐户智能合约返回失败响应,执行步骤B38;
步骤B38:帐户智能合约接收验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B39:验证设备智能合约依次根据验证设备ID提取保存的对应验证设备公钥,使用验证设备公钥对解析得到的验证设备ID对应的第一签名结果进行验证,如验证成功则执行步骤B45,如验证失败则执行步骤B40;
具体的,在本实施例中,使用验证设备公钥对验证设备ID对应的第一签名结果进行验证包括:使用验证设备公钥对验证设备ID对应的第一签名结果进行解密,对新的用户公钥和智能合约地址进行哈希计算,判断解密结果与哈希计算结果是否一致,是则验证成功,否则验证失败;
步骤B40:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤B43,否则执行步骤B41;
步骤B41:验证设备智能合约给帐户智能合约返回包含消耗数不足和验证失败的响应;
步骤B42:帐户智能合约接收验证设备智能合约返回的包含消耗数不足和验证失败的响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
例如,本实施例中有五个验证设备,则需要依次从保存的每个验证设备信息中提取验证设备公钥并进行验证的操作,共执行五次;
步骤B43:验证设备智能合约给帐户智能合约返回验证失败的响应,执行步骤B44;
步骤B44:帐户智能合约接收验证设备智能合约返回的验证失败响应,用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B45:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤B48,否则执行步骤B46;
步骤B46:验证设备智能合约给帐户智能合约返回包含消耗数不足和验证成功的响应;
步骤B47:帐户智能合约接收验证设备返回的包含消耗数不足和验证成功的响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B48:验证设备智能合约给帐户智能合约返回验证成功响应;
步骤B49:帐户智能合约接收验证设备返回的验证成功响应,用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据替换公钥操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤B51,否则执行步骤B50;
步骤B50:帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B51:帐户智能合约用新的用户公钥替换内部保存的用户公钥,用替换公钥操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤B52;
步骤B52:区块链节点接收帐户智能合约返回的恢复帐户事务和事务日志并保存,当该区块链节点轮询成为提议节点时,提议节点将恢复帐户事务和事务日志上传到区块链上;
在本实施例中,区块链节点根据预设规则轮流成为提议节点;事务日志中包括有事务执行成功或事务执行失败;
具体的,提议节点将恢复帐户事务和事务日志上传到区块链上的实现过程与步骤A30相同,在此不再赘述;
步骤B53:服务器实时获取区块链上的数据,从获取的数据中提取恢复帐户事务和事务日志,判断事务日志中是否包含有事务执行成功,是则将主设备ID与恢复帐户事务中的帐户智能合约地址对应保存,将事务日志返回给主设备,执行步骤B54,否则直接将事务日志返回给主设备,执行步骤B54;
步骤B54:主设备接收服务器返回的事务日志,判断事务日志中是否包含有事务执行成功,是则保存新的用户密钥对,将事务执行结果保存在用户的操作历史记录中,否则提示用户恢复帐户操作失败,将事务执行结果保存在用户的操作历史记录中,删除新的用户密钥对;
在本实施例中,用户私钥和用户公钥对应保存在主设备中,如主设备中的旧用户私钥泄露而需要恢复帐户,则在步骤B54中用生成的新的用户密钥对替换主设备中保存的用户密钥对;
步骤205:主设备判断帐户下是否有验证设备,是则执行步骤207,否则执行步骤206;
具体的,在本实施例中,步骤205包括:判断帐户信息中的验证设备是否为0,是则执行步骤206,否则执行步骤207;
在本实施例中,验证设备可以是本设备或其他设备;
步骤206:主设备执行添加验证设备操作;
具体的,在本实施例中,步骤206的具体实现过程包括:
步骤C1:主设备显示添加验证设备页面,提示用户进行操作,当接收到用户触发的添加验证设备信息时向服务器发送包含帐户智能合约地址的查询验证设备智能合约请求;
步骤C2:服务器从接收到的查询验证设备智能合约请求中提取帐户智能合约地址,根据帐户智能合约地址向对应的帐户智能合约发送查询验证设备智能合约请求;
步骤C3:帐户智能合约接收到查询验证设备智能合约请求后,判断是否存在验证设备智能合约,是则给服务器返回验证设备智能合约地址,执行步骤C43,否则执行步骤C4;
步骤C4:帐户智能合约向服务器返回验证设备智能合约不存在响应;
步骤C5:服务器将验证设备智能合约不存在响应转发给主设备;
步骤C6:主设备提示用户不存在验证设备智能合约,需创建验证设备智能合约并添加一个验证设备,等待用户进行确认;
步骤C7:主设备接收到用户确认信息,根据主设备ID和验证设备数量最大值生成添加验证设备请求,将添加验证设备请求发送至服务器;
在本实施例中,添加验证设备请求用于创建一个验证设备智能合约,添加验证设备请求中包括事务处理消耗数;如果添加验证设备请求中的事务处理消耗数不足以支持智能合约的运行,则会创建失败;
步骤C8:服务器从接收到的添加验证设备请求中提取主设备ID和验证设备数量最大值,根据主设备ID和验证设备数量最大值生成添加验证设备的响应收集表,添加验证设备计时开始,并向主设备返回服务器地址;
在本实施例中,验证设备数量的初始值为0;
步骤C9:主设备将包括服务器地址、主设备ID和用户公钥的连接信息显示在主设备屏幕上;
可选的,在本实施例中,连接信息可以以二维码或链接等方式显示在主设备屏幕上,提醒用户将连接信息以二维码方式或链接方式展示或分享给要添加的验证设备;
步骤C10:验证设备获取主设备显示的连接信息并对连接信息进行解析,并将解析结果中的主设备ID和用户公钥显示在屏幕上,等待持有验证设备的用户进行确认是否成为主设备的验证设备,是则执行步骤C12,否则执行步骤C11;
可选的,在本实施例中,验证设备通过扫描主设备显示的二维码或验证设备通过线下方式获取主设备显示的链接,用户触发验证设备上的连接获取包含主设备ID和用户公钥的连接信息,例如,线下方式可以为复制粘贴主设备上的链接通过短信发送给验证设备或由用户将主设备显示的链接输入到验证设备上;
本实施例中的验证设备和主设备是有同样软件或硬件的设备;
步骤C11:验证设备根据解析结果中的服务器地址连接对应服务器,向该服务器发送包括主设备ID和取消成为验证设备信息的添加验证设备响应,执行步骤C13;
步骤C12:验证设备根据解析得到的服务器地址连接对应服务器,向服务器订阅发送给自身的所有消息,订阅成功后根据主设备ID、用户公钥、验证设备ID、验证设备公钥生成添加验证设备待签名数据,使用验证设备私钥对添加验证设备待签名数据进行签名得到第三签名结果,根据添加验证设备待签名数据和第三签名结果生成添加验证设备响应发送至服务器,执行步骤C13;
步骤C13:服务器接收添加验证设备响应,从添加验证设备响应中提取主设备ID,判断主设备ID是否在添加验证设备的响应收集表中,是则执行步骤C14,否则删除接收到的添加验证设备响应,通知验证设备删除添加验证设备响应和连接信息,结束;
步骤C14:服务器根据主设备ID判断接收添加验证设备响应是否超时,是则执行步骤C15,否则执行步骤C16;
步骤C15:服务器向主设备返回添加验证设备的响应收集表,删除添加验证设备请求、响应收集表和添加验证设备响应,执行步骤C21;
步骤C16:服务器判断添加验证设备响应的类型,如为添加则执行步骤C17,如为取消则执行步骤C18;
步骤C17:服务器按照接收时间顺序将包含添加验证设备待签名数据和第三签名结果的添加验证设备响应填入与主设备ID对应的添加验证设备的响应收集表中,执行步骤C19;
步骤C18:服务器按照接收时间顺序将包含取消成为验证设备信息的添加验证设备响应填入与主设备ID对应的添加验证设备的响应收集表,执行步骤C19;
步骤C19:服务器判断添加验证设备的响应收集表是否已填满,是则执行步骤C20,否则服务器等待接收添加验证设备响应,返回步骤C13;
步骤C20:服务器将添加验证设备计时设置为超时,将包含添加验证设备的响应收集表的响应发送给与主设备ID对应的主设备,服务器删除该添加验证设备的响应收集表、添加验证设备请求和添加验证设备响应,执行步骤C21;
步骤C21:主设备从接收到的响应中提取响应收集表,删除响应收集表中的包含取消成为验证设备信息的添加验证设备响应,依次从响应收集表中提取添加验证设备待签名数据和第三签名结果,使用添加验证设备待签名数据对第三签名数据进行验证,如验证成功则执行步骤C22,如验证失败则报错,结束;
具体的,在本实施例中,使用添加验证设备待签名数据对第三签名数据进行验证,包括:使用添加验证设备待签名数据中的验证设备公钥对第三签名数据进行解密,对添加验证设备待签名数据计算哈希,判断解密结果与哈希结果是否匹配,是则验证成功,否则验证失败;
步骤C22:主设备显示添加验证设备待签名数据中的验证设备ID和验证设备公钥,提示用户输入提供事务处理消耗数的地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数的地址查询该地址的总消耗数,判断用户输入的总事务处理消耗数是否小于该总消耗数,是则执行步骤C23,否则报错,提示用户重新输信息;
步骤C23:主设备使用帐户智能合约地址、验证设备ID、验证设备公钥、预设的创建验证设备智能合约的智能合约地址、总事务处理消耗数、单位事务处理消耗数、预置的创建验证设备智能合约函数名称、提供事务处理消耗数的地址生成添加验证设备事务,使用提供事务处理消耗数的地址对应的私钥对添加验证设备事务进行签名,得到添加验证设备事务签名结果,将添加验证设备事务签名结果写入到添加验证设备事务的签名数据位置,将包含主设备ID和添加验证设备事务的指令发送至服务器;
步骤C24:服务器对接收到的指令进行解析得到主设备ID和添加验证设备事务,暂存主设备ID,将添加验证设备事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
步骤C25:区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,每个区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;例如步骤C25中,每个区块链节点都从事务暂存池中提取15个事务;
步骤C26:区块链节点判断提取的事务是否为添加验证设备事务,是则执行步骤C27,否则报错,结束;
在本实施例中,步骤C26包括:区块链节点判断提取的事务的数据格式是否符合添加验证设备事务的要求,是则执行步骤C27,否则报错,结束;
步骤C27:区块链节点提取添加验证设备事务中的创建验证设备智能合约的智能合约地址,根据创建验证设备智能合约的智能合约地址找到对应的创建验证设备智能合约的智能合约,根据创建验证设备智能合约函数名称判断找到的创建验证设备智能合约的智能合约中是否存在创建验证设备智能合约函数,是则根据添加验证设备事务调用创建验证设备智能合约的智能合约中的创建验证设备智能合约函数,执行步骤C29,否则报错,结束;
步骤C28:创建验证设备智能合约的智能合约检测到创建验证设备智能合约函数被调用时,从创建验证设备智能合约函数中提取添加验证设备事务;
步骤C29:创建验证设备智能合约的智能合约对提取的添加验证设备事务进行解析得到帐户智能合约地址、验证设备ID、验证设备公钥、预设的创建验证设备智能合约的智能合约地址、总事务处理消耗数、单位事务处理消耗数、预置的创建验证设备智能合约函数名称、提供事务处理消耗数的地址和添加验证设备事务签名结果;
步骤C30:创建验证设备智能合约的智能合约根据提供事务处理消耗数的地址计算对应的公钥,使用该公钥对添加验证设备事务签名结果进行验证,如验证成功则执行步骤C34,如验证失败则执行步骤C31;
步骤C31:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C32,否则执行步骤C33;
步骤C32:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C37;
步骤C33:创建验证设备智能合约的智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C37;
步骤C34:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C35,否则执行步骤C33;
步骤C35:创建验证设备智能合约的智能合约根据验证操作实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,根据创建验证设备智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤C36,否则将当前事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C37;
步骤C36:创建验证设备智能合约的智能合约创建验证设备智能合约,将验证设备ID和对应验证设备公钥写入到新创建的验证设备智能合约中,根据帐户智能合约地址查找帐户智能合约,将验证设备智能合约地址写入到找到的帐户智能合约的存储区中,根据创建智能合约操作的实际事务处理消耗数和两次写入操作的实际事务处理消耗数更新当前总事务处理消耗数,从新创建的验证设备智能合约中获取对应的验证设备智能合约地址,将验证设备智能合约地址、所有操作实际事务处理消耗数和事务执行成功写入到添加验证设备事务的事务日志中,将添加验证设备事务和事务日志返回给区块链节点,执行步骤C37;
步骤C37:区块链节点接收创建验证设备智能合约的智能合约返回的添加验证设备事务和事务日志并保存,当区块链节点轮询成为提议节点时,提议节点将添加验证设备事务和事务日志上传到区块链;
具体的,提议节点将添加验证设备事务和事务日志上传到区块链,包括:
步骤C37-1:提议节点根据添加验证设备事务和事务日志计算出符合区块链网络要求的区块并进行广播;
步骤C37-2:其他节点接收到区块时,判断该区块的数据结构是否符合区块链网络要求,是则执行步骤C37-3,否则广播包含上链失败信息的区块,抛弃接收到的区块,执行步骤C37-5;
步骤C37-3:其他节点判断该区块中的每个事务结构是否符合区块链网络要求且判断是否包含有事务执行结果,如判断均为是则将该区块保存在自己的区块链最后,广播包含上链成功信息的区块,执行步骤C37-4,否则广播包含上链失败信息的区块,抛弃接收到的区块,执行步骤C37-5;
在本实施例中,事务执行结果包括事务执行成功或事务执行失败;
步骤C37-4:当提议节点接收到第一预设数量的包含上链成功信息的区块时将计算得到的区块保存在自己节点区块链的最后并广播包含上链成功信息的区块;
步骤C37-5:当提议节点收到第二预设数量的包含上链失败信息的区块时,抛弃计算得到的区块;
当全网所有节点都将该区块保存时,添加验证设备事务和事务日志被成功上传到区块链中;
步骤C38:服务器实时获取区块链上的数据,从获取到的数据中提取事务日志和添加验证设备事务,判断事务日志中是否包含有事务执行成功,是则执行步骤C39,否则执行步骤C41;
在本实施例中,如未获取到数据或获取到的数据不是添加验证设备事务,均执行步骤C41;
步骤C39:服务器提取事务日志中的验证设备智能合约地址并与主设备ID对应保存,将包含验证设备智能合约地址的创建成功响应返回主设备;
步骤C40:主设备从接收到的创建成功响应中提取验证设备智能合约地址并保存,提示用户验证设备添加成功,结束;
步骤C41:服务器将创建失败响应返回给主设备;
步骤C42:主设备接收到创建失败响应时报错,结束;
步骤C43:服务器接收验证设备智能合约地址,根据验证设备智能合约地址从对应的验证设备智能合约中读取验证设备的数量和验证设备最大值;
步骤C44:服务器判断读取的验证设备的数量是否已达验证设备最大值,是则将验证设备数量已达最大值的响应发送给主设备,结束,否则执行步骤C45;
步骤C45:服务器向主设备返回包括验证设备智能合约地址和验证设备最大值的响应;
步骤C46:主设备接收响应,提取响应中的验证设备数量和验证设备最大值,计算剩余可添加的验证设备数量,将剩余可添加的验证设备数量显示给用户并提示用户进行确认;
步骤C47:当主设备接收到用户的确认信息时,根据主设备ID和剩余可添加的验证设备数量生成添加验证设备请求,将添加验证设备请求发送至服务器;
步骤C48:服务器从接收到的添加验证设备请求中提取主设备ID和剩余可添加的验证设备数量,根据主设备ID和剩余可添加的验证设备数量生成添加验证设备响应收集表,添加验证设备计时开始,并向主设备返回服务器地址;
步骤C49:主设备将包括服务器地址、主设备ID和用户公钥的连接信息显示在主设备屏幕上;
可选的,在本实施例中,连接信息可以以二维码或链接等方式显示在主设备屏幕上,提醒用户将该二维码或链接以任意方式展示或分享给待添加的验证设备;
步骤C50:待添加的验证设备获取主设备显示的连接信息,对连接信息进行解析得到服务器地址、主设备ID和用户公钥,并将主设备ID和用户公钥显示在屏幕上,等待持有验证设备的用户进行确认是否成为显示的主设备的验证设备,是则执行步骤C52,否则执行步骤C51;
步骤C51:待添加的验证设备根据服务器地址连接对应的服务器,向服务器发送包括主设备ID和取消成为验证设备信息的添加验证设备响应,执行步骤C53;
步骤C52:待添加的验证设备根据服务器地址连接对应的服务器,向服务器订阅发送给自身的所有消息,订阅成功后根据主设备ID、用户公钥、待添加的验证设备ID、待添加的验证设备公钥生成第五待签名数据,使用待添加的验证设备的私钥对第五待签名数据进行签名得到第五签名结果,根据第五待签名数据和第五签名结果生成添加验证设备响应发送至服务器,执行步骤C53;
步骤C53:服务器接收添加验证设备响应,从添加验证设备响应中提取主设备ID,判断主设备ID是否在添加验证设备响应收集表中,是则执行步骤C54,否则删除添加验证设备请求、响应收集表和接收到的添加验证设备响应,结束;
在本实施例中,如准备成为验证设备的设备有多个,则服务器会收到多个添加验证设备响应;
步骤C54:服务器根据主设备ID判断接收添加验证设备响应是否超时,是则执行步骤C55,否则执行步骤C56;
步骤C55:服务器向主设备返回添加验证设备响应收集表,删除添加验证设备请求、添加验证设备响应收集表和添加验证设备响应,执行步骤C61;
步骤C56:服务器判断添加验证设备响应的类型,如为添加则执行步骤C57,如为取消则执行步骤C58;
步骤C57:服务器将添加验证设备响应按照接收时间顺序填入到主设备ID对应的添加验证设备响应收集表中,执行步骤C59;
步骤C58:服务器从添加验证设备响应中提取取消成为验证设备信息,将取消成为验证设备信息按照接收时间顺序填入到主设备ID的添加验证设备响应收集表中,执行步骤C59;
步骤C59:服务器判断添加验证设备响应收集表是否已填满,是则执行步骤C60,否则服务器等待接收添加验证设备响应,返回步骤C53;
步骤C60:服务器将添加验证设备操作计时设置为超时,将包含添加验证设备响应收集表的响应发送给主设备ID对应的主设备,服务器添加验证设备请求、删除该添加验证设备响应收集表和添加验证设备响应,执行步骤C61;
步骤C61:主设备从接收到的响应中提取添加验证设备响应收集表,删除添加验证设备响应收集表中的取消成为验证设备信息,依次从添加验证设备响应收集表中提取第五待签名数据和第五签名结果,使用第五待签名数据对第五签名结果进行验证,如验证成功则执行步骤C62,如验证失败则报错,结束;
步骤C62:主设备向用户显示响应收集表中的待添加验证设备ID,提示用户进行确认,收到确认后主设备生成随机数作为请求ID,根据主设备ID、待添加的验证设备ID和待添加的验证设备公钥、请求ID生成确认待添加验证设备请求,将确认待添加验证设备请求发送至服务器;
步骤C63:服务器对接收到的确认待添加验证设备请求进行解析得到主设备ID、待添加的验证设备ID、待添加的验证设备公钥、请求ID,根据主设备ID查询对应的验证设备列表,判断验证设备列表中是否存在待添加的验证设备ID,是则给主设备返回该待添加设备已在验证设备列表中的信息,结束,否则按验证设备列表中的验证设备序号顺序获取对应的验证设备ID,依次根据验证设备ID将确认待添加验证设备请求发送给对应的验证设备,服务器使用请求ID、主设备ID、验证设备序号和对应的验证设备ID生成确认待添加验证设备请求的响应收集表,将验证设备签名数量设置为0,添加验证设备操作计时开始,执行步骤C64;
可选的,主设备接收到待添加设备已在验证设备列表中的信息后可继续提示用户添加其他验证设备,执行步骤C49;
步骤C64:每个验证设备接收确认待添加验证设备请求,从确认待添加验证设备请求中提取主设备ID、请求ID、待添加的验证设备ID和待添加的验证设备公钥并显示,提醒用户进行确认,当接收到用户的触发信息时判断触发信息的类型,如为确认信息则执行步骤C66,如为取消信息则执行步骤C65;
步骤C65:每个验证设备根据取消信息、验证设备ID、主设备ID、请求ID生成添加验证设备响应并返回给服务器,执行步骤C67;
步骤C66:每个验证设备使用自身保存的验证设备私钥对包含主设备ID、验证设备ID和验证设备公钥的第六待签名数据进行签名,得到第六签名结果,根据请求ID、确认信息、第六签名结果和第六待签名数据生成添加验证设备响应并返回给服务器,执行步骤C67;
步骤C67:服务器接收添加验证设备响应,从添加验证设备响应中提取请求ID和主设备ID,判断该请求ID是否存在添加验证设备响应收集表中,是则执行步骤C68,否则报错,删除接收到的添加验证设备响应;
步骤C68:服务器根据主设备ID判断接收添加验证设备响应是否超时,是则向主设备返回确认待添加验证设备请求已超时的响应,删除添加验证设备响应收集表和接收到的添加验证设备响应,否则执行步骤C69;
步骤C69:服务器判断添加验证设备响应的类型,如为确认则执行步骤C70,如为取消则执行步骤C71;
步骤C70:服务器从添加验证设备响应中提取待添加的验证设备ID和第六签名结果,根据验证设备ID将第六签名结果保存在响应收集表中,验证设备签名数量自加1,执行步骤C72;
步骤C71:服务器从添加验证设备响应中提取验证设备ID和取消信息,根据验证设备ID将取消信息保存在添加验证设备响应收集表中,执行步骤C72;
步骤C72:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则服务器等待接收确认验证设备响应,返回步骤C67,否则执行步骤C73;
步骤C73:服务器将添加验证设备操作计时设置为超时,将包含添加验证设备响应收集表、验证设备总数、验证设备签名数量和添加验证设备响应的响应发送给主设备,删除该响应收集表;
步骤C74:主设备从接收到的响应中提取添加验证设备响应收集表,从添加验证设备响应收集表提取验证设备ID和验证设备ID对应的第六签名结果,根据验证设备ID和验证设备ID对应的第六签名结果、验证设备智能合约地址、预置的添加验证设备函数名称、待添加的验证设备ID和待添加的验证设备公钥、验证设备总数和验证设备签名数量生成添加验证设备数据域;
步骤C75:主设备提示用户输入提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据用户输入的提供事务处理消耗数地址查询该地址的总消耗数,判断用户输入的总事务处理消耗数是否小于总消耗数,是则执行步骤C76,否则报错,提示用户重新输入信息;
步骤C76:主设备根据提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、添加验证设备数据域生成添加验证设备事务,使用提供事务处理消耗数地址所对应的私钥对添加验证设备事务进行签名得到第七签名结果,将第七签名结果写入到添加验证设备事务的签名数据位置,将添加验证设备事务发送至服务器;
步骤C77:服务器接收添加验证设备事务,将添加验证设备事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
在本实施例中,暂存池实时接收全网所有服务器上传的事务;
步骤C78:每个区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,每个区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;例如步骤C25中,每个区块链节点都从事务暂存池中提取15个事务;
步骤C79:区块链节点判断提取的事务是否为添加验证设备事务,是则执行步骤C79,否则报错,结束;
在本实施例中,步骤C79包括:区块链节点判断提取的事务的数据格式是否符合添加验证设备事务的要求,是则执行步骤C80,否则报错,结束;
步骤C80:区块链节点提取添加验证设备事务中的验证设备智能合约地址,根据验证设备智能合约地址找到对应的验证设备智能合约,根据添加验证设备函数名称判断验证设备智能合约中是否存在对应的添加验证设备函数,是则根据添加验证设备事务调用验证设备智能合约中的添加验证设备函数,执行步骤C81,否则报错,结束;
步骤C81:验证设备智能合约检测到添加验证设备函数被调用时, 从添加验证设备函数中提取添加验证设备事务;
步骤C82:验证设备智能合约对提取的添加验证设备事务进行解析得到提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、添加验证设备数据域、第七签名结果;对添加验证设备数据域进行解析得到验证设备ID和验证设备ID对应的第六签名结果、验证设备智能合约地址、预置的添加验证设备函数名称、待添加的验证设备ID和待添加的验证设备公钥、验证设备总数、验证设备签名数量;
步骤C83:验证设备智能合约根据提供事务处理消耗数地址计算对应的公钥,使用该公钥对第七签名结果进行验证,如验证成功则执行步骤C87,如验证失败则执行步骤C84;
步骤C84:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C85,否则执行步骤C86;
步骤C85:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C86:验证设备智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C87:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤C88,否则执行步骤C86;
步骤C88:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,判断解析得到的验证设备签名数量是否大于验证设备总数的一半,是则执行步骤C89,否则将所有操作的实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C89:验证设备智能合约依次根据验证设备ID提取保存的对应验证设备公钥,使用验证设备公钥对该验证设备ID对应的第六签名结果进行验证,如验证成功则执行步骤C93,如验证失败则执行步骤C90;
步骤C90:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤C91,否则执行步骤C92;
步骤C91:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,并将验证操作的实际事务处理消耗数和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C92:验证设备智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到添加验证设备事务的事务日志中,向区块链节点返回添加验证设备事务和事务日志,执行步骤C95;
步骤C93:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤C94,否则执行步骤C92;
步骤C94:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前事务处理消耗数,根据添加验证设备操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则将解析得到的待添加的验证设备ID和待添加的验证设备公钥存入自身的存储区中,将所有操作的实际事务处理消耗数和事务执行成功写入到添加验证设备事务的事务日志中,给区块链节点返回添加验证设备事务和事务日志,执行步骤C95,否则执行步骤C92;
步骤C95:区块链节点接收到验证设备智能合约返回的添加验证设备事务和事务日志并保存;当区块链节点轮询成为提议节点时,提议节点将添加验证设备事务和事务日志上传到区块链;
在本实施例中,事务日志中包括事务执行结果,事务执行结果为事务执行成功或事务执行失败;
具体的,该步骤中的提议节点将添加验证设备事务和事务日志上传到区块链的实现过程与步骤C37相同,在此不再赘述;
步骤C96:服务器实时获取区块链上的数据,并从获取的数据中获取添加验证设备事务和事务日志,判断事务日志中是否包含有事务执行成功,是则执行步骤C97,否则执行步骤C99;
步骤C97:服务器从添加验证设备事务中获取待添加验证设备ID,将待添加验证设备ID保存在与主设备ID对应的验证设备列表中,并将包含待添加验证设备ID的成功响应返回给主设备;
步骤C98:主设备从接收到的成功响应中提取待添加验证设备ID并保存,提示用户验证设备添加成功,结束;
在本实施例中,步骤C98还包括:显示待添加验证设备ID;
步骤C99:服务器将添加验证设备失败响应返回给主设备;
步骤C100:主设备接收到失败响应时报错,结束;
步骤207:主设备显示操作页面,并判断接收到的用户操作信息的类型,如为添加白名单信息则执行步骤208,如为管理验证设备信息则执行步骤209,如为转移信息则执行步骤212;
步骤208:主设备执行添加白名单操作;
步骤209:主设备显示管理验证设备页面,判断接收到的用户操作信息,如为添加设备则执行步骤210,如为删除设备则执行步骤211;
步骤210:主设备执行添加验证设备操作;
在本实施例中,步骤210的实现过程与步骤206相同,在此不再赘述;
步骤211:主设备执行删除验证设备操作;
具体的,在本实施例中,步骤211的具体实现过程包括:
步骤E1:主设备显示验证设备管理页面,并提示用户选择要删除的验证设备,当接收到用户触发的删除验证设备信息时生成请求ID,根据请求ID、待删除的验证设备ID、验证设备智能合约地址和主设备ID生成删除验证设备请求,将删除验证设备请求和发送给服务器;
步骤E2:服务器对接收到的删除验证设备请求进行解析得到请求ID、待删除的验证设备ID、验证设备智能合约地址和主设备ID,根据验证设备智能合约地址从对应的验证设备智能合约中获取保存的验证设备数量,判断验证设备数量是否为1,是则向主设备报错,结束,否则执行步骤E3;
在本实施例中,只有一个验证设备时不允许执行删除验证设备操作;
步骤E3:服务器查询该验证设备智能合约中是否存在与待删除的验证设备ID对应的验证设备公钥,是则执行步骤E4,否则向主设备报错,结束;
步骤E4:服务器根据主设备ID获取验证设备列表,按照验证设备列表中的验证设备序号的顺序,依次根据待删除的验证设备ID将删除验证设备请求发送给对应的验证设备,根据请求ID、主设备ID和验证设备ID、验证设备序号生成删除验证设备响应收集表,将验证设备签名数量设置为0,删除验证设备操作计时开始;
步骤E5:每个验证设备从接收到的删除验证设备请求中提取主设备ID和待删除的验证设备ID并显示,当接收到持有验证设备用户触发的操作信息时判断操作信息的类型,如为确认信息则执行步骤E7,如为取消信息则执行步骤E6;
步骤E6:验证设备将取消信息、验证设备ID、请求ID生成删除设备响应并返回给服务器,执行步骤E8;
步骤E7:验证设备使用验证设备私钥对主设备ID和待删除的验证设备ID进行签名得到第十签名结果,根据确认信息、第十签名结果、验证设备ID和请求ID生成删除设备响应并返回给服务器,执行步骤E8;
步骤E8:服务器从接收到的删除设备响应中提取请求ID,判断是否存在该请求ID对应的响应收集表,是则执行步骤E9,否则删除接收到的删除设备响应,结束;
步骤E9:服务器根据请求 ID判断接收删除设备响应是否超时,是则给主设备返回删除验证设备已超时响应,删除接收到的删除设备响应,结束,否则执行步骤E10;
步骤E10:服务器判断删除设备响应的类型,如为确认则执行步骤E11,如为取消则执行步骤E12;
步骤E11:服务器从删除设备响应中提取验证设备ID和第十签名结果,将第十签名结果填入删除验证设备响应收集表中的验证设备ID之后,验证设备签名数量自加1,执行步骤E13;
步骤E12:服务器从删除设备响应中提取验证设备ID,将取消信息填入删除验证设备响应收集表中的验证设备ID之后,执行步骤E13;
步骤E13:服务器根据验证设备ID计算验证设备总数,判断验证设备签名数量是否小于验证设备总数的一半,是则等待接收删除设备响应,返回步骤E8,否则执行步骤E14;
步骤E14:服务器将删除验证设备操作计时设置为超时,根据删除验证设备响应收集表、验证设备总数、验证设备签名数量和接收到的删除设备响应生成处理响应发送给主设备,将删除验证设备响应收集表删除;
步骤E15:主设备从接收到的处理响应中提取响应收集表,根据待删除的验证设备ID、验证设备智能合约地址、预置的删除验证设备函数名称、响应收集表中的验证设备ID和对应的第十签名结果、验证设备总数和验证设备签名数量生成删除验证设备事务的数据域;
步骤E16:主设备接收用户输入的提供事务处理消耗数地址、总事务处理消耗数和单位事务处理消耗数,根据提供事务处理消耗数地址查询该地址的总消耗数,判断用户输入的总事务处理消耗数是否小于该总消耗数,是则执行步骤E17,否则报错,提示用户重新输入信息;
步骤E17:主设备根据帐户智能合约地址、验证设备智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、删除验证设备事务的数据域生成删除验证设备事务待签名信息,使用提供事务处理消耗数地址所对应的私钥对删除验证设备事务待签名信息进行签名得到事务处理消耗数签名结果,将事务处理消耗数签名结果和删除事务待签名信息生成删除验证设备事务,将包含删除验证设备事务的指令发送至服务器;
在本实施例中,删除验证设备事务的数据域包括:待删除的验证设备ID、验证设备智能合约地址、预置的删除验证设备函数名称、响应收集表中的验证设备ID和对应的第十签名结果、验证设备总数和验证设备签名数量;
步骤E18:服务器接收删除验证设备事务,将删除验证设备事务发送至事务暂存池,并接收事务暂存池返回的接收到事务的成功信息;
步骤E19:区块链节点从事务暂存池中提取事务并打包成区块;
在本实施例中,区块链节点将事务按单位事务处理消耗数由高到低排列,每次选取单位事务处理消耗数最高的事务,所提取事务的数量在区块最大可容纳数据量内,通常为10-15个事务;事务暂存池检测到有超过一定时间内(例如24小时)未被节点选取的事务,则会删除该事物;
步骤E20:区块链节点判断提取的事务是否为删除验证设备事务,是则执行步骤E21,否则报错,结束;
具体的,在本实施例中,步骤E20包括:节点判断提取的事务的数据格式是否符合删除验证设备事务的格式,是则执行步骤E21,否则报错,结束;
步骤E21:区块链节点提取删除验证设备事务中的验证设备智能合约地址,根据验证设备智能合约地址找到对应的验证设备智能合约,根据删除验证设备函数名称判断找到的验证设备智能合约中是否存在对应的删除验证设备函数,是则根据删除验证设备事务调用验证设备智能合约中的删除验证设备函数,执行步骤E22,否则报错,结束;
步骤E22:验证设备智能合约检测到删除验证设备函数被调用时,从删除验证设备函数中提取删除验证设备事务;
步骤E23:验证设备智能合约对删除验证设备事务进行解析得到帐户智能合约地址、验证设备智能合约地址、提供事务处理消耗数地址、总事务处理消耗数、单位事务处理消耗数、待删除的验证设备ID、验证设备智能合约地址、预置的删除验证设备函数名称、响应收集表中的验证设备ID和对应的第十签名结果、验证设备总数和验证设备签名数量、事务处理消耗数签名结果;
步骤E24:验证设备智能合约根据提供事务处理消耗数地址计算对应的公钥,使用该公钥对事务处理消耗数签名结果进行验证,如验证成功则执行步骤E28,如验证失败则执行步骤E25;
步骤E25:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤E26,否则执行步骤E27;
步骤E26:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E27:验证设备智能合约将解析得到的总事务处理消耗数清零,将消耗数不足和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E28:验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤E29,否则执行步骤E27;
步骤E29:验证设备智能合约根据验证操作的实际事务处理消耗数更新解析得到的总事务处理消耗数并作为当前总事务处理消耗数,判断验证设备签名数量是否大于验证设备总数的一半,是则执行步骤E30,否则将所有操作的实际事务处理消耗数和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E30:验证设备智能合约依次根据验证设备ID提取保存的对应验证设备公钥,使用提取的验证设备公钥对该验证设备ID对应的第十签名结果进行验证,如验证成功则执行步骤E34,如验证失败则执行步骤E31;
步骤E31:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤E32,否则执行步骤E33;
步骤E32:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E33:验证设备智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到删除验证设备事务的事务日志中,向区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E34:验证设备智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤E35,否则执行步骤E33;
步骤E35:验证设备智能合约根据验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据删除操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤E36,否则执行步骤E33;
步骤E36:验证设备智能合约从存储区中将待删除的验证设备ID和对应的验证设备公钥删除,根据删除操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入到删除验证设备事务的事务日志中,给区块链节点返回删除验证设备事务和事务日志,执行步骤E37;
步骤E37:区块链节点接收验证设备智能合约返回的事务日志和删除验证设备事务并保存,当节点轮询成为提议节点时,提议节点将删除验证设备事务和事务日志上传到区块链;
在本实施例中,事务日志中包含事务执行成功或事务执行失败;
本实施例中的提议节点将删除验证设备事务上传到区块链与步骤C37的实现过程相同,在此不再赘述;
步骤E38:服务器实时获取区块链上的数据,从获取的数据中提取删除验证设备事务和事务日志,判断事务日志中是否包含有事务执行成功,是则根据删除验证设备事务中的主设备ID和待删除的验证设备ID将与主设备ID对应的验证设备列表中保存的对应验证设备ID删除,执行步骤E39,否则直接执行步骤E39;
步骤E39:服务器将删除验证设备事务和事务日志返回主设备;
步骤E40:主设备接收服务器返回的删除验证设备事务和事务日志,将事务日志保存在用户的操作历史记录中,判断事务日志中是否包含有事务执行成功,是则将保存的验证设备ID删除;
在本实施例中,步骤E40还可包括主设备显示删除验证设备事务和事务日志。
步骤212:主设备接收用户输入的转移信息,根据转移信息执行转移操作。
本发明实施例还提供一种通过智能合约管理帐户控制权限的实现系统,包括:主设备、服务器、验证设备和区块链节点,用于实现实施例一和实施例二公开的一种通过智能合约管理帐户控制权限的实现方法。
本实施例中的主设备可以为手机、硬件设备、电脑终端等,区块链节点上运行多个智能合约(帐户智能合约、创建帐户智能合约的智能合约、验证设备智能合约、创建验证设备智能合约的智能合约),验证设备可以是手机、硬件设备、电脑终端等。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的通过智能合约管理帐户控制权限的实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的通过智能合约管理帐户控制权限的实现方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、电子设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、电子设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是电子设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他生成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不为这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种通过智能合约管理帐户控制权限的实现方法,其特征在于,包括:
步骤Y1:当主设备接收到用户选择的恢复帐户操作信息时,接收用户输入的帐户智能合约地址并生成新的用户密钥对,判断是否能执行恢复帐户操作,是则通过服务器与验证设备通讯,通过所述验证设备对所述新的用户密钥对中的用户公钥和所述帐户智能合约地址进行签名得到第一签名结果,执行步骤Y2,否则删除所述新的用户密钥对,所述新的用户密钥对包括新的用户公钥和新的用户私钥;
步骤Y2:所述主设备根据所述第一签名结果、所述帐户智能合约地址和所述新的用户公钥生成待签名信息,使用所述新的用户私钥对所述待签名信息进行签名得到第一中间签名值,根据所述待签名信息和第一中间签名值生成第一拼接结果,使用用户输入的提供事务处理消耗数的地址对应的私钥对所述第一拼接结果进行签名得到第二签名结果,根据所述第二签名结果和所述第一拼接结果生成恢复帐户事务,将包含主设备ID和所述恢复帐户事务的指令发送至所述服务器;
步骤Y3:所述服务器对接收到的指令进行解析得到主设备ID和恢复帐户事务,将所述恢复帐户事务发送至事务暂存池,并接收所述事务暂存池返回的信息;
步骤Y4:区块链节点从所述事务暂存池中提取事务,当判断提取的事务为恢复帐户事务时,执行步骤Y5;
步骤Y5:所述区块链节点对所述恢复帐户事务中的第二签名结果、第一中间签名值和第一签名结果进行验证,如均验证成功则用所述恢复帐户事务中的新的用户公钥替换保存的用户公钥,将事务执行成功写入到恢复帐户事务的事务日志中,执行步骤Y6,否则将事务执行失败写入到恢复帐户事务的事务日志中,执行步骤Y6;
步骤Y6:当所述区块链节点轮询成为提议节点时将所述恢复帐户事务和所述事务日志上传到区块链;
步骤Y7:所述服务器实时获取所述区块链上的数据,并从获取的数据中提取恢复帐户事务和事务日志,判断所述事务日志中是否包含事务执行成功,是则将所述主设备ID与所述恢复帐户事务中的帐户智能合约地址对应保存,将所述事务日志返回给所述主设备,执行步骤Y8,否则直接将所述事务日志返回给所述主设备,执行步骤Y8;
步骤Y8:所述主设备判断接收到的事务日志中是否包含事务执行成功,是则保存所述新的用户密钥对,否则删除所述新的用户密钥对。
2.如权利要求1所述的方法,其特征在于,所述通过服务器与验证设备通讯,通过所述验证设备对所述新的用户公钥和帐户智能合约地址进行签名得到第一签名结果,包括:
步骤T1:所述主设备根据帐户智能合约地址和新的用户公钥生成确认新公钥指令并发送给所述服务器;
步骤T2:所述服务器根据所述确认新公钥指令中的帐户智能合约地址判断区块链上和本地是否保存对应的帐户,是则执行步骤T3,否则删除接收到的确认新公钥指令,通知所述主设备删除生成的新的用户密钥对;
步骤T3:所述服务器根据本地保存的验证设备列表中的验证设备ID将所述确认新公钥指令发送给对应的验证设备;
步骤T4:所述验证设备使用自身的验证设备公钥对所述确认新公钥指令中的帐户智能合约地址和所述新的用户公钥进行签名得到第一签名结果,通过所述服务器将所述第一签名结果返回给所述主设备。
3.如权利要求1所述的方法,其特征在于,所述步骤Y1包括:
步骤Y1-1:所述主设备显示恢复帐户页面,提示用户输入帐户智能合约地址,当接收到帐户智能合约地址时生成新的用户密钥对,所述新的用户密钥对包括新的用户公钥和新的用户私钥;
步骤Y1-2:所述主设备根据所述帐户智能合约地址和所述新的用户公钥生成确认新公钥指令,并将所述确认新公钥指令发送至所述服务器;
步骤Y1-3:所述服务器从接收到的所述确认新公钥指令中提取帐户智能合约地址,判断区块链上是否存在所述帐户智能合约地址,是则执行步骤Y1-4,否则删除所述确认新公钥指令,通知所述主设备删除所述新的用户密钥对,结束;
步骤Y1-4:所述服务器使用所述帐户智能合约地址判断本地保存的帐户列表是否有对应的帐户信息和验证设备列表,是则执行步骤Y1-5,否则删除所述确认新公钥指令,通知所述主设备删除所述新的用户密钥对,结束;
步骤Y1-5:所述服务器从所述验证设备列表中获取验证设备序号和验证设备ID,根据生成的请求ID、所述新的用户公钥和所述帐户智能合约地址生成新公钥确认请求,按照所述验证设备序号的顺序,依次根据验证设备ID将新公钥确认请求发送给对应的验证设备,使用所述请求ID、所述帐户智能合约地址、所述验证设备序号和所述验证设备ID生成恢复帐户操作响应收集表,将验证设备签名数量设置为0,恢复帐户操作计时开始;
步骤Y1-6:每个验证设备从接收到的新公钥确认请求中提取帐户智能合约地址和新的用户公钥并显示,当接收到验证设备用户的触发信息时判断触发信息的类型,如为确认信息则执行步骤Y1-8,如为取消信息则执行步骤Y1-7;
步骤Y1-7:所述验证设备根据取消信息、自身的验证设备ID和请求ID生成处理响应并返回所述服务器,执行步骤Y1-10;
步骤Y1-8:所述验证设备使用自身的验证设备私钥对帐户智能合约地址和新的用户公钥进行签名得到第一签名结果,根据确认信息、第一签名结果、自身的验证设备ID和请求ID生成处理响应并返回给所述服务器;
步骤Y1-9:所述服务器从接收到的所述处理响应中提取请求ID,判断所述请求ID是否在所述响应收集表中,是则执行步骤Y1-10,否则服务器删除接收到的处理响应,通知所述主设备删除所述新的用户密钥对,结束;
步骤Y1-10:所述服务器根据所述请求ID判断新公钥确认事务是否超时,是则删除对应的响应收集表、收到的事务响应和确认新公钥指令,通知所述主设备删除所述新的用户密钥对,结束,否则执行步骤Y1-11;
步骤Y1-11:所述服务器判断所述处理响应中的信息类型,如为确认信息则执行步骤Y1-12,如为取消信息则执行步骤Y1-13;
步骤Y1-12:所述服务器从所述处理响应中提取验证设备ID和对应的第一签名结果,根据验证设备ID将所述第一签名结果存入恢复帐户操作响应收集表中,事务确认数自加1,执行步骤Y1-14;
步骤Y1-13:所述服务器从处理响应中提取验证设备ID和取消信息,根据验证设备ID将取消信息填入恢复帐户操作响应收集表中,执行步骤Y1-14;
步骤Y1-14:所述服务器根据所述验证设备ID计算验证设备总数,判断所述验证设备签名数量是否小于验证设备总数的一半,是则等待接收处理响应,返回步骤Y1-9,否则执行步骤Y1-15;
步骤Y1-15:所述服务器将所述恢复帐户操作计时设置为超时,根据恢复帐户操作响应收集表、验证设备签名数量、验证设备总数和处理响应生成新公钥确认响应,并将所述新公钥确认响应发送给所述主设备,删除所述响应收集表和新公钥确认请求;
步骤Y1-16:所述主设备对接收到的新公钥确认响应进行解析得到恢复帐户操作响应收集表、验证设备签名数量、验证设备总数和处理响应,从所述恢复帐户操作响应收集表中提取验证设备ID和验证设备ID对应的第一签名结果,将所述验证设备ID、所述验证设备ID对应的第一签名结果、恢复帐户函数名称、新的用户公钥、验证设备签名数量和验证设备总数生成恢复帐户事务的数据域;
步骤Y1-17:所述主设备提示并接收用户输入的提供事务处理消耗数的地址、总事务处理消耗数和单位事务处理消耗数,根据所述提供事务处理消耗数地址获取保存的总消耗数,判断用户输入的总事务处理消耗数是否小于获取的所述总消耗数,是则执行步骤Y2,否则提示用户重新输入信息;
所述步骤Y2包括:所述主设备根据帐户智能合约地址、提供事务处理消耗数的地址、总事务处理消耗数、恢复帐户事务的数据域生成待签名信息,使用新的用户私钥对所述恢复帐户事务的数据域进行签名得到第一中间签名值,将所述第一中间签名值拼接在所述待签名信息之后得到第一拼接结果,使用所述提供事务处理消耗数的地址所对应的私钥对所述第一拼接结果进行签名得到第二签名结果,将所述第二签名结果和所述第一拼接结果生成恢复帐户事务,将包含主设备ID和恢复帐户事务的指令发送至所述服务器。
4.如权利要求1所述的方法,其特征在于,所述步骤Y5包括:
步骤Y501:所述区块链节点提取恢复帐户事务中的帐户智能合约地址和恢复帐户函数名称,根据所述帐户智能合约地址查找对应的帐户智能合约,根据所述恢复帐户函数名称判断找到的帐户智能合约中是否存在恢复帐户函数,是则根据所述恢复帐户事务调用所述恢复帐户函数,执行步骤Y503,否则报错,结束,所述帐户智能合约设置在所述区块链节点上;
步骤Y502:所述帐户智能合约检测到恢复帐户函数被所述区块链节点调用时,从所述恢复帐户函数中获取恢复帐户事务;
步骤Y503:所述帐户智能合约对所述恢复帐户事务进行解析得到帐户智能合约地址、第二签名结果、第一中间签名值、提供事务处理消耗数的地址、总事务处理消耗数、恢复帐户事务的数据域,对恢复帐户事务的数据域进行解析得到验证设备ID、验证设备ID对应的第一签名结果、新的用户公钥、验证设备总数和验证设备签名数量;
步骤Y504:所述帐户智能合约通过所述提供事务处理消耗数的地址生成对应的公钥,使用所述公钥对所述第二签名结果进行验证,如验证成功则执行步骤Y508,如验证失败则执行步骤Y505;
步骤Y505:所述帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的所述总事务处理消耗数是否充足,是则执行步骤Y507,否则执行步骤Y506;
步骤Y506:所述帐户智能合约将解析得到的所述总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y507:所述帐户智能合约用验证操作的实际事务处理消耗数更新解析得到的所述总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y508:所述帐户智能合约根据验证操作的实际事务处理消耗数判断解析得到的所述总事务处理消耗数是否充足,是则执行步骤Y509,否则执行步骤Y506;
步骤Y509:所述帐户智能合约用验证操作的实际事务处理消耗数更新解析得到的所述总事务处理消耗数并作为当前总事务处理消耗数,使用解析得到的新的用户公钥对所述第一中间签名值进行验证,如验证成功则执行步骤Y513,如验证失败则执行步骤Y510;
步骤Y510:所述帐户智能合约根据验证操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤Y512,否则执行步骤Y511;
步骤Y511:所述帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给区块链节点返回恢复帐户事务和事务日志,执行步骤Y6;
步骤Y512:所述帐户智能合约用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y513:所述帐户智能合约根据验证操作实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤Y514,否则执行步骤Y511;
步骤Y514:所述帐户智能合约用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据所有验证设备ID、验证设备ID对应的第一签名结果、所述新的用户公钥、所述智能合约地址、所述验证设备总数、所述验证设备签名数量和当前总事务处理消耗数生成验证设备验证请求,根据保存的验证设备智能合约地址向对应的验证设备智能合约发送所述验证设备验证请求;
步骤Y515:所述验证设备智能合约解析接收到的所述验证设备验证请求得到验证设备ID、验证设备ID对应的第一签名结果、新的用户公钥、智能合约地址、验证设备总数、验证设备签名数量和总事务处理消耗数;
步骤Y516:所述验证设备智能合约判断所述验证设备签名数量是否大于所述验证设备总数的一半,是则执行步骤Y518,否则给所述帐户智能合约返回失败响应,执行步骤Y517;
步骤Y517:所述帐户智能合约接收所述验证设备智能合约返回的失败响应,将所有操作的实际事务处理消耗数和事务执行失败写入到恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y518:所述验证设备智能合约依次根据每个验证设备ID提取保存的对应验证设备公钥,使用所述验证设备公钥对解析得到的验证设备ID对应的第一签名结果进行验证,如验证成功则执行步骤Y524,如验证失败则执行步骤Y519;
步骤Y519:所述验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤Y522,否则执行步骤Y520;
步骤Y520:所述验证设备智能合约给所述帐户智能合约返回包含消耗数不足和验证失败的响应;
步骤Y521:所述帐户智能合约接收所述验证设备智能合约返回的包含消耗数不足和验证失败的响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y522:所述验证设备智能合约给所述帐户智能合约返回验证失败响应,执行步骤Y523;
步骤Y523:所述帐户智能合约接收所述验证设备智能合约返回的验证失败响应,用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行失败写入到所述恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y524:所述验证设备智能合约根据验证操作的实际事务处理消耗数判断解析得到的总事务处理消耗数是否充足,是则执行步骤Y527,否则执行步骤Y525;
步骤Y525:所述验证设备智能合约给所述帐户智能合约返回包含消耗数不足和验证成功的响应;
步骤Y526:所述帐户智能合约接收所述验证设备返回的包含消耗数不足和验证成功的响应,将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到所述恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y527:所述验证设备智能合约给所述帐户智能合约返回验证成功响应;
步骤Y528:所述帐户智能合约接收所述验证设备返回的验证成功响应,用验证操作的实际事务处理消耗数更新当前总事务处理消耗数,根据替换公钥操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤Y530,否则执行步骤Y529;
步骤Y529:所述帐户智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入到所述恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6;
步骤Y530:所述帐户智能合约用所述新的用户公钥替换内部保存的用户公钥,用所述替换公钥操作的实际事务处理消耗数更新当前总事务处理消耗数,将所有操作的实际事务处理消耗数和事务执行成功写入所述恢复帐户事务的事务日志中,给所述区块链节点返回所述恢复帐户事务和所述事务日志,执行步骤Y6。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
步骤Q1:当所述主设备接收到用户选择的创建帐户操作信息时,显示创建帐户页面,提示用户进行操作,当接收到操作信息时判断操作信息的类型,如为生成新帐户信息时则生成用户密钥对,执行步骤Q2,如为导入私钥信息时则导入用户私钥,并根据所述用户私钥生成对应的用户公钥,执行步骤Q2,所述用户密钥对包括用户私钥和用户公钥;
步骤Q2:所述主设备根据主设备ID、所述用户公钥和用户输入的提供事务处理消耗数的地址生成创建帐户智能合约事务,使用所述提供事务处理消耗数的地址对应的私钥对所述创建帐户智能合约事务进行签名得到创建帐户签名结果,将所述创建帐户签名结果写入到所述创建帐户智能合约事务的签名数据位置,将包含所述主设备ID和所述创建帐户智能合约事务的指令发送至所述服务器;
步骤Q3:所述服务器对接收到的包含所述创建帐户智能合约事务的指令进行解析,从解析结果中提取主设备ID并缓存,将解析结果中的创建帐户智能合约事务发送至所述事务暂存池,并接收所述事务暂存池返回的信息;
步骤Q4:所述区块链节点从所述事务暂存池中提取事务,当判断提取的事务为创建帐户智能合约事务时,执行步骤Q5;
步骤Q5:所述区块链节点对所述创建帐户智能合约事务中的创建帐户签名结果进行验证,如验证成功则创建帐户智能合约,并将所述创建帐户智能合约事务中的用户公钥写入到创建的帐户智能合约中,从创建的帐户智能合约中获取帐户智能合约地址,将所述帐户智能合约地址和事务执行成功写入到创建帐户智能合约事务的事务日志中,执行步骤Q6,如验证失败则将事务执行失败写入到创建帐户智能合约事务的事务日志中,执行步骤Q6;
步骤Q6:当所述区块链节点轮询成为提议节点时将所述创建帐户智能合约事务和所述事务日志上传到区块链;
步骤Q7:所述服务器实时获取所述区块链上的数据,并从获取的数据中提取创建帐户智能合约事务和事务日志,如事务日志中包含事务执行成功则将所述创建帐户智能合约事务中的帐户智能合约地址与缓存的所述主设备ID对应保存,将所述帐户智能合约地址返回给所述主设备进行保存,并通知所述主设备保存所述用户私钥和所述用户公钥,如事务日志中包含事务执行失败则通知所述主设备删除所述用户私钥和所述用户公钥。
6.如权利要求5所述的方法,其特征在于,所述步骤Q1包括:
步骤Q1-0:所述主设备显示创建帐户页面,提示用户进行操作,当接收到操作信息时判断操作信息的类型,如为生成新帐户信息时则执行步骤Q1-1,如为导入私钥信息时则执行步骤Q1-9;
步骤Q1-1:所述主设备显示生成新帐户界面,提示用户进行选择,当接收到用户的选择信息时判断选择信息的类型,如为软件生成私钥信息则执行步骤Q1-2,如为硬件设备生成私钥信息则执行步骤Q1-4;
步骤Q1-2:所述主设备提示用户设置事务密码,并保存设置好的事务密码;
步骤Q1-3:所述主设备根据第一预设算法生成用户私钥,并使用保存的事务密码对所述用户私钥进行加密并保存得到的用户私钥密文,根据所述用户私钥计算对应的用户公钥,将所述用户公钥显示给用户,当接收到用户触发的继续操作信息时执行步骤Q2;
步骤Q1-4:所述主设备连接硬件设备,并向已连接的所述硬件设备发送设置事务密码指令;
步骤Q1-5:所述硬件设备接收到所述设置事务密码指令后提示用户在所述硬件设备上设置事务密码,当接收到用户设置的事务密码时保存所述事务密码,并向所述主设备返回密码设置完成响应;
步骤Q1-6:所述主设备接收密码设置完成响应,向所述硬件设备发送生成私钥指令;
步骤Q1-7:所述硬件设备接收生成私钥指令,使用第一预设算法生成用户私钥;
步骤Q1-8:所述硬件设备将所述用户私钥存储在安全存储区中,根据所述用户私钥计算对应的用户公钥,将所述用户公钥显示给用户,并将所述用户公钥返回给所述主设备,执行步骤Q2;
步骤Q1-9:所述主设备显示导入私钥页面,提示用户进行选择并判断接收到的用户选择的类型,如为导入助记词时则执行步骤Q1-10,如为连接硬件设备则执行步骤Q1-12;
步骤Q1-10:所述主设备提示用户设置事务密码,并保存设置好的事务密码,提示用户输入助记词;
步骤Q1-11:所述主设备根据用户输入的助记词计算用户私钥,使用保存的事务密码对所述用户私钥进行加密并保存用户私钥密文,根据所述用户私钥计算对应的用户公钥,将所述用户公钥显示给用户,当接收到用户触发的继续操作信息时执行步骤Q2;
步骤Q1-12:所述主设备连接硬件设备,并向已连接的硬件设备发送获取公钥指令;
步骤Q1-13:所述硬件设备接收到获取公钥指令后根据其内部保存的用户私钥计算对应的用户公钥,将所述用户公钥返回给所述主设备,执行步骤Q2;
所述步骤Q2包括:所述主设备提示并接收用户输入的事务处理消耗数地址、总事务处理消耗数,根据主设备ID、用户公钥、预设的创建帐户智能合约的智能合约地址、创建帐户函数名称、所述事务处理消耗数地址、所述总事务处理消耗数生成创建帐户智能合约事务,使用所述事务处理消耗数地址所对应的私钥对所述创建帐户智能合约事务进行签名得到创建帐户签名结果,将所述创建帐户签名结果写入所述创建帐户智能合约事务的签名数据位置,将包含所述创建帐户智能合约事务和所述主设备ID的指令发送至所述服务器。
7.如权利要求5所述的方法,其特征在于,所述步骤Q5包括:
步骤Q5-1:所述区块链节点从创建帐户智能合约事务中提取创建帐户智能合约的智能合约地址和创建帐户函数名称,根据所述创建帐户智能合约的智能合约地址查找对应的创建帐户智能合约的智能合约,根据所述创建帐户函数名称判断找到的智能合约中是否存在对应的创建帐户函数,是则根据所述创建帐户智能合约事务调用所述创建帐户函数,执行步骤Q5-2,否则报错,结束;
步骤Q5-2:所述创建帐户智能合约的智能合约检测到创建帐户函数被调用时,从所述创建帐户函数中获取创建帐户智能合约事务;
步骤Q5-3:所述创建帐户智能合约的智能合约对获取的所述创建帐户智能合约事务进行解析得到主设备ID、用户公钥、事务处理消耗数地址、总事务处理消耗数、创建帐户签名结果;
步骤Q5-4:所述创建帐户智能合约的智能合约根据所述提供事务处理消耗数的地址计算对应的公钥,使用所述公钥对所述创建帐户签名结果进行验证,如验证成功则执行步骤Q5-8,如验证失败则执行步骤Q5-5;
步骤Q5-5:所述创建帐户智能合约的智能合约根据验证操作的实际事务处理消耗数判断所述总事务处理消耗数是否充足,是则执行步骤Q5-6,否则执行步骤Q5-7;
步骤Q5-6:所述创建帐户智能合约的智能合约用验证操作的实际事务处理消耗数更新所述总事务处理消耗数,将验证操作的实际事务处理消耗数和事务执行失败写入所述创建帐户智能合约事务的事务日志中,给所述区块链节点返回所述创建帐户智能合约事务和所述事务日志,执行步骤Q6;
步骤Q5-7:所述创建帐户智能合约的智能合约将所述总事务处理消耗数清零,将消耗数不足和事务执行失败写入所述创建帐户智能合约事务的事务日志中,给所述区块链节点返回所述创建帐户智能合约事务和所述事务日志,执行步骤Q6;
步骤Q5-8:所述创建帐户智能合约的智能合约根据验证操作的实际事务处理消耗数判断所述总事务处理消耗数是否充足,是则执行步骤Q5-9,否则执行步骤Q5-7;
步骤Q5-9:所述创建帐户智能合约的智能合约用验证操作的实际事务处理消耗数更新所述总事务处理消耗数并作为当前总事务处理消耗数,根据所述创建帐户操作的实际事务处理消耗数和写入操作的实际事务处理消耗数判断当前总事务处理消耗数是否充足,是则执行步骤Q5-11,否则执行步骤Q5-10;
步骤Q5-10:所述创建帐户智能合约的智能合约将当前总事务处理消耗数清零,将消耗数不足和事务执行失败写入所述创建帐户智能合约事务的事务日志中,给所述区块链节点返回所述创建帐户智能合约事务和所述事务日志,执行步骤Q6;
步骤Q5-11:所述创建帐户智能合约的智能合约创建帐户智能合约,将所述用户公钥写入到所述帐户智能合约中,用创建帐户操作的实际事务处理消耗数和写入操作的实际事务处理消耗数更新当前总事务处理消耗数,从创建的所述帐户智能合约中获取帐户智能合约地址,将所述帐户智能合约地址、所有操作的实际事务处理消耗数和事务执行成功写入所述创建帐户智能合约事务的事务日志中,将所述创建帐户智能合约事务和所述事务日志返回给所述区块链节点,执行步骤Q6。
8.一种通过智能合约管理帐户控制权限的实现系统,其特征在于,包括:主设备、服务器、验证设备和区块链节点,用于实现如权利要求1至7中任一项所述的通过智能合约管理帐户控制权限的实现方法。
9.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至7任一项所述的通过智能合约管理帐户控制权限的实现方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至7任一项所述的通过智能合约管理帐户控制权限的实现方法。
11.一种芯片,其特征在于,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-7任一项所述的通过智能合约管理帐户控制权限的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517991.XA CN116346500B (zh) | 2023-05-10 | 2023-05-10 | 一种通过智能合约管理帐户控制权限的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310517991.XA CN116346500B (zh) | 2023-05-10 | 2023-05-10 | 一种通过智能合约管理帐户控制权限的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116346500A CN116346500A (zh) | 2023-06-27 |
CN116346500B true CN116346500B (zh) | 2023-08-08 |
Family
ID=86886016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310517991.XA Active CN116346500B (zh) | 2023-05-10 | 2023-05-10 | 一种通过智能合约管理帐户控制权限的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346500B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334525A (zh) * | 2019-05-23 | 2019-10-15 | 积惠多(北京)科技有限公司 | 一种基于区块链多层联盟式账户管理系统及方法 |
CN111369242A (zh) * | 2020-03-06 | 2020-07-03 | 上海佩俪信息科技有限公司 | 通过智能合约恢复区块链资产的方法、钱包及区块链节点 |
CN111369246A (zh) * | 2020-03-02 | 2020-07-03 | 万翼科技有限公司 | 智能合约的调用鉴权方法、装置、电子设备及存储介质 |
CN111523887A (zh) * | 2020-04-15 | 2020-08-11 | 杭州溪塔科技有限公司 | 智能合约只读方法的权限控制方法、装置及电子设备 |
CN111988338A (zh) * | 2020-09-07 | 2020-11-24 | 华侨大学 | 基于区块链的权限可控的物联网云平台及数据交互方法 |
WO2020256998A1 (en) * | 2019-06-15 | 2020-12-24 | Facebook, Inc. | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network |
-
2023
- 2023-05-10 CN CN202310517991.XA patent/CN116346500B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110334525A (zh) * | 2019-05-23 | 2019-10-15 | 积惠多(北京)科技有限公司 | 一种基于区块链多层联盟式账户管理系统及方法 |
WO2020256998A1 (en) * | 2019-06-15 | 2020-12-24 | Facebook, Inc. | Scalable, secure, efficient, and adaptable distributed digital ledger transaction network |
CN111369246A (zh) * | 2020-03-02 | 2020-07-03 | 万翼科技有限公司 | 智能合约的调用鉴权方法、装置、电子设备及存储介质 |
CN111369242A (zh) * | 2020-03-06 | 2020-07-03 | 上海佩俪信息科技有限公司 | 通过智能合约恢复区块链资产的方法、钱包及区块链节点 |
CN111523887A (zh) * | 2020-04-15 | 2020-08-11 | 杭州溪塔科技有限公司 | 智能合约只读方法的权限控制方法、装置及电子设备 |
CN111988338A (zh) * | 2020-09-07 | 2020-11-24 | 华侨大学 | 基于区块链的权限可控的物联网云平台及数据交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116346500A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111369242B (zh) | 通过智能合约恢复区块链资产的方法、钱包及区块链节点 | |
CN106997557B (zh) | 订单信息采集方法及装置 | |
WO2014194853A1 (zh) | 数据处理方法、系统、终端及服务器 | |
JP5952304B2 (ja) | インスタントメッセージング情報を伝送してフィルタにかけるためのシステムおよび方法 | |
CN113301203B (zh) | 基于通讯录对历史信息数据进行更新的方法及装置 | |
CN105162697A (zh) | 一种微博系统及其数据控制方法 | |
US20200364356A1 (en) | Blockchain authorization | |
CN110855833A (zh) | 终端找回方法、装置、终端及存储介质 | |
CN106682916A (zh) | 退货服务信息的生成方法 | |
CN108965991B (zh) | 节目订购状态的验证方法及系统、终端设备、存储介质 | |
CN112800066B (zh) | 索引管理的方法、相关设备及存储介质 | |
CN109583980A (zh) | 订单处理的方法、系统、电子设备和存储介质 | |
CN101422025A (zh) | 用于增强语音呼叫、比如利用数据服务来增强语音呼叫的方法和系统 | |
CN116346500B (zh) | 一种通过智能合约管理帐户控制权限的实现方法及系统 | |
JP3494971B2 (ja) | 電子取引システム、販売サーバ、決済サーバ、販売方法、決済方法、ならびに、情報記録媒体 | |
CN111930753B (zh) | 一种数据找回方法、装置、电子设备及存储介质 | |
CN109120411B (zh) | 一种资产证券化基础资产数据收集方法及装置 | |
CN107040904B (zh) | 控制短信息的菜单项显示撤回的方法和装置 | |
CN113986915A (zh) | 一种数据存证方法及装置 | |
CN103731798A (zh) | 一种电信业务订购的方法和系统 | |
CN114398376A (zh) | 一种数据处理方法、设备及可读存储介质 | |
CN111291336B (zh) | 游戏平台中游戏的注册方法、装置 | |
KR20020070274A (ko) | 메세지 대기 시스템 및 방법 | |
JP2021117957A (ja) | ポイント交換方法、ポイント交換システム及びプログラム | |
CN111488345A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |