KR102294223B1 - 스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행 - Google Patents

스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행 Download PDF

Info

Publication number
KR102294223B1
KR102294223B1 KR1020197023226A KR20197023226A KR102294223B1 KR 102294223 B1 KR102294223 B1 KR 102294223B1 KR 1020197023226 A KR1020197023226 A KR 1020197023226A KR 20197023226 A KR20197023226 A KR 20197023226A KR 102294223 B1 KR102294223 B1 KR 102294223B1
Authority
KR
South Korea
Prior art keywords
transactions
blockchain network
smart contract
nodes
groups
Prior art date
Application number
KR1020197023226A
Other languages
English (en)
Other versions
KR20200083938A (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 KR20200083938A publication Critical patent/KR20200083938A/ko
Application granted granted Critical
Publication of KR102294223B1 publication Critical patent/KR102294223B1/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/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
    • 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/466Transaction processing
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/3827Use of message hashing
    • 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/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

본 명세서의 구현예들은, 블록체인에서 실행될 복수의 거래들을 식별하는 것 - 거래들은 실행 순서로 배열되고, 거래들은 스마트 계약을 실행할 권한을 부여받은 하나 이상의 계좌를 식별하는 화이트리스트를 각각 갖는 스마트 계약들에 대한 하나 이상의 스마트 계약 호출을 포함하고, 실행 순서는 복수의 거래들 후에 배열된, 화이트리스트를 갖지 않은 스마트 계약에 대한 스마트 계약 호출을 포함함 -; 복수의 거래들 내에서 거래 그룹들을 식별하는 것 - 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하는 것; 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정하는 것; 및 이에 응답하여, 블록체인 네트워크의 노드들에게 화이트리스트를 포함하지 않은 스마트 계약 호출을 실행할 것을 명령하는 것을 포함한다.

Description

스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행
본 발명은 스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행에 관한 것이다.
합의 네트워크(consensus network) 및/또는 블록체인 네트워크(blockchain network)라고도 칭할 수 있는 분산 원장 시스템(distributed ledger system; DLS)은 참여 엔티티들이 데이터를 안전하고 변조불가능하게 저장하는 것을 가능하게 한다. DLS는 일반적으로 임의의 특정 사용자 케이스를 참조하지 않고서 블록체인 네트워크라고 불리운다. 블록체인 네트워크의 유형들의 예시들은 공용(public) 블록체인 네트워크, 사설(private) 블록체인 네트워크, 및 컨소시엄(consortium) 블록체인 네트워크를 포함할 수 있다. 컨소시엄 블록체인 네트워크는 합의 프로세스를 제어하는 엔티티들의 선택된 그룹에 대해 제공되며, 액세스 제어 계층을 포함한다.
스마트 계약(smart contract)은 블록체인 네트워크에 저장되어 있고 블록체인 네트워크에 의해 실행되는 실행가능 소프트웨어 명령어들의 세트이다. 스마트 계약들은 일반적으로 암호화되지 않은 상태로 저장되므로 블록체인 네트워크 내의 모든 참여자들이 볼 수 있다. 블록체인 네트워크 내의 참여자들은 각자의 스마트 계약들을 작성하고 게시할 수 있으며, 일반적으로 블록체인 네트워크 내에 이미 배포되어 있는 스마트 계약들을 호출(call)할 수도 있다.
블록체인 네트워크에서 마주치는 하나의 문제는 거래들(스마트 계약 호출(smart contract call)을 포함함)이 처리되는 속도이다. 일반적으로, 블록체인 네트워크 내의 노드들은 자신들이 제출한 순서대로 거래들을 순차적으로 처리한다. 이것은 낮은 거래 처리량, 및 거래 제출 시점과 거래 청산 시점 사이의 지연을 야기시킬 수 있다.
블록체인 네트워크에서의 이러한 거래 성능 문제들을 해결하기 위한 기술들이 유리할 것이다.
본 명세서의 구현예들은 스마트 계약 화이트리스트에 기초한 블록체인 네트워크 내에서의 거래들의 병렬적 실행을 위한 컴퓨터 구현 방법을 포함한다. 보다 구체적으로, 본 명세서의 구현예들은 공유 의존성을 갖는 거래 그룹들 및 스마트 계약 호출들을 다른 거래 그룹들(groups of transactions)과 병렬적으로 실행하기 위한 기술들에 관한 것이다.
일부 구현예들에서, 동작들은, 블록체인에서 실행될 복수의 거래들을 식별하는 동작 - 거래들은 실행 순서로 배열되고, 거래들은 스마트 계약을 실행할 권한을 부여받은 하나 이상의 계좌를 식별하는 화이트리스트를 각각 갖는 스마트 계약들에 대한 하나 이상의 스마트 계약 호출을 포함하고, 실행 순서는 복수의 거래들 후에 배열된, 화이트리스트를 갖지 않은 스마트 계약에 대한 스마트 계약 호출을 포함함 -; 복수의 거래들 내에서 거래 그룹들을 식별하는 동작 - 각 그룹 내의 거래들은 블록체인 네트워크에서의 특정 계좌들의 세트와 연관되어 있고, 하나 이상의 스마트 계약 호출 각각과 연관된 특정 계좌들의 세트는 스마트 계약 호출과 연관된 화이트리스트에 기초하여 결정됨 -; 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작 - 각 그룹의 거래들을 실행하는 것은 그룹 내의 거래들을 순차적으로 그리고 실행 순서에 따라 실행하는 것을 포함함 -; 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정하는 동작; 및 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정한 것에 응답하여, 블록체인 네트워크의 노드들에게 화이트리스트를 포함하지 않은 스마트 계약 호출을 실행할 것을 명령하는 동작을 포함한다. 다른 구현예들은 컴퓨터 저장 디바이스 상에 인코딩된, 상기 방법의 동작들을 수행하도록 구성된 대응하는 시스템, 장치, 및 컴퓨터 프로그램을 포함한다.
이들 및 다른 구현예들은 각각 다음의 특징들 중 하나 이상을 선택적으로 포함할 수 있다:
일부 경우들에서, 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작은 제1 세트의 노드들에게 제1 거래 그룹을 실행할 것을 명령하고 제1 세트의 노드들에게 제2 거래 그룹을 실행할 것을 명령하는 동작을 포함한다.
일부 구현예들에서, 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정하는 동작은, 복수의 거래들 내의 모든 거래들이 블록체인 네트워크에 의해 유지되는 블록체인에 저장된 하나 이상의 블록에 포함되었다고 결정하는 동작을 포함한다.
일부 경우들에서, 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작은 네트워크를 통해 노드들에게 메시지를 전송하는 동작을 포함한다.
일부 경우들에서, 블록체인에서 실행될 복수의 거래들을 식별하는 동작은 블록체인 네트워크에 브로드캐스트된 거래들을 수신하는 동작을 포함한다.
일부 구현예들에서, 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트 내에 포함된다.
일부 구현예들에서, 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트로부터 분리되어 있다.
일부 구현예들에서, 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌의 식별정보를 포함한다.
일부 경우들에서, 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌를 저장한, 각각의 스마트 계약의 외부 위치에 대한 참조를 포함한다.
본 명세서는 또한, 하나 이상의 프로세서에 결합되고 명령어들이 저장되어 있는 컴퓨터로 판독가능한 비일시적 저장 매체를 제공하며, 상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 여기서 제공된 방법들의 구현예들에 따른 동작들을 수행하게 한다.
본 명세서는 여기서 제공된 방법들을 구현하기 위한 시스템을 더 제공한다. 본 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 결합되고 명령어들이 저장되어 있는 컴퓨터로 판독가능한 저장 매체를 포함하며, 상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 여기서 제공된 방법들의 구현예들에 따른 동작들을 수행하게 한다.
본 명세서에 따른 방법들은 여기서 설명된 양태들 및 특징들의 임의의 조합을 포함할 수 있음을 알 것이다. 즉, 본 명세서에 따른 방법들은 여기서 구체적으로 설명된 양태들 및 특징들의 조합으로 한정되지 않으며, 또한 제공된 양태들 및 특징들의 임의의 조합을 포함한다.
본 명세서의 하나 이상의 구현예들의 상세 내용은 첨부한 도면 및 아래 설명에 기재된다. 본 명세서의 다른 특징들 및 장점들이 상세한 설명과 도면으로부터, 그리고 청구범위로부터 명백해질 것이다.
도 1은 본 명세서의 구현예들을 실행하는데 사용될 수 있는 환경의 예시를 도시한다.
도 2는 본 명세서의 구현예들에 따른 개념적 아키텍처의 예시를 도시한다.
도 3은 본 명세서의 구현예들에 따른 스마트 계약 화이트리스트를 가능하게 하기 위한 환경의 예시를 도시한다.
도 4a는 본 명세서의 구현예들에 따른 블록체인 네트워크에서의 거래들에 대한 실행 순서의 예시를 도시한다.
도 4b는 본 명세서의 구현예들에 따른 블록체인 네트워크에서의 거래들에 대한 병렬적 실행 순서의 예시를 도시한다.
도 5는 본 명세서의 구현예들에 따라 실행될 수 있는 프로세스의 예시를 도시한다.
도 6은 본 명세서의 구현예들에 따른 장치의 모듈들의 예시를 도시한다.
다양한 도면들에서 동일한 참조 심볼들은 동일한 엘리먼트들을 가리킨다.
본 명세서의 구현예들은 스마트 계약들을 위한 계좌 화이트리스트를 강행하기 위한 컴퓨터 구현 방법이 포함된다. 보다 구체적으로, 본 명세서의 구현예들은 스마트 계약을 호출할 수 있는 계좌들을 지정하는 화이트리스트를 스마트 계약의 생성자가 정의할 수 있게 하기 위한 기술들에 관한 것이다.
본 명세서의 구현예들을 위한 추가적인 상황을 제공하기 위해, 위에서 소개한 바와 같이, 합의 네트워크(예를 들어, 피어 투 피어(peer-to-peer) 노드로 구성됨), 및 블록체인 네트워크라고도 칭해질 수 있는 분산 원장 시스템(distributed ledger system; DLS)은 참여 엔티티들이 안전하게 그리고 변조불가능하게 거래(transaction)를 수행하고 데이터를 저장할 수 있게 한다. 여기서 블록체인의 용어는 임의의 특정 사용 케이스를 참조하지 않고서 일반적으로 DLS를 가리키는데 사용된다.
블록체인은 거래들이 변조불가능하고 나중에 검증될 수 있는 방식으로 거래들을 저장하는 데이터 구조이다. 블록체인은 하나 이상의 블록을 포함한다. 체인 내의 각 블록은 이전 블록의 암호화 해시(cryptographic hash)를 포함시킴으로써 체인 내의 바로 앞에 있는 이전 블록에 링크된다. 각 블록은 또한 타임스탬프, 각자의 암호화 해시, 및 하나 이상의 거래를 포함한다. 블록체인 네트워크의 노드들에 의해 이미 검증된 거래들은 해시되고 머클 트리(Merkle tree)로 인코딩된다. 머클 트리는 트리의 리프(leaf) 노드에 있는 데이터가 해시되고, 트리의 각 분기(branch)에 있는 모든 해시들이 분기의 루트(root)에서 연결되는 데이터 구조이다. 이 프로세스는 전체 트리의 루트까지 트리를 진행하여, 트리 내의 모든 데이터를 나타내는 해시를 저장한다. 트리에 저장된 거래의 것이라고 생각되는 해시는 해시를 트리의 구조와 일치하는지 여부를 결정함으로써 신속하게 검증될 수 있다.
블록체인은 거래들을 저장하기 위한 데이터 구조인 반면에, 블록체인 네트워크는 하나 이상의 블록체인을 관리하고, 업데이트하며, 유지하는 컴퓨팅 노드들의 네트워크이다. 위에서 소개한 것처럼, 블록체인 네트워크는 공용 블록체인 네트워크, 사설 블록체인 네트워크, 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다.
공용 블록체인 네트워크에서, 합의 프로세스는 합의 네트워크의 노드들에 의해 제어된다. 예를 들어, 수백 개, 수천 개, 심지어 수백만 개의 엔티티들이 공용 블록체인 네트워크에서 협업할 수 있으며, 이들 각각은 공용 블록체인 네트워크에서 적어도 하나의 노드를 운영한다. 따라서, 공용 블록체인 네트워크는 참여 엔티티들에 대해 공용 네트워크로서 간주될 수 있다. 일부 예시들에서, 블록이 유효하고 블록체인 네트워크의 블록체인(분산 원장)에 추가되기 위해 대다수의 엔티티들(노드들)은 매 블록마다 서명해야 한다. 예시적인 공용 블록체인 네트워크들은 블록체인이라고 칭하는 분산형 원장을 활용하는 특정의 피어 투 피어 결제 네트워크들을 포함한다. 하지만, 위에서 언급했듯이, 블록체인이라는 용어는 일반적으로 임의의 특정 블록체인 네트워크를 특별히 참조하지 않고서 분산 원장을 가리키는데 사용된다.
일반적으로, 컨소시엄 블록체인 네트워크는 참여 엔티티들 사이에서는 사설형이다. 컨소시엄 블록체인 네트워크에서, 합의 프로세스는 권한을 부여받은 노드들의 세트에 의해 제어되고, 하나 이상의 노드는 각각의 엔티티(예를 들어, 금융 기관, 보험 회사)에 의해 운영된다. 예를 들어, 10개의 엔티티들(예를 들어, 금융 기관, 보험 회사)의 컨소시엄이 컨소시엄 블록체인 네트워크를 운영할 수 있으며, 각각의 엔티티들은 컨소시엄 블록체인 네트워크에서 적어도 하나의 노드를 운영한다. 따라서, 컨소시엄 블록체인 네트워크는 참여 엔티티들에 대해 사설 네트워크로서 간주될 수 있다. 일부 예시들에서, 블록이 유효하고 블록체인에 추가되기 위해 각각의 엔티티(노드)는 매 블록마다 서명해야 한다. 일부 예시들에서, 적어도 엔티티들(노드들)의 서브세트(예를 들어, 적어도 7개의 엔티티들)는 블록이 유효하고 블록체인에 추가되도록 하기 위해 매 블록마다 서명해야 한다.
본 명세서의 구현예들은 임의의 적절한 유형의 블록체인 네트워크에서 실현될 수 있다는 것이 구상가능하다.
본 명세서의 구현예들은 상기 상황을 고려하여 본 명세서에서 보다 상세하게 설명된다. 보다 구체적으로, 그리고 위에서 소개한 바와 같이, 본 명세서의 구현예들은 스마트 계약을 호출할 수 있는 계좌들을 지정하는 화이트리스트를 스마트 계약의 생성자가 정의할 수 있게 하기 위한 기술들에 관한 것이다.
일반적으로, 스마트 계약은 블록체인에 저장되고 블록체인 네트워크의 노드들에 의해 실행되는 하나 이상의 컴퓨터 명령어의 세트이다. 스마트 계약을 위한 코드는 일반적으로, 블록체인 네트워크(예를 들어, 바이트코드(bytecode))의 노드들에 의해 실행가능한 형태로 변환되고, 바이트코드 그 자체 또는 스마트 계약 바이트코드를 리트리빙(retrieve)하도록 구성된 바이트코드는 블록체인에 저장된다. 그런 후, 스마트 계약 코드에서 정의된 함수들이 블록체인 네트워크 내의 참여자들에 의해 호출되어, 노드들이 호출된 함수에서 명령어를 실행하게 한다.
본 명세서는 스마트 계약을 호출하는 것이 허가된 블록체인 네트워크 내의 계좌들의 리스트(화이트리스트)를 스마트 계약의 생성자가 지정할 수 있게 하는 기술들을 설명한다. 블록체인 네트워크 내의 참여자가 블록체인 네트워크에 의해 관리되는 블록체인에서 배포된 스마트 계약을 호출하면, 참여자는 상기 호출의 일부로서 계좌를 제공한다. 블록체인 네트워크는 참여자의 계좌에 대한 스마트 계약과 연관된 화이트리스트를 체크한다. 참여자의 계좌가 화이트리스트에 있으면, 블록체인 네트워크는 스마트 계약 호출을 실행한다. 참여자의 계좌가 화이트리스트에 없으면, 블록체인 네트워크는 스마트 계약 호출을 실행하지 않는다. 블록체인 네트워크는 또한 스마트 계약에 액세스하기 위한 참여자의 시도가 실패했다는 기록을 저장할 수 있다.
본 명세서의 구현예들은 공유 의존성을 갖는(즉, 동일한 계좌들에 영향을 미치는) (스마트 계약 호출들을 비롯한) 거래 그룹들을 다른 거래 그룹들과 병렬적으로 실행하는 것에 관한 것이다. 스마트 계약 호출에 영향을 받는 계좌들은 스마트 계약과 연관된 화이트리스트에 기초하여 결정될 수 있다. 상이한 그룹들 내의 거래들은 서로 의존성이 없으므로(예컨대, 블록체인 네트워크 내의 동일한 계좌들에 영향을 미치지 않음), 상이한 그룹들 내의 거래들이 서로 상대적으로 실행되는 순서는 블록체인 네트워크의 전체 상태에 영향을 미치지 않는다. 따라서, 이러한 거래들은 병렬적으로 실행될 수 있어서, 블록체인 네트워크에서 거래 처리량의 증가를 이끌어낼 수 있다.
도 1은 본 명세서의 구현예들을 실행하는데 사용될 수 있는 환경(100)의 예시를 도시한다. 일부 예시들에서, 환경(100)은 엔티티들이 블록체인 네트워크(102)에 참여할 수 있게 한다. 환경(100)은 컴퓨팅 디바이스들(106, 108), 및 네트워크(110)를 포함한다. 일부 예시들에서, 네트워크(110)는 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 또는 이들의 조합을 포함하고, 웹 사이트, 사용자 디바이스(예컨대, 컴퓨팅 디바이스), 및 백엔드 시스템에 연결된다. 일부 예시들에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다. 일부 예시들에서, 네트워크(110)는 블록체인 네트워크(102)와의 그리고 그 내부에서의 통신을 가능하게 한다. 일반적으로, 네트워크(110)는 하나 이상의 통신 네트워크를 나타낸다. 일부 경우들에서, 컴퓨팅 디바이스들(106, 108)은 클라우드 컴퓨팅 시스템(도시되지 않음)의 노드들일 수 있거나, 또는 각각의 컴퓨팅 디바이스(106, 108)는 네트워크에 의해 상호연결되고 분산형 처리 시스템으로서 기능을 하는 복수의 컴퓨터들을 포함하는 개별 클라우드 컴퓨팅 시스템일 수 있다.
도시된 예시에서, 컴퓨팅 시스템들(106, 108)은 블록체인 네트워크(102)에서 노드로서의 참여를 가능하게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 컴퓨팅 디바이스들의 예시들은, 비제한적인 예시로서, 서버, 데스크탑 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을 포함한다. 일부 예시들에서, 컴퓨팅 시스템들(106, 108)은 블록체인 네트워크(102)와 상호작용하기 위한 하나 이상의 컴퓨터 구현 서비스를 호스팅한다. 예를 들어, 컴퓨팅 시스템(106)은 제1 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 참여자들)와의 거래를 관리하기 위해 사용하는 거래 관리 시스템과 같은, 제1 엔티티(예를 들어, 참여자 A)의 컴퓨터 구현 서비스들을 호스팅할 수 있다. 컴퓨팅 시스템(108)은 제2 엔티티가 하나 이상의 다른 엔티티(예를 들어, 다른 참여자들)와의 거래를 관리하기 위해 사용하는 거래 관리 시스템과 같은, 제2 엔티티(예를 들어, 참여자 B)의 컴퓨터 구현 서비스들을 호스팅할 수 있다. 도 1의 예시에서, 블록체인 네트워크(102)는 노드들의 피어 투 피어 네트워크로서 표현되고, 컴퓨팅 시스템들(106, 108)은 블록체인 네트워크(102)에 참여하는 제1 엔티티 및 제2 엔티티의 노드들을 각각 제공한다.
도 2는 본 명세서의 구현예들에 따른 개념적 아키텍처(200)의 예시를 도시한다. 개념적 아키텍처(200)의 예시는 참여자 A, 참여자 B, 및 참여자 C에 각각 대응하는 참여자 시스템들(202, 204, 206)을 포함한다. 각 참여자(예를 들어, 사용자, 기업)는 복수의 노드들(214)을 포함하는 피어 투 피어 네트워크로서 제공되는 블록체인 네트워크(212)에 참여하며, 이 노드들 중 적어도 일부는 블록체인(216)에 정보를 변조불가능하게 기록한다. 단일 블록체인(216)이 블록체인 네트워크(212) 내에서 개략적으로 도시되어 있지만, 본 명세서에서 더 설명되는 바와 같이, 블록체인(216)의 복수의 복사본들이 제공되고, 블록체인 네트워크(212)에 걸쳐 유지된다.
도시된 예시에서, 각 참여자 시스템(202, 204, 206)은 각각 참여자 A, 참여자 B, 및 참여자 C에 의해 또는 이를 대표하여 제공되며, 블록체인 네트워크 내의 각각의 노드(214)로서 기능한다. 본 명세서에서 사용되는 바와 같이, 노드는 일반적으로 블록체인 네트워크(212)에 연결되어 있는 개별 시스템(예를 들어, 컴퓨터, 서버)을 지칭하고, 각 참여자가 블록체인 네트워크에 참여할 수 있게 한다. 도 2의 예시에서, 참여자는 각 노드(214)에 대응한다. 그러나, 참여자는 블록체인 네트워크(212) 내의 복수의 노드들(214)을 운영할 수 있고, 및/또는 복수의 참여자들은 노드(214)를 공유할 수 있는 것이 구상가능하다. 일부 예시들에서, 참여자 시스템들(202, 204, 206)은 프로토콜(예를 들어, 하이퍼텍스트 전송 프로토콜 보안(hypertext transfer protocol secure; HTTPS))을 사용하고, 및/또는 원격 프로시저 호출(remote procedure call; RPC)을 사용하여 블록체인 네트워크(212)와, 또는 이를 통해 통신한다.
노드(214)는 블록체인 네트워크(212) 내에서 다양한 참여도를 가질 수 있다. 예를 들어, 일부 노드(214)는 (예를 들어, 블록체인(216)에 블록들을 추가시키는 채굴(miner) 노드로서) 합의 프로세스에 참여할 수 있는 반면에, 다른 노드(214)는 합의 프로세스에 참여하지 않는다. 다른 예시로서, 일부 노드(214)는 블록체인(216)의 완전한 복사본을 저장하는 반면에, 다른 노드(214)는 블록체인(216)의 일부분의 복사본만을 저장한다. 예를 들어, 데이터 액세스 권한은 각각의 참여자가 그 각각의 시스템 내에 저장하는 블록체인 데이터를 제한시킬 수 있다. 도 2의 예시에서, 참여자 시스템들(202, 204, 206)은 블록체인(216)의 각각의 완전한 복사본들(216', 216'', 216''')을 저장한다.
블록체인(예를 들어, 도 2의 블록체인(216))은 블록들의 체인으로 구성되며, 각각의 블록은 데이터를 저장한다. 데이터의 예시들은 둘 이상의 참여자들 간의 거래를 나타내는 거래 데이터를 포함한다. 비 한정적인 예시로서 거래들이 본 명세서에서 사용되지만, 임의의 적절한 데이터(예를 들어, 문서, 이미지, 비디오, 오디오)가 블록체인에 저장될 수 있는 것이 구상가능하다. 거래들의 예시들은, 비제한적인 예시로서, 가치있는 어떤 것(예를 들어, 자산, 제품, 서비스, 통화)의 교환이 포함될 수 있다. 거래 데이터는 블록체인 내에 변조불가능하게 저장된다. 즉, 거래 데이터는 변경될 수 없다.
거래 데이터는, 블록에 저장되기 전에, 해싱(hash)된다. 해싱은 거래 데이터(문자열 데이터로서 제공됨)를 고정된 길이의 해시값(문자열 데이터로서 또한 제공됨)으로 변환하는 프로세스이다. 거래 데이터를 획득하기 위해 해시값을 해싱해제(un-hash)하는 것은 불가능하다. 해싱은 거래 데이터에 약간의 변화가 있어도 완전히 상이한 해시값을 갖도록 한다. 또한, 상술한 바와 같이, 해시값은 고정된 길이를 갖는다. 즉, 거래 데이터의 크기와 상관없이 해시값의 길이는 고정되어 있다. 해싱에는 해시 함수를 통해 거래 데이터를 처리하여 해시값을 생성하는 처리가 포함된다. 해시 함수의 예시들은, 비제한적인 예시로서, 256 비트 해시값들을 출력하는 SHA(Secure Hash Algorithm)-256을 포함한다.
다중 거래들의 거래 데이터가 해시되고 블록에 저장된다. 예를 들어, 두 개의 거래들의 해시값들이 제공되고, 다른 해시를 제공하기 위해 그 자체가 해시된다. 이 프로세스는, 모든 거래들이 블록에 저장되고, 단일 해시값이 제공될 때까지 반복된다. 이 해시값을 머클 루트 해시라고 부르며, 블록의 헤더에 저장된다. 거래들 중 임의의 거래가 변경되면 그 해시값이 변경되고, 궁극적으로 머클 루트 해시가 변경된다.
블록들이 합의 프로토콜을 통해 블록체인에 추가된다. 블록체인 네트워크 내의 여러 노드들이 합의 프로토콜에 참여하고, 블록을 블록체인에 추가하기 위해 경쟁한다. 이러한 노드들을 채굴자(또는 채굴 노드)라고 부른다. 위에서 소개된 POW는 비제한적 예시로서 사용된 것이다.
채굴 노드들은 합의 프로세스를 실행하여 거래들을 블록체인에 추가한다. 복수의 채굴 노드들이 합의 프로세스에 참여하지만, 단하나의 채굴 노드만이 블록을 블록체인에 기입할 수 있다. 즉, 채굴 노드들은 합의 프로세스에서 각자의 블록을 블록체인에 추가하기 위해 경쟁한다. 보다 상세하게, 채굴 노드는 거래 풀(transaction pool)로부터 (예를 들어, 존재하는 경우, 블록에 포함될 수 있는 거래들의 횟수에 대한 미리정의된 제한까지) 계류중인 거래들을 주기적으로 수집한다. 거래 풀은 블록체인 네트워크 내의 참여자들로부터의 거래 메시지들을 포함한다. 채굴 노드는 블록을 구축하고, 거래들을 블록에 추가한다. 블록에 거래들을 추가하기 전에, 채굴 노드는 블록체인의 블록에 임의의 거래들이 이미 포함되어 있는지 여부를 체크한다. 거래가 다른 블록에 이미 포함되어 있으면, 그 거래는 폐기된다.
채굴 노드는 블록 헤더를 생성하고, 블록 내의 모든 거래들을 해싱하고, 블록 내의 모든 거래들에 대해 단일 해시값이 제공될 때까지 해시값을 쌍으로 결합하여 추가적인 해시값들을 생성한다(머클 루트 해시). 이 해시는 블록 헤더에 추가된다. 또한 채굴 노드는 블록체인에서 가장 최근의 블록(즉, 블록체인에 추가된 최종 블록)의 해시값을 결정한다. 채굴 노드는 또한 논스(nonce) 값과 타임스탬프를 블록 헤더에 추가한다. 채굴 프로세스에서, 채굴 노드는 필요한 파라미터들을 만족시키는 해시값을 찾기를 시도한다. 채굴 노드는 필요한 파라미터들을 만족시키는 해시값을 찾을 때까지 논스 값을 계속 변경한다.
블록체인 네트워크 내의 모든 채굴 노드는 필요한 파라미터들을 만족시키는 해시값을 찾기를 시도하며, 이와 같이 서로 경쟁한다. 결국, 채굴 노드들 중 하나는 필요한 파라미터들을 만족시키는 해시값을 찾아내고, 이를 블록체인 네트워크 내의 다른 모든 채굴 노드들에게 알린다. 다른 채굴 노드들은 해시값을 검증하고, 올바른 것이라고 결정되면, 블록 내의 각 거래를 검증하고, 블록을 수락하며, 그런 후 해당 블록을 블록체인의 각자의 복사본에 추가한다. 이러한 방식으로, 블록체인의 글로벌 상태(global state)는 블록체인 네트워크 내의 모든 채굴 노드들에 걸쳐 일관된다. 위에서 설명한 프로세스는 POW 합의 프로토콜이다.
비 한정적인 예시가 도 2를 참조하여 제공된다. 이 예시에서, 참여자 A는 금액을 참여자 B에게 보내기를 원한다. 참여자 A는 거래 메시지(예컨대, 보낸 사람, 받는 사람, 및 값 필드들을 포함함)를 생성하고, 거래 메시지를 블록체인 네트워크에 보내고, 블록체인 네트워크는 거래 메시지를 거래 풀에 추가한다. 블록체인 네트워크 내의 각 채굴 노드는 블록을 생성하고, 거래 풀로부터 (예컨대, 존재하는 경우, 블록에 추가될 수 있는 거래의 횟수에 대한 미리정의된 제한까지) 모든 거래들을 가져오며, 거래들을 블록에 추가한다. 이 방식으로 참여자 A가 게시한 거래가 채굴 노드들의 블록들에 추가된다.
일부 블록체인 네트워크들에서, 거래들의 프라이버시를 유지하기 위해 암호화가 구현된다. 예를 들어, 블록체인 네트워크 내의 다른 노드들이 거래의 세부사항을 식별할 수 없도록 두 개의 노드들이 거래를 비공개로 유지하기를 원하면, 이 노드들은 거래 데이터를 암호화할 수 있다. 암호화 방법의 예시들은, 비제한적인 예시로서, 대칭 암호화와 비대칭 암호화를 포함한다. 대칭 암호화는 암호화(평문으로부터 암호문을 생성) 및 암호해독(암호문으로부터 평문을 생성) 둘 다를 위해 단일키를 사용하는 암호화 프로세스를 가리킨다. 대칭 암호화에서는, 동일한 키가 여러 노드들에 대해 이용가능할 수 있으므로, 각 노드는 거래 데이터를 암호화/암호해독할 수 있다.
비대칭 암호화는 개인키와 공개키를 각각 포함하는 키 쌍을 사용하며, 개인키는 각각의 노드에만 알려져 있고, 공개키는 블록체인 네트워크 내의 임의의 또는 모든 노드들에 알려져 있다. 노드는 다른 노드의 공개키를 사용하여 데이터를 암호화할 수 있으며, 암호화된 데이터는 다른 노드의 개인키를 사용하여 암호해독될 수 있다. 예를 들어, 도 2를 다시 참조하면, 참여자 A는 참여자 B의 공개키를 사용하여 데이터를 암호화하고, 암호화된 데이터를 참여자 B에게 보낼 수 있다. 참여자 B는 자신의 개인키를 사용하여 암호화된 데이터(암호문)를 암호해독하고, 원래의 데이터(평문)를 추출할 수 있다. 노드의 공개키로 암호화된 메시지들은 노드의 개인키를 사용해서만 암호해독될 수 있다.
비대칭 암호화는 디지털 서명(digital signature)을 제공하는데 사용되는데, 이러한 디지털 서명은 거래에서의 참여자들이 거래에서의 다른 참여자들뿐만 아니라 거래의 유효성을 확인할 수 있게 한다. 예를 들어, 노드는 메시지에 디지털 서명하고, 다른 노드는 참여자 A의 디지털 서명에 기초하여 상기 메시지가 상기 노드에 의해 보내졌다는 것을 확인할 수 있다. 디지털 서명은 또한 메시지들이 전송 중에 변조되지 않도록 보장하는데 사용될 수 있다. 예를 들어, 도 2를 다시 참조하면, 참여자 A는 메시지를 참여자 B에 보낼 예정이다. 참여자 A는 메시지의 해시를 생성하고, 그런 후, 자신의 개인키를 사용하여, 해시를 암호화하여 암호화된 해시로서 디지털 서명을 제공한다. 참여자 A는 전자 서명을 메시지에 첨부하고, 디지털 서명이 있는 메시지를 참여자 B에게 보낸다. 참여자 B는 참여자 A의 공개키를 사용하여 디지털 서명을 암호해독하고, 해시를 추출한다. 참여자 B는 메시지를 해시하고 해시들을 비교한다. 해시들이 동일하면, 참여자 B는 해당 메시지가 실제로 참여자 A로부터 온 것이였고, 변조되지 않았음을 확인할 수 있다.
도 3은 본 명세서의 구현예들에 따른 스마트 계약 화이트리스트를 가능하게 하기 위한 환경(300)의 예시를 도시한다. 도시된 바와 같이, 스마트 계약(302)은 도 2의 블록체인 네트워크(212)의 블록체인(216)에 저장된다. 스마트 계약(302)은 명령어들(304) 및 화이트리스트(306)를 포함한다. 화이트리스트(306)는 하나 이상의 계좌(308)를 포함한다.
전술한 바와 같이, 스마트 계약(302)은 블록체인(216)에 저장된다. 블록체인 네트워크(212) 내의 참여자들은 스마트 계약(302)을 호출할 수 있으며, 이 스마트 계약(302)은 블록체인 네트워크(212)의 노드들(214)이 명령어들(304)을 실행하게 할 수 있다. 일부 구현예들에서, 블록체인 네트워크의 노드들(214)은 스마트 계약의 호출자에 의해 지정된 계좌가 화이트리스트(306)에 의해 지정된 하나 이상의 계좌(308) 내에 포함되는지 여부를 체크할 것이다. 계좌가 화이트리스트(306) 내에 있으면, 노드들(214)은 명령어들(304)을 실행한다. 계좌가 화이트리스트(306) 내에 있지 않으면, 노드들(214)은 명령어들(304)을 실행하지 않는다.
일부 구현예들에서, 명령어들(304)은 예를 들어, Solidity, Serpent, LLL, Viper, Mutan, C, C++, Python, Java, Javascript, 또는 기타 프로그래밍 언어들과 같은, 블록체인 네트워크(212)의 노드들(214)에 의해 지원되는 하이 레벨 프로그래밍 언어로 작성된 소프트웨어 코드일 수 있다. 명령어들(304)은 또한 스마트 계약(302)과 연관된 소프트웨어 코드로부터 생성된 바이트코드로 컴파일링될 수 있다.
일부 구현예들에서, 화이트리스트(306)와 계좌들(308)은 스마트 계약(302)과 함께 블록체인(216)에 저장된다. 일부 경우들에서, 화이트리스트(306)와 계좌들(308)은 스마트 계약(302)의 명령어들(304) 내에 포함된다. 예를 들어, 화이트리스트(306)는 프리 프로세서 명령어 또는 특수하게 포맷화된 코멘트와 같은, 명령어들(304)에서의 지시어 내에 포함될 수 있다. 화이트리스트(306)는 또한 함수 데코레이터(function decorator)와 같은, 스마트 계약을 작성하는데 사용되는 프로그래밍 언어에 특유한 구조를 사용하여 포함될 수 있다. 화이트리스트(306)는 또한 명령어들(304) 내의 실행가능 명령어들에서 지정될 수 있다. 일부 구현예들에서, 화이트리스트(306)는 노드들(214)이 명령어들(304)을 실행하기 전에 검사된다. 화이트리스트(306)가 실행가능 명령어들에 포함되는 것과 같은 일부 경우들에서, 노드들(214)은 화이트리스트(306)를 평가하기 전에 명령어들(304)의 실행을 시작할 수 있다. 예를 들어, 스마트 계약(302)은 호출자의 계좌를 파라미터로서 취하고 호출자가 스마트 계약을 호출할 권한을 부여받았는지를 화이트리스트(306)에 기초하여 검증하는 명령어들(304)로 정의된 사설형 함수(private function)를 포함할 수 있다. 이러한 함수는, 스마트 계약(302)이 실행될 때 자동으로 호출될 수 있고, 호출자의 계좌가 계약을 실행할 권한을 부여받지 않은 경우 스마트 계약(302)은 단순히 종료될 수 있다. 일부 경우들에서, 스마트 계약(302)을 실행하고 있는 노드(214)는, 사설형 함수를 호출하여 화이트리스트(306)를 체크하고, 호출자의 계좌가 스마트 계약(302)을 실행할 권한을 부여받았다는 것을 사설형 함수에 대한 호출이 나타내는 경우에만 스마트 계약(302)의 주요 함수를 실행할 수 있다.
도 4a는 본 명세서의 구현예들에 따른 블록체인 네트워크에서의 거래들에 대한 실행 순서(400)의 예시를 도시한다. 도시된 바와 같이, 실행 순서(400)는 복수의 거래들(405, 410, 415, 420)을 포함하며, 이 거래들은 블록체인 네트워크의 노드들에 의해 실행될 순서에 따라 순서화되어 있다. 거래(405a, 405b, 405c)는 스마트 계약들에 대한 호출들이다. 스마트 계약 호출들에 더하여, 실행 순서(400)는 예를 들어, 동일한 계좌 또는 계좌들에 영향을 미치는 것과 같은, 공통 의존성(교차 해칭(cross hatching)으로 표시됨)을 공유하는 거래들의 다중 그룹들을 포함한다. 스마트 계약 호출들(405a, 405b)은, 스마트 계약을 실행할 수 있고 이에 따라 스마트 계약에 의해 각자의 상태를 변경시킬 수 있는 계좌들을 정의하는, 각자의 화이트리스트의 내용에 기초하여 다른 거래들과 함께 그룹화된다. 이하에서 설명하는 바와 같이, 각 거래 그룹은 본 명세서의 구현예들에 따라 블록체인 네트워크의 노드들에 의해 병렬적으로 실행될 수 있다.
도 4b는 본 명세서의 구현예들에 따른 블록체인 네트워크에서의 거래들에 대한 병렬적 실행 순서(450)의 예시를 도시한다. 도시된 바와 같이, 병렬적 실행 순서(450)에서, 거래 그룹들(455, 460, 465)이 식별되었다. 블록체인 네트워크의 노드들은 도 4b에 도시되고 전술한 바와 같이, 거래 그룹들을 병렬적으로 실행할 수 있다. 일부 경우들에서, 그룹 내의 모든 거래들은 공통 의존성을 공유하며, 이에 따라 원래의 실행 순서에 따라 순차적으로 실행된다. 이것은, 블록체인 네트워크의 상태(예를 들어, 계좌 잔고)가, 도 4a에서의 실행 순서(400)에 따라 거래들을 실행한 후에 병렬적 실행 순서(450)에 따라 거래들을 실행한 결과와 동일하게 되는 것을 보장한다.
도 4b에서 임의의 거래들을 실행하기 전에 계좌 A는 $0의 잔고를 갖고, 거래(410a)는 계좌 B로부터 계좌 A로의 $400의 금액의 지불을 나타내고, 거래(410b)는 계좌 A로부터 계좌 C로의 $50의 지불을 나타내는 예시를 상정한다. 거래들(410a, 410b)이 (실행 순서(400)에서 원래 설명된 바와 같이) 순차적으로 실행되면, 계좌 A는 먼저 $400의 자금을 조달받고, 그 후에 $50가 인출되어, $350의 잔고를 남길 것이다. 그러나, 거래들(410a, 410b)이 순차적으로 실행되지 않고, 거래(410b)가 거래(410a) 전에 실행되면, 거래(410b)의 지불이 실행될 때 계좌 A는 $0의 잔고를 가질 것이다. 이 시나리오에서 계좌 A는 지불 자금을 조달하기에 불충분한 잔고를 가질 것이며, 이는 거래(410b)가 블록체인 네트워크에 의해 거부되는 것으로 이어질 수 있다.
이 예시를 기반으로 하여, 거래(420a)가 계좌 D로부터 계좌 E로의 $100의 지불을 나타내는 경우를 상정한다. 거래(420a)에 의해 영향을 받는 계좌들(계좌 D와 계좌 E)은 거래들(410a, 410b)에 의해 영향을 받는 계좌들(계좌 A, 계좌 B, 계좌 C) 중 어느 것도 포함하지 않기 때문에, 거래(420a)는 거래들(410a, 410b)과 공통 의존성을 갖지 않는다. 따라서, 거래(420a)는 거래들(410a, 410b)과 병렬적으로 실행될 수 있다.
스마트 계약 호출들(예컨대, 405a~405c)은, 스마트 계약의 실행이 영향을 미칠 계좌들이 스마트 계약 자체에 기초하여 결정가능하지 않을 수 있다는 점에서 다른 유형들의 거래들과는 상이하다. 스마트 계약은 블록체인 네트워크 내의 임의의 참여자에 의해 호출될 수 있는 실행가능 소프트웨어 프로그램이기 때문에, 이는 이론적으로 블록체인 네트워크 내의 모든 계좌들에 영향을 미칠 수 있다. 그러나, 위에서 설명된 화이트리스트의 추가로 인해, 특정 스마트 계약이 영향을 미칠 수 있는 계좌들이 결정될 수 있다. 화이트리스트에 있는 계좌들만이 스마트 계약을 실행할 수 있게 하기 때문에, 이러한 계좌들만이 스마트 계약의 실행에 의해 각자의 상태(예컨대, 잔고)를 변경시킬 가능성을 갖는다. 따라서, 화이트리스트는 동일한 계좌들에 영향을 미치는 다른 거래들과 더불어 스마트 계약 호출들을 블록체인 네트워크에서의 병렬적 실행을 위해 그룹화될 수 있게 해준다.
일부 구현예들에서, 순차적으로 실행될 거래들은 함께 그룹화될 수 있다. 예를 들어, 도 4b에서 도시된 바와 같이, 거래들(410a~410b)과 스마트 계약 호출(405b)은 그룹(455)으로 그룹화되고, 거래들(415a~415e)은 그룹(460)으로 그룹화되며, 거래들(420a~420c)과 스마트 계약 호출(405a)은 그룹(465)으로 그룹화된다. 그룹들(455, 460, 465) 각각은 블록체인 네트워크의 노드들에 의해 병렬적으로 실행될 수 있다. 거래 그룹들(455, 460, 465)을 병렬적으로 실행하는 것은, 모든 거래들이 순차적으로 실행되는 경우에는 블록체인 네트워크가 한 번에 하나의 거래만을 실행하였지만, 이제는 한 번에 세 개의 거래들을 병렬적으로 실행하기 때문에, 블록체인 네트워크 상에서의 거래 처리량의 증가로 이어질 수 있다.
일부 구현예들에서, 스마트 계약이 화이트리스트를 포함하지 않은 경우, 블록체인 네트워크 내의 어떠한 계좌도 스마트 계약을 실행할 수 있다. 스마트 계약 호출(405c)은 화이트리스트를 지정하지 않은 스마트 계약 호출이다. 스마트 계약 호출(405c)은 블록체인 네트워크 내의 어떠한 계좌에 의해서도 실행될 수 있기 때문에, 다른 거래들과 병렬적으로 실행될 수 없다. 스마트 계약 호출(405c)은 병렬적 실행이 수렴하는 동기화 포인트를 나타낸다. 계약 호출들은 스마트 계약을 구성하는 명령어들의 실행으로 이어지기 때문에, 특정 계약 호출이 영향을 미칠 계좌들의 범위를 결정하는 것은 가능하지 못할 수 있다. 예를 들어, 특정 계좌와 지불 금액을 파라미터로서 취하고, 일부 조건이 참이면 특정 계좌에 지불 금액을 적용하는 단순한 스마트 계약을 상정한다. 이 스마트 계약의 호출자는 스마트 계약이 호출될 때 특정 계좌를 지정하기 때문에, 스마트 계약 자체의 정의(즉, 그 소스 코드)로부터는, 스마트 계약에 대한 특정 호출이 영향을 미칠 계좌들을 결정하는 것은 가능하지 않다. 이러한 이유 때문에, 일부 구현예들에서, 계약 호출은 블록체인 네트워크 내의 모든 계좌들에 영향을 미칠 가능성을 갖는 거래로서 간주될 수 있으므로, 다른 거래들과 병렬적으로 실행될 수 없다. 따라서, 병렬적 실행 순서(450)는 계약 호출(405c)에 도달할 때 수렴한다. 예를 들어, 도시된 바와 같이, 그룹들(455, 460, 465)은 계약 호출(405c)에 도달할 때까지 병렬적으로 실행된다. 이 때, 블록체인 네트워크는 그룹들(455, 460, 465) 내의 모든 거래들이 실행을 완료할 때까지 기다리고, 그 후에 스마트 계약 호출(405c)의 실행을 진행한다.
도 5는 본 명세서의 구현예들에 따라 실행될 수 있는 프로세스(500)의 예시를 도시한다. 일부 구현예들에서, 프로세스(500)는 하나 이상의 컴퓨팅 디바이스를 사용하여 실행되는 하나 이상의 컴퓨터 실행가능 프로그램을 사용하여 수행될 수 있다.
단계(502)에서, 블록체인에서 실행될 복수의 거래들이 식별된다. 거래들은 실행 순서로 배열되고, 스마트 계약을 실행할 권한을 부여받은 하나 이상의 계좌를 식별하는 화이트리스트를 각각 갖는 스마트 계약들에 대한 하나 이상의 스마트 계약 호출을 포함할 수 있다. 실행 순서는 복수의 거래들 후에 배열된, 화이트리스트를 갖지 않은 스마트 계약에 대한 스마트 계약 호출을 포함한다. 일부 경우들에서, 블록체인에서 실행될 복수의 거래들을 식별하는 것은 블록체인 네트워크에 브로드캐스트된 거래들을 수신하는 것을 포함한다. 일부 구현예들에서, 각각의 스마트 계약에 대한 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트 내에 포함된다. 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트로부터 분리될 수 있다. 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌의 식별정보를 포함할 수 있다. 일부 경우들에서, 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌를 저장한, 각각의 스마트 계약의 외부 위치에 대한 참조를 포함한다.
단계(504)에서, 복수의 거래들 내에서 거래 그룹들이 식별되고, 각 그룹 내의 거래들은 블록체인 네트워크에서의 특정 계좌들의 세트와 연관되어 있고, 하나 이상의 스마트 계약 호출 각각과 연관된 특정 계좌들의 세트는 스마트 계약 호출과 연관된 화이트리스트에 기초하여 결정된다.
단계(506)에서, 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령한다. 각 그룹의 거래들을 실행하는 것은 그룹 내의 거래들을 순차적으로 그리고 실행 순서에 따라 실행하는 것을 포함한다. 일부 경우들에서, 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하는 것은 제1 세트의 노드들에게 제1 거래 그룹을 실행할 것을 명령하고 제1 세트의 노드들에게 제2 거래 그룹을 실행할 것을 명령하는 것을 포함한다. 일부 경우들에서, 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하는 것은 네트워크를 통해 노드들에게 메시지를 전송하는 것을 포함한다.
단계(508)에서, 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다는 결정이 행해진다. 일부 경우들에서, 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정하는 것은, 복수의 거래들 내의 모든 거래들이 블록체인 네트워크에 의해 유지되는 블록체인에 저장된 하나 이상의 블록에 포함되었다고 결정하는 것을 포함한다.
단계(510)에서, 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정한 것에 응답하여, 블록체인 네트워크의 노드들에게 화이트리스트를 포함하지 않은 스마트 계약 호출을 실행할 것을 명령한다.
도 6은 본 명세서의 구현예들에 따른 장치(600)의 모듈들의 예시들을 도시한다. 장치(500)는 컨소시엄 블록체인 네트워크와 같은, 블록체인 네트워크에서 거래들의 병렬적 실행을 가능하게 하도록 구성된 장치의 예시적인 구현예일 수 있다. 장치(600)는 전술한 구현예들에 대응할 수 있고, 장치(600)는 다음을 포함한다: 블록체인에서 실행될 복수의 거래들을 식별하는 제1 식별자 또는 제1 식별 유닛(602) - 거래들은 실행 순서로 배열되고, 거래들은 스마트 계약을 실행할 권한을 부여받은 하나 이상의 계좌를 식별하는 화이트리스트를 각각 갖는 스마트 계약들에 대한 하나 이상의 스마트 계약 호출을 포함하고, 실행 순서는 복수의 거래들 후에 배열된, 화이트리스트를 갖지 않은 스마트 계약에 대한 스마트 계약 호출을 포함함 -; 복수의 거래들 내에서 거래 그룹들을 식별하기 위한 제2 식별자 또는 제2 식별 유닛(604) - 각 그룹 내의 거래들은 블록체인 네트워크에서의 특정 계좌들의 세트와 연관되어 있고, 하나 이상의 스마트 계약 호출 각각과 연관된 특정 계좌들의 세트는 스마트 계약 호출과 연관된 화이트리스트에 기초하여 결정됨 -; 블록체인 네트워크의 노드들에게 거래 그룹들 각각을 병렬적으로 실행할 것을 명령하기 위한 제1 명령기 또는 제1 명령 유닛(606) - 각 그룹의 거래들을 실행하는 것은 그룹 내의 거래들을 순차적으로 그리고 실행 순서에 따라 실행하는 것을 포함함 -; 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정하기 위한 결정기 또는 결정 유닛(608); 및 블록체인 네트워크의 노드들이 거래 그룹들 모두를 실행하는 것을 완료했다고 결정한 것에 응답하여 블록체인 네트워크의 노드들에게 화이트리스트를 포함하지 않은 스마트 계약 호출을 실행할 것을 명령하기 위한 제2 명령기 또는 제2 명령 유닛(610).
상기 구현예들에서 예시된 시스템, 장치, 모듈, 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용하여 구현될 수 있거나, 또는 특정 기능을 갖는 제품을 사용하여 구현될 수 있다. 일반적인 구현 디바이스는 컴퓨터이고, 컴퓨터는 퍼스널 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트폰, 개인 휴대 정보 단말기, 미디어 플레이어, 네비게이션 디바이스, 이메일 송수신 디바이스, 게임 콘솔, 태블릿 컴퓨터, 착용가능형 디바이스, 또는 이들 디바이스들의 임의의 조합일 수 있다.
장치 내의 각각의 유닛의 기능 및 역할의 구현 프로세스에 대해서는, 상기 방법에서의 대응하는 단계들의 구현 프로세스를 참조할 수 있다. 여기서는 간략화를 위해 상세한 설명을 생략한다.
장치 구현예는 기본적으로 방법 구현예에 대응하므로, 관련된 부분들에 대해서는, 방법 구현예에서의 관련 설명들을 참조할 수 있다. 전술된 장치 구현예는 단지 예시에 불과할 뿐이다. 분리된 파트들로서 설명된 유닛들은 물리적으로 분리되거나 그렇지 않을 수 있고, 유닛들로서 디스플레이된 파트들은 물리적 유닛들일 수 있거나 그렇지 않을 수 있고, 하나의 포지션에 위치될 수 있거나, 또는 복수의 네트워크 유닛들 상에 분산될 수 있다. 모듈들의 일부 또는 전부는 본 명세서의 해결책의 목적을 달성하기 위해 실제 요구에 기초하여 선택될 수 있다. 당업자는 독창적인 노력없이 본 출원의 구현예들을 이해하고 구현할 수 있다.
다시 도 6을 참조하면, 이는 블록체인 네트워크에서 거래들의 병렬적 실행을 가능하게 하기 위한 장치의 내부 기능 모듈 및 구조를 설명하는 것으로 해석될 수 있다. 병렬적 실행 장치는 블록체인 네트워크에서 거래들의 병렬적 실행을 가능하게 하도록 구성된 장치의 예시일 수 있다.
본 명세서에서 설명된 발명내용 및 액션들 및 동작들의 구현들은 본 명세서에서 개시된 구조들 및 이들의 구조적 등가물을 비롯하여, 디지털 전자 회로부, 유형적 실체화된 컴퓨터 소프트웨어 또는 펌웨어로, 컴퓨터 하드웨어로, 또는 이들의 하나 이상의 조합으로 구현될 수 있다. 본 명세서에서 설명된 발명내용의 구현예들은 데이터 처리 장치에 의한 실행을 위하거나 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 프로그램 캐리어 상에 인코딩된, 하나 이상의 컴퓨터 프로그램, 예컨대, 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 캐리어는 유형의 비일시적 컴퓨터 저장 매체일 수 있다. 대안적으로 또는 추가적으로, 캐리어는 인위적으로 생성된 전파 신호, 예를 들어, 데이터 처리 장치에 의한 실행에 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하도록 생성된 머신 생성 전기, 광학, 또는 전자기 신호일 수 있다. 컴퓨터 저장 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나의 이상의 조합일 수 있거나 또는 그 일부일 수 있다. 컴퓨터 저장 매체는 전파 신호는 아니다.
용어 "데이터 처리 장치"는 예를 들어, 프로그래밍가능 프로세서, 컴퓨터, 또는 복수의 프로세서들 또는 컴퓨터들을 비롯하여, 데이터를 처리하기 위한 모든 종류의 장치, 디바이스, 및 머신을 망라한다. 데이터 처리 장치는 특수 목적 논리 회로부, 예컨대, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 또는 GPU(graphics processing unit)를 포함할 수 있다. 본 장치는 또한, 하드웨어에 더하여, 컴퓨터 프로그램들을 위한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
컴퓨터 프로그램(이는 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트, 또는 코드라고도 칭해질 수 있거나 또는 이들로서 설명될 수 있음)은 컴파일링된 언어 또는 해석된 언어, 또는 선언형 또는 절차적 언어를 비롯한, 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 독립형 프로그램으로서 또는 컴퓨팅 환경에서의 실행에 적절한 모듈, 컴포넌트, 엔진, 서브루틴, 또는 다른 유닛으로서를 비롯하여, 임의의 형태로 배치될 수 있으며, 이 환경은 하나 이상의 위치에서 데이터 통신 네트워크에 의해 상호연결된 하나 이상의 컴퓨터를 포함할 수 있다.
컴퓨터 프로그램은 파일 시스템 내의 파일에 반드시 대응할 필요는 없을 수 있다. 프로그램은 다른 프로그램 또는 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트를 보유하는 파일의 일부에 , 해당 프로그램에 전용되는 단일의 파일에, 또는 다중 코디네이션된 파일에, 예를 들어, 하나 이상의 모듈, 서브프로그램, 또는 코드 부분을 저장하는 파일에 저장될 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 동작들을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 특수 목적 논리 회로부, 예를 들어, FPGA, ASIC, 또는 GPU에 의해, 또는 특수 목적 논리 회로부와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적절한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서, 이 둘 다, 또는 임의의 다른 종류의 중앙 처리 장치에 기초할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이 둘 다로부터 데이터 및 명령어를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령어들을 실행하기 위한 중앙 처리 장치, 및 명령어들과 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다. 중앙 처리 장치 및 메모리는 특수 목적 논리 회로부에 의해 추가되거나 또는 특수 목적 논리 회로부 내에 통합될 수 있다.
일반적으로, 컴퓨터는 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체(컴퓨터 판독가능 메모리라고도 칭함)에 결합될 것이다. 컴퓨터에 결합된 저장 매체는 컴퓨터의 내부 컴포넌트(예컨대, 통합형 하드 드라이브) 또는 외부 컴포넌트(예컨대, 범용 직렬 버스(USB) 하드 드라이브 또는 네트워크를 통해 액세스되는 저장 시스템)일 수 있다. 저장 매체의 예시들은, 예를 들어, 자기, 광자기, 또는 광학 디스크들, 솔리드 스테이트 드라이브, 클라우드 저장 시스템과 같은 네트워크 저장 자원들, 또는 다른 유형의 저장 매체를 포함할 수 있다. 그러나, 컴퓨터는 이러한 디바이스를 가질 필요는 없다. 또한, 컴퓨터는 다른 디바이스, 단지 몇 개만을 예를 들면, 모바일 폰, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대용 저장 디바이스, 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 임베딩될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명된 발명내용의 구현예들은 정보를 사용자에게 디스플레이 하기 위한 디스플레이 디바이스, 예컨대, LCD(liquid crystal display) 모니터, 및 사용자가 입력을 컴퓨터에 제공할 수 있는 입력 디바이스, 예컨대 키보드 및 포인팅 디바이스, 예컨대, 마우스, 트랙볼 또는 터치패드를 갖는 컴퓨터 상에 구현될 수 있거나, 또는 이와 통신하도록 구성될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류의 디바이스들이 또한 이용할 수 있는데, 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백일 수 있고, 사용자로부터의 입력은 음향, 스피치 또는 촉각적 입력을 비롯한 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자에 의해 사용된 디바이스로부터 문서를 수신하고 디바이스에 문서를 전송함으로써, 또는 사용자 디바이스, 예컨대, 스마트폰 또는 전자 태블릿 상에서 구동되는 앱과 상호작용함으로써, 사용자와 상호작용할 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 디바이스, 예를 들어, 메시징 애플리케이션을 실행 중인 스마트폰에 송신하고, 그 답례로 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서는 시스템, 장치, 및 컴퓨터 프로그램 컴포넌트들과 관련하여 "구성되도록"이라는 용어를 사용한다. 하나 이상의 컴퓨터의 시스템이 특정 동작들 또는 액션들을 수행하도록 구성되었다는 것은 동작시 시스템으로 하여금 그 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 시스템이 설치하였다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 동작들 또는 액션들을 수행하도록 구성되었다는 것은 하나 이상의 프로그램이, 데이터 처리 장치에 의해 실행될 때, 장치로 하여금 그 동작들 또는 액션들을 수행하게 하는 명령어들을 포함한다는 것을 의미한다. 특수 목적 논리 회로부가 특정 동작들 또는 액션들을 수행하도록 구성되었다는 것은 그 회로부가 동작들 또는 액션들을 수행하는 전자 로직을 갖는다는 것을 의미한다.
본 명세서는 많은 특정 구현예 상세사항을 포함하고 있지만, 이것들은 청구항들 자체에 의해 정의되는, 청구 내용의 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 구현예들에 특유적일 수 있는 특징들의 설명으로서 해석되어야 한다. 개별적인 구현예들의 환경에서 본 명세서에서 설명된 특정 특징들은 또한, 단일의 구현예와 결합하여 실현될 수도 있다. 반대로, 단일의 구현예의 환경에서 설명된 다양한 특징들은 또한, 다중 구현예들에서 개별적으로 또는 임의의 적절한 서브조합으로 실현될 수 있다. 뿐만 아니라, 특징들이 특정 조합으로 작용하는 것으로서 위에서 설명될 수 있고 심지어 이와 같이 초기에 청구되어 있지만, 청구된 조합으로부터 하나 이상의 특징이 일부 경우들에서 이러한 조합으로부터 실행될 수 있고, 청구항은 부분조합으로 또는 부분조합의 변경예에 관련된 것일 수 있다.
마찬가지로, 동작들이 특정한 순서로 도면들에서 도시되고 청구항들에서 나열되고 있지만, 원하는 결과를 달성하기 위해, 이러한 동작들이 도시된 특정 순서로 수행되거나 또는 순차적인 순서로 수행되어야 한다는 것과 도시된 모든 동작들이 수행되어야 한다는 것을 요구하는 것으로서 이러한 것을 이해해서는 안된다. 어떠한 환경들에서는, 멀티태스킹 및 병렬적 처리가 이로울 수 있다. 또한, 상술한 구현예들에서의 다양한 시스템 모듈들 및 컴포넌트들의 분리는 이러한 분리가 모든 구현예들에서 필요로 하는 것으로서 이해되어서는 안되고, 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품에서 함께 통합되거나 또는 복수의 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
본 발명내용의 특정 구현예가 설명되었다. 다른 구현예들도 다음의 청구범위의 범위 내에 있다. 예를 들어, 청구범위 내에 언급된 동작들은 서로 다른 순서로 수행될 수 있고 그럼에도 원하는 결과를 실현할 수 있다. 일례로서, 첨부 도면들에 도시된 프로세스들은 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요한 것은 아니다. 일부 경우들에서는, 멀티태스킹 및 병렬적 처리가 이로울 수 있다.

Claims (20)

  1. 블록체인 네트워크에서의 거래들의 병렬적 실행을 위한 컴퓨터 구현 방법에 있어서,
    하나 이상의 프로세서에 의해, 블록체인 네트워크에서 실행될 복수의 거래들을 식별하는 단계 - 상기 복수의 거래들 각각은 개인 암호화 키로 디지털 서명되고, 상기 개인 암호화 키에 대응하는 공개(public) 암호화 키를 사용하여 암호해독됨으로써 확인됨 -;
    상기 하나 이상의 프로세서에 의해, 상기 복수의 거래들을 실행 순서로 배열하는 단계 - 상기 복수의 거래들은 하나 이상의 스마트 계약에 대한 하나 이상의 스마트 계약 호출(call)을 포함함 -;
    상기 하나 이상의 프로세서에 의해, 상기 스마트 계약을 실행할 권한을 부여받은 계좌들의 리스트를 포함하는, 각 스마트 계약과 연관된 화이트리스트에 기초하여, 상기 복수의 거래들에 의해 영향을 받을 하나 이상의 계좌를 식별하는 단계;
    상기 하나 이상의 프로세서에 의해, 계좌 의존성에 기초하여 상기 복수의 거래들 내에서 거래들의 그룹들을 결정하는 단계 - 상기 계좌 의존성은, 특정 그룹 내의 거래들이, 상이한 그룹 내의 거래들에 의해 영향을 받는 상기 블록체인 네트워크 내의 어떠한 계좌들에도 영향을 미치지 않는다는 것이고, 상기 거래들의 그룹들에 의해 실행될 상기 하나 이상의 스마트 계약 호출 각각과 연관된 특정 계좌들의 세트는 각각의 상기 하나 이상의 스마트 계약과 연관된 상기 화이트리스트에 기초하여 결정됨 -;
    상기 하나 이상의 프로세서에 의해, 상기 블록체인 네트워크의 노드들에게 상기 거래들의 그룹들 각각을 병렬적으로 실행할 것을 명령하는 단계 - 상기 블록체인 네트워크의 노드들에게 상기 거래들의 그룹들 각각을 병렬적으로 실행할 것을 명령하는 단계는 네트워크를 통해 상기 노드들에게 메시지를 전송하는 단계를 포함하고, 상기 거래들의 그룹들을 실행하는 것은 각 그룹 내의 거래들을 순차적으로 그리고 상기 실행 순서에 따라 실행하는 것을 포함함 -;
    상기 하나 이상의 프로세서에 의해, 상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정하는 단계 - 상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정하는 단계는, 상기 복수의 거래들 내의 모든 거래들이 상기 블록체인 네트워크에 의해 유지되는 블록체인에 저장된 하나 이상의 블록 내에 포함되었다고 결정하는 단계를 포함함 -; 및
    상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정한 것에 응답하여, 상기 하나 이상의 프로세서에 의해, 상기 블록체인 네트워크의 노드들에게 최종적인 스마트 계약 호출을 실행할 것을 명령하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트 내에 포함된 것인 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트로부터 분리되어 있는 것인 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌를 저장한, 각각의 스마트 계약에 대한 외부 위치에 대한 참조를 포함한 것인 컴퓨터 구현 방법.
  5. 하나 이상의 컴퓨터에 연결되고, 동작들을 수행하도록 상기 하나 이상의 컴퓨터에 의해 실행가능한 명령어를 저장한 컴퓨터 판독가능 비일시적 저장 매체에 있어서, 상기 동작들은,
    블록체인 네트워크에서 실행될 복수의 거래들을 식별하는 동작 - 상기 복수의 거래들 각각은 개인 암호화 키로 디지털 서명되고, 상기 개인 암호화 키에 대응하는 공개 암호화 키를 사용하여 암호해독됨으로써 확인됨 -;
    상기 복수의 거래들을 실행 순서로 배열하는 동작 - 상기 복수의 거래들은 하나 이상의 스마트 계약에 대한 하나 이상의 스마트 계약 호출을 포함함 -;
    상기 스마트 계약을 실행할 권한을 부여받은 계좌들의 리스트를 포함하는, 각 스마트 계약과 연관된 화이트리스트에 기초하여, 상기 복수의 거래들에 의해 영향을 받을 하나 이상의 계좌를 식별하는 동작;
    계좌 의존성에 기초하여 상기 복수의 거래들 내에서 거래들의 그룹들을 결정하는 동작 - 상기 계좌 의존성은, 특정 그룹 내의 거래들이, 상이한 그룹 내의 거래들에 의해 영향을 받는 상기 블록체인 네트워크 내의 어떠한 계좌들에도 영향을 미치지 않는다는 것이고, 상기 거래들의 그룹들에 의해 실행될 상기 하나 이상의 스마트 계약 호출 각각과 연관된 특정 계좌들의 세트는 각각의 상기 하나 이상의 스마트 계약과 연관된 상기 화이트리스트에 기초하여 결정됨 -;
    상기 블록체인 네트워크의 노드들에게 상기 거래들의 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작 - 상기 블록체인 네트워크의 노드들에게 상기 거래들의 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작은 네트워크를 통해 상기 노드들에게 메시지를 전송하는 동작을 포함하고, 상기 거래들의 그룹들을 실행하는 것은 각 그룹 내의 거래들을 순차적으로 그리고 상기 실행 순서에 따라 실행하는 것을 포함함 -;
    상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정하는 동작 - 상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정하는 동작은, 상기 복수의 거래들 내의 모든 거래들이 상기 블록체인 네트워크에 의해 유지되는 블록체인에 저장된 하나 이상의 블록 내에 포함되었다고 결정하는 동작을 포함함 -; 및
    상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정한 것에 응답하여, 상기 블록체인 네트워크의 노드들에게 최종적인 스마트 계약 호출을 실행할 것을 명령하는 동작
    을 포함한 것인 컴퓨터 판독가능 비일시적 저장 매체.
  6. 제5항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트 내에 포함된 것인 컴퓨터 판독가능 비일시적 저장 매체.
  7. 제5항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트로부터 분리되어 있는 것인 컴퓨터 판독가능 비일시적 저장 매체.
  8. 제5항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌를 저장한, 각각의 스마트 계약에 대한 외부 위치에 대한 참조를 포함한 것인 컴퓨터 판독가능 비일시적 저장 매체.
  9. 컴퓨터 구현 시스템에 있어서,
    하나 이상의 컴퓨터; 및
    상기 하나 이상의 컴퓨터와 상호동작가능하게 결합되고, 하나 이상의 명령어를 저장하는 유형적인(tangible) 머신 판독가능 비일시적 매체를 갖는 하나 이상의 컴퓨터 메모리 디바이스
    를 포함하고, 상기 하나 이상의 명령어는, 상기 하나 이상의 컴퓨터에 의해 실행될 때, 하나 이상의 동작을 수행하고,
    상기 하나 이상의 동작은,
    블록체인 네트워크에서 실행될 복수의 거래들을 식별하는 동작 - 상기 복수의 거래들 각각은 개인 암호화 키로 디지털 서명되고, 상기 개인 암호화 키에 대응하는 공개 암호화 키를 사용하여 암호해독됨으로써 확인됨 -;
    상기 복수의 거래들을 실행 순서로 배열하는 동작 - 상기 복수의 거래들은 하나 이상의 스마트 계약에 대한 하나 이상의 스마트 계약 호출을 포함함 -;
    상기 스마트 계약을 실행할 권한을 부여받은 계좌들의 리스트를 포함하는, 각 스마트 계약과 연관된 화이트리스트에 기초하여, 상기 복수의 거래들에 의해 영향을 받을 하나 이상의 계좌를 식별하는 동작;
    계좌 의존성에 기초하여 상기 복수의 거래들 내에서 거래들의 그룹들을 결정하는 동작 - 상기 계좌 의존성은, 특정 그룹 내의 거래들이, 상이한 그룹 내의 거래들에 의해 영향을 받는 상기 블록체인 네트워크 내의 어떠한 계좌들에도 영향을 미치지 않는다는 것이고, 상기 거래들의 그룹들에 의해 실행될 상기 하나 이상의 스마트 계약 호출 각각과 연관된 특정 계좌들의 세트는 각각의 상기 하나 이상의 스마트 계약과 연관된 상기 화이트리스트에 기초하여 결정됨 -;
    상기 블록체인 네트워크의 노드들에게 상기 거래들의 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작 - 상기 블록체인 네트워크의 노드들에게 상기 거래들의 그룹들 각각을 병렬적으로 실행할 것을 명령하는 동작은 네트워크를 통해 상기 노드들에게 메시지를 전송하는 동작을 포함하고, 상기 거래들의 그룹들을 실행하는 것은 각 그룹 내의 거래들을 순차적으로 그리고 상기 실행 순서에 따라 실행하는 것을 포함함 -;
    상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정하는 동작 - 상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정하는 동작은, 상기 복수의 거래들 내의 모든 거래들이 상기 블록체인 네트워크에 의해 유지되는 블록체인에 저장된 하나 이상의 블록 내에 포함되었다고 결정하는 동작을 포함함 -; 및
    상기 블록체인 네트워크의 노드들이 상기 거래들의 그룹들 모두를 실행하는 것을 완료했다고 결정한 것에 응답하여, 상기 블록체인 네트워크의 노드들에게 최종적인 스마트 계약 호출을 실행할 것을 명령하는 동작
    을 포함한 것인 컴퓨터 구현 시스템.
  10. 제9항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트 내에 포함된 것인 컴퓨터 구현 시스템.
  11. 제9항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약과 연관된 실행가능 명령어들의 세트로부터 분리되어 있는 것인 컴퓨터 구현 시스템.
  12. 제9항에 있어서,
    상기 화이트리스트는 각각의 스마트 계약에 액세스할 권한을 부여받은 하나 이상의 계좌를 저장한, 각각의 스마트 계약에 대한 외부 위치에 대한 참조를 포함한 것인 컴퓨터 구현 시스템.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020197023226A 2018-12-28 2018-12-28 스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행 KR102294223B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124873 WO2019072305A2 (en) 2018-12-28 2018-12-28 PARALLEL EXECUTION OF TRANSACTIONS IN A BLOCK CHAIN NETWORK BASED ON WHITE LISTS OF INTELLIGENT CONTRACTS

Publications (2)

Publication Number Publication Date
KR20200083938A KR20200083938A (ko) 2020-07-09
KR102294223B1 true KR102294223B1 (ko) 2021-08-30

Family

ID=66100122

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197023226A KR102294223B1 (ko) 2018-12-28 2018-12-28 스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행

Country Status (17)

Country Link
US (2) US10911461B2 (ko)
EP (1) EP3566391B1 (ko)
JP (1) JP7012730B2 (ko)
KR (1) KR102294223B1 (ko)
CN (1) CN110300985B (ko)
AU (1) AU2018347205C1 (ko)
BR (1) BR112019016290A2 (ko)
CA (1) CA3052884C (ko)
ES (1) ES2879907T3 (ko)
MX (1) MX2019009344A (ko)
MY (1) MY201623A (ko)
PH (1) PH12019501847A1 (ko)
PL (1) PL3566391T3 (ko)
RU (1) RU2731417C1 (ko)
SG (1) SG11201907243UA (ko)
WO (1) WO2019072305A2 (ko)
ZA (1) ZA201905218B (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11243810B2 (en) * 2018-06-06 2022-02-08 The Bank Of New York Mellon Methods and systems for improving hardware resiliency during serial processing tasks in distributed computer networks
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11263315B2 (en) 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
CN118196938A (zh) * 2018-12-06 2024-06-14 开利公司 由区块链支持的智能锁***
JP6816300B2 (ja) 2018-12-28 2021-01-20 アドバンスド ニュー テクノロジーズ カンパニー リミテッド ブロックチェーンネットワークにおけるトランザクションの並列実行
EP3566391B1 (en) * 2018-12-28 2021-04-21 Advanced New Technologies Co., Ltd. Parallel execution of transactions in a blockchain network based on smart contract whitelists
SG11201910057QA (en) 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CA3060790C (en) 2019-04-12 2021-06-08 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
SG11202000784SA (en) * 2019-04-30 2020-02-27 Alibaba Group Holding Ltd Methods and devices for managing access to account in blockchain system
SG11201910069YA (en) 2019-04-30 2019-11-28 Alibaba Group Holding Ltd Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology
CN110175844A (zh) * 2019-05-07 2019-08-27 深圳前海微众银行股份有限公司 一种区块链中智能合约的发布方法及装置
WO2021032115A1 (zh) * 2019-08-19 2021-02-25 杭州趣链科技有限公司 智能合约并行执行的方法、装置、设备和介质
CN110968437A (zh) * 2019-11-27 2020-04-07 杭州趣链科技有限公司 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质
US10783082B2 (en) * 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
KR102304953B1 (ko) * 2019-08-30 2021-09-27 주식회사 미디움 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템
US11768701B2 (en) * 2019-09-17 2023-09-26 Western Digital Technologies, Inc. Exception analysis for data storage devices
CN110691122B (zh) * 2019-09-23 2022-04-05 杭州复杂美科技有限公司 平行链共识方法、设备及存储介质
DE102019216744A1 (de) * 2019-10-30 2021-05-06 Robert Bosch Gmbh Granulare Speicherverwaltung für einen Distributed Ledger
KR102342788B1 (ko) * 2019-11-19 2021-12-24 한양대학교 산학협력단 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
US11387979B2 (en) 2019-12-23 2022-07-12 International Business Machines Corporation Partially-ordered blockchain
CN111294234B (zh) * 2020-01-17 2022-07-29 麦科思(苏州)数据科技有限公司 一种基于智能合约优化模型的并行区块链分片方法
CN111339108A (zh) * 2020-02-18 2020-06-26 杭州复杂美科技有限公司 一种交易并行执行方法、设备及存储介质
CN111414374B (zh) * 2020-03-20 2023-04-28 深圳市迅雷网络技术有限公司 一种区块链交易并发处理方法、装置及设备
CN111325928B (zh) * 2020-04-01 2021-12-21 中国银行股份有限公司 银行自助设备的业务执行方法及装置
CN111563820B (zh) * 2020-05-08 2023-09-22 中国工商银行股份有限公司 智能合约并行执行方法及装置
CN111339208B (zh) * 2020-05-15 2020-08-25 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置
CN111754350B (zh) 2020-08-28 2020-11-24 支付宝(杭州)信息技术有限公司 并行获取区块链中的交易访问变量的编号的方法和装置
CN111754349B (zh) 2020-08-28 2020-12-04 支付宝(杭州)信息技术有限公司 对区块链中的交易进行分组的方法和装置
CN111770202B (zh) 2020-08-31 2021-10-29 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111770204B (zh) 2020-08-31 2021-10-22 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768183B (zh) 2020-08-31 2024-04-19 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768184A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法及区块链节点
CN111770113B (zh) * 2020-08-31 2021-07-30 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和节点设备
CN113191895B (zh) * 2020-09-04 2022-04-26 支付宝(杭州)信息技术有限公司 一种交易执行方法、***及装置
CN113454597A (zh) 2020-09-28 2021-09-28 支付宝(杭州)信息技术有限公司 区块链交易处理***和方法
KR102286473B1 (ko) * 2020-10-14 2021-08-06 (주)헥슬란트 가상 자산 검증 모듈, 이를 포함하는 가상 자산 거래 시스템 및 그 방법
US11194791B1 (en) * 2020-10-23 2021-12-07 Coinbase Crypto Services, LLC. Blockchain orchestrator computer system
CN113205424B (zh) * 2020-10-28 2023-08-25 支付宝(杭州)信息技术有限公司 在区块链中部署和调用合约的方法和装置
CN112465514A (zh) * 2020-12-08 2021-03-09 苏州域乎区块链科技有限公司 一种基于区块链的分层式交易并行执行方法及***
CN112748994B (zh) * 2020-12-31 2023-11-28 上海简苏网络科技有限公司 一种区块链交易并行处理方法及***
CN112764897B (zh) * 2020-12-31 2024-03-22 杭州趣链科技有限公司 任务请求的处理方法、装置、***及计算机可读存储介质
US11829765B2 (en) 2021-03-31 2023-11-28 International Business Machines Corporation Computer mechanism for analytic orchestration and entitled execution
WO2023277553A1 (ko) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 블록체인 네트워크에서의 트랜잭션의 처리 속도 향상 방법
US11936794B2 (en) * 2021-09-16 2024-03-19 Masterard International Incorporated Method and system for parallel processing of smart contracts in permissioned blockchains
CN113869902A (zh) * 2021-12-03 2021-12-31 深圳前海微众银行股份有限公司 一种区块链交易执行方法及装置
CN114285632B (zh) * 2021-12-23 2023-07-28 成都质数斯达克科技有限公司 一种区块链数据传输方法、装置和设备及可读存储介质
CN116382815B (zh) * 2023-06-05 2023-10-10 安徽中科晶格技术有限公司 基于dag模型的合约并行化方法
CN117422468B (zh) * 2023-12-18 2024-03-29 安徽中科晶格技术有限公司 基于dag模型的合约链合约并行化方法、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180374086A1 (en) 2017-06-26 2018-12-27 International Business Machines Corporation Blockchain transaction commitment ordering

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401235B2 (en) 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
CN102915421B (zh) * 2011-08-04 2013-10-23 腾讯科技(深圳)有限公司 文件的扫描方法及***
US9870310B1 (en) * 2013-11-11 2018-01-16 Amazon Technologies, Inc. Data providers for annotations-based generic load generator
RU2670029C2 (ru) * 2014-06-03 2018-10-17 Общество С Ограниченной Ответственностью "Яндекс" Система и способ автоматической модерации сообщений
US10095549B1 (en) * 2015-09-29 2018-10-09 Amazon Technologies, Inc. Ownership transfer account service in a virtual computing environment
EP4375908A1 (en) * 2015-10-17 2024-05-29 Banqu, Inc. Blockchain-based identity and transaction platform
US20170132615A1 (en) * 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US10432471B2 (en) * 2015-12-31 2019-10-01 Microsoft Technology Licensing, Llc Distributed computing dependency management system
EP3193299A1 (en) * 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
US10255108B2 (en) 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10720232B2 (en) * 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
CA3027630A1 (en) * 2016-07-01 2018-01-04 Wells Fargo Bank, N.A. International trade finance blockchain system
US10425399B2 (en) 2016-07-12 2019-09-24 International Business Machines Corporation Template-based distributed certificate issuance in a multi-tenant environment
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
WO2018031551A1 (en) * 2016-08-08 2018-02-15 The Dun & Bradstreet Corporation Trusted platform and integrated bop applications for networking bop components
US11146535B2 (en) * 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US20180158034A1 (en) 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US11200966B2 (en) 2016-12-27 2021-12-14 Cerner Innovation, Inc. Healthcare system based on devices and wearables
CN108269072A (zh) * 2016-12-30 2018-07-10 深圳瀚德创客金融投资有限公司 用于区块链的交易处理方法和网络节点
KR102470727B1 (ko) * 2016-12-30 2022-11-25 비씨 디벨롭먼트 랩스 게엠베하 블록체인 가능한 서비스 제공자 시스템
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN106878000B (zh) * 2017-03-06 2020-02-21 中钞***产业发展有限公司杭州区块链技术研究院 一种联盟链共识方法及***
CN106934710A (zh) * 2017-03-06 2017-07-07 钱德君 一种基于智能合约内容的量子合约账本
US10489597B2 (en) * 2017-03-28 2019-11-26 General Electric Company Blockchain verification of network security service
GB201707296D0 (en) 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US10341105B2 (en) * 2017-06-07 2019-07-02 At&T Intellectual Property I, L.P. Blockchain-based social media history maps
AU2018289562A1 (en) * 2017-06-22 2020-01-16 Jpmorgan Chase Bank, N.A. System and method for implementing an interbank information network
US10616324B1 (en) * 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US11196552B2 (en) * 2017-08-04 2021-12-07 Truss Financial, LLC Secure data distribution protocol using blockchains
CN107688999B (zh) 2017-08-11 2020-11-13 杭州溪塔科技有限公司 一种基于区块链的并行交易执行方法
US20190087793A1 (en) * 2017-08-31 2019-03-21 Brown University Adding concurrency to smart contracts
US11132451B2 (en) * 2017-08-31 2021-09-28 Parity Technologies Ltd. Secret data access control systems and methods
RU2673399C1 (ru) * 2017-09-07 2018-11-26 Олег Александрович Серебренников Способ сохранения покупательной способности сбережений
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及***
WO2019067603A1 (en) * 2017-09-27 2019-04-04 Securrency, Inc. METHOD, APPARATUS, AND COMPUTER-READABLE MEDIUM FOR CONFORMITY-SENSITIVE TOKENIZATION AND ASSET VALUE CONTROL
US11100483B2 (en) * 2017-09-29 2021-08-24 Intel Corporation Hierarchical data information
CN107704269A (zh) 2017-10-16 2018-02-16 中国银行股份有限公司 一种基于区块链生成区块的方法以及***
US11823178B2 (en) * 2017-11-17 2023-11-21 International Business Machines Corporation Optimization of high volume transaction performance on a blockchain
TWI677213B (zh) * 2017-11-23 2019-11-11 財團法人資訊工業策進會 監控裝置、方法及其電腦程式產品
JP2019125914A (ja) * 2018-01-16 2019-07-25 アラクサラネットワークス株式会社 通信装置及びプログラム
US10373158B1 (en) * 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US10540654B1 (en) * 2018-02-12 2020-01-21 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
CN108848119B (zh) * 2018-04-03 2020-04-28 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、***、电子设备
RU181439U1 (ru) * 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
CN108681565B (zh) 2018-04-28 2020-11-10 百度在线网络技术(北京)有限公司 区块链数据并行处理方法、装置、设备和存储介质
CN108769173B (zh) * 2018-05-21 2021-11-09 阿里体育有限公司 运行智能合约的区块链实现方法及设备
CN108846659B (zh) 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
US11836721B2 (en) * 2018-06-29 2023-12-05 Intel Corporation Protection of information in an information exchange
CN109064171A (zh) 2018-07-26 2018-12-21 杭州秘猿科技有限公司 一种区块链并行交易的方法、装置及电子***
JP6816300B2 (ja) 2018-12-28 2021-01-20 アドバンスド ニュー テクノロジーズ カンパニー リミテッド ブロックチェーンネットワークにおけるトランザクションの並列実行
EP3566391B1 (en) * 2018-12-28 2021-04-21 Advanced New Technologies Co., Ltd. Parallel execution of transactions in a blockchain network based on smart contract whitelists

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180374086A1 (en) 2017-06-26 2018-12-27 International Business Machines Corporation Blockchain transaction commitment ordering

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
aelf team, aelf-A Multi-Chain Parallel Computing Blockchain Framework, white paper (2018. 06.)*
Xiwei Xu 외 4명, A Pattern Collection for Blockchain-based Applications, Proceedings of the 23rd European Conference on Pattern Languages of Programs, (2018. 07.)*

Also Published As

Publication number Publication date
EP3566391A2 (en) 2019-11-13
MX2019009344A (es) 2019-10-02
US20210160245A1 (en) 2021-05-27
SG11201907243UA (en) 2019-09-27
WO2019072305A2 (en) 2019-04-18
RU2731417C1 (ru) 2020-09-02
AU2018347205B2 (en) 2021-02-25
PH12019501847A1 (en) 2020-03-09
US10911461B2 (en) 2021-02-02
EP3566391B1 (en) 2021-04-21
US20190281065A1 (en) 2019-09-12
EP3566391A4 (en) 2020-03-18
ES2879907T3 (es) 2021-11-23
CN110300985A (zh) 2019-10-01
JP2020518880A (ja) 2020-06-25
CA3052884C (en) 2022-05-17
AU2018347205A1 (en) 2020-07-16
ZA201905218B (en) 2020-05-27
WO2019072305A3 (en) 2019-10-24
AU2018347205C1 (en) 2021-08-12
US11381573B2 (en) 2022-07-05
CA3052884A1 (en) 2019-04-18
PL3566391T3 (pl) 2021-10-18
CN110300985B (zh) 2023-08-01
KR20200083938A (ko) 2020-07-09
BR112019016290A2 (pt) 2021-07-20
JP7012730B2 (ja) 2022-01-28
MY201623A (en) 2024-03-06

Similar Documents

Publication Publication Date Title
KR102294223B1 (ko) 스마트 거래 화이트리스트에 기초한 블록체인 네트워크에서의 거래들의 병렬적 실행
CN110520882B (zh) 在区块链网络中并行执行交易
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
US11068887B2 (en) Smart contract whitelists

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A302 Request for accelerated examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)