KR20220091560A - 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체 - Google Patents

블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체 Download PDF

Info

Publication number
KR20220091560A
KR20220091560A KR1020227018299A KR20227018299A KR20220091560A KR 20220091560 A KR20220091560 A KR 20220091560A KR 1020227018299 A KR1020227018299 A KR 1020227018299A KR 20227018299 A KR20227018299 A KR 20227018299A KR 20220091560 A KR20220091560 A KR 20220091560A
Authority
KR
South Korea
Prior art keywords
consensus node
block
consensus
target
node
Prior art date
Application number
KR1020227018299A
Other languages
English (en)
Other versions
KR102578019B1 (ko
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 KR20220091560A publication Critical patent/KR20220091560A/ko
Application granted granted Critical
Publication of KR102578019B1 publication Critical patent/KR102578019B1/ko

Links

Images

Classifications

    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Data Mining & Analysis (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원에는 블록체인 기반 데이터 검출 방법, 및 디바이스, 및 컴퓨터 판독가능 저장 매체가 개시된다. 방법은: 검증될 블록에 대한 적어도 2개의 합의 노드의 블록 검증 결과들을 취득하는 단계; 검증될 블록에 대한 적어도 2개의 합의 노드의 블록 검증 결과들 중에서 합법(legal) 검증 결과들의 제1 수량 및 불법(illegal) 검증 결과들의 제2 수량을 카운트하는 단계; 제1 수량 및 제2 수량에 따라 검증될 블록에 대한 타깃 검증 결과를 결정하는 단계; 타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 블록 검증 결과들과 비교하고, 비교 결과에 따라, 각각의 합의 노드에 대응하는 비정상 사례들의 이력 검증을 업데이트하여, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 타깃 검증 비정상 사례들을 획득하는 단계; 및 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 타깃 검증 비정상 사례들에 따라, 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하는 단계를 포함한다.

Description

블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체
본 출원은 2020년 5월 21일자로 출원된 중국 특허 출원 제202010433284.9호에 대한 우선권을 주장하며, 그 전체가 본 명세서에 참고로 포함된다.
본 출원은 블록체인 기술들의 분야에 관한 것으로, 특히, 블록체인 기반 데이터 검출 방법, 장치, 컴퓨터 디바이스, 및 컴퓨터 판독가능 저장 매체에 관한 것이다.
컴퓨터 네트워크들의 지속적인 발전으로, 블록체인 관련 기술들은 점점 더 발달하고 있다. 블록체인 관련 애플리케이션 시나리오들에서, 블록이 블록체인에 업로드되어야 할 때, 블록은 합의 노드들에 의해 검증될 필요가 있다. 블록은 블록이 대부분의 합의 노드들에 의한 검증을 통과할 때에만 블록체인에 업로드될 수 있다.
관련 기술에서는, 보통 블록체인 네트워크에 다수의 합의 노드가 있고, 다수의 합의 노드 중에 악성 합의 노드가 있을 수 있다. 악성 합의 노드는 위조 트랜잭션 데이터를 포함하는 비정상 블록(abnormal block)을 생성하고, 비정상 블록을 블록체인에 업로드하라고 요청할 수 있다. 악성 합의 노드는 비정상 블록들을 블록체인에 업로드하라고 요청하기 위해 상이한 비정상 블록들을 연속적으로 제출할 수 있다. 일반적으로, 비정상 블록들은 블록체인 네트워크의 합의 메커니즘에 의한 검증을 통과할 수 없다. 그러나, 악의적인 합의 노드가 비정상 블록들을 블록체인에 업로드하라고 요청하기 위해 비정상 블록들을 계속 제출하려고 시도하는 경우, 비정상 블록이 검증을 통과하는 것이 가능하여, 블록체인 네트워크의 낮은 네트워크 보안을 초래할 수 있다.
본 출원의 실시예들은 블록체인 네트워크들의 네트워크 보안을 개선할 수 있는 블록체인 기반 데이터 검출 방법, 장치 및 컴퓨터 판독가능 저장 매체를 제공한다.
본 출원의 실시예는 타깃 합의 노드(target consensus node)에 의해 수행되는 블록체인 기반 데이터 검출 방법을 제공하며, 이 방법은 다음을 포함한다:
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들을 획득하는 단계;
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하는 단계;
제1 수량 및 제2 수량에 따라 검증될 블록에 대한 타깃 검증 결과(target verification result)를 결정하는 단계- 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과임 -;
타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량(target quantity)을 획득하는 단계; 및
타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하는 단계.
본 출원의 실시예는 타깃 합의 노드에 적용가능한 블록체인 기반 데이터 검출 장치를 추가로 제공하며, 이 장치는 다음을 포함한다:
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과를 획득하도록 구성되는 결과 획득 모듈;
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하도록 구성되는 수량 계산 모듈;
제1 수량 및 제2 수량에 따라 검증될 블록에 대한 타깃 검증 결과를 결정하도록 구성되는 결과 결정 모듈- 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과임 -;
타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하도록 구성되는 횟수 결정 모듈(quantity-of-times determining module); 및
타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하도록 구성되는 노드 결정 모듈.
결과 획득 모듈은 다음을 포함한다: 검증될 블록을 생성하도록 구성되는 블록 생성 유닛;
각각의 합의 노드가 검증될 블록에 대해 블록 검증을 수행하도록, 검증될 블록을 각각의 합의 노드에 브로드캐스팅하도록 구성되는 브로드캐스팅 유닛; 및
검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과를 획득하도록 구성되는 결과 획득 유닛.
결과 결정 모듈은 다음을 포함한다: 제1 수량이 제2 수량보다 클 때 유효 검증 결과를 타깃 검증 결과로서 결정하도록 구성되는 제1 결과 결정 유닛; 및
제1 수량이 제2 수량보다 적을 때 무효 검증 결과를 타깃 검증 결과로서 결정하도록 구성되는 제2 결과 결정 유닛.
수량 계산 모듈은 다음을 포함한다:
각각의 합의 노드에 대응하는 블록 검증 투표 수량을 획득하도록 구성되는 투표 수량 획득 모듈;
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 블록 검증 결과가 유효 검증 결과인 합의 노드를 제1 합의 노드로서 결정하도록 구성되는 제1 노드 결정 유닛;
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 블록 검증 결과가 무효 검증 결과인 합의 노드를 제2 합의 노드로서 결정하도록 구성되는 제2 노드 결정 유닛; 및
제1 합의 노드들에 대응하는 블록 검증 투표 수량들의 합계를 제1 수량으로서 결정하고, 제2 합의 노드들에 대응하는 블록 검증 투표 수량들의 합계를 제2 수량으로서 결정하도록 구성되는 수량 결정 유닛.
타깃 합의 노드는 투표 메커니즘에 기초하여 적어도 2개의 합의 노드에 의해 투표함으로써 결정되고;
데이터 검출 장치는 다음을 추가로 포함한다:
검증될 블록의 블록 높이를 획득하고, 블록 높이와 검증 시작 높이 사이의 높이 차이를 획득하도록 구성되는 높이 차이 획득 모듈-
검증 시작 높이는 타깃 합의 노드가 투표 메커니즘에 기초한 투표에 의해 결정될 때 타깃 합의 노드에 의해 보유되는 블록의 최대 블록 높이임 -; 및
높이 차이가 높이 차이 임계값보다 클 때 각각의 합의 노드에 투표 요청을 송신하여, 각각의 합의 노드가 투표 요청 및 투표 메커니즘에 따라 타깃 합의 노드를 재투표하게 하도록 구성되는 재투표 모듈.
횟수 결정 모듈은:
타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하도록 구성되는 결과 비교 유닛;
검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 타깃 검증 결과와 상이한 블록 검증 결과에 대응하는 합의 노드를 충돌 합의 노드로서 결정하도록 구성되는 충돌 결정 유닛;
적어도 2개의 합의 노드 중에서, 충돌 합의 노드들 이외의 합의 노드들을 매칭 합의 노드들로서 결정하도록 구성되는 매칭 결정 유닛; 및
충돌 합의 노드들에 대응하는 비정상 검증들의 이력 수량들을 단위 비정상 수량(unit abnormal quantity)만큼 증가시켜 충돌 합의 노드들에 대응하는 비정상 검증들의 타깃 수량들을 획득하고, 매칭 합의 노드들에 대응하는 비정상 검증들의 이력 수량들을 매칭 합의 노드에 대응하는 비정상 검증들의 타깃 수량들로서 결정하도록 구성되는 횟수 결정 유닛을 포함하고,
여기서, 검증될 블록이 선행 블록(predecessor block)을 갖지 않을 때, 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량은 디폴트 초기 수량이고; 검증될 블록이 선행 블록을 가질 때, 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량은 선행 블록에 대한 적어도 2개의 합의 노드의 블록 검증 결과들에 기초하여 획득되는 각각의 합의 노드의 비정상 검증들의 수량이다.
노드 판정 모듈은 다음을 포함한다:
타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드를 적어도 2개의 합의 노드에 따라 체크될 합의 노드로서 결정하도록 구성되는 체크될 유닛(to-be-checked unit);
각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량을 획득하도록 구성되는 횟수 획득 유닛; 및
각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족할 때 체크될 합의 노드를 비정상 합의 노드로서 결정하도록 구성되는 비정상 결정 유닛.
비정상 결정 유닛은 다음을 포함한다:
각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드들의 노드 수량을 획득하도록 구성되는 노드 수량 획득 서브유닛; 및
적어도 2개의 합의 노드의 총 노드 수량에 대한 노드 수량의 비율이 비율 임계값보다 클 때, 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족하는 것으로 결정하도록 구성되는 비정상 결정 서브유닛.
데이터 검출 장치는:
적어도 2개의 합의의 총 노드 수량에 대한 노드 수량의 비율이 비율 임계값 이하일 때, 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하고 체크될 합의 노드를 정상 합의 노드로서 결정하기 위한 기준을 충족하지 않는 것으로 결정하도록 추가로 구성된다.
데이터 검출 장치는:
비정상 합의 노드를 각각의 합의 노드에 브로드캐스팅하여, 각각의 합의 노드가 비정상 합의 노드를 노드 블랙리스트에 추가- 노드 블랙리스트는 비정상 합의 노드에 의해 개시된 블록 트랜잭션을 거부하도록 구성됨 -하게 하도록 추가로 구성된다.
본 출원의 실시예는 메모리 및 프로세서를 포함하는 컴퓨터 디바이스를 추가로 제공하고, 메모리는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 본 출원의 실시예들에서 제공되는 블록체인 기반 데이터 검출 방법을 구현한다.
본 출원의 실시예는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체를 추가로 제공하고, 컴퓨터 프로그램은 프로그램 명령어들을 포함하고, 프로그램 명령어들은, 프로세서에 의해 실행될 때, 본 출원의 실시예들에서 제공되는 블록체인 기반 데이터 검출 방법을 구현한다.
본 출원의 실시예들의 기술적 해결책은 다음을 포함한다: 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들을 획득하는 단계; 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하는 단계; 제1 수량 및 제2 수량에 따라 검증될 블록에 대한 타깃 검증 결과를 결정하는 단계- 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과임 -; 타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 단계; 및 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하는 단계. 이와 같이, 비정상 합의 노드는 적어도 2개의 합의 노드로부터 검출될 수 있다. 블록체인 네트워크에서 비정상 합의 노드를 능동적으로 발견하고 비정상 합의 노드에 대해 대응하는 처리를 수행함(예를 들어, 비정상 합의를 블랙리스트에 추가함)으로써, 블록체인 네트워크의 네트워크 보안이 개선된다.
도 1은 본 출원의 실시예에 따른 네트워크 아키텍처의 개략도이다.
도 2는 본 출원의 실시예에 따른 데이터 검출 시나리오의 개략도이다.
도 3은 본 출원의 실시예에 따른 블록체인 기반 데이터 검출 방법의 개략적인 흐름도이다.
도 4는 본 출원의 실시예에 따른 비정상 검증들의 수량을 획득하는 시나리오의 개략도이다.
도 5는 본 출원의 실시예에 따른 비정상 합의 노드를 검출하는 시나리오의 개략도이다.
도 6은 본 출원의 실시예에 따른 비정상 합의 노드를 제거하기 위한 방법의 개략적인 흐름도이다.
도 7은 본 출원의 실시예에 따른 블록체인 기반 데이터 검출 장치의 개략적인 구조도이다.
도 8은 본 출원의 실시예에 따른 컴퓨터 디바이스의 개략적인 구조도이다.
본 출원의 기술적 해결책들은 본 출원의 첨부 도면들을 참조하여 아래 명확하고 완전하게 설명된다. 명백하게, 설명된 실시예들은 본원의 실시예들의 전부보다는 단지 일부이다. 창의적 노력들 없이 본 출원의 실시예들에 기초하여 본 기술분야의 통상의 기술자에 의해 획득되는 모든 다른 실시예는 본 출원의 보호 범주 내에 있어야 한다.
다음의 설명에서, 용어 "일부 실시예들"은 모든 가능한 실시예의 서브세트들을 설명하지만, "일부 실시예들"은 모든 가능한 실시예의 동일한 서브세트 또는 상이한 서브세트들일 수 있고, 충돌 없이 서로 조합될 수 있다는 것이 이해될 수 있다.
다음의 설명들에서, 포함된 용어 "제1/제2/제3"은 단지 유사한 객체들을 구별하도록 의도되지만 반드시 객체의 특정 순서를 지시하는 것은 아니다. "제1/제2/제3"은 허가되는 경우 특정 순서 또는 시퀀스의 견지에서 상호교환가능하여, 본 명세서에 설명된 본 출원의 실시예들은 본 명세서에 도시되거나 설명된 시퀀스에 추가하여 시퀀스로 구현될 수 있다는 것을 이해할 수 있다.
블록체인은 분산 데이터 저장, 지점 간 송신(point-to-point transmission), 합의 메커니즘, 및 암호화 알고리즘과 같은 컴퓨터 기술들의 새로운 애플리케이션 모드이다. 블록체인은 본질적으로 탈중앙화(decentralized) 데이터베이스 및 암호화 방식으로 생성된 일련의 연관된 데이터 블록들이다. 각각의 데이터 블록은 (위조 방지에 대한) 정보의 유효성을 검증하고 다음 블록을 생성하기 위한 네트워크 트랜잭션들의 배치(batch)에 관한 정보를 포함한다. 블록체인은 기본(underlying) 블록체인 플랫폼, 플랫폼 제품 서비스 계층, 및 애플리케이션 서비스 계층을 포함할 수 있다. 블록체인 네트워크는 다수의(즉, 적어도 2개의) 합의 노드를 포함할 수 있고, 다수의 합의 노드는 블록체인 네트워크에서 생성된 블록에 대한 합의 검증을 수행하여, 생성된 블록이 블록체인 상에 업로드될 수 있는지를 판정하도록 구성된다. 실제 애플리케이션 시나리오들에서, 블록체인 네트워크 내의 다수의 합의 노드 중에서 비정상 합의 노드가 있을 수 있다. 비정상 합의 노드는 블록체인 네트워크의 네트워크 보안을 위협할 수 있다. 그러므로, 블록체인 네트워크의 다수의 합의 노드 중에서 비정상 합의 노드를 검출하는 방법이 본 출원의 실시예들에서 아래에 주로 설명된다.
도 1은 본 출원의 실시예에 따른 네트워크 아키텍처의 개략도이다. 도 1에 도시된 바와 같이, 네트워크 아키텍처의 개략도는 블록체인 네트워크를 표현할 수 있다. 블록체인 네트워크는 다수의 합의 노드 및 다수의 서비스 노드를 포함할 수 있다. 다수의 합의 노드 및 다수의 서비스 노드는 모두 블록체인 네트워크 내의 블록체인 노드이다. 다수의 합의 노드는 노드 세트(106a) 내의 합의 노드(101a), 합의 노드(102a), 합의 노드(103a), 합의 노드(104a), 및 합의 노드(105a)일 수 있다. 다수의 서비스 노드들은 노드 세트(109a) 내의 서비스 노드(107a), 서비스 노드(108a) 등을 포함할 수 있다. 본 출원의 실시예들에서의 용어 "다수의" 또는 "복수의"는 2개 또는 2개 초과를 지칭할 수 있다.
실제로, 블록체인 네트워크 내의 합의 노드들은 또한 블록체인 네트워크 내의 서비스 노드들이다. 합의 노드들은 블록들을 패키징하고 블록체인 네트워크 내의 모든 서비스 노드로부터 선택되는 블록들에 대한 합의 검증을 수행할 수 있는 블록체인 노드들이라는 것을 이해할 수 있다. 도 1에서의 네트워크 아키텍처의 개략도에서, 노드 세트(106a) 내의 블록체인 노드들(합의 노드(101a), 합의 노드(102a), 합의 노드(103a), 합의 노드(104a) 및 합의 노드(105a)를 포함함)은 블록체인 네트워크 내의 합의 노드들이고, 노드 세트(109a) 내의 블록체인 노드들(서비스 노드(107a), 서비스 노드(108a) 등을 포함함)은 합의 노드들 이외의 블록체인 네트워크 내의 블록체인 노드들이다. 블록체인 네트워크 내의 합의 노드는 서비스 노드(도 1에서의 네트워크 아키텍처의 개략도 내의 모든 블록체인 노드를 포함함)에 의해 생성된 트랜잭션 데이터를 블록으로 패키징하고, 합의 검증을 위해 블록을 다른 합의 노드들에 송신하고, 검증이 통과되는 경우 블록을 블록체인에 업로드하거나, 검증이 실패하는 경우 블록을 블록체인에 업로드하지 않을 수 있다.
일부 실시예들에서, 도 1에서의 네트워크 아키텍처의 개략도 내의 블록체인 노드는 하나의 서버, 다수의 서버, 단말 디바이스 등일 수 있다. 블록체인 노드를 구성하는 서버는 독립적인 물리적 서버, 서버 클러스터 또는 다수의 물리적 서버를 포함하는 분산 시스템, 또는 클라우드 컴퓨팅 서비스들을 제공하는 클라우드 서버일 수 있다. 단말 디바이스는 스마트폰, 태블릿 컴퓨터, 노트북 컴퓨터, 데스크톱 컴퓨터, 스마트 스피커, 스마트워치 등일 수 있지만, 이에 제한되지 않는다. 단말 디바이스 및 서버는 유선 또는 무선 통신을 통해 직접 또는 간접적으로 접속될 수 있으며, 이는 본 출원에서 제한되지 않는다.
본 출원의 실시예들은 또한 클라우드 보안 관련 기술들에 관한 것이다. 클라우드 보안은 클라우드 컴퓨팅 비즈니스 모델 애플리케이션들에 기초한 보안 소프트웨어, 하드웨어, 사용자들, 기관들, 및 보안 클라우드 플랫폼들에 대한 집합적 용어이다. 클라우드 보안은 병렬 처리, 그리드 컴퓨팅, 및 알려지지 않은 바이러스 거동 판단과 같은 신생 기술들 및 개념들을 통합하여, 많은 수량의 메시 클라이언트들에 의해 네트워크에서의 비정상 소프트웨어 거동을 모니터링함으로써 인터넷 내의 트로이목마들(Trojans) 및 악성 프로그램들에 대한 최신 정보를 획득하고, 최신 정보를 자동 분석 및 처리를 위한 서버 측으로 송신하고, 바이러스들 및 트로이목마들에 대한 해결책들을 각각의 클라이언트에게 배포한다.
클라우드 보안의 주요 연구 방향들은 다음을 포함한다: 1. 클라우드 컴퓨터 시스템 보안, 이는 클라우드 컴퓨팅 보안, 사용자 데이터의 안전한 저장 및 격리, 사용자 액세스 인증, 정보 송신 보안, 네트워크 공격 보호, 준수 감사(compliance audit) 등을 포함하여, 클라우드 자체 및 클라우드 상의 다양한 애플리케이션들의 보안을 보장하는 방법을 주로 연구함; 2. 클라우드 기반 보안 인프라스트럭처, 이는 클라우드 컴퓨팅을 사용하여 보안 인프라스트럭처 자원들을 구축 및 통합하고 클라우드 컴퓨팅 기술을 통한 초대형 보안 이벤트/정보 수집 및 처리 플랫폼들의 구성을 포함하는, 보안 보호 메커니즘들을 최적화하는 방법을 주로 연구하여, 대량의 정보의 수집 및 상관관계 분석을 실현함으로써, 네트워크 전반의 보안 이벤트 제어 및 위험 제어 능력들을 개선함; 3. 클라우드 보안 서비스들, 이는 안티 바이러스 서비스들과 같은, 클라우드 컴퓨팅 플랫폼들에 기초하여 사용자들에게 제공되는 다양한 보안 서비스들을 주로 연구함.
본 출원은 주로 클라우드 보안 기술들의 분야에서의 클라우드 보안 서비스에 관한 것이다. 본 출원에서의 클라우드 보안 서비스는 주로 블록체인 네트워크 내의 다수의 합의 노드 중에서 비정상 합의 노드를 검출하는데 구현되고, 검출된 비정상 합의 노드를 블랙리스트에 올려서, 사용자들에게 더 안전한 클라우드 서비스를 제공한다. 클라우드 서비스는 사용자에 의해 제출된 트랜잭션 데이터에 대한 합의 검증을 수행하고 트랜잭션 데이터를 블록체인에 업로드하는 등을 할 수 있다.
본 출원은 블록에 대한 합의 노드들의 검증 결과들에 따라 블록체인 네트워크에서 다수의 합의 노드 중에서 비정상 합의 노드(또는 악성 합의 노드로 지칭됨)를 찾는 방법에 초점을 맞춘다. 도 2에 대응하는 다음의 실시예에서 설명되는 프로세스를 참조한다.
도 2는 본 출원에 따른 데이터 검출 시나리오의 개략도이다. 도 2에 도시된 바와 같이, 도 1에서의 합의 노드(101a), 합의 노드(102a), 합의 노드(103a), 합의 노드(104a) 및 합의 노드(105a) 중에서 비정상 합의 노드의 검출이 설명을 위한 예로서 취해진다. 먼저, 합의 노드(101a), 합의 노드(102a), 합의 노드(103a), 합의 노드(104a) 및 합의 노드(105a)는 리더 합의 노드(또는 타깃 합의 노드로 지칭됨)를 선출하기 위해 서로 투표할 수 있다. 리더 합의 노드는 모든 합의 노드 중에서 의심스러운 합의 노드를 찾고, 모든 합의 노드에게 의심스러운 합의 노드에 대한 중재를 개시하도록 지시하고, 중재의 결과에 따라 블록체인 네트워크로부터 의심스러운 합의 노드를 추방할지를 결정하도록 구성된다. 여기서, 합의 노드(101a)가 리더 합의 노드로서 선출된다고 가정한다.
일부 실시예들에서, 합의 검증이 블록에 대해 수행될 때마다, 각각의 합의 노드는 블록에 대한 합의 노드들의 각자의 검증 결과들에 따라 합의 노드들의 비정상 검증들의 각자의 수량들을 카운트한다. 각각의 합의 노드에 의해 카운트되는 합의 노드들의 비정상 검증들의 각자의 수량들은 비정상 검증들의 타깃 수량들로서 지칭된다. 블록에 대해 합의 검증이 수행된 후에, 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량이 카운트된다. 현재 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량은 현재 블록 이전의 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량을 업데이트함으로써 획득된다. 현재 블록 이전의 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량은 현재 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 이력 수량으로 지칭될 수 있다. 여기서, 합의 노드(101a)가 블록 s에 대한 합의 검증 후에 각각의 합의 노드의 비정상 검증들의 타깃 수량을 카운트하는 예가 설명된다. 다른 합의 노드들에 의해 각각의 합의 노드의 비정상 검증들의 타깃 수량을 카운트하는 프로세스들은 합의 노드(101a)에 의해 각각의 합의 노드의 비정상 검증들의 타깃 수량을 카운트하는 프로세스와 동일하고, 각각의 블록의 합의 결과에 따라 각각의 합의 노드의 비정상 검증들의 수량을 업데이트하는 원리는 블록 s의 합의 결과에 따라 각각의 합의 노드의 비정상 검증들의 수량을 업데이트하는 원리와 동일하다는 것을 이해할 수 있다. 구체적으로,
블록 s에 대해 합의 검증이 수행될 때, 각각의 합의 노드는 블록 s에 대한 검증을 수행하고, 블록 s에 대한 검증 결과를 획득한다. 검증 결과는 유효 검증 결과 및 무효 검증 결과를 포함할 수 있다. 유효 검증 결과는 블록 s의 유효성 검증이 통과된 것을 지시하기 위해 사용된다. 무효 검증 결과는 블록 s의 유효성 검증이 통과되지 못한 것을 지시하기 위해 사용된다. 실제 구현들에서, 하나의 블록은 다수의 트랜잭션 데이터를 포함할 수 있다. 블록 s에 대한 합의 노드의 검증 결과가 유효 검증 결과일 때, 이는 블록 s에 포함된 트랜잭션 데이터가 진본이고(authentic) 신용할만하다(credible)는 것을 합의 노드가 검증했다는 것을 지시한다. 블록 s에 대한 합의 노드의 검증 결과가 무효 검증 결과일 때, 그것은 블록 s가 비인증(unauthentic) 트랜잭션 데이터를 포함하는 것을 합의 노드가 검증했다는 것, 즉, 블록 s에 포함된 트랜잭션 데이터가 진본이고 신용할만하지 않다는 것을 검증했다는 것을 지시한다. 합의 노드(101a)는 블록 s에 대한 다른 합의 노드들의 검증 결과들을 획득할 수 있다. 합의 노드(101a)는 블록 s에 대한 모든 합의 노드의 획득된 합의 결과들 중에서 유효 검증 결과들의 수량 및 무효 검증 결과들의 수량을 카운트할 수 있다. 유효 검증 결과들의 수량이 무효 검증 결과들의 수량보다 클 때, 유효 검증 결과는 블록 s에 대한 타깃 검증 결과로서 사용될 수 있다. 유효 검증 결과들의 수량이 무효 검증 결과들의 수량보다 적을 때, 무효 검증 결과는 블록 s에 대한 타깃 검증 결과로서 사용될 수 있다. 타깃 검증 결과는 블록체인 네트워크 내의 모든 합의 노드에 의한 블록 s에 대한 검증으로부터 획득된 최종 검증 결과이다.
예를 들어, 합의 노드(101a)는 블록 s에 대한 합의 노드(102a)의 검증 결과, 블록 s에 대한 합의 노드(103a)의 검증 결과, 블록 s에 대한 합의 노드(104a)의 검증 결과, 및 블록 s에 대한 합의 노드(105a)의 검증 결과를 획득할 수 있다. 블록 s에 대한 합의 노드(101a)의 검증 결과가 무효 검증 결과이고, 합의 노드(101a)에 의해 획득된 블록 s에 대한 합의 노드(102a)의 검증 결과가 무효 검증 결과이고, 합의 노드(101a)에 의해 획득된 블록 s에 대한 합의 노드(103a)의 검증 결과가 무효 검증 결과이고, 합의 노드(101a)에 의해 획득된 블록 s에 대한 합의 노드(104a)의 검증 결과가 유효 검증 결과이고, 합의 노드(101a)에 의해 획득된 블록 s에 대한 합의 노드(105a)의 검증 결과가 유효 검증 결과라고 가정한다. 이러한 경우에, 합의 노드(101a)에 의해 획득된 모든 합의 결과 중에서, 무효 검증 결과의 수량은 3이고, 유효 검증 결과의 수량은 2이다. 3인 무효 검증 결과들의 수량은 2인 유효 검증 결과들의 수량보다 크기 때문에, 합의 노드(101a)는 무효 검증 결과를 블록 s의 타깃 검증 결과로서 사용할 수 있다.
합의 노드(101a)에 의해 기록된 각각의 합의 노드의 비정상 검증들의 초기 수량은 디폴트 초기 수량으로서 지칭될 수 있다. 디폴트 초기 수량은 합의 노드(101a)에 의해 설정될 수 있는데, 예를 들어, 0으로 설정될 수 있다. 합의 노드(101a)는 블록 s에 대한 각각의 합의 노드의 검증 결과를 타깃 검증 결과와 비교할 수 있다. 블록 s에 대한 합의 노드(예를 들어, 합의 노드(102a))의 검증 결과가 블록 s의 타깃 검증 결과와 상이하다고 결정할 때, 합의 노드(101a)는 합의 노드(102a)의 비정상 검증들의 초기 수량을 1만큼 증가시켜 합의 노드(102a)의 비정상 검증들의 타깃 수량을 획득할 수 있다. 블록 s에 대한 합의 노드(예를 들어, 합의 노드(103a))의 검증 결과가 블록 s의 타깃 검증 결과와 동일한 것으로 결정할 때, 합의 노드(101a)는 합의 노드(103a)의 비정상 검증들의 초기 수량을 변경하지 않은 채로 유지할 수 있는데, 즉, 합의 노드(103a)의 비정상 검증들의 초기 수량을 합의 노드(103a)의 비정상 검증들의 타깃 수량으로서 사용할 수 있다. 합의 노드(101a)가 블록 s 다음의 블록에 대한 각각의 합의 노드의 검증 결과를 사용하여 각각의 합의 노드의 비정상 검증들의 수량을 업데이트할 때, 블록 s의 검증 결과를 사용하여 업데이트된 각각의 합의 노드의 비정상 검증들의 수량은 이 순간에 각각의 합의 노드의 비정상 검증들의 초기 수량으로서 사용될 수 있다는 것을 이해할 수 있다. 다시 말해서, 현재 블록의 검증 결과를 사용하여 업데이트된 각각의 합의 노드의 비정상 검증들의 수량은 각각의 합의 노드의 비정상 검증들의 수량이 다음 블록의 검증 결과를 사용하여 업데이트될 때 각각의 합의 노드의 비정상 검증들의 초기 수량이다.
일부 실시예들에서, 블록 s 이전의 블록은 블록 s의 선행 블록으로 지칭될 수 있다. 블록 s가 합의 노드(101a)가 리더 합의 노드의 역할을 하는 기간 동안 블록체인 네트워크에서 합의 검증을 겪는 제1 블록인 경우, 블록 s는 선행 블록을 갖지 않는다. 블록 s가 합의 노드(101a)가 리더 합의 노드의 역할을 하는 기간 동안 블록체인 네트워크에서 합의 검증을 겪는 제1 블록이 아닌 경우, 블록 s는 선행 블록을 갖는다. 블록 s가 선행 블록을 갖지 않는 경우, 각각의 합의 노드의 비정상 검증들의 이력 수량은 각각의 합의 노드 세트의 설정된 디폴트 초기 수량(예를 들어, 0)이다. 블록 s가 선행 블록을 가질 때, 각각의 합의 노드의 비정상 검증들의 이력 수량은 블록 s 이전의 블록에 대한 각각의 합의 노드의 검증 결과에 따라 획득된 각각의 합의 노드의 비정상 검증들의 타깃 수량인데, 즉, 블록 s에 대응하는 각각의 합의 노드의 비정상 검증들의 이력 수량은 블록 s의 선행 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량이다. 선행 블록에 대한 각각의 합의 노드의 검증 결과에 따라 블록 s의 선행 블록에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 프로세스는 블록 s에 대한 각각의 합의 노드의 검증 결과에 따라 블록 s에 대응하는 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 프로세스와 동일하다.
일부 실시예들에서, 예를 들어, 1시간, 1일, 또는 1주일 수 있는 단위 시간(unit time)이 설정될 수 있다. 이러한 단위 시간에서, 합의 검증을 요구하는 다수의 블록이 생성될 수 있다. 합의 노드(101a)에 의한 각각의 블록의 검증 결과에 따른 업데이트를 통해 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 프로세스는 합의 노드(101a)에 의한 블록 s의 검증 결과들에 따른 업데이트를 통해 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 것에 의해 위의 프로세스와 동일하다. 그 후, 단위 시간 후에, 합의 노드(101a)는 단위 시간 내의 모든 블록의 검증 결과들에 따라 각각의 합의 노드의 비정상 검증들의 수량을 업데이트한 후에 최종 결과를 획득할 수 있는데, 즉, 단위 시간에서 합의 검증을 겪고 있는 최종 블록에 대응하는 각각의 합의 노드의 타깃 비정상 검증들의 수량을 획득할 수 있다.
예를 들어, 합의 노드(101a)에 의해 획득된 최종 결과는 결과 101b일 수 있다. 결과 101b는 다음을 포함한다: 합의 노드(101a)에 의해 최종적으로 기록된 합의 노드(101a)에 대한 비정상 검증들의 타깃 수량은 5이고, 합의 노드(101a)에 의해 최종적으로 기록된 합의 노드(102a)에 대한 비정상 검증들의 타깃 수량은 10이고, 합의 노드(101a)에 의해 최종적으로 기록된 합의 노드(103a)에 대한 비정상 검증들의 타깃 수량은 15이고, 합의 노드(101a)에 의해 최종적으로 기록된 합의 노드(104a)에 대한 비정상 검증들의 타깃 수량은 21이고, 합의 노드(101a)에 의해 최종적으로 기록된 합의 노드(105a)에 대한 비정상 검증들의 타깃 수량은 17이다.
비정상 횟수 임계값(abnormal quantity-of-times threshold)이 설정될 수 있다. 예를 들어, 비정상 횟수 임계값은 20으로 설정될 수 있다. 비정상 횟수 임계값은 정상 범위 내의 단위 시간에서의 합의 노드의 비정상 검증들의 타깃 수량의 최대 값을 지시한다. 비정상 횟수 임계값이 20이라고 가정하면, 단계 102b에서, 합의 노드(101a)는 21인 합의 노드(104a)의 비정상 검증들의 타깃 수량이 20인 비정상 횟수 임계값보다 큰 것을 검출한다. 합의 노드(102a), 합의 노드(103a), 합의 노드(104a) 및 합의 노드(105a)는 합의 노드(101a)와 동일한 프로세스를 수행하여 단위 시간에 각각의 합의 노드의 비정상 검증들의 타깃 수량을 기록할 수 있다. 다시 말해서, 각각의 합의 노드는 자체적으로 카운트된 합의 노드들의 비정상 검증들의 타깃 수량을 기록하고, 각각의 합의 노드는 결과 101b와 유사한 결과를 기록한다. 합의 노드(101a)가 합의 노드(104a)의 비정상 검증들의 타깃 수량이 비정상 횟수 임계값보다 큰 것을 검출할 때, 합의 노드(101a)는, 다른 합의 노드들로부터, 이때 다른 합의 노드들에 의해 카운트된 합의 노드(104a)의 비정상 검증들의 타깃 수량들을 획득할 수 있다.
예를 들어, 합의 노드(101a)는 합의 노드(102a)에 의해 기록된 합의 노드(104a)에 대한 비정상 검증들의 타깃 수량을 획득할 수 있고, 합의 노드(101a)는 합의 노드(103a)에 의해 기록된 합의 노드(104a)에 대한 비정상 검증들의 타깃 수량을 획득할 수 있고, 합의 노드(101a)는 합의 노드(104a)에 의해 기록된 합의 노드(104a)에 대한 비정상 검증들의 타깃 수량을 획득할 수 있고, 합의 노드(101a)는 합의 노드(105a)에 의해 기록된 합의 노드(104a)에 대한 비정상 검증들의 타깃 수량을 획득할 수 있다.
일부 실시예들에서, 합의 노드(101a)는 합의 노드(101a)에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드를 적어도 2개의 합의 노드에 따른 체크될 합의 노드로서 결정하고; 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량을 획득하고; 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족할 때 체크될 합의 노드를 비정상 합의 노드로서 결정한다.
합의 노드(101a)는 다음의 방식으로 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족하는지를 결정할 수 있다:
각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드들의 노드 수량을 획득하고, 적어도 2개의 합의 노드의 총 노드 수량에 대한 노드 수량의 비율을 획득하고; 비율이 비율 임계값보다 클 때, 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족하는 것으로 결정하고; 비율이 비율 임계값보다 크지 않을 때, 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족하지 않는 것으로 결정.
일부 실시예들에서, 각각의 합의 노드에 의해 기록된 비정상 검증들의 타깃 수량을 획득한 후에, 합의 노드(101a)는 다음의 방식으로 합의 노드가 비정상 합의 노드인지를 결정할 수 있는데, 즉, 단계 103b를 실행할 수 있다. 단계 103b는 다음을 포함할 수 있다:
합의 노드(101a)는 각각의 합의 노드에 의해 기록된 합의 노드(104a)의 비정상 검증들의 타깃 수량에 따라 이상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드들의 노드 수량을 카운트한다. 노드 수량 임계값이 또한 설정될 수 있다. 노드 수량이 노드 수량 임계값보다 큰 경우, 합의 노드(104a)가 비정상 합의 노드인 것으로 결정된다(즉, 결과 104b가 획득된다). 노드 수량이 노드 수량 임계값보다 작거나 같은 경우, 합의 노드(104a)가 비정상 합의 노드가 아니라 정상 합의 노드인 것으로 결정된다(즉, 결과 105b가 획득된다). 합의 노드(101a)가 합의 노드(104a)가 비정상 합의 노드인 것으로 결정할 때, 합의 노드(101a)는 합의 노드(104a)를 다른 합의 노드들(합의 노드(102a), 합의 노드(103a), 합의 노드(104a), 및 합의 노드(105a)를 포함함)에 브로드캐스팅할 수 있고, 따라서 다른 합의 노드들은 합의 노드(104a)를 노드 블랙리스트에 추가할 수 있고, 동시에, 합의 노드(101a)는 또한 합의 노드(104a)를 노드 블랙리스트에 추가한다(즉, 단계 106b).
각각의 합의 노드가 합의 노드(104a)를 노드 블랙리스트에 추가한 후에, 이것은 합의 노드(104a)가 블록체인 네트워크로부터 추방되고, 후속하여, 블록체인 네트워크 내의 합의 노드들이 합의 노드(104a)에 의해 개시된 임의의 블록 트랜잭션을 수신하지 않을 것임을 의미한다. 블록 트랜잭션이 블록을 블록체인에 업로드하라는 요청 등일 수 있는 경우. 각각의 합의 노드가 합의 노드(104a)를 노드 블랙리스트에 추가한 후에, 이는 도 1에서의 합의 노드들(합의 노드(101a), 합의 노드(102a), 합의 노드(103a), 합의 노드(104a) 및 합의 노드(105a)를 포함함)의 네트워크 아키텍처를 도 2에서의 합의 노드들(합의 노드(101a), 합의 노드(102a), 합의 노드(103a) 및 합의 노드(105a)를 포함함)의 네트워크 아키텍처(107b)로 변경하는 것과 등가임을 이해할 수 있다.
본 출원의 실시예들에 의해 제공되는 방법에 의해, 블록체인 네트워크 내의 다수의 합의 노드 중 비정상 합의 노드가 능동적으로 발견될 수 있고, 비정상 합의 노드는 블록체인 네트워크로부터 추방될 수 있고, 그에 의해 블록체인 네트워크의 네트워크 보안을 보장한다.
도 3은 본 출원의 실시예에 따른 블록체인 기반 데이터 검출 방법의 개략적인 흐름도이다. 도 3에 도시된 바와 같이, 방법은 다음의 단계들을 포함할 수 있다:
단계 S101. 타깃 합의 노드는 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들을 획득한다.
일부 실시예들에서, 타깃 합의 노드는 블록체인 네트워크 내의 임의의 합의 노드일 수 있다. 블록체인 네트워크에 다수의(적어도 2개의) 합의 노드가 있을 수 있다. 타깃 합의 노드는 투표 메커니즘을 통해 블록체인 네트워크 내의 모든 합의 노드에 의해 선출될 수 있다. 예를 들어, 투표 메커니즘은 다음과 같을 수 있다: 각각의 합의 노드는 2개의 투표를 보유하고, 각각의 합의 노드는 그 자신에 대한 하나의 투표 및 임의의 다른 합의 노드에 대한 다른 투표를 캐스팅할 수 있다. 마지막으로, 각각의 합의 노드에 대한 투표들의 총 수량이 카운트되고, 투표들의 최고 수량을 갖는 합의 노드가 타깃 합의 노드로서 사용될 수 있다. 예를 들어, 블록체인 네트워크에 합의 노드 1, 합의 노드 2, 및 합의 노드 3이 존재하고, 합의 노드 1은 합의 노드 1 및 합의 노드 2에 대해 투표하고, 합의 노드 2는 합의 노드 2 및 합의 노드 1에 대해 투표하고, 합의 노드 3은 합의 노드 3 및 합의 노드 1에 대해 투표한다고 가정한다. 이러한 경우에, 합의 노드 1에 대한 투표들의 수량은 3이고, 합의 노드 2에 대한 투표들의 수량은 2이고, 합의 노드 3에 대한 투표들의 수량 또한 1이다. 그러므로, 합의 노드 1은 타깃 합의 노드로서 사용될 수 있다.
블록체인 네트워크에서 합의 검증을 요구하는 임의의 블록은 검증될 블록으로 지칭될 수 있다. 타깃 합의 노드는 단위 시간을 설정할 수 있다. 단위 시간의 시작 순간은 타깃 합의 노드가 투표에 의해 결정되는 순간일 수 있다. 단위 시간의 지속기간은 1시간, 1일, 또는 1주일 등일 수 있다. 단위 시간의 지속기간은 실제 애플리케이션 시나리오들에 의존하여 결정되고, 본 명세서에서 제한되지 않는다. 이러한 단위 시간 내에, 다수의 검증될 블록이 블록체인 네트워크에서 생성될 수 있고, 모든 합의 노드에 의한 현재 검증될 블록의 검증이 완료된 후에만, 다음 검증될 블록의 검증이 시작될 것이다. 검증될 블록에 대해 합의 검증이 수행될 때, 모든 합의 노드는 검증을 수행할 필요가 있다. 검증될 블록에 대한 검증을 수행한 후에, 각각의 합의 노드는 검증될 블록에 대한 블록 검증 결과를 획득할 수 있다. 블록 검증 결과는 간단히 검증 결과라고 지칭될 수 있다. 검증될 블록에 대한 합의 검증이 완료된 후마다, 타깃 합의 노드는 검증될 블록에 대한 다른 합의 노드들의 블록 검증 결과들을 획득할 수 있다.
검증될 블록에 대한 합의 노드들의 블록 검증 결과들의 획득은 설명을 위한 예로서 취해진다. 타깃 합의 노드는 검증될 블록을 생성할 수 있고, 타깃 합의 노드는 생성된 검증될 블록을 다른 합의 노드들에 브로드캐스팅할 수 있다. 다른 합의 노드들은 타깃 합의 노드에 의해 브로드캐스트된 검증될 블록을 획득하고, 검증될 블록에 대해 블록 검증을 수행하여 검증될 블록에 대한 각자의 블록 검증 결과들을 획득할 수 있다. 검증될 블록에 대한 블록 검증 결과를 획득한 후에, 각각의 합의 노드는 그 자신의 블록 검증 결과를 다른 합의 노드들에 브로드캐스팅할 수 있고, 따라서 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과가 모든 합의 노드에 알려진다. 그러므로, 타깃 합의 노드는 또한 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과를 획득할 수 있다.
검증될 블록은 타깃 합의 노드에 의해 생성될 수 있거나, 타깃 합의 노드 이외의 합의 노드에 의해 생성될 수 있다는 점이 이해될 수 있다. 유사하게, 검증될 블록이 타깃 합의 노드 이외의 합의 노드에 의해 생성되는 경우, 검증될 블록을 생성하는 합의 노드는 생성된 검증될 블록을 검증을 위해 다른 합의 노드들(타깃 합의 노드를 포함함)에 브로드캐스팅한다. 이러한 경우에, 타깃 합의 노드는 또한 검증될 블록에 대한 타깃 합의 노드 이외의 합의 노드의 블록 검증 결과를 획득할 수 있다.
단계 S102. 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트.
일부 실시예들에서, 타깃 합의 노드는 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과에 따라 각각의 합의 노드의 비정상 검증들의 타깃 수량을 카운트할 수 있다. 각각의 합의 노드의 비정상 검증들의 타깃 수량은 각각의 합의 노드가 비정상 합의 노드인지를 결정하기 위해 사용된다. 검증될 블록에 대한 블록 검증 결과들에 따라 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 방법이 아래 예로서 설명된다. 동일한 원리가 각각의 검증될 블록에 대한 블록 검증 결과들에 따라 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 데 적용된다는 것을 이해할 수 있다.
합의 노드에 의한 검증될 블록의 검증으로부터 획득된 블록 검증 결과는 유효 검증 결과 또는 무효 검증 결과일 수 있다. 합의 노드에 의한 검증될 블록의 검증으로부터 획득된 블록 검증 결과는 유효 검증 결과 또는 무효 검증 결과 중 어느 하나이다. 유효 검증 결과는 검증될 블록이 합의 노드에 의한 검증을 통과한다는 것을 지시하고, 무효 검증 결과는 검증될 블록이 합의 노드에 의한 검증에 실패한다는 것을 지시한다. 검증될 블록은 다수의 트랜잭션 데이터를 포함할 수 있다. 검증될 블록이 검증을 통과하는 경우, 그것은 검증될 블록 내의 모든 트랜잭션 데이터가 진본이고 신용할만하다는 것을 지시한다. 검증될 블록이 검증에 실패하는 경우, 그것은 검증될 블록에서의 일부 트랜잭션 데이터가 진본이고 신용할만하지 않다는 것을 지시한다.
타깃 합의 노드는 각각의 합의 노드(즉, 타깃 합의 노드를 포함하는 모든 합의 노드)에 의한 검증될 블록의 검증의 블록 검증 결과들에서의 유효 검증 결과들의 수량 및 무효 검증 결과들의 수량을 카운트할 수 있다. 유효 검증 결과들의 카운트된 수량은 제1 수량으로서 지칭될 수 있고, 무효 검증 결과들의 카운트된 수량은 제2 수량으로서 지칭될 수 있다. 예를 들어, 합의 노드 1, 합의 노드 2, 및 합의 노드 3이 존재하고, 검증될 블록에 대한 합의 노드 1의 블록 검증 결과가 유효 검증 결과이고, 검증될 블록에 대한 합의 노드 2의 블록 검증 결과가 무효 검증 결과이고, 검증될 블록에 대한 합의 노드 3의 블록 검증 결과가 무효 검증 결과라고 가정한다. 이러한 경우에, 유효 검증 결과들의 제1 수량은 1이고, 무효 검증 결과들의 제2 수량은 2이다.
위의 프로세스에서, 각각의 합의 노드에 의해 보유된 블록 검증 투표들의 수량은 디폴트로 1이다. 일부 실시예들에서, 블록체인 네트워크 내의 각각의 합의 노드는 상이한 수량의 블록 검증 투표들을 가질 수 있다. 예를 들어, 시스템은 합의 노드들의 권한의 정도들에 의존하여 상이한 수량의 블록 검증 투표들을 합의 노드들에 할당할 수 있다. 더 높은 정도의 권한을 갖는 합의 노드에는 많은 수량의 블록 검증 투표들이 할당된다. 예를 들어, 합의 노드 1, 합의 노드 2, 합의 노드 3, 합의 노드 4, 및 합의 노드 5가 있다고 가정한다. 합의 노드 1, 합의 노드 2, 합의 노드 3, 합의 노드 4 및 합의 노드 5의 권한의 정도는 오름차순이다. 이러한 경우에, 합의 노드 1, 합의 노드 2, 합의 노드 3, 합의 노드 4, 및 합의 노드 5에 할당된 블록 검증 투표들의 수량들은 순차적으로 1, 2, 3, 4, 및 5일 수 있다.
유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량은 각각의 합의 노드의 블록 검증 투표들의 수량에 따라 획득될 수 있다. 예를 들어, 검증될 블록에 대한 블록 검증 결과가 모든 합의 노드 중에서 유효 검증 결과인 합의 노드는 제1 합의 노드로서 지칭될 수 있고; 검증될 블록에 대한 블록 검증 결과가 모든 합의 노드 중에서의 무효 검증 결과인 합의 노드는 제2 합의 노드로서 지칭될 수 있다. 제1 합의 노드들 전부에 대응하는 블록 검증 투표 수량들이 합산되어 합계를 획득할 수 있고, 합계는 유효 검증 결과들의 제1 수량으로서 사용될 수 있다. 제2 합의 노드들 전부에 대응하는 블록 검증 투표 수량들이 합산되어 합계를 획득할 수 있고, 합계는 무효 검증 결과들의 제2 수량로서 사용될 수 있다.
예를 들어, 합의 노드 1, 합의 노드 2, 합의 노드 3, 합의 노드 4, 및 합의 노드 5에 할당된 블록 검증 투표들의 수량들은 순차적으로 1, 2, 3, 4, 및 5일 수 있다고 가정한다. 검증될 블록에 대한 합의 노드 1, 합의 노드 2, 및 합의 노드 3의 블록 검증 결과들은 모두 무효 검증 결과들이다. 검증될 블록에 대한 합의 노드 4 및 합의 노드 5의 블록 검증 결과들은 모두 유효 검증 결과들이다. 이러한 경우에, 제1 합의 노드들은 합의 노드 1, 합의 노드 2, 및 합의 노드 3을 포함하고, 제2 합의 노드들은 합의 노드 4 및 합의 노드 5를 포함하고, 유효 검증 결과들의 제1 수량은 1+2+3=6이고, 무효 검증 결과들의 제2 수량은 4+5=9이다.
단계 S103. 제1 수량 및 제2 수량에 따라 검증될 블록에 대한 타깃 검증 결과를 결정- 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과임 -;
일부 실시예들에서, 유효 검증 결과들의 제1 수량이 무효 검증 결과들의 제2 수량보다 클 때, 타깃 합의 노드는 유효 검증 결과를 검증될 블록의 타깃 검증 결과로서 사용할 수 있다. 유효 검증 결과들의 제1 수량이 무효 검증 결과들의 제2 수량보다 작을 때, 타깃 합의 노드는 무효 검증 결과를 검증될 블록의 타깃 검증 결과로서 사용할 수 있다. 타깃 검증 결과는 검증될 블록에 대한 합의 노드들 전부의 최종 검증 결과를 지시하고, 이는 타깃 합의 노드에 의해 결정된다.
단계 S104. 타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득.
일부 실시예들에서, 다수의 검증될 블록이 있을 수 있고, 현재 검증될 블록의 검증이 완료된 후에만, 다음 검증될 블록의 검증이 시작될 것이다. 이러한 실시예에서, 타깃 합의 노드는 각각의 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과에 따라 업데이트를 통해 각각의 검증될 블록의 비정상 검증들의 타깃 수량을 획득한다. 각각의 검증될 블록에 대응하는 블록 검증 결과들에 따라 업데이트를 통해 획득된 각각의 합의 노드의 비정상 검증들의 수량은 비정상 검증들의 타깃 수량으로 지칭될 수 있다. 또한, 각각의 합의 노드의 비정상 검증들의 타깃 수량은 각각의 검증될 블록에 대응하는 블록 검증 결과들에 따라 각각의 합의 노드의 비정상 검증들의 이력 수량을 업데이트함으로써 획득된다. 다수의 검증될 블록이 검증될 블록 s를 포함하고 검증될 블록 s가 타깃 합의 노드가 리더 합의 노드로서 투표되는 기간 동안 블록체인 네트워크에서 생성된 제1 검증될 블록인 경우, 이것은 검증될 블록 s가 선행 블록(즉, 이전 블록)을 갖지 않는다는 것을 지시한다. 이러한 경우에, 각각의 합의 노드의 비정상 검증들의 이력 수량은 초기에 설정되는 각각의 합의 노드의 디폴트 초기 수량이다. 디폴트 초기 수량은 0일 수 있다. 검증될 블록 s가 타깃 합의 노드가 리더 합의 노드로서 투표되는 기간 동안 블록체인 네트워크에서 생성된 제1 검증될 블록이 아닌 경우, 이는 검증될 블록이 선행 블록을 갖는다는 것을 지시한다. 이러한 경우에, 각각의 합의 노드의 비정상 검증의 이력 수량은 검증될 블록의 선행 블록에 대응하는 블록 검증 결과들에 따라 획득된 각각의 합의 노드의 비정상 검증들의 타깃 수량이다.
그러므로, 검증될 블록 s에 대한 각각의 합의 노드의 블록 검증 결과에 따라 업데이트하는 것을 통해 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 것은, 검증될 블록 s에 대응하는 비교 결과들에 따라, 검증될 블록 s의 선행 블록에 대응하는 블록 검증 결과들에 따라 획득되는, 각각의 합의 노드의 비정상 검증들의 타깃 수량을 업데이트하는 것을 의미한다.
업데이트 프로세스는 다음과 같다:
타깃 합의 노드에 의해 초기에 기록된 각각의 합의 노드의 비정상 검증들의 이력 수량(즉, 디폴트 초기 수량)은 0일 수 있다. 타깃 합의 노드는 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과가 타깃 검증 결과와 동일한지를 비교할 수 있다. 타깃 검증 결과와 상이한 것으로 타깃 합의 노드에 의해 블록 검증 결과가 결정되는 합의 노드는 충돌 합의 노드로서 지칭된다. 타깃 합의 노드에 의해 블록 검증 결과가 타깃 검증 결과와 동일한 것으로 결정되는 합의 노드는 매칭 합의 노드로서 지칭될 수 있다. 충돌 합의 노드에 대응하는 비정상 검증들의 이력 수량은 충돌 합의 노드에 대응하는 비정상 검증들의 타깃 수량을 획득하기 위해 단위 비정상 수량만큼 증가될 수 있다. 단위 비정상 수량은 타깃 합의 노드에 의해 설정될 수 있고, 예를 들어, 1로 설정될 수 있다. 매칭 합의 노드에 대응하는 비정상 검증들의 이력 수량은 매칭 합의 노드의 비정상 검증들의 타깃 수량으로서 직접 사용될 수 있다. 다음 검증될 블록의 블록 검증 결과가 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하기 위해 사용될 때, 이전 검증될 블록의 블록 검증 결과에 따라 획득된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 각각의 합의 노드의 비정상 검증들의 이력 수량으로서 사용된다.
예를 들어, 본 출원의 실시예에 따른 비정상 검증들의 수량을 획득하는 시나리오의 개략도인 도 4를 참조한다. 도 4에 도시된 바와 같이, 구역(101c)은 타깃 합의 노드에 의해 초기에 기록된 (타깃 합의 노드 자체를 포함할 수 있는) 합의 노드들의 비정상 검증들의 이력 수량들을 도시하며, 이들은 모두 0이다. 타깃 합의 노드는 합의 노드 1, 합의 노드 2, 합의 노드 3, 합의 노드 4, 및 합의 노드 5 중 어느 하나일 수 있다. 구역(101c)은 합의 노드 1의 비정상 검증들의 초기 이력 수량이 0이고, 합의 노드 2의 비정상 검증들의 초기 이력 수량이 0이고, 합의 노드 3의 비정상 검증들의 초기 이력 수량이 0이고, 합의 노드 4의 비정상 검증들의 초기 이력 수량이 0이고, 합의 노드 5의 비정상 검증들의 초기 이력 수량이 0인 것을 도시한다.
다음으로, 검증될 블록 1에 대해 합의 검증이 수행될 때, 타깃 합의 노드는 검증될 블록 1에 대한 합의 노드 1의 블록 검증 결과가 유효 검증 결과이고, 검증될 블록 1에 대한 합의 노드 2의 블록 검증 결과가 유효 검증 결과이고, 검증될 블록 1에 대한 합의 노드 3의 블록 검증 결과가 무효 검증 결과이고, 검증될 블록 4에 대한 합의 노드 1의 블록 검증 결과가 무효 검증 결과이고, 검증될 블록 1에 대한 합의 노드 5의 블록 검증 결과가 유효 검증 결과인 것을 획득한다. 각각의 합의 노드의 블록 검증 투표 수량이 1이라고 가정하면, 검증될 블록 1에 대한 유효 검증 결과들의 제1 수량은 3이고, 검증될 블록 1에 대한 무효 검증 결과들의 제2 수량은 2이다. 3인 제1 수량은 2인 제2 수량보다 크므로, 검증될 블록 1의 타깃 검증 결과는 유효 검증 결과이다.
이러한 경우에, 각각의 합의 노드의 비정상 검증들의 이력 수량은 구역(101c)에 도시된 값들이다. 검증될 블록 1에 대한 합의 노드 1, 합의 노드 2, 및 합의 노드 5의 각자의 블록 검증 결과들이 검증될 블록 1의 타깃 검증 결과와 동일하기 때문에, 구역(101c)에서 0인 합의 노드 1의 비정상 검증들의 이력 수량은 합의 노드 1의 비정상 검증들의 타깃 수량으로서 직접 사용될 수 있고, 구역(101c)에서 0인 합의 노드 2의 비정상 검증들의 이력 수량은 합의 노드 2의 비정상 검증들의 타깃 수량으로서 직접 사용될 수 있고, 구역(101c)에서 0인 합의 노드 5의 비정상 검증들의 이력 수량은 합의 노드 5의 비정상 검증들의 타깃 수량으로서 직접 사용될 수 있다.
단위 비정상 수량이 1이라고 가정하면, 검증될 블록 1에 대한 합의 노드 3 및 합의 노드 4의 각자의 블록 검증 결과들이 검증될 블록 1의 타깃 검증 결과와 상이하기 때문에, 구역(101c)에서 0인 합의 노드 3의 비정상 검증들의 이력 수량은 1인 단위 비정상 수량만큼 증가되어 1의 결과를 획득할 수 있고, 이는 합의 노드 3의 비정상 검증들의 타깃 수량으로서 사용되고, 구역(101c)에서 0인 합의 노드 4의 비정상 검증들의 이력 수량은 1인 단위 비정상 수량만큼 증가되어 1의 결과를 획득할 수 있고, 이는 합의 노드 4의 비정상 검증들의 타깃 수량으로서 사용된다.
그러므로, 검증될 블록 1에 대응하는 블록 검증 결과들에 따라 획득된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 구역(102c)에 도시된 값들이고, 구역(102c)에 도시된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 다음과 같다: 합의 노드 1의 비정상 검증들의 타깃 수량은 0이고, 합의 노드 2의 비정상 검증들의 타깃 수량은 0이고, 합의 노드 3의 비정상 검증들의 타깃 수량은 1이고, 합의 노드 4의 비정상 검증들의 타깃 수량은 1이고, 합의 노드 5의 비정상 검증들의 타깃 수량은 0이다.
다음으로, 검증될 블록 2는 검증될 블록 1 다음의 검증될 블록인데, 즉, 검증될 블록 1은 검증될 블록 2의 선행 블록이다. 검증될 블록 2에 대한 합의 노드 1의 블록 검증 결과는 유효 검증 결과이고, 검증될 블록 2에 대한 합의 노드 2의 블록 검증 결과는 유효 검증 결과이고, 검증될 블록 2에 대한 합의 노드 3의 블록 검증 결과는 무효 검증 결과이고, 검증될 블록 4에 대한 합의 노드 2의 블록 검증 결과는 유효 검증 결과이고, 검증될 블록 2에 대한 합의 노드 5의 블록 검증 결과는 유효 검증 결과이다. 그러므로, 검증될 블록 2에 대한 유효 검증 결과들의 제1 수량은 4이고, 검증될 블록 2에 대한 무효 검증 결과들의 제2 수량은 1이고, 검증될 블록 2의 타깃 검증 결과는 유효 검증 결과이다.
이러한 경우에, 구역(102c)에 도시된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 각각의 합의 노드의 비정상 검증들의 이력 수량으로서 사용된다. 그러므로, 검증될 블록 2에 대한 합의 노드 1, 합의 노드 2, 합의 노드 4, 및 합의 노드 5의 각자의 블록 검증 결과들이 검증될 블록 2의 타깃 검증 결과와 동일하기 때문에, 구역(102c)에서의 0인 합의 노드 1의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 1의 비정상 검증들의 타깃 수량으로서 사용될 수 있고, 구역(102c)에서의 0인 합의 노드 2의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 2의 비정상 검증들의 타깃 수량으로서 사용될 수 있고, 구역(102c)에서의 1인 합의 노드 4의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 4의 비정상 검증들의 타깃 수량으로서 사용될 수 있고, 구역(102c)에서의 0인 합의 노드 5의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 5의 비정상 검증들의 타깃 수량으로서 사용될 수 있다.
검증될 블록 2에 대한 합의 노드 3의 블록 검증 결과는 검증될 블록 2의 타깃 검증 결과와 상이하기 때문에, 구역(102c)에서 1인 합의 노드 3의 비정상 검증들의 이력 수량은 1인 단위 비정상 수량만큼 증가되어 2의 결과를 획득할 수 있고, 이는 이 순간에 합의 노드 3의 비정상 검증들의 타깃 수량으로서 사용된다.
그러므로, 검증될 블록 2에 대응하는 블록 검증 결과들에 따라 획득된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 구역(103c)에 도시된 값들이고, 구역(103c)에 도시된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 다음과 같다: 합의 노드 1의 비정상 검증들의 타깃 수량은 0이고, 합의 노드 2의 비정상 검증들의 타깃 수량은 0이고, 합의 노드 3의 비정상 검증들의 타깃 수량은 2이고, 합의 노드 4의 비정상 검증들의 타깃 수량은 1이고, 합의 노드 5의 비정상 검증들의 타깃 수량은 0이다.
다음으로, 검증될 블록 3은 검증될 블록 2 다음의 검증될 블록인데, 즉, 검증될 블록 2는 검증될 블록 3의 선행 블록이다. 검증될 블록 3에 대한 합의 노드 1의 블록 검증 결과는 유효 검증 결과이고, 검증될 블록 3에 대한 합의 노드 2의 블록 검증 결과는 유효 검증 결과이고, 검증될 블록 3에 대한 합의 노드 3의 블록 검증 결과는 무효 검증 결과이고, 검증될 블록 4에 대한 합의 노드 3의 블록 검증 결과는 유효 검증 결과이고, 검증될 블록 3에 대한 합의 노드 5의 블록 검증 결과는 무효 검증 결과이다. 그러므로, 검증될 블록 3에 대한 유효 검증 결과들의 제1 수량은 3이고, 검증될 블록 3에 대한 무효 검증 결과들의 제2 수량은 2이고, 검증될 블록 3의 타깃 검증 결과는 유효 검증 결과이다.
이러한 경우에, 구역(103c)에 도시된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 각각의 합의 노드의 비정상 검증들의 이력 수량으로서 사용된다. 그러므로, 검증될 블록 3에 대한 합의 노드 1, 합의 노드 2, 및 합의 노드 4의 각자의 블록 검증 결과들이 검증될 블록 3의 타깃 검증 결과와 동일하기 때문에, 구역(103c)에서 0인 합의 노드 1의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 1의 비정상 검증들의 타깃 수량으로서 사용될 수 있고, 구역(103c)에서 0인 합의 노드 2의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 2의 비정상 검증들의 타깃 수량으로서 사용될 수 있고, 구역(103c)에서 1인 합의 노드 4의 비정상 검증들의 이력 수량이 이 순간에 합의 노드 4의 비정상 검증들의 타깃 수량으로서 사용될 수 있다.
검증될 블록 3에 대한 합의 노드(3) 및 합의 노드(5)의 블록 검증 결과들은 검증될 블록 3의 타깃 검증 결과와 상이하기 때문에, 구역(103c)에서 2인 합의 노드(3)의 비정상 검증들의 이력 수량은 1인 단위 비정상 수량만큼 증가되어 3의 결과를 획득할 수 있고, 이는 이 순간에 합의 노드(3)의 비정상 검증들의 타깃 수량으로서 사용된다. 그리고 구역(103c)에서 0인 합의 노드(5)의 비정상 검증의 이력 수량이 1인 단위 비정상 수량만큼 증가되어 1의 결과를 획득할 수 있고, 이는 이 순간에 합의 노드(5)의 비정상 검증들의 타깃 수량으로서 사용된다.
그러므로, 검증될 블록 3에 대응하는 블록 검증 결과들에 따라 획득된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 구역(104c)에 도시된 값들이고, 구역(104c)에 도시된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 다음과 같다: 합의 노드 1의 비정상 검증들의 타깃 수량은 0이고, 합의 노드 2의 비정상 검증들의 타깃 수량은 0이고, 합의 노드 3의 비정상 검증들의 타깃 수량은 3이고, 합의 노드 4의 비정상 검증들의 타깃 수량은 1이고, 합의 노드 5의 비정상 검증들의 타깃 수량은 1이다. 유사하게, 검증될 블록 3 이후에 검증될 블록이 존재하는 경우, 검증될 블록에 대응하는 블록 검증 결과들에 기초하여 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 원리는 위의 프로세스의 원리와 동일하다.
단계 S105. 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정.
일부 실시예들에서, 타깃 합의 노드는 자체적으로 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 블록체인 네트워크 내의 다수의 합의 노드 중에서 비정상 합의 노드를 검출할 수 있고, 여기서 비정상 합의 노드는 블록체인 네트워크의 네트워크 보안을 위협한다. 다수의 합의 노드 중에서 비정상 합의 노드를 검출하기 위해 타깃 합의 노드에 의해 사용되는 각각의 합의 노드의 비정상 검증들의 타깃 수량은 현재 카운트되는 각각의 합의 노드의 비정상 검증들의 최신 타깃 수량이다. 예를 들어, 도 4에서의 검증될 블록 3이 생성 및 검증된 최신 검증될 블록이라고 가정하면, 즉, 검증될 블록 3 다음에 검증될 블록이 없다고 가정하면, 타깃 합의 노드는 구역(104c)에 도시된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 이 순간에 다수의 합의 노드 중에서 비정상 합의 노드가 있는지를 결정할 수 있다.
타깃 합의 노드는 카운트되는 각각의 합의 노드의 비정상 검증들의 최신 타깃 수량을 실시간으로 검출할 수 있다. 단위 시간 (위의 단계 S101에서의 단위 시간)에서 (예를 들어, 단위 시간의 종료 순간이 도달되기 전의 임의의 순간에서) 타깃 합의 노드에 의해 기록된 합의 노드의 비정상 검증들의 타깃 수량이 비정상 횟수 임계값보다 크다는 것을 발견할 때, 타깃 합의 노드는 합의 노드를 체크될 합의 노드로서 사용할 수 있다. 블록체인 네트워크 내의 각각의 합의 노드는 각각의 합의 노드의 비정상 검증들의 타깃 수량을 자체적으로 카운트하고, 각각의 합의 노드에 의해 합의 노드들의 타깃 검증들의 비정상 수량들을 카운트하는 프로세스는 타깃 합의 노드에 의해 각각의 합의 노드의 비정상 검증들의 타깃 수량을 카운트하는 프로세스와 동일하다는 것을 이해할 수 있다. 그러므로, 각각의 합의 노드는 체크될 합의 노드의 비정상 검증들의 타깃 수량을 카운트한다는 것을 이해할 수 있다.
타깃 합의 노드는 다른 합의 노드들로부터, 이 순간에 다른 합의 노드들에 의해 각각 카운트되는 체크될 합의 노드의 비정상 검증들의 타깃 수량들을 획득할 수 있다. 다른 합의 노드들로부터 타깃 합의 노드에 의해 획득되는 체크될 합의 노드에 대한 비정상 검증들의 타깃 수량은 다른 합의 노드들에 의해 현재 카운트되는 체크될 합의 노드의 비정상 검증들의 최신 타깃 수량이다. 예를 들어, 블록체인 네트워크가 타깃 합의 노드에 더하여 합의 노드 1, 합의 노드 2, 및 합의 노드 3을 포함하는 경우, 타깃 합의 노드는 합의 노드 1에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 최신 타깃 수량, 합의 노드 2에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 최신 타깃 수량, 및 합의 노드 3에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 최신 타깃 수량을 획득할 수 있다.
타깃 합의 노드는 각각의 합의 노드에 의해 획득되는 체크될 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드들의 노드 수량을 카운트할 수 있다. 예를 들어, 블록체인 네트워크 내의 합의 노드들이 타깃 합의 노드, 합의 노드 1, 합의 노드 2, 및 합의 노드 3을 포함하는 경우, 타깃 합의 노드, 합의 노드 1, 및 합의 노드 2에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량은 비정상 횟수 임계값보다 크고, 합의 노드 3에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량은 비정상 횟수 임계값보다 작고, 타깃 합의 노드에 의해 카운트된 노드 수량은 3이다.
타깃 합의 노드는 모든 합의 노드의 총 노드 수량에 대한 카운트된 노드 수량의 비율을 추가로 획득할 수 있다. 비율이 비율 임계값보다 큰 경우, 타깃 합의 노드는 체크될 합의 노드를 비정상 합의 노드로서 결정할 수 있다. 비율이 비율 임계값보다 작거나 같은 경우, 타깃 합의 노드는 체크될 합의 노드를 정상 합의 노드로서 결정할 수 있다. 비율 임계값은 실제 상황들에 따라 설정될 수 있다. 예를 들어, 비율 임계값은 1/2일 수 있고, 이는 합의 노드들의 절반보다 많은 것에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량들이 비정상 횟수 임계값보다 큰 경우, 체크될 합의 노드가 비정상 합의 노드인 것으로 결정될 수 있다는 것을 지시한다.
각각의 합의 노드는 노드 블랙리스트를 유지할 수 있고, 하나의 합의 노드의 노드 블랙리스트에 추가된 임의의 합의 노드는 더 이상 하나의 합의 노드에 대한 트랜잭션을 개시할 수 없다. 트랜잭션은 블록을 블록체인에 업로드하라고 요청하는 트랜잭션일 수 있다. 예를 들어, 합의 노드 1이 그 자신의 노드 블랙리스트에 합의 노드 2를 추가하는 경우, 합의 노드 2는 더 이상 합의 노드 1에 대한 트랜잭션을 개시할 수 없다. 타깃 합의 노드가 체크될 합의 노드가 비정상 합의 노드인 것으로 결정하는 경우, 타깃 합의 노드는 비정상 합의 노드를 모든 다른 합의 노드에 브로드캐스팅할 수 있고, 따라서 모든 다른 합의 노드는 비정상 합의 노드를 그 자신의 노드 블랙리스트에 추가할 수 있고, 타깃 합의 노드 자체는 또한 비정상 합의 노드를 그 노드 블랙리스트에 추가한다. 각각의 합의 노드가 비정상 합의 노드를 노드 블랙리스트에 추가하는 경우, 이는 비정상 합의 노드가 블록체인 네트워크로부터 추방되었음을 의미한다. 비정상 합의 노드를 블록체인 네트워크로부터 추방하는 것에 의해, 블록체인 네트워크의 네트워크 보안이 개선될 수 있다.
일부 실시예들에서, 타깃 합의 노드가 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량에 따라 체크될 합의 노드가 정상 합의 노드인 것으로 결정할 때, 그 후, 후속하여, 타깃 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 단위 시간에 1만큼 증가될 때마다(여기서 증가는 타깃 합의 노드에 의해 설정될 수 있고, 2일 수 있음), 타깃 합의 노드는 다른 합의 노드들로부터, 다른 합의 노드들에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량들을 다시 획득하고, 그 후 다른 합의 노드들에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 획득된 타깃 수량에 따라 체크될 합의 노드가 비정상 합의 노드인지를 다시 결정할 수 있다. 이러한 프로세스는 단위 시간의 종료 순간에 도달할 때까지 계속될 수 있다.
일부 실시예들에서, 타깃 합의 노드가 단위 시간의 종료 순간에 도달한 것을 검출할 때, 타깃 합의 노드는 타깃 합의 노드에 의해 현재 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 클리어하고, 각각의 합의 노드의 비정상 검증들의 타깃 수량을 0으로 리셋할 수 있다. 타깃 합의 노드는 또한 다른 합의 노드들에게 타깃 합의 노드에 의해 현재 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 0으로 리셋하도록 지시할 수 있다. 각각의 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량이 0으로 리셋된 후에, 각각의 합의 노드는 리셋 순간을 다음 단위 시간의 시작 순간으로서 사용하여 각각의 합의 노드의 비정상 검증들의 타깃 수량을 리카운트할 수 있다. 다음 단위 시간에, 타깃 합의 노드는 다수의 합의 노드 중에 비정상 합의 노드가 있는지를 다시 검출할 수 있다. 검출 프로세스는 위의 프로세스와 동일하다.
일부 실시예들에서, 이러한 실시예에서 실행 엔티티인 타깃 합의 노드는 일정 기간 후에 투표함으로써 재선택될 수 있다. 이 시간 기간은 특정 지속기간으로 설정될 수 있거나, 거래될 블록의 블록 높이에 의해 결정될 수 있다. 예를 들어, 타깃 합의 노드가 시작 순간으로서 투표에 의해 결정되는 순간, 시작 순간 후 24시간(또는 5시간, 30시간 등) 후에, 투표 메커니즘에 기초하여 블록체인 네트워크 내의 모든 합의 노드에 의해 투표에 의해 새로운 타깃 합의 노드가 선출된다. 실제로, 투표에 의해 재선택된 새로운 타깃 합의 노드는 원래의 타깃 합의 노드일 수 있다.
대안적으로, 타깃 합의 노드는 검증될 블록의 최대 블록 높이를 검출할 수 있다(여기서 검증될 블록은 비정상 합의 노드가 존재하는지를 검출하는 타깃 합의 노드의 프로세스 동안 생성된 블록이다). 최대 블록 높이와 검증 시작 높이 사이의 높이 차이가 높이 차이 임계값(이는 타깃 합의 노드에 의해 설정될 수 있음)보다 클 때, 타깃 합의 노드는 투표 요청을 다른 합의 노드들에 송신할 수 있어서, 블록체인 네트워크 내의 모든 합의 노드가 투표 요청 및 투표 메커니즘에 따라 새로운 타깃 합의 노드를 선출하기 위해 재투표할 수 있다. 검증 시작 높이는 타깃 합의 노드가 투표에 의해 모든 합의 노드에 의해 결정되는 순간에 타깃 합의 노드의 원장(ledger)에 존재하는 블록의 최대 블록 높이이다.
예를 들어, 타깃 합의 노드가 투표에 의해 결정될 때, 타깃 합의 노드에 의해 보유되는 블록의 최대 블록 높이는 10이고, 타깃 합의 노드가 투표에 의해 결정되는 순간부터 시작하는 일정 기간 후에, 20개의 새로운 블록이 생성되었다(여기서 20개의 블록은 검증될 모든 블록임). 이러한 경우에, 타깃 합의 노드에 의해 보유되는 블록들의 총 수량은 10+20=30이고, 즉, 검증될 블록의 최대 블록 높이는 30이고, 검증 시작 높이는 10이고, 높이 차이는 20이다. 높이 차이 임계값이 20인 경우, 타깃 합의 노드는 투표 요청을 다른 합의 노드들에 송신하여 새로운 타깃 합의 노드를 선출하기 위해 재투표할 수 있다.
도 5는 본 출원의 실시예에 따른 비정상 합의 노드를 검출하는 시나리오의 개략도이다. 도 5에 도시된 바와 같이, 타깃 합의 노드가 합의 노드 1인 것으로 가정하면, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량은 구역(101d)에 도시된 바와 같고: 합의 노드 1의 비정상 검증들의 타깃 수량은 5이고, 합의 노드 2의 비정상 검증들의 타깃 수량은 10이고, 합의 노드 3의 비정상 검증들의 타깃 수량은 13이고, 합의 노드 4의 비정상 검증들의 타깃 수량은 16이고, 합의 노드 5의 비정상 검증들의 타깃 수량은 11이다. 비정상 횟수 임계값이 15인 경우, 타깃 합의 노드는 타깃 합의 노드에 의해 카운트된 합의 노드 4의 비정상 검증들의 타깃 수량이 비정상 횟수 임계값을 초과한 것을 검출할 수 있고, 타깃 합의 노드는 (단계 102d에서와 같이) 합의 노드 4를 체크될 합의 노드로서 사용할 수 있다.
다음으로, 타깃 합의 노드는 합의 노드 2로부터, 합의 노드 2에 의해 카운트된 합의 노드 4의 비정상 검증들의 타깃 수량을 획득하고; 합의 노드(3)로부터, 합의 노드(3)에 의해 카운트된 합의 노드(4)의 비정상 검증들의 타깃 수량을 획득하고; 합의 노드 4로부터, 합의 노드 4에 의해 카운트된 합의 노드 4의 비정상 검증들의 타깃 수량을 획득하고; 합의 노드(5)로부터, 합의 노드(5)에 의해 카운트된 합의 노드(4)의 비정상 검증들의 타깃 수량을 획득할 수 있다. 타깃 합의 노드에 의해 획득되는 각각의 합의 노드에 의해 카운트된 합의 노드들의 비정상 검증들의 타깃 수량들은 구역(103d)에 도시된 바와 같고: 합의 노드(1)에 의해 기록된 합의 노드(4)의 비정상 검증들의 타깃 수량은 16이고, 합의 노드(2)에 의해 기록된 합의 노드(4)의 비정상 검증들의 타깃 수량은 18이고, 합의 노드(3)에 의해 기록된 합의 노드(4)의 비정상 검증들의 타깃 수량은 16이고, 합의 노드(4)에 의해 기록된 합의 노드(4)의 비정상 검증들의 타깃 수량은 6이고, 합의 노드(5)에 의해 기록된 합의 노드(4)의 비정상 검증들의 타깃 수량은 17이다. 그 후, 비정상 검증들의 타깃 수량이 15인 비정상 횟수 임계값보다 큰 합의 노드들의 노드 수량은 4이다(합의 노드 1, 합의 노드 2, 합의 노드 3, 및 합의 노드 5를 포함함). 5인 합의 노드들의 총 노드 수량에 대한 노드 수량의 비율은 4/5이다. 비율 임계값이 1/2이라고 가정하면, 4/5가 1/2보다 크기 때문에, 타깃 합의 노드는 (단계 106d에서와 같이) 합의 노드 4를 비정상 합의 노드로서 결정할 수 있다. 타깃 합의 노드는 합의 노드 4를 다른 합의 노드들에 브로드캐스팅할 수 있고, 따라서 각각의 합의 노드는 (단계 107d에서와 같이) 그 자신의 노드 블랙리스트에 합의 노드 4를 추가하여, 블록체인 네트워크에서 합의 노드 4를 추방할 수 있다.
본 출원의 실시예들에 의해, 비정상 합의 노드는 적어도 2개의 합의 노드로부터 검출될 수 있다. 블록체인 네트워크에서 비정상 합의 노드를 능동적으로 발견하고 비정상 합의 노드에 대해 대응하는 처리를 수행함(예를 들어, 비정상 합의를 블랙리스트에 추가함)으로써, 블록체인 네트워크의 네트워크 보안이 개선된다.
도 6은 본 출원의 실시예에 따른 비정상 합의 노드를 제거하기 위한 방법의 개략적인 흐름도이다. 도 6에 도시된 바와 같이, 방법은 다음의 단계들을 포함할 수 있다:
단계 S201. 블록체인 네트워크 내의 합의 노드는 블록을 패키징한다.
일부 실시예들에서, 블록체인 네트워크 내의 임의의 합의 노드는 블록을 패키징할 수 있다. 블록 패키징 동작을 수행하는 합의 노드는 타깃 합의 노드로서 지칭되고, 패키징된 블록은 검증될 블록으로서 사용된다.
단계 S202. 블록을 브로드캐스팅.
일부 실시예들에서, 검증될 블록을 패키징하는 합의 노드는 패키징된 검증될 블록을 다른 합의 노드들에 브로드캐스팅할 수 있어서, 다른 합의 노드들은 브로드캐스팅된 검증될 블록에 대해 블록 검증을 수행하여 검증될 블록에 대한 블록 검증 결과들을 획득할 수 있다.
단계 S203. 다른 노드들의 검증 결과들을 수집.
일부 실시예들에서, 타깃 합의 노드는 검증될 블록에 대한 블록체인 네트워크 내의 다른 합의 노드들의 검증 결과들(즉, 블록 검증 결과들)을 수집한다.
단계 S204. 다른 노드들의 검증 결과들에 따라 블록에 대해 과반수 정족수(majority quorum)에 도달했다고 결정하는 것에 응답하여 블록을 제출하거나, 그렇지 않으면 블록을 제출하는 것을 스킵.
일부 실시예들에서, 위의 프로세스는 블록에 대한 합의 프로세스이다. 과반수 정족수에 도달한다는 것은 검증될 블록에 대한 합의 노드들의 절반보다 많은 것의 블록 검증 결과들이 유효 검증 결과라는 것을 의미할 수 있다. 타깃 합의 노드가 검증될 블록에 대해 과반수 정족수에 도달했다는 것을 검출하는 경우, 타깃 합의 노드는 검증될 블록을 블록체인에 업로드할 수 있는데, 즉, 검증될 블록을 그 자신의 원장에 추가할 수 있다. 타깃 합의 노드가 검증될 블록에 대해 과반수 정족수에 도달하지 않은 것을 검출하는 경우, 타깃 합의 노드는 검증될 블록을 블록체인에 업로드하지 않는다.
단계 S205. 노드들의 투표 결과들에 대한 통계를 수집.
일부 실시예들에서, 단계 S205는 단계 S204와 병렬인 단계이다. 노드들의 투표 결과들에 대한 통계를 수집하는 것은 검증될 블록에 대한 합의 노드들의 블록 검증 결과들에 대한 통계를 수집하는 것을 지칭한다. 타깃 합의 노드는 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과에 따라 각각의 합의 노드의 비정상 검증들의 타깃 수량을 카운트할 수 있다. 이러한 프로세스에 대해서는, 위의 단계들 S101 내지 S104가 참조될 수 있다.
단계 S206. 단위 시간에 비정상 노드 검증 결과가 존재하는지를 검출.
일부 실시예들에서, 타깃 합의 노드는 단위 시간에 수집된 각각의 합의 노드의 비정상 검증들의 타깃 수량이 비정상 횟수 임계값보다 큰지를 검출할 수 있다. 합의 노드의 비정상 검증들의 타깃 수량이 비정상 횟수 임계값보다 큰 경우, 그것은 합의 노드의 노드 검증 결과가 비정상임을 지시하고, 합의 노드는 위에 설명된 체크될 합의 노드로서 간주될 수 있다.
단계 S207. 노드 정직 중재(node honest arbitration)를 개시;
일부 실시예들에서, 정직한 중재를 개시하는 것은 투표를 개시하는 것을 의미한다. 타깃 합의 노드는 다른 합의 노드들에 대한 투표, 즉, 체크될 합의 노드가 비정상 합의 노드인지에 대한 투표를 개시할 수 있다.
단계 S208. 다른 노드들의 중재 결과들을 수집.
일부 실시예들에서, 정직한 중재는 다음과 같이 구현된다: 타깃 합의 노드는 체크될 합의 노드에 대해 다른 합의 노드들에 의해 카운트된 비정상 검증들의 타깃 수량들을 획득할 수 있고, 타깃 합의 노드는 체크될 합의 노드에 대해 각각의 합의 노드에 의해 카운트된 비정상 검증들의 타깃 수량에 따라 다수의 합의 노드 중에 비정상 합의 노드가 존재하는지를 결정할 수 있다.
단계 S209: 합의에 도달.
일부 실시예들에서, 타깃 합의 노드가 체크될 합의 노드들에 대해 합의 노드들의 대부분(예를 들어, 합의 노드들의 절반보다 많이)에 의해 카운트된 비정상 검증들의 타깃 수량들이 비정상 횟수 임계값보다 크다고 결정하는 경우, 이것은 체크될 합의 노드가 비정상 합의 노드라는 것에 대해 합의 노드들이 합의에 도달했다는 것을 의미한다.
단계 S210. 악의적인 노드들을 제거하기 위해 브로드캐스팅.
일부 실시예들에서, 악의적인 노드는 비정상 합의 노드이고, 타깃 합의 노드는 비정상 합의 노드(즉, 체크될 합의 노드)를 다른 합의 노드들에 브로드캐스팅할 수 있어서, 각각의 합의 노드는 비정상 합의 노드를 노드 블랙리스트에 추가하여 비정상 합의 노드를 블록체인 네트워크에서 추방할 수 있다.
본 출원의 실시예들에 의해, 비정상 합의 노드는 적어도 2개의 합의 노드로부터 검출될 수 있다. 블록체인 네트워크에서 비정상 합의 노드를 능동적으로 발견하고 비정상 합의 노드에 대해 대응하는 처리를 수행함(예를 들어, 비정상 합의를 블랙리스트에 추가함)으로써, 블록체인 네트워크의 네트워크 보안이 개선된다.
도 7은 본 출원의 실시예에 따른 블록체인 기반 데이터 검출 장치의 개략적인 구조도이다. 일부 실시예들에서, 블록체인 기반 데이터 검출 장치는 소프트웨어에 의해 구현될 수 있는데, 예를 들어, 컴퓨터 디바이스에서 실행되는 (프로그램 코드를 포함하는) 컴퓨터 프로그램일 수 있다. 예를 들어, 블록체인 기반 데이터 검출 장치는 애플리케이션 소프트웨어이다. 장치는 또한 하드웨어에 의해, 예를 들어, 본 출원의 실시예들에 의해 제공되는 표현 처리 방법을 실행하도록 프로그래밍되는 하드웨어 디코딩 프로세서의 형태의 프로세서에 의해 구현될 수 있다. 예를 들어, 하드웨어 디코딩 프로세서 형태의 프로세서는, 하나 이상의 ASIC(Application Specific Integrated Circuit), DSP, PLD(Programmable Logic Device), CPLD(Complex Programmable Logic Device), FPGA(Field Programmable Gate Array), 또는 기타 전자 컴포넌트일 수 있다. 일부 실시예들에서, 장치는 또한 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다.
데이터 검출 장치는 본 출원의 실시예들에서 제공되는 방법에서의 대응하는 단계들을 실행하도록 구성될 수 있다. 데이터 검출 장치는 또한 타깃 합의 노드에 적용가능할 수 있다. 도 7에 도시된 바와 같이, 데이터 검출 장치(1)는: 결과 획득 모듈(11), 수량 계산 모듈(12), 결과 결정 모듈(13), 횟수 결정 모듈(14), 및 노드 결정 모듈(15)을 포함할 수 있다.
결과 획득 모듈(11)은 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과를 획득하도록 구성된다.
수량 계산 모듈(12)은 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하도록 구성된다.
결과 결정 모듈(13)은 제1 수량 및 제2 수량에 따라 검증될 블록에 대한 타깃 검증 결과를 결정하도록 구성되고, 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과이고;
횟수 결정 모듈(14)은 타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하도록 구성된다.
노드 결정 모듈(15)은 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하도록 구성된다.
결과 획득 모듈(11), 수량 계산 모듈(12), 결과 결정 모듈(13), 횟수 결정 모듈(14), 및 노드 결정 모듈(15)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S101 내지 단계 S105를 참조할 수 있으며, 여기서는 반복되지 않을 것이다.
결과 획득 모듈(11)은: 블록 생성 유닛(111), 브로드캐스팅 유닛(112), 및 결과 획득 유닛(113)을 포함한다.
블록 생성 유닛(111)은 검증될 블록을 생성하도록 구성된다.
브로드캐스팅 유닛(112)은 검증될 블록을 각각의 합의 노드에 브로드캐스팅하여, 각각의 합의 노드가 검증될 블록에 대해 블록 검증을 수행하게 하도록 구성된다.
결과 획득 유닛(113)은 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과를 획득하도록 구성된다.
블록 생성 유닛(111), 브로드캐스팅 유닛(112), 및 결과 획득 유닛(113)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S101을 참조할 수 있고, 여기서 반복되지 않을 것이다.
결과 결정 모듈(13)은: 제1 결과 결정 유닛(131) 및 제2 결과 결정 유닛(132)을 포함한다.
제1 결과 결정 유닛(131)은 제1 수량이 제2 수량보다 클 때 유효 검증 결과를 타깃 검증 결과로서 결정하도록 구성된다.
제2 결과 결정 유닛(132)은 제1 수량이 제2 수량보다 적을 때 무효 검증 결과를 타깃 검증 결과로서 결정하도록 구성된다.
제1 결과 결정 유닛(131) 및 제2 결과 결정 유닛(132)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S103을 참조할 수 있고, 여기서 반복되지 않을 것이다.
수량 계산 모듈(12)은: 투표 수량 획득 모듈(121), 제1 노드 결정 유닛(122), 제2 노드 결정 유닛(123), 및 수량 결정 유닛(124)을 포함한다.
투표 수량 획득 모듈(121)은 각각의 합의 노드에 대응하는 블록 검증 투표 수량을 획득하도록 구성된다.
제1 노드 결정 유닛(122)은 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 블록 검증 결과가 유효 검증 결과인 합의 노드를 제1 합의 노드로서 결정하도록 구성된다.
제2 노드 결정 유닛(123)은 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 블록 검증 결과가 무효 검증 결과인 합의 노드를 제2 합의 노드로서 결정하도록 구성된다.
수량 결정 유닛(124)은 제1 합의 노드들에 대응하는 블록 검증 투표 수량들의 합계를 제1 수량으로서 결정하고, 제2 합의 노드들에 대응하는 블록 검증 투표 수량들의 합계를 제2 수량으로서 결정하도록 구성된다.
투표 수량 획득 모듈(121), 제1 노드 결정 유닛(122), 제2 노드 결정 유닛(123) 및 수량 결정 유닛(124)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S102를 참조할 수 있으며, 여기서는 반복되지 않을 것이다.
타깃 합의 노드는 투표 메커니즘에 기초하여 적어도 2개의 합의 노드에 의해 투표함으로써 결정되고;
데이터 검출 장치(1)는: 높이 차이 획득 모듈(16) 및 재투표 모듈(17)을 추가로 포함한다.
높이 차이 획득 모듈(16)은 검증될 블록의 블록 높이를 획득하고, 블록 높이와 검증 시작 높이 사이의 높이 차이를 획득하도록 구성되고, 검증 시작 높이는 타깃 합의 노드가 투표 메커니즘에 기초하여 투표에 의해 결정될 때 타깃 합의 노드에 의해 보유되는 블록의 최대 블록 높이이다.
재투표 모듈(17)은 높이 차이가 높이 차이 임계값보다 클 때 투표 요청을 각각의 합의 노드에 송신하여, 각각의 합의 노드가 투표 요청 및 투표 메커니즘에 따라 타깃 합의 노드를 재투표하게 하도록 구성된다.
높이 차이 획득 모듈(16), 재투표 모듈(17), 및 검증 모듈(17)의 특정 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S105를 참조할 수 있고, 여기서 반복되지 않을 것이다.
횟수 결정 모듈(14)은: 결과 비교 유닛(141), 충돌 결정 유닛(142), 매칭 결정 유닛(143), 및 횟수 결정 유닛(144)을 포함한다.
결과 비교 유닛(141)은 타깃 검증 결과를 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과와 비교하도록 구성된다.
충돌 결정 유닛(142)은 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 타깃 검증 결과와 상이한 블록 검증 결과에 대응하는 합의 노드를 충돌 합의 노드로서 결정하도록 구성된다.
매칭 결정 유닛(143)은 적어도 2개의 합의 노드 중에서, 충돌 합의 노드들 이외의 합의 노드들을 매칭 합의 노드들로서 결정하도록 구성된다.
횟수 결정 유닛(144)은 충돌 합의 노드들에 대응하는 비정상 검증들의 이력 수량을 단위 비정상 수량만큼 증가시켜 충돌 합의 노드들에 대응하는 비정상 검증들의 타깃 수량을 획득하고, 매칭 합의 노드들에 대응하는 비정상 검증들의 이력 수량들을 매칭 합의 노드에 대응하는 비정상 검증들의 타깃 수량들로서 결정하도록 구성되고, 여기서 검증될 블록이 선행 블록을 갖지 않을 때, 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량은 디폴트 초기 수량이고; 검증될 블록이 선행 블록을 가질 때, 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량은 선행 블록에 대한 적어도 2개의 합의 노드의 블록 검증 결과들에 기초하여 획득되는 각각의 합의 노드의 비정상 검증들의 수량이다.
결과 비교 유닛(141), 충돌 결정 유닛(142), 매칭 결정 유닛(143), 및 횟수 결정 유닛(144)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S104를 참조할 수 있고, 여기서는 반복되지 않을 것이다.
노드 결정 모듈(15)은: 체크될 유닛(151), 횟수 획득 유닛(152), 및 비정상 결정 유닛(153)을 포함한다.
체크될 유닛(151)은 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드를 적어도 2개의 합의 노드에 따른 체크될 합의 노드로서 결정하도록 구성된다.
횟수 획득 유닛(152)은 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량을 획득하도록 구성된다.
비정상 결정 유닛(153)은 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족할 때 체크될 합의 노드를 비정상 합의 노드로서 결정하도록 구성된다.
체크될 유닛(151), 횟수 획득 유닛(152), 및 비정상 결정 유닛(153)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S105를 참조할 수 있고, 여기서는 반복되지 않을 것이다.
이상 결정 유닛(153)은: 노드 수량 획득 서브유닛(1531) 및 비정상 결정 서브유닛(1532)을 포함한다.
노드 수량 획득 서브유닛(1531)은 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 비정상 검증들의 타깃 수량에 대응하는 합의 노드들의 노드 수량을 획득하도록 구성된다.
비정상 결정 서브유닛(1532)은 적어도 2개의 합의 노드의 총 노드 수량에 대한 노드 수량의 비율이 비율 임계값보다 클 때, 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족하는 것으로 결정하도록 구성된다.
노드 수량 획득 서브유닛(1531) 및 비정상 결정 서브유닛(1532)의 기능들의 구현들에 대해서는, 도 3에 대응하는 실시예에서의 단계 S105를 참조할 수 있으므로, 여기서는 반복되지 않을 것이다.
데이터 검출 장치(1)는:
적어도 2개의 합의의 총 노드 수량에 대한 노드 수량의 비율이 비율 임계값보다 작거나 같을 때, 각각의 합의 노드에 의해 카운트된 체크될 합의 노드의 비정상 검증들의 타깃 수량이 비정상 합의 노드를 결정하기 위한 기준을 충족하지 않는 것으로 결정하고 체크될 합의 노드를 정상 합의 노드로서 결정하도록 추가로 구성된다.
데이터 검출 장치(1)는:
비정상 합의 노드를 각각의 합의 노드에 브로드캐스팅하여, 각각의 합의 노드가 비정상 합의 노드를 노드 블랙리스트에 추가하게 하도록 추가로 구성되고, 노드 블랙리스트는 비정상 합의 노드에 의해 개시된 블록 트랜잭션을 거부하도록 구성된다.
본 출원의 실시예들에 의해, 비정상 합의 노드는 적어도 2개의 합의 노드로부터 검출될 수 있다. 블록체인 네트워크에서 비정상 합의 노드를 능동적으로 발견하고 비정상 합의 노드에 대해 대응하는 처리를 수행함(예를 들어, 비정상 합의를 블랙리스트에 추가함)으로써, 블록체인 네트워크의 네트워크 보안이 개선된다.
본 출원의 실시예에 따른 컴퓨터 디바이스의 개략적인 구조도인 도 8을 참조하자. 컴퓨터 디바이스는 본 출원의 실시예들에서 타깃 합의 노드로서 사용될 수 있다. 도 8에 도시된 바와 같이, 컴퓨터 디바이스(1000)는: 프로세서(1001), 네트워크 인터페이스(1004), 및 메모리(1005)를 포함할 수 있다. 또한, 컴퓨터 디바이스(1000)는 사용자 인터페이스(1003) 및 적어도 하나의 통신 버스(1002)를 추가로 포함할 수 있다. 통신 버스(1002)는 이러한 컴포넌트들 사이의 접속 및 통신을 구현하도록 구성된다. 사용자 인터페이스(1003)는 디스플레이 및 키보드를 포함할 수 있다. 옵션으로, 사용자 인터페이스(1003)는 표준 유선 인터페이스 및 표준 무선 인터페이스를 추가로 포함할 수 있다. 네트워크 인터페이스(1004)는 표준 유선 인터페이스 및 표준 무선 인터페이스(예를 들어, Wi-Fi 인터페이스)를 포함할 수 있다. 메모리(1005)는 고속 RAM일 수 있거나, 비휘발성 메모리, 예를 들어, 적어도 하나의 자기 디스크 메모리일 수 있다. 메모리(1005)는 대안적으로 프로세서(1001)로부터 원격으로 위치된 적어도 하나의 저장 장치일 수 있다. 도 8에 도시된 바와 같이, 컴퓨터 저장 매체로서 사용되는 메모리(1005)는 운영 체제, 네트워크 통신 모듈, 사용자 인터페이스 모듈, 및 디바이스 제어 애플리케이션을 포함할 수 있다.
도 8에 도시된 컴퓨터 디바이스(1000)에서, 네트워크 인터페이스(1004)는 네트워크 통신 기능을 제공할 수 있고, 사용자 인터페이스(1003)는 주로 사용자에게 입력 인터페이스를 제공하도록 구성되고, 프로세서(1001)는 메모리(1005)에 저장된 디바이스 제어 애플리케이션을 호출하여, 도 3에 대응하는 실시예에서의 블록체인 기반 데이터 검출 방법의 설명들을 구현하도록 구성될 수 있다. 본 출원에서 설명되는 컴퓨터 디바이스(1000)는 도 7에 대응하는 전술한 실시예에서의 데이터 검출 장치(1)의 설명을 또한 구현할 수 있다는 점이 이해되어야 하며, 이는 여기서 반복되지 않을 것이다. 또한, 동일한 방법을 사용하여 달성되는 유익한 효과들은 본 명세서에서는 다시 설명되지 않는다.
또한, 본 출원은 컴퓨터-판독가능 저장 매체를 추가로 제공한다. 컴퓨터 판독가능 저장 매체는 위에 언급한 데이터 검출 장치(1)에 의해 실행되는 컴퓨터 프로그램을 저장하고, 컴퓨터 프로그램은 프로그램 명령어들을 포함한다. 프로그램 명령어들을 실행할 때, 프로세서는 도 3에 대응하는 실시예에서의 데이터 검출 방법의 설명들을 구현할 수 있고, 이는 여기서 반복되지 않을 것이다. 또한, 동일한 방법을 사용하여 달성되는 유익한 효과들은 본 명세서에서는 다시 설명되지 않는다. 본 출원의 컴퓨터 저장 매체의 실시예에 개시되지 않은 기술적 세부사항들에 대해서는, 본 출원의 방법 실시예들의 설명을 참조한다.
본 기술분야에서의 통상의 기술자는 본 실시예들에서의 방법들의 프로세스들의 전부 또는 일부가 관련 하드웨어에 명령하는 컴퓨터 프로그램에 의해 구현될 수 있다는 것을 이해할 수 있다. 프로그램은 컴퓨터 판독가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 전술한 방법 실시예들의 절차들이 수행된다. 전술한 저장 매체는 자기 디스크, 광 디스크, ROM(read-only memory), RAM(random access memory) 등을 포함할 수 있다.
위에 개시된 것은 단지 본 출원의 예시적인 실시예들이고, 물론 본 출원의 청구항들의 범위를 제한하도록 의도되지 않는다. 그러므로, 본 출원의 청구항들에 따라 이루어지는 균등한 변형들은 본 출원의 범위 내에 속할 것이다.

Claims (15)

  1. 타깃 합의 노드(target consensus node)에 의해 수행되는 블록체인 기반 데이터 검출 방법으로서,
    검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들을 획득하는 단계;
    상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하는 단계;
    상기 제1 수량 및 상기 제2 수량에 따라 상기 검증될 블록에 대한 타깃 검증 결과를 결정하는 단계- 상기 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과임 -;
    상기 타깃 검증 결과를 상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 상기 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하게 하는 단계; 및
    상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 상기 비정상 검증들의 타깃 수량에 따라 상기 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들을 획득하는 상기 단계는,
    상기 검증될 블록을 생성하는 단계;
    상기 검증될 블록을 각각의 합의 노드에 브로드캐스팅하여, 각각의 합의 노드가 상기 검증될 블록에 대해 블록 검증을 수행하게 하는 단계; 및
    상기 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과를 획득하는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 제1 수량 및 상기 제2 수량에 따라 상기 검증될 블록에 대한 타깃 검증 결과를 결정하는 상기 단계는,
    상기 제1 수량이 상기 제2 수량보다 클 때 상기 유효 검증 결과를 상기 타깃 검증 결과로서 결정하는 단계; 및
    상기 제1 수량이 상기 제2 수량보다 적을 때 상기 무효 검증 결과를 상기 타깃 검증 결과로서 결정하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하는 상기 단계는,
    각각의 합의 노드에 대응하는 블록 검증 투표 수량을 획득하는 단계;
    상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 상기 블록 검증 결과가 상기 유효 검증 결과인 합의 노드를 제1 합의 노드로서 결정하는 단계;
    상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 상기 블록 검증 결과가 상기 무효 검증 결과인 합의 노드를 제2 합의 노드로서 결정하는 단계; 및
    상기 제1 합의 노드들에 대응하는 상기 블록 검증 투표 수량들의 합계를 상기 제1 수량으로서 결정하고, 상기 제2 합의 노드들에 대응하는 상기 블록 검증 투표 수량들의 합계를 상기 제2 수량으로서 결정하는 단계를 포함하는 방법.
  5. 제1항에 있어서, 상기 타깃 합의 노드는 투표 메커니즘에 기초하여 상기 적어도 2개의 합의 노드에 의해 투표함으로써 결정되고, 상기 방법은,
    상기 검증될 블록의 블록 높이를 획득하고, 상기 블록 높이와 검증 시작 높이 사이의 높이 차이를 획득하는 단계-
    상기 검증 시작 높이는 상기 타깃 합의 노드가 상기 투표 메커니즘에 기초한 투표에 의해 결정될 때 상기 타깃 합의 노드에 의해 보유되는 블록의 최대 블록 높이임 -; 및
    상기 높이 차이가 높이 차이 임계값보다 클 때 각각의 합의 노드에 투표 요청을 송신하여, 각각의 합의 노드가 상기 투표 요청 및 상기 투표 메커니즘에 따라 상기 타깃 합의 노드를 재투표하게 하는 단계를 추가로 포함하는 방법.
  6. 제1항에 있어서, 상기 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하게 하는 단계는,
    상기 타깃 검증 결과를 상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하는 단계;
    상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들에 따라 상기 타깃 검증 결과와 상이한 블록 검증 결과에 대응하는 합의 노드를 충돌 합의 노드로서 결정하는 단계;
    상기 적어도 2개의 합의 노드 중에서, 상기 충돌 합의 노드들 이외의 합의 노드들을 매칭 합의 노드들로서 결정하는 단계; 및
    상기 충돌 합의 노드들에 대응하는 비정상 검증들의 이력 수량들을 단위 비정상 수량만큼 증가시켜 상기 충돌 합의 노드들에 대응하는 비정상 검증들의 타깃 수량들을 획득하게 하고, 상기 매칭 합의 노드들에 대응하는 비정상 검증들의 이력 수량들을 상기 매칭 합의 노드에 대응하는 비정상 검증들의 타깃 수량들로서 결정하는 단계를 포함하고,
    상기 검증될 블록이 선행 블록을 갖지 않을 때, 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량은 디폴트 초기 수량이고; 상기 검증될 블록이 선행 블록을 가질 때, 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량은 상기 선행 블록에 대한 적어도 2개의 합의 노드의 블록 검증 결과들에 기초하여 획득되는 각각의 합의 노드의 비정상 검증들의 수량인 방법.
  7. 제1항에 있어서, 상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량에 따라 상기 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하는 상기 단계는,
    상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 상기 비정상 검증들의 타깃 수량에 따라 비정상 횟수 임계값보다 큰 상기 비정상 검증들의 타깃 수량에 대응하는 상기 합의 노드를 상기 적어도 2개의 합의 노드에 따른 체크될 합의 노드로서 결정하는 단계;
    각각의 합의 노드에 의해 카운트된 상기 체크될 합의 노드의 비정상 검증들의 타깃 수량을 획득하는 단계; 및
    각각의 합의 노드에 의해 카운트된 상기 체크될 합의 노드의 비정상 검증들의 타깃 수량이 상기 비정상 합의 노드를 결정하기 위한 기준을 충족할 때 상기 체크될 합의 노드를 상기 비정상 합의 노드로서 결정하는 단계를 포함하는 방법.
  8. 제7항에 있어서, 상기 방법은,
    각각의 합의 노드에 의해 카운트된 상기 체크될 합의 노드의 상기 비정상 검증들의 타깃 수량에 따라 상기 비정상 횟수 임계값보다 큰 상기 비정상 검증들의 타깃 수량에 대응하는 상기 합의 노드들의 노드 수량을 획득하는 단계; 및
    상기 적어도 2개의 합의 노드의 총 노드 수량에 대한 상기 노드 수량의 비율이 비율 임계값보다 클 때, 각각의 합의 노드에 의해 카운트된 상기 체크될 합의 노드의 비정상 검증들의 타깃 수량이 상기 비정상 합의 노드를 결정하기 위한 기준을 충족하는 것으로 결정하는 단계를 추가로 포함하는 방법.
  9. 제8항에 있어서, 상기 방법은,
    상기 적어도 2개의 합의의 총 노드 수량에 대한 상기 노드 수량의 비율이 상기 비율 임계값보다 작거나 같을 때, 각각의 합의 노드에 의해 카운트된 상기 체크될 합의 노드의 상기 비정상 검증들의 타깃 수량이 상기 비정상 합의 노드를 결정하기 위한 기준을 충족하지 않는 것으로 결정하고 상기 체크될 합의 노드를 정상 합의 노드로서 결정하는 단계를 추가로 포함하는 방법.
  10. 제1항에 있어서, 상기 방법은,
    각각의 합의 노드에 상기 비정상 합의 노드를 브로드캐스팅하여, 각각의 합의 노드가 상기 비정상 합의 노드를 노드 블랙리스트에 추가하게 하는 단계를 추가로 포함하고, 상기 노드 블랙리스트는 상기 비정상 합의 노드에 의해 개시된 블록 트랜잭션을 거부하도록 구성되는 방법.
  11. 타깃 합의 노드에 적용가능한 블록체인 기반 데이터 검출 장치로서,
    검증될 블록에 대한 적어도 2개의 합의 노드의 각자의 블록 검증 결과들을 획득하도록 구성되는 결과 획득 모듈;
    상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각각의 블록 검증 결과들 중에서 유효 검증 결과들의 제1 수량 및 무효 검증 결과들의 제2 수량을 카운트하도록 구성되는 수량 계산 모듈;
    상기 제1 수량 및 상기 제2 수량에 따라 상기 검증될 블록에 대한 타깃 검증 결과를 결정하도록 구성되는 결과 결정 모듈- 상기 타깃 검증 결과는 유효 검증 결과 또는 무효 검증 결과임 -;
    상기 타깃 검증 결과를 상기 검증될 블록에 대한 상기 적어도 2개의 합의 노드의 각자의 블록 검증 결과들과 비교하고, 상기 비교의 결과에 따라 각각의 합의 노드에 대응하는 비정상 검증들의 이력 수량을 업데이트하여, 상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 비정상 검증들의 타깃 수량을 획득하게 하도록 구성되는 횟수 결정 모듈; 및
    상기 타깃 합의 노드에 의해 카운트된 각각의 합의 노드의 상기 비정상 검증들의 타깃 수량에 따라 상기 적어도 2개의 합의 노드 중에서 비정상 합의 노드를 결정하도록 구성되는 노드 결정 모듈을 포함하는 장치.
  12. 제11항에 있어서, 상기 결과 획득 모듈은,
    상기 검증될 블록을 생성하도록 구성되는 블록 생성 유닛;
    상기 검증될 블록을 각각의 합의 노드에 브로드캐스팅하여, 각각의 합의 노드가 상기 검증될 블록에 대해 블록 검증을 수행하게 하도록 구성되는 브로드캐스팅 유닛; 및
    상기 검증될 블록에 대한 각각의 합의 노드의 블록 검증 결과를 획득하도록 구성되는 결과 획득 유닛을 포함하는 장치.
  13. 제11항에 있어서, 상기 결과 결정 모듈은,
    상기 제1 수량이 상기 제2 수량보다 클 때 상기 유효 검증 결과를 상기 타깃 검증 결과로서 결정하도록 구성되는 제1 결과 결정 유닛; 및
    상기 제1 수량이 상기 제2 수량보다 적을 때 상기 무효 검증 결과를 상기 타깃 검증 결과로서 결정하도록 구성되는 제2 결과 결정 유닛을 포함하는 장치.
  14. 컴퓨터 디바이스로서,
    메모리 및 프로세서를 포함하고, 상기 메모리는 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램은, 상기 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제10항 중 어느 한 항에 따른 방법을 실행하게 하는 컴퓨터 디바이스.
  15. 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 프로그램은 프로그램 명령어들을 포함하고, 상기 프로그램 명령어들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 제1항 내지 제10항 중 어느 한 항에 따른 방법을 실행하게 하는 컴퓨터 판독가능 저장 매체.
KR1020227018299A 2020-05-21 2021-04-21 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체 KR102578019B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010433284.9 2020-05-21
CN202010433284.9A CN111343208B (zh) 2020-05-21 2020-05-21 基于区块链的数据检测方法、装置及计算机可读存储介质
PCT/CN2021/088624 WO2021233048A1 (zh) 2020-05-21 2021-04-21 基于区块链的数据检测方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
KR20220091560A true KR20220091560A (ko) 2022-06-30
KR102578019B1 KR102578019B1 (ko) 2023-09-14

Family

ID=71187577

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227018299A KR102578019B1 (ko) 2020-05-21 2021-04-21 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체

Country Status (5)

Country Link
US (1) US20220272105A1 (ko)
JP (1) JP7398000B2 (ko)
KR (1) KR102578019B1 (ko)
CN (1) CN111343208B (ko)
WO (1) WO2021233048A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111343208B (zh) * 2020-05-21 2020-08-14 腾讯科技(深圳)有限公司 基于区块链的数据检测方法、装置及计算机可读存储介质
CN112200578A (zh) * 2020-09-23 2021-01-08 裴俊伟 基于区块链的金融业务校验方法和金融业务校验平台
CN113312332A (zh) * 2020-10-24 2021-08-27 曹青青 基于区块链和云计算的模型训练方法及系统
CN114615002B (zh) * 2020-12-03 2024-02-27 中国移动通信集团设计院有限公司 运营商关键基础设施被控识别方法及系统
CN113177196A (zh) * 2021-04-29 2021-07-27 广东粤信智能科技有限公司 一种基于区块链的数据标准验证方法、存储介质及系统
CN113868216B (zh) * 2021-12-03 2022-02-22 中国信息通信研究院 区块链监测方法及装置
CN114385761B (zh) * 2022-03-23 2022-07-12 支付宝(杭州)信息技术有限公司 一种基于共识系统的共识数据存储、获取方法及装置
JPWO2024004485A1 (ko) * 2022-06-30 2024-01-04
JPWO2024009650A1 (ko) * 2022-07-04 2024-01-11
CN117081861B (zh) * 2023-10-16 2023-12-26 北京亚大通讯网络有限责任公司 基于区块链的智能合约数据管理系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445619B (zh) * 2017-03-30 2020-10-16 腾讯科技(深圳)有限公司 区块链系统、消息处理方法及存储介质
CN112865982A (zh) * 2017-07-26 2021-05-28 创新先进技术有限公司 数字证书管理方法、装置及电子设备
CN107590738A (zh) * 2017-08-24 2018-01-16 阿里巴巴集团控股有限公司 选择共识节点的处理方法、装置及服务器
CN107579848B (zh) * 2017-08-30 2020-08-25 上海保险交易所股份有限公司 实用拜占庭容错共识机制中动态更改共识节点的方法
US20190333030A1 (en) * 2018-04-30 2019-10-31 Bank Of America Corporation Blockchain-based digital token utilization
CN109086619A (zh) * 2018-07-05 2018-12-25 广东天泽汇通科技有限公司 基于区块链的停车信用调整方法及其装置、电子设备
CN109002297B (zh) * 2018-07-16 2020-08-11 百度在线网络技术(北京)有限公司 共识机制的部署方法、装置、设备和存储介质
CN109034851B (zh) * 2018-09-05 2022-03-08 深圳正品创想科技有限公司 基于区块链的商品防伪溯源方法及其装置、区块链节点
CN109218311B (zh) * 2018-09-18 2021-09-03 北京京东尚科信息技术有限公司 区块链的结块方法、区块链的节点和区块链
US11729186B2 (en) * 2018-10-04 2023-08-15 Research Foundation Of The City University Of New York Blockchain architecture for computer security applications
CN110232634A (zh) * 2019-06-05 2019-09-13 湖南道业信息科技有限公司 区块链共识方法、区块链共识系统和计算机可读存储介质
CN110247774A (zh) * 2019-06-28 2019-09-17 深圳市网心科技有限公司 一种区块链数据的共识方法及相关设备
CN110443712B (zh) * 2019-08-09 2021-04-20 腾讯科技(深圳)有限公司 合约冲突检测方法、装置、可读存储介质和计算机设备
CN110932892B (zh) * 2019-11-21 2022-05-31 腾讯科技(深圳)有限公司 基于区块链的信息预警方法、装置、相关节点及存储介质
CN111444211B (zh) * 2020-03-26 2021-07-13 腾讯科技(深圳)有限公司 区块链共识节点校验方法、装置、设备以及存储介质
CN111343208B (zh) * 2020-05-21 2020-08-14 腾讯科技(深圳)有限公司 基于区块链的数据检测方法、装置及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Baocheng Wang et al., A Blockchain Consensus Mechanism for Educational Administration System, 2019 2nd International Conference on Electronics Technology(2019) *

Also Published As

Publication number Publication date
JP2023509889A (ja) 2023-03-10
US20220272105A1 (en) 2022-08-25
CN111343208B (zh) 2020-08-14
KR102578019B1 (ko) 2023-09-14
WO2021233048A1 (zh) 2021-11-25
CN111343208A (zh) 2020-06-26
JP7398000B2 (ja) 2023-12-13

Similar Documents

Publication Publication Date Title
KR102578019B1 (ko) 블록체인 기반 데이터 검출 방법 및 디바이스, 및 컴퓨터 판독가능 저장 매체
CN108694665B (zh) 区块链管理装置、数据处理系统及即时交易处理方法
US10735450B2 (en) Trust topology selection for distributed transaction processing in computing environments
JP7138726B2 (ja) ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード
CN110602217B (zh) 基于区块链的联盟管理方法、装置、设备及存储介质
US20230037932A1 (en) Data processing method and apparatus based on blockchain network, and computer device
KR102559881B1 (ko) 난스 증명 기반 분산합의 노드 선정 방법 및 장치
WO2022217807A1 (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN110602135B (zh) 网络攻击处理方法、装置以及电子设备
US11875188B2 (en) Data processing system using directed acyclic graph and method of use thereof
Salman et al. Probabilistic blockchains: a blockchain paradigm for collaborative decision-making
EP3659060B1 (en) Consensus protocol for permissioned ledgers
WO2020115496A2 (en) A node testing method and apparatus for a blockchain system
Islam et al. A comparative analysis of proof-of-authority consensus algorithms: Aura vs Clique
CN115694876A (zh) 一种区块链电力交易系统、共识方法、设备和存储介质
CN115022326A (zh) 基于协同过滤推荐的区块链拜占庭容错共识方法
Reno et al. Solving blockchain trilemma using off‐chain storage protocol
CN110825806A (zh) 分布式数据存储
US20210234667A1 (en) Method and system for proof of election on a blockchain
CN112685769A (zh) 区块链的数据处理方法、装置及电子设备
KR20210066348A (ko) 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법
CN114465866B (zh) 基于信任度和PBFT的DPoS方法
CN117040929B (zh) 一种访问处理方法、装置、设备、介质及程序产品
Jain et al. A Survey on Scalable Consensus Algorithms for Blockchain Technology
CN114244585B (zh) 用于金融账号的安全保障方法及装置、电子设备

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right