CN114641788B - 用于防止对区块链系统的拒绝服务攻击的方法和设备 - Google Patents
用于防止对区块链系统的拒绝服务攻击的方法和设备 Download PDFInfo
- Publication number
- CN114641788B CN114641788B CN202080077301.8A CN202080077301A CN114641788B CN 114641788 B CN114641788 B CN 114641788B CN 202080077301 A CN202080077301 A CN 202080077301A CN 114641788 B CN114641788 B CN 114641788B
- Authority
- CN
- China
- Prior art keywords
- block
- blockchain
- encryption key
- kth
- encrypted
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/22—Payment schemes or models
- G06Q20/223—Payment schemes or models based on the use of peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
-
- 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/12—Applying verification of the received information
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- 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
- H04L9/3239—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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- 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/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q2220/00—Business processing using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本文公开了用于防止对区块链系统的拒绝服务攻击的方法、设备和装置,包括存储在计算机可读介质上的计算机程序。所述方法之一包括:从区块链的第k区块检索解密密钥DK;基于所述解密密钥DK确定要包括在所述第k区块的后续区块中的加密交易是否有效;以及响应于确定所述要包括在所述第k区块的后续区块中的加密交易是无效的,拒绝所述加密交易。
Description
技术领域
本文一般涉及计算机技术,更具体地,涉及防止对区块链系统的拒绝服务攻击的方法和设备。
背景技术
区块链系统,也称为分布式账本系统(DLS)或共识系统,可以使参与实体安全且不可篡改地存储数据。在不参考任何特定用例的情况下,区块链系统可以包括任何DLS,并且可以用于公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用系统和参与到共识处理中。私有区块链网络针对特定实体提供,该特定实体集中控制读写权限(permission)。联盟区块链网络针对选定的实体组群提供,该实体组群控制共识处理,并且所述联盟区块链网络包括访问控制层。
区块链系统使用点对点(peer-to-peer,P2P)网络来实现,其中,节点例如在不需要固定的中央服务器的情况下彼此直接通信。P2P网络中的每个节点可以发起与P2P网络中的另一节点的通信。区块链系统维护一个或多个区块链。区块链是用于存储诸如交易之类的数据的数据结构,其可以防止恶意方篡改和操纵数据。
由于数据结构需要维护,因此区块链系统可能具有相对较低的交易速率。例如,诸如比特币和以太坊之类的公有区块链系统可能每秒仅处理大约十二笔交易。尽管联盟区块链系统可能支持更高的交易速率,但许多系统仍限于每秒数千笔交易。因此,网络流量的相对适度增长可能会导致数据拥堵,在某些情况下可能导致系统崩溃。因此,区块链系统可能易于受到拒绝服务(DoS)攻击,包括分布式拒绝服务(DDoS)攻击,这是通过利用来自许多源地址的大量欺骗性流量来压倒性攻击目标,以中断目标地址、网络或服务器的网络流量的恶意尝试。此外,区块链系统通常具有用于接收交易的多个分布式节点,这使得区块链系统更容易受到DDoS攻击。
发明内容
在一方面,一种计算机实现的用于防止对区块链系统的拒绝服务攻击的方法包括:从区块链的第k区块检索解密密钥DK;基于所述解密密钥DK确定要包括在所述第k区块的后续区块中的加密交易是否有效;以及响应于确定所述要包括在所述第k区块的后续区块中的加密交易是无效的,拒绝所述加密交易。
在另一方面,一种用于防止对区块链系统的拒绝服务攻击的设备包括:一个或多个处理器,以及耦接至所述一个或多个处理器并且其上存储有指令的一个或多个计算机可读存储器,所述指令可由所述一个或多个处理器执行以进行以下操作:从区块链的第k区块检索解密密钥DK;基于所述解密密钥DK确定要包括在所述第k区块的后续区块中的加密交易是否有效;以及响应于确定所述要包括在所述第k区块的后续区块中的加密交易是无效的,拒绝所述加密交易。
在又一方面,一种存储有指令的非暂时性计算机可读介质,所述指令在由设备的处理器执行时,促使所述设备执行用于防止对区块链系统的拒绝服务攻击的方法。所述方法包括:从区块链的第k区块检索解密密钥DK;基于所述解密密钥DK确定要包括在所述第k区块的后续区块中的加密交易是否有效;以及响应于确定所述要包括在所述第k区块的后续区块中的加密交易是无效的,拒绝所述加密交易。
附图说明
合并在本说明书中并构成其一部分的附图示出了实施例。在下面参照附图的说明中,不同附图中的相同附图标记表示相同或类似的要素,除非另有表述。
图1是根据实施例的区块链系统的示意图。
图2是根据实施例的用于实现区块链系统中节点的计算设备的示意图。
图3是描绘了根据实施例的用于防止对区块链系统的拒绝服务攻击的协议的示意图。
图4是根据实施例的用于防止对区块链系统的拒绝服务攻击的方法的流程图。
图5是根据实施例的用于防止对区块链系统的拒绝服务攻击的装置的框图。
具体实施方式
本文的实施例提供了用于防止对区块链系统的拒绝服务攻击的方法和设备。所述方法和设备可以将自动化测试集成到区块链的每个区块中,从而为区块链系统提供一种机制,用于确定交易是由合法用户生成的,还是由自动化脚本或程序生成的。所述方法和设备还可在区块链上的所有节点上实施相同的测试,从而在所有节点之间提供公平性。
本文中公开的实施例具有一个或多个技术效果。在一些实施例中,所述方法和设备将自动化测试集成到区块链的每个区块中。这允许所述方法和设备使用自动化测试来确定交易是由合法用户生成的,还是由自动化脚本或程序生成的。如果确定交易是由自动化脚本或程序生成的,则该交易可能会被丢弃。在一些实施例中,所述方法和设备可以通过从区块链的第k区块检索解密密钥并基于该解密密钥来确定要包括在第k区块的后续区块中的一个或多个加密交易是否有效来实施测试。这允许所述方法和设备响应于确定一个或多个加密交易无效而拒绝该一个或多个加密交易。在一些实施例中,所述方法和设备可以在区块链上的所有节点上实施相同的测试。这允许所述方法和设备在所有节点之间提供公平性。通过这种方式,所述方法和设备可以被用于区块链系统中,以确保每个交易提交都具有某些人为交互,从而有效地保护了区块链系统免受拒绝服务攻击。
区块链是一种数据结构,其以可防止恶意方篡改和操纵数据的方式存储诸如交易的数据。以这种方式存储的交易可以是不可篡改的,并随后被验证。区块链包括一个或多个区块。每个区块通过包含在区块链中紧邻其之前的前一区块的加密哈希值(cryptographichash)而链接到该前一区块。每个区块还包括时间戳、其自身的加密哈希值以及一个或多个交易。通常已经被区块链系统的节点验证的交易可以经哈希处理并编码到例如默克尔(Merkle)树的数据结构中。在Merkle树中,树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值可以在该分支的根处级联(concatenate)。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可通过确定其是否与树的结构一致来快速验证。
区块链系统包括管理、更新和维护一个或多个区块链的计算节点的网络。该网络可以是公有区块链网络、私有区块链网络或联盟区块链网络。例如,诸如数百、数千或甚至数百万个实体的许多实体可以在公有区块链网络中操作,并且每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可被认为是关于参与的实体的公有网络。有时,大多数实体(节点)必须对每个区块进行签名,以使该区块有效并将其添加到区块链网络的区块链中。公有区块链网络的示例包括利用分布式账本、也称为区块链的特定点对点支付网络。
通常,公有区块链网络可以支持公开交易。公开交易为公有区块链网络中的所有节点共享,且存储于全局区块链中。全局区块链是跨所有节点复制的区块链,并且所有节点相对于全局区块链处于完全状态共识。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络中实施共识协议。共识协议的示例包括工作量证明(POW)(例如,在一些加密货币网络中实施)、权益证明(POS)和授权证明(POA)。
通常,可以为特定实体提供私有区块链网络,该特定实体集中控制读写权限。该实体控制哪些节点能参与到该区块链网络中。因此,私有区块链网络通常被称为权限网络,其限制允许谁参与到网络中以及他们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者对于添加新实体投票、管理机构可以控制许可)。
通常,联盟区块链网络可以在参与实体之间是私有的。在联盟区块链网络中,共识处理由一组被授权的节点控制,一个或多个节点由相应实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并被添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并被添加到区块链中。
图1示出了根据实施例的区块链系统100的示意图。参考图1,区块链系统100可以包括被配置为在区块链120上操作的多个节点,例如,节点102-110。节点102-110可以形成网络112,例如点对点(P2P)网络。节点102-110中的每个节点可以是被配置为存储区块链120的副本的诸如计算机或计算机系统的计算设备,或者可以是在计算设备上运行的诸如进程或应用的软件。节点102-110中的每一个可以具有唯一标识。
区块链120可以包括数据区块(例如,图1中的区块B1-B5)形式的记录逐渐增加的列表。区块B1-B5中的每个区块可以包括时间戳、前一区块的加密哈希值、以及当前区块的数据,该数据可以是诸如货币交易的交易。例如,如图1所示,区块B5可以包括时间戳、区块B4的加密哈希值和区块B5的交易数据。此外,例如,可以对前一区块执行哈希运算以生成该前一区块的加密哈希值。该哈希运算可以通过例如SHA-256的哈希算法将各种长度的输入转化为固定长度的加密输出。
节点102-110可以被配置为对区块链120执行操作。例如,当节点(例如,节点102)想要将新数据存储到区块链120上时,该节点可以生成要添加到区块链120的新区块,并将新区块广播到网络112中的其他节点(例如,节点104-110)。基于新区块的合法性,例如,其签名和交易的有效性,其他节点可以确定接受新区块,使得节点102和其他节点可以将新区块添加到其各自的区块链120的副本中。随着此处理重复,可以将越来越多的数据区块添加到区块链120。
图2示出了根据实施例的用于实现区块链系统中节点(例如,节点102(图1))的计算设备200的示意图。参考图2,计算设备200可以包括通信接口202、处理器204和存储器206。
通信接口202可以便于计算设备200与用于实现网络中其他节点(例如,节点104-110(图1))的设备之间的通信。在一些实施例中,通信接口202被配置为支持一个或多个通信标准,例如互联网标准或协议、综合业务数字网(ISDN)标准等。在一些实施例中,通信接口202可包括以下中的一个或多个:局域网(LAN)卡、电缆调制解调器、卫星调制解调器、数据总线、电缆、无线通信信道、基于无线电的通信信道、蜂窝通信信道、基于互联网协议(IP)的通信设备、或用于有线和/或无线通信的其他通信设备。在一些实施例中,通信接口202可以基于公有云基础设施、私有云基础设施、公有/私有混合云基础设施。
处理器204可以包括一个或多个专用处理单元、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他各种类型的处理器或处理单元。处理器204与存储器206耦接,并且被配置为执行存储在存储器206中的指令。
存储器206可以存储处理器可执行的指令和数据,例如区块链120(图1)的副本。存储器206可以包括任意类型的易失性或非易失性存储器设备或其组合,例如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存或磁盘或光盘。当存储器206中的指令由处理器204执行时,计算设备200可以在区块链120上执行操作。
图3示出描绘了根据实施例的用于防止对区块链系统的拒绝服务攻击的协议的示意图。参考图3,区块K-1、K和K+1(K是整数)中的每个区块可以包括区块头,该区块头可以包括时间戳和先前区块的加密哈希值,类似于区块链120(图1)中的区块。区块K-1、K和K+1还可以分别包括解密密钥DK-1、DK和DK+1,以及加密密钥EK-1、EK和EK+1的表示。在一些实施例中,可以包括解密密钥和加密密钥的表示,作为他们的相应区块头的一部分。
在一些实施例中,解密密钥DK-1、DK和DK+1可以以机器可读的格式(例如,字符串或数字)存储,但加密密钥EK-1、EK和EK+1的表示可以以被设计为机器不可读的格式存储。例如,加密密钥EK-1、EK和EK+1的表示可以被存储为表示加密密钥EK-1、EK和EK+1的值的图像,但是所述图像可以以特定方式扭曲,使得例如只有人类才能从扭曲的图像中读取加密密钥的值。在一些实施例中,扭曲的图像可以包括CAPTCHA图像,CAPTCHA图像是通常用于被设计为区分计算机和人类的一种质询-响应测试中的图像。CAPTCHA是“用于区分计算机和人类的全自动公共图灵测试(Completely Automated Public Turing test to tell Computersand Humans Apart)”的首字母缩写。
在一些实施例中,区块K-1、K和K+1中的每个区块可以进一步包括数据字段,该数据字段可以包括被标记为Tx1至Txn的一个或多个交易。在一些实施例中,对于每个区块中包括的交易,例如,区块K+1中包括的交易,可以使用先前区块中提供的加密密钥,例如,区块K中提供的EK,进行加密。以此方式加密的交易可称为加密交易,其表示为E1(Tx1,EK)至En(Txn,EK)。应当理解,在区块K-1、K和K+1之间,“n”的值可以变化。
在一些实施例中,对于用户提交要包括在区块、例如区块K+1中的交易,该用户可能被要求使用先前区块中提供的加密密钥、例如区块K中提供的EK来对交易进行加密。但是,因为EK是以非机器可读格式(例如,CAPTCHA图像)表示的,所以只有人类用户才可以读取EK的值并使用EK的值对交易进行正确地加密。非人类用户,例如,自动化脚本、程序或“机器人”,可能无法读取EK的值,因此无法对交易进行正确地加密。以这种方式,用于确定区块中包括的交易是由人类用户生成或由自动脚本或程序生成的机制可以在区块形成时或区块被添加到区块链120时自动执行。
在一些实施例中,未被正确加密的交易可以被区块链120丢弃。例如,未被正确加密的交易可以被配置为在区块链120上操作的节点(例如,图1中描绘的节点102-110)丢弃。在一些实施例中,包括在区块K-1、K和K+1中的所有加密交易可以经过验证处理。当节点、例如节点102试图打包一个或多个加密交易以形成新区块、例如区块K+1时,可以执行验证处理。当节点102参与共识过程以确定是否接受要添加到区块链120的新区块时,也可以执行验证处理。
例如,当节点、例如节点102试图将加密交易打包到新区块、例如区块K+1中时,节点102可以调用验证处理,该验证处理可以继而尝试使用先前区块中提供的解密密钥、例如区块K中提供的DK对加密交易进行解密。如果可以使用DK将该加密交易成功解密,则可以认为该加密交易有效。另一方面,如果使用DK无法将该加密交易成功解密(例如,如果使用DK完全无法将该加密交易解密,或者该加密交易被解密为毫无意义的东西),则该验证处理可以得出提交加密交易的用户未使用正确的加密密钥EK(例如,因为用户无法正确读取EK的值,或者用户完全未尝试读取EK的值)。因此,验证处理可以认为交易无效,从而允许交易被丢弃。以这种方式,节点102可以接受有效交易并丢弃无效交易,从而有效地防止了无效交易被打包到区块K+1中。
类似地,当节点、例如节点102参与共识过程以确定是否接受要添加到区块链120的新区块、例如区块K+1时,节点102可以调用验证处理,该验证处理可以被用来使用先前区块中提供的解密密钥、例如区块K中提供的DK,对包括在区块K+1中的所有加密交易进行解密。在一些实施例中,如果验证处理认为包括在区块K+1中的一个或多个加密交易是无效的,则区块K+1可能无法达成共识,因此不被接受作为要添加到区块链120的新区块。另一方面,如果验证处理认为包括在区块K+1中的所有加密交易都是有效的,则节点102可以接受区块K+1作为要添加到区块链120的新区块。在一些实施例中,可以建立阈值,如果区块K+1包含的无效交易的数量小于阈值,则允许区块K+1被接受。
可以使用各种类型的密钥生成协议来生成加密密钥EK-1、EK和EK+1以及解密密钥DK-1、DK和DK+1。在一些实施例中,可以基于用于存储记录在区块链120上的交易的数据结构(例如,默克尔树)的哈希值来生成加密密钥。可以基于加密密钥来生成解密密钥。例如,假设节点、例如节点102正试图打包要添加到区块链120的新区块、例如区块K+1,则节点102可以基于当前记录在区块链120上的交易默克尔树的根哈希值(或根哈希值的前m位)生成针对区块K+1的加密密钥EK+1。在一些实施例中,每次生成加密密钥时,节点102可以将一些随机性因素合并到加密密钥中以进一步提高安全性。例如,节点102可以基于根哈希值加上当前时间戳、随机数、或者待处理交易(例如,节点102正在打包的交易)的根哈希值来生成针对区块K+1的加密密钥EK+1。一旦生成了加密密钥EK+1,节点102可以基于加密密钥EK+1相应地生成解密密钥DK+1和加密密钥EK+1的非机器可读表示。
在一些实施例中,节点102可以利用包括例如RSA(Rivest–Shamir–Adleman)算法等的密钥生成算法来生成解密密钥DK+1。节点102可以基于能够用于区分计算机和人类的各种技术来生成加密密钥EK+1的非机器可读表示。例如,节点102可以生成扭曲图像,例如CAPTCHA图像,并且将该扭曲图像用作加密密钥EK+1的非机器可读表示。
在一些实施例中,一旦生成加密密钥EK+1和解密密钥DK+1,则节点102可以执行解密密钥验证处理以确定加密密钥EK+1和解密密钥DK+1是否形成有效对(即,验证解密密钥DK+1可用于对使用加密密钥EK+1加密的消息进行正确解密)。在一些实施例中,在确定加密密钥EK+1和解密密钥DK+1形成有效对之后,节点102可以将区块K+1提交至区块链120。一旦节点102将区块K+1提交至区块链120,其他节点也可以执行解密密钥验证处理,以作为用于确定是否接受区块K+1的共识处理的一部分。在一些实施例中,节点102可以以零知识证明的方式执行解密密钥验证处理,这意味着节点102可以使用零知识证明向区块链120证明加密密钥EK+1和解密密钥DK+1形成有效对。零知识证明是指允许证明者(例如,节点102)向验证者(例如,区块链120)证明一条语句为真,而无需透露任何超出该语句本身有效性的信息的技术。以这种方式,节点102可以证明加密密钥EK+1和解密密钥DK+1形成有效对而无需公开加密密钥EK+1和解密密钥DK+1本身,从而进一步提高了安全性。一旦区块K+1被接受,加密密钥EK+1的非机器可读表示和解密密钥DK+1可以被记录在区块链120上,从而允许以上述方式将它们用于对后续区块、例如区块K+2(未示出)中的交易进行加密和解密。
图4示出根据实施例的用于防止对区块链系统的拒绝服务攻击的方法400的流程图。方法400可以由区块链系统中的一个或多个节点、例如区块链系统100中的节点102-110(图1)执行。区块链系统100中的节点102-110可以在区块链、例如区块链120(图1)上执行操作。
在步骤402,节点、例如节点102可以从区块链120的第k区块检索解密密钥DK。在步骤404,节点102可以基于解密密钥DK来确定要包括在第k区块的后续区块中的加密交易是否有效。在一些实施例中,对于用户提交要包括在第k区块的后续区块中的交易,该用户可能被要求使用第k区块中提供的加密密钥EK来对交易进行加密,该第k区块是用户可访问的区块链120的一部分。在一些实施例中,加密密钥EK可以以非机器可读格式(例如,CAPTCHA图像)来表示。用户可以从区块链120中检索CAPTCHA图像并基于用户对CAPTCHA图像的观察来获得加密密钥EK的值。然后,用户可以使用加密密钥EK对交易进行加密。然后,在步骤404可以验证该加密交易。
在步骤406,响应于确定要包括在第k区块的后续区块中的加密交易是无效的,节点102可以拒绝该加密交易。例如,如果节点102正试图将加密交易打包到后续区块、例如区块K+1中,则节点102可以调用前述的验证处理以使用解密密钥DK来对该加密交易进行解密。如果使用DK可以将该加密交易成功解密,则可以认为该加密交易是有效的。另一方面,如果使用DK无法将该加密交易成功解密(例如,如果使用DK完全无法将该加密交易解密,或者如果加密交易被解密为毫无意义的东西),则验证处理可以得出提交该加密交易的用户未使用正确的加密密钥EK(例如,因为用户无法正确读取EK的值,或者用户完全未尝试读取EK的值)。因此,验证处理可以认为该交易无效并且拒绝该交易,从而允许该交易被丢弃。以这种方式,节点102可以丢弃加密交易并且防止该加密交易被打包到后续区块K+1中。
类似地,如果节点102参与共识处理以确定是否接受要添加到区块链120的新区块、例如区块K+1,则节点102可以调用前述的验证处理以使用解密密钥DK来对包括在区块K+1中的所有加密交易进行解密。在一些实施例中,如果验证处理认为包括在区块K+1中的一个或多个加密交易是无效的,则可能无法对区块K+1达成共识,因此节点102可以拒绝接受区块K+1作为被添加至区块链120的新区块。在一些实施例中,可以建立阈值,如果区块K+1包含的被认为无效的加密交易的数量小于阈值,则允许节点102接受区块K+1。
在步骤408,节点102可以生成针对区块K+1的加密密钥EK+1。在一些实施例中,可以基于用于存储记录在区块链120上的交易的数据结构来生成加密密钥EK+1。在一些实施例中,可以基于数据结构的哈希值来生成加密密钥EK+1。
在步骤410,节点102可以基于加密密钥EK+1来生成解密密钥DK+1。在步骤412,节点102可以生成加密密钥EK+1的非机器可读表示。在一些实施例中,加密密钥EK+1的非机器可读表示可以包括表示加密密钥EK+1的扭曲图像(例如,CAPTCHA图像)。在步骤414,节点102可以将解密密钥DK+1以及加密密钥EK+1的非机器可读表示存储在区块K+1中。在一些实施例中,解密密钥DK+1以及加密密钥EK+1的非机器可读表示可以被存储为区块K+1的区块头的一部分,从而允许它们以上述方式用于对后续区块、例如区块K+2中的交易进行加密和解密。
图5是根据实施例的用于防止对区块链系统的拒绝服务攻击的装置500的框图。装置500可以是软件处理的实施方式,并且可以对应于方法400(图4)。参考图5,装置500可以包括检索模块502、确定模块504和拒绝模块506。
检索模块502可以从区块链的第k区块中检索解密密钥DK。检索模块502可以将解密密钥DK提供给确定模块504。
确定模块504可以基于解密密钥DK确定要包括在第k区块的后续区块、例如区块K+1中的加密交易是否有效。响应于确定要包括在区块K+1中的加密交易是无效的,确定模块504可以请求拒绝模块506拒绝该加密交易。
在一些实施例中,装置500还可以包括生成模块508和存储模块510。
生成模块508可以生成针对区块K+1的加密密钥EK+1。在一些实施例中,可以基于用于存储记录在区块链上的交易的数据结构来生成加密密钥EK+1。在一些实施例中,可以基于数据结构的哈希值来生成加密密钥EK+1。生成模块508还可以基于加密密钥EK+1生成解密密钥DK+1并生成加密密钥EK+1的非机器可读表示。生成模块508可以将解密密钥DK+1以及加密密钥EK+1的非机器可读表示提供给存储模块510,存储模块510可以将解密密钥DK+1以及加密密钥EK+1的非机器可读表示存储在区块K+1中。
应当理解,利用上述方法和设备可以允许区块链对每个交易提交施加人机交互的要求,从而有效地保护区块链免受由自动脚本、程序或机器人生成的拒绝服务攻击。利用上述方法和设备还可以允许区块链对区块链系统中的所有节点施加相同的要求,从而有效地在区块链系统中的所有节点之间提供公平性。
上述模块中的每个模块可以实现为软件或硬件,或软件和硬件的组合。例如,可以使用执行存储在存储器中的指令的处理器来实现每个上述模块。此外,例如,每个上述模块可以利用一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子组件来实现,以执行所描述的方法。进一步地,例如,上述模块中的每个模块可以通过使用计算机芯片或实体来实现,或者通过使用具有特定功能的产品来实现。在一个实施例中,装置500可以是计算机,所述计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
对于装置500中各个模块的功能和作用的实现过程,可以参考上述方法中的相应步骤。为简单起见,这里省略了细节。
在一些实施例中,计算机程序产品可以包括非暂态计算机可读存储介质,其上具有计算机可读程序指令,以使处理器执行上述方法。
所述计算机可读存储介质可以是有形设备,其可以存储供指令执行设备使用的指令。所述计算机可读存储介质可以是,例如,但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。所述计算机可读存储介质的更具体示例的非详尽列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的穿孔卡或凹槽中的凸起结构的机械编码设备、以及前述的任何合适组合。
用于执行上述方法的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的编程语言和传统的过程编程语言。计算机可读程序指令可以完全在计算设备上作为独立软件包执行,或者部分在第一计算设备上执行、部分在远离第一计算设备的第二计算设备上执行。在后一种情况下,第二远程计算设备可以通过任何类型的网络连接到第一计算设备,包括局域网(LAN)或广域网(WAN)。
所述计算机可读程序指令可以被提供给通用或专用计算机的处理器或其他可编程数据处理装置以产生一种机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现上述方法的装置。
附图中的流程图和示图示出了根据本文的各种实施例的设备、方法和计算机程序产品的可能实施方式的架构、功能和操作。在这方面,流程图或示图中的方框可以表示软件程序、代码段或代码的一部分,其包括用于实现特定功能的一个或多个可执行指令。还应注意,在一些可选实施方式中,方框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个方框实际上可以基本上同时执行,或者这些方框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,示图和/或流程图的每个框以及示图和流程图中的框的组合可以由执行指定功能或动作的、专用目的的基于硬件的系统来实现,或由专用目的的硬件和计算机指令的组合来实现。
应当理解,为了清楚起见,在单独实施例的上下文中描述的本文的某些特征还可以在单个实施例中组合提供。相反,为了简洁起见,在单个实施例的上下文中描述的本文的各种特征还可以单独提供或者以任何合适的子组合提供,或者在本文的任何其他描述的实施例中合适地提供。除非另有说明,否则在各种实施例的上下文中描述的某些特征不是那些实施例的必要特征。
尽管已经结合具体实施例描述了本文,但是许多替换、修改和变体对于本领域技术人员而言将显现。因此,随附权利要求书包含落入权利要求书的范围内的所有这些替代、修改和变体。
Claims (9)
1.一种计算机实现的用于防止对区块链系统的拒绝服务攻击的方法,所述方法包括:
从区块链的第k区块检索解密密钥DK;
基于所述解密密钥DK确定要包括在所述第k区块的后续区块中的加密交易是否有效;
响应于确定要包括在所述第k区块的所述后续区块中的所述加密交易是无效的,拒绝所述加密交易;
生成加密密钥EK+1;
基于所述加密密钥EK+1生成解密密钥DK+1;
生成所述加密密钥EK+1的非机器可读表示,所述加密密钥EK+1的所述非机器可读表示包括表示所述加密密钥EK+1的扭曲图像;以及
将所述解密密钥DK+1以及所述加密密钥EK+1的非机器可读表示存储在所述第k区块的所述后续区块中。
2.如权利要求1所述的方法,其中,所述加密密钥EK+1是基于用于存储记录在所述区块链上的交易的数据结构生成的。
3.如权利要求2所述的方法,其中,所述加密密钥EK+1是基于所述数据结构的哈希值生成的。
4.如权利要求2或3所述的方法,其中,拒绝所述加密交易进一步包括:
防止将所述加密交易打包到所述第k区块的所述后续区块中。
5.如权利要求2或3所述的方法,其中,拒绝所述加密密钥进一步包括:
拒绝接受所述第k区块的所述后续区块作为所述区块链的新区块。
6.如权利要求5所述的方法,其中,拒绝接受所述第k区块的所述后续区块作为所述区块链的新区块进一步包括:
确定所述第k区块的所述后续区块中包括的无效加密交易的数量;以及
当所述无效加密交易的数量超过阈值时,拒绝接受所述第k区块的所述后续区块作为所述区块链的新区块。
7.一种用于防止对区块链系统的拒绝服务攻击的设备包括:
一个或多个处理器;以及
一个或多个计算机可读存储器,耦接至所述一个或多个处理器并且其上存储有指令,所述指令能够由所述一个或多个处理器执行以执行权利要求1至6中任一项所述的方法。
8.一种用于防止对区块链系统的拒绝服务攻击的装置,所述装置包括检索模块、确定模块、拒绝模块、生成模块和存储模块,其中,
所述检索模块,用于从区块链的第k区块检索解密密钥DK;
所述确定模块,用于基于所述解密密钥DK确定要包括在所述第k区块的后续区块中的加密交易是否有效;并响应于确定要包括在所述第k区块的所述后续区块中的所述加密交易是无效的,请求所述拒绝模块拒绝所述加密交易;
所述生成模块,用于生成加密密钥EK+1;以及,基于所述加密密钥EK+1生成解密密钥DK+1,并生成所述加密密钥EK+1的非机器可读表示,所述加密密钥EK+1的所述非机器可读表示包括表示所述加密密钥EK+1的扭曲图像;
所述存储模块,用于将所述解密密钥DK+1以及所述加密密钥EK+1的非机器可读表示存储在所述第k区块的所述后续区块中。
9.一种存储有指令的非暂时性计算机可读介质,所述指令在由设备的处理器执行时,促使所述设备执行权利要求1至6中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SG10201910425SA SG10201910425SA (en) | 2019-11-07 | 2019-11-07 | Methods and devices for preventing denial-of-service attack on blockchain system |
SG10201910425S | 2019-11-07 | ||
PCT/CN2020/109546 WO2021088451A1 (en) | 2019-11-07 | 2020-08-17 | Methods and devices for preventing denial-of-service attack on blockchain system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114641788A CN114641788A (zh) | 2022-06-17 |
CN114641788B true CN114641788B (zh) | 2023-06-30 |
Family
ID=73034389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080077301.8A Active CN114641788B (zh) | 2019-11-07 | 2020-08-17 | 用于防止对区块链系统的拒绝服务攻击的方法和设备 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN114641788B (zh) |
SG (1) | SG10201910425SA (zh) |
WO (1) | WO2021088451A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118541948A (zh) * | 2022-01-27 | 2024-08-23 | 高通股份有限公司 | 使用所解码的信息块的安全密钥导出 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064601A (zh) * | 2006-04-26 | 2007-10-31 | 资通电脑股份有限公司 | 文字图形化的认证方法 |
CN106534097A (zh) * | 2016-10-27 | 2017-03-22 | 上海亿账通区块链科技有限公司 | 基于区块链交易的权限管制方法及系统 |
CA2948229A1 (en) * | 2016-11-10 | 2018-05-10 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
CN110084599A (zh) * | 2019-04-28 | 2019-08-02 | 百度在线网络技术(北京)有限公司 | 密钥处理方法、装置、设备和存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100037056A1 (en) * | 2008-08-07 | 2010-02-11 | Follis Benjamin D | Method to support privacy preserving secure data management in archival systems |
US11494761B2 (en) * | 2015-11-06 | 2022-11-08 | Cable Television Laboratories, Inc. | Systems and methods for digital asset security ecosystems |
US20170236120A1 (en) * | 2016-02-11 | 2017-08-17 | Oracle International Corporation | Accountability and Trust in Distributed Ledger Systems |
CN108876377A (zh) * | 2018-07-06 | 2018-11-23 | 杭州复杂美科技有限公司 | 一种防止重复支付的方法和系统 |
CN110113328B (zh) * | 2019-04-28 | 2021-01-15 | 武汉理工大学 | 一种基于区块链的软件定义机会网络DDoS防御方法 |
-
2019
- 2019-11-07 SG SG10201910425SA patent/SG10201910425SA/en unknown
-
2020
- 2020-08-17 WO PCT/CN2020/109546 patent/WO2021088451A1/en active Application Filing
- 2020-08-17 CN CN202080077301.8A patent/CN114641788B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101064601A (zh) * | 2006-04-26 | 2007-10-31 | 资通电脑股份有限公司 | 文字图形化的认证方法 |
CN106534097A (zh) * | 2016-10-27 | 2017-03-22 | 上海亿账通区块链科技有限公司 | 基于区块链交易的权限管制方法及系统 |
WO2018076761A1 (zh) * | 2016-10-27 | 2018-05-03 | 上海亿账通区块链科技有限公司 | 基于区块链交易的权限管制方法、系统、电子装置及存储介质 |
CA2948229A1 (en) * | 2016-11-10 | 2018-05-10 | The Toronto-Dominion Bank | Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers |
CN110084599A (zh) * | 2019-04-28 | 2019-08-02 | 百度在线网络技术(北京)有限公司 | 密钥处理方法、装置、设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
面向大数据应用的区块链解决方案综述;王震等;《计算机科学》;20190630;第46卷(第6A期);第6-10页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2021088451A1 (en) | 2021-05-14 |
SG10201910425SA (en) | 2020-10-29 |
CN114641788A (zh) | 2022-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110914851B (zh) | 提高区块链网络与外部数据源之间的通信的完整性 | |
CN110462621B (zh) | 在区块链网络中管理敏感数据元素 | |
US11297064B2 (en) | Blockchain authentication via hard/soft token verification | |
US11082240B2 (en) | Retrieving public data for blockchain networks using highly available trusted execution environments | |
JP7121810B2 (ja) | 安全なブロックチェーントランザクションおよびサブネットワークのためのシステム、方法、デバイス及び端末 | |
CN114586315B (zh) | 用于去中心化的数据认证的系统、方法和计算机可读介质 | |
WO2019137566A2 (en) | Methods and devices for validating transaction in blockchain system | |
CN111066019B (zh) | 处理存储在区块链网络中的数据元素 | |
US11711213B2 (en) | Master key escrow process | |
CN111034151B (zh) | 用于管理对区块链系统中的账户的访问的方法和设备 | |
US20200204338A1 (en) | Securing public key cryptographic algorithms | |
CN110731073B (zh) | 在区块链系统中的节点之间建立通信的方法和设备 | |
WO2022115559A1 (en) | Cryptographic key storage system and method | |
CN114270386A (zh) | 用于同意架构的认证器应用 | |
JP2022534677A (ja) | ブロックチェーンを使用するオンラインアプリケーションおよびウェブページの保護 | |
CN114641788B (zh) | 用于防止对区块链系统的拒绝服务攻击的方法和设备 | |
CN111480316B (zh) | 生成和验证密码的方法和设备 | |
CN111078649A (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 |