KR102469267B1 - 블록 체인 합의 방법, 어카운팅 노드 및 노드 - Google Patents

블록 체인 합의 방법, 어카운팅 노드 및 노드 Download PDF

Info

Publication number
KR102469267B1
KR102469267B1 KR1020207034671A KR20207034671A KR102469267B1 KR 102469267 B1 KR102469267 B1 KR 102469267B1 KR 1020207034671 A KR1020207034671 A KR 1020207034671A KR 20207034671 A KR20207034671 A KR 20207034671A KR 102469267 B1 KR102469267 B1 KR 102469267B1
Authority
KR
South Korea
Prior art keywords
node
accounting
election
nodes
accounting node
Prior art date
Application number
KR1020207034671A
Other languages
English (en)
Other versions
KR20210006934A (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 KR20210006934A publication Critical patent/KR20210006934A/ko
Application granted granted Critical
Publication of KR102469267B1 publication Critical patent/KR102469267B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0655Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/12Accounting
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2230/00Voting or election arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Technology Law (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 블록 체인 합의 방법, 어카운팅 노드 및 노드를 개시한다. 어카운팅 노드는 블록을 생성하여 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 어카운팅 노드의 검증 정보를 브로드캐스팅한 다음 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고 확인 정보를 검증한다. 수신된 확인 정보가 제2 소정 조건을 충족할 때 블록을 블록 체인에 추가한다. 코인 연령에 따라 선거 노드에서 복수의 어카운팅 노드를 선출하므로 작업 증명 문제를 해결하여 어카운팅 노드를 결정하는 대신 어카운팅 노드를 결정하는 효율성이 향상되고 리소스 소비가 감소된다. 어카운팅 노드가 블록을 생성하며 어카운팅 노드의 정보 및 블록의 정보를 브로드캐스팅하고, 브로드캐스팅된 정보가 다른 어카운팅 노드에 의해 검증된 후어카운팅 노드는 블록을 로컬 블록 체인에 추가하고, 블록 체인 네트워크의 일관성과 안전성을 보장한다,어카운팅 노드는 블록 생성 후 즉시 합의를 할 수 있으며 합의 효율성을 향상시킨다.

Description

블록 체인 합의 방법, 어카운팅 노드 및 노드
관련출원의 교차인용
본 출원은, 2018년 05월 03일에 중국 특허청에 출원된 출원 번호 제201810414927.8호, "블록 체인 합의 방법, 어카운팅 노드 및 노드"를 발명 명칭으로 하는 중국 특허 출원의 우선권을 주장하며, 상기 중국 특허 출원의 전체 내용은 참조로서 출원에 통합되어 본 출원의 일 부분으로 한다.
본 발명은 통신 기술 분야에 속한 것으로서, 보다 상세하게는 블록 체인 합의 방법, 어카운팅 노드 및 노드 에 관한 것이다.
종래 기술에서 블록 체인은 작업 증명 (Proof of Work,PoW) 합의 메커니즘을 사용하며, 채굴 프로세스는 합의 메커니즘의 핵심이다. 채굴은 어카운팅 권을 위해 쟁취하는 과정이다. 어카운팅 권을 획득한 노드는 받은 모든 법적 트랜잭션을 패키징하여 블록에 놓아 블록을 메인 체인에 연결하여 비트 코인 보상을 얻는다. 비트 코인 네트워크의 모든 노드가 어카운팅 경쟁을할 수 있지만 결국 작업 증명 문제를 먼저 해결하는 노드 하나만 어카운팅을 완료할 수 있다. PoW는 노드가 어카운팅 권리 경쟁을 위해 일련의 계산을 수행해야하므로 이 프로세스는 많은 양의 컴퓨팅 리소스와 전력을 소비해야하며 상대적으로 긴 계산 시간이 필요하므로더 높은 효율성을 요구하는 많은 프로젝트에 대한 요구 사항을 충족할 수 없다.
본 발명의 실시예는 블록 체인의 합의 효율을 향상시키기 위해 블록 체인 합의 방법, 어카운팅 노드 및 노드를 제공한다.
제1 측면에서, 본 발명의 실시예에 의해 제공되는 블록 체인 합의 방법은, 어카운팅 노드는 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하는 단계 - 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상임; 상기 어카운팅 노드는 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하여 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하는 단계; 및 상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나임; 상기 어카운팅 노드는 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하는 단계를 포함하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되며; 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅된다.
코인 연령에 따라 복수의 어카운팅 노드가 선택 노드에서 선택되므로 작업 증명 문제를 해결하여 어카운팅 노드를 결정하는 대신 어카운팅 노드를 결정하는 효율성이 향상되고 반면에 리소스 소비가 감소된다. 둘째, 어카운팅 노드는 블록을 생성하고 여기서, 블록을 생성하는 어카운팅 노드는 어카운팅 노드의 코인 연령에 따라 결정되며, 코인 연령이 가장 많은 어카운팅 노드를 블록을 생성하는 어카운팅 노드로 결정될 수 있으며 코인 연령에 따라 어카운팅 노드를 무작위로 선택하여 블록을 생성하는 어카운팅 노드로 결정될 수 있다. 어카운팅 노드의 정보 및 블록의 정보를 브로드캐스팅하고, 브로드캐스팅된 정보는 다른 어카운팅 노드에 의한 검증이 성공되어야 어카운팅 노드 로컬 블록 체인에 블록을 추가할 수있어 블록 체인 네트워크의 일관성과 안전성을 보장한다. 또한 어카운팅 노드는 블록 생성 후 즉시 합의를 할 수 있으며 합의된 프로세스는 작업 증명 문제를 해결할 필요가 없어 합의 효율성을 향상시킨다.
일 가능한 설계에서, 상기 어카운팅 노드는 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 준비 정보를 수신하여 검증하고, 상기 어카운팅 노드는 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅한다.
일 가능한 설계에서, 상기 제2 어카운팅 노드는 상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 제2 어카운팅 노드는 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가한다.
일 가능한 설계에서, 임의의 노드에 대해, 상기 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하고, 상기 노드는 선거 결과 정보를 생성하여 브로드캐스팅하고, 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함하고, 상기 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정한다. 선거 노드가 선거 요청을 브로드캐스팅한 후, 블록 체인 네트워크의 다른 노드가 수신된 선거 요청의 코인 연령에 따라 선거 노드를 정렬한 다음 정렬 결과를 브로드캐스팅한다. 모든 노드는 수신된 정렬 결과가 제3 소정 조건을 충족할 때 정렬 결과에서 선거 노드를 어카운팅 노드로 결정하고 전체 프로세스는 작업 증명 문제를 해결할 필요가 없어 어카운팅 결정의 효율성을 향상시키며 반면에 리소스 소비가 감소된다.
일 가능한 설계에서, 상기 어카운팅 노드는 수신된 상기 확인 정보 검증이 실패되었다고 결정할 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅하고, 상기 어카운팅 노드는 제2 결함 노드 제거 요청을 수신하여 상기 제2 결함 노드 제거 요청을 검증하고, 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅되고, 상기 어카운팅 노드는 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록 한다. 어카운팅 노드는 장애 노드를 발견하면 결함 노드 제거 요청을 브로드캐스팅하고 결함 노드 제거 요청이 다른 어카운팅 노드에 의해 승인된 후 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 결함 노드가 블록 체인 네트워크에 간섭하지 않도록 하고, 블록 체인 네트워크의 안정성을 개선한다.
일 가능한 설계에서, 상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드이다. 더 많은 권리와 이익을 가진 노드는 시스템 보안을 유지하려는 동기가 더 많으므로 코인 연령 정보에 따라 N 개의 어카운팅 노드에서 메인 어카운팅 노드 및 백업 어카운팅 노드를 결정한 후, 메인 어카운팅 노드에 의해 합의 프로세스가 시작되어 시스템 안전성을 더욱 향상시킬 수 있다.
제2 측면에서, 본 발명의 실시예에 의해 제공되는 어카운팅 노드는 어카운팅 노드의 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하도록 구성된 제1 브로드캐스팅 모듈 - 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상임; 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하도록 구성된 검증 모듈; 및 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하도록 구성된 제1 처리 모듈을 포함하고, 여기서, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되고, 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅되고, 상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나이다.
일 가능한 설계에서, 상기 검증 모듈은 또한 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 준비 정보를 수신하여 검증하고, 상기 제1 처리 모듈은 또한 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅한다.
일 가능한 설계에서, 상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하도록 구성된 제1 수신 모듈이 더 포함되며; 상기 처리 모듈은 또한 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가한다.
일 가능한 설계에서, 상기 제1 처리 모듈은 또한, 수신된 상기 확인 정보 검증이 실패되었다고 판단될 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅하고, 상기 검증 모듈은 또한, 제2 결함 노드 제거 요청을 수신하고 상기 제2 결함 노드 제거 요청을 검증하고, 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅되고, 상기 제1 브로드캐스팅 모듈은 또한, 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록 한다.
일 가능한 설계에서, 상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드이다.
제3 측면에서, 본 발명의 실시예에 의해 제공되는 노드는,
M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하도록 구성된 제2 수신 모듈; 선거 결과 정보를 생성하여 브로드캐스팅하도록 구성된 제2 브로드캐스팅 모듈 - 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함함; 및 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하도록 구성된 제2 처리 모듈을 포함한다.
제4 측면에서, 본 발명의 실시예에 의해 제공되는 단말 장치는, 적어도 하나의 처리 유닛 및 적어도 하나의 저장 유닛을 포함하고, 여기서, 상기 저장 유닛은 컴퓨터 프로그램을 저장하고, 상기 프로그램이 상기 처리 유닛에 의해 실행될 때 상기 처리 유닛로 하여금 위에서 설명한 모든 방법의 단계를 수행하도록 한다.
제5 측면에서, 본 발명의 실시예는 프로세서, 메모리, 송수신기 및 버스 인터페이스를 포함하는 전자 장치를 제공하며, 여기서, 프로세서, 메모리, 송수신기 및 버스 인터페이스는 버스를 통해 서로 연결되며, ;
상기 프로세서,는 다음과 같은 방법을 수행하기 위해 메모리에서 프로그램을 판독하도록 구성되고 : 어카운팅 노드의 블록을 생성하고 송수신기를 통해 N 개의 어카운팅 노드 중 다른 어카운팅 노드로 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하고, 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상이며; 송수신기를 통해 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하고, 여기서, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되고, 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅되고, ;상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나이고; 송수신기를 통해 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가한다.
상기 메모리는 하나 이상의 실행 가능한 프로그램을 저장하고 작업을 수행할 때 상기 프로세서가 사용하는 데이터를 저장하도록 구성된다.
제6 측면에서, 본 발명의 실시예는 프로세서, 메모리, 송수신기 및 버스 인터페이스를 포함하는 전자 장치를 제공하며, 여기서, 프로세서, 메모리, 송수신기 및 버스 인터페이스는 버스를 통해 서로 연결되며, ;
상기 프로세서는 다음과 같은 방법을 수행하기 위해 메모리에서 프로그램을 판독하도록 구성되고 : 송수신기를 통해 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하고, 송수신기는 프로세서의 제어하에 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하고, 선거 결과 정보를 생성하여 브로드캐스팅하고, 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함하고,
상기 메모리는 하나 이상의 실행 가능한 프로그램을 저장하고 작업을 수행할 때 상기 프로세서가 사용하는 데이터를 저장하도록 구성된다.
제7 측면에서, 본 출원의 실시예는 명령어를 저장하는 비 일시적 컴퓨터 판독 가능 저장 매체를 제공하는데, 이는 컴퓨터로 하여금 제1 측면에 따른 방법을 수행하게하거나 또는 제1 측면의 임의의 가능한 구현을 수행하게한다.
제8 측면에서, 본 출원의 실시예는 컴퓨터에서 실행될 때 제1 측면의 방법 또는 제1 측면의 임의의 가능한 구현에서 컴퓨터로 하여금 방법을 수행하게하는 명령어를 포함하는 컴퓨터 프로그램 제품을 제공한다.
본 발명의 실시예에서는 코인 연령에 따라 복수의 어카운팅 노드가 선택 노드에서 선택되므로 작업 증명 문제를 해결하여 어카운팅 노드를 결정하는 대신 어카운팅 결정의 효율성을 향상시키며 반면에 리소스 소비가 감소된다. 둘째, 어카운팅 노드는 블록을 생성하고 어카운팅 노드의 정보 및 블록의 정보를 브로드캐스팅하고, 브로드캐스팅된 정보는 다른 어카운팅 노드에 의한 검증이 성공되어야 어카운팅 노드 로컬 블록 체인에 블록을 추가할 수있어 블록 체인 네트워크의 일관성과 안전성을 보장한다. 또한 어카운팅 노드는 블록 생성 후 즉시 합의를 할 수 있으며 합의된 프로세스는 작업 증명 문제를 해결할 필요가 없어 합의 효율성을 향상시킨다.
본 발명에 따른 실시예의 기술안을 보다 명확하게 설명하기 위해 이하 실시예의 서술에 필요된 도면을 간략하게 설명한다. 이하 서술한 도면은 단지 본 발명의 일부 실시예에 불과함은 자명하며 해당 분야의 통상의 기술을 가진 자라면 창조력을 발휘하지 않는 한 이들의 도면에 따라 다른 도면을 얻을 수도 있다.
도 1은 본 발명의 실시에 의해 제공되는 블록 체인 합의 방법의 개략적인 흐름도이다.
도 2a는 본 발명의 실시에 의해 제공되는 어카운팅 노드를결정하는 방법의 개략적인 흐름도이다.
도 2b는 본 발명의 실시에 의해 제공되는 어카운팅 노드를결정하는 방법의 개략적인 흐름도이다.
도 3은 본 발명의 실시에 의해 제공되는 결함 노드를 검출하는 방법의 개략적인 흐름도이다.
도 4는 본 발명의 실시에 의해 제공되는 어카운팅 노드의 구조적 개략도이다.
도 5는 본 발명의 실시에 의해 제공되는 노드의 구조적 개략도이다.
도 6은 본 발명의 실시에 의해 제공되는 단말 장치의 구조적 개략도이다.
도 7은 본 발명의 실시에 의해 제공되는 전자 장치 의 구조적 개략도이다.
도 8은 본 발명의 실시에 의해 제공되는 전자 장치 의 구조적 개략도이다..
본 발명의 목적, 기술안 및 장점을 보다 명료하게 나타내기 위해 이하 도면을 참조하면서 본 발명을 설명한다. 여기서 서술한 실시예는 본 발명의 일부 실시예에 불과하며 전 실시예가 아닌 것은 자명하다.
본 발명을 기반으로 하여 통상의 기술을 가진 자라면 창조력을 발휘하지 않으면서 얻은 다른 실시예도 본 발명의 보호 범위에 속한다. 이하의 설명에서, 네트워크 측과 단말 측의 협동 실시를 설명하나 양자가 반드시 협동하여 실시해야 하는 것에 한정하는 것이 아니다.
도면에서 임의의 수의 요소는 제한이 아니라 예를위한 것이며, 임의의 명명은 구별을 위해서만 사용되며 제한적인 의미가 없다는 것을 이해해야한다. 이해를 돕기 위해 본 발명의 실시예에 포함된 명사에 대해 설명한다.
블록 체인 : 좁은 의미에서 블록 체인은 ㅍ순차적인 연결을 통해 데이터 블록을 시간순으로 결합하는 연결된 데이터 구조이며, 암호화 방식으로 변조 및 위조될 수없는 분산 원장이다. 넓은 의미에서 블록 체인 기술은 블록 체인 데이터 구조를 사용하여 데이터를 확인 및 저장하고, 분산 노드 합의 알고리즘을 사용하여 데이터를 생성 및 업데이트하고, 암호화를 사용하여 데이터 전송 및 액세스의 보안을 유지하고 자동화된 스크립트 코드로 구성된 스마트 계약을 사용하여 데이터를 프로그래밍하고 운영하는 새로운 분산 인프라 및 계산 모드이다.
본 발명의 일 실시예는 블록 체인 합의 방법의 프로세스를 제공한다. 이 방법의 프로세스는 어카운팅 노드에 의해 수행될 수 있으며, 도 1에 도시된 바와 같이 다음 단계를 포함한다.
단계 S101, 어카운팅 노드는 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 어카운팅 노드의 검증 정보를 브로드캐스팅한다.
구체적으로, 어카운팅 노드는 합법적인 트랜잭션를 블록으로 패키징하고 블록을 블록 체인에 연결하는 블록 체인 네트워크의 노드이다. 검증 정보는 어카운팅 노드의 정보와 어카운팅 노드의 블록 정보를 나타내는 데 사용된다. 구체적으로 확인 정보의 포맷은 다음과 같다.
<PRE-PREPARE,p,Block,sig(M)>
여기서, p는 블록을 생성할 때 어카운팅 노드에 의해 결정된 블록 번호이고, Block은 블록 내용이며, sig(M)은 어카운팅 노드의 메시지 서명이다.
N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상이다.
단계 S102, 어카운팅 노드는 다른 어카운팅 노드에 의해 전송된 확인 정보를 수신하고 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증한다.
여기서, 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅된다. 제2 어카운팅 노드의 준비 정보는 제2 어카운팅 노드에 의한 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅된다. 제1 어카운팅 노드 및 제2 어카운팅 노드는 다른 어카운팅 노드 중 어느 하나이다.
구체적으로, 제2 어카운팅 노드는 어카운팅 노드에 의해 브로드캐스팅된 검증 정보를 수신한 후 검증을 수행한다. 구체적으로, 먼저 어카운팅 노드의 메시지 서명이 합법적인지 검증한 후, 자체 블록 체인에서 생성될 다음 블록의 블록 번호가 검증 정보의 블록 번호와 일치하는지 검증한 후 블록 번호가 같지만 어카운팅 노드의 다른 메시지 서명이 상이한 검증 정보가 수신되지 않았는지를 검증한다. 위에서 설명한 세 가지 검증 조건이 모두 충족되면, 첫 번째 조건 : 어카운팅 노드의 메시지 서명이 합법적인지, 두 번째 조건 : 자체 블록 체인에서 생성될 다음 블록의 블록 번호가 검증 정보의 블록 번호와 일치하는지; 세 번째 조건 : 블록 번호가 같지만 어카운팅 노드의 다른 메시지 서명이 상이한 검증 정보가 수신되지 않았는지 가 모두 충족되면, 제2 어카운팅 노드는 준비 정보를 생성한다. 준비 정보의 포맷은 다음과 같다.
<PREPARE,p,Block,sig(M)>
여기서, p는 블록 번호, Block은 블록 내용이며, sig(M)는 제2 어카운팅 노드의 메시지 서명이다. 제2 어카운팅 노드는 준비 정보를 다른 어카운팅 노드에 브로드캐스팅한다. 위에서 설명한 세 가지 검증 조건 중 적어도 하나가 충족되지 않으면, 이는 제2 어카운팅 노드가 결함 노드임을 나타내는 경우, 제2 어카운팅 노드가 제거되고 어카운팅 노드가 다시 선택되어 제2 어카운팅 노드를 대체한다.
제 1 어카운팅 노드는 준비 정보를 수신한 후 준비 정보를 검증한다. 구체적으로 먼저 준비 정보의 메시지 서명이 합법적인지 검증한 후 자체 블록 체인에서 생성될 다음 블록의 블록 번호가 준비 정보의 블록 번호와 일치하는지 검증한다. 위에서 설명한 두 가지 검증 조건이 충족되면 수신된 준비 정보가 로그에 기록되고 수신된 준비 정보가 첫 번째 소정 조건을 충족한다고 판단되면 블록의 확인 정보가 생성되어 브로드캐스팅된다. 선택적으로, 첫 번째 소정 조건은 검증된 준비 정보의 양은 2f 일 수있는 제1 임계 값보다 크며, 여기서 f는 결함이있는 노드의 수이다. 구체적으로 확인 정보의 포맷은 다음과 같다.
<COMMIT,p,Block,sig(M)>
여기서, p는 블록 번호, Block은 블록 내용이며, sig(M)는 제1 어카운팅 노드의 메시지 서명이다.
위에서 설명한 두 가지 검증 조건 중 하나가 충족되지 않는 경우, 이는 제1 어카운팅 노드가 결함 노드임을 나타내는 경우, 제1 어카운팅 노드는 제거되고 어카운팅 노드는 제 1 어카운팅 노드를 대체하기 위해 재 선택된다.
선택적으로, 어카운팅 노드는 다른 어카운팅 노드들에 의해 브로드캐스팅된 준비 정보를 수신 및 검증하고, 수신된 다른 어카운팅 노드들의 준비 정보가 제 1 소정 조건을 총족할 때 어카운팅 노드의 확인 정보를 생성 및 브로드캐스팅한다. 구체적인 구현에서 어카운팅 노드가 수신된 준비 정보를 검증하고 확인 정보를 생성하는 프로세스는 제1 어카운팅 노드가 준비 정보를 검증하고 확인 정보를 생성하는 프로세스와 동일하며 여기서 설명을 반복하지 않는다.
단계 S103, 어카운팅 노드는, 수신된 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 블록을 블록 체인에 추가한다.
다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신한 후 어카운팅 노드는 확인 정보를 검증한다. 구체적으로 먼저 확인 정보의 메시지 서명이 합법적인지 검증한 후 자체 블록 체인에서 생성할 다음 블록의 블록 번호가 확인 정보의 블록 번호와 일치하는지 검증한다. 위에서 설명한 두 가지 확인 조건이 충족되면 수신된 확인 정보가 로그에 기록된다. 수신된 확인 정보가 제2 소정 조건을 충족한다고 판단되면 블록이 블록 체인에 추가된다. 선택적으로 제2 소정 조건은 검증된 확인 정보가 2f + 1 일 수있는 제2 임계 값보다 크다. 여기서 f는 결함 노드의 수이다. 위에서 설명한 두 가지 검증 조건 중 하나 이상이 충족되지 않으면 어카운팅 노드가 결함 노드임을 나타내는 경우 어카운팅 노드가 제거되고 이 어카운팅 노드를 대체하기 위해 어카운팅 노드가 다시 선택된다.
선택적으로, 제2 어카운팅 노드는 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 수신된 확인 정보가 제2 소정 조건을 충족할 때 블록을 블록 체인에 추가한다. 구체적인 구현에서 제2 어카운팅 노드는 수신된 확인 정보에 따라 블록을 블록 체인에 추가하는 프로세스는 어카운팅 노드가 수신된 확인 정보에 따라 블록을 블록 체인에 추가하는 프로세스와 동일하며 반복하여 설명하지 않는다.
코인 연령에 따라 복수의 어카운팅 노드가 선택 노드에서 선택되므로 작업 증명 문제를 해결하여 어카운팅 노드를 결정하는 대신 어카운팅 노드를 결정하는 효율성이 향상되고 반면에 리소스 소비가 감소된다. 둘째, 어카운팅 노드는 블록을 생성하고어카운팅 노드의 정보 및 블록의 정보를 브로드캐스팅하고, 브로드캐스팅된 정보는 다른 어카운팅 노드에 의한 검증이 성공되어야 어카운팅 노드 로컬 블록 체인에 블록을 추가할 수있어 블록 체인 네트워크의 일관성과 안전성을 보장한다. 또한 어카운팅 노드는 블록 생성 후 즉시 합의를 할 수 있으며 합의된 프로세스는 작업 증명 문제를 해결할 필요가 없어 합의 효율성을 향상시킨다.
N 개의 어카운팅 노드를 결정하는 방법의 프로세스는 아래에서 구체적으로 소개될 것이다. 이 프로세스는 블록 체인 네트워크의 모든 노드에 의해 수행되며 도 2a와 같이 다음 단계를 포함한다.
단계 S201, 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 M 개의 선거 노드로부터 N 개의 선거 노드를 결정한다.
단계 S202, 노드는 선거 결과 정보를 생성하여 브로드캐스팅하고, 선거 결과 정보는 N 개의 선거 노드를 포함한다.
구체적으로, 노드는 어카운팅 노드 선거에 참여하는 선거 노드이거나 어카운팅 노드 선거에 참여하지 않는 일반 노드 일 수 있다. 선택 노드는 어카운팅 노드 선거에 참여할 때 선거 요청을 브로드캐스팅한다. 선거 요청의 포맷은 다음과 같다.
<CANDIDATE,addr,txs,sig(M)>
여기서 addr은 선거 노드의 계정 주소이고, txs는 선거 노드에 의해 새로 시작된 트랜잭션이며, 여기서 트랜잭션은 선거 노드의 개인 키 서명을 가지고 있으며 트랜잭션 내용은 미사용 트랜잭션 출력 (Unspent Transaction Output, UTXO)에서 코인을 자체에 지불하는 것이다. 트랜잭션 시간을 업데이트하고 코인 연령을 지우고 sig (M)는 선거 노드의 메시지 서명이다.
선택적으로, 코인 연령는 코인 수와 일수의 곱이다. 구체적으로 트랜잭션 내용과 업데이트된 트랜잭션 시간에 따라 선거 노드의 코인 연령을 결정할 수 있다. 예를 들어, 선거 노드 A는 10 개의 코인을 사용하여 어카운팅 노드 경쟁에 참여하고, 선거 노드 A는 2018 년 3 월 1 일에 10 개의 코인을 획득했으며, 트랜잭션 내용은 UTXO에 있는 10 개의 코인을 자신에게 지불하는 것이며, 트랜잭션 시간 2018 년 3 월 31 일, 즉 현재 시간으로 업데이트된다. 트랜잭션 내용과 트랜잭션 시간을 통해 선거 노드 A의 코인 에이지가 300 인 것을 알 수 있다.
선거 요청을 받은 후 다른 노드는 먼저 txs에서 트랜잭션의 적법성을 확인하고, 구체적으로 트랜잭션 개시자의 코인이 트랜잭션 요건을 충족하는지, 트랜잭션 수신자의 계정 주소가 합법적인지 등을 확인한다. txs의 트랜잭션이 불법이면 선거 노드의 선거 요청이 무시되고 선거 노드가 블랙리스트에 추가된다. txs의 트랜잭션이 합법적이면 선택 노드의 선거 요청이 저장된다. 설정된 시간이되면 해당 기간 동안 수신된 선거 요청이 계산되고 선거 요청의 코인 연령에 따라 선거 노드가 정렬된다. 예를 들어, 이 기간 동안 M 개의 선거 노드의 선거 요청이 검증되면 M 개의 선거 노드는 코인 연령에 따라 높음에서 낮음 순으로 정렬되고 처음 N 개의 선거 노드가 list에 배치되고 선거 결과 정보는 다른 노드로 브로드캐스팅하며, 선거 결과 정보의 포맷은 다음과 같다.
<RESULT,list,sig(M)>
여기서 list는 어카운팅 노드의 계정 주소 리스트이고, sig (M)는 브로드캐스팅 선거 결과 정보의 노드의 메시지 서명이다.
단계 S203, 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 어카운팅 노드로서 선거 결과 정보에서 N 개의 선거 노드를 결정한다.
선거 결과 정보를 수신한 노드는 먼저 선거 결과 정보의 메시지 서명을 검증한 후 수신된 선거 결과 정보의 리스트을 비교한다. 노드가 수신한 동일한 리스트의 선거 결과 정보의 양이 제3 임계 값보다 큰 경우 리스트의 선거 노드가 어카운팅 노드로 결정된다.
리스트에 따르면, 노드는 자신이 어카운팅 노드로 선거되었는지 여부를 결정할 수 있다. 노드가 어카운팅 노드로 선거되면 어카운팅 노드의 확인 정보를 브로드캐스팅한다. 노드가 어카운팅 노드로 선거되지 않은 경우, 어카운팅 노드의 확인 정보를 브로드캐스팅하지 않는다. 어카운팅 노드의 수신 확인 정보 포맷은 다음과 같다.
<CONFIRM,list,sig(M)>
여기서 list는 어카운팅 노드의 어카운트 주소 리스트이고, sig (M)는 어카운팅 노드의 확인 정보를 브로드캐스팅하는 노드의 메시지 서명이다.
리스트의 어떤 어카운팅 노드가리스트 내의 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고 수신된 확인 정보가 일치할 때, 리스트의 노드는 성공적으로 선거된 어카운팅 노드로 결정되고, 각각 어카운팅 노드는 리스트의 순서에 따라 자체 일련 번호를 결정할 수 있으며 코인 연령을 지울 수 있다. 코인 연령에 따라 선거 노드에서 복수의 어카운팅 노드가 선택되기 때문에 작업 증명 문제를 해결하여 어카운팅 노드를 결정하는 대신 어카운팅 노드를 결정하는 효율성이 향상되고 반면에 리소스 소비가 감소된다. 코인 연령에 따라 어카운팅 노드가 결정되고, 어카운팅 노드가 결정된 후 어카운팅 노드의 코인 연령가 지워지기 때문에 많은 코인을 가진 사람은 블록 체인 네트워크를 제어할 수 없어 블록 체인 네트워크의 보안이 향상된다.
본 발명의 실시예를 보다 잘 설명하기 위해, 본 발명의 실시예에서 제공하는 어카운팅 노드 결정 방법의 흐름을 구체적인 구현 시나리오를 통해 설명하고, 도 2b에 도시된 바와 같이, 이 흐름에는 다음 단계가 포함된다.
단계 S01, 어카운팅 노드 선거를 시작한다.
단계 S02,블록 체인 네트워크의 임의의 노드에 대해 선거에 참여하는지 여부를 판단한다. 그렇다면, 단계 S03을 수행하고, 그렇지 않으면 단계 S04를 수행한다.
단계 S03, 노드는 선거 요청을 브로드캐스팅하여 선거 노드로 된다.
단계 S04, 노드는 선거 요청을 수신하고 선거 요청의 적법성을 확인한다.
단계 S05, 노드는 설정된 기간 내에 선거 요청이 수신되었는지 여부를 판단한다. 그렇다면, 단계 S04를 수행하고; 그렇지 않으면 단계 S06을 수행한다.
단계 S06,노드는 수신된 선거 요청에 따라 코인 연령별로 선거 노드를 큰 것에서 작은 것으로 분류하고, 처음 m 개의 선거 노드를 어카운팅 노드로 취하고, 어카운팅 노드의 계정 주소를 리스트에 넣는다.
단계 S07, 리스트를 포함하는 선거 결과 정보를 어카운팅 노드에 브로드캐스팅한다.
단계 S08,어카운팅 노드가 동일한 리스트의 2n/3 개의 선거 결과 정보를 수신했는지 여부를 판단한다. 여기서 n은 총 노드 수이다. 그렇다면, 단계 S09를 수행하고; 그렇지 않으면 단계 S103을 수행한다.
단계 S09, 어카운팅 노드는 어카운팅 노드 확인 정보를 브로드캐스팅한다.
단계 S10, 어카운팅 노드는 모든 어카운팅 노드에 의해 브로드캐스팅된 어카운팅 노드의 확인 정보를 수신했고 어카운팅 노드의 확인 정보가 일치하는지 여부를 판단한다. 그렇다면, 단계 S11을 수행하고; 그렇지 않으면 단계 S13을 수행한다.
단계 S11, 어카운팅 노드는 선거 요청의 트랜잭션 정보를 브로드캐스팅한다.
단계 S12, 어카운팅 노드 선거가 종료된다.
단계 S13, 어카운팅 노드는 어카운팅 노드 제거 요청을 브로드캐스팅하고, 어카운팅 노드 확인 정보가 불일치한 어카운팅 노드를 제거한다.
단계 S14, 어카운팅 노드는 2m/3 개의 합법적인 어카운팅 노드 제거 요청을 수신한 후 어카운팅 노드 재 선거 요청을 브로드캐스팅한다.
단계 S15, 비어카운팅 노드는 2m/3의 합법적인 어카운팅 노드 재 선거 요청을 수신한 후 단계 S02를 수행한다.
N 개의 어카운팅 노드에 결함 노드가 있을 수 있고 결함 노드는 전체 블록 체인 네트워크의 보안 및 안정성에 영향을 미치기 때문에 어카운팅 노드 결정 프로세스 및 합의 프로세스에서 결함 노드를 감지하고 처리해야한다. 구체적으로 도 3에 도시된 바와 같이 다음 단계를 포함한다.
단계 S301 : 어카운팅 노드는 수신된 확인 정보의 검증이 실패되었다고 판단할 때, 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보의 어카운팅 노드를 결함 노드로서 결정하고 제 1 결함 노드 제거 요청을 브로드캐스팅한다.
어카운팅 노드는 확인 정보를 검증하여 결함 노드를 감지하는 것에 국한되지 않고, 검증 정보와 준비 정보를 검증하여 결함 노드를 감지할 수도 있고, 또한, 어카운팅 노드 선거 단계에서 수신된 어카운팅 노드의 확인 정보가 일치하는지 여부와 리스트에 있는 다른 어카운팅 노드가 브로드캐스팅한 어카운팅 노드의 확인 정보가 수신되는지에 따라 결함 노드의 감지가 가능하다는 점에 유의해야한다.
이하에서, 예시를 위한 예로서 확인 정보를 검증함으로써 결함 노드가 검출된다. 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신한 후, 어카운팅 노드는 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증한다. 확인 정보가 검증되지 않은 경우, 확인 정보를 브로드캐스팅하는 어카운팅 노드가 결함 노드로 결정되고 제1 결함 노드 제거 요청이 브로드캐스팅된다. 제1 결함 노드 제거 요청의 포맷은 다음과 같다.
<REMOVE,addr,c,sig(M)>
여기서, addr는 결함 노드의 계정 주소, c는 결함 노드에 의해 브로드캐스팅된 확인 정보, sig(M)는 제1 어카운팅 노드 제거 요청을 브로드캐스팅하는 어카운팅 노드의 메시지 서명이다.
단계 S302, 어카운팅 노드는 제2 결함 노드 제거 요청을 수신하여 제2 결함 노드 제거 요청을 검증한다.
제 2 결함 노드 제거 요청은 수신된 제 1 결함 노드 제거 요청이 검증되었다고 결정한 후 다른 어카운팅 노드에 의해 생성되고 브로드캐스팅된다. 제 2 결함 노드 제거 요청의 포맷이 제 1 결함 노드 제거 요청의 포맷과 동일하다. 구체적으로, 제 1 어카운팅 노드 제거 요청을 수신한 후, 다른 어카운팅 노드가 제 1 어카운팅 노드 제거 요청에서 확인 정보를 검증하고, 검증에 실패하면 수신된 제1 어카운팅 노드 제거 요청의 메시지 서명을 자체 메시지 서명으로 수정함 후 제 2 어카운팅 노드 제거 요청을 생성하여 브로드캐스팅한다.
단계 S303, 어카운팅 노드는 수신된 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여할 선거 요청을 브로드캐스팅한다.
어카운팅 노드는 동일한 결함 노드에 대한 검증이 성공된 수신된 제 2 어카운팅 노드 제거 요청 수가 제 4 임계 값보다 클 때 어카운팅 노드 재 선거 요청을 생성하고 브로드캐스팅하며, 여기서 어카운팅 노드 재 선거 요청의 포맷은 다음과 같다:
<REVOTE,n,sig(M)>
N은 결함 노드의 일련 번호이며, sig(M)는 어카운팅 노드 재 선거 요청을 브로드캐스팅하는 어카운팅 노드의 메시지 서명이다.
비어카운팅 노드가 어카운팅 노드 재 선거 요청을 수신하여 검증하고, 검증이 성공된 수신된 어카운팅 노드 재 선거 요청의 수가 5 번째 임계 값보다 크다고 판단하면, 어카운팅 노드 경쟁에 참여하도록 브로드캐스팅 선거 요청을 브로드캐스팅한다. 이때 선거될 어카운팅 노드의 수는 결함 노드의 수이며, 선거될 어카운팅 노드의 일련 번호는 리스트에 있는 결함 노드의 일련 번호에 대응한다. 어카운팅 노드는 장애 노드를 발견하면 결함 노드 제거 요청을 브로드캐스팅하고 결함 노드 제거 요청이 다른 어카운팅 노드에 의해 승인된 후 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 결함 노드가 블록 체인 네트워크에 간섭하지 않도록 하고, 블록 체인 네트워크의 안정성을 개선한다.
선택적으로, N 개의 어카운팅 노드는 메인 어카운팅 노드와 백업 어카운팅 노드로 나뉘며, 여기서 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이다. 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 어카운팅 노드 중 어카운팅 노드이다. 블록 체인 합의 프로세스에서 메인 어카운팅 노드는 블록을 생성하고 N 개의 어카운팅 노드 중 백업 어카운팅 노드에 메인 어카운팅 노드의 검증 정보를 브로드캐스팅한다. 메인 어카운팅 노드는 백업 어카운팅 노드에 의해 브로드캐스팅된 검증 정보를 수신하고 검증한다. 여기서, 백업 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅된다. 제2 어카운팅 노드의 준비 정보는 제2 어카운팅 노드에 의한 메인 어카운팅 노드에 대한 검증 정보의 검증이 성공될 때 생성되며 브로드캐스팅된다. 제1 어카운팅 노드 및 제2 어카운팅 노드는 백업 어카운팅 노드 중 하나이다. 더 많은 권리와 이익을 가진 어카운팅 노드는 시스템 보안을 유지하려는 동기가 더 많으므로 N 개의 어카운팅 노드 중 코인 연령가 가장 큰 어카운팅 노드를 메인 어카운팅 노드로 결정한 다음 메인 어카운팅 노드에 의해 합의 프로세스가 시작되어 시스템 안전성을 더욱 향상시킬 수 있다.
동일한 기술 사상에 기초하여, 본 발명의 실시예에 의해 제공되는 어카운팅 노드 (400)는 도 4에 도시된 바와 같이, 제1 브로드캐스팅 모듈 (401), 검증 모듈 (402) 및 제1 처리 모듈 (403)을 포함한다.
상기 제1 브로드캐스팅 모듈 (401)은 어카운팅 노드의 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하고, 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상이다.
검증 모듈 (402)은 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하고, 여기서, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅된다. 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅된다. 상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나이다.
제1 처리 모듈 (403)은 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가한다.
일 가능한 설계에서, 상기 검증 모듈 (402)은 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 준비 정보를 수신하고 검증하도록 더 구성된다.
상기 제1 처리 모듈 (403)은 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅한다.
일 가능한 설계에서, 상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하도록 구성된 제 1 수신 모듈 (404)가 더 포함된다.
상기 제1 처리 모듈 (403)은 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가한다.
일 가능한 설계에서, 상기 제1 처리 모듈 (403)은 또한, 수신된 상기 확인 정보 검증이 실패되었다고 판단될 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅한다.
상기 검증 모듈 (402) 은 또한, 제2 결함 노드 제거 요청을 수신하고 상기 제2 결함 노드 제거 요청을 검증하고, 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅된다.
상기 제1 브로드캐스팅 모듈 (401)은 또한 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록 한다.
일 가능한 설계에서, 상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드이다.
동일한 기술 사상에 기초하여, 본 발명의 실시예에 의해 제공되는 노드는 도 5에 도시된 바와 같이 노드 (500)은, 제2 수신 모듈 (501), 제2 브로드캐스팅 모듈 (502) 및 제2 처리 모듈 (503)을 포함한다.
상기 제2 수신 모듈 (501)은 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정한다.
제2 브로드캐스팅 모듈 (502)은 선거 결과 정보를 생성하여 브로드캐스팅하고, 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함한다.
제2 처리 모듈 (503)은 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정한다.
본 발명의 실시예에 의해 제공되는 단말 장치는 적어도 하나의 처리 유닛 및 적어도 하나의 저장 유닛을 포함하고, 여기서, 상기 저장 유닛은 컴퓨터 프로그램을 저장하고, 상기 프로그램이 상기 처리 유닛에 의해 실행될 때 상기 처리 유닛으로 하여금 블록 체인 합의 방법의 단계를 수행하도록 한다. 본 발명의 실시예에서 설명된 단말 장치의 하드웨어 구조의 개략도 인도 6에 도시된 바와 같이, 단말 장치는 데스크톱 컴퓨터, 휴대용 컴퓨터, 스마트 폰, 태블릿 컴퓨터, 특히, 단말 장치는 메모리 (601), 프로세서 (602) 및 메모리에 저장된 컴퓨터 프로그램을 포함할 수 있으며, 여기서 프로세서 (602)는 프로그램을 실행할 때 위의 실시예에서 임의의 블록 체인 합의 방법의 단계를 구현한다. 여기서, 메모리 (601)는 ROM (Read-Only Memory) 및 RAM (Random Access Memory)을 포함하고, 메모리 (601)에 저장된 프로그램 명령 및 데이터를 프로세서 (602)에 제공할 수 있다.
또한, 본 출원의 실시예에서 설명하는 단말 장치는 입력 장치 (603), 출력 장치 (604) 등을 더 포함할 수 있다. 입력 장치 (603)는 키보드, 마우스, 터치 스크린 등을 포함할 수 있고; 출력 장치 (604)는 액정 디스플레이 (LCD), 음극선 관 (CRT), 터치 스크린 등과 같은 디스플레이 장치를 포함할 수 있다. 메모리 (601), 프로세서 (602), 입력 장치 (603) 및 출력 장치 (604)는 버스를 통해 또는 다른 방식으로 연결될 수 있다. 버스 연결은 도 6의 예로서 취해진다. 프로세서 (602)는 메모리 (601)에 저장된 프로그램 명령을 호출하고 획득된 프로그램 명령에 따라 상기 실시예에서 제공된 블록 체인 합의 방법을 수행한다.
본 발명의 일 실시예는 또한 단말 장치에서 실행 가능한 컴퓨터 프로그램을 저장하는 컴퓨터 판독 가능 저장 매체를 제공하며, 여기서 프로그램은 단말 장치에서 실행될 때 블록 체인 합의 방법의 단계를 수행하게 한다.
동일한 사상에 기초하여, 본 출원은 상기 어카운팅 노드의 방법 흐름을 수행하는데 사용될 수 있는 전자 장치를 제공한다. 도 7은 본 출원에 의해 제공되는 전자 장치의 구조적 개략도이다. 전자 장치는 프로세서 (701), 메모리 (702), 송수신기 (703) 및 버스 인터페이스 (704)를 포함한다. 프로세서 (701), 메모리 (702), 송수신기 (703) 및 버스 인터페이스 (704)는 버스 (705)를 통해 서로 연결된다.
메모리 (702)는 프로그램을 저장하는데 사용된다. 구체적으로, 프로그램은 컴퓨터 조작 명령을 포함하는 프로그램 코드를 포함할 수 있다. 메모리 (702)는 휘발성 메모리 (volatile memory), 예를 들어 랜덤 액세스 메모리 (random-access memory,RAM)를 포함할 수 있다. 메모리에는 비 휘발성 메모리 (non-volatile memory), 예를 들어 플래시 메모리 (flash memory), 하드 디스크 드라이브 (hard disk drive,HDD) 또는 솔리드 스테이트 드라이브 (solid-state drive,SSD)가 포함될 수도 있다. 메모리 (702)는 또한 상기 유형의 메모리들의 조합을 포함할 수 있다.
메모리 (702)는 실행 가능한 모듈 또는 데이터 구조, 또는 이들의 서브 세트 또는 이들의 확장 세트의 요소를 저장한다 :
◎다양한 작업을 구현하기위한 다양한 작업 지침을 포함한 작업 지침.
◎다양한 기본 서비스를 구현하고 하드웨어 기반 작업을 처리하기위한 다양한 시스템 프로그램을 포함한 운영 체제
버스 (705)는 PCI (Peripheral Component Interconnect) 버스 또는 EISA (Extended Industry Standard Architecture) 버스 등일 수 있다. 버스는 주소 버스, 데이터 버스, 제어 버스 등으로 나눌 수 있다. 표현의 편의를 위해 도 7에서 버스는 하나의 굵은 선으로 만 표시되지만 하나의 버스 또는 한 가지 유형의 버스 만 나타내는 것은 아니다.
버스 인터페이스 (704)는 유선 통신 인터페이스, 무선 버스 인터페이스 또는 이들의 조합 일 수 있으며, 여기서 유선 버스 인터페이스는 예를 들어 이더넷 인터페이스 일 수 있다. 이더넷 인터페이스는 광학 인터페이스, 전기 인터페이스 또는 이들의 조합 일 수 있다. 무선 버스 인터페이스는 WLAN 인터페이스 일 수 있다.
프로세서 (701)는 중앙 처리 장치 (CPU), 네트워크 프로세서 (NP) 또는 CPU와 NP의 조합 일 수 있다. 하드웨어 칩일 수도 있다. 상술한 하드웨어 칩은 ASIC (Application-Specific Integrated Circuit), PLC (Programmable Logic Device) 또는 이들의 조합 일 수 있다. 전술한 PLD는 CPLD (Complex Programmable Logic Device), FPGA (Field-Programmable Gate Array), GAL (Generic Array Logic) 또는 이들의 조합일 수 있다.
프로세서 (701)는 다음 방법을 수행하기 위해 메모리 (702)의 프로그램을 판독하도록 구성된다 : 어카운팅 노드의 블록을 생성하고 송수신기를 통해 703N 개의 어카운팅 노드 중 다른 어카운팅 노드로 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하고, 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상이며;송수신기를 통해 703상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하고, 여기서, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되고, ;상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅되고, ;상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나이고; 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가한다;
메모리 (702)는 하나 이상의 실행 가능한 프로그램을 저장하도록 구성되고 동작을 수행할 때 프로세서 (701)에 의해 사용되는 데이터를 저장할 수 있다.
선택적으로, 프로세서 (701)는 다른 어카운팅 노드에 의해 브로드캐스팅되는 준비 정보를 수신하고 검증하도록 추가로 구성된다. 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅한다.
선택적으로, 송수신기 (703)는 상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하도록 추가로 구성된다. 프로세서 (701)는 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하도록 추가로 구성된다.
선택적으로, 프로세서 (701)는 수신된 상기 확인 정보 검증이 실패되었다고 판단될 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅하도록 추가로 구성된다. 프로세서 (701)은 제2 결함 노드 제거 요청을 수신하고 상기 제2 결함 노드 제거 요청을 검증하도록 추가로 구성된다. 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅된다. 송수신기 (703)는 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록 한다.
선택적으로, 상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드이다.
상기 단위의 분할은 논리적 기능의 분할 일 뿐이며, 이러한 단위는 물리적 엔티티에 완전히 또는 부분적으로 통합될 수 있거나 실제 구현에서 물리적으로 분리될 수 있음을 이해해야한다. 본 출원의 일 실시예에서, 제1 브로드캐스팅 모듈 (401) 및 제1 수신 모듈 (404)은 송수신기 (703)에 의해 구현될 수 있다. 검증 모듈 (402) 및 제1 처리 모듈 (403)은 프로세서 (701) 에 의해 구현될 수 있다. 도 7에 도시된 바와 같이, 전자 장치 (700)는 프로세서 (701), 송수신기 (703) 및 메모리 (702)를 포함할 수 있으며, 메모리 (702)는 전자 장치 (700)가 출고될 때 미리 설치된 프로그램/코드를 저장하도록 구성될 수 있으며, 또한 프로세서 (701) 등에 의해 실행되는 데 사용되는 코드를 저장할 수 있다.
이상에서 알 수 있는 바와 같이, 본 발명의 실시예에서는 코인 연령에 따라 복수의 어카운팅 노드가 선택 노드에서 선택되므로 작업 증명 문제를 해결하여 어카운팅 노드를 결정하는 대신 어카운팅 결정의 효율성을 향상시키며 반면에 리소스 소비가 감소된다. 둘째, 어카운팅 노드는 블록을 생성하고 어카운팅 노드의 정보 및 블록의 정보를 브로드캐스팅하고, 브로드캐스팅된 정보는 다른 어카운팅 노드에 의한 검증이 성공되어야 어카운팅 노드 로컬 블록 체인에 블록을 추가할 수있어 블록 체인 네트워크의 일관성과 안전성을 보장한다. 또한 어카운팅 노드는 블록 생성 후 즉시 합의를 할 수 있으며 합의된 프로세스는 작업 증명 문제를 해결할 필요가 없어 합의 효율성을 향상시킨다.
동일한 사상에 기초하여, 본 출원은 상기 어카운팅 노드의 방법 흐름을 수행하는데 사용될 수 있는 전자 장치를 제공한다. 도 8은 본 출원에 의해 제공되는 전자 장치의 구조적 개략도이다. 전자 장치는 프로세서 (801), 메모리 (802), 송수신기 (803) 및 버스 인터페이스 (804)를 포함하고; 프로세서 (801), 메모리 (802), 송수신기 (803) 및 버스 인터페이스 (804)는 버스 (805)를 통해 서로 연결된다.
메모리 (802)는 프로그램을 저장하는 데 사용된다. 구체적으로, 프로그램은 컴퓨터 조작 명령을 포함하는 프로그램 코드를 포함할 수 있다. 메모리 (802)는 휘발성 메모리 (volatile memory), 예를 들어 랜덤 액세스 메모리 (random-access memory,RAM)를 포함할 수 있다. 메모리에는 비 휘발성 메모리 (non-volatile memory), 예를 들어 플래시 메모리 (flash memory), 하드 디스크 드라이브 (hard disk drive, HDD) 또는 솔리드 스테이트 드라이브 (solid-state drive,SSD)가 포함될 수도 있다. 메모리 (802)는 또한 상기 유형의 메모리들의 조합을 포함할 수 있다.
메모리 (802)는 실행 가능한 모듈 또는 데이터 구조, 또는 그들의 서브 세트 또는 그들의 확장 세트의 요소를 저장한다 :
◎다양한 작업을 구현하기위한 다양한 작업 지침을 포함한 작업 지침
◎다양한 기본 서비스를 구현하고 하드웨어 기반 작업을 처리하기위한 다양한 시스템 프로그램을 포함한 운영 체제
버스 (805)는 PCI (Peripheral Component Interconnect) 버스 또는 EISA (Extended Industry Standard Architecture) 버스 등일 수 있다. 버스는 주소 버스, 데이터 버스, 제어 버스 등으로 나눌 수 있다. 표현의 편의를 위해 도 7에서 버스는 하나의 굵은 선으로 만 표시되지만 하나의 버스 또는한 가지 유형의 버스 만 나타내는 것은 아니다.
버스 인터페이스 (804)는 유선 통신 인터페이스, 무선 버스 인터페이스 또는 이들의 조합 일 수 있으며, 여기서 유선 버스 인터페이스는 예를 들어 이더넷 인터페이스 일 수 있다. 이더넷 인터페이스는 광학 인터페이스, 전기 인터페이스 또는 이들의 조합 일 수 있다. 무선 버스 인터페이스는 WLAN 인터페이스 일 수 있다.
프로세서 (801)는 중앙 처리 장치 (central processing unit,CPU), 네트워크 프로세서 (NP) 또는 CPU와 NP의 조합 일 수 있다. 하드웨어 칩일 수도 있다. 상술한 하드웨어 칩은 ASIC (Application-Specific Integrated Circuit), PLC (Programmable Logic Device) 또는 이들의 조합 일 수 있다. 전술한 PLD는 CPLD (Complex Programmable Logic Device), FPGA (Field-Programmable Gate Array), GAL (Generic Array Logic) 또는 이들의 조합일 수 있다.
프로세서 (801)는 다음 방법을 수행하기 위해 메모리 (802)에서 프로그램을 판독하도록 구성된다 : 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정한다. 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정한다 ;
송수신기 (803)는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하고, 선거 결과 정보를 생성하여 브로드캐스팅하고, 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함한다.
상기 단위의 분할은 논리적 기능의 분할 일 뿐이며, 이러한 단위는 물리적 엔티티에 완전히 또는 부분적으로 통합될 수 있거나 실제 구현에서 물리적으로 분리될 수 있음을 이해해야한다. 본 출원의 일 실시예에서, 제2 브로드캐스팅 모듈 (502) 및 제2 수신 모듈 (501)은 송수신기 (803)에 의해 구현된다. 제2 처리 모듈 (503) 은 프로세서 (801)에 의해 구현될 수 있다. 도 8에 도시된 바와 같이, 전자 장치 (800)는 프로세서 (801), 송수신기 (803) 및 메모리 (802)를 포함할 수 있으며, 메모리 (802)는 전자 장치 (800)가 공장에서 출고될 때 미리 설치된 프로그램/코드를 저장하도록 구성될 수 있으며, 프로세서 (801) 등에 의해 실행되는 데 사용되는 코드을 저장할 수도 있다.
본 기술 분야내의 당업자들이 명백해야 할 것은, 본 출원의 실시예는 방법, 시스템, 또는 컴퓨터 프로그램 제품을 제공할 수 있다. 하여, 본 출원은 풀 하드웨어실시예, 풀 소프트웨어 실시예, 또는 소프트웨어 및 하드웨어 방면을 결합하는 실시예 형태를 사용할 수 있다. 또한, 본 출원은 하나 또는 다수의 컴퓨터 실행 가능 프로그램 코드를 포함한 컴퓨터 사용 가능 저장 메체(디스크 메모리, CD-ROM 및 광학 메모리를 포함하나 이에 한정되지 않는다)에서 실시된 컴퓨터 프로그램 제품 형식을 사용할 수 있다.
본 발명은 본 출원의 방법, 디바이스(장치) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명하였다. 이해해야 할 것은 바로 컴퓨터 프로그램 명령으로 흐름도 및/또는 블록도중의 각 흐름 및/또는 블록, 및 흐름도 및/또는 블록도중의 흐름 및/또는 블록의 결합을 달성할 수 있는 것이다. 이러한 컴퓨터 프로그램 명령을 통용 컴퓨터, 전용 컴퓨터, 내장형 프로세서 또는 기타 프로그래머블 데이터 프로세스 디바이스의 프로세서에 제공하여 하나의 머신이 생성되도록 할 수 있으며, 이는 컴퓨터 또는 기타 프로그래머블 데이터 프로세스 디바이스의 프로세서로부터 수행한 명령을 통해 흐름도의 한개 흐름 및/또는 여러 흐름 및/또는 블록도의 한개 블록 및/또는 여러 블록에서 지정된 기능을 달성하도록 마련된 장치가 생성되도록 한다.
이러한 컴퓨터 프로그램 명령은 컴퓨터 또는 기타 프로그래머블 데이터 프로세스 디바이스를 유도하여 특정된 방식으로 작업하도록 하는 컴퓨터 가독 메모리에 저장될 수 있으며, 해당 컴퓨터 가독 메모리에 저장된 명령이 명령 장치를 포함한 제조품을 생성하도록 하며, 해당 명령 장치는 흐름도의 한개 흐름 및/또는 여러 흐름 및/또는 블록도의 한개 블록 및/또는 여러 블록에서 지정된 기능을 실행한다.
이러한 컴퓨터 프로그램 명령은 컴퓨터 또는 기타 프로그래머블 데이터 프로세스 디바이스에 장착될 수도 있으며, 이는 컴퓨터 또는 기타 프로그래머블 데이터 프로세스 디바이스에서 일련의 오퍼레이션 절차를 수행하여 컴퓨터가 실시하는 프로세스가 생성되도록 하며, 따라서 컴퓨터 또는 기타 프로그래머블 데이터 프로세스 디바이스에서 수행한 명령은 흐름도의 한개 흐름 및/또는 여러 흐름 및/또는 블록도의 한개 블록 및/또는 여러 블록에서 지정된 기능을 달성하도록 마련된 절차를 제공하도록 한다.
분명한 것은, 본 분야의 통상 지식을 가진 당업자들은 본 출원에 대해 각종 수정 및 변경을 실행하며 또한 본 출원의 주제 및 범위를 떠나지 않을 수 있다. 이렇게, 본 출원의 이러한 수정 및 변경이 본 출원의 청구항 및 동등 기술 범위내에 속하는 경우, 본 출원은 이러한 수정 및 변경을 포함하는 것을 의도한다.

Claims (22)

  1. 어카운팅 노드는 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하는 단계 - 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상임;
    상기 어카운팅 노드는 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하여 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하는 단계 - 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되고, 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅되고, 상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나임; 및
    상기 어카운팅 노드는 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하는 단계를 포함하고,
    상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 N 개의 어카운팅 노드를 결정하는 단계는,
    임의의 노드에 대해, 상기 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하는 단계;
    상기 노드는 상기 N 개의 선거 노드를 포함하는 선거 결과 정보를 생성하여 브로드캐스팅하는 단계; 및
    상기 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하는 단계를 포함하는 것을 특징으로 하는 블록 체인 합의 방법.
  2. 제 1 항에 있어서,
    상기 어카운팅 노드는 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 준비 정보를 수신하여 검증하는 단계; 및
    상기 어카운팅 노드는 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅하는 단계를 더 포함하는 것을 특징으로 하는 블록 체인 합의 방법.
  3. 제 2 항에 있어서,
    상기 제2 어카운팅 노드는 상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하는 단계; 및
    상기 제2 어카운팅 노드는 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하는 단계를 더 포함하는 것을 특징으로 하는 블록 체인 합의 방법.
  4. 제 1 항에 있어서,
    상기 어카운팅 노드는 수신된 상기 확인 정보 검증이 실패되었다고 결정할 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅하는 단계;
    상기 어카운팅 노드는 제2 결함 노드 제거 요청을 수신하여 상기 제2 결함 노드 제거 요청을 검증하는 단계 - 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅됨; 및
    상기 어카운팅 노드는 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록 하는 단계를 포함하는 것을 특징으로 하는 블록 체인 합의 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드인 것을 특징으로 하는 블록 체인 합의 방법.
  6. 어카운팅 노드의 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하도록 구성된 제1 브로드캐스팅 모듈 - 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상임;
    상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하도록 구성된 검증 모듈 - 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되고, 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅되고, 상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나임; 및
    수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하도록 구성된 제1 처리 모듈을 포함하고,
    상기 N 개의 어카운팅 노드가 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되는 것은,
    임의의 노드에 대해, 상기 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하는 것;
    상기 노드는 상기 N 개의 선거 노드를 포함하는 선거 결과 정보를 생성하여 브로드캐스팅하는 것; 및
    상기 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하는 것을 포함하는 것을 특징으로 하는 어카운팅 노드.
  7. 제 6 항에 있어서,
    상기 검증 모듈은 또한 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 준비 정보를 수신하여 검증하고,
    상기 제1 처리 모듈은 또한 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅하는 것을 특징으로 하는 어카운팅 노드.
  8. 제 7 항에 있어서,
    상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하도록 구성된 제1 수신 모듈;
    상기 제1 처리 모듈은 또한 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하는 것을 특징으로 하는 어카운팅 노드.
  9. 제6항에 있어서,
    상기 제1 처리 모듈은 또한, 수신된 상기 확인 정보 검증이 실패되었다고 판단될 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅하고,
    상기 검증 모듈은 또한, 제2 결함 노드 제거 요청을 수신하고 상기 제2 결함 노드 제거 요청을 검증하고, 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅되고,
    상기 제1 브로드캐스팅 모듈은 또한, 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록하는 것을 특징으로 하는 어카운팅 노드.
  10. 제6항 내지 제9항 중 어느 한항에 있어서,
    상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드인 것을 특징으로 하는 어카운팅 노드.
  11. M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하도록 구성된 제2 수신 모듈;
    선거 결과 정보를 생성하여 브로드캐스팅하도록 구성된 제2 브로드캐스팅 모듈 - 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함함; 및
    수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하도록 구성된 제2 처리 모듈을 포함하고,
    상기 N 개의 어카운팅 노드가 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되는 것은,
    임의의 노드에 대해, 상기 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하는 것;
    상기 노드는 상기 N 개의 선거 노드를 포함하는 선거 결과 정보를 생성하여 브로드캐스팅하는 것; 및
    상기 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하는 것을 포함하는 것을 특징으로 하는 노드.
  12. 적어도 하나의 처리 유닛 및 적어도 하나의 저장 유닛을 포함하고,
    상기 저장 유닛은 컴퓨터 프로그램을 저장하고, 상기 컴퓨터 프로그램이 상기 처리 유닛에 의해 실행될 때 상기 처리 유닛으로 하여금 제1항 내지 제4 항 중 어느 한항에 기재된 상기 방법의 단계를 수행하도록 하는 것을 특징으로 하는 단말 장치.
  13. 프로세서, 메모리, 송수신기 및 버스 인터페이스를 포함하고, 상기 프로세서, 메모리 및 송수신기는 버스를 통해 연결되고,
    상기 송수신기는 어카운팅 노드의 블록을 생성하고 N 개의 어카운팅 노드 중 다른 어카운팅 노드에 상기 어카운팅 노드의 검증 정보를 브로드캐스팅하도록 구성되며, 상기 N 개의 어카운팅 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되고, M은 1 이상이며, N은 1 이상이며, M은 N 이상이며;
    상기 프로세서는 다음과 같은 방법을 수행하기 위해 메모리에서 프로그램을 판독하도록 구성되고 : 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하고, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 검증하고, 여기서, 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보는 제1 어카운팅 노드의 수신된 제2 어카운팅 노드의 준비 정보가 제1 소정 조건을 충족할 때 생성되어 브로드캐스팅되고, 상기 제2 어카운팅 노드의 준비 정보는 상기 제2 어카운팅 노드에 의한 상기 어카운팅 노드의 검증 정보에 대한 검증이 성공될 때 생성되며 브로드캐스팅되고, 상기 제1 어카운팅 노드 및 상기 제2 어카운팅 노드는 상기 다른 어카운팅 노드 중 어느 하나이고; 수신된 상기 다른 어카운팅 노드에 의해 브로드캐스팅된 확인 정보가 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하고,
    상기 메모리는 하나 이상의 실행 가능한 프로그램을 저장하고 작업을 수행할 때 상기 프로세서가 사용하는 데이터를 저장하도록 구성되고,
    상기 N 개의 어카운팅 노드가 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되는 것은,
    임의의 노드에 대해, 상기 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하는 것;
    상기 노드는 상기 N 개의 선거 노드를 포함하는 선거 결과 정보를 생성하여 브로드캐스팅하는 것; 및
    상기 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하는 것을 포함하는 것을 특징으로 하는 전자 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 다른 어카운팅 노드에 의해 브로드캐스팅된 준비 정보를 수신 및 검증하고, 수신된 상기 다른 어카운팅 노드의 준비 정보가 상기 제1 소정 조건을 총족할 때 상기 어카운팅 노드의 확인 정보를 생성하여 브로드캐스팅하는 것을 특징으로 하는 전자 장치.
  15. 제14항에 있어서,
    상기 송수신기는 상기 제1 어카운팅 노드에 의해 브로드캐스팅된 확인 정보 및 상기 어카운팅 노드에 의해 브로드캐스팅된 확인 정보를 수신하도록 구성되고,
    상기 프로세서는 수신된 확인 정보가 상기 제2 소정 조건을 충족할 때 상기 블록을 블록 체인에 추가하는 것을 특징으로 하는 전자 장치.
  16. 제13항에 있어서,
    상기 프로세서는 수신된 상기 확인 정보 검증이 실패되었다고 판단될 때 상기 확인 정보를 브로드캐스팅하는 어카운팅 노드를 결함 노드로 결정하고 제1 결함 노드 제거 요청을 브로드캐스팅하고, 제2 결함 노드 제거 요청을 수신하고 상기 제2 결함 노드 제거 요청을 검증하고, 상기 제2 결함 노드 제거 요청은 상기 다른 어카운팅 노드에 의한 수신된 상기 제1 결함 노드 제거 요청에 대한 검증의 성공이 결정될 때 생성되어 브로드캐스팅되고,
    상기 송수신기는 수신된 상기 제2 결함 노드 제거 요청이 제4 소정 조건을 충족할 때 어카운팅 노드 재 선거 요청을 브로드캐스팅하여 비어카운팅 노드로 하여금 상기 어카운팅 노드 재 선거 요청을 수신한 후 어카운팅 노드 경쟁에 참여하기 위한 선거 요청을 브로드캐스팅하도록 하는 것을 특징으로 하는 전자 장치.
  17. 제13항 내지 제16항 중 어느 한항에 있어서,
    상기 어카운팅 노드는 메인 어카운팅 노드이며 상기 다른 어카운팅 노드는 백업 어카운팅 노드이고, 상기 메인 어카운팅 노드는 N 개의 어카운팅 노드 중 선거 요청에서 가장 큰 코인 연령 정보를 전달하는 어카운팅 노드이며, 상기 백업 어카운팅 노드는 메인 어카운팅 노드를 제외한 N 개의 계정 노드 중 어카운팅 노드인 것을 특징으로 하는 전자 장치.
  18. 프로세서, 메모리, 송수신기 및 버스 인터페이스를 포함하고, 상기
    프로세서, 메모리, 송수신기 및 버스 인터페이스는 버스를 통해 서로 연결되며,
    상기 송수신기는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하고, 선거 결과 정보를 생성하여 브로드캐스팅하고, 상기 선거 결과 정보는 상기 N 개의 선거 노드를 포함하고,
    상기 프로세서는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하고,
    상기 N 개의 어카운팅 노드가 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 결정되는 것은,
    임의의 노드에 대해, 상기 노드는 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청을 수신하고, 상기 M 개의 선거 노드에 의해 브로드캐스팅된 선거 요청에서 전달되는 코인 연령 정보에 따라 상기 M 개의 선거 노드에서 N 개의 선거 노드를 결정하는 것;
    상기 노드는 상기 N 개의 선거 노드를 포함하는 선거 결과 정보를 생성하여 브로드캐스팅하는 것; 및
    상기 노드는 수신된 다른 노드에 의해 전송된 선거 결과 정보가 제3 소정 조건을 충족할 때 상기 선거 결과 정보 중의 N 개의 선거 노드를 어카운팅 노드로 결정하는 것을 포함하는 것을 특징으로 하는 전자 장치.












  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020207034671A 2018-05-03 2019-01-25 블록 체인 합의 방법, 어카운팅 노드 및 노드 KR102469267B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810414927.8A CN108848055B (zh) 2018-05-03 2018-05-03 一种区块链共识方法、记账节点及节点
CN201810414927.8 2018-05-03
PCT/CN2019/073232 WO2019210714A1 (zh) 2018-05-03 2019-01-25 一种区块链共识方法、记账节点及节点

Publications (2)

Publication Number Publication Date
KR20210006934A KR20210006934A (ko) 2021-01-19
KR102469267B1 true KR102469267B1 (ko) 2022-11-22

Family

ID=64212561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207034671A KR102469267B1 (ko) 2018-05-03 2019-01-25 블록 체인 합의 방법, 어카운팅 노드 및 노드

Country Status (5)

Country Link
US (1) US11830001B2 (ko)
JP (1) JP7138726B2 (ko)
KR (1) KR102469267B1 (ko)
CN (1) CN108848055B (ko)
WO (1) WO2019210714A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108848055B (zh) 2018-05-03 2020-06-23 中国银联股份有限公司 一种区块链共识方法、记账节点及节点
CN109936486B (zh) * 2019-01-02 2021-11-26 平安科技(深圳)有限公司 基于区块链的自动拨测方法、装置、设备和存储介质
CN109741039B (zh) * 2019-01-07 2021-01-19 深圳市红砖坊技术有限公司 记账方法、矿池服务器、终端设备、挖矿节点及矿池
CN110113383B (zh) * 2019-04-10 2021-08-24 广东工业大学 一种缓解PoS机制下记账权中心化的共识机制实现方法
CN112016012B (zh) * 2019-05-30 2023-09-08 中国移动通信集团浙江有限公司 资源服务质量智能拨测方法及装置
CN112116346A (zh) * 2019-06-20 2020-12-22 北京威宁特科技有限公司 快速确认交易的区块链和区块链上快速确认交易方法
CN110322352A (zh) * 2019-07-09 2019-10-11 深圳市炳德区块链技术有限公司 一种基于区块链的账本建立及查询方法、电子设备
CN110335156A (zh) * 2019-07-09 2019-10-15 广东投盟科技有限公司 区块链的规则维护方法及其系统
US11095443B1 (en) * 2019-10-11 2021-08-17 Shape Security, Inc. Proof-of-work based on runtime compilation
CN111191294B (zh) * 2019-12-27 2022-05-24 诚镌科技(广州)有限公司 基于区块链的单节点记账方法、系统、设备和存储介质
CN111311263B (zh) * 2020-03-18 2021-07-16 广州知弘科技有限公司 区块链节点本地安全记账方法
CN111368008B (zh) 2020-05-27 2020-08-25 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质
CN112020018B (zh) * 2020-08-26 2022-05-17 山东浪潮科学研究院有限公司 区块链记账组生成方法、共识方法及区块链系统
CN112288415B (zh) * 2020-12-24 2021-06-11 南京可信区块链与算法经济研究院有限公司 一种用于utxo架构的币龄机制实现方法
CN113014635A (zh) * 2021-02-19 2021-06-22 卓尔智联(武汉)研究院有限公司 区块链系统的节点类型划分方法、装置及区块链系统
CN113382073B (zh) * 2021-06-08 2022-06-21 重庆邮电大学 一种在云边端工业控制系统中边缘节点的监督系统及方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015175722A1 (en) * 2014-05-13 2015-11-19 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain proof-of-work, systems and methods
US11182781B2 (en) * 2014-06-16 2021-11-23 Bank Of America Corporation Block chain encryption tags
US20150363778A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency electronic payment system
US10275772B2 (en) * 2014-06-16 2019-04-30 Bank Of America Corporation Cryptocurrency risk detection system
US20150363769A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Real-Time Conversion System
US20150363782A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency transaction validation system
US20150363777A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency suspicious user alert system
US20150363770A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency Transaction Payment System
US10127552B2 (en) * 2014-06-16 2018-11-13 Bank Of America Corporation Cryptocurrency aggregation system
US10255600B2 (en) * 2014-06-16 2019-04-09 Bank Of America Corporation Cryptocurrency offline vault storage system
US20150363772A1 (en) * 2014-06-16 2015-12-17 Bank Of America Corporation Cryptocurrency online vault storage system
US9973341B2 (en) * 2015-01-23 2018-05-15 Daniel Robert Ferrin Method and apparatus for the limitation of the mining of blocks on a block chain
CN107145768B (zh) 2016-03-01 2021-02-12 华为技术有限公司 版权管理方法和系统
US10360191B2 (en) * 2016-10-07 2019-07-23 International Business Machines Corporation Establishing overlay trust consensus for blockchain trust validation system
KR101848896B1 (ko) * 2016-10-19 2018-04-13 한전케이디엔 주식회사 블록체인을 이용한 선불형 전력 판매 및 전력 사용 방법
US10554746B2 (en) * 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
US20200067697A1 (en) * 2017-03-22 2020-02-27 NEC Laboratories Europe GmbH Method for operating a blockchain
CN107124403A (zh) * 2017-04-14 2017-09-01 朱清明 区块链中共识区块的生成方法与计算设备
CN109792437B (zh) * 2017-05-16 2021-01-12 北京大学深圳研究生院 一种用于去中心化域名系统的共识方法
CN107231299A (zh) * 2017-06-07 2017-10-03 众安信息技术服务有限公司 一种链路由及实现区块链跨链通信的系统
CN107423978A (zh) * 2017-06-16 2017-12-01 郑州大学 一种基于联盟区块链的分布式能源交易认证方法
CN108848055B (zh) 2018-05-03 2020-06-23 中国银联股份有限公司 一种区块链共识方法、记账节点及节点

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HYPERLEDGER, Architecture, Volume 1, Introduction to Hyperledger Business Blockchain Design Philosophy and Consensus, 2017.11.23*
Sunny King, et al., PPCoin: Peer-to-Peer Crypto-Currency with Proof-of-Stake, Semanticscholar.org, 2012.08.19*

Also Published As

Publication number Publication date
KR20210006934A (ko) 2021-01-19
US20210035095A1 (en) 2021-02-04
CN108848055A (zh) 2018-11-20
CN108848055B (zh) 2020-06-23
WO2019210714A1 (zh) 2019-11-07
JP2021521555A (ja) 2021-08-26
US11830001B2 (en) 2023-11-28
JP7138726B2 (ja) 2022-09-16

Similar Documents

Publication Publication Date Title
KR102469267B1 (ko) 블록 체인 합의 방법, 어카운팅 노드 및 노드
EP4053711A1 (en) Consensus method for blockchain, and consensus node, electronic device and storage medium
CN106453415B (zh) 基于区块链的设备认证方法、认证服务器及用户设备
CN109831487B (zh) 分片文件验证方法及终端设备
JP7398000B2 (ja) ブロックチェーンに基づくデータ検出方法及び装置並びにコンピュータ装置及びプログラム
CN113783935B (zh) 一种拜占庭容错方法及装置
CN111414373A (zh) 一种共识方法和共识系统
CN113794694B (zh) 一种基于可靠广播的二元共识方法及装置
US20220158836A1 (en) Fork Processing Method And Blockchain Node
CN110784521B (zh) 区块链的共识方法、电子设备和存储介质
CN112398692B (zh) 共识流程处理方法、装置和电子设备
CN111010284B (zh) 一种待共识区块的处理方法、相关装置及区块链系统
CN114422155B (zh) 提案共识执行方法、区块链系统、设备和存储介质
CN113810465B (zh) 一种异步二元共识方法及装置
CN114338715A (zh) 数据同步方法、区块链系统、终端设备及存储介质
WO2023040453A1 (zh) 一种交易信息处理方法及装置
CN111082990B (zh) 一种区块链的共识方法、装置、设备及存储介质
CN114760198B (zh) 一种基于区块链网络的共识方法、装置及系统
CN113794566B (zh) 一种可再投票的二元共识方法、装置、及存储介质
CN113783946A (zh) 一种基于门限签名的可再投票二元共识方法及装置
CN111861469A (zh) 区块链中共识机制的处理方法、装置和电子设备
CN112131602A (zh) 基于可信计算进行节点间信任关系快速扩展的方法、装置及相关产品
CN110876852A (zh) 微服务的网络游戏数据处理方法及系统
CN111553671A (zh) 一种交易方法、电子设备及存储介质
CN112182590A (zh) 一种Web应用的漏洞更新方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant