WO2024021410A1 - Method and apparatus for preventing network attacks - Google Patents

Method and apparatus for preventing network attacks Download PDF

Info

Publication number
WO2024021410A1
WO2024021410A1 PCT/CN2022/135159 CN2022135159W WO2024021410A1 WO 2024021410 A1 WO2024021410 A1 WO 2024021410A1 CN 2022135159 W CN2022135159 W CN 2022135159W WO 2024021410 A1 WO2024021410 A1 WO 2024021410A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
verification
verified
block
network
Prior art date
Application number
PCT/CN2022/135159
Other languages
French (fr)
Chinese (zh)
Inventor
焦梦洪
Original Assignee
蚂蚁区块链科技(上海)有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 蚂蚁区块链科技(上海)有限公司 filed Critical 蚂蚁区块链科技(上海)有限公司
Publication of WO2024021410A1 publication Critical patent/WO2024021410A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1458Denial of Service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session

Definitions

  • the embodiments of this specification belong to the field of network security technology, and particularly relate to a method and device for preventing network attacks.
  • the purpose of the present invention is to provide a method and device for preventing network attacks.
  • a method for preventing network attacks is proposed, which is applied to a verification node in a blockchain network, including: sending a message to a node to be verified in the blockchain network.
  • Verification request the verification request includes the block height of the block to be verified selected by the verification node from the locally maintained blocks; receiving the verification response sent by the node to be verified in response to the verification request, the verification The response includes the first block information; when the first block information fails to match the second block information corresponding to the block to be verified, it is determined that the verification of the node to be verified fails; when it is determined that the verification of the node to be verified fails. If the first number of failures exceeds the first preset threshold, the connection with the node to be verified is disconnected.
  • a device for preventing network attacks which is applied to a verification node in a blockchain network and includes: a request sending unit for sending a request to the blockchain network.
  • the node to be verified in sends a verification request, the verification request includes the block height of the block to be verified selected by the verification node from the locally maintained blocks;
  • a response receiving unit is used to receive the response of the node to be verified A verification response sent by the verification request, the verification response including the first block information; a verification unit used to fail to match the first block information with the second block information corresponding to the block to be verified. It is determined that the node to be verified has failed to verify;
  • a connection disconnecting unit is configured to disconnect from the node to be verified if it is determined that the first number of verification failures of the node to be verified exceeds a first preset threshold.
  • an electronic device including: a processor; and a memory for storing instructions executable by the processor.
  • the processor implements the method described in the first aspect by running the executable instructions.
  • a computer-readable storage medium on which computer instructions are stored, and when the instructions are executed by a processor, the steps of the method described in the first aspect are implemented.
  • a verification mechanism is proposed to ensure that each node in the blockchain network maintains the same set of blockchain ledgers.
  • the node to be verified needs to provide the correct verification node based on the block height in the verification request. Block information, otherwise the node to be verified will be regarded as a fault node by the verification node, or as an attacker of a special attack, that is, the node to be verified does not actually maintain the same set of blockchain ledgers as the verification node, but reuses them.
  • the same set of communication modules of the underlying P2P network is used, causing nodes actually in different blockchain networks to be able to access illegally.
  • the verification node disconnects from the node to be verified that is regarded as a fault node or attacker, so that it can Eliminate risks that threaten the normal operation of the system or network security in a timely manner.
  • the attacker as the node to be verified can provide correct block information through other means to avoid forced disconnection, the foregoing embodiments of this specification can objectively increase the cost of the attacker maintaining the connection with the blockchain network. , thereby indirectly improving the blockchain network's ability to prevent cyber attacks by increasing attack costs.
  • Figure 1 is a schematic diagram of a blockchain network provided by an exemplary embodiment.
  • Figure 2 is a flow chart of a method for preventing network attacks provided by an exemplary embodiment.
  • Figure 3 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • Figure 4 is a block diagram of a device for preventing network attacks provided by an exemplary embodiment.
  • P2P Peer to Peer
  • P2P network that is, point-to-point network, or peer-to-peer network
  • C/S client/server
  • All nodes in the P2P network are in a peer-to-peer position with each other, and each node can act as both a client and a server to provide resources and services to other nodes.
  • the blockchain network is a typical P2P network.
  • the P2P network involved in the embodiments of this specification can be a blockchain network, and the nodes included in the P2P network all belong to the blockchain in the blockchain network. node.
  • FIG 1 is a schematic diagram of a blockchain network provided by an exemplary embodiment.
  • the blockchain network contains 5 nodes that have been connected to the network, namely nodeA, nodeB, nodeC, nodeD and nodeE.
  • nodeA Only connections are established with nodeB, nodeC and nodeD but no connection is established with nodeE.
  • Each node maintains an independent node list locally.
  • the node list records the node information of other nodes in the same blockchain network that are connected to the node. Therefore, the node list is also called a neighbor table.
  • nodeA maintains The node information of nodeB, nodeC and nodeD is recorded in the node list.
  • the node list can also be used as a routing table to guide message transmission.
  • the node information of any node may include the node identification, network address (such as IP address, port number, etc.) of any node, and/or the node's identity information (such as node public key), etc. , this manual does not limit this.
  • the connection involved in the embodiment of this specification refers to a network connection, such as a TCP or TLS connection at the session layer, and the embodiment of this specification does not impose any limitation on this.
  • the node corresponding to the node information maintained in the node list maintained by any node does not necessarily have a physical direct connection with the node, that is, other nodes that have network connections with the node may be connected to the node. There is a multi-hop relationship between any of the nodes.
  • Alien attack is a type of network attack, also known as address pollution attack. It refers to an attack method that induces nodes in different blockchain networks to discover, interconnect, and invade each other. So if an attacker performs a special attack, it may cause nodes in different blockchain networks to become entangled with each other, affecting the communication and routing within the nodes in their respective blockchain networks, and thus affecting the execution of transactions and blocks.
  • the security of the consensus gives attackers the opportunity to carry out other attacks, such as DDoS (Distributed Denial of Service) attacks, network split attacks, etc.
  • DDoS Distributed Denial of Service
  • a P2P network will only be specifically connected to one blockchain network, that is, each node in the P2P network will only maintain the same set of blockchain ledgers, and will only be responsible for communicating with the nodes that maintain this set of blockchain ledgers.
  • Serve The reason why alien attacks occur is essentially because the same P2P network assumes the function of communication services for multiple blockchain networks. That is, in addition to docking with its corresponding dedicated blockchain network, the P2P network also The reuse relationship caused the blockchain network to mistakenly add some nodes from other blockchain networks. This is ultimately reflected in the fact that the nodes in the blockchain network may maintain different blockchain ledgers (because these nodes originally do not belong to the same blockchain network).
  • the embodiment of this specification proposes a method to prevent alien attacks.
  • the verification node in the blockchain network initiates an attack to the node to be verified in the blockchain network to verify whether each other maintains the same set of blockchains. Verification request of the ledger, and disconnects from the node to be verified when the number of verification failures reaches the preset threshold, thereby ensuring that the nodes in the blockchain network all belong to the same blockchain network, thus reducing The possibility of encountering alien attacks.
  • the node in the blockchain network that actively verifies whether other nodes maintain the same set of blockchain ledgers is called a verification node, and the node in the blockchain network that is subject to the above verification is called a node to be verified.
  • the verification node can be any node that has joined the blockchain network.
  • the verification node usually needs to ensure that it is trustworthy and open source, and in order to ensure that the verification node maintains the correct Blockchain ledger (to avoid the phenomenon that the verification node itself is a node in other blockchain networks mistakenly added to the blockchain network), the initial node when the blockchain network is first established can be used as the verification node, or the blockchain network can be The communication pillar node (usually has many connections with other nodes in the blockchain network.
  • This node is usually considered a backbone node and has a relatively high probability of maintaining a correct blockchain ledger) as a verification node.
  • nodeA can send a verification request to nodeB that has established a connection to verify whether nodeB maintains the same set of blockchain ledgers. At this time, nodeA serves as the verification node, and nodeB serves as the node to be verified.
  • Figure 2 is a flow chart of a method for preventing network attacks provided by an exemplary embodiment. As shown in Figure 2, the method is applied to verification nodes in the blockchain network and may include the following steps 202-208.
  • Step 202 Send a verification request to the node to be verified in the blockchain network, where the verification request includes the block height of the block to be verified selected by the verification node from locally maintained blocks.
  • the verification node After the verification node determines that it needs to send a verification request to the node to be verified, it first needs to determine a block height to carry in the verification request and serve as the basis for the node to be verified to obtain the first block information. Specifically, the verification node can select a block from the locally maintained blockchain ledger as the block to be verified, and then carry the block height of the block to be verified in the verification request. In the embodiment of this specification, the block to be verified is obtained by the verification node from locally maintained blocks according to preset selection rules or random selection.
  • the randomness of the verification task can be ensured to the greatest extent and prevent the node to be verified from preparing the block information corresponding to the block height in advance. Temporarily obtain the first block information.
  • sending a verification request to a node to be verified in the blockchain network includes: periodically sending a verification request to a node to be verified in the blockchain network.
  • any node in the blockchain network can serve as a verification node and send verification requests to other nodes, and the verification node can also send verification requests to multiple nodes to be verified at the same time.
  • the verification node can also periodically send verification requests to the node to be verified.
  • the process of verifying whether the same blockchain ledger is maintained is a universal and continuous behavior in the blockchain network, it can continuously ensure that the nodes in the blockchain network maintain the same blockchain ledger. , belong to the same blockchain network, thus further increasing the overall resistance of the blockchain network to system failures (because the cause of verification failure may also be that the node to be detected is a faulty node) and the ability to prevent alien attacks.
  • Step 204 Receive a verification response sent by the node to be verified in response to the verification request, where the verification response includes first block information.
  • the node to be verified After receiving the verification request, the node to be verified will respond to the verification request and obtain the corresponding block height, and locally search for the first block height corresponding to the block height in the blockchain ledger maintained by the node to be verified. block, and at the same time determine the first block information corresponding to the first block, and send the verification response carrying the first block information to the verification node for subsequent verification by the verification node.
  • the first block information may include the first block itself or the hash value corresponding to the first block.
  • the block information is obtained by the node to be verified. Specifically, after the node to be verified obtains the first block information, it will also generate a corresponding signature for the first block information. This signature is the node private key of the node to be verified that it holds for the first block.
  • the block information is encrypted.
  • the node to be verified will send the first block information obtained by itself and the signature generated for the first block information to the verification node for verification by the verification node.
  • the node to be verified can also send the node to be verified at the same time.
  • the node public key is also sent to the verification node.
  • Step 206 Determine that the node to be verified fails to verify if the first block information fails to match the second block information corresponding to the block to be verified.
  • the verification node After receiving the verification response sent by the node to be verified, the verification node will obtain the first block information from the verification response. In addition, the verification node also needs to obtain the previously selected block to be verified from the blockchain ledger maintained locally by the verification node, and at the same time determine the second block information corresponding to the block to be verified.
  • the second block information includes the to-be-verified block. block or the hash value corresponding to the block to be verified. For example, when the first block information is the first block, the second block information is the second block, and when the first block information is the When the hash value corresponding to one block is determined, the information of the second block is the hash value corresponding to the second block.
  • the process of the verification node obtaining the second block information can occur at any time point between the verification node selecting the block to be selected and the verification node needing to match the first block information with the second block information.
  • the verification node After the verification node obtains the first block information and the second block information at the same time, it can match the first block information and the second block information to compare whether they are consistent. If the two are consistent, If the comparison is inconsistent, the match is determined to be successful; if the comparison between the two is inconsistent, the match is determined to be failed. If the node to be verified and the verification node maintain the same blockchain ledger, then the blocks they take out at the same block height should be the same, and the corresponding first block information and second block information should also match successfully, and If the final matching of the first block information and the second block information fails, it can mean that the node to be verified and the verification node respectively maintain different blockchain ledgers or the node to be verified has a transmission failure. At this time, it can be determined whether the node to be verified is The verification result of the same set of blockchain ledgers maintained by the verification node is verification failure.
  • embodiments of this specification also provide other additional verification methods to determine whether the node to be verified has failed to verify. .
  • the method further includes: determining that the node to be verified has failed in verification if the verification response is not received within a first preset time period after sending the verification request.
  • the verification node requires the node to be verified to return a verification response within the first preset time period, otherwise it is considered that the verification of the node to be verified has failed, even if the first block information in the subsequent verification response received can Successfully matched with the second block information.
  • the way for the node to be verified to obtain the first block information is to obtain the first block information locally based on Searching at block height, the efficiency of this process is theoretically faster; and if the node to be verified does not maintain (or is not fully maintained) a complete blockchain ledger corresponding to the blockchain network where the verification node is located, and It is hoped to obtain the first block information through other means (such as first accessing the public platform of the blockchain network where the verification node is located to query the first block corresponding to the block height), thereby forging that it is at the location of the verification node.
  • the identity of the blockchain network then this process is more time-consuming than directly searching and obtaining the first block information locally. Therefore, the length of time for the node to be verified to return the verification response can be limited to identify those attackers who attempt to forge their true identity through the above methods, and then the node to be verified will be regarded as The attacker also determines that the node to be verified has failed to verify, thereby avoiding as much as possible the node to be verified as the attacker using other means to avoid verification failure or increasing the attack cost of the attacker, thereby improving the blockchain network's ability to prevent network attacks.
  • the verification response also includes a signature generated by the node to be verified for the first block information
  • the method further includes: verifying the signature based on the node public key of the node to be verified, in If the signature verification fails, it is determined that the node to be verified fails to verify.
  • the node to be verified can also provide the verification node with the signature of the first block information to prove its identity.
  • the verification node verifies the signature, it needs to use the node public key of the node to be verified that is maintained in advance by itself or temporarily provided by the node to be verified, and the obtained decryption result is compared with the first block The information is compared.
  • the comparison is consistent, it means that the source of the first block information is indeed the node to be verified, thereby determining that the signature verification is successful. If the comparison is inconsistent, it means the source of the first block information. The party is not the node to be verified, thereby determining that the signature verification fails. If the signature verification fails, it is deemed to be verified by the node to be verified, thereby preventing the node to be verified as an attacker from forging its identity. Avoiding verification failure or increasing the attack cost of the attacker improves the ability of the blockchain network to prevent network attacks.
  • Step 208 If it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, disconnect the node to be verified.
  • the verification node will count the total number of verification failures (the first number) of the node to be verified. When the first number of verification failures in the history of the node to be verified exceeds the first preset threshold, the verification node can completely Confirm that it does not belong to the same blockchain network as the node to be verified, so it is necessary to disconnect the node to be verified to exit the node to be verified from the blockchain network to ensure that the P2P network is only connected to the same area
  • the nodes in the blockchain network only maintain the same set of blockchain ledgers to prevent the blockchain network from being attacked by aliens.
  • a verification mechanism is proposed to ensure that each node in the blockchain network maintains the same set of blockchain ledgers.
  • the node to be verified needs to provide the correct verification node based on the block height in the verification request. Block information, otherwise the node to be verified will be regarded as a fault node by the verification node, or as an attacker of a special attack, that is, the node to be verified does not actually maintain the same set of blockchain ledgers as the verification node, but reuses them.
  • the same set of communication modules of the underlying P2P network is used, causing nodes actually in different blockchain networks to be able to access illegally.
  • the verification node disconnects from the node to be verified that is regarded as a fault node or attacker, so that it can Eliminate risks that threaten the normal operation of the system or network security in a timely manner.
  • the attacker as the node to be verified can provide correct block information through other means to avoid forced disconnection, the foregoing embodiments of this specification can objectively increase the cost of the attacker maintaining the connection with the blockchain network. , thereby indirectly improving the blockchain network's ability to prevent cyber attacks by increasing attack costs.
  • it also includes: when it is determined that the first number of verification failures of the node to be verified exceeds a first preset threshold, removing the node information of the node to be verified from the node list maintained by the verification node. delete.
  • each node in the blockchain network maintains a node list to store node information of other nodes that are connected to the node.
  • the node information of the node to be verified is stored in the node list of the verification node.
  • the verification node When it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, the verification node will disconnect from the node to be verified, and at the same time, the verification node will also maintain the node list in its own maintenance node list. Delete the previously existing node information of the node to be verified so that the node to be verified is forgotten and the storage space of the node list is released.
  • the method further includes: when it is determined that the first number of verification failures of the node to be verified exceeds a first preset threshold, initiating a verification process including the verification to the network management contract in the blockchain network.
  • the node deletion transaction of the node information of the node to be verified causes the network management contract to delete the node information of the node to be verified maintained in the network management contract.
  • the network management contract deployed by the blockchain network maintains the node information of each blockchain node as all members of the blockchain network (including the node information of the node to be verified).
  • the verification node can also initiate a node deletion transaction to the network management contract to make the network management contract Delete the node information maintained on the node to be verified in the network management contract to ensure the correctness of the node members in the blockchain node.
  • it also includes: when it is determined that the first number of failed verifications of the node to be verified exceeds a first preset threshold, sending a message carrying the node to be verified to other nodes in the blockchain network. Suspicious node notification of node information, so that the other nodes send a verification request to the node to be verified in response to the suspicious node notification.
  • the verification node when the number of verification failures of the node to be verified for the first time exceeds the first preset threshold, the verification node will not only disconnect from the node to be verified, but will also further notify the node with a suspicious node.
  • the suspicious node notification mechanism involved in the embodiment of this specification improves the efficiency of the blockchain. The ability of the network as a whole to prevent cyber attacks.
  • it also includes: when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, refusing to respond to the node to be verified within a third preset time period after the current moment.
  • the node to be verified when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, in addition to needing to disconnect from the node to be verified, the node to be verified can also be disconnected.
  • the node is added to the connection blacklist so that it cannot establish a connection with the verification node again within a period of time, thereby preventing the node to be verified as an attacker from continuing to harass the verification node by initiating connection requests.
  • the node information of the node in the connection blacklist involved in the embodiment of this specification will be automatically deleted after the third preset time period after being added. Therefore, after the third preset time period after disconnecting from the node to be verified, , the node to be verified can still establish a connection with the verification node again by initiating a connection request to the verification node.
  • the block to be verified is selected by the verification node from blocks in a selection range corresponding to the locally maintained verification difficulty value, and the selection range is directly related to the verification difficulty value; the method further includes: The verification difficulty value is adjusted according to the second number of verification failures of the node to be verified within a second preset time period before the current time, and the verification difficulty value is positively related to the second number of times.
  • the node to be verified as the attacker may also locally maintain the same blockchain ledger as the verification node through other means so as to be able to find the correct first block information and avoid verification failure. , but due to the cost of attack, a complete blockchain ledger may not be maintained locally (like a normal node).
  • the selection range of the blocks to be verified is determined to varying degrees according to the verification difficulty value. Adjustment, so that in the case of high verification difficulty value, the node to be verified as the attacker must locally maintain a sufficient number of blocks in the same blockchain ledger as the verification node to avoid verification failure, thereby indirectly increasing attacks Party’s attack cost.
  • the verification difficulty value maintained by the verification node can be dynamically adjusted, for example, based on the recently determined second number of verification failures of the node to be verified (that is, the node to be verified is determined within the second preset time period before the current time). The second number of failed verifications) is used to adjust the verification difficulty value.
  • the embodiments of this specification can make the possibility of the node to be verified being an attacker
  • increase the verification difficulty of the node to be verified requiring the node to be verified to maintain more blocks in the correct blockchain ledger
  • the current verification difficulty value can be appropriately reduced, so that the possibility of the node being verified as an attacker is lower. Reduce the cost required for normal verification behavior (when the selection range of the block to be verified is small, the range that the node to be verified needs to search when obtaining the first block information is also small, so the time and computing cost required smaller).
  • the network management contract deployed by the blockchain network maintains the verification difficulty value; the adjustment is based on the second number of verification failures of the node to be verified determined within a second preset time period before the current time.
  • the verification difficulty value includes: initiating a difficulty value adjustment transaction including a second number of times to the network management contract deployed on the blockchain network, so that the network management contract is maintained in the network management contract based on the second number of adjustments.
  • the verification difficulty value in .
  • the verification difficulty value maintained by the verification node is specifically stored in the network management contract deployed by it. Therefore, in this case, each blockchain node in the blockchain network actually shares the same verification difficulty value by maintaining the same network management contract, which allows any one of the blockchain nodes to detect When a certain node to be verified is more likely to be an attacker, the verification difficulty value maintained in the network management contract is adjusted by initiating a proof difficulty value adjustment transaction to the network management contract to provide support to the blockchain network.
  • Other blockchain nodes inform the changes in the verification difficulty value when performing verification actions on the node to be verified, so that the blockchain network has the function of overall adjusting the verification strategy of all nodes according to changes in the current network environment, improving the blockchain network Overall ability to protect against cyberattacks.
  • it also includes: when the number of historical messages based on any protocol initiated by the same initiator received within a fourth preset time period before the current moment exceeds a second preset threshold, refuse to respond to the same Messages initiated by the initiator based on any of the protocols described.
  • the messages of any of the protocols include at least a connection request in the connection protocol, a node discovery request in the node discovery protocol, and a verification response in the verification protocol to verify whether the same set of blockchain ledgers is maintained (mainly to prevent the node to be verified from targeting the same A verification request returns an excessive number of verification responses, causing the verification node to crash), etc.
  • the embodiments of this specification do not limit the type of protocol, but the protocol must be pre-established and maintained in the blockchain network so that the blockchain network Nodes in can identify and process messages corresponding to this protocol.
  • it is possible to count received messages of various protocols (including various types of requests or responses), and in the case where there are too many historical messages of a certain type of protocol originating from the same initiator in a short period of time. , refuse to respond to messages of this type of protocol from the same initiator again, thereby effectively identifying the attacker and moving it into the blacklist, effectively preventing the same attacker such as flooding attacks or DOS (Denial of Service, Denial of Service) attacks.
  • DOS Denial of Service, Denial of Service
  • Figure 3 is a schematic structural diagram of a device provided by an exemplary embodiment.
  • the device includes a processor 302, an internal bus 303, a network interface 306, a memory 308 and a non-volatile memory 310.
  • the processor 302 reads the corresponding computer program from the non-volatile memory 310 into the memory 308 and then runs it.
  • the execution party of the following processing flow is not limited to each A logic unit can also be a hardware or logic device.
  • FIG 4 is a block diagram of a device for preventing network attacks provided in this specification according to an exemplary embodiment.
  • the device is applied to verification nodes in a blockchain network and includes: a request sending unit 401, used to send a verification request to a node to be verified in the blockchain network, where the verification request includes the verification node maintaining locally The block height of the block to be verified selected from the block; the response receiving unit 402 is used to receive the verification response sent by the node to be verified in response to the verification request, where the verification response includes the first block information;
  • the verification unit 403 is used to determine that the node to be verified fails to verify when the first block information fails to match the second block information corresponding to the block to be verified;
  • the connection disconnecting unit 404 is used to determine If the first number of verification failures of the node to be verified exceeds the first preset threshold, the connection with the node to be verified is disconnected.
  • the request sending unit 401 is specifically configured to periodically send verification requests to the nodes to be verified in the blockchain network.
  • the second block information includes the block to be verified or the hash value corresponding to the block to be verified.
  • the block to be verified is obtained by the verification node from locally maintained blocks according to preset selection rules or random selection.
  • the block to be verified is selected by the verification node from blocks in a selection range corresponding to the locally maintained verification difficulty value, and the selection range is directly related to the verification difficulty value; the device further includes:
  • the difficulty value adjustment unit 405 is configured to adjust the verification difficulty value according to the second number of failed verifications of the node to be verified within a second preset time period before the current time.
  • the verification difficulty value is positively related to the second number of verification failures. .
  • the network management contract deployed on the blockchain network maintains the verification difficulty value;
  • the difficulty value adjustment unit 405 is specifically configured to: initiate a second verification process to the network management contract deployed on the blockchain network.
  • the number of difficulty value adjustment transactions is such that the network management contract adjusts the verification difficulty value maintained in the network management contract based on the second number of times.
  • the method also includes: a verification failure determination unit 406, configured to determine that the node to be verified has failed in verification if the verification response is not received within a first preset time period after sending the verification request.
  • a verification failure determination unit 406 configured to determine that the node to be verified has failed in verification if the verification response is not received within a first preset time period after sending the verification request.
  • the verification response also includes a signature generated by the node to be verified for the first block information
  • the device further includes: a signature verification unit 407 for verifying the signature based on the node public key of the node to be verified. The signature is verified, and if the signature verification fails, it is determined that the node to be verified has failed to verify.
  • a list information deletion unit 408 configured to remove the node information of the node to be verified from all the nodes when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold. Delete from the node list maintained by the verification node.
  • a node deletion transaction sending unit 409 configured to send a message to the network in the blockchain network when it is determined that the first number of failed verifications of the node to be verified exceeds the first preset threshold.
  • the management contract initiates a node deletion transaction containing the node information of the node to be verified, so that the network management contract deletes the node information of the node to be verified maintained in the network management contract.
  • a suspicious node notification sending unit 410 configured to notify other nodes in the blockchain network when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold.
  • the node sends a suspicious node notification carrying the node information of the node to be verified, so that the other nodes send a verification request to the node to be verified in response to the suspicious node notification.
  • the node information includes node identification, node public key and/or network address.
  • connection request rejection unit 411 configured to, if it is determined that the first number of failed verifications of the node to be verified exceeds the first preset threshold, a third preset time period after the current moment. Refuse to respond to the connection request sent by the node to be verified.
  • a response rejection unit 412 used to receive the number of historical messages based on any protocol initiated by the same initiator within the fourth preset time period before the current moment exceeding the second preset threshold. , refuse to respond to messages based on any of the protocols initiated by the same initiator.
  • PLD Programmable Logic Device
  • FPGA Field Programmable Gate Array
  • HDL Hardware Description Language
  • the controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor. , logic gates, switches, Application Specific Integrated Circuit (ASIC), programmable logic controllers and embedded microcontrollers.
  • controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, For Microchip PIC18F26K20 and Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic.
  • the controller in addition to implementing the controller in the form of pure computer-readable program code, the controller can be completely programmed with logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded logic by logically programming the method steps. Microcontroller, etc. to achieve the same function. Therefore, this controller can be considered as a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the means for implementing various functions can be considered as structures within hardware components as well as software modules implementing the methods.
  • the systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions.
  • a typical implementation device is a server system.
  • the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, or a personal digital assistant. , media player, navigation device, email device, game console, tablet, wearable device, or a combination of any of these devices.
  • the functions are divided into various modules and described separately.
  • the functions of each module can be implemented in the same or multiple software and/or hardware, or the modules that implement the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. .
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented.
  • the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
  • These computer program instructions may also be stored in a computer-readable memory that causes a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction means, the instructions
  • the device implements the functions specified in a process or processes of the flowchart and/or a block or blocks of the block diagram.
  • These computer program instructions may also be loaded onto a computer or other programmable data processing device, causing a series of operating steps to be performed on the computer or other programmable device to produce computer-implemented processing, thereby executing on the computer or other programmable device.
  • Instructions provide steps for implementing the functions specified in a process or processes of a flowchart diagram and/or a block or blocks of a block diagram.
  • a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
  • processors CPUs
  • input/output interfaces network interfaces
  • memory volatile and non-volatile memory
  • Memory may include non-permanent storage in computer-readable media, random access memory (RAM) and/or non-volatile memory in the form of read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
  • RAM random access memory
  • ROM read-only memory
  • flash RAM flash random access memory
  • Computer-readable media includes both persistent and non-volatile, removable and non-removable media that can be implemented by any method or technology for storage of information.
  • Information may be computer-readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), and read-only memory.
  • PRAM phase change memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • RAM random access memory
  • read-only memory read-only memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • flash memory or other memory technology
  • compact disc read-only memory CD-ROM
  • DVD digital versatile disc
  • Magnetic tape cartridges magnetic tape disk storage, graphene storage or other magnetic storage devices or any other non-transmission medium can be used to store information that can be accessed by a computing device.
  • computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
  • one or more embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware aspects. Furthermore, one or more embodiments of the present description may employ a computer program implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein. Product form.
  • computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
  • program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
  • program modules may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network.
  • program modules may be located in both local and remote computer storage media including storage devices.

Abstract

Provided in the present specification are a method and apparatus for preventing network attacks, which are applied to a verification node in a blockchain network. The method comprises: sending a verification request to a node to be verified in a blockchain network, the verification request comprising the block height of a block to be verified selected by the verification node from locally maintained blocks; and receiving a verification response sent by the node to be verified in response to the verification request, the verification response comprising first block information; when the first block information fails to be matched with second block information corresponding to the block to be verified, determining that the verification of the node to be verified has failed; and, when it is determined that a first number of verification failure times of the node to be verified exceeds a first preset threshold value, disconnecting from the node to be verified.

Description

一种防范网络攻击的方法及装置A method and device for preventing network attacks 技术领域Technical field
本说明书实施例属于网络安全技术领域,尤其涉及一种防范网络攻击的方法及装置。The embodiments of this specification belong to the field of network security technology, and particularly relate to a method and device for preventing network attacks.
背景技术Background technique
现阶段,针对通信网络的攻击事件层出不穷,攻击方法也不尽相同,其中,针对P2P网络的攻击案例数量较为常见。例如对于区块链网络,攻击方可以根据区块链网络对应的底层P2P网络的自身特性设计攻击算法,从而实现对区块链网络的攻击。At this stage, attacks on communication networks are emerging one after another, and the attack methods are also different. Among them, the number of attack cases on P2P networks is relatively common. For example, for blockchain networks, attackers can design attack algorithms based on the characteristics of the underlying P2P network corresponding to the blockchain network, thereby achieving attacks on the blockchain network.
发明内容Contents of the invention
本发明的目的在于提供一种防范网络攻击的方法及装置。The purpose of the present invention is to provide a method and device for preventing network attacks.
根据本说明书一个或多个实施例的第一方面,提出了一种防范网络攻击的方法,应用于区块链网络中的验证节点,包括:向所述区块链网络中的待验证节点发送验证请求,所述验证请求包括所述验证节点从本地维护的区块中选取的待验证区块的区块高度;接收所述待验证节点响应于所述验证请求发送的验证应答,所述验证应答包括第一区块信息;在第一区块信息与所述待验证区块对应的第二区块信息匹配失败的情况下确定所述待验证节点验证失败;在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,与所述待验证节点断开连接。According to a first aspect of one or more embodiments of this specification, a method for preventing network attacks is proposed, which is applied to a verification node in a blockchain network, including: sending a message to a node to be verified in the blockchain network. Verification request, the verification request includes the block height of the block to be verified selected by the verification node from the locally maintained blocks; receiving the verification response sent by the node to be verified in response to the verification request, the verification The response includes the first block information; when the first block information fails to match the second block information corresponding to the block to be verified, it is determined that the verification of the node to be verified fails; when it is determined that the verification of the node to be verified fails. If the first number of failures exceeds the first preset threshold, the connection with the node to be verified is disconnected.
根据本说明书一个或多个实施例的第二方面,提出了一种防范网络攻击的装置,应用于区块链网络中的验证节点,包括:请求发送单元,用于向所述区块链网络中的待验证节点发送验证请求,所述验证请求包括所述验证节点从本地维护的区块中选取的待验证区块的区块高度;应答接收单元,用于接收所述待验证节点响应于所述验证请求发送的验证应答,所述验证应答包括第一区块信息;验证单元,用于在第一区块信息与所述待验证区块对应的第二区块信息匹配失败的情况下确定所述待验证节点验证失败;连接断开单元,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,与所述待验证节点断开连接。According to the second aspect of one or more embodiments of this specification, a device for preventing network attacks is proposed, which is applied to a verification node in a blockchain network and includes: a request sending unit for sending a request to the blockchain network. The node to be verified in sends a verification request, the verification request includes the block height of the block to be verified selected by the verification node from the locally maintained blocks; a response receiving unit is used to receive the response of the node to be verified A verification response sent by the verification request, the verification response including the first block information; a verification unit used to fail to match the first block information with the second block information corresponding to the block to be verified. It is determined that the node to be verified has failed to verify; a connection disconnecting unit is configured to disconnect from the node to be verified if it is determined that the first number of verification failures of the node to be verified exceeds a first preset threshold.
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器。其中,所述处理器通过运行所述可执行指令以实 现如第一方面所述的方法。According to a third aspect of one or more embodiments of this specification, an electronic device is proposed, including: a processor; and a memory for storing instructions executable by the processor. Wherein, the processor implements the method described in the first aspect by running the executable instructions.
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。According to a fourth aspect of one or more embodiments of this specification, a computer-readable storage medium is proposed, on which computer instructions are stored, and when the instructions are executed by a processor, the steps of the method described in the first aspect are implemented.
基于本说明书的前述实施例,提出了一种确保区块链网络中各节点维护有同一套区块链账本的验证机制,待验证节点需要基于验证请求中的区块高度向验证节点提供正确的区块信息,否则待验证节点会被验证节点视为故障节点,或者被视为异形攻击的攻击方,即待验证节点实际上未与验证节点维护有同一套区块链账本,而是复用了同一套底层P2P网络的通讯模组,导致实际处于不同区块链网络中的节点能够违规访问,此时验证节点通过与被视为故障节点或攻击方的待验证节点断开连接,从而能够及时排除威胁系统正常运行或网络安全的风险。另外,即使作为待验证节点的攻击方通过其他手段能够提供正确的区块信息来规避强制断线,本说明书的前述实施例也能客观上增加攻击方维持与区块链网络之间连接的成本,从而通过增加攻击成本的方式间接提高区块链网络防范网络攻击的能力。Based on the foregoing embodiments of this specification, a verification mechanism is proposed to ensure that each node in the blockchain network maintains the same set of blockchain ledgers. The node to be verified needs to provide the correct verification node based on the block height in the verification request. Block information, otherwise the node to be verified will be regarded as a fault node by the verification node, or as an attacker of a special attack, that is, the node to be verified does not actually maintain the same set of blockchain ledgers as the verification node, but reuses them. The same set of communication modules of the underlying P2P network is used, causing nodes actually in different blockchain networks to be able to access illegally. At this time, the verification node disconnects from the node to be verified that is regarded as a fault node or attacker, so that it can Eliminate risks that threaten the normal operation of the system or network security in a timely manner. In addition, even if the attacker as the node to be verified can provide correct block information through other means to avoid forced disconnection, the foregoing embodiments of this specification can objectively increase the cost of the attacker maintaining the connection with the blockchain network. , thereby indirectly improving the blockchain network's ability to prevent cyber attacks by increasing attack costs.
附图说明Description of drawings
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。In order to explain the technical solutions of the embodiments of this specification more clearly, the drawings needed to be used in the description of the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some of the embodiments recorded in this specification. , for those of ordinary skill in the art, other drawings can also be obtained based on these drawings without exerting creative labor.
图1是一示例性实施例提供的一种区块链网络的示意图。Figure 1 is a schematic diagram of a blockchain network provided by an exemplary embodiment.
图2是一示例性实施例提供的一种防范网络攻击的方法的流程图。Figure 2 is a flow chart of a method for preventing network attacks provided by an exemplary embodiment.
图3是一示例性实施例提供的一种设备的结构示意图。Figure 3 is a schematic structural diagram of a device provided by an exemplary embodiment.
图4是一示例性实施例提供的一种防范网络攻击的装置的框图。Figure 4 is a block diagram of a device for preventing network attacks provided by an exemplary embodiment.
具体实施方式Detailed ways
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都 应当属于本说明书保护的范围。In order to enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below in conjunction with the accompanying drawings in the embodiments of this specification. Obviously, the described The embodiments are only some of the embodiments of this specification, but not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by those of ordinary skill in the art without creative efforts should fall within the scope of protection of this specification.
P2P(Peer to Peer)网络,即点对点网络,或称为对等网络,是一种有别于C/S(客户端/服务器)模式的分布式网络。在P2P网络中所有的节点彼此之间都处于对等地位,每个节点既能充当客户端又能作为服务器向其他节点提供资源与服务。例如,区块链网络就属于一种典型的P2P网络,本说明书实施例所涉及的P2P网络可以为区块链网络,而P2P网络中包含的节点均属于该区块链网络中的区块链节点。P2P (Peer to Peer) network, that is, point-to-point network, or peer-to-peer network, is a distributed network that is different from the C/S (client/server) model. All nodes in the P2P network are in a peer-to-peer position with each other, and each node can act as both a client and a server to provide resources and services to other nodes. For example, the blockchain network is a typical P2P network. The P2P network involved in the embodiments of this specification can be a blockchain network, and the nodes included in the P2P network all belong to the blockchain in the blockchain network. node.
图1是一示例性实施例提供的一种区块链网络的示意图。如图1所示,区块链网络中的包含有5个节点已入网,分别为nodeA、nodeB、nodeC、nodeD和nodeE,其中,这5个节点之间并非是全连接的关系,例如nodeA就只与nodeB、nodeC和nodeD建立有连接而未与nodeE建立有连接。每个节点本地维护有独立的节点列表,该节点列表中记录有与该节点建立有连接的同一区块链网络中其他节点的节点信息,因此该节点列表也被称为邻居表,例如nodeA维护的节点列表中就记录有nodeB、nodeC和nodeD的节点信息。另外,从功能性的角度上来说,该节点列表还可以作为路由表指导消息传输。在本说明书实施例中,任一节点的节点信息可以包括所述任一节点的节点标识、网络地址(如IP地址、端口号等)和/或该节点的身份信息(如节点公钥)等,本说明书并不对此进行限定。本说明书实施例所涉及的连接是指网络连接,例如会话层的TCP或TLS连接等,本说明书实施例对此并不作任何限制。需要注意的是,任一节点维护的节点列表中维护的节点信息对应的节点并不一定与该任一节点存在物理上直连关系,即与该任一节点建立有网络连接的其他节点可能与该任一节点之间存在多跳关系。Figure 1 is a schematic diagram of a blockchain network provided by an exemplary embodiment. As shown in Figure 1, the blockchain network contains 5 nodes that have been connected to the network, namely nodeA, nodeB, nodeC, nodeD and nodeE. Among them, the relationship between these 5 nodes is not fully connected. For example, nodeA Only connections are established with nodeB, nodeC and nodeD but no connection is established with nodeE. Each node maintains an independent node list locally. The node list records the node information of other nodes in the same blockchain network that are connected to the node. Therefore, the node list is also called a neighbor table. For example, nodeA maintains The node information of nodeB, nodeC and nodeD is recorded in the node list. In addition, from a functional perspective, the node list can also be used as a routing table to guide message transmission. In the embodiment of this specification, the node information of any node may include the node identification, network address (such as IP address, port number, etc.) of any node, and/or the node's identity information (such as node public key), etc. , this manual does not limit this. The connection involved in the embodiment of this specification refers to a network connection, such as a TCP or TLS connection at the session layer, and the embodiment of this specification does not impose any limitation on this. It should be noted that the node corresponding to the node information maintained in the node list maintained by any node does not necessarily have a physical direct connection with the node, that is, other nodes that have network connections with the node may be connected to the node. There is a multi-hop relationship between any of the nodes.
在区块链技术领域,由于区块链相关代码复用的现象大量存在,这导致不同的区块链网络可能使用了相同的P2P网络作为底层通讯基础,从而最终导致了异形攻击的发生。异形攻击属于一种网络攻击,又称地址污染攻击,是指诱使不同区块链网络中的节点之间互相发现、互联、侵入的一种攻击手法。那么如果攻击者执行了异形攻击,就有可能导致不同区块链网络中的节点之间互相缠绕在一起,影响各自区块链网络中节点内部的通信和路由,进而影响到执行交易、区块共识的安全性,让攻击者有机会施行其他的攻击,比如DDoS(Distributed Denial of Service,分布式拒绝服务)攻击、网络分裂攻击等。In the field of blockchain technology, due to the large number of blockchain-related code reuse phenomena, different blockchain networks may use the same P2P network as the underlying communication basis, which ultimately leads to the occurrence of alien attacks. Alien attack is a type of network attack, also known as address pollution attack. It refers to an attack method that induces nodes in different blockchain networks to discover, interconnect, and invade each other. So if an attacker performs a special attack, it may cause nodes in different blockchain networks to become entangled with each other, affecting the communication and routing within the nodes in their respective blockchain networks, and thus affecting the execution of transactions and blocks. The security of the consensus gives attackers the opportunity to carry out other attacks, such as DDoS (Distributed Denial of Service) attacks, network split attacks, etc.
在正常情况下,一个P2P网络只会专门对接一个区块链网络,即P2P网络中的各节点只会维护同一套区块链账本,并只对维护有该套区块链账本的节点承担通讯服务。而异形攻击之所以会发生,其本质上是由于同一个P2P网络承担了多个区块链网络的通讯 服务的职能,即P2P网络除了对接其对应的专用区块链网络之外,还因为代码复用的关系导致该区块链网络错误加入了一些来自其他区块链网络中的节点,这最终体现在区块链网络中的节点可能分别维护有不同的区块链账本(因为这些节点本来就不属于同一个区块链网络)。针对上述问题,本说明书实施例提出了一种防范异形攻击的方法,通过区块链网络中的验证节点向区块链网络中的待验证节点发起用于验证彼此是否维护有同一套区块链账本的验证请求,并在验证失败的次数达到预设阈值的情况下与所述待验证节点断开连接,从而确保区块链网络中的节点都属于同一个区块链网络,也就减少了遭遇异形攻击的可能性。Under normal circumstances, a P2P network will only be specifically connected to one blockchain network, that is, each node in the P2P network will only maintain the same set of blockchain ledgers, and will only be responsible for communicating with the nodes that maintain this set of blockchain ledgers. Serve. The reason why alien attacks occur is essentially because the same P2P network assumes the function of communication services for multiple blockchain networks. That is, in addition to docking with its corresponding dedicated blockchain network, the P2P network also The reuse relationship caused the blockchain network to mistakenly add some nodes from other blockchain networks. This is ultimately reflected in the fact that the nodes in the blockchain network may maintain different blockchain ledgers (because these nodes originally do not belong to the same blockchain network). In response to the above problems, the embodiment of this specification proposes a method to prevent alien attacks. The verification node in the blockchain network initiates an attack to the node to be verified in the blockchain network to verify whether each other maintains the same set of blockchains. Verification request of the ledger, and disconnects from the node to be verified when the number of verification failures reaches the preset threshold, thereby ensuring that the nodes in the blockchain network all belong to the same blockchain network, thus reducing The possibility of encountering alien attacks.
区块链网络中主动验证其他节点是否与其维护有同一套区块链账本的节点称为验证节点,而区块链网络中被执行上述验证的节点则称为待验证节点。在本说明书实施例中,验证节点可以是已加入区块链网络当中的任何一个节点,验证节点通常需要确保自身是可信的、开源的,并且,为了确保验证节点大概率是维护了正确的区块链账本(避免验证节点本身就是错误加入区块链网络的其他区块链网络中节点的现象),可以将最初建立区块链网络时的初始节点作为验证节点,或者将区块链网络中的通信支柱节点(通常与区块链网络中的其他节点建立有较多的连接,这种节点通常被认为是骨干节点,其维护有正确区块链账本的概率相对较大)作为验证节点。以图1为例,nodeA可以向已建立连接的nodeB发送验证请求从而对nodeB进行是否维护有同一套区块链账本的验证,此时nodeA作为验证节点,而nodeB则作为待验证节点。The node in the blockchain network that actively verifies whether other nodes maintain the same set of blockchain ledgers is called a verification node, and the node in the blockchain network that is subject to the above verification is called a node to be verified. In the embodiment of this specification, the verification node can be any node that has joined the blockchain network. The verification node usually needs to ensure that it is trustworthy and open source, and in order to ensure that the verification node maintains the correct Blockchain ledger (to avoid the phenomenon that the verification node itself is a node in other blockchain networks mistakenly added to the blockchain network), the initial node when the blockchain network is first established can be used as the verification node, or the blockchain network can be The communication pillar node (usually has many connections with other nodes in the blockchain network. This node is usually considered a backbone node and has a relatively high probability of maintaining a correct blockchain ledger) as a verification node. . Taking Figure 1 as an example, nodeA can send a verification request to nodeB that has established a connection to verify whether nodeB maintains the same set of blockchain ledgers. At this time, nodeA serves as the verification node, and nodeB serves as the node to be verified.
请参见图2,图2是一示例性实施例提供的一种防范网络攻击的方法的流程图。如图2所示,所述方法应用于区块链网络中的验证节点,可以包括下述步骤202-208。Please refer to Figure 2. Figure 2 is a flow chart of a method for preventing network attacks provided by an exemplary embodiment. As shown in Figure 2, the method is applied to verification nodes in the blockchain network and may include the following steps 202-208.
步骤202:向所述区块链网络中的待验证节点发送验证请求,所述验证请求包括所述验证节点从本地维护的区块中选取的待验证区块的区块高度。Step 202: Send a verification request to the node to be verified in the blockchain network, where the verification request includes the block height of the block to be verified selected by the verification node from locally maintained blocks.
验证节点在确定自身需要向待验证节点发送验证请求后,首先需要确定一个区块高度携带在验证请求中并作为待验证节点获取第一区块信息的依据。具体而言,验证节点可以从本地维护的区块链账本中选取一个区块作为待验证区块,进而将该待验证区块的区块高度携带在验证请求中。在本说明书实施例中,所述待验证区块由所述验证节点从本地维护的区块中按照预设选取规则或随机选取得到。当待验证区块是由验证节点从自身维护的区块链账本中随机选取得到时,可以最大限度地确保验证任务的随机性,防止待验证节点预先准备对应区块高度的区块信息而非临时获取第一区块信息。After the verification node determines that it needs to send a verification request to the node to be verified, it first needs to determine a block height to carry in the verification request and serve as the basis for the node to be verified to obtain the first block information. Specifically, the verification node can select a block from the locally maintained blockchain ledger as the block to be verified, and then carry the block height of the block to be verified in the verification request. In the embodiment of this specification, the block to be verified is obtained by the verification node from locally maintained blocks according to preset selection rules or random selection. When the block to be verified is randomly selected by the verification node from the blockchain ledger maintained by itself, the randomness of the verification task can be ensured to the greatest extent and prevent the node to be verified from preparing the block information corresponding to the block height in advance. Temporarily obtain the first block information.
在本说明书实施例中,所述向所述区块链网络中的待验证节点发送验证请求,包括: 向所述区块链网络中的待验证节点周期性发送验证请求。在本说明书实施例中,区块链网络中的任一节点都可以作为验证节点向其他节点发送验证请求,并且验证节点也可以同时向多个待验证节点发送验证请求,另外,对于每一个待验证节点而言,也可以周期性地向待验证节点发送验证请求。在向不同的待验证节点发起验证请求或周期性发送验证请求时,由于每次生成验证请求时都需要重新选取一次对应的待验证区块,因此每个验证请求中携带的区块高度均不一定相同。当验证是否维护同一个区块链账本的过程是区块链网络中一个普遍化、持续性的行为时,便能够持续性地确保区块链网络中的节点都维护有相同的区块链账本,属于同一个区块链网络,从而进一步增加了区块链网络整体地抗系统故障(因为导致验证失败的原因也可能是待检测节点为故障节点)以及防范异形攻击的能力。In the embodiment of this specification, sending a verification request to a node to be verified in the blockchain network includes: periodically sending a verification request to a node to be verified in the blockchain network. In the embodiment of this specification, any node in the blockchain network can serve as a verification node and send verification requests to other nodes, and the verification node can also send verification requests to multiple nodes to be verified at the same time. In addition, for each node to be verified, As for the verification node, it can also periodically send verification requests to the node to be verified. When initiating verification requests to different nodes to be verified or sending verification requests periodically, since the corresponding block to be verified needs to be re-selected each time a verification request is generated, the height of the block carried in each verification request is different. Must be the same. When the process of verifying whether the same blockchain ledger is maintained is a universal and continuous behavior in the blockchain network, it can continuously ensure that the nodes in the blockchain network maintain the same blockchain ledger. , belong to the same blockchain network, thus further increasing the overall resistance of the blockchain network to system failures (because the cause of verification failure may also be that the node to be detected is a faulty node) and the ability to prevent alien attacks.
步骤204:接收所述待验证节点响应于所述验证请求发送的验证应答,所述验证应答包括第一区块信息。Step 204: Receive a verification response sent by the node to be verified in response to the verification request, where the verification response includes first block information.
待验证节点在接收到验证请求后,将响应于该验证请求并从中获取对应的区块高度,并在待验证节点的本地查找其维护的区块链账本中对应所述区块高度的第一区块,同时确定第一区块对应的第一区块信息,并将携带有第一区块信息的验证应答发送至验证节点,以供验证节点进行后续的验证。在本说明书实施例中,第一区块信息可以包括第一区块本身或者第一区块对应的哈希值。After receiving the verification request, the node to be verified will respond to the verification request and obtain the corresponding block height, and locally search for the first block height corresponding to the block height in the blockchain ledger maintained by the node to be verified. block, and at the same time determine the first block information corresponding to the first block, and send the verification response carrying the first block information to the verification node for subsequent verification by the verification node. In the embodiment of this specification, the first block information may include the first block itself or the hash value corresponding to the first block.
与此同时,为了证明待验证节点得到的第一区块信息是待验证节点自身通过查询区块链账本所得到的,因此还需要向验证节点提供对应的身份证明,以用于证明第一区块信息是待验证节点所获取的。具体而言,待验证节点在得到第一区块信息后,还会针对第一区块信息生成对应的签名,该签名是待验证节点使用自身持有的待验证节点的节点私钥对第一区块信息进行加密得到的。At the same time, in order to prove that the first block information obtained by the node to be verified was obtained by the node to be verified by querying the blockchain ledger, it is also necessary to provide the corresponding identity certificate to the verification node to prove the first block. The block information is obtained by the node to be verified. Specifically, after the node to be verified obtains the first block information, it will also generate a corresponding signature for the first block information. This signature is the node private key of the node to be verified that it holds for the first block. The block information is encrypted.
最后,待验证节点会将自身得到的第一区块信息和针对该第一区块信息生成的签名发送至验证节点,以供验证节点进行验证,当然,待验证节点还可以同时将待验证节点的节点公钥也一并发送至验证节点。Finally, the node to be verified will send the first block information obtained by itself and the signature generated for the first block information to the verification node for verification by the verification node. Of course, the node to be verified can also send the node to be verified at the same time. The node public key is also sent to the verification node.
步骤206:在第一区块信息与所述待验证区块对应的第二区块信息匹配失败的情况下确定所述待验证节点验证失败。Step 206: Determine that the node to be verified fails to verify if the first block information fails to match the second block information corresponding to the block to be verified.
验证节点在接收到待验证节点发送的验证应答后,会从验证应答中获取第一区块信息。另外,验证节点还需要从验证节点本地维护的区块链账本中获取之前选取的待验证 区块,同时确定待验证区块对应的第二区块信息,第二区块信息包括所述待验证区块或所述待验证区块对应的哈希值,例如当第一区块信息为第一区块时,第二区块信息就为第二区块,而当第一区块信息为第一区块对应的哈希值时,第二区块信息就为第二区块对应的哈希值。验证节点获取第二区块信息的过程可以发生在验证节点选取出待选取区块到验证节点需要将第一区块信息与第二区块信息进行匹配之间的任何时间点。After receiving the verification response sent by the node to be verified, the verification node will obtain the first block information from the verification response. In addition, the verification node also needs to obtain the previously selected block to be verified from the blockchain ledger maintained locally by the verification node, and at the same time determine the second block information corresponding to the block to be verified. The second block information includes the to-be-verified block. block or the hash value corresponding to the block to be verified. For example, when the first block information is the first block, the second block information is the second block, and when the first block information is the When the hash value corresponding to one block is determined, the information of the second block is the hash value corresponding to the second block. The process of the verification node obtaining the second block information can occur at any time point between the verification node selecting the block to be selected and the verification node needing to match the first block information with the second block information.
验证节点在同时获取到第一区块信息与第二区块信息后,就可以将第一区块信息与第二区块信息进行匹配以比对二者是否一致,在二者比对一致的情况下确定匹配成功,在二者比对不一致的情况下确定匹配失败。如果待验证节点与验证节点维护有相同的区块链账本,那么它们在同一区块高度下取出的区块应该相同,对应的第一区块信息与第二区块信息也应该匹配成功,而如果最终第一区块信息与第二区块信息匹配失败,则可以说明待验证节点与验证节点分别维护有不同的区块链账本或者待验证节点发送故障,此时可以确定待验证节点关于是否与验证节点维护有同一套区块链账本的验证结果为验证失败。After the verification node obtains the first block information and the second block information at the same time, it can match the first block information and the second block information to compare whether they are consistent. If the two are consistent, If the comparison is inconsistent, the match is determined to be successful; if the comparison between the two is inconsistent, the match is determined to be failed. If the node to be verified and the verification node maintain the same blockchain ledger, then the blocks they take out at the same block height should be the same, and the corresponding first block information and second block information should also match successfully, and If the final matching of the first block information and the second block information fails, it can mean that the node to be verified and the verification node respectively maintain different blockchain ledgers or the node to be verified has a transmission failure. At this time, it can be determined whether the node to be verified is The verification result of the same set of blockchain ledgers maintained by the verification node is verification failure.
除了上述通过第一区块信息与第二区块信息进行匹配以确定所述待验证节点是否验证失败的验证方式,本说明书实施例还提供其他额外的能够确定待验证节点是否验证失败的验证方式。In addition to the above verification method of determining whether the node to be verified has failed to verify by matching the first block information with the second block information, embodiments of this specification also provide other additional verification methods to determine whether the node to be verified has failed to verify. .
可选的,还包括:在发送所述验证请求后的第一预设时长内未接收到所述验证应答的情况下确定所述待验证节点验证失败。在本说明书实施例中,验证节点要求待验证节点在规定的第一预设时长内返回验证响应,否则即认为待验证节点验证失败,即使后续接收到的验证应答中的第一区块信息能够与第二区块信息匹配成功。假设待验证节点本身就是与验证节点属于同一区块链网络,即待验证节点维护有验证节点所维护的相同的区块链账本,那么待验证节点获取第一区块信息的方式就是在本地根据区块高度进行查找,这个过程的效率理论上是较快的;而如果待验证节点本身并未维护(或未完全维护)有验证节点所处区块链网络对应的完整区块链账本,而是希望通过其他手段(例如首先访问验证节点所处区块链网络的公开平台去查询到对应区块高度的第一区块)来获取到第一区块信息,从而伪造自身处于验证节点所处区块链网络的身份,那么这个过程相较于直接在本地查找并获取第一区块信息而言其消耗的时间成本更高。因此,可以通过对待验证节点返回验证响应的时长进行限制,以识别出那些企图通过上述方式来伪造自身真实身份的攻击方,进而在超过返回验证响应的规定时长的情况下将待验证节点视为攻击方并确定该待验证节点验证失败,从而尽可能避免作为攻击方的待验证节点通过其他 手段规避验证失败的情况或增加攻击方的攻击成本,提高了区块链网络防范网络攻击的能力。Optionally, the method further includes: determining that the node to be verified has failed in verification if the verification response is not received within a first preset time period after sending the verification request. In the embodiment of this specification, the verification node requires the node to be verified to return a verification response within the first preset time period, otherwise it is considered that the verification of the node to be verified has failed, even if the first block information in the subsequent verification response received can Successfully matched with the second block information. Assuming that the node to be verified belongs to the same blockchain network as the verification node, that is, the node to be verified maintains the same blockchain ledger maintained by the verification node, then the way for the node to be verified to obtain the first block information is to obtain the first block information locally based on Searching at block height, the efficiency of this process is theoretically faster; and if the node to be verified does not maintain (or is not fully maintained) a complete blockchain ledger corresponding to the blockchain network where the verification node is located, and It is hoped to obtain the first block information through other means (such as first accessing the public platform of the blockchain network where the verification node is located to query the first block corresponding to the block height), thereby forging that it is at the location of the verification node. The identity of the blockchain network, then this process is more time-consuming than directly searching and obtaining the first block information locally. Therefore, the length of time for the node to be verified to return the verification response can be limited to identify those attackers who attempt to forge their true identity through the above methods, and then the node to be verified will be regarded as The attacker also determines that the node to be verified has failed to verify, thereby avoiding as much as possible the node to be verified as the attacker using other means to avoid verification failure or increasing the attack cost of the attacker, thereby improving the blockchain network's ability to prevent network attacks.
可选的,所述验证应答还包括所述待验证节点针对第一区块信息生成的签名,所述方法还包括:基于所述待验证节点的节点公钥对所述签名进行验签,在所述签名验签失败的情况下确定所述待验证节点验证失败。如前所述,待验证节点还可以像验证节点提供第一区块信息的签名以证明自身的身份。当验证节点在对所述签名进行验签时,需要使用自身预先维护的或待验证节点临时提供的待验证节点的节点公钥对所述签名进行解密,将得到的解密结果与第一区块信息进行比对,如果比对一致则说明第一区块信息的来源方的确为所述待验证节点,从而确定所述签名验签成功,而如果比对不一致则说明第一区块信息的来源方不为所述待验证节点,从而确定所述签名验签失败,而在验签失败的情况下即视为所述待验证节点验证,从而避免作为攻击方的待验证节点通过伪造身份的方式规避验证失败的情况或增加攻击方的攻击成本,提高了区块链网络防范网络攻击的能力。Optionally, the verification response also includes a signature generated by the node to be verified for the first block information, and the method further includes: verifying the signature based on the node public key of the node to be verified, in If the signature verification fails, it is determined that the node to be verified fails to verify. As mentioned above, the node to be verified can also provide the verification node with the signature of the first block information to prove its identity. When the verification node verifies the signature, it needs to use the node public key of the node to be verified that is maintained in advance by itself or temporarily provided by the node to be verified, and the obtained decryption result is compared with the first block The information is compared. If the comparison is consistent, it means that the source of the first block information is indeed the node to be verified, thereby determining that the signature verification is successful. If the comparison is inconsistent, it means the source of the first block information. The party is not the node to be verified, thereby determining that the signature verification fails. If the signature verification fails, it is deemed to be verified by the node to be verified, thereby preventing the node to be verified as an attacker from forging its identity. Avoiding verification failure or increasing the attack cost of the attacker improves the ability of the blockchain network to prevent network attacks.
步骤208:在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,与所述待验证节点断开连接。Step 208: If it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, disconnect the node to be verified.
验证节点会统计待验证节点验证失败的总次数(第一次数),当待验证节点历史上验证失败的第一次数超过预先设置的第一预设阈值的情况下,验证节点则可以完全确认其与待验证节点并非属于同一个区块链网络,因此需要断开与待验证节点之间的连接,以将待验证节点从区块链网络中退出,保证P2P网络只对接于同一个区块链网络,其包含的节点均只维护有同一套的区块链账本,避免区块链网络受到异形攻击。另外,由于本说明书实施例需要在验证失败达到一定的阈值后才会断开与待验证节点之间的连接,因此也保有一定的容错机制,尽可能减小误将暂时故障的正常节点退出区块链网络导致误杀的可能性。The verification node will count the total number of verification failures (the first number) of the node to be verified. When the first number of verification failures in the history of the node to be verified exceeds the first preset threshold, the verification node can completely Confirm that it does not belong to the same blockchain network as the node to be verified, so it is necessary to disconnect the node to be verified to exit the node to be verified from the blockchain network to ensure that the P2P network is only connected to the same area The nodes in the blockchain network only maintain the same set of blockchain ledgers to prevent the blockchain network from being attacked by aliens. In addition, since the embodiments of this specification need to disconnect the connection with the node to be verified only after the verification failure reaches a certain threshold, a certain fault-tolerant mechanism is also maintained to minimize the possibility of accidentally leaving a temporarily faulty normal node out of the area. Blockchain networks lead to the possibility of manslaughter.
基于本说明书的前述实施例,提出了一种确保区块链网络中各节点维护有同一套区块链账本的验证机制,待验证节点需要基于验证请求中的区块高度向验证节点提供正确的区块信息,否则待验证节点会被验证节点视为故障节点,或者被视为异形攻击的攻击方,即待验证节点实际上未与验证节点维护有同一套区块链账本,而是复用了同一套底层P2P网络的通讯模组,导致实际处于不同区块链网络中的节点能够违规访问,此时验证节点通过与被视为故障节点或攻击方的待验证节点断开连接,从而能够及时排除威胁系统正常运行或网络安全的风险。另外,即使作为待验证节点的攻击方通过其他手段能 够提供正确的区块信息来规避强制断线,本说明书的前述实施例也能客观上增加攻击方维持与区块链网络之间连接的成本,从而通过增加攻击成本的方式间接提高区块链网络防范网络攻击的能力。Based on the foregoing embodiments of this specification, a verification mechanism is proposed to ensure that each node in the blockchain network maintains the same set of blockchain ledgers. The node to be verified needs to provide the correct verification node based on the block height in the verification request. Block information, otherwise the node to be verified will be regarded as a fault node by the verification node, or as an attacker of a special attack, that is, the node to be verified does not actually maintain the same set of blockchain ledgers as the verification node, but reuses them. The same set of communication modules of the underlying P2P network is used, causing nodes actually in different blockchain networks to be able to access illegally. At this time, the verification node disconnects from the node to be verified that is regarded as a fault node or attacker, so that it can Eliminate risks that threaten the normal operation of the system or network security in a timely manner. In addition, even if the attacker as the node to be verified can provide correct block information through other means to avoid forced disconnection, the foregoing embodiments of this specification can objectively increase the cost of the attacker maintaining the connection with the blockchain network. , thereby indirectly improving the blockchain network's ability to prevent cyber attacks by increasing attack costs.
可选的,还包括:在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,将所述待验证节点的节点信息从所述验证节点维护的节点列表中删除。如前所述,区块链网络中的每个节点都会维护一个节点列表用于存放与该节点建立有连接的其他节点的节点信息。在本说明书实施例中,由于验证节点与待验证节点在之前建立有连接,因此待验证节点的节点信息存放在验证节点的节点列表中。而在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,验证节点会断开与待验证节点之间的连接,同时验证节点还会在自身维护节点列表中删除原先存有的待验证节点的节点信息从而遗忘待验证节点,释放节点列表的存储空间。Optionally, it also includes: when it is determined that the first number of verification failures of the node to be verified exceeds a first preset threshold, removing the node information of the node to be verified from the node list maintained by the verification node. delete. As mentioned before, each node in the blockchain network maintains a node list to store node information of other nodes that are connected to the node. In the embodiment of this specification, since the verification node and the node to be verified have previously established a connection, the node information of the node to be verified is stored in the node list of the verification node. When it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, the verification node will disconnect from the node to be verified, and at the same time, the verification node will also maintain the node list in its own maintenance node list. Delete the previously existing node information of the node to be verified so that the node to be verified is forgotten and the storage space of the node list is released.
可选的,所述方法还包括:在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,向所述区块链网络中的网络管理合约发起包含所述待验证节点的节点信息的节点删除交易,以使所述网络管理合约删除维护于所述网络管理合约中所述待验证节点的节点信息。在本说明书实施例中,区块链网络部署的网络管理合约中维护有作为区块链网络中所有成员的各区块链节点的节点信息(包括待验证节点的节点信息),因此,在确定需要将待验证节点退出区块链网络的情况下(即待验证节点被验证并不属于所述区块链网络),验证节点还可以通过向网络管理合约发起节点删除交易以使所述网络管理合约删除维护于所述网络管理合约中所述待验证节点的节点信息,保证区块链节点中节点成员的正确性。Optionally, the method further includes: when it is determined that the first number of verification failures of the node to be verified exceeds a first preset threshold, initiating a verification process including the verification to the network management contract in the blockchain network. The node deletion transaction of the node information of the node to be verified causes the network management contract to delete the node information of the node to be verified maintained in the network management contract. In the embodiment of this specification, the network management contract deployed by the blockchain network maintains the node information of each blockchain node as all members of the blockchain network (including the node information of the node to be verified). Therefore, when determining the need When the node to be verified exits the blockchain network (that is, the node to be verified is verified and does not belong to the blockchain network), the verification node can also initiate a node deletion transaction to the network management contract to make the network management contract Delete the node information maintained on the node to be verified in the network management contract to ensure the correctness of the node members in the blockchain node.
可选的,还包括:在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,向所述区块链网络中的其他节点发送携带有所述待验证节点的节点信息的可疑节点通知,以使所述其他节点响应于所述可疑节点通知向所述待验证节点发送验证请求。在本说明书实施例中,验证节点在待验证节点验证失败的第一次数超过第一预设阈值的情况下,除了会断开与待验证节点之间的连接,还会进一步以可疑节点通知的方式告知区块链网络中的其他节点,以使这些其他节点也能够知晓该待验证节点可能属于其他区块链网络的情况,从而分别作为验证节点的身份再向该待验证节点发送验证请求,即分别执行前述的步骤202至步骤208,再次向所述待验证节点发起关于是否与所述其他节点维护有相同区块链账本的验证过程,从而使得区块链网络中的各节点能够逐渐断开与所述待验证节点之间的连接,最终起到使被验证失败多次的待验证节点彻底退出区块链 网络的效果,本说明书实施例涉及的可疑节点通知机制提高了区块链网络整体上防范网络攻击的能力。Optionally, it also includes: when it is determined that the first number of failed verifications of the node to be verified exceeds a first preset threshold, sending a message carrying the node to be verified to other nodes in the blockchain network. Suspicious node notification of node information, so that the other nodes send a verification request to the node to be verified in response to the suspicious node notification. In the embodiment of this specification, when the number of verification failures of the node to be verified for the first time exceeds the first preset threshold, the verification node will not only disconnect from the node to be verified, but will also further notify the node with a suspicious node. Inform other nodes in the blockchain network in a way so that these other nodes can also know that the node to be verified may belong to other blockchain networks, and then send verification requests to the node to be verified as the identity of the verification node. , that is, perform the aforementioned steps 202 to 208 respectively, and again initiate the verification process to the node to be verified as to whether it maintains the same blockchain ledger as the other nodes, so that each node in the blockchain network can gradually Disconnecting the connection with the node to be verified will ultimately have the effect of causing the node to be verified that has failed to be verified multiple times to completely exit the blockchain network. The suspicious node notification mechanism involved in the embodiment of this specification improves the efficiency of the blockchain. The ability of the network as a whole to prevent cyber attacks.
可选的,还包括:在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,在距当前时刻之后的第三预设时长内拒绝响应所述待验证节点发送的连接请求。在本说明书实施例中,在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,除了需要与该待验证节点断开连接之外,还可以将该待验证节点加入连接黑名单中,使其在一段时间内无法再次与验证节点建立连接,从而避免作为攻击方的待验证节点持续通过发起请求连接的方式骚扰验证节点。本说明书实施例涉及的连接黑名单中的节点的节点信息会在被添加后的第三预设时长后自动删除,因此,在距与该待验证节点断开连接之后的第三预设时长之后,该待验证节点还是可以通过向验证节点发起连接请求的方式再次与验证节点建立连接。Optionally, it also includes: when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, refusing to respond to the node to be verified within a third preset time period after the current moment. The connection request sent. In the embodiment of this specification, when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, in addition to needing to disconnect from the node to be verified, the node to be verified can also be disconnected. The node is added to the connection blacklist so that it cannot establish a connection with the verification node again within a period of time, thereby preventing the node to be verified as an attacker from continuing to harass the verification node by initiating connection requests. The node information of the node in the connection blacklist involved in the embodiment of this specification will be automatically deleted after the third preset time period after being added. Therefore, after the third preset time period after disconnecting from the node to be verified, , the node to be verified can still establish a connection with the verification node again by initiating a connection request to the verification node.
可选的,所述待验证区块由所述验证节点从本地维护的验证难度值对应的选取范围的区块中选取得到,所述选取范围正相关于验证难度值;所述方法还包括:根据距当前时刻之前的第二预设时长内确定所述待验证节点验证失败的第二次数调整所述验证难度值,所述验证难度值正相关于第二次数。在本说明书实施例中,考虑到作为攻击方的待验证节点也可能通过其他手段在本地维护有与验证节点相同的区块链账本从而能够找到正确的第一区块信息从而规避验证失败的情况,但由于攻击成本的缘故可能不会在本地维护有完整的区块链账本(像正常的节点那样),因此本说明书实施例通过将待验证区块的选取范围按照验证难度值进行不同程度的调整,从而在高验证难度值的情况下要求作为攻击方的待验证节点本地必须维护有足够数量的与验证节点相同的区块链账本中的区块才能规避验证失败的情况,以间接增加攻击方的攻击成本。同时,验证节点所维护的验证难度值是可以动态调节的,例如根据近期确定所述待验证节点验证失败的第二次数(即距当前时刻之前的第二预设时长内确定所述待验证节点验证失败的第二次数)来调整所述验证难度值,由于第二次数客观上反映了待验证节点作为攻击方的可能性,因此本说明书实施例可以使得在待验证节点为攻击方的可能性较高的情况下,增加该待验证节点的验证难度(要求待验证节点维护正确区块链账本中更多的区块),来进一步提高攻击方通过规避验证失败的情况来进行网络攻击的成本,进一步提高区块链网络防范网络攻击的能力。另外,由于对于验证难度值的调节是动态进行的,例如当近期待验证节点验证失败的次数减少时,又可以适当减少当前的验证难度值,从而在待验证节点为攻击方的可能性较低的情况下降低正常验证行为所需要的成本(当待验证区块的选取范围较小时,待验证节点在获取第一区块信息时所需检索的范围也小,因此所需的 时间和计算成本更小)。Optionally, the block to be verified is selected by the verification node from blocks in a selection range corresponding to the locally maintained verification difficulty value, and the selection range is directly related to the verification difficulty value; the method further includes: The verification difficulty value is adjusted according to the second number of verification failures of the node to be verified within a second preset time period before the current time, and the verification difficulty value is positively related to the second number of times. In the embodiment of this specification, it is considered that the node to be verified as the attacker may also locally maintain the same blockchain ledger as the verification node through other means so as to be able to find the correct first block information and avoid verification failure. , but due to the cost of attack, a complete blockchain ledger may not be maintained locally (like a normal node). Therefore, in the embodiment of this specification, the selection range of the blocks to be verified is determined to varying degrees according to the verification difficulty value. Adjustment, so that in the case of high verification difficulty value, the node to be verified as the attacker must locally maintain a sufficient number of blocks in the same blockchain ledger as the verification node to avoid verification failure, thereby indirectly increasing attacks Party’s attack cost. At the same time, the verification difficulty value maintained by the verification node can be dynamically adjusted, for example, based on the recently determined second number of verification failures of the node to be verified (that is, the node to be verified is determined within the second preset time period before the current time). The second number of failed verifications) is used to adjust the verification difficulty value. Since the second number of times objectively reflects the possibility that the node to be verified is an attacker, the embodiments of this specification can make the possibility of the node to be verified being an attacker In higher cases, increase the verification difficulty of the node to be verified (requiring the node to be verified to maintain more blocks in the correct blockchain ledger) to further increase the cost of the attacker's network attack by circumventing verification failures. , to further improve the blockchain network’s ability to prevent cyber attacks. In addition, since the adjustment of the verification difficulty value is carried out dynamically, for example, when the number of verification failures of the verification node in the near future decreases, the current verification difficulty value can be appropriately reduced, so that the possibility of the node being verified as an attacker is lower. Reduce the cost required for normal verification behavior (when the selection range of the block to be verified is small, the range that the node to be verified needs to search when obtaining the first block information is also small, so the time and computing cost required smaller).
可选的,所述区块链网络部署的网络管理合约维护有所述验证难度值;所述根据距当前时刻之前的第二预设时长内确定所述待验证节点验证失败的第二次数调整所述验证难度值,包括:向所述区块链网络部署的网络管理合约发起包含第二次数的难度值调整交易,以使所述网络管理合约基于第二次数调整维护于所述网络管理合约中的所述验证难度值。Optionally, the network management contract deployed by the blockchain network maintains the verification difficulty value; the adjustment is based on the second number of verification failures of the node to be verified determined within a second preset time period before the current time. The verification difficulty value includes: initiating a difficulty value adjustment transaction including a second number of times to the network management contract deployed on the blockchain network, so that the network management contract is maintained in the network management contract based on the second number of adjustments. The verification difficulty value in .
在本说明书实施例中,验证节点维护的验证难度值具体存放在其部署的网络管理合约中。因此,在这种情况下,区块链网络中的每个区块链节点实际上通过维护相同的网络管理合约来共享同一个验证难度值,这使得其中任一区块链节点都可以在检测到某一个待验证节点为攻击方的可能性较大时,通过向网络管理合约发起证明难度值调整交易的方式来调整维护在网络管理合约中的验证难度值,来向区块链网络中的其他区块链节点告知针对该待验证节点进行验证行为时其验证难度值的变化,使得区块链网络具备根据当前网络环境的变化来整体调整所有节点的验证策略的功能,提高区块链网络整体上防范网络攻击的能力。In the embodiment of this specification, the verification difficulty value maintained by the verification node is specifically stored in the network management contract deployed by it. Therefore, in this case, each blockchain node in the blockchain network actually shares the same verification difficulty value by maintaining the same network management contract, which allows any one of the blockchain nodes to detect When a certain node to be verified is more likely to be an attacker, the verification difficulty value maintained in the network management contract is adjusted by initiating a proof difficulty value adjustment transaction to the network management contract to provide support to the blockchain network. Other blockchain nodes inform the changes in the verification difficulty value when performing verification actions on the node to be verified, so that the blockchain network has the function of overall adjusting the verification strategy of all nodes according to changes in the current network environment, improving the blockchain network Overall ability to protect against cyberattacks.
可选的,还包括:在距当前时刻之前的第四预设时长内接收到同一发起方发起的基于任一协议的历史消息的数量超出第二预设阈值的情况下,拒绝响应所述同一发起方发起的基于所述任一协议的消息。所述任一协议的消息至少包括连接协议中的连接请求、节点发现协议中的节点发现请求、验证是否维护有同一套区块链账本的验证协议中验证响应(主要是防止待验证节点针对同一个验证请求返回过量的验证应答导致验证节点宕机)等,本说明书实施例并不对协议的类型进行限制,但该协议一定被预先建立并维护在区块链网络中,以使得区块链网络中的节点能够识别并处理该协议对应的消息。通过本说明书实施例,可以通过统计接收到的各类协议的消息(包括各类请求或应答),并在其中来源于同一发起方的某一类协议的历史消息在短时间内过量的情况下,拒绝再次响应该同一发起方的该类协议的消息,从而有效地识别出攻击方并将其移入黑名单,有效防范例如泛洪攻击或DOS(Denial of Service,拒绝服务)攻击等相同攻击方通过超量发送消息的网络攻击方式。Optionally, it also includes: when the number of historical messages based on any protocol initiated by the same initiator received within a fourth preset time period before the current moment exceeds a second preset threshold, refuse to respond to the same Messages initiated by the initiator based on any of the protocols described. The messages of any of the protocols include at least a connection request in the connection protocol, a node discovery request in the node discovery protocol, and a verification response in the verification protocol to verify whether the same set of blockchain ledgers is maintained (mainly to prevent the node to be verified from targeting the same A verification request returns an excessive number of verification responses, causing the verification node to crash), etc. The embodiments of this specification do not limit the type of protocol, but the protocol must be pre-established and maintained in the blockchain network so that the blockchain network Nodes in can identify and process messages corresponding to this protocol. Through the embodiments of this specification, it is possible to count received messages of various protocols (including various types of requests or responses), and in the case where there are too many historical messages of a certain type of protocol originating from the same initiator in a short period of time. , refuse to respond to messages of this type of protocol from the same initiator again, thereby effectively identifying the attacker and moving it into the blacklist, effectively preventing the same attacker such as flooding attacks or DOS (Denial of Service, Denial of Service) attacks. A network attack method through excessive sending of messages.
图3是一示例性实施例提供的一种设备的示意结构图。请参考图3,在硬件层面,该设备包括处理器302、内部总线303、网络接口306、内存308以及非易失性存储器310,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器302从非易失性存储器310中读取对应的计算机程序到内 存308中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行方并不限定于各个逻辑单元,也可以是硬件或逻辑器件。Figure 3 is a schematic structural diagram of a device provided by an exemplary embodiment. Please refer to Figure 3. At the hardware level, the device includes a processor 302, an internal bus 303, a network interface 306, a memory 308 and a non-volatile memory 310. Of course, it may also include other hardware required for services. One or more embodiments of this specification may be implemented based on software. For example, the processor 302 reads the corresponding computer program from the non-volatile memory 310 into the memory 308 and then runs it. Of course, in addition to software implementation, one or more embodiments of this specification do not exclude other implementations, such as logic devices or a combination of software and hardware, etc. That is to say, the execution party of the following processing flow is not limited to each A logic unit can also be a hardware or logic device.
如图4所示,图4是本说明书根据一示例性实施例提供的一种防范网络攻击的装置的框图,该装置可以应用于如图3所示的设备中,以实现本说明书的技术方案。该装置应用于区块链网络中的验证节点,包括:请求发送单元401,用于向所述区块链网络中的待验证节点发送验证请求,所述验证请求包括所述验证节点从本地维护的区块中选取的待验证区块的区块高度;应答接收单元402,用于接收所述待验证节点响应于所述验证请求发送的验证应答,所述验证应答包括第一区块信息;验证单元403,用于在第一区块信息与所述待验证区块对应的第二区块信息匹配失败的情况下确定所述待验证节点验证失败;连接断开单元404,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,与所述待验证节点断开连接。As shown in Figure 4, Figure 4 is a block diagram of a device for preventing network attacks provided in this specification according to an exemplary embodiment. This device can be applied to the equipment shown in Figure 3 to implement the technical solution of this specification. . The device is applied to verification nodes in a blockchain network and includes: a request sending unit 401, used to send a verification request to a node to be verified in the blockchain network, where the verification request includes the verification node maintaining locally The block height of the block to be verified selected from the block; the response receiving unit 402 is used to receive the verification response sent by the node to be verified in response to the verification request, where the verification response includes the first block information; The verification unit 403 is used to determine that the node to be verified fails to verify when the first block information fails to match the second block information corresponding to the block to be verified; the connection disconnecting unit 404 is used to determine If the first number of verification failures of the node to be verified exceeds the first preset threshold, the connection with the node to be verified is disconnected.
可选的,所述请求发送单元401具体用于:向所述区块链网络中的待验证节点周期性发送验证请求。Optionally, the request sending unit 401 is specifically configured to periodically send verification requests to the nodes to be verified in the blockchain network.
可选的,第二区块信息包括所述待验证区块或所述待验证区块对应的哈希值。Optionally, the second block information includes the block to be verified or the hash value corresponding to the block to be verified.
可选的,所述待验证区块由所述验证节点从本地维护的区块中按照预设选取规则或随机选取得到。Optionally, the block to be verified is obtained by the verification node from locally maintained blocks according to preset selection rules or random selection.
可选的,所述待验证区块由所述验证节点从本地维护的验证难度值对应的选取范围的区块中选取得到,所述选取范围正相关于验证难度值;所述装置还包括:难度值调整单元405,用于根据距当前时刻之前的第二预设时长内确定所述待验证节点验证失败的第二次数调整所述验证难度值,所述验证难度值正相关于第二次数。Optionally, the block to be verified is selected by the verification node from blocks in a selection range corresponding to the locally maintained verification difficulty value, and the selection range is directly related to the verification difficulty value; the device further includes: The difficulty value adjustment unit 405 is configured to adjust the verification difficulty value according to the second number of failed verifications of the node to be verified within a second preset time period before the current time. The verification difficulty value is positively related to the second number of verification failures. .
可选的,所述区块链网络部署的网络管理合约维护有所述验证难度值;所述难度值调整单元405具体用于:向所述区块链网络部署的网络管理合约发起包含第二次数的难度值调整交易,以使所述网络管理合约基于第二次数调整维护于所述网络管理合约中的所述验证难度值。Optionally, the network management contract deployed on the blockchain network maintains the verification difficulty value; the difficulty value adjustment unit 405 is specifically configured to: initiate a second verification process to the network management contract deployed on the blockchain network. The number of difficulty value adjustment transactions is such that the network management contract adjusts the verification difficulty value maintained in the network management contract based on the second number of times.
可选的,还包括:验证失败确定单元406,用于在发送所述验证请求后的第一预设时长内未接收到所述验证应答的情况下确定所述待验证节点验证失败。Optionally, the method also includes: a verification failure determination unit 406, configured to determine that the node to be verified has failed in verification if the verification response is not received within a first preset time period after sending the verification request.
可选的,所述验证应答还包括所述待验证节点针对第一区块信息生成的签名,所述装置还包括:验签单元407,用于基于所述待验证节点的节点公钥对所述签名进行验签, 在所述签名验签失败的情况下确定所述待验证节点验证失败。Optionally, the verification response also includes a signature generated by the node to be verified for the first block information, and the device further includes: a signature verification unit 407 for verifying the signature based on the node public key of the node to be verified. The signature is verified, and if the signature verification fails, it is determined that the node to be verified has failed to verify.
可选的,还包括:列表信息删除单元408,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,将所述待验证节点的节点信息从所述验证节点维护的节点列表中删除。Optionally, it also includes: a list information deletion unit 408, configured to remove the node information of the node to be verified from all the nodes when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold. Delete from the node list maintained by the verification node.
可选的,还包括:节点删除交易发送单元409,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,向所述区块链网络中的网络管理合约发起包含所述待验证节点的节点信息的节点删除交易,以使所述网络管理合约删除维护于所述网络管理合约中所述待验证节点的节点信息。Optionally, it also includes: a node deletion transaction sending unit 409, configured to send a message to the network in the blockchain network when it is determined that the first number of failed verifications of the node to be verified exceeds the first preset threshold. The management contract initiates a node deletion transaction containing the node information of the node to be verified, so that the network management contract deletes the node information of the node to be verified maintained in the network management contract.
可选的,还包括:可疑节点通知发送单元410,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,向所述区块链网络中的其他节点发送携带有所述待验证节点的节点信息的可疑节点通知,以使所述其他节点响应于所述可疑节点通知向所述待验证节点发送验证请求。Optionally, it also includes: a suspicious node notification sending unit 410, configured to notify other nodes in the blockchain network when it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold. The node sends a suspicious node notification carrying the node information of the node to be verified, so that the other nodes send a verification request to the node to be verified in response to the suspicious node notification.
可选的,所述节点信息包括节点标识、节点公钥和/或网络地址。Optionally, the node information includes node identification, node public key and/or network address.
可选的,还包括:连接请求拒绝单元411,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,在距当前时刻之后的第三预设时长内拒绝响应所述待验证节点发送的连接请求。Optionally, it also includes: a connection request rejection unit 411, configured to, if it is determined that the first number of failed verifications of the node to be verified exceeds the first preset threshold, a third preset time period after the current moment. Refuse to respond to the connection request sent by the node to be verified.
可选的,还包括:响应拒绝单元412,用于在距当前时刻之前的第四预设时长内接收到同一发起方发起的基于任一协议的历史消息的数量超出第二预设阈值的情况下,拒绝响应所述同一发起方发起的基于所述任一协议的消息。Optionally, it also includes: a response rejection unit 412, used to receive the number of historical messages based on any protocol initiated by the same initiator within the fourth preset time period before the current moment exceeding the second preset threshold. , refuse to respond to messages based on any of the protocols initiated by the same initiator.
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开 发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。In the 1990s, improvements in a technology could be clearly distinguished as hardware improvements (for example, improvements in circuit structures such as diodes, transistors, switches, etc.) or software improvements (improvements in method processes). However, with the development of technology, many improvements in today's method processes can be regarded as direct improvements in hardware circuit structures. Designers almost always obtain the corresponding hardware circuit structure by programming the improved method flow into the hardware circuit. Therefore, it cannot be said that an improvement of a method flow cannot be implemented using hardware entity modules. For example, a Programmable Logic Device (PLD) (such as a Field Programmable Gate Array (FPGA)) is such an integrated circuit whose logic functions are determined by the user programming the device. Designers can program themselves to "integrate" a digital system on a PLD, instead of asking chip manufacturers to design and produce dedicated integrated circuit chips. Moreover, nowadays, instead of manually making integrated circuit chips, this kind of programming is mostly implemented using "logic compiler" software, which is similar to the software compiler used in program development and writing, and before compilation The original code must also be written in a specific programming language, which is called Hardware Description Language (HDL), and HDL is not just one kind, but there are many, such as ABEL (Advanced Boolean Expression Language) , AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, RHDL (Ruby Hardware Description Language), etc., are currently the most commonly used The two are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art should also know that by simply logically programming the method flow using the above-mentioned hardware description languages and programming it into the integrated circuit, the hardware circuit that implements the logical method flow can be easily obtained.
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。The controller may be implemented in any suitable manner, for example, the controller may take the form of, for example, a microprocessor or processor and a computer readable medium storing computer readable program code (eg, software or firmware) executable by the (micro)processor. , logic gates, switches, Application Specific Integrated Circuit (ASIC), programmable logic controllers and embedded microcontrollers. Examples of controllers include but are not limited to the following microcontrollers: ARC 625D, Atmel AT91SAM, For Microchip PIC18F26K20 and Silicone Labs C8051F320, the memory controller can also be implemented as part of the memory's control logic. Those skilled in the art also know that in addition to implementing the controller in the form of pure computer-readable program code, the controller can be completely programmed with logic gates, switches, application-specific integrated circuits, programmable logic controllers and embedded logic by logically programming the method steps. Microcontroller, etc. to achieve the same function. Therefore, this controller can be considered as a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the means for implementing various functions can be considered as structures within hardware components as well as software modules implementing the methods.
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本发明不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a server system. Of course, the present invention does not exclude that with the development of computer technology in the future, the computer that implements the functions of the above embodiments may be, for example, a personal computer, a laptop computer, a vehicle-mounted human-computer interaction device, a cellular phone, a camera phone, a smart phone, or a personal digital assistant. , media player, navigation device, email device, game console, tablet, wearable device, or a combination of any of these devices.
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如 并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。Although one or more embodiments of this specification provide method operation steps as described in the embodiments or flow charts, more or fewer operation steps may be included based on conventional or non-inventive means. The sequence of steps listed in the embodiment is only one way of executing the sequence of many steps, and does not represent the only execution sequence. When the actual device or terminal product is executed, it can be executed sequentially or in parallel according to the methods shown in the embodiments or figures (such as a parallel processor or a multi-thread processing environment, or even a distributed data processing environment). The terms "comprises," "comprises" or any other variation thereof are intended to cover a non-exclusive inclusion such that a process, method, product or apparatus including a list of elements includes not only those elements but also others not expressly listed elements, or also elements inherent to the process, method, product or equipment. Without further limitation, it does not exclude the presence of additional identical or equivalent elements in a process, method, product or apparatus including the stated elements. For example, if the words "first" and "second" are used to express names, they do not indicate any specific order.
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。For the convenience of description, when describing the above device, the functions are divided into various modules and described separately. Of course, when implementing one or more of this specification, the functions of each module can be implemented in the same or multiple software and/or hardware, or the modules that implement the same function can be implemented by a combination of multiple sub-modules or sub-units, etc. . The device embodiments described above are only illustrative. For example, the division of the units is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated. to another system, or some features can be ignored, or not implemented. On the other hand, the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each process and/or block in the flowchart illustrations and/or block diagrams, and combinations of processes and/or blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing device produce a use A device for realizing the functions specified in one process or multiple processes of the flowchart and/or one block or multiple blocks of the block diagram.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。These computer program instructions may also be stored in a computer-readable memory that causes a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including the instruction means, the instructions The device implements the functions specified in a process or processes of the flowchart and/or a block or blocks of the block diagram.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions may also be loaded onto a computer or other programmable data processing device, causing a series of operating steps to be performed on the computer or other programmable device to produce computer-implemented processing, thereby executing on the computer or other programmable device. Instructions provide steps for implementing the functions specified in a process or processes of a flowchart diagram and/or a block or blocks of a block diagram.
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网 络接口和内存。In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。Memory may include non-permanent storage in computer-readable media, random access memory (RAM) and/or non-volatile memory in the form of read-only memory (ROM) or flash memory (flash RAM). Memory is an example of computer-readable media.
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。Computer-readable media includes both persistent and non-volatile, removable and non-removable media that can be implemented by any method or technology for storage of information. Information may be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), and read-only memory. (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, Magnetic tape cartridges, magnetic tape disk storage, graphene storage or other magnetic storage devices or any other non-transmission medium can be used to store information that can be accessed by a computing device. As defined in this article, computer-readable media does not include transitory media, such as modulated data signals and carrier waves.
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。It should be understood by those skilled in the art that one or more embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, one or more embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware aspects. Furthermore, one or more embodiments of the present description may employ a computer program implemented on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein. Product form.
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。One or more embodiments of this specification may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. One or more embodiments of the present description may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including storage devices.
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上 述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。Each embodiment in this specification is described in a progressive manner. The same and similar parts between the various embodiments can be referred to each other. Each embodiment focuses on its differences from other embodiments. In particular, for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple. For relevant details, please refer to the partial description of the method embodiment. In the description of this specification, reference to the terms "one embodiment," "some embodiments," "an example," "specific examples," or "some examples" or the like means that specific features are described in connection with the embodiment or example. , structures, materials or features are included in at least one embodiment or example of this specification. In this specification, the schematic expressions of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the specific features, structures, materials or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, those skilled in the art may combine and combine different embodiments or examples and features of different embodiments or examples described in this specification unless they are inconsistent with each other.
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。The above descriptions are only examples of one or more embodiments of this specification, and are not intended to limit one or more embodiments of this specification. To those skilled in the art, various modifications and changes may be made to one or more embodiments of this specification. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of this specification shall be included in the scope of the claims.

Claims (17)

  1. 一种防范网络攻击的方法,应用于区块链网络中的验证节点,包括:A method to prevent network attacks, applied to verification nodes in a blockchain network, including:
    向所述区块链网络中的待验证节点发送验证请求,所述验证请求包括所述验证节点从本地维护的区块中选取的待验证区块的区块高度;Send a verification request to the node to be verified in the blockchain network, where the verification request includes the block height of the block to be verified selected by the verification node from the locally maintained blocks;
    接收所述待验证节点响应于所述验证请求发送的验证应答,所述验证应答包括第一区块信息;Receive a verification response sent by the node to be verified in response to the verification request, where the verification response includes first block information;
    在第一区块信息与所述待验证区块对应的第二区块信息匹配失败的情况下确定所述待验证节点验证失败;In the case where the first block information fails to match the second block information corresponding to the block to be verified, it is determined that the node to be verified fails to verify;
    在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,与所述待验证节点断开连接。When it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, the connection with the node to be verified is disconnected.
  2. 根据权利要求1所述的方法,所述向所述区块链网络中的待验证节点发送验证请求,包括:The method according to claim 1, sending a verification request to a node to be verified in the blockchain network includes:
    向所述区块链网络中的待验证节点周期性发送验证请求。Verification requests are periodically sent to the nodes to be verified in the blockchain network.
  3. 根据权利要求1所述的方法,第二区块信息包括所述待验证区块或所述待验证区块对应的哈希值。According to the method of claim 1, the second block information includes the block to be verified or the hash value corresponding to the block to be verified.
  4. 根据权利要求1所述的方法,所述待验证区块由所述验证节点从本地维护的区块中按照预设选取规则或随机选取得到。According to the method of claim 1, the block to be verified is obtained by the verification node from locally maintained blocks according to preset selection rules or random selection.
  5. 根据权利要求1所述的方法,所述待验证区块由所述验证节点从本地维护的验证难度值对应的选取范围的区块中选取得到,所述选取范围正相关于验证难度值;所述方法还包括:According to the method of claim 1, the block to be verified is selected by the verification node from blocks in a selection range corresponding to the locally maintained verification difficulty value, and the selection range is directly related to the verification difficulty value; The above methods also include:
    根据距当前时刻之前的第二预设时长内确定所述待验证节点验证失败的第二次数调整所述验证难度值,所述验证难度值正相关于第二次数。The verification difficulty value is adjusted according to the second number of verification failures of the node to be verified within a second preset time period before the current time, and the verification difficulty value is positively related to the second number of times.
  6. 根据权利要求5所述的方法,所述区块链网络部署的网络管理合约维护有所述验证难度值;所述根据距当前时刻之前的第二预设时长内确定所述待验证节点验证失败的第二次数调整所述验证难度值,包括:The method according to claim 5, the network management contract deployed by the blockchain network maintains the verification difficulty value; the verification failure of the node to be verified is determined based on the second preset time period before the current time. The second number of adjustments to the verification difficulty value include:
    向所述区块链网络部署的网络管理合约发起包含第二次数的难度值调整交易,以使所述网络管理合约基于第二次数调整维护于所述网络管理合约中的所述验证难度值。Initiate a difficulty value adjustment transaction including a second number of times to the network management contract deployed on the blockchain network, so that the network management contract adjusts the verification difficulty value maintained in the network management contract based on the second number of times.
  7. 根据权利要求1所述的方法,还包括:The method of claim 1, further comprising:
    在发送所述验证请求后的第一预设时长内未接收到所述验证应答的情况下确定所述待验证节点验证失败。If the verification response is not received within a first preset time period after sending the verification request, it is determined that the node to be verified has failed to verify.
  8. 根据权利要求1所述的方法,所述验证应答还包括所述待验证节点针对第一区 块信息生成的签名,所述方法还包括:The method according to claim 1, the verification response further includes a signature generated by the node to be verified for the first block information, the method further includes:
    基于所述待验证节点的节点公钥对所述签名进行验签,在所述签名验签失败的情况下确定所述待验证节点验证失败。The signature is verified based on the node public key of the node to be verified, and if the signature verification fails, it is determined that the node to be verified fails to verify.
  9. 根据权利要求1所述的方法,还包括:The method of claim 1, further comprising:
    在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,将所述待验证节点的节点信息从所述验证节点维护的节点列表中删除。When it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, the node information of the node to be verified is deleted from the node list maintained by the verification node.
  10. 根据权利要求1所述的方法,还包括:The method of claim 1, further comprising:
    在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,向所述区块链网络中的网络管理合约发起包含所述待验证节点的节点信息的节点删除交易,以使所述网络管理合约删除维护于所述网络管理合约中所述待验证节点的节点信息。When it is determined that the first number of failed verifications of the node to be verified exceeds the first preset threshold, initiate a node deletion transaction containing the node information of the node to be verified to the network management contract in the blockchain network , so that the network management contract deletes the node information of the node to be verified maintained in the network management contract.
  11. 根据权利要求1所述的方法,还包括:The method of claim 1, further comprising:
    在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,向所述区块链网络中的其他节点发送携带有所述待验证节点的节点信息的可疑节点通知,以使所述其他节点响应于所述可疑节点通知向所述待验证节点发送验证请求。When it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, sending a suspicious node notification carrying the node information of the node to be verified to other nodes in the blockchain network , so that the other nodes send a verification request to the node to be verified in response to the suspicious node notification.
  12. 根据权利要求9、10或11所述的方法,所述节点信息包括节点标识、节点公钥和/或网络地址。According to the method of claim 9, 10 or 11, the node information includes node identification, node public key and/or network address.
  13. 根据权利要求1所述的方法,还包括:The method of claim 1, further comprising:
    在确定所述待验证节点验证失败的第一次数超过第一预设阈值的情况下,在距当前时刻之后的第三预设时长内拒绝响应所述待验证节点发送的连接请求。If it is determined that the first number of verification failures of the node to be verified exceeds the first preset threshold, refuse to respond to the connection request sent by the node to be verified within a third preset time period after the current time.
  14. 根据权利要求1所述的方法,还包括:The method of claim 1, further comprising:
    在距当前时刻之前的第四预设时长内接收到同一发起方发起的基于任一协议的历史消息的数量超出第二预设阈值的情况下,拒绝响应所述同一发起方发起的基于所述任一协议的消息。When the number of historical messages initiated by the same initiator based on any protocol received within the fourth preset time period before the current moment exceeds the second preset threshold, refuse to respond to the historical messages initiated by the same initiator based on the said messages for any protocol.
  15. 一种防范网络攻击的装置,应用于区块链网络中的验证节点,包括:A device to prevent network attacks, applied to verification nodes in the blockchain network, including:
    请求发送单元,用于向所述区块链网络中的待验证节点发送验证请求,所述验证请求包括所述验证节点从本地维护的区块中选取的待验证区块的区块高度;A request sending unit, configured to send a verification request to the node to be verified in the blockchain network, where the verification request includes the block height of the block to be verified selected by the verification node from the locally maintained blocks;
    应答接收单元,用于接收所述待验证节点响应于所述验证请求发送的验证应答,所述验证应答包括第一区块信息;A response receiving unit configured to receive a verification response sent by the node to be verified in response to the verification request, where the verification response includes first block information;
    验证单元,用于在第一区块信息与所述待验证区块对应的第二区块信息匹配失败的情况下确定所述待验证节点验证失败;A verification unit configured to determine that the verification of the node to be verified fails when the first block information fails to match the second block information corresponding to the block to be verified;
    连接断开单元,用于在确定所述待验证节点验证失败的第一次数超过第一预设阈值 的情况下,与所述待验证节点断开连接。A connection disconnecting unit, configured to disconnect from the node to be verified when it is determined that the first number of failed verifications of the node to be verified exceeds a first preset threshold.
  16. 一种电子设备,包括处理器和用于存储处理器可执行指令的存储器;An electronic device including a processor and a memory for storing instructions executable by the processor;
    其中,所述处理器通过运行所述可执行指令以实现如权利要求1至14中任一项所述的方法。Wherein, the processor implements the method according to any one of claims 1 to 14 by running the executable instructions.
  17. 一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1至14中任一项所述方法的步骤。A computer-readable storage medium having computer instructions stored thereon, which when executed by a processor, implements the steps of the method according to any one of claims 1 to 14.
PCT/CN2022/135159 2022-07-29 2022-11-29 Method and apparatus for preventing network attacks WO2024021410A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210910745.6A CN115277021A (en) 2022-07-29 2022-07-29 Method and device for preventing network attack
CN202210910745.6 2022-07-29

Publications (1)

Publication Number Publication Date
WO2024021410A1 true WO2024021410A1 (en) 2024-02-01

Family

ID=83746369

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/135159 WO2024021410A1 (en) 2022-07-29 2022-11-29 Method and apparatus for preventing network attacks

Country Status (2)

Country Link
CN (1) CN115277021A (en)
WO (1) WO2024021410A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277021A (en) * 2022-07-29 2022-11-01 蚂蚁区块链科技(上海)有限公司 Method and device for preventing network attack
CN116720203A (en) * 2023-05-30 2023-09-08 哈尔滨道简科技发展有限公司 Data security control system and method based on block chain

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200045019A1 (en) * 2018-07-31 2020-02-06 Ezblock Ltd. Blockchain joining for a limited processing capability device and device access security
CN111371801A (en) * 2020-03-13 2020-07-03 杭州复杂美科技有限公司 Block chain node scanning method, equipment and storage medium
CN112991058A (en) * 2021-02-19 2021-06-18 区块动力(广州)科技有限公司 Verification method and system for transaction based on block chain
CN113988856A (en) * 2021-11-08 2022-01-28 福建博泉哈希科技有限公司 Block header propagation method and storage medium
CN114697061A (en) * 2020-12-29 2022-07-01 中国移动通信有限公司研究院 Access control method and device, network side equipment, terminal and block link point
CN115277021A (en) * 2022-07-29 2022-11-01 蚂蚁区块链科技(上海)有限公司 Method and device for preventing network attack

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200045019A1 (en) * 2018-07-31 2020-02-06 Ezblock Ltd. Blockchain joining for a limited processing capability device and device access security
CN111371801A (en) * 2020-03-13 2020-07-03 杭州复杂美科技有限公司 Block chain node scanning method, equipment and storage medium
CN114697061A (en) * 2020-12-29 2022-07-01 中国移动通信有限公司研究院 Access control method and device, network side equipment, terminal and block link point
CN112991058A (en) * 2021-02-19 2021-06-18 区块动力(广州)科技有限公司 Verification method and system for transaction based on block chain
CN113988856A (en) * 2021-11-08 2022-01-28 福建博泉哈希科技有限公司 Block header propagation method and storage medium
CN115277021A (en) * 2022-07-29 2022-11-01 蚂蚁区块链科技(上海)有限公司 Method and device for preventing network attack

Also Published As

Publication number Publication date
CN115277021A (en) 2022-11-01

Similar Documents

Publication Publication Date Title
WO2024021410A1 (en) Method and apparatus for preventing network attacks
US11444783B2 (en) Methods and apparatuses for processing transactions based on blockchain integrated station
TWI727467B (en) Trustworthiness verification method, system, device and equipment of alliance chain
US11336660B2 (en) Methods and apparatuses for identifying replay transaction based on blockchain integrated station
US11463553B2 (en) Methods and apparatuses for identifying to-be-filtered transaction based on blockchain integrated station
EP3937053B1 (en) Methods and apparatuses for transferring transaction based on blockchain integrated station
US11665234B2 (en) Methods and apparatuses for synchronizing data based on blockchain integrated station
CN110046901B (en) Credibility verification method, system, device and equipment of alliance chain
TWI718714B (en) Request processing method, system, device and equipment in alliance chain
CN111401904B (en) Consensus method and system in alliance chain
WO2023050966A1 (en) Blockchain data verification
WO2024021406A1 (en) Network attack prevention method and device
US9749278B1 (en) Persistent connections for email web applications
CN110011972B (en) Block chain-based dynamic password request and response method and device
US11044102B1 (en) Systems and methods for detecting certificate pinning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22952844

Country of ref document: EP

Kind code of ref document: A1