KR20190091484A - 블록체인 합의 방법 및 디바이스 - Google Patents

블록체인 합의 방법 및 디바이스 Download PDF

Info

Publication number
KR20190091484A
KR20190091484A KR1020197018685A KR20197018685A KR20190091484A KR 20190091484 A KR20190091484 A KR 20190091484A KR 1020197018685 A KR1020197018685 A KR 1020197018685A KR 20197018685 A KR20197018685 A KR 20197018685A KR 20190091484 A KR20190091484 A KR 20190091484A
Authority
KR
South Korea
Prior art keywords
service data
consensus
node
service
handling time
Prior art date
Application number
KR1020197018685A
Other languages
English (en)
Other versions
KR102208186B1 (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 KR20190091484A publication Critical patent/KR20190091484A/ko
Application granted granted Critical
Publication of KR102208186B1 publication Critical patent/KR102208186B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Abstract

본 출원은 블록체인 합의 방법 및 디바이스를 개시하고, 방법은 서비스 데이터를 수신하면, 블록체인 내의 노드에 의해, 서비스 데이터의 핸들링 시간을 결정하는 단계; 핸들링 시간을 포함한 서비스 데이터를 저장하는 단계; 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우, 핸들링 시간에 기초하여 노드에 의해, 합의가 수행되어야 하는 서비스 데이터를 선택하고, 선택된 서비스 데이터에 대해 합의를 수행하는 단계를 포함한다. 본 출원에 제공된 방법에 따르면, 합의가 수행되어야 하는 서비스 데이터는, 서비스 데이터에서의 특정 속성에 대응하는 값에 기초하여 더 이상 선택되지는 않지만, 서비스 데이터를 핸들링하는 노드에 의해 서비스 데이터를 핸들링하는 핸들링 시간에 기초하여 선택된다는 것을 알 수 있다. 이와 같이, 서비스 데이터가 합의를 기다리는 시간이 비교적 균형있게 효과적으로 보장되고, 일부 서비스 데이터가 비교적 긴 시간 동안 합의를 기다리는 기존 기술의 문제점이 완화될 수 있고, 서비스 데이터의 프로세싱 효율이 효과적으로 개선되며, 블록체인의 운영 성능이 향상된다.

Description

블록체인 합의 방법 및 디바이스
본 출원은 정보 기술 분야에 관한 것으로, 특히 블록체인 합의 방법 및 디바이스에 관한 것이다.
정보 기술의 발전에 따라, 사람들은 블록체인 기술의 개방성, 탬퍼링 방지 및 분산화와 같은 이점 때문에 블록체인 기술에 초점을 두고 있다. 기존의 블록체인 기술은 분산화를 특징으로 하기 때문에, 블록체인에서 실행되는 서비스가 블록체인에 저장되기 전에(즉, 블록체인에 데이터를 기록하기 위해 체인 동작이 수행되기 전에) 블록체인 내의 각 노드는 서비스에 대응하는 서비스 데이터에 대한 합의(consensus)(예를 들어, 프로세싱 후에 얻어진 결과는 서비스에 대해 수행된다)를 수행할 필요가 있다.
통상적으로, 블록 용량(예를 들어, 미리 결정된 용량)은 블록체인에 제한되지만, 때로는 노드에서 합의를 기다리는 서비스 데이터가 차지하는 공간이 블록 용량보다 클 수 있다. 따라서, 기존의 기술에서, 합의를 개시하는 노드는 또한, 저장된 서비스 데이터로부터 일부 서비스 데이터를 선택하여 선택된 서비스 데이터에 대해 합의를 수행할 필요가 있다.
일반적으로, 노드는 서비스 데이터에서의 특정 속성의 데이터(예를 들어, 트랜잭션 데이터)에 대응하는 값(예를 들어, 트랜잭션량)에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 선택한다.
블록체인 내의 각 노드는, 노드에 저장된 서비스 데이터의 조각(piece)의 특정 속성에 대응하는 값(예를 들어, 트랜잭션량)에 기초하여, 합의가 수행되어야 하는 서비스 데이터의 조각의 리스트를 결정한다. 블록체인 내의 각 노드는, 노드에 저장되고 합의가 수행되어야 하는 서비스 데이터의 조각의 리스트에 있는 서비스 데이터의 조각의 시퀀스에 기초하여, 합의가 수행될 필요가 있는 서비스 데이터로서 서비스 데이터를 선택하여, 선택된 서비스 데이터 상에 수행된 합의를 완료할 수 있다.
그러나, 이전 방법은 다음의 단점을 가진다: 합의가 수행되어야 하는 서비스 데이터의 목록에서 합의가 수행되어야 하는 서비스는 서비스 데이터 내의 특정 속성에 대응하는 값에 기초하여 배열되기 때문에, 더 작은 값을 갖는 서비스 데이터는 비교적 긴 시간 동안 합의를 기다린다. 따라서, 서비스 데이터의 상대적으로 낮은 프로세싱 효율이 야기될 수 있다.
본 발명의 구현예는 기존의 블록체인 합의 방법에서 서비스 데이터가 비교적 긴 시간 동안 합의를 기다리기 때문에 일부 서비스 데이터의 프로세싱 효율이 상대적으로 낮다는 문제점을 완화하기 위한 블록체인 합의 방법을 제공한다.
본 발명의 구현예는 기존의 블록체인 합의 방법에서 서비스 데이터가 비교적 긴 시간 동안 합의를 기다리기 때문에 일부 서비스 데이터의 프로세싱 효율이 상대적으로 낮다는 문제점을 완화하기 위한 블록체인 합의 장치를 제공한다.
본 출원의 구현예는, 블록체인 내의 노드에 의해 서비스 데이터를 수신하고, 서비스 데이터의 핸들링 시간을 결정하는 단계; 노드에 의해 핸들링 시간을 포함하는 서비스 데이터를 저장하는 단계; 및 서비스 데이터에 대한 합의가 수행될 필요가 있는 경우, 핸들링 시간에 기초하여 노드에 의해, 합의가 수행되어야 하는 서비스 데이터를 선택하고, 합의가 수행되어야 하는 선택된 서비스 데이터에 대해 합의를 수행하는 단계를 포함하는, 블록체인 합의 방법을 제공한다.
본 출원의 구현예는, 서비스 데이터를 수신하고 서비스 데이터의 핸들링 시간을 결정하도록 구성된 결정 모듈; 핸들링 시간을 포함하는 서비스 데이터를 저장하도록 구성된 저장 모듈; 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우 핸들링 시간에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 선택하도록 구성된 선택 모듈; 및 합의가 수행되어야 하는 선택된 서비스 데이터에 대해 합의를 수행하도록 구성된 합의 모듈을 포함하는 블록체인 합의 장치를 제공한다.
본 출원의 구현예에서 사용된 이전 설명된 기술적 해결책 중 적어도 하나는 다음의 유익한 효과를 달성할 수 있다:
서비스 데이터를 수신하면, 블록체인에서의 노드는 서비스 데이터의 핸들링 시간을 결정하고, 핸들링 시간을 포함한 서비스 데이터를 저장하여, 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우, 노드가 핸들링 시간에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 선택하고, 선택된 서비스 데이터에 대해 합의를 수행하게 한다. 본 출원에 제공된 방법에 따르면, 합의가 수행되어야 하는 서비스 데이터는, 서비스 데이터에서의 특정 속성에 대응하는 값에 기초하여 더 이상 선택되지는 않지만, 서비스 데이터를 핸들링하는 노드에 의해 서비스 데이터를 핸들링하는 핸들링 시간에 기초하여 선택된다는 것을 알 수 있다. 이와 같이, 서비스 데이터가 합의를 기다리는 시간이 비교적 균형있게 효과적으로 보장되고, 일부 서비스 데이터가 비교적 긴 시간 동안 합의를 기다리는 기존 기술의 문제점이 완화될 수 있고, 서비스 데이터의 프로세싱 효율이 효과적으로 개선되며, 블록체인의 운영 성능이 향상된다.
여기에 기술된 첨부 도면은 본 출원의 추가의 이해를 제공하기 위한 것이며 본 출원의 일부를 구성한다. 본 출원의 예시적인 구현 및 그 설명은 본원을 설명하기 위한 것이며, 본 출원에 대한 제한을 구성하지 않는다. 첨부되는 도면에서:
도 1은 본 출원의 구현예에 따른 블록 합의 프로세스를 예시한다.
도 2는 본 출원의 구현예에 따른 블록 합의 장치를 예시하는 개략적인 구조도이다.
본 출원의 목적, 기술적 해결책, 및 장점을 보다 명확하게하기 위해, 다음은 본 출원의 특정 구현예 및 첨부 도면을 참조하여 본 출원의 기술적 해결책을 명확하고 포괄적으로 설명한다. 명백하게, 설명된 구현예는 본 출원의 구현예의 모두이기 보다는 단지 일부이다. 창조적인 노력없이 본 출원의 구현예에 기초하여 본 분야의 당업자에 의해 얻어진 다른 구현예들은 본 출원의 보호 범위 내에 있다.
기존의 블록체인 기술에서, 블록체인 내의 데이터는 블록체인 네트워크에서의 블록체인 노드(이하 간단히 노드라고 지칭됨)에 의해 공동으로 유지된다. 서비스 요청을 수신하면, 노드는 일반적으로 캐시, 합의 및 저장의 3가지 단계를 통해 블록에 서비스 요청에 대응하는 서비스 데이터를 저장하고, 노드에 대응하는 블로체인에 서비스 데이터를 저장하기 위해 블록 상에 체인 동작이 수행된다. 블록체인 네트워크에서의 대부분의 노드가 각각의 노드의 블록체인 데이터에서 서비스 데이터를 저장하는 경우, 서비스 데이터는 노드에 의해 공동으로 유지되는 블록체인 데이터에 저장되는 것으로 간주될 수 있다.
합의는 필수적인 단계이며, 작업 증명(proof-of-work; PoW) 메커니즘, 플랙티컬 비잔틴 장애허용(practical Byzantine fault tolerance; PBF) 메커니즘 및 지분 증명(proof-of-stake) 메커니즘과 같은 합의 메커니즘이 현재 사용된다. 작업 증명 메카니즘이 설명을 위해 본 명세서에서 예시로서 사용된다.
노드는 먼저 사용자에 의해 전송된 서비스 요청을 수신할 수 있고, 여기서 서비스 요청은 서비스 데이터를 포함하며, 서비스 요청은 사용자에 의해 노드로 직접 입력될 수 있고, 노드는 또한 블록체인 네트워크 내의 또다른 노드에 의해 브로드캐스트된 서비스 요청을 수신할 수 있다. 노드가 서비스 요청을 수신하는 방법은 서비스 실행에 영향을 미치지 않는다.
이후에, 노드는 서비스 요청에 기초하여 대응하는 서비스 데이터를 결정할 수 있다. 노드가 서비스 요청에 기초하여 대응하는 서비스 데이터를 결정하는 프로세스는 노드가 서비스 요청을 핸들링하는 프로세스라고 할 수 있고, 특정 경우에 따라 서비스 데이터를 결정하는 방법이 달라질 수 있다. 예를 들어, 공통 서비스 요청에 포함된 서비스 데이터는 서비스에서 실행할 필요가 있는 콘텐츠를 포함한다. 예를 들어, 트랜잭션 서비스 요청의 경우, 트랜잭션 서비스 요청은 지불자(payer) 주소, 지불자 잔액, 지불 금액 및 수령자(payee) 주소와 같은 정보를 포함하고, 서비스 요청을 수신하는 노드는 서비스 요청에 기초하여 서비스 데이터를 직접 결정할 수 있다. 또다른 예로서, 공통 서비스 요청은 스마트 계약을 위한 명령어와 같은 서비스 데이터를 더 포함할 수 있다. 이와 같이, 서비스 요청을 핸들링할 때, 노드는 또한, 서비스 요청 내의 상이한 서비스 데이터에 기초하여 서비스 프로세싱을 수행하고, 서비스 프로세싱의 결과를 획득할 필요가 있을 수 있다. 따라서, 서비스 데이터를 결정할 때, 서비스 프로세싱의 결과가 서비스 데이터로서 사용될 수 있다. 노드는 또한 서비스 요청에 포함된 서비스 데이터 및 서비스 프로세싱의 결과 모두를 서비스 요청에 대응하는 서비스 데이터로서 사용할 수 있다. 서비스 데이터에 포함된 콘텐츠는 데이터가 서비스 요청에 대응하고 블록체인 데이터에 저장될 필요가 있는 경우 제공되는 블록체인의 구성에 따라 변할 수 있다. 이와 같이, 데이터는 서비스 데이터로서 간주될 수 있다.
블록체인 네트워크 내의 노드는 서비스 요청을 위해 핸들링 노드 및 비핸들링 노드로 분할될 수 있다는 것에 주목할만 하다. 핸들링 노드는 사용자 또는 또다른 디바이스가 전송한 서비스 요청을 수신하는 노드이다. 비핸들링 노드는 브로드캐스트 방식으로 또다른 노드로부터 서비스 요청을 획득하는 노드이다.
결정된 서비스 데이터가 합의가 수행된 블록체인 데이터에 저장되어 있지 않은 경우, 서비스 데이터는 합의가 수행되어야 하는 서비스 데이터이고, 노드의 캐시(cache)에 저장될 수 있다.
그 다음, 합의가 수행되어야 하는 서비스 데이터를 결정한 후에, 노드는 합의가 수행되어야 하는 서비스 데이터를 블록체인 네트워크 내의 또다른 노드로 브로드캐스트할 수 있다, 즉, 합의가 수행되어야 하는 서비스 데이터를 블록체인 네트워크 내의 또다른 노드에 동기화할 수 있다. 이와 같이, 블록체인 네트워크 내의 노드는 브로드캐스트 방식으로 전송되고 합의가 수행되어야 하는 서비스 데이터를 수신할 수 있다. 후속하여 합의가 수행되면, 블록체인 네트워크 내의 노드는 합의가 수행되어야 하는 서비스 데이터에 대한 합의를 수행할 수 있다.
마지막으로, 블록체인 네트워크 내의 노드는 블록체인의 합의 메커니즘에 기초하여 합의를 개시하는 노드를 결정할 수 있고, 합의를 개시하는 노드는 노드에 저장되고 합의가 수행되어야 하는 서비스 데이터로 부터 합의가 수행되어야 하는 서비스 데이터를 선택한다. 그 다음, 블록체인 네트워크 내의 노드는 블록체인의 합의 메커니즘에 기초하여, 합의를 개시하는 노드에 의해 선택되고 합의가 수행되어야 하는 서비스 데이터에 대한 합의를 수행할 수 있다.
합의를 개시하는 노드에 의해 전송되고 합의가 수행되어야 하는 서비스 데이터에 대한 합의를 수행할 때, 블록체인 네트워크 내의 각 노드는 합의가 수행되어야 하는 수신된 서비스 데이터가 노드이 캐시에 있고 합의가 수행되어야 하는 서비스 데이터의 조각 리스트에 저장되는지 여부를 결정할 수 있다. 합의가 수행되어야 하는 수신된 서비스 데이터가 노드의 캐시에 있고 합의가 수행되어야 하는 서비스 데이터의 조각 리스트에 저장되어 있다고 결정한 것에 응답하여, 합의가 수행되어야 하는 수신된 서비스에 대한 합의가 성공하였고, 합의가 수행되어야 하는 서비스 데이터를 기록하는 새로운 블록이 노드에 의해 유지되는 블록체인 데이터에 저장된다. 그렇지 않으면, 새로운 블록은 저장되지 않는다.
본 출원의 구현에 제공된 기술적 해결책은 첨부 도면을 참조하여 이하 상세히 설명된다.
도 1은 본 출원의 구현예에 따른 블록 합의 프로세스를 예시하며, 프로세스는 다음의 단계를 포함할 수 있다.
S101: 블록체인 내의 노드는 서비스 데이터를 수신하고 서비스 데이터의 핸들링 시간을 결정한다.
블록체인 네트워크에는 통상적으로 2가지 유형의 노드: 서비스 노드 및 합의 노드가 있다. 서비스 노드는 일반적으로 서비스 요청을 개시하도록 구성되며 필수적인 노드는 아니다. 서비스 노드가 완전한 블록체인 데이터를 저장하는지 여부는 블록체인 네트워크의 구성 상태(construction status)에 따라 결정될 수 있다. 일부 블록체인 네트워크에는 서비스 노드가 없을 수 있다. 합의 노드는 블록체인 네트워크에서 필수적인 노드이며, 서비스 요청을 수신하고, 블록체인의 합의 메커니즘에 따라 합의를 개시하거나 또다른 합의 노드가 전송한 합의 제안을 수신하도록 구성된다. 합의가 수행된 서비스 데이터는 블록체인의 블록에 저장된다. 본 출원의 구현예에서 기술된 노드는 블록체인 네트워크 내의 합의 노드로 간주될 수 있고, 노드는 서비스 요청을 수신할 수 있고, 서비스 요청에 기초하여 수신된 서비스 데이터를 결정할 수 있다.
노드는 단말 디바이스, 예를 들어 이동 전화, 퍼스널 컴퓨터, 또는 태블릿 컴퓨터와 같은 디바이스일 수 있다. 대안적으로, 노드는 서버일 수 있고, 서버는, 디바이스가 서비스 요청을 수신하고 블록체인 네트워크의 노드로서 합의를 개시할 수 있다면, 개별 디바이스일 수 있거나 복수의 디바이스를 포함한 시스템일 수 있다. 구현예는 본 출원에서 제한되지 않는다.
또한, 기존의 기술에서, 블록체인에서의 서비스 요청은 일반적으로 표 1에 나타낸 서비스 데이터를 포함하지만 이에 한정되지는 않는다.
서비스 속성 콘텐츠
서비스 식별자 블록체인 내의 고유 식별자
버전 서비스 생성 메카니즘의 버전 식별자
공개 키 서비스 개시자의 공개 키
서명 서비스 개시자가 공개 키에 대응하는 개인 키를 사용하여 서명을 수행한 후에 획득된 서비스 다이제스트
서비스 정보 서비스의 특정 콘텐츠
서비스에 대응하는 블록 식별자 체인 동작이 수행된 후에 서비스 데이터가 저장되는 대응하는 블록의 해시 값
표 1은 서비스 요청에서 서비스 데이터에 포함될 수 있는 서비스 속성 및 대응하는 콘텐츠를 나타낸다, 즉, 서비스 데이터는 다른 콘텐츠를 더 포함한다. 구현예은 여기에 제한되지 않는다. 버전 속성이 설명을 위해 예시로서 사용된다. 버전 속성에 대응하는 콘텐츠는 서비스 요청에 포함될 수 있거나(즉, 클라이언트 소프트웨어 또는 서비스 요청을 전송하는 노드에 의해 기입됨), 서비스 요청에 대한 서비스 프로세싱을 수행하는 후속 프로세스에서 노드에 의해 결정될 수 있거나, 서비스 데이터에 대응하는 버전 속성에 추가된다. 또다른 예로서, 서비스 요청에 대응하는 서비스 데이터가 블록체인의 새로운 블록에 저장될 수 있다고 노드가 결정할 때, 서비스에 대응하는 블록 식별자에 대응하는 콘텐츠는 새로운 블록의 결정된 해시 값일 수 있다. 노드가 서비스 요청을 수신하면, 속성의 콘텐츠는 비어있을 수 있으며, 특정 콘텐츠는 노드가 기입하기를 기다릴 수 있다.
또한, 서비스 식별자는 서비스 콘텐츠의 다이제스트(digest)일 수 있거나, 블록체인에서 서비스 개시자에 의해 결정되는 글로벌 고유 식별자일 수 있거나, 노드가 서비스 요청을 핸들링할 때 노드에 의해 결정되는 서비스 데이터의 식별자일 수 있다. 서비스 식별자는 기존 기술의 방법을 사용하여 결정될 수 있다. 구현예는 서비스 데이터가 블록체인 데이터에서 고유하게 결정될 수 있다면, 본 출원에서 제한되지 않는다.
또한, 본 출원의 본 구현예에서, 서비스 요청을 수신한 후에, 노드는 서비스 요청에 기초하여 서비스 요청에 대응하는 서비스 데이터를 결정하여(즉, 서비스 요청을 핸들링함), 후속하여 합의를 위해 합의가 수행되어야 하는 서비스 데이터를 선택하는 경우, 합의가 수행되어야 하는 서비스 데이터로서 블록체인 데이터의 새로운 블록에 서비스 데이터를 저장할지 여부(즉, 체인 동작을 수행할지 여부)를 결정하게 할 수 있다.
또한, 후속하여 서비스 데이터에 대한 합의가 수행될 때, 합의를 개시하는 노드에 의한 합의를 위한 서비스 데이터를 선택하 것이 서비스 데이터 내의 일부 속성의 자원의 양으로 인해 영향을 받는다는 문제가 완화될 수 있다. 본 출원의 본 구현예에서, 서비스 요청을 핸들링할 때(예를 들어, 서비스 요청에 대응하고 합의가 수행되어야 하는 서비스 데이터를 결정할 때), 노드는 노드의 로컬 타임스탬프를 결정하고, 합의가 수행되어야 하는 서비스 데이터의 핸들링 시간으로서 로컬 타임스탬프를 사용할 수 있다.
서비스 요청의 경우, 일반적으로 서비스 요청을 핸들링하는 단지 하나의 노드가 있다. 그러므로, 서비스 요청을 핸들링할 때 노드에 의해 결정되는, 합의가 수행되어야 하는 대응하는 서비스 데이터의 핸들링 시간은 또한 블록체인 데이터에서 고유하다. 또한, 핸들링 시간은 서비스 요청에 대응하는 서비스 데이터의 콘텐츠에 따라 변하지 않는다. 또한, 노드가 서비스 요청을 프로세싱할 때 핸들링 시간이 결정되기 때문에, 합의가 수행되어야 하는 서비스 데이터를 브로드캐스트 방식으로 수신하는 또다른 노드는 합의 동안 합의가 수행되어야 하는 서비스 데이터를 수신하는 상이한 시간으로 인해 상이한 선택 결과를 결정하지 않는다. 따라서, 합의가 수행되어야 하는 서비스 데이터의 핸들링 타임스탬프는 영향을 덜 받는다(예를 들어, 서비스 콘텐츠 및 네트워크 지연).
본 출원의 본 구현예에서, 노드는 또한 서비스 요청에 대응하는 서비스 데이터의 핸들링 시간으로서, 노드가 서비스 요청을 수신할 때 노드의 로컬 시간에 대응하는 타임스탬프를 사용할 수 있다. 대안적으로, 서비스 데이터의 타임스탬프가 서비스 요청을 수신하는 노드에 의해 결정된다면, 즉 블록체인 데이터 내의 서비스 데이터의 타임스탬프가 단지 하나의 노드에 의해 결정될 수 있다면, 노드는 서비스 데이터의 타임스탬프를 다른 방식으로 결정할 수 있다(예를 들어, 서비스 데이터를 수신하면, 노드는 서비스 데이터에 대한 프로세싱을 수행하여 프로세싱 결과를 획득하고, 프로세싱 결과의 생성 시간을 서비스 데이터의 핸들링 시간으로서 결정함).
또한, 상술된 바와 같이, 상이한 블록체인 또는 상이한 서비스 요청에 대해, 서비스 요청에 대응하는 서비스 데이터는 스마트 계약을 위한 동작 명령어와 같은 데이터를 더 포함할 수 있기 때문에, 노드는 또한 서비스 데이터에 기초하여 서비스 프로세싱을 수행하여 서비스 프로세싱 결과를 획득할 필요가 있을 수 있다. 따라서, 서비스 요청(또는 서비스 요청에서의 서비스 데이터)에 기초하여 서비스 프로세싱을 수행한 후에 노드가 서비스 프로세싱 결과를 획득할 때, 서비스의 핸들링 시간은 또한 노드의 로컬 타임스탬프가 될 수 있다.
또한, 노드에 의해 결정되는 핸들링 시간의 정밀도가 상대적으로 낮으면, 예를 들어 초의 시간 정밀도 레벨, 1초 이내에서 복수의 서비스 요청을 프로세싱할 때, 1초 이내에서 핸들링되는 복수의 서비스 요청 각각에 대응하는 서비스 데이터는 동일한 핸들링 시간을 가진다. 결과적으로, 후속하여 합의가 수행되어야 하는 서비스 데이터를 선택하는 것은 어려울 수 있다. 따라서, 복수의 서비스 데이터 조각이 동일한 핸들링 시간을 가질 가능성을 줄이기 위해, 본 출원의 본 실시예에서, 핸들링 시간은 더 높은 정밀도로 제공될 수 있다, 예를 들어, 핸들링 시간은 밀리초 정밀도로 결정된다. 특히, 핸들링 시간은 실제 애플리케이션 요구에 따라 인적 자원(personnel)에 의해 설정될 수 있다. 예를 들어, 블록체인 네트워크 내의 각 노드는 평균 1분마다 서비스 요청을 수신한다. 따라서, 핸들링 시간의 시간 정밀도는 상대적으로 낮게 설정될 수 있다.
S102. 노드는 핸들링 시간을 포함하는 서비스 데이터를 저장한다.
본 발명의 본 구현예에서, 서비스 데이터의 핸들링 시간을 결정한 후에, 노드는 핸들링 시간을 포함하는 서비스 데이터를 저장하여, 예를 들어, 노드의 캐시에 핸들링 시간을 포함하는 서비스 데이터를 저장하여, 후속하여 합의가 수행될 필요가 있을 때 서비스 데이터에 대해 합의를 수행하게 할 수 있다.
노드는 단계(S101)에서 결정된 서비스 데이터의 핸들링 시간을 서비스 데이터에 추가할 수 있다. 서비스 데이터의 속성에 이미 타임스탬프 속성이 있고 타임스탬프 속성의 콘텐츠가 비어 있으면, 결정된 서비스 데이터의 핸들링 시간은 타임스탬프 속성으로 기입된다. 데이터가 서비스 데이터의 오리지널 타임스탬프 속성에 기입되거나 서비스 데이터에 타임스탬프 속성이 없는 경우, 노드는 서비스 데이터에 대한 새로운 "핸들링 시간" 속성을 추가할 수 있고, 단계(S101)에서 결정된 서비스 데이터의 핸들링 시간은 "핸들링 시간” 속성으로 기입된다.
즉, 본 출원의 본 구현예에서, 노드가 서비스 데이터에 핸들링 타임스탬프를 추가할 때, 노드는 서비스 데이터에 대한 핸들링 시간 속성을 추가할 수 있고, 서비스 데이터의 핸들링 시간의 값을 핸들링 시간 속성의 콘텐츠로서 사용하여 서비스 데이터가 핸들링 시간을 포함하도록 한다. 예를 들어, 표 1에 나타낸 서비스 데이터가 예시로서 사용된다. 노드는 표 2에 나타낸 서비스 데이터로 서비스 데이터를 업데이트할 수 있다.
서비스 속성 콘텐츠
서비스 식별자 블록체인 내의 고유 식별자
버전 서비스 생성 메카니즘의 버전 식별자
공개 키 서비스 개시자의 공개 키
서명 서비스 개시자가 공개 키에 대응하는 개인 키를 사용하여 서명을 수행한 후에 획득된 서비스 다이제스트
서비스 정보 서비스의 특정 콘텐츠
서비스에 대응하는 블록 식별자 체인 동작이 수행된 후에 서비스 데이터가 저장되는 대응하는 블록의 해시 값
핸들링 시간 서비스 핸들링 당사자(즉, 서비스 요청을 핸들링하는 노드)가 서비스 데이터를 결정할 때의 서비스 핸들링 당사자의 로컬 시간에 대응하는 타임스탬프
본 출원의 본 구현예에서 단계(S101)에 설명한 바와 같이, 핸들링 시간은 노드가 서비스 프로세싱을 수행한 후에 서비스 프로세싱 결과를 결정하는 시간일 수도 있다. 따라서, 본 출원에서 단계(S102)를 수행하기 전에, 노드는 서비스 요청 및/또는 서비스 데이터를 사용하여 실제 애플리케이션 상태에 기초하여 서비스 프로세싱 동작을 더 수행할 수 있다. 서비스 프로세싱은 기존의 블록체인 기술에서의 노드에 의한 서비스 프로세싱 방법을 이용하여 수행될 수 있고, 본 출원에서는 상세한 설명은 생략된다.
또한, 노드는 또한, 노드의 캐시에 핸들링 시간을 포함하는 서비스 데이터를 저장하여 합의를 기다릴 수 있다.
구체적으로, 핸들링 시간을 포함하는 서비스 데이터를 저장할 때, 노드는 노드의 캐시에 합의가 수행되어야 하는 서비스 데이터의 풀(pool)에 핸들링 시간을 포함하는 서비스 데이터를 저장할 수 있거나, 노드의 캐시에 리스트의 형태로 핸들링 시간을 포함하는 서비스 데이터를 저장할 수 있다. 핸들링 시간을 포함하는 서비스 데이터를 저장하는 방법은 본 출원에 제한되지 않는다.
S103: 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우, 노드는 핸들링 시간에 기초하여 합의가 수행되어야 하는 서비스 데이터를 선택하고 합의가 수행되어야 하는 선택된 서비스 데이터에 대해 합의를 수행한다.
본 출원의 본 구현예에서, 합의 메커니즘에 관계없이, 서비스 데이터에 대해 합의가 수행될 필요가 있다고 결정되면, 블록체인 내의 노드는 서비스 데이터의 핸들링 시간에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 균일하게 선택한다. 이와 같이, 합의가 수행될 때 동일한 서비스 데이터가 사용되는 것을 보장할 수 있다.
본 출원의 본 구현예에서 기술된 핸들링 시간은 타임스탬프로서 이해될 수 있다는 것에 주목할만 하다. 타임스탬프는 노드가 서비스 요청을 핸들링할 때 서비스 요청에 대해 노드에 의해 생성된 타임스탬프일 수 있거나, 노드가 수신된 서비스 요청을 프로세싱한 후에 생성된 타임스탬프일 수 있다. 구현예은 여기에 제한되지 않는다.
노드는 합의를 위해 저장된 서비스 데이터 조각의 핸들링 시간의 시간 시퀀스에 기초하여 합의가 수행되어야 하는 서비스 데이터를 선택할 수 있다.
구체적으로, 노드의 캐시는 서비스 요청를 수신함으로써 노드에 의해 결정된 서비스 데이터, 및 브로드캐스트 방식으로 노드에 의해 수신되고 블록체인 네트워크 내의 또다른 노드에 의해 노드에 동기화되는 서비스 데이터(즉, 또다른 노드에 의해 결정되는 합의가 수행되어야 하는 서비스 데이터)를 포함한 복수의 서비스 데이터 조각을 저장할 수 있다. 노드에 의해 결정된 서비스 데이터의 핸들링 시간은 노드에 의해 결정되고, 또다른 노드에 의해 결정된 서비스 데이터의 핸들링 시간은 노드에 의해 결정되지 않지만, 서비스 데이터에 대응하는 서비스 요청을 핸들링하는 또다른 노드에 의해 결정된다.
노드에 저장된 서비스 데이터 조각은 모두 대응하는 핸들링 시간을 포함하고, 서비스 데이터는 통상적으로 상이한 핸들링 시간을 가지므로, 본 출원의 본 구현예에서, 노드는 우선 서비스 데이터 조각의 핸들링 시간의 시간 시퀀스에 기초하여 서비스 데이터 조각을 정렬(sort)할 수 있다.
그 다음, 노드는 블록체인의 합의 메커니즘에 기초하여 새로운 블록의 블록 용량을 결정할 수 있고, 또한 블록 용량에 기초하여 새로운 블록에 기록될 수 있는 서비스 데이터의 양을 결정할 수 있다. 블록체인 데이터에 기록된 데이터가 차지하는 저장 공간을 줄이기 위해, 블록에 서비스 데이터가 기록되기 전에, 먼저 서비스 데이터의 다이제스트가 계산되고, 블록에 서비스 데이터의 다이제스트가 기록된다. 따라서, 서비스 데이터의 양을 결정할 때, 노드는 서비스 데이터의 다이제스트의 점유 공간 및 블록 용량에 기초하여, 기록될 수 있는 서비스 데이터의 양을 결정할 수 있다. 노드에 의해 기록될 수 있는 서비스 데이터의 양을 결정하는 방법은 본 출원에 제한되지 않으며, 합의 메카니즘을 구성함으로써 실제 애플리케이션 요구에 기초하여 결정될 수 있다.
또한, 노드는 합의를 위해 결정된 서비스 데이터의 양 및 정렬된 서비스 데이터 조각의 시퀀스에 기초하여, 합의가 수행되어야 하는 서비스 데이터로서 서비스 데이터의 양을 선택할 수 있다.
합의가 수행되어야 하는 동일한 서비스 데이터는 블록체인 내의 각 노드에서 동일한 타임스탬프를 가지기 때문에, 블록체인 네트워크 내의 상이한 노드들에 의해 결정되고 합의가 수행되어야 하는 서비스 데이터 조각은 동일한 시퀀스로 배열된다. 따라서, 블록체인 네트워크 내의 상이한 노드들이 동일한 시간에 합의를 개시하면, 상이한 노드들이 합의가 수행되어야 하는 동일한 서비스 데이터를 선택할 가능성이 상대적으로 높다.
예를 들어, 블록체인 네트워크 내의 노드 A에 대해, 노드 A의 캐시에 저장된 서비스 데이터가 표 3에 나타내어졌다고 가정한다.
서비스 데이터의 식별자 핸들링 시간의 타임스탬프
서비스 1 100
서비스 2 99
서비스 3 102
서비스 4 70
서비스 1 및 서비스 3은 서비스 요청을 핸들링함으로써 노드 A에 의해 결정되는 서비스 데이터이고, 서비스 2는 노드 B에 의해 노드 A로 전송되는 서비스 데이터이고, 서비스 4는 노드 C에 의해 노드 A로 전송된 서비스 데이터이다.
이 경우, 노드 A는 서비스 데이터 조각의 핸들링 시간의 시간 시퀀스에 기초하여 서비스 데이터 조각을 정렬할 수 있고, 표 4에 나타낸 정렬 리스트를 결정할 수 있다.
서비스 데이터의 식별자 핸들링 시간의 타임스탬프
서비스 4 70
서비스 2 99
서비스 1 100
서비스 3 102
그 다음, 노드 A는 합의 메커니즘에 기초하여, 합의가 수행될 필요가 있는 서비스의 양을 결정할 수 있다. 합의가 수행될 필요가 있는 서비스의 양이 2이고, 노드 A가 합의가 수행되어야 하는 서비스 데이터로서 서비스 4 및 서비스 2를 선택할 수 있다고 가정한다.
노드는 또한 핸들링 시간의 시간 시퀀스에 기초하여 저장된 서비스 데이터 조각을 정렬하지 않지만, 서비스 데이터 조각의 핸들링 시간을 트래버싱한 후, 핸들링 시간의 시간 시퀀스에 기초하여 합의가 수행되어야 하는 서비스 데이터를 선택한다 . 노드가 서비스 데이터 조각의 핸들링 시간의 시간 시퀀스에 기초하여 합의가 수행되어야 하는 서비스 데이터를 선택 방법은, 노드가 서비스 데이터 조각의 핸들링 시간의 시간 시퀀스에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 선택한다면, 즉 먼저 핸들링된 서비스 데이터에 대해 합의가 먼저 수행된다면, 본 출원에서 제한되지 않는다.
도 1에 도시된 블록체인 합의 프로세스에 따르면, 서비스 데이터를 수신할 때, 블록체인 네트워크 내의 노드는 서비스 데이터의 핸들링 시간을 결정하고, 핸들링 시간을 포함하는 서비스 데이터를 저장한다. 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우, 서비스 데이터 조각의 핸들링 시간의 시퀀스는 서비스 데이터 조각의 핸들링 시간에 기초하여 결정될 수 있고, 서비스 데이터가 저장될 블록의 블록 용량을 만족하고 합의가 수행되어야 하는 서비스 데이터는 퍼스트 핸들링 퍼스트 합의(first handling first consensus)의 원칙에 따라 합의를 위한 시퀀스로 선택될 수 있다. 따라서, 또다른 노드에 의해 서비스 데이터가 전송된 경우에도, 서비스 데이터의 핸들링 시간은 서비스 데이터를 수신하는 노드에 의해 서비스 데이터를 핸들링하는 타임스탬프이기 때문에, 서비스 데이터의 동일한 핸들링 타임스탬프가 블록체인 네트워크 내의 노드에 의해 기록된다. 이와 같이, 블록체인 네트워크에서 먼저 핸들링된 서비스 요청에 대해 합의가 먼저 수행되고, 서비스 데이터가 합의를 기다리는 시간이 비교적 균형있게 효과적으로 보장되고, 일부 서비스 데이터가 비교적 긴 시간 동안 합의를 기다리는 기존 기술의 문제점이 기존 기술에 비해 완화될 수 있고, 서비스 데이터의 프로세싱 효율이 효과적으로 개선되며, 블록체인의 운영 성능이 향상된다.
또한, 본 출원의 본 구현예의 단계(S102)에서, 서비스 데이터를 저장할 때, 노드는 서비스 데이터의 핸들링 시간 및 시간 시퀀스에 기초하여 서비스 데이터를 캐시에 저장할 수 있다. 이 경우, 서비스 데이터 리스트는 노드의 캐시에서 구성될 수 있으며, 리스트 내의 서비스 데이터는 핸들링 시간의 시퀀스에 기초하여 배열된다. 단계(S103)에서, 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우, 합의가 수행될 필요가 있는 서비스의 양만 결정될 필요가 있고, 서비스 데이터의 양은 서비스 데이터 리스트로부터 순서대로 선택되고, 합의가 수행되어야 하는 서비스 데이터로서 사용된다.
또한, 본 출원의 본 구현예에서, 블록체인 네트워크 내의 또다른 노드에 의해 브로드캐스트된 서비스 데이터를 수신할 때, 노드는 노드에 저장된 서비스 데이터에 서비스 데이터가 이미 존재하는지 여부를 먼저 결정할 수 있다. 노드에 저장된 서비스 데이터에 서비스 데이터가 이미 존재한다고 결정한 것에 응답하여, 서비스 데이터는 노드에 저장되지 않는다(즉, 합의가 수행되어야 하는 2개의 동일한 서비스가 저장되는 것을 피한다). 그렇지 않으면, 서비스 데이터는 노드의 로컬 캐시에 저장된다.
또한, 서비스 데이터가 노드에서 시간 시퀀스에 따라 배열된 서비스 데이터 리스트가 있는 경우, 서비스 데이터를 저장하는 것으로 결정할 때, 노드는 서비스 데이터의 핸들링 시간 및 시간 시퀀스에 기초하여 수신된 서비스 데이터를 노드의 서비스 데이터 리스트에 추가할 수 있다.
예를 들어, 표 4에서 설명한 서비스 데이터 리스트가 노드 A에 저장된 서비스 데이터이다고 가정한다. 노드 A에 의해 수신되고 노드 B에 의해 전송된 서비스 데이터가 서비스 5이고, 서비스 5의 핸들링 시간이 10일 때, 노드 A는 표 5에 나타낸 바와 같이 핸들링 시간의 시간 시퀀스에 기초하여 서비스 데이터 리스트에 서비스 5를 삽입할 수 있다.
서비스 데이터의 식별자 핸들링 시간의 타임스탬프
서비스 5 10
서비스 4 70
서비스 2 99
서비스 1 100
서비스 3 102
본 출원의 본 구현예에서 제공되는 방법의 모든 단계는 동일한 디바이스에 의해 수행될 수 있거나, 또는 이 방법은 상이한 디바이스에 의해 수행될 수 있다는 것이 주목할만 하다. 예를 들면, 단계(S101) 및 단계(S102)는 디바이스 1에 의해 수행될 수 있고, 단계(S103)는 디바이스 2에 의해 수행될 수 있다. 또다른 예로서, 단계(S101)는 디바이스 1에 의해 수행될 수 있고, 단계(S102) 및 단계(S103)는 디바이스 2에 의해 수행될 수 있다 .
도 1에 도시된 블록체인 합의 방법에 기초하여, 본 출원의 본 구현예는 도 2에 도시된 바와 같이, 블록체인 합의 장치의 개략적인 구조도를 그에 따라 더 제공한다.
도 2는 본 출원의 일 구현예에 따른 블록체인 합의 장치를 예시하는 개략적인 구조도이고, 장치는 서비스 데이터를 수신하고 서비스 데이터의 핸들링 시간을 결정하도록 구성된 결정 모듈(201); 핸들링 시간을 포함하는 서비스 데이터를 저장하도록 구성된 저장 모듈(202); 서비스 데이터에 대해 합의가 수행될 필요가 있는 경우 핸들링 시간에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 선택하도록 구성된 선택 모듈(203); 및 합의가 수행되어야 하는 선택된 서비스 데이터에 대해 합의를 수행하도록 구성된 합의 모듈(204)을 포함한다.
본 출원의 또다른 구현예에서, 결정 모듈(201)은 서비스 데이터의 핸들링 시간을 결정하도록 구성되며, 이는 서비스 데이터가 수신되는 시간을 결정하고, 그 시간을 서비스 데이터의 핸들링 시간으로 결정하는 것; 또는 서비스 데이터가 수신되는 시간에 서비스 데이터를 프로세싱하여 프로세싱 결과를 획득하고 프로세싱 결과의 생성 시간을 서비스 데이터의 핸들링 시간으로 결정하는 것을 포함한다.
본 출원의 또다른 구현예에서, 장치는 브로드캐스트 모듈(205)을 더 포함한다.
브로드캐스트 모듈(205)은 서비스 데이터의 핸들링 시간이 결정된 후에 핸들링 시간을 포함하는 서비스 데이터를 블록체인 내의 또다른 노드로 브로드캐스트하도록 구성된다.
본 출원의 또다른 구현예에서, 결정 모듈(201)은 서비스 데이터를 수신하고 서비스 데이터의 핸들링 시간을 결정하도록 구성되며, 이는 블록체인 내의 또다른 노드에 의해 전송된 서비스 데이터를 브로드캐스트 방식으로 수신하는 것; 및 서비스 데이터에 포함된 핸들링 시간을 서비스 데이터의 핸들링 시간으로 결정하는 것을 포함한다.
본 출원의 또다른 구현예에서, 선택 모듈(203)은 핸들링 시간에 기초하여, 합의가 수행되어야 하는 서비스 데이터를 선택하도록 구성되며, 이는 핸들링 시간의 시간 시퀀스에 기초하여, 서비스 데이터가 저장될 블록의 블록 용량을 만족시키고 합의가 수행되어야 하는 서비스 데이터를 선택하는 것을 포함한다.
도 2에 도시된 바와 같이, 블록체인 합의 디바이스는 서버 내에 위치될 수 있고, 서버는 개별 디바이스 또는 복수의 디바이스를 포함하는 시스템일 수 있다. 대안적으로, 합의 디바이스는 또한 이동 전화, 태블릿 컴퓨터, 및 퍼스널 컴퓨터와 같은 단말 디바이스 내에 위치될 수 있다.
1990년대에는 기술 개선이 하드웨어 개선(예를 들어, 다이오드, 트랜지스터, 또는 스위치 등의 회로 구조의 개선)인지 소프트웨어 개선(방법 프로시저의 개선)인지가 쉽게 구별될 수 있었다. 그러나, 기술이 발전함에 따라, 많은 방법 프로시저에 대한 현재의 개선이 하드웨어 회로 구조에 대한 직접적인 개선으로서 간주될 수도 있다. 설계자는 일반적으로 개선된 방법 프로시저를 하드웨어 회로에 프로그래밍하여 대응하는 하드웨어 회로 구조를 얻는다. 그러므로, 방법 프로시저가 하드웨어 엔티티 모듈을 사용해서 개선될 수 있다. 예를 들어, 프로그래머블 로직 디바이스(Programmable Logic Device; PLD)[예를 들어, 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA)]가 그러한 집적 회로이고, 그 프로그래머블 로직 디바이스의 로직 기능은 디바이스 프로그래밍을 통해 사용자가 결정한다. 설계자는 주문형 집적 회로 칩을 설계하고 생산할 것을 칩 제조업자에게 요청하지 않고도 디지털 시스템을 PLD에 "집적"하기 위한 프로그래밍을 수행한다. 추가적으로, 프로그래밍은 주로 집적 회로 칩을 수동으로 제작하는 대신 “로직 컴파일러” 소프트웨어를 수정함으로써 구현된다. 이것은 프로그램 개발 및 컴파일에 사용되는 소프트웨어 컴파일러와 유사하다. 그러나, 컴파일 전의 오리지널코드는 또한 하드웨어 디스크립션 언어(hardware description language; HDL)라고 불리는 특정 프로그래밍 언어로 작성된다. ABEL(Advanced Boolean Expression Language), AHDL(Altera Hardware Description Language), 컨플루언스(Confluence), CURL(Cornell University Programming Language), HDCal, JHDL(Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, 및 RHDL(Ruby Hardware Description Language)와 같은 많은 HDL이 있다. 현재, VHDL(very-high-speed integrated circuit hardware description language) 및 Verilog가 가장 일반적으로 사용된다. 또한, 기존 기술의 당업자는 방법 프로시저가 몇몇 설명된 하드웨어 디스크립션 언어를 이용하여 논리적으로 프로그래밍되고 집적 회로에 프로그래밍되면, 논리적 방법 프로시저를 구현하는 하드웨어 회로가 쉽게 얻어질 수 있음을 이해해야 한다.
임의의 적절한 방법을 이용하여 컨트롤러가 구현될 수 있다. 예를 들어, 컨트롤러는 마이크로프로세서, 프로세서, 또는 컴퓨터 판독가능 매체, 로직 게이트, 스위치, 주문형 집적 회로(application-specific integrated circuit; ASIC), 프로그래머블 로직 컨트롤러, 또는 프로세서(예를 들어, 마이크로프로세서)에 의해 실행될 수 있는 컴퓨터 판독가능 프로그램 코드(예를 들어, 소프트웨어 또는 펌웨어)를 저장하는 임베디드 마이크로프로세서일 수 있다. 컨트롤러의 예는 다음의 마이크로컨트롤러: ARC 625D, 아트멜(Atmel) AT91SAM, 마이크로칩(Microchip) PIC18F26K20 및 실리콘 랩스(Silicone Labs) C8051F320를 포함하지만, 이들에 한정되지는 않는다. 또한, 메모리 컨트롤러는 메모리의 제어 로직의 일부로서도 구현될 수 있다. 기존 기술의 당업자는 또한 컨트롤러가 순수 컴퓨터 판독가능 프로그램 코드 방법을 사용하여 구현될 수 있고, 방법 단계는 컨트롤러로 하여금 로직 게이트, 스위치, 주문형 집적 회로, 프로그래머블 로직 컨트롤러, 임베디드 마이크로컨트롤러의 형태로 동일한 기능을 구현하게 하도록 논리적으로 프로그래밍될 수 있다. 따라서, 컨트롤러는 하드웨어 컴포넌트로서 간주될 수 있으며, 컨트롤러에 포함되어 컨트롤러에서 다양한 기능을 구현하는 장치가 또한 하드웨어 컴포넌트의 구조물로서 간주될 수 있다. 대안적으로, 다양한 기능을 구현하도록 구성된 장치는 방법을 구현할 수 있는 소프트웨어 모듈 또는 하드웨어 컴포넌트의 구조로 간주될 수 있다.
앞선 구현예에서 예시한 시스템, 장치, 모듈, 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용하여 구현될 수 있거나, 또는 특정 기능을 갖는 제품을 사용하여 구현될 수 있다. 통상의 구현예의 디바이스는 컴퓨터이다. 컴퓨터는 예를 들어, 퍼스널 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트 폰, 퍼스널 디지털 어시스턴트, 미디어 플레이어, 내비게이션 디바이스, 이메일 디바이스, 게임 콘솔, 태블릿 컴퓨터, 웨어러블 디바이스, 또는 이들 디바이스 중의 임의의 조합을 포함할 수 있다.
설명을 용이하게 하기 위해, 이전의 장치는 기능을 다양한 유닛으로 분할함으로써 기술된다. 본 출원이 구현될 때, 유닛의 기능은 소프트웨어 및/또는 하드웨어의 하나 이상의 부분(piece)에서 구현될 수 있다.
기존 기술의 당업자는 본 개시의 구현이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 개시는 하드웨어 단독 구현예, 소프트웨어 단독 구현예 또는 소프트웨어와 하드웨어의 조합의 구현예를 사용할 수 있다. 또한, 본 개시는 하나 이상의 컴퓨터 사용가능 저장 매체[자기 디스크 메모리, 컴팩트 디스크 판독전용 메모리(compact disc read-only memory; CD-ROM), 및 광학 메모리를 포함하지만 이에 한정되지는 않음] 상에 구현되는 컴퓨터 사용가능 프로그램 코드를 포함한 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 개시는 본 개시의 구현예에 기초한 방법, 디바이스(시스템), 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 설명된다. 흐름도 및/또는 블록도의 각 프로세스 및/또는 각 블록, 및 흐름도 및/또는 블록도의 프로세스 및/또는 블록의 조합을 구현하기 위해 컴퓨터 프로그램 명령어들이 사용될 수 있음을 주목할만 하다. 이들 컴퓨터 프로그램 명령어들은, 컴퓨터 또는 또다른 프로그래머블 데이터 프로세싱 디바이스의 프로세서에 의해 실행되는 명령어들이 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하기 위한 장치를 생성하도록, 범용 컴퓨터, 전용 컴퓨터, 임베디드 프로세서, 또는 또다른 프로그래머블 데이터 프로세싱 디바이스의 프로세서를 위해 제공될 수 있다.
이들 컴퓨터 프로그램 명령어들은 컴퓨터 또는 또다른 프로그래머블 데이터 프로세싱 디바이스에 특정 방식으로 동작하도록 명령할 수 있는 컴퓨터 판독가능 메모리에 저장되어, 컴퓨터 판독가능 메모리에 저장된 명령어들이 명령 디바이스를 포함하는 아티펙트(artifact)를 생성하도록 할 수 있다. 명령 디바이스는 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현한다.
이들 컴퓨터 프로그램 명령어들은 컴퓨터 또는 또다른 프로그래머블 데이터 프로세싱 디바이스 상에 로딩되어, 일련의 동작 및 단계가 컴퓨터 또는 또다른 프로그래머블 디바이스 상에서 수행됨으로써 컴퓨터 구현 프로세싱을 생성하도록 할 수 있다. 따라서, 컴퓨터 또는 또다른 프로그래머블 디바이스 상에 실행되는 명령어들은 흐름도의 하나 이상의 프로세스 및/또는 블록도의 하나 이상의 블록에서 특정 기능을 구현하는 단계를 제공한다.
전형적인 구성에서, 컴퓨팅 디바이스는 하나 이상의 프로세서(CPU), 입/출력 인터페이스, 하나 이상의 네트워크 인터페이스, 및 하나 이상의 메모리를 포함한다.
메모리는 비영구적 메모리, 랜덤 액세스 메모리(random access memory; RAM), 및/또는 예를 들어, 판독 전용 메모리(read-only memory; ROM) 또는 플래시 메모리(플래시 RAM)와 같은 컴퓨터 판독가능 매체 내의 비휘발성 메모리를 포함할 수 있다. 메모리는 컴퓨터 판독가능 매체의 예이다.
컴퓨터 판독가능 매체는 임의의 방법 또는 기술을 사용하여 정보를 저장할 수 있는 영구적, 비영구적, 이동식 및 비이동식 매체를 포함한다. 정보는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터일 수 있다. 컴퓨터 저장 매체의 예로는 파라미터 랜덤 액세스 메모리(parameter random access memory; PRAM), 정적 랜덤 액세스 메모리(static random access memory; SRAM), 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM), 다른 유형의 랜덤 액세스 메모리(random access memory; RAM), 판독 전용 메모리(read-only memory; ROM), 전기적 소거가능 프로그래머블 판독 전용 메모리(electrically erasable programmable read-only memory; EEPROM), 플래시 메모리 또는 또다른 메모리 기술, 콤팩트 디스크 판독 전용 메모리(compact disc read-only memory; CD-ROM), 디지털 비디오 디스크(digital versatile disc; DVD) 또는 또다른 광학 저장 장치, 카세트, 카세트 자기 디스크 저장 장치 또는 또다른 자기 저장 디바이스, 또는 임의의 다른 비전송 매체를 포함하지만 이에 한정되지 않는다. 컴퓨터 저장 매체는 컴퓨터 디바이스에 의해 액세스될 수 있는 정보를 저장하는데 사용될 수 있다. 본 명세서에서 설명된 바와 같이, 컴퓨터 판독가능한 매체는 변조된 데이터 신호 및 캐리어와 같은 컴퓨터 판독가능 일시적인 매체(일시적 매체)를 포함하지 않는다.
"포함하다(include, comprise)" 및 이들의 어떤 다른 변형의 용어는 비배타적인 포함(inclusion)을 망라하는 것이 의도되어, 일련의 요소를 포함하는 프로세스, 방법, 제품, 또는 디바이스는 이들 요소를 포함할 뿐만 아니라, 명시적으로 열거되지 않은 다른 요소도 포함하거나 그러한 프로세스, 방법, 제품 또는 디바이스의 고유한 요소를 더 포함한다는 것을 또한 주목할만 하다. "~을 포함한다."가 뒤에 붙는 요소는 더 이상의 제약없이 그 요소를 포함하는 프로세스, 방법, 상품 또는 디바이스에서 추가적인 동일 요소가 더 이상 존재하지 않도록 한다.
기존 기술의 당업자는 본 출원의 구현이 방법, 시스템, 또는 컴퓨터 프로그램 제품으로서 제공될 수 있음을 이해해야 한다. 따라서, 본 출원은 하드웨어 단독 구현예, 소프트웨어 단독 구현예 또는 소프트웨어와 하드웨어의 조합의 구현예를 사용할 수 있다. 또한, 본 출원은 하나 이상의 컴퓨터 사용가능 저장 매체[자기 디스크 메모리, 컴팩트 디스크 판독전용 메모리(compact disc read-only memory; CD-ROM), 및 광학 메모리를 포함하지만 이에 한정되지는 않음] 상에 구현되는 컴퓨터 사용가능 프로그램 코드를 포함한 컴퓨터 프로그램 제품의 형태를 사용할 수 있다.
본 출원은 컴퓨터 모듈과 같은 컴퓨터에 의해 실행되는 컴퓨터 실행가능한 명령어들의 일반적인 문맥으로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 본 애플리케이션은 분산 컴퓨팅 환경에서도 실행될 수 있다. 이들 분산 컴퓨팅 환경에서, 태스크는 통신 네트워크를 사용하여 접속된 원격 프로세싱 디바이스에 의해 실행된다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 저장 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 위치될 수 있다.
본 명세서의 구현예는 점진적인 방식으로 설명된다. 구현예에서 동일하거나 유사한 부분에 대해서는 구현예들을 참조할 수 있다. 각 구현예는 다른 구현예와의 상이점에 중점을 둔다. 특히, 시스템 구현예는 기본적으로 방법 구현예와 유사하므로 간략하게 설명되었다. 관련 부분에 대해서는, 방법 구현예의 부분적인 설명을 참조할 수 있다.
앞선 설명은 단지 본 출원의 구현예이며, 본 출원을 제한하려는 것은 아니다. 당업자는 본 출원에 다양한 수정 및 변형을 이룰 수 있다. 본 출원의 사상 및 원리를 벗어나지 않고 이루어지는 임의의 수정, 등가의 대체 또는 개선은 본 출원의 청구 범위 내에 속하는 것이다.

Claims (10)

  1. 블록체인 합의 방법에 있어서,
    블록체인 내의 노드에 의해 서비스 데이터를 수신하는 단계;
    상기 서비스 데이터의 핸들링 시간을 결정하는 단계;
    상기 핸들링 시간을 포함하는 상기 서비스 데이터를 상기 노드에 의해 저장하는 단계;
    상기 서비스 데이터에 대해 합의가 수행될 필요가 있다고 결정한 것에 응답하여, 상기 핸들링 시간에 기초하여 상기 노드에 의해, 상기 합의가 수행되어야 하는 서비스 데이터를 선택하는 단계; 및
    합의가 수행되어야 하는 상기 선택된 서비스 데이터에 대해 합의를 수행하는 단계
    를 포함하는, 블록체인 합의 방법.
  2. 제 1 항에 있어서,
    상기 서비스 데이터의 핸들링 시간을 결정하는 단계는,
    상기 서비스 데이터가 수신되는 시간을 결정하고, 상기 시간을 상기 서비스 데이터의 핸들링 시간으로 결정하는 단계, 또는
    상기 서비스 데이터가 수신되는 시간에 상기 서비스 데이터를 프로세싱하여 프로세싱 결과를 획득하고, 상기 프로세싱 결과의 생성 시간을 상기 서비스 데이터의 핸들링 시간으로 결정하는 단계
    를 포함하는 것인, 블록체인 합의 방법.
  3. 제 1 항에 있어서,
    상기 서비스 데이터의 핸들링 시간을 결정하는 단계 후에,
    상기 핸들링 시간을 포함하는 상기 서비스 데이터를 상기 블록체인 내의 또다른 노드로 브로드캐스트하는 단계
    를 더 포함하는, 블록체인 합의 방법.
  4. 제 1 항에 있어서,
    상기 노드에 의해 서비스 데이터를 수신하는 단계 및 상기 서비스 데이터의 핸들링 시간을 결정하는 단계는,
    브로드캐스트 방식으로 상기 노드에 의해, 상기 블록체인 내의 또다른 노드에 의해 전송된 서비스 데이터를 수신하는 단계, 및
    상기 노드에 의해, 상기 서비스 데이터에 포함된 핸들링 시간을 상기 서비스 데이터의 핸들링 시간으로 결정하는 단계
    를 포함하는 것인, 블록체인 합의 방법.
  5. 제 1 항에 있어서,
    상기 핸들링 시간에 기초하여 상기 노드에 의해, 합의가 수행되어야 하는 상기 서비스 데이터를 선택하는 단계는, 핸들링 시간의 시간 시퀀스에 기초하여, 상기 서비스 데이터가 저장될 블록의 블록 용량(block capacity)을 만족시키고 합의가 수행되어야 하는 상기 서비스 데이터를 선택하는 단계를 포함하는 것인, 블록체인 합의 방법.
  6. 블록체인 합의 장치에 있어서,
    서비스 데이터를 수신하고 상기 서비스 데이터의 핸들링 시간을 결정하도록 구성된 결정 모듈;
    상기 핸들링 시간을 포함하는 상기 서비스 데이터를 저장하도록 구성된 저장 모듈;
    서비스 데이터에 대해 합의가 수행될 필요가 있다고 결정한 것에 응답하여 상기 핸들링 시간에 기초하여, 합의가 수행되어야 하는 상기 서비스 데이터를 선택하도록 구성된 선택 모듈; 및
    합의가 수행되어야 하는 상기 선택된 서비스 데이터에 대해 합의를 수행하도록 구성된 합의 모듈
    을 포함하는, 블록체인 합의 장치.
  7. 제 6 항에 있어서,
    상기 서비스 데이터의 핸들링 시간을 결정하도록 구성된 상기 결정 모듈은,
    상기 서비스 데이터가 수신되는 시간을 결정하고, 상기 시간을 상기 서비스 데이터의 핸들링 시간으로 결정하는 것, 또는
    상기 서비스 데이터가 수신되는 시간에 상기 서비스 데이터를 프로세싱하여 프로세싱 결과를 획득하고, 상기 프로세싱 결과의 생성 시간을 상기 서비스 데이터의 핸들링 시간으로 결정하는 것
    을 포함하는 것인, 블록체인 합의 장치.
  8. 제 6 항에 있어서,
    상기 서비스 데이터의 핸들링 시간이 결정된 후에 상기 핸들링 시간을 포함하는 상기 서비스 데이터를 상기 블록체인 내의 또다른 노드로 브로드캐스트하도록 구성된 브로드캐스트 모듈
    을 더 포함하는, 블록 체인 합의 장치.
  9. 제 6 항에 있어서,
    상기 서비스 데이터를 수신하고 상기 서비스 데이터의 핸들링 시간을 결정하도록 구성된 상기 결정 모듈은,
    브로드캐스트 방식으로, 상기 블록체인 내의 또다른 노드에 의해 전송된 서비스 데이터를 수신하는 것, 및
    상기 서비스 데이터에 포함된 핸들링 시간을 상기 서비스 데이터의 핸들링 시간으로 결정하는 것
    을 포함하는 것인, 블록체인 합의 장치.
  10. 제 6 항에 있어서,
    상기 핸들링 시간에 기초하여, 합의가 수행되어야 하는 상기 서비스 데이터를 선택하도록 구성된 상기 선택 모듈은, 핸들링 시간의 시간 시퀀스에 기초하여, 상기 서비스 데이터가 저장될 블록의 블록 용량(block capacity)을 만족시키고 합의가 수행되어야 하는 상기 서비스 데이터를 선택하는 것을 포함하는 것인, 블록체인 합의 장치.
KR1020197018685A 2017-03-28 2018-03-26 블록체인 합의 방법 및 디바이스 KR102208186B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710191996.2A CN107450979B (zh) 2017-03-28 2017-03-28 一种区块链共识方法及装置
CN201710191996.2 2017-03-28
PCT/CN2018/080439 WO2018177235A1 (zh) 2017-03-28 2018-03-26 一种区块链共识方法及装置

Publications (2)

Publication Number Publication Date
KR20190091484A true KR20190091484A (ko) 2019-08-06
KR102208186B1 KR102208186B1 (ko) 2021-01-29

Family

ID=60486456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197018685A KR102208186B1 (ko) 2017-03-28 2018-03-26 블록체인 합의 방법 및 디바이스

Country Status (8)

Country Link
US (3) US10797886B2 (ko)
EP (1) EP3547129A4 (ko)
JP (1) JP6876806B2 (ko)
KR (1) KR102208186B1 (ko)
CN (2) CN107450979B (ko)
PH (1) PH12019501499A1 (ko)
TW (1) TWI752118B (ko)
WO (1) WO2018177235A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210125893A (ko) * 2020-04-08 2021-10-19 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 블록 체인에서의 업무 청구 처리 방법, 장치, 기기, 매체 및 프로그램

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107450979B (zh) 2017-03-28 2020-06-02 创新先进技术有限公司 一种区块链共识方法及装置
CN111866008B (zh) 2017-07-14 2022-05-31 创新先进技术有限公司 一种业务数据处理方法、业务处理方法及设备
CN107992356B (zh) * 2017-12-13 2021-09-14 深圳壹账通智能科技有限公司 区块链事务区块处理方法、电子装置及可读存储介质
CN108596619B (zh) * 2018-04-26 2022-11-01 深圳怡化电脑股份有限公司 用于区块链系统的交易方法、装置、中心节点及系统
CN108665363B (zh) * 2018-05-09 2021-08-03 合肥达朴汇联科技有限公司 一种区块链共识达成装置
CN109035016B (zh) * 2018-06-28 2020-10-23 杭州复杂美科技有限公司 一种多链并发交易方法
CN108985011A (zh) * 2018-07-23 2018-12-11 北京聚道科技有限公司 一种基于区块链技术的基因组数据管理方法及系统
CN108900364B (zh) * 2018-08-22 2021-11-26 泰康保险集团股份有限公司 区块链网络的管理方法、装置、介质及电子设备
TWI698100B (zh) * 2018-09-18 2020-07-01 柯賓漢數位金融科技有限公司 多區塊鏈產生及整合方法暨區塊鏈系統
CN111833189A (zh) * 2018-10-26 2020-10-27 创新先进技术有限公司 数据处理方法及装置
CN110008686B (zh) * 2018-11-16 2020-12-04 创新先进技术有限公司 跨区块链的数据处理方法、装置、客户端、区块链系统
CN111291110A (zh) * 2018-12-06 2020-06-16 中国电信股份有限公司 基于区块链网络的共识方法和系统
CN109857751A (zh) * 2019-01-23 2019-06-07 平安科技(深圳)有限公司 基于区块链的跨平台数据更新方法、装置和计算机设备
CN109951290B (zh) * 2019-01-31 2022-03-01 创新先进技术有限公司 一种链式账本的授时认证方法、装置及设备
KR102354776B1 (ko) * 2019-03-04 2022-01-25 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. 트랜잭션 데이터를 처리를 위해 블록체인 시스템에 제공하기 위한 방법 및 디바이스
CN110555079B (zh) * 2019-09-04 2023-09-26 腾讯科技(深圳)有限公司 数据处理方法、装置、设备以及存储介质
CN110545190B (zh) * 2019-09-06 2021-08-13 腾讯科技(深圳)有限公司 一种签名处理的方法、相关装置以及设备
CN110908801B (zh) * 2019-11-12 2022-07-12 金蝶软件(中国)有限公司 基于区块链的数据处理方法、装置、计算机设备和存储介质
CN111131254B (zh) * 2019-12-25 2022-04-15 中国联合网络通信集团有限公司 文件处理方法、区块链节点、区块链和存储介质
CN111259078B (zh) * 2020-01-15 2023-10-10 广州运通链达金服科技有限公司 区块链共识方法、装置、计算机设备和存储介质
US11263216B2 (en) * 2020-01-31 2022-03-01 International Business Machines Corporation Decentralized aggregation and collection of data from multiple sources
CN111461885B (zh) * 2020-03-31 2024-03-19 财付通支付科技有限公司 共识网络管理方法、装置、计算机以及可读存储介质
CN111507719B (zh) * 2020-04-22 2023-04-28 北京众享比特科技有限公司 一种中心化方式动态更新联盟链验证节点的方法和系统
CN111654415B (zh) * 2020-05-28 2021-09-10 腾讯科技(深圳)有限公司 基于区块链的信息处理方法、装置、设备及可读存储介质
CN113256426B (zh) * 2020-05-29 2023-08-04 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
CN111698315B (zh) * 2020-06-09 2021-10-15 腾讯科技(深圳)有限公司 针对区块的数据处理方法、数据处理装置及计算机设备
US11909171B2 (en) 2021-03-31 2024-02-20 Apple Inc. Laser-integrated balance detection for self-mixing interferometry
KR20220137329A (ko) * 2021-04-02 2022-10-12 삼성전자주식회사 블록 체인에 기반하여 블록 합의를 수행하는 전자 장치 및 그 운용 방법
CN113781230A (zh) * 2021-09-24 2021-12-10 支付宝(杭州)信息技术有限公司 基于区块链的交易处理方法和装置
CN115086434B (zh) * 2022-06-14 2024-04-16 中国银行股份有限公司 基于区块链的银行业务办理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002074207A (ja) * 2000-09-04 2002-03-15 Fujitsu Ltd サーバー
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US9529923B1 (en) * 2015-08-28 2016-12-27 Swirlds, Inc. Methods and apparatus for a distributed database within a network
WO2017010455A1 (ja) * 2015-07-13 2017-01-19 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意システム、合意検証装置、契約合意装置、契約合意プログラム及び合意検証プログラム

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7797434B2 (en) * 2002-12-31 2010-09-14 International Business Machines Corporation Method and system for user-determind attribute storage in a federated environment
US7849223B2 (en) * 2007-12-07 2010-12-07 Microsoft Corporation Virtually synchronous Paxos
KR100981856B1 (ko) * 2010-02-26 2010-09-13 현대하이스코 주식회사 도금성이 우수한 고강도 강판 제조 방법
CN102999529B (zh) * 2011-09-16 2015-09-16 腾讯科技(深圳)有限公司 平台间信息共享系统及方法
CN105573732B (zh) * 2014-10-14 2019-06-11 阿里巴巴集团控股有限公司 一种基于分布式系统的业务对象的处理方法和装置
US10409827B2 (en) 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
US10015279B2 (en) * 2014-11-13 2018-07-03 Blackberry Limited Application assignment reconciliation and license management
US9436923B1 (en) * 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
JP5858506B1 (ja) * 2015-04-09 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
US9942046B2 (en) * 2015-05-06 2018-04-10 21, Inc. Digital currency mining circuitry with adaptable difficulty compare capabilities
JP5858507B1 (ja) * 2015-05-18 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
CN105488675B (zh) 2015-11-25 2019-12-24 布比(北京)网络技术有限公司 一种区块链的分布式共享总账构建方法
CN105790954B (zh) * 2016-03-02 2019-04-09 布比(北京)网络技术有限公司 一种构建电子证据的方法和系统
CN105912618B (zh) * 2016-04-07 2019-04-23 浙江万马新能源有限公司 基于区块链的充电桩充电交易通讯方法及装置
CN106446067B (zh) * 2016-09-06 2020-02-18 联动优势科技有限公司 一种获取交易数据的方法和装置
CN106411774A (zh) * 2016-09-06 2017-02-15 联动优势科技有限公司 一种控制交易数据量的方法和装置
CN106534273B (zh) * 2016-10-31 2022-04-15 中金云金融(北京)大数据科技股份有限公司 区块链元数据存储系统及其存储方法与检索方法
PT3539026T (pt) * 2016-11-10 2022-03-08 Swirlds Inc Métodos e aparelhos para uma base de dados distribuída que inclui entradas anónimas
CN106534317B (zh) * 2016-11-17 2019-09-03 杭州云象网络技术有限公司 一种基于区块链技术的灾备云存储系统构建方法
US10862959B2 (en) * 2016-11-28 2020-12-08 Keir Finlow-Bates Consensus system and method for adding data to a blockchain
US10356102B2 (en) * 2017-02-24 2019-07-16 Verizon Patent And Licensing Inc. Permissions using blockchain
US10375105B2 (en) 2017-03-03 2019-08-06 International Business Machines Corporation Blockchain web browser interface
CN107450979B (zh) 2017-03-28 2020-06-02 创新先进技术有限公司 一种区块链共识方法及装置
CN107391527B (zh) * 2017-03-28 2020-03-27 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN107239479B (zh) * 2017-03-28 2020-03-13 创新先进技术有限公司 一种基于区块链的数据存储以及查询的方法及装置
CN113282659A (zh) * 2017-03-28 2021-08-20 创新先进技术有限公司 一种基于区块链的数据处理方法及设备
CN107360206B (zh) * 2017-03-29 2020-03-27 创新先进技术有限公司 一种区块链共识方法、设备及系统
US10102526B1 (en) * 2017-03-31 2018-10-16 Vijay K. Madisetti Method and system for blockchain-based combined identity, ownership, integrity and custody management
CN107450981B (zh) * 2017-05-31 2020-04-24 创新先进技术有限公司 一种区块链共识方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002074207A (ja) * 2000-09-04 2002-03-15 Fujitsu Ltd サーバー
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
WO2017010455A1 (ja) * 2015-07-13 2017-01-19 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意システム、合意検証装置、契約合意装置、契約合意プログラム及び合意検証プログラム
US9529923B1 (en) * 2015-08-28 2016-12-27 Swirlds, Inc. Methods and apparatus for a distributed database within a network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210125893A (ko) * 2020-04-08 2021-10-19 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 블록 체인에서의 업무 청구 처리 방법, 장치, 기기, 매체 및 프로그램

Also Published As

Publication number Publication date
US10797886B2 (en) 2020-10-06
CN107450979A (zh) 2017-12-08
US20200366501A1 (en) 2020-11-19
JP6876806B2 (ja) 2021-05-26
PH12019501499A1 (en) 2020-06-08
JP2020509445A (ja) 2020-03-26
US10785039B2 (en) 2020-09-22
CN111756550B (zh) 2023-08-22
TWI752118B (zh) 2022-01-11
EP3547129A4 (en) 2019-12-11
US20200028692A1 (en) 2020-01-23
US20200145228A1 (en) 2020-05-07
CN111756550A (zh) 2020-10-09
KR102208186B1 (ko) 2021-01-29
EP3547129A1 (en) 2019-10-02
WO2018177235A1 (zh) 2018-10-04
TW201837735A (zh) 2018-10-16
US10887112B2 (en) 2021-01-05
CN107450979B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
KR102208186B1 (ko) 블록체인 합의 방법 및 디바이스
JP6949118B2 (ja) ブロックチェーンサービス受付けおよびコンセンサス方法およびデバイス
AU2019101567A4 (en) Method and apparatus for consensus verification
EP3547648B1 (en) Service processing and consensus method and device
TWI696083B (zh) 一種基於區塊鏈的共識方法及裝置
KR102140414B1 (ko) 블록체인 합의 방법 및 디바이스
JP6675518B1 (ja) サービス要求を処理するための方法およびデバイス
KR102125177B1 (ko) 블록체인 기반 데이터 처리 방법 및 장치
WO2018161901A1 (zh) 一种共识方法及装置
WO2019144809A1 (zh) 一种服务更新方法及装置、系统
CN115129728A (zh) 一种文件校验的方法及装置
JP2019510306A (ja) 分散型サービス処理の完全性をチェックする方法及び装置
CN114912990A (zh) 一种数据处理的方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant