CN109347643B - 一种基于以太坊的用户中心系统安全的监管方法及装置 - Google Patents
一种基于以太坊的用户中心系统安全的监管方法及装置 Download PDFInfo
- Publication number
- CN109347643B CN109347643B CN201811388162.1A CN201811388162A CN109347643B CN 109347643 B CN109347643 B CN 109347643B CN 201811388162 A CN201811388162 A CN 201811388162A CN 109347643 B CN109347643 B CN 109347643B
- Authority
- CN
- China
- Prior art keywords
- information
- node
- ethernet
- nodes
- current
- 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
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/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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/3236—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 using cryptographic hash functions
Abstract
本申请提供了一种基于以太坊的用户中心系统安全的监管方法及装置,其中,所述方法包括:发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;获取所述发布者的信息,并生成发布者签名;加密所述合约代码,获得加密信息;根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点;广播当前以太坊节点所更新的信息,并同步更新的信息至以太坊的其余区块节点;根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态;根据所述激活状态,确定所述合约账户的执行动作。本申请提供的监管方法及装置能够有效解决现有用户中心系统的数据信息易被篡改,且易被攻击的问题。
Description
技术领域
本申请涉及用户中心系统安全监管技术领域,尤其涉及一种基于以太坊的用户中心系统安全的监管方法及装置。
背景技术
互联网应用通常会把授权和用户信息的逻辑放到一个服务中,而这个服务我们统一为用户中心。其主要功能有:用户登录与注册;基本信息查询与修改;权限控制。用户中心不关心具体的业务逻辑,只处理用户信息相关的管理及授权登录。当应用需要登录的时候,会把用户的登录请求转发到用户中心处理,处理完毕后,返回给应用,应用根据对应的凭证登录到系统内部。可见用户中心的安全是整个系统的健康运行的保障。
互联网依赖TCP/IP协议,所有数据都是0或1。这种无差别的传输虽然创造了信息广泛传播的高速通道,但会引发一些严重的安全问题,如DDOS攻击(分布式拒绝服务),这种攻击利用受控的机器向一台机器发起攻击,由于来时迅猛,因此令人难以防备,也正是如此,这种攻击就具有很强的破坏性,对于用户中心是致命的。通常的解决方案是使用多台服务器,当用户拥有更多容量和足够资源时,比较适用该种方案,因为,黑客在攻击的过程中能量也在逐渐耗损,面对足够的资源和容量,攻击方也往往无法进行集中且持续地攻击。但是,该种方案会浪费大量的资金,而且在实际应用中,存在过多的设备处于空闲状态。
发明内容
本申请提供了一种基于以太坊的用户中心系统安全的监管方法及装置,以解决现有用户中心系统的数据信息易被篡改,且易被攻击的问题。
本申请第一方面提供了一种基于以太坊的用户中心系统安全的监管方法,所述方法包括:
发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;
获取所述发布者的信息,并生成发布者签名;
加密所述合约代码,获得加密信息;
根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点;
广播所述当前以太坊节点所更新的信息,并同步所述更新的信息至以太坊的其余区块节点;
根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态;
根据所述激活状态,确定所述合约账户的执行动作。
结合第一方面,在第一方面的第一种可实现方式中,所述获取所述发布者的信息,并生成发布者签名的具体步骤为:
提取所述信息中的全部有效数据;
计算所述有效数据的哈希值;
所述当前以太坊节点随机生成私钥;
根据所述私钥,对所述有效数据的哈希值签名。
结合第一方面,在第一方面的第二种可实现方式中,所述加密所述合约代码,获得加密信息的具体步骤为:
根据所述私钥和椭圆曲线非对称加密算法,生成对应的公钥;
计算所述合约代码的哈希值;
根据所述公钥,加密所述合约代码的哈希值,获得加密信息。
结合第一方面,在第一方面的第三种可实现方式中,所述根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点的具体步骤为:
确定所述发布者签名和所述加密信息为Merkle Tree的叶子节点;
根据哈希变换,计算相邻两组所述叶子节点的父节点的哈希值;
依次根据哈希变换计算各相邻两组父节点的下一父节点哈希值,直至得到有且仅有由两个父节点得到的哈希值,并确定所述哈希值为当前以太坊节点的Merkle Tree根哈希值;
获取前一以太坊节点的哈希值,并根据所述前一以太坊节点的哈希值与所述当前以太坊节点的Merkle Tree根哈希值,计算当前以太坊节点的头哈希值。
结合第一方面,在第一方面的第四种可实现方式中,所述方法还包括:
与所述当前以太坊节点任一相邻的获信以太坊节点接收所述当前以太坊节点广播的信息,所述信息至少包括:所述发布者签名和所述加密信息;
根据所述信息的Merkle Tree存储结构,检测所获信息的有效性。
结合第一方面,在第一方面的第五种可实现方式中,所述方法还包括:
根据所述公钥,验证所述所获信息中所述发布者签名;
如果验证通过,对比所述所获信息与所述信息的Merkle Tree根哈希值是否一致;
如果一致,则所述所获信息有效;
如果不一致,则按照从上至下的顺序,遍历所述所获信息与所述信息的MerkleTree的节点哈希值,确定不一致的节点哈希值所对应的节点为问题节点。
结合第一方面,在第一方面的第六种可实现方式中,所述方法包括:
确定与所述当前以太坊节点相邻的全部以太坊节点为获信以太坊节点;
根据预设协议,所述当前以太坊节点广播所述信息至全部所述获信以太坊节点;
所述获信以太坊节点判断所获信息是否有效;
如果有效,则确定各所述获信以太坊节点的全部下一相邻获信以太坊节点;
根据所述预设协议,各所述获信以太坊节点广播所述所获信息至全部所述下一相邻获信以太坊节点;
依照上述广播模式,直至广播覆盖全部以太坊网络。
结合第一方面,在第一方面的第七种可实现方式中,所述根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态的具体步骤为:
如果所述交易费用信息为缴费,则确定所述合约代码的激活状态为激活;
如果所述交易费用信息为未缴费或者缴费不足,则确定所述合约代码的激活状态为不激活。
结合第一方面,在第一方面的第八种可实现方式中,所述根据所述激活状态,确定所述合约账户的执行动作的具体步骤为:
如果所述激活状态为激活,则所述合约账户根据所述指令执行相应的操作;
如果所述激活状态为不激活,则所述合约账户不做任何相应的操作。
本申请第二方面提供了一种基于以太坊的用户中心系统安全的监管装置,所述装置包括:
发布单元,用于发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;
签名生成单元,用于获取所述发布者的信息,并生成发布者签名;
加密单元,用于加密所述合约代码,获得加密信息;
数据存储单元,用于根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点;
信息广播单元,用于广播所述当前以太坊节点所更新的信息,并同步所述更新的信息至以太坊的其余区块节点;
合约代码状态确定单元,用于根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态;
执行单元,用于根据所述激活状态,确定所述合约账户的执行动作。
由以上技术可知,本申请提供了一种基于以太坊的用户中心系统安全的监管方法及装置,其中,所述方法包括:发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;获取所述发布者的信息,并生成发布者签名;加密所述合约代码,获得加密信息;根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点;广播所述当前以太坊节点所更新的信息,并同步所述更新的信息至以太坊的其余区块节点;根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态;根据所述激活状态,确定所述合约账户的执行动作。使用时,发布者或者管理员编写智能合约代码,并通过所在服务器,利用自己的外部账户控制合约账户将合约代码发布至当前以太坊节点中。当前服务器作为当前以太坊节点,获取发布者的信息,至少包括:身份信息,为了保证发布者身份的可靠性,对发布者的信息进行签名。同时,为了保证信息的安全性,对发布至以太坊节点中的合约代码加密,获得加密信息。为了以太坊节点内数据的防篡改性,采用Merkle Tree数据存储结构,存储发布者签名及加密信息等相关数据,如果数据被篡改,将导致Merkle Tree的相关推算不一致,因此,能够保证存储信息的有效性。广播当前以太坊节点更新的信息至整体以太坊网络,令其余区块节点数据同步。为了防止DDOS等攻击,采用外部账户通过发布指令,同时支付相应费用的方法,激活合约代码,令合约账户执行操作,例如:用户中心系统的登陆、注册和权限控制等。攻击者由于缺乏或者不愿支付费用而无法进行大规模攻击式访问,进而保护用户中心系统的通讯顺畅。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于以太坊的用户中心系统安全的监管方法的流程图;
图2为本申请实施例提供的一种生成发布者签名的方法的流程图;
图3为本申请实施例提供的一种加密合约代码的方法的流程图;
图4为本申请实施例提供的一种利用Merkle Tree存储数据的方法的流程图;
图5为本申请实施例提供的一种以太坊节点间广播信息的方法的流程图;
图6为本申请实施例提供的一种确定问题节点的方法的流程图;
图7为本申请实施例提供的一种以太坊节点间广播信息的具体方法的流程图;
图8为本申请实施例提供的一种确定合约代码激活状态的方法的流程图;
图9为本申请实施例提供的一种确定合约账户的执行动作的方法的流程图;
图10为本申请提供的一种基于以太坊的用户中心系统安全的监管装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本申请实施例提供的一种基于以太坊的用户中心系统安全的监管方法的流程图,所述方法包括:
步骤101、发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;
步骤102、获取所述发布者的信息,并生成发布者签名;
步骤103、加密所述合约代码,获得加密信息;
步骤104、根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点;
步骤105、广播所述当前以太坊节点所更新的信息,并同步所述更新的信息至以太坊的其余区块节点;
步骤106、根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态;
步骤107、根据所述激活状态,确定所述合约账户的执行动作。
使用时,发布者或者管理员编写智能合约代码,并通过所在服务器,利用自己的外部账户控制合约账户将合约代码发布至当前以太坊节点中。当前服务器作为当前以太坊节点,获取发布者的信息,至少包括:身份信息,同时还可以包括发布时间、当前服务器IP等有效数据。
为了保证发布者身份的可靠性,对发布者的信息进行签名。在以太坊网络中每一次交易的发布与广播都需要进行签名,例如,在转账交易的过程中,外部账户需要在交易中提交其公钥和签名,以太坊网络中的所有节点都可以通过所提交的公钥和签名进行验证,并确认该外部账户的身份是否有效,即确认转账者在该时刻对所进行的交易拥有所有权。
为了保证信息的安全性,对发布至以太坊节点中的合约代码加密,获得加密信息。常见的加密算法可以分为两类,对称加密算法和非对称加密算法,其中对称加密算法包括:DES(Data Encryption Standard,数据加密标准)、3DES(Triple DES,三重数据加密算法)、AES(Advanced Encryption Standard,高级加密标准)、IDEA(International DataEncryption Algorithm,国际数据加密算法)等;非对称加密算法包括:RSA(RASAlgorithm)、EIGamal、椭圆曲线系列算法、DH(Diffie-Hellman,秘钥交换算法)等算法。
以太坊网络中各节点通过采用一致的共识算法能够保存和验证用户信息,如果某一个或者少部分节点数据被篡改,并不会影响信息的有效性,因为众多节点仍然保留用户的正确性,但是,我们需要快速且准确的定位数据被篡改的以太坊节点,以及被篡改的数据。为了以太坊节点内数据的防篡改性,采用Merkle Tree数据存储结构,存储发布者签名及加密信息等相关数据,如果数据被篡改,将导致Merkle Tree的相关推算不一致,因此,能够保证存储信息的有效性。本申请实施例所采用的Merkle Tree可以为二叉树,也可以为多叉树,具体分支数量由当前服务器的交易数量或发布信息包数决定。Merkle Tree由根和各节点组成,Merkle Tree的叶子节点的值是数据集合的单元数据或者单元数据的哈希值,在本申请实施例中,为了避免数据篡改,Merkle Tree的各叶子节点采用数据哈希值。而Merkle Tree的非叶子节点的值,是通过所有叶子节点的值计算出的哈希值,而MerkleTree的根值即为全部节点逐级计算所得。可见,Merkle Tree的建立为每一节点的哈希值均由前一个层级计算所得,因此,Merkle Tree中只要任一节点的数据被篡改,都会影响整个Merkle Tree的哈希值,尤其是Merkle Tree的根值,也因此,利用此种分布式存储方式存储数据,能够防止数据被篡改,同时严防数据被恶意篡改后,企图调整其余数据令数据完整无误的问题,保证数据的有效性,同时保证一旦数据被篡改,即可快速确定问题点。
为了防止DDOS等攻击,采用外部账户通过发布指令,同时支付相应费用的方法,激活合约代码,令合约账户执行操作,例如:用户中心系统的登陆、注册和权限控制等。攻击者由于缺乏或者不愿支付费用而无法进行大规模攻击式访问,进而保护用户中心系统的通讯顺畅。
本申请所提供的一种基于以太坊的用户中心系统的安全监管方法,能够基于以太坊,并利用以太坊节点内数据签名、加密、分布式存储的特点,快速确定所存储信息的有效性,迅速确定数据被篡改的节点,进而保证其余区块节点能够获取并利用有效、安全的信息;同时,依靠激活交易需要外部账户下达指令并支付费用的方法,有效控制攻击者的恶性攻击。
请参阅图2,为本申请实施例提供的一种生成发布者签名的方法的流程图。在本申请实施例中,所述获取所述发布者的信息,并生成发布者签名的具体步骤为:
步骤201、提取所述信息中的全部有效数据;
步骤202、计算所述有效数据的哈希值;
步骤203、所述当前以太坊节点随机生成私钥;
步骤204、根据所述私钥,对所述有效数据的哈希值签名。
当前机器的数据中不仅包含发布者信息、所发布的信息、发布时间等有效数据,还会包含缓存数据、中间数据等无效数据。根据哈希变换的本质可知,变换一条数据需要耗费较长的时间,因此,为了提高后续数据处理的效率,本实施例提出,在变换之间,首先将当前机器的数据中的无效数据剔除,仅提取全部有效数据留待变换。
对全部有效数据进行哈希变换,得到哈希值。哈希(Hash)变换的本质就是将一段非常长的数据变换为一个固定长度较短的数据,由于变换过程固定,因此,即使改动原数据中非常小的一部分,经过哈希变换后得到的哈希值就会改变,由此可以快速辨识原数据是否被篡改过,进而验证所获信息的准确性和有效性。在本申请实施例中可采用MD5算法(MD5Message-Digest Algorithm,MD5消息摘要算法)进行哈希变换。
使用随机数发生器生成一个私钥,一般来讲这是一个256bits的数。为了保证数据的有效性及可验证性,需要利用私钥对当前数据哈希值签名,例如:利用私钥对支付时的交易签名。由于公钥与私钥之间的数学不可逆关系,使得私钥生成的签名,可以在不泄露私钥的同时对公钥进行验证。
请参阅图3,为本申请实施例提供的一种加密合约代码的方法的流程图。在本申请实施例中,所述加密所述合约代码,获得加密信息的具体步骤为:
步骤301、根据所述私钥和椭圆曲线非对称加密算法,生成对应的公钥;
步骤302、计算所述合约代码的哈希值;
步骤303、根据所述公钥,加密所述合约代码的哈希值,获得加密信息。
本申请实施例优选ECC椭圆曲线非对称加密算法对当前数据哈希值进行加密,非对称加密算法拥有公钥和私钥,加密方可以将公钥发送给其他相关方,私钥则由自己严格保管。例如,银行颁发给用户个人的私钥就存储在个人的U盾里;非对称加密中可以通过私钥加密,他人能够通过公钥进行解密,反之亦然;其优势在于没有秘钥分发问题,因此,比对称加密算法更加可靠。同样,为了保证合约代码不被篡改,需要利用哈希变换首先为需要加密的合约代码计算哈希值。
请参阅图4,为本申请实施例提供的一种利用Merkle Tree存储数据的方法的流程图。在本申请实施例中,所述根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点的具体步骤为:
步骤401、确定所述发布者签名和所述加密信息为Merkle Tree的叶子节点;
步骤402、根据哈希变换,计算相邻两组所述叶子节点的父节点的哈希值;
步骤403、依次根据哈希变换计算各相邻两组父节点的下一父节点哈希值,直至得到有且仅有由两个父节点得到的哈希值,并确定所述哈希值为当前以太坊节点的MerkleTree根哈希值;
步骤404、获取前一以太坊节点的哈希值,并根据所述前一以太坊节点的哈希值与所述当前以太坊节点的Merkle Tree根哈希值,计算当前以太坊节点的头哈希值。
将发布者签名和加密信息共同作为Merkle Tree的叶子节点,开始建立MerkleTree。同样根据哈希变换计算相邻两组之间的哈希值,生成第二层级的父节点哈希值,如果为二叉树模式,则此时的父节点哈希值即为Merkle Tree的根的哈希值;如果为多叉树模式,则需要继续根据哈希变换计算下一层级的各节点的哈希值,直至得到有且仅有由两个父节点得到的哈希值为止,此时的哈希值即为Merkle Tree的根的哈希值。正是由于MerkleTree逐级递进式的存储方式,才能够保证数据难以被篡改。
请参阅图5,为本申请实施例提供的一种以太坊节点间广播信息的方法的流程图。在本申请实施例中,所述方法还包括:
步骤501、与所述当前以太坊节点任一相邻的获信以太坊节点接收所述当前以太坊节点广播的信息,所述信息至少包括:所述发布者签名和所述加密信息;
步骤502、根据所述信息的Merkle Tree存储结构,检测所获信息的有效性。
当前以太坊节点在完成数据存储过程之后,对相邻的获信以太坊节点广播所发布的信息,各获信以太坊节点需要对所获信息中包含的签名及数据进行信息有效性及正确性的检测。当前以太坊节点在完成数据的加密及存储后,需要将所发布的信息传递给以太坊网络中的其他以太坊节点,本申请实施例采用P2P模式广播信息。P2P为一种全分布式的拓扑结构,类似网状型,各以太坊节点之间的传输过程遵守相应协议,采用广播方式。例如,在比特币的交易过程中,交易从某个节点产生,然后该节点将该交易信息广播给邻近节点,该邻近节点验证签名通过后,再由该邻近节点广播至与它们邻近的节点,如此层层传开,直至全网节点都能收到。本申请所采用的分布式网络比单服务器更能有效防止DDOS攻击。
请参阅图6,为本申请实施例提供的一种确定问题节点的方法的流程图。在本申请实施例中,所述方法还包括:
步骤601、根据所述公钥,验证所述所获信息中所述发布者签名;
步骤602、如果验证通过,对比所述所获信息与所述信息的Merkle Tree根哈希值是否一致;
步骤603、如果一致,则所述所获信息有效;
步骤604、如果不一致,则按照从上至下的顺序,遍历所述所获信息与所述信息的Merkle Tree的节点哈希值,确定不一致的节点哈希值所对应的节点为问题节点。
获信以太坊节点在接收当前以太坊节点所广播的信息之后,需要对所获信息的有效性进行检测和验证。首先,根据发布者公布的公钥,验证所获信息的标签,如果验证未通过,则说明所获信息的来源存在疑问,不属于发布者本身,此时,认定所获消息无效,获信区块节点不再继续广播所获信息;如果验证通过,则说明所获信息属于发布者本身,此时,需要对所获信息的有效性进行验证。基于Merkle Tree的存储模式,如果数据被篡改,将导致Merkle Tree的哈希推算不一致,具体地,按照Merkle Tree的从上至下的顺序,验证哈希值的一致性。如果所获信息与当前信息的Merkle Tree的根哈希值是一致的,证明所获信息与当前信息是一致的,数据没有被篡改,不需要做任何处理,并且可以继续传播;如果所获信息与当前信息的Merkle Tree的根哈希值不一致,证明所获信息的数据被篡改过,因此,仅需遍历Merkle Tree快速定位至哈希值不一致的节点,并且不再继续广播无效信息至下一区块节点。
可见,利用以太坊节点内数据的加密签名、Merkle Tree存储的特点,能够快速确定所存储信息的有效性,并迅速确定数据被篡改的节点,进而保证其余以太坊节点能够获取并利用有效、安全的信息。
请参阅图7,为本申请实施例提供的一种以太坊节点间广播信息的具体方法的流程图。在本申请实施例中,所述方法包括:
步骤701、确定与所述当前以太坊节点相邻的全部以太坊节点为获信以太坊节点;
步骤702、根据预设协议,所述当前以太坊节点广播所述信息至全部所述获信以太坊节点;
步骤703、所述获信以太坊节点判断所获信息是否有效;
步骤704、如果有效,则确定各所述获信以太坊节点的全部下一相邻获信以太坊节点;
步骤705、根据所述预设协议,各所述获信以太坊节点广播所述所获信息至全部所述下一相邻获信以太坊节点;
步骤706、依照上述广播模式,直至广播覆盖全部以太坊网络。
本申请实施例供的点对点网络式信息广播方法,能够保证信息有序传递,且保证信息能够广播至全部以太坊网络,进而保证以太坊节点之间的共识性。
请参阅图8,为本申请实施例提供的一种确定合约代码激活状态的方法的流程图。在本申请实施例中,所述根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态的具体步骤为:
步骤801、如果所述交易费用信息为缴费,则确定所述合约代码的激活状态为激活;
步骤802、如果所述交易费用信息为未缴费或者缴费不足,则确定所述合约代码的激活状态为不激活。
本申请通过外部账户同时发出指令并支付费用,有效防止DDOS攻击。因此,交易费用的产生为激活合约代码的重要条件。如果交易费用信息为缴费,则说明外部账户已经正常缴纳足够费用,可以激活合约代码;如果交易费用信息为未缴费或者缴费不足,则判定当前外部账户为恶意访问,不能够激活合约代码。
请参阅图9,为本申请实施例提供的一种确定合约账户的执行动作的方法的流程图。在本申请实施例中,所述根据所述激活状态,确定所述合约账户的执行动作的具体步骤为:
步骤901、如果所述激活状态为激活,则所述合约账户根据所述指令执行相应的操作;
步骤902、如果所述激活状态为不激活,则所述合约账户不做任何相应的操作。
为了防止不想支付费用,或者费用不足的攻击者恶意访问服务器,则规定,只有合约代码的激活状态为激活时,合约账户才会执行相应的操作,否则,合约账户不做任何相应的操作,交易不执行。
请参阅图10,为本申请提供的一种基于以太坊的用户中心系统安全的监管装置的结构图。所述装置包括:
发布单元1,用于发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;
签名生成单元2,用于获取所述发布者的信息,并生成发布者签名;
加密单元3,用于加密所述合约代码,获得加密信息;
数据存储单元4,用于根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点;
信息广播单元5,用于广播所述当前以太坊节点所更新的信息,并同步所述更新的信息至以太坊的其余区块节点;
合约代码状态确定单元6,用于根据所述外部用户的指令和交易费用信息,确定所述合约代码的激活状态;
执行单元7,用于根据所述激活状态,确定所述合约账户的执行动作。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:提取单元,用于提取所述信息中的全部有效数据;计算单元,用于计算所述有效数据的哈希值;私钥生成单元,用于所述当前以太坊节点随机生成私钥;签名单元,用于根据所述私钥,对所述有效数据的哈希值签名。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:公钥生成单元,用于根据所述私钥和椭圆曲线非对称加密算法,生成对应的公钥;计算单元,用于计算所述合约代码的哈希值;加密单元,用于根据所述公钥,加密所述合约代码的哈希值,获得加密信息。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:叶子节点确定单元,用于确定所述发布者签名和所述加密信息为MerkleTree的叶子节点;父节点计算单元,用于根据哈希变换,计算相邻两组所述叶子节点的父节点的哈希值;根节点计算单元,用于依次根据哈希变换计算各相邻两组父节点的下一父节点哈希值,直至得到有且仅有由两个父节点得到的哈希值,并确定所述哈希值为当前以太坊节点的Merkle Tree根哈希值;头哈希值计算单元,用于获取前一以太坊节点的哈希值,并根据所述前一以太坊节点的哈希值与所述当前以太坊节点的Merkle Tree根哈希值,计算当前以太坊节点的头哈希值。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:广播单元,用于与所述当前以太坊节点任一相邻的获信以太坊节点接收所述当前以太坊节点广播的信息,所述信息至少包括:所述发布者签名和所述加密信息;检测单元,用于根据所述信息的Merkle Tree存储结构,检测所获信息的有效性。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:验证单元,用于根据所述公钥,验证所述所获信息中所述发布者签名;对比单元,用于如果验证通过,对比所述所获信息与所述信息的Merkle Tree根哈希值是否一致;判断单元,用于如果一致,则所述所获信息有效;如果不一致,则按照从上至下的顺序,遍历所述所获信息与所述信息的Merkle Tree的节点哈希值,确定不一致的节点哈希值所对应的节点为问题节点。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:获信以太坊节点确定单元,用于确定与所述当前以太坊节点相邻的全部以太坊节点为获信以太坊节点;广播单元,用于根据预设协议,所述当前以太坊节点广播所述信息至全部所述获信以太坊节点;判断单元,用于所述获信以太坊节点判断所获信息是否有效;下一相邻获信以太坊节点确定单元,用于如果有效,则确定各所述获信以太坊节点的全部下一相邻获信以太坊节点;广播子单元,用于根据所述预设协议,各所述获信以太坊节点广播所述所获信息至全部所述下一相邻获信以太坊节点;依照上述广播模式,直至广播覆盖全部以太坊网络。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:状态确定单元,用于如果所述交易费用信息为缴费,则确定所述合约代码的激活状态为激活;如果所述交易费用信息为未缴费或者缴费不足,则确定所述合约代码的激活状态为不激活。
本申请提供的一种基于以太坊的用户中心系统安全的监管装置的另一实施例中,所述装置还包括:执行确定单元,用于如果所述激活状态为激活,则所述合约账户根据所述指令执行相应的操作;如果所述激活状态为不激活,则所述合约账户不做任何相应的操作。
值得注意的是,具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的用户身份的服务提供方法或用户注册方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random accessmemory,简称:RAM)等。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
本说明书中各实施例之间相同相似的部分相互参见即可。尤其,对于基于以太坊的用户中心系统的安全监管装置的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (10)
1.一种基于以太坊的用户中心系统安全的监管方法,应用于所述用户中心系统,所述用户中心系统包括多个以太坊节点,所述多个以太坊节点包括当前以太坊节点,其特征在于,所述方法包括:
所述当前以太坊节点接收发布者利用外部账户控制合约账户发布的合约代码;
所述当前以太坊节点获取所述发布者的信息,并生成发布者签名;
所述当前以太坊节点加密所述合约代码,获得加密信息;
所述当前以太坊节点根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息,其中,所述发布者签名和所述加密信息用于所述多个以太坊节点中的其余以太坊节点验证所述当前以太坊节点广播的信息;
所述当前以太坊节点广播所更新的信息,以同步所述更新的信息至所述用户中心系统中的其余区块节点,所述其余区块节点是所述多个以太坊节点中的其余以太坊节点;
所述当前以太坊节点根据接收的所述外部账户的指令和交易费用信息,确定所述合约代码的激活状态;
所述当前以太坊节点根据所述激活状态,确定所述合约账户的执行动作。
2.根据权利要求1所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述当前以太坊节点获取所述发布者的信息,并生成发布者签名的具体步骤为:
提取所述信息中的全部有效数据;
计算所述有效数据的哈希值;
所述当前以太坊节点随机生成私钥;
根据所述私钥,对所述有效数据的哈希值签名。
3.根据权利要求2所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述当前以太坊节点加密所述合约代码,获得加密信息的具体步骤为:
根据所述私钥和椭圆曲线非对称加密算法,生成对应的公钥;
计算所述合约代码的哈希值;
根据所述公钥,加密所述合约代码的哈希值,获得加密信息。
4.根据权利要求3所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述当前以太坊节点根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息的具体步骤为:
确定所述发布者签名和所述加密信息为Merkle Tree的叶子节点;
根据哈希变换,计算相邻两组所述叶子节点的父节点的哈希值;
依次根据哈希变换计算各相邻两组父节点的下一父节点哈希值,直至得到有且仅有由两个父节点得到的哈希值,并确定所述哈希值为当前以太坊节点的Merkle Tree根哈希值;
获取前一以太坊节点的哈希值,并根据所述前一以太坊节点的哈希值与所述当前以太坊节点的Merkle Tree根哈希值,计算当前以太坊节点的头哈希值。
5.根据权利要求3所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述方法还包括:
与所述当前以太坊节点任一相邻的获信以太坊节点接收所述当前以太坊节点广播的信息,所述信息至少包括:所述发布者签名和所述加密信息;
所述与所述当前以太坊节点任一相邻的获信以太坊节点根据所述信息的Merkle Tree存储结构,检测所获信息的有效性。
6.根据权利要求5所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述与所述当前以太坊节点任一相邻的获信以太坊节点还用于:
根据所述公钥,验证所述所获信息中所述发布者签名;
如果验证通过,对比所述所获信息与所述信息的Merkle Tree根哈希值是否一致;
如果一致,则所述所获信息有效;
如果不一致,则按照从上至下的顺序,遍历所述所获信息与所述信息的Merkle Tree的节点哈希值,确定不一致的节点哈希值所对应的节点为问题节点。
7.根据权利要求5所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述方法包括:广播模式,所述广播模式通过以下过程实现:
所述当前以太坊节点确定与所述当前以太坊节点相邻的全部以太坊节点为获信以太坊节点;
根据预设协议,所述当前以太坊节点广播所述信息至全部所述获信以太坊节点;
所述获信以太坊节点判断所获信息是否有效;
如果有效,则确定各所述获信以太坊节点的全部下一相邻获信以太坊节点;
根据所述预设协议,各所述获信以太坊节点广播所述所获信息至全部所述下一相邻获信以太坊节点;
所述方法还包括:
依照所述广播模式,直至广播覆盖全部以太坊网络。
8.根据权利要求1所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述当前以太坊节点根据接收的所述外部账户的指令和交易费用信息,确定所述合约代码的激活状态的具体步骤为:
如果所述交易费用信息为缴费,则确定所述合约代码的激活状态为激活;
如果所述交易费用信息为未缴费或者缴费不足,则确定所述合约代码的激活状态为不激活。
9.根据权利要求8所述的基于以太坊的用户中心系统安全的监管方法,其特征在于,所述当前以太坊节点根据所述激活状态,确定所述合约账户的执行动作的具体步骤为:
如果所述激活状态为激活,则所述合约账户根据所述指令执行相应的操作;
如果所述激活状态为不激活,则所述合约账户不做任何相应的操作。
10.一种基于以太坊的用户中心系统安全的监管装置,其特征在于,应用于所述用户中心系统,所述用户中心系统包括多个以太坊节点,所述多个以太坊节点包括当前以太坊节点,所述装置包括:
发布单元,用于发布者利用外部账户控制合约账户发布合约代码至当前以太坊节点;
签名生成单元,用于获取所述发布者的信息,并生成发布者签名;
加密单元,用于加密所述合约代码,获得加密信息;
数据存储单元,用于根据Merkle Tree数据存储结构,存储所述发布者签名和所述加密信息至所述当前以太坊节点,其中,所述发布者签名和所述加密信息用于所述多个以太坊节点中的其余以太坊节点验证所述当前以太坊节点广播的信息;
信息广播单元,用于广播所述当前以太坊节点所更新的信息,以同步所述更新的信息至所述用户中心系统中的其余区块节点,所述其余区块节点是所述多个以太坊节点中的其余以太坊节点;
合约代码状态确定单元,用于根据所述外部账户的指令和交易费用信息,确定所述合约代码的激活状态;
执行单元,用于根据所述激活状态,确定所述合约账户的执行动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811388162.1A CN109347643B (zh) | 2018-11-21 | 2018-11-21 | 一种基于以太坊的用户中心系统安全的监管方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811388162.1A CN109347643B (zh) | 2018-11-21 | 2018-11-21 | 一种基于以太坊的用户中心系统安全的监管方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347643A CN109347643A (zh) | 2019-02-15 |
CN109347643B true CN109347643B (zh) | 2022-07-19 |
Family
ID=65316813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811388162.1A Active CN109347643B (zh) | 2018-11-21 | 2018-11-21 | 一种基于以太坊的用户中心系统安全的监管方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347643B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110086780B (zh) * | 2019-03-26 | 2021-11-02 | 北京百度网讯科技有限公司 | 基于以太坊的被篡改交易的处理方法、装置及存储介质 |
CN111209334B (zh) * | 2019-12-23 | 2024-03-22 | 国网河北省电力有限公司雄安新区供电公司 | 基于区块链的电力终端数据安全管理方法 |
CN111082995A (zh) * | 2019-12-25 | 2020-04-28 | 中国科学院信息工程研究所 | 一种以太坊网络行为分析方法及相应存储介质与电子装置 |
CN111986029A (zh) * | 2020-08-28 | 2020-11-24 | 数网金融有限公司 | 一种数据处理方法、装置及电子设备 |
CN115442291A (zh) * | 2022-08-19 | 2022-12-06 | 南京理工大学 | 面向以太坊的活动网络拓扑感知方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423565A (zh) * | 2017-07-26 | 2017-12-01 | 中山大学 | 一种基于智能合约技术的医疗抢救合约方法 |
CN107666484A (zh) * | 2017-09-19 | 2018-02-06 | 上海交通大学 | 一种基于区块链的cdn共享方法及系统 |
CN108737109A (zh) * | 2018-05-11 | 2018-11-02 | 北京奇虎科技有限公司 | 数据持有证明方法、装置及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447478B2 (en) * | 2016-06-06 | 2019-10-15 | Microsoft Technology Licensing, Llc | Cryptographic applications for a blockchain system |
WO2018175666A1 (en) * | 2017-03-21 | 2018-09-27 | Dappsters, LLC | Blockchain systems and methods |
CN107342858B (zh) * | 2017-07-05 | 2019-09-10 | 武汉凤链科技有限公司 | 一种基于可信环境的智能合约保护方法和系统 |
CN108647009A (zh) * | 2018-03-22 | 2018-10-12 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | 区块链信息交互的装置、方法和存储介质 |
CN108664787A (zh) * | 2018-05-15 | 2018-10-16 | 深圳市网心科技有限公司 | 合约部署、调用方法、合约审核设备、存储介质及系统 |
-
2018
- 2018-11-21 CN CN201811388162.1A patent/CN109347643B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423565A (zh) * | 2017-07-26 | 2017-12-01 | 中山大学 | 一种基于智能合约技术的医疗抢救合约方法 |
CN107666484A (zh) * | 2017-09-19 | 2018-02-06 | 上海交通大学 | 一种基于区块链的cdn共享方法及系统 |
CN108737109A (zh) * | 2018-05-11 | 2018-11-02 | 北京奇虎科技有限公司 | 数据持有证明方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109347643A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347643B (zh) | 一种基于以太坊的用户中心系统安全的监管方法及装置 | |
CN108876332B (zh) | 一种基于生物特征标记认证的区块链安全交易方法及装置 | |
US11212081B2 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
KR101937216B1 (ko) | 블록체인을 인증서 발급기관으로 이용해서 인증서를 관리하는 장치 및 방법 | |
CN112311735B (zh) | 可信认证方法,网络设备、系统及存储介质 | |
KR20200028961A (ko) | 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템 | |
KR101937220B1 (ko) | 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법 | |
Zhong et al. | Distributed blockchain-based authentication and authorization protocol for smart grid | |
US20160080355A1 (en) | Authentication of api-based endpoints | |
CN105491062A (zh) | 一种客户端软件保护方法、装置及客户端 | |
CN110286849B (zh) | 数据存储系统的数据处理方法和装置 | |
KR102179497B1 (ko) | 멀티 클라우드 기반의 데이터 저장 및 관리 시스템 및 그 구동방법 | |
CN112364305B (zh) | 基于区块链平台的数字内容版权保护方法和装置 | |
KR20210059856A (ko) | 블록체인 원장에 대한 검증 가능한 블록체인 네트워크 시스템 및 상기 블록체인 네트워크에서의 블록체인 원장 검증 방법 | |
CN111585995B (zh) | 安全风控信息传输、处理方法、装置、计算机设备及存储介质 | |
CN114301624A (zh) | 一种应用于金融业务的基于区块链的防篡改系统 | |
CN113395406A (zh) | 一种基于电力设备指纹的加密认证方法及系统 | |
CN109635593A (zh) | 电力系统中基于电力缴费终端的数据完整性存储保护方法 | |
CN114095228A (zh) | 基于区块链和边缘计算的物联网数据安全存取方法、系统、装置及存储介质 | |
CN113869901B (zh) | 密钥生成方法、装置、计算机可读存储介质及计算机设备 | |
CN111311260A (zh) | 一种账户私钥的重置方法及装置 | |
CN113949988B (zh) | 一种位置保护方法和系统,及存储介质 | |
Chen et al. | Privacy-Preserving Anomaly Detection of Encrypted Smart Contract for Blockchain-Based Data Trading | |
CN108833449B (zh) | 基于RAS算法的Web通信加密传输方法、装置及系统 | |
CN113542251B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201230 Address after: 571924 Hainan Ecological Software Park Walker Park 8830, high tech Industrial Demonstration Zone of Laocheng Town, Chengmai County, Haikou City, Hainan Province Applicant after: Hainan fire Chain Technology Co.,Ltd. Address before: 571924 building 8830, Walker Park, Hainan Ecological Software Park, Haikou old town high tech industry demonstration zone, Hainan Province Applicant before: HAINAN XINRUAN SOFTWARE Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |