KR102303376B1 - 블록체인 네트워크에서의 데이터 아이솔레이션 - Google Patents
블록체인 네트워크에서의 데이터 아이솔레이션 Download PDFInfo
- Publication number
- KR102303376B1 KR102303376B1 KR1020197022207A KR20197022207A KR102303376B1 KR 102303376 B1 KR102303376 B1 KR 102303376B1 KR 1020197022207 A KR1020197022207 A KR 1020197022207A KR 20197022207 A KR20197022207 A KR 20197022207A KR 102303376 B1 KR102303376 B1 KR 102303376B1
- Authority
- KR
- South Korea
- Prior art keywords
- private
- transaction
- blockchain
- account
- representation
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H04L2209/38—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
- H04L63/0435—Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Power Engineering (AREA)
- Marketing (AREA)
- Economics (AREA)
- Technology Law (AREA)
- Development Economics (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
본 출원의 구현들은, 적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청을 수신하는 것; 요청을 수신한 것에 대한 응답으로, 워크플로우 노드(workflow node)에 의해, 개인 트랜잭션을 수행하는 것; 개인 트랜잭션을 수행하는 것에 대한 응답으로, 워크플로우 노드에 의해, 개인 트랜잭션에 액세스하도록 인가된 엔티티들만이 액세스 가능하도록 구성된 개인 트랜잭션의 표현을 생성하는 것; 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 것; 워크플로우 노드에 의해, 개인 트랜잭션에 적어도 부분적으로 기초하여 개인 트랜잭션과 연관된 적어도 하나의 계정에 대한 계정 레코드를 생성하는 것 ― 계정 레코드는 개인 블록체인 내의 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성됨 ― ; 그리고 계정 레코드를 공개 블록체인에 저장하는 것을 포함한다.
Description
컨센서스(consensus) 네트워크들 및/또는 블록체인 네트워크들로서 또한 지칭되는 DLS(distributed ledger system)은 참여하는 엔티티들이 데이터를 안전하게 그리고 불변적으로 저장하는 것을 가능하게 한다. DLS들은 일반적으로 어떠한 특정 사용자 경우(예를 들어, 암호-화폐들)와 관계없이 블록체인 네트워크로서 지칭된다. 예시적인 유형들의 블록체인 네트워크들은 공개 블록체인 네트워크들, 개인 블록체인 네트워크들 및 컨소시엄 블록체인 네트워크들을 포함할 수 있다. 모든 엔티티들이 DLS를 사용하고 컨센서스 프로세스에 참여하기 위해 공개 블록체인 네트워크가 개방되어 있다. 개인 블록체인 네트워크에는 읽기 및 쓰기 권한들을 중앙에서 제어하는 특정 엔티티가 제공된다. 컨센서스 블록체인 네트워크에는 컨소시엄 프로세스를 제어하는 엔티티들의 선택된 그룹이 제공되며, 액세스 제어 층을 포함한다.
블록체인 네트워크의 하나의 일반적인 이슈는 블록체인 그 자체의 내재적인 개방성으로 인한 프라이버시 보호(privacy protection)이다. 종래의 블록체인의 엔트리들은 블록체인 네트워크의 모든 참여자들에 의한 검사에 이용 가능하며, 이는 블록체인 네트워크에서 관리되는 트랜잭션들이 민감한 정보를 포함할 때 이슈들을 제공할 수 있다.
본 명세서의 구현들은 블록체인 네트워크에서 데이터 아이솔레이션을 위한 컴퓨터-구현 방법을 포함한다. 보다 구체적으로, 본 명세서의 구현들은, 개인 트랜잭션(private transaction) 세부사항들을 아이솔레이션하는 반면, 트랜잭션 요약들을 개인 블록체인에 그리고 계정(account) 잔액 업데이트들을 공개 블록체인에 공개하는 것에 관한 것이다.
일부 구현들에서, 액션들은, 적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청을 수신하는 단계; 요청을 수신한 것에 대한 응답으로, 워크플로우 노드(workflow node)에 의해, 개인 트랜잭션을 수행하는 단계; 개인 트랜잭션을 수행하는 것에 대한 응답으로, 워크플로우 노드에 의해, 개인 트랜잭션에 액세스하도록 인가된 엔티티들만이 액세스 가능하도록 구성된 개인 트랜잭션의 표현을 생성하는 단계; 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 단계; 워크플로우 노드에 의해, 개인 트랜잭션에 적어도 부분적으로 기초하여 개인 트랜잭션과 연관된 적어도 하나의 계정에 대한 계정 레코드를 생성하는 단계 ― 계정 레코드는 개인 블록체인 내의 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성됨 ― ; 및 계정 레코드를 공개 블록체인에 저장하는 단계를 포함한다.
다른 구현들은 컴퓨터 저장 디바이스들 상에 인코딩된 방법들의 액션들을 수행하도록 구성되는, 대응하는 시스템들, 장치 및 컴퓨터 프로그램들을 포함한다.
이들 및 다른 구현들은 선택적으로 다음의 특징들 중 하나 이상을 각각 포함할 수 있다.
일부 경우들에서, 워크플로우 노드는, 워크플로우 노드의 데이터스토어에 개인 트랜잭션을 저장하고, 데이터스토어는 개인 블록체인과 별개이고, 개인 트랜잭션의 표현을 생성하는 단계는 개인 트랜잭션과 연관된 해시 값을 생성하는 단계를 포함한다.
일부 구현들에서, 워크플로우 노드는 적어도 하나의 계정에 대한 계정 레코드의 로컬 표현을 유지하고, 개인 트랜잭션을 수행하는 단계는 개인 트랜잭션에 기초하여 계정 레코드의 로컬 표현을 수정하는 단계를 포함하고; 적어도 하나의 계정 레코드는 계정 레코드의 로컬 표현에 있는 정보의 서브세트를 포함한다.
일부 경우들에서, 계정 레코드를 공개 블록체인에 저장하는 단계는 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 것에 응답하여 수행된다.
일부 구현들에서, 공개 블록체인에 대한 계정의 대응하는 저장이 수행되지 않은 개인 트랜잭션들의 다른 표현들은 개인 블록체인에 저장된다.
일부 경우들에서, 공개/개인 키쌍의 공개 키로 암호화된 개인 트랜잭션의 암호화된 사본은 개인 블록체인과 별개의 데이터스토어에 저장된다.
일부 구현들에서, 개인 트랜잭션의 암호화된 사본을 저장하는 단계는 공개/개인 키쌍의 개인 키로 생성된, 암호화된 사본의 서명을 저장하는 단계를 포함한다.
일부 구현들에서, 개인 블록체인은 제 1 개인 블록체인이고, 개인 트랜잭션은 제 1 개인 트랜잭션이며, 방법은, 제 1 개인 트랜잭션과 상이한 제 2 개인 트랜잭션의 표현을, 제 1 개인 블록체인과 별개의 제 2 개인 블록체인에 저장하는 단계; 및 제 2 개인 트랜잭션과 연관된 계정에 대한 계정 레코드를 공개 블록체인에 저장하는 단계를 더 포함한다.
일부 경우들에서, 계정 레코드는 적어도 하나의 계정의 잔액을 포함하고, 계정 레코드는 연관된 개인 트랜잭션에 관한 정보를 포함하지 않는다.
본 명세서는 또한, 하나 이상의 프로세서들에 커플링되고 명령들이 저장되어 있는 비-일시적인 컴퓨터-판독 가능 저장 매체들을 제공하며, 이 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 본원에서 제공된 방법들의 구현들에 따른 동작들을 수행하게 한다.
본 명세서는 추가로, 본원에서 제공된 방법들을 구현하기 위한 시스템을 제공한다. 시스템은, 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 커플링되고 명령들이 저장되어 있는 컴퓨터-판독 가능 저장 매체를 포함하며, 이 명령들은 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 본원에서 제공된 방법들의 구현들에 따른 동작들을 수행하게 한다.
본 명세서에 따른 방법들은 본원에서 설명된 양상들 및 특징들의 임의의 조합을 포함할 수 있다는 것이 인지된다. 즉, 본 명세서에 따른 방법들은 본원에서 구체적으로 설명된 양상들 및 특징들의 조합들로 제한되는 것이 아니라, 제공되는 양상들 및 특징들의 임의의 조합을 또한 포함한다.
본 명세서의 하나 이상의 구현들의 세부사항들은 첨부한 도면들 및 아래의 설명에서 기술된다. 본 명세서의 다른 특징들 및 이점들은, 설명 및 도면들로부터, 그리고 청구항들로부터 명백해질 것이다.
도 1은 본 명세서의 구현들을 실행하는데 사용될 수 있는 환경의 예를 도시한다.
도 2는 본 명세서의 구현들에 따른 아키텍처의 예를 도시한다.
도 3은 본 명세서의 구현들에 따라, 블록체인 네트워크에서 데이터 아이솔레이션을 제공하기 위한 시스템의 예를 도시한다.
도 4는 본 명세서의 구현들에 따라, 블록체인 네트워크에서 데이터 아이솔레이션을 제공하기 위한 프로세스의 예를 도시한다.
도 5는 본 명세서의 구현들에 따라 실행될 수 있는 프로세스의 예를 도시한다.
다양한 도면들 내의 유사한 참조 기호들은 유사한 엘리먼트들을 표시한다.
도 2는 본 명세서의 구현들에 따른 아키텍처의 예를 도시한다.
도 3은 본 명세서의 구현들에 따라, 블록체인 네트워크에서 데이터 아이솔레이션을 제공하기 위한 시스템의 예를 도시한다.
도 4는 본 명세서의 구현들에 따라, 블록체인 네트워크에서 데이터 아이솔레이션을 제공하기 위한 프로세스의 예를 도시한다.
도 5는 본 명세서의 구현들에 따라 실행될 수 있는 프로세스의 예를 도시한다.
다양한 도면들 내의 유사한 참조 기호들은 유사한 엘리먼트들을 표시한다.
본 명세서의 구현들은 블록체인 네트워크에서 데이터 아이솔레이션을 위한 컴퓨터-구현 방법을 포함한다. 보다 구체적으로, 본 명세서의 구현들은, 개인 트랜잭션 세부사항들을 아이솔레이션하는 반면, 트랜잭션 요약들을 개인 블록체인에 그리고 계정 잔액 업데이트들을 공개 블록체인에 공개하는 것에 관한 것이다. 일부 구현들에서, 액션들은, 적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청을 수신하는 단계; 요청을 수신한 것에 대한 응답으로, 워크플로우 노드에 의해, 개인 트랜잭션을 수행하는 단계; 개인 트랜잭션을 수행하는 것에 대한 응답으로, 워크플로우 노드에 의해, 개인 트랜잭션에 액세스하도록 인가된 엔티티들만이 액세스 가능하도록 구성된 개인 트랜잭션의 표현을 생성하는 단계; 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 단계; 워크플로우 노드에 의해, 개인 트랜잭션에 적어도 부분적으로 기초하여 개인 트랜잭션과 연관된 적어도 하나의 계정에 대한 계정 레코드를 생성하는 단계 ― 계정 레코드는 개인 블록체인 내의 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성됨 ― ; 및 계정 레코드를 공개 블록체인에 저장하는 단계를 포함한다.
본 명세서의 구현들에 대한 추가의 맥락을 제공하기 위해 그리고 위에서 소개된 바와 같이, 컨센서스 네트워크들(예를 들어, 피어-투-피어 노드들로 구성됨), 및 블록체인 네트워크로서 또한 지칭될 수 있는 DSL(distributed ledger system)들은, 참여 엔티티들이 안전하고 불변적으로 트랜잭션들을 수행하고 데이터를 저장하는 것을 가능하게 한다. 블록체인이라는 용어는 일반적으로 암호-화폐 네트워크들과 연관되지만, 블록체인은 본원에서 어떠한 특정 사용 경우와 관계없이 DLS를 일반적으로 지칭하기 위해 사용된다.
블록체인은 트랜잭션들이 불변적인(immutable) 방식으로 트랜잭션들을 저장하고 후속적으로 검증될 수 있는 데이터 구조이다. 블록체인은 하나 이상의 블록들을 포함한다. 체인 내의 각각의 블록은 이전 블록의 암호화 해시(cryptographic hash)를 포함함으로써 체인 내에 자신 바로 앞의 이전 블록에 링크된다. 각각의 블록은 또한 타임스탬프, 자체 암호화 해시 및 하나 이상의 트랜잭션들을 포함한다. 블록체인 네트워크의 노드들에 의해 이미 검증된 트랜잭션들은 해시되고 머클 트리(Merkle tree)로 인코딩된다. 머클 트리는 트리의 리프 노드들의 데이터가 해시되고 트리의 각각의 분기(branch)의 모든 해시들이 분기의 루트에서 연접되는 데이터 구조이다. 이 프로세스는 전체 트리의 루트까지 트리에서 계속되며, 트리의 모든 데이터를 나타내는 해시를 저장한다. 트리에 저장된 트랜잭션인 것으로 간주되는 해시는 그것이 트리의 구조와 일치하는지 여부를 결정함으로써 신속하게 검증될 수 있다.
블록체인은 트랜잭션들을 저장하기 위한 데이터 구조인 반면, 블록체인 네트워크는 하나 이상의 블록체인들을 관리, 업데이트 및 유지(maintain)하는 컴퓨팅 노드들의 네트워크이다. 위에서 소개된 바와 같이, 블록체인 네트워크는 공개 블록체인 네트워크, 개인 블록체인 네트워크 또는 컨소시엄 블록체인 네트워크로서 제공될 수 있다.
공개 블록체인 네트워크에서 컨센서스 프로세스는 컨센서스 네트워크의 노드들에 의해 제어된다. 예를 들어, 수백, 수천, 심지어 수백만개의 엔티티들이 공개 블록체인 네트워크에서 협력할 수 있으며, 이들 각각은 공개 블록체인 네트워크에서 하나 이상의 노드를 동작시킨다. 따라서, 공개 블록체인 네트워크는 참여 엔티티들과 관련하여 공개 네트워크로 간주될 수 있다. 일부 예들에서, 대부분의 엔티티들(노드들)은, 블록이 유효하며 블록체인 네트워크의 블록체인(분산 원장)에 추가되기 위해 각각의 모든 블록에 서명해야 한다. 공개 블록체인 네트워크들의 예들은 피어-투-피어 지불 네트워크인 암호-화폐 네트워크들을 포함한다. 그러나 위에서 언급된 바와 같이, 블록체인이라는 용어는 일반적으로 어떠한 특정 블록체인 네트워크와 특별히 관계없이 분산 원장들을 지칭하는 데 사용된다.
일반적으로, 공개 블록체인 네트워크는 공개 트랜잭션들을 지원한다. 공개 트랜잭션은 공개 블록체인 네트워크 내의 모든 노드들과 공유되며 글로벌 블록체인에 저장된다. 글로벌 블록체인은 모든 노드들에 걸쳐 복제되는 블록체인이다. 즉, 모든 노드들은 글로벌 블록체인과 관련하여 완벽한 상태 컨센서스(perfect state consensus)에 있다. 컨센서스를 달성하기 위해(예를 들어, 블록체인에의 블록의 추가에 대한 합의), 컨센서스 프로토콜은 공개 블록체인 네트워크 내에서 구현된다. 컨센서스 프로토콜들의 예들은 제한 없이, POW(proof-of-work)(예를 들어, 일부 암호-화폐 네트워크들에서 구현됨), POS(proof-of-stake) 및 POA(proof-of-authority)를 포함한다. POW는 비-제한적인 예로서 본원에서 추가로 참조된다.
일반적인 개인 블록체인 네트워크에서, 개인 블록체인 네트워크에는 읽기 및 쓰기 권한들을 중앙에서 제어하는 특정 엔티티가 제공된다. 엔티티는 어떤 노드들이 블록체인 네트워크에 참여할 수 있는지를 제어한다. 결과적으로, 개인 블록체인 네트워크들은 일반적으로, 누가 네트워크에 참여하도록 허용되는지 그리고 그의 참여 레벨에(예를 들어, 소정의 트랜잭션들로만) 제한을 두는 허가된 네트워크로서 지칭된다. 다양한 유형들의 액세스 제어 메커니즘들이 사용될 수 있다(예를 들어, 기존 참여자가 새로운 엔티티들의 추가에 관해 투표하고 규제 기관이 승인을 제어할 수 있음).
일반적으로 컨소시엄 블록체인 네트워크는 참여 엔티티들 사이에서 비공개(private)이다. 컨소시엄 블록체인 네트워크에서, 컨센서스 프로세스는 노드들의 인가된 세트에 의해 제어되며, 하나 이상의 노드들은 각각의 엔티티(예를 들어, 금융 기관, 보험 회사)에 의해 동작된다. 예를 들어, 10개의 엔티티들(예를 들어, 금융 기관들, 보험 회사들)의 컨소시엄은 컨소시엄 블록체인 네트워크를 동작시킬 수 있으며, 이들 각각은 컨소시엄 블록체인 네트워크에서 적어도 하나의 노드를 동작시킨다. 따라서, 컨소시엄 블록체인 네트워크는 참여 엔티티들과 관련하여 개인 네트워크로 간주될 수 있다. 일부 예들에서, 각각의 엔티티(노드)는, 블록이 유효하며 블록체인에 추가되기 위해 각각의 모든 블록에 서명해야 한다. 일부 예들에서, 블록이 유효하며 블록체인에 추가되기 위해 적어도 엔티티들(노드들)의 서브세트(예를 들어, 적어도 7개의 엔티티들)가 각각의 모든 블록에 서명해야 한다.
본 명세서의 구현들은 참여 엔티티들 사이에서 공개되는 공개 블록체인 네트워크를 참조하여 본원에서 추가로 상세히 설명된다. 그러나, 본 명세서의 구현들은 임의의 적절한 유형의 블록체인 네트워크에서 실현될 수 있는 것으로 고려된다.
본 명세서의 구현들은 위의 맥락을 고려하여 본원에서 추가로 상세히 설명된다. 보다 구체적으로, 그리고 위에서 소개된 바와 같이, 본 명세서의 구현들은 블록체인 네트워크에서 민감한 트랜잭션 데이터의 아이솔레이션에 관한 것이다.
종래의 블록체인 네트워크에서, 블록체인에 레코딩되는 트랜잭션들은 공개적으로 사용 가능하다. 그러나 다수의 금융 시나리오들에서, 이러한 트랜잭션들의 세부사항들은 트랜잭션 참여자들이 공개되기를 원하지 않는 민감한 정보를 포함한다. 예를 들어, 블록체인 네트워크의 참여자는 블록체인 네트워크에 또한 참여하는 경쟁 엔티티로부터 자신의 트랜잭션을 감추고자 할 수 있다.
본원에서 설명된 기술들은 블록체인 네트워크에서 데이터 아이솔레이션의 기술적 문제에 대한 기술적 솔루션을 제공한다. 예를 들어, 트랜잭션 세부사항 데이터는 워크플로우 노드에 의해 블록체인 네트워크에 로컬로 저장되고 체인-외 협업(out-of-chain collaboration)을 통해 검증될 수 있다. 트랜잭션 세부사항 데이터(예를 들어, 트랜잭션의 참여자들)로부터 선택된 정보는 워크플로우 노드들만이 액세스 가능한 개인 블록체인에 저장될 수 있다. 참여자들에 대한 계정 상태들(예를 들어, 잔액)은 모든 네트워크 참여자들에 의한 검사 및 확인을 위해 공개 블록체인에 저장될 수 있으며, 새로운 트랜잭션들이 프로세싱됨에 따라 업데이트될 수 있다.
도 1은 본 명세서의 구현들을 실행하는데 사용될 수 있는 환경(100)의 예를 도시한다. 일부 예들에서, 예시적인 환경(100)은 엔티티들이 블록체인 네트워크(102)에 참여하는 것을 가능하게 한다. 예시적인 환경(100)은 컴퓨팅 디바이스들(106, 108) 및 네트워크(110)를 포함한다. 일부 예에서, 네트워크(110)는 근거리 네트워크(LAN), 광역 네트워크(WAN), 인터넷 또는 이들의 조합을 포함하고, 웹 사이트, 사용자 디바이스들(예를 들어, 컴퓨팅 디바이스들) 및 백-엔드 시스템들을 연결한다. 일부 예들에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다. 일반적으로, 네트워크(110)는 하나 이상의 통신 네트워크들을 나타낸다. 일부 경우들에서, 컴퓨팅 디바이스(106, 108)는 클라우드 컴퓨팅 시스템(도시되지 않음)의 노드들일 수 있거나, 또는 각각의 컴퓨팅 디바이스(106, 108)는 분산된 프로세싱 시스템으로서 기능하고 네트워크에 의해 상호연결된 복수의 컴퓨터들을 포함하는 별개의 클라우드 컴퓨팅 시스템일 수 있다.
도시된 예에서, 컴퓨팅 시스템들(106, 108)은 각각, 블록체인 네트워크(102)에서 노드로서 참여할 수 있는 임의의 적절한 컴퓨팅 시스템을 포함할 수 있다. 예시적인 컴퓨팅 디바이스는 제한 없이, 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스 및 스마트 폰을 포함한다. 일부 예들에서, 컴퓨팅 시스템들(106, 108)은 블록체인 네트워크(102)와 상호작용하기 위한 하나 이상의 컴퓨터-구현 서비스들을 호스팅한다. 예를 들어, 컴퓨팅 시스템(106)은 제 1 엔티티(예를 들어, 사용자 A)가 하나 이상의 다른 엔티티들(예를 들어, 다른 사용자들)과의 그의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은 제 1 엔티티의 컴퓨터-구현 서비스들을 호스팅할 수 있다. 컴퓨팅 시스템(108)은 제 2 엔티티(예를 들어, 사용자 B)가 하나 이상의 다른 엔티티들(예를 들어, 다른 사용자들)과의 그의 트랜잭션들을 관리하기 위해 사용하는 트랜잭션 관리 시스템과 같은 제 2 엔티티의 컴퓨터-구현 서비스들을 호스팅할 수 있다. 도 1의 예에서, 블록체인 네트워크(102)는 노드의 피어-투-피어 네트워크로서 표현되고, 컴퓨팅 시스템들(106, 108)은 블록체인 네트워크(102)에 참여하는 제 1 엔티티 및 제 2 엔티티의 노드들을 각각 제공한다.
도 2는 본 명세서의 구현들에 따른 아키텍처(200)의 예를 도시한다. 예시적인 개념 아키텍처(200)는 엔티티 층(202), 호스팅된 서비스 층(204) 및 블록체인 네트워크 층(206)을 포함한다. 도시된 예에서, 엔티티 층(202)은 3개의 엔티티들(Entity_1(E1), Entity_2(E2) 및 Entity_3(E3))을 포함하고, 각각의 엔티티는 각각의 트랜잭션 관리 시스템(208)을 갖는다.
도시된 예에서, 호스팅된 서비스 층(204)은 각각의 트랜잭션 관리 시스템(210)에 대한 인터페이스들(210)을 포함한다. 일부 예들에서, 각각의 트랜잭션 관리 시스템(208)은 프로토콜(예를 들어, HTTPS(hypertext transfer protocol secure))을 사용하여 네트워크(예를 들어, 도 1의 네트워크(110))를 통해 각각의 인터페이스(210)와 통신한다. 일부 예들에서, 각각의 인터페이스(210)는 각각의 트랜잭션 관리 시스템(208)과 블록체인 네트워크 층(206) 사이의 통신 연결을 제공한다. 보다 구체적으로, 인터페이스(210)는 블록체인 네트워크 층(206)의 블록체인 네트워크(212)와 통신한다. 일부 예들에서, 인터페이스(210)와 블록체인 네트워크 층(206) 사이의 통신은 RPC(remote procedure call)들을 사용하여 수행된다. 일부 예들에서, 인터페이스들(210)은 각각의 트랜잭션 관리 시스템들(208)에 대한 "호스트" 블록체인 네트워크 노드들을 호스팅한다. 예를 들어, 인터페이스들(210)은 블록체인 네트워크(212)로의 액세스를 위한 API(application programming interface)를 제공한다.
본원에서 설명된 바와 같이, 블록체인 네트워크(212)는 블록체인(216)에 정보를 불변적으로 레코딩하는 복수의 노드들(214)을 포함하는 피어-투-피어 네트워크로서 제공된다. 단일 블록체인(216)이 개략적으로 도시되어 있지만, 블록체인(216)의 다수의 사본들이 제공되고 블록체인 네트워크(212)를 통해 유지된다. 예를 들어, 각각의 노드(214)는 블록체인의 사본을 저장한다. 일부 구현들에서, 블록체인(216)은 블록체인 네트워크에 참여하는 둘 이상의 엔티티들 사이에서 수행되는 트랜잭션들과 연관된 정보를 저장한다.
도 3은 본 명세서의 구현들에 따라, 블록체인 네트워크에서 데이터 아이솔레이션을 제공하기 위한 시스템(300)의 예를 도시한다. 도시된 바와 같이, 시스템(300)은 공개 블록체인(330)을 유지하는 블록체인 노드들(310A-D)을 포함하는 공개 블록체인 네트워크(305)를 포함한다. 시스템(300)은 워크플로우 노드들(320A-D)을 포함하는 개인 블록체인 네트워크(310)를 더 포함한다. 각각의 워크플로우 노드(320A-D)는 로컬 저장 디바이스(325A-D)와 연관된다. 워크플로우 노드들(320A-D)은 공개 블록체인(330)과 별개로 개인 블록체인(340)을 유지한다. 일부 구현들에서, 워크플로우 노드들(320A-D)은 또한 공개 블록체인(330)에 추가될 새로운 블록들의 생성 및 검증에 참여함으로써 공개 블록체인 네트워크(305)의 블록체인 노드들로서 기능할 수 있다.
동작에서, 워크플로우 노드들(320A-D)은 시스템(300)에서 수행되고 저장될 개인 트랜잭션을 수신한다. 일부 경우들에, 시스템(300)의 클라이언트는 블록체인 노드들(310A-D) 또는 워크플로우 노드들(320A-D) 중 하나에 트랜잭션을 제출할 수 있다. 일부 경우들에서, 트랜잭션은 블록체인 노드들(310A-D) 또는 워크플로우 노드들(320A-D) 중 하나 이상을 동작시키는 둘 이상의 엔티티들 사이에 있을 수 있고, 이 경우에 트랜잭션은 제어된 워크플로우 노드에서 이들 참여자 엔티티들 중 하나 이상으로부터 수신될 수 있다. 일부 구현들에서, 블록체인 노드들(310A-D)은 공개 블록체인(330)에 새로운 트랜잭션들을 레코딩하기 보다는, 프로세싱을 위해 워크플로우 노드들(320A-D)에 새로운 트랜잭션들을 포워딩하도록 구성될 수 있다.
일부 구현들에서, 각각의 워크플로우 노드(320A-D)는 수신된 트랜잭션 데이터를 자신의 로컬 저장소(325A-D)에 저장한다. 일부 구현들에서, 로컬 저장소(325A-D)는 예를 들어, 하드 드라이브, 랜덤 액세스 메모리(RAM), 플래시 메모리, 또는 다른 저장 디바이스들과 같은 연관된 워크플로우 노드(320A-D)에 커플링된 저장 디바이스일 수 있다. 일부 경우에, 로컬 저장소(325A-D)는 워크플로우 노드들(320A-D)에 의해 유지되는 분산 데이터베이스의 샤드(shard)들을 저장할 수 있다.
일부 구현들에서, 워크플로우 노드(예를 들어, 320A)가 새로운 트랜잭션을 수신할 때, 워크플로우 노드(320A)는 트랜잭션을 검증하고(아래에서 더 상세히 설명됨), 그것이 담당하는 트랜잭션(예를 들어, 스마트 계약 명령을 실행하는, 참가자 금융 기관들에서의 인출 및 입금 계정들 등)과 연관된 임의의 액션들을 수행한다. 일부 경우들에, 워크플로우 노드(320A)는 개인 블록체인(340)에의 저장을 위해 개인 트랜잭션의 표현을 생성한다. 예를 들어, 워크플로우 노드(320A)는 트랜잭션 데이터의 해시 및 모든 트랜잭션 참여자들의 아이덴티티들(identities)을 포함하는 트랜잭션의 표현을 생성할 수 있다. 일부 구현들에서, 각각의 개인 트랜잭션은 모든 트랜잭션 참여자들에 의해 암호로 서명될 것이다. 워크플로우 노드(320A)는 개인 블록체인(340)에 저장된 개인 트랜잭션의 표현에 이들 디지털 서명을 포함시킬 수 있다. 또한, 워크플로우(320A)는 원시 개인 트랜잭션 데이터를 자신의 로컬 저장소(325A)에 저장할 수 있다. 이러한 방식으로 트랜잭션 데이터를 구성함으로써, 민감한 트랜잭션 데이터(예를 들어, 트랜잭션과 연관된 금액들)는 워크플로우 노드(320A-D)에 의해 로컬로 저장될 수 있고, 따라서 비밀로 유지될 수 있는 반면, 개인 블록체인(340)은 시스템의 모든 개인 트랜잭션들의 컨센서스 레코(consensus record)드로서 역할을 할 수 있다. 일부 구현들에서, 개인 트랜잭션 데이터는 트랜잭션에 참여하는 엔티티들에 의해 제어되는 워크플로우 노드들(320A-D)의 로컬 저장소(325A-D)에 저장되며, 따라서 개인 트랜잭션 데이터를 다른 엔티티들로부터 아이솔레이션시킨다. 일부 경우들에서, 워크플로우 노드들(320A-D)은 종래의 컨센서스 방법들에 따라 개인 블록체인(340)을 유지한다.
일부 구현들에서, 워크플로우 노드(320A)는 개인 블록체인 네트워크(310) 상에서 전술한 액션들을 수행한 후에, 공개 블록체인(330)에의 포함을 위해 개인 트랜잭션의 참여자들에 대한 계정 레코드를 생성한다. 계정 레코드들은 개인 트랜잭션이 수행된 후 개인 트랜잭션의 참여자들의 계정들에 대한 업데이트된 잔액이 포함한다. 예를 들어, 계정 A가 계정 B로 $10를 이체한 개인 트랜잭션을 워크플로우 노드(320A)가 수신한 경우, 워크플로우 노드(320A)는 계정 A의 잔액에서 $10를 인출한 계정 레코드 및 계정 B의 잔액에 $10를 입금한 다른 계정 레코드를 생성할 수 있다. 생성된 계정 레코드들은, 이를테면, 워크플로우 노드(320A)가 계정 레코드들을 블록체인 노드들(310A-D)에 브로드캐스트함으로써 공개 블록체인(330)에의 포함을 위해 공개 블록체인 네트워크(305)에 전송될 수 있다.
일부 구현들에서, 워크플로우 노드(320A)는 공개 블록체인(330) 상에서 엔티티의 계정 잔액을 업데이트하기 전에 특정 엔티티를 수반하는 소정 수의 트랜잭션들이 수행될 때까지 대기하도록 구성될 수 있다. 예를 들어, 워크플로우 노드(320A)는 계정 A를 수반하는 3개의 트랜잭션들을 프로세싱한 후에만 계정 A에 대한 새로운 계정 레코드 및 잔액을 공개할 수 있다. 계정 잔액 업데이트들을 지연시키는 것은 관찰자가 계정 잔액들의 변화들에 기초하여 트랜잭션 세부사항들을 추론하는 것을 방지할 수 있다. 예를 들어, 시스템이 각각의 트랜잭션 후에 계정 잔액을 업데이트해야 하는 경우, 관찰자는 계정 A의 잔액에서 $10가 인출되고 계정 B의 잔액에 동일한 금액이 입금되는 것을 알아차림으로써 계정 A가 계정 B에 $10를 지불했다는 것을 추론할 수 있다. 각각의 계정 잔액 업데이트에 다수의 트랜잭션들에 의해 이루어진 변화들을 반영시킴으로써, 개별 트랜잭션 세부사항들은 추론하기가 더 어려워진다.
도 4는 본 명세서의 구현들에 따라, 블록체인 네트워크에서 데이터 아이솔레이션을 제공하기 위한 프로세스(400)의 예를 도시한다. 도시된 바와 같이, 프로세스는 도 3의 워크플로우 노드들(320A 및 320B) 및 블록체인 노드(310A)를 포함한다. 415에서, 워크플로우 노드(320A)는 워크플로우 노드(320B)에 개인 트랜잭션을 제안한다. 예를 들어, 개인 트랜잭션은 엔티티 제어 워크플로우 노드(320A)와 엔티티 제어 워크플로우 노드(320B) 사이의 트랜잭션일 수 있다. 일부 경우들에서, 워크플로우 노드(320A)는 제안된 트랜잭션들을 암호로 서명하여서, 워크플로우 노드(320B)가 트랜잭션을 제안하는 엔티티의 아이덴티티를 검증할 수 있게 한다.
420에서, 워크플로우 노드(320B)는 그의 개인 상태 및/또는 개인 블록체인(340)을 사용하여 제안된 트랜잭션을 검증한다. 예를 들어, 워크플로우 노드(320B)는 워크플로우 노드(320A)와 연관된 계정이 트랜잭션을 커버하기에 충분한 자금들을 갖는다는 것; 계정이 이체될 자산들(예를 들어, 화폐)의 소유자라는 것; 또는 개인 트랜잭션에 관한 다른 정보를 검증할 수 있다.
425에서, 워크플로우 노드(320B)는 트랜잭션이 성공적으로 검증되었음을 워크플로우 노드(320A)에 통지하고, 자신의 아이덴티티를 증명하기 위해 자신의 디지털 서명을 리턴한다. 430 및 435에서, 워크플로우 노드들(320A, B)은 합의된 개인 트랜잭션을 포함시키도록 각자의 개인 상태들(예를 들어, 로컬 저장소(325A, B))를 업데이트한다. 440에서, 워크플로우 노드(320A)는 위에서 설명된 바와 같이 개인 블록체인(340)에 개인 트랜잭션의 표현을 저장한다.
445에서, 워크플로우 노드(320A)는 블록체인 노드(310A)에 통지를 전송함으로써 워크플로우 노드들(320A 및 320B)과 연관된 계정들의 상태를 (위에서 설명된 바와 같이 계정 레코드들을 생성함으로써) 업데이트하며, 이는 공개 블록체인(330)에 업데이트들을 저장할 것이다. 이전에 논의된 바와 같이, 워크플로우 노드(320A)는 관찰자가 계정 잔액 업데이트들로부터 트랜잭션 세부사항들을 추론하는 것을 방지하기 위해 트랜잭션 참여자들에 대한 소정 수의 개인 트랜잭션들이 프로세싱된 후에 계정 잔액 업데이트들을 제공하도록 구성될 수 있다.
도 5는 본 명세서의 구현들에 따라 실행될 수 있는 프로세스(500)의 예를 도시한다. 일부 구현들에서, 예시적인 프로세스(500)는 하나 이상의 컴퓨팅 디바이스들을 사용하여 실행되는 하나 이상의 컴퓨터-실행 가능 프로그램들을 사용하여 수행될 수 있다.
505에서, 적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청이 워크플로우 노드에 의해 수신된다.
510에서, 요청을 수신한 것에 대한 응답으로, 워크플로우 노드는 요청된 개인 트랜잭션을 수행한다.
515에서, 개인 트랜잭션을 수행하는 것에 대한 응답으로, 워크플로우 노드는, 개인 트랜잭션에 액세스하도록 인가된 엔티티들만이 액세스 가능하도록 구성된 개인 트랜잭션의 표현을 생성한다.
520에서, 개인 트랜잭션의 표현이 개인 블록체인에 저장된다. 일부 경우들에서, 워크플로우 노드는 워크플로우 노드의 데이터스토어에 개인 트랜잭션을 저장하며, 여기서 데이터스토어는 개인 블록체인과 별개이며, 개인 트랜잭션의 표현을 생성하는 것은 개인 트랜잭션과 연관된 해시 값을 생성하는 것을 포함한다.
525에서, 워크플로우 노드는 개인 트랜잭션에 적어도 부분적으로 기초하여 개인 트랜잭션과 연관된 적어도 하나의 계정에 대한 계정 레코드를 생성하며, 여기서 계정 레코드는 개인 블록체인 내의 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성된다. 일부 구현들에서, 워크플로우 노드는 적어도 하나의 계정에 대한 계정 레코드의 로컬 표현을 유지하고, 개인 트랜잭션을 수행하는 것은 개인 트랜잭션에 기초하여 계정 레코드의 로컬 표현을 수정하는 것을 포함하고; 적어도 하나의 계정 레코드는 계정 레코드의 로컬 표현에 있는 정보의 서브세트를 포함한다. 일부 경우들에서, 계정 레코드는 적어도 하나의 계정의 잔액을 포함하고, 계정 레코드는 연관된 개인 트랜잭션에 관한 정보를 포함하지 않는다.
530에서, 계정 레코드는 공개 블록체인에 저장된다. 일부 경우들에서, 계정 레코드를 공개 블록체인에 저장하는 것은 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 것에 응답하여 수행된다.
일부 구현들에서, 공개 블록체인에 대한 계정의 대응하는 저장이 수행되지 않은 개인 트랜잭션들의 다른 표현들은 개인 블록체인에 저장된다.
일부 경우들에서, 공개/개인 키쌍의 공개 키로 암호화된 개인 트랜잭션의 암호화된 사본은 개인 블록체인과 별개의 데이터스토어에 저장된다.
일부 구현들에서, 개인 블록체인은 제 1 개인 블록체인이고, 개인 트랜잭션은 제 1 개인 트랜잭션이며, 방법은, 제 1 개인 트랜잭션과 상이한 제 2 개인 트랜잭션의 표현을, 제 1 개인 블록체인과 별개의 제 2 개인 블록체인에 저장하는 것; 그리고 제 2 개인 트랜잭션과 연관된 계정에 대한 계정 레코드를 상기 공개 블록체인에 저장하는 것을 더 포함한다.
본 명세서에서 설명된 청구대상 액션들 및 동작들의 구현들은, 본 명세서에서 개시된 구조들 및 그들의 구조적 등가물들을 포함하는 디지털 전자 회로로, 유형으로 구체화되는 컴퓨터 소프트웨어로 또는 펌웨어로, 컴퓨터 하드웨어로, 또는 그들 중 하나 이상의 조합들로 구현될 수 있다. 본 명세서에 설명된 청구대상의 구현들은, 데이터 프로세싱 장치에 의한 실행을 위해, 또는 데이터 프로세싱 장치의 동작을 제어하기 위해 컴퓨터 프로그램 캐리어들 상에 인코딩된 하나 이상의 컴퓨터 프로그램들, 예를 들어, 컴퓨터 프로그램 명령들의 하나 이상의 모듈들로서 구현될 수 있다. 캐리어는 유형의 비-일시적인 컴퓨터 저장 매체일 수 있다. 대안적으로 또는 부가적으로, 캐리어는 데이터 프로세싱 장치에 의한 실행을 위해 적합한 수신기 장치로의 송신을 위한 정보를 인코딩하기 위해 생성되는, 인위적으로 생성된 전파된 신호, 예를 들어, 머신-생성 전기, 광학 또는 전자기 신호일 수 있다. 컴퓨터-저장 매체는 머신-판독 가능 저장 디바이스, 머신-판독 가능 저장 기재, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들의 하나 이상의 조합이거나 그의 부분일 수 있다. 컴퓨터 저장 매체는 전파된 신호는 아니다.
"데이터 프로세싱 장치"라는 용어는 예로서, 프로그래밍 가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함해서, 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 머신들을 포함한다. 데이터 프로세싱 장치는 특수-목적 로직 회로, 예를 들어 FPGA(field programmable gate array), ASIC(application-specific integrated circuit), 또는 GPU(graphics processing unit)를 포함할 수 있다. 장치는 또한, 하드웨어 외에도, 컴퓨터 프로그램들에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트, 또는 코드로서 또한 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일되거나 인터프리팅된 언어들, 선언형 또는 절차형 언어들을 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며; 그것은 자립형 프로그램 또는 모듈, 컴포넌트, 엔진, 서브루틴 또는 컴퓨팅 환경에서 실행하기에 적합한 다른 유닛을 포함한 임의의 형태로 배포될 수 있으며, 이 환경은 하나 이상의 위치들에 있는 데이터 통신 네트워크에 의해 상호연결되는 하나 이상의 컴퓨터들을 포함할 수 있다.
컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 대응할 필요는 없을 수 있다. 컴퓨터 프로그램은, 다른 프로그램들 또는 데이터(예를 들어, 마크업 언어 문서에 저장되는 하나 이상의 스크립트들)를 보유하는 파일의 부분에, 문제의 프로그램에 전용된 단일 파일에, 또는 다수의 통합된 파일들(예를 들어, 하나 이상의 모듈들, 서브-프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다.
본 명세서에서 설명된 프로세스들 및 로직 흐름들은 입력 데이터를 조작하고 출력을 생성함으로써 동작들을 수행하도록 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 컴퓨터들에 의해 수행될 수 있다. 프로세스 및 로직 흐름들은 또한 특수-목적 로직 회로, 예를 들어 FPGA, ASIC 또는 GPU, 또는 특수-목적 로직 회로 및 하나 이상의 프로그래밍된 컴퓨터들의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서들, 또는 둘 모두 또는 임의의 다른 종류의 중앙 처리 장치에 기초할 수 있다. 일반적으로, 중앙 처리 장치는 판독-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령들 및/또는 데이터를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령들을 실행하기 위한 중앙 처리 장치 및 명령들 및/또는 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다. 중앙 처리 장치 및 메모리는 특수-목적 로직 회로에 의해 보완되거나 또는 거기에 통합될 수 있다.
일반적으로, 컴퓨터는 적어도 하나의 비-일시적인 컴퓨터-판독 가능 저장 매체(컴퓨터-판독 가능 메모리로서 또한 지칭됨)에 커플링될 것이다. 컴퓨터에 커플링된 저장 매체는 컴퓨터의 내부 컴포넌트들(예를 들어, 통합된 하드 드라이브) 또는 외부 컴포넌트(예를 들어, 범용 직렬 버스(USB) 하드 드라이브 또는 네트워크를 통해 액세스되는 저장 시스템)일 수 있다. 저장 매체의 예들은 예를 들어, 자기, 자기-광학 또는 광학 디스크들, 솔리드 스테이트 드라이브들, 클라우드 저장 시스템들과 같은 네트워크 저장 자원들, 또는 다른 유형들의 저장 매체를 포함할 수 있다. 그러나 컴퓨터는 이러한 디바이스들을 가질 필요가 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 몇 개만 언급하면, 모바일 전화, 개인용 디지털 보조기기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(GPS) 수신기 또는 휴대용 저장 디바이스, 예를 들어 범용 직렬 버스 (USB) 플래시 드라이브에 임베딩될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 설명된 청구 대상의 구현들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스 예를 들어, LCD(liquid crystal display) 모니터, 및 사용자가 입력을 컴퓨터에 제공할 수 있게 하는 입력 디바이스, 예를 들어 키보드 및 포인팅 디바이스, 예를 들어 마우스, 트랙볼 또는 터치패드를 갖는 컴퓨터 상에 구현되거나, 이 컴퓨터와 통신하도록 구성될 수 있다. 다른 종류들의 디바이스들은 또한, 사용자와의 상호작용을 제공하기 위해 사용될 수 있으며, 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백 예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 스피치, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 게다가, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 이 디바이스로부터 문서들을 수신함으로써, 예를 들어, 웹 브라우저로부터 수신된 요청들에 대한 응답으로 사용자의 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 또는 사용자 디바이스 예를 들어, 스마트폰 또는 전자 태블릿 상에서 실행되는 앱과 상호작용함으로써 사용자와 상호작용할 수 있다. 또한, 컴퓨터는 텍스트 메시지 또는 다른 형태들의 메시지를 개인용 디바이스, 예를 들어 메시징 애플리케이션을 실행하는 스마트 폰에 전송하고 답신으로 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서는 시스템들, 장치 및 컴퓨터 프로그램 컴포넌트들과 관련하여 "~ 하도록 구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터들의 시스템이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은, 시스템에는, 동작 시에 시스템이 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램들이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은, 하나 이상의 프로그램들이, 데이터 프로세싱 장치에 의해 실행될 때, 장치로 하여금 동작들 또는 액션들을 수행하게 하는 명령들을 포함한다는 것을 의미한다. 특수-목적 로직 회로가 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은, 회로가 동작들 또는 액션들을 수행하는 전자 로직을 갖는다는 것을 의미한다.
본 명세서가 다수의 특정 구현 세부사항들을 포함하지만, 이들은 청구항들 그 자체들에 의해 정의되는 청구되는 대상의 범위에 관한 제한들로서 해석되어서는 안 되며, 오히려, 특정 구현들에 특유할 수 있는 특징들의 설명들로서 해석되어야 한다. 별개의 구현들의 맥락에서 본 명세서에 설명된 소정의 특징들은 또한, 단일 구현으로 조합하여 실현될 수 있다. 대조적으로, 단일 구현의 맥락에서 설명된 다양한 특징들은 또한, 다수의 구현들에서 개별적으로 또는 임의의 적합한 서브조합으로 실현될 수 있다. 더욱이, 특징들이 소정의 조합들로 작용하는 것으로 위에서 설명되고 심지어 초기에 이와 같이 청구될 수 있지만, 일부 경우들에서, 청구된 조합으로부터의 하나 이상의 특징들은 그 조합으로부터 제거될 수 있고, 청구항은 서브조합 또는 서브조합의 변동과 관련될 수 있다.
유사하게, 동작들이 특정한 순서로 도면들에 도시되고 청구항들에서 나열되지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서 또는 순차적인 순서로 수행되거나, 모든 예시된 동작들이 수행될 것을 요구하는 것으로서 이해되지는 않아야 한다. 소정의 환경들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 위에서 설명된 구현에서의 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 구현들에서 그러한 분리를 요구하는 것으로서 이해되지는 않아야 하고, 그리고 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로, 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
청구대상의 특정 구현들이 설명되었다. 다른 구현들은 다음의 청구항들의 범위 내에 존재한다. 예를 들어, 청구항들에서 열거된 액션들은, 상이한 순서로 수행될 수 있으며, 그럼에도 불구하고 원하는 결과들을 달성할 수 있다. 일 예로서, 첨부한 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해, 도시된 특정한 순서 또는 순차적인 순서를 반드시 요구하지는 않는다. 일부 경우들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다.
Claims (27)
- 블록체인 상에 저장된 민감한 데이터를 보호하기 위한 컴퓨터-구현 방법으로서,
적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청을 수신하는 단계;
상기 요청을 수신하는 것에 응답하여, 워크플로우 노드(workflow node)에 의해, 상기 개인 트랜잭션을 수행하는 단계;
상기 개인 트랜잭션을 수행하는 것에 응답하여, 상기 워크플로우 노드에 의해, 상기 개인 트랜잭션에 액세스하도록 인가된(authorized) 엔티티들만이 액세스 가능하도록 구성된 상기 개인 트랜잭션의 표현(representation) ― 상기 개인 트랜잭션의 표현은 상기 적어도 하나의 계정과 연관된 트랜잭션 참여자의 아이덴티티를 포함함 ― 을 생성하는 단계;
상기 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 단계;
상기 워크플로우 노드에 의해, 상기 개인 트랜잭션에 적어도 부분적으로 기초하여 상기 개인 트랜잭션과 연관된 상기 적어도 하나의 계정에 대한 계정 레코드를 생성하는 단계 ― 상기 계정 레코드는, 상기 개인 블록체인 내의 상기 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성되고, 상기 계정 레코드는 상기 적어도 하나의 계정과 연관된 상기 트랜잭션 참여자의 업데이트된 잔액을 포함함 ― ; 및
상기 계정 레코드를 공개 블록체인에 저장하는 단계
를 포함하는 컴퓨터-구현 방법. - 제 1 항에 있어서, 상기 방법은, 상기 워크플로우 노드에 의해, 상기 워크플로우 노드의 데이터스토어에 상기 개인 트랜잭션을 저장하는 단계를 더 포함하고,
상기 데이터스토어는 상기 개인 블록체인과는 별개이고,
상기 개인 트랜잭션의 표현을 생성하는 단계는, 상기 개인 트랜잭션과 연관된 해시 값을 생성하는 단계를 포함하는 것인 컴퓨터-구현 방법. - 제 1 항에 있어서, 상기 방법은, 상기 워크플로우 노드에 의해, 상기 적어도 하나의 계정에 대한 상기 계정 레코드의 로컬 표현을 유지하는 단계를 더 포함하고;
상기 개인 트랜잭션을 수행하는 단계는, 상기 개인 트랜잭션에 기초하여 상기 계정 레코드의 상기 로컬 표현을 수정하는 단계를 포함하고;
상기 적어도 하나의 계정 레코드는, 상기 계정 레코드의 상기 로컬 표현에서의 정보의 서브세트를 포함하는 것인 컴퓨터-구현 방법. - 제 1 항에 있어서, 상기 계정 레코드를 공개 블록체인에 저장하는 단계는, 상기 개인 트랜잭션의 표현을 상기 개인 블록체인에 저장하는 것에 응답하여 수행되는 것인 컴퓨터-구현 방법.
- 제 1 항에 있어서, 상기 방법은, 상기 개인 블록체인에, 개인 트랜잭션들의 다른 표현들을 저장하는 단계를 더 포함하고,
상기 개인 트랜잭션들에 대해서는, 상기 공개 블록체인에, 대응하는 계정의 저장이 수행되지 않는 것인 컴퓨터-구현 방법. - 제 1 항에 있어서, 상기 방법은, 공개/개인 키쌍(keypair)의 공개 키로 암호화된 상기 개인 트랜잭션의 암호화된 사본을, 상기 개인 블록체인과는 별개의 데이터스토어에 저장하는 단계를 더 포함하는 컴퓨터-구현 방법.
- 제 6 항에 있어서, 상기 개인 트랜잭션의 암호화된 사본을 저장하는 단계는, 상기 공개/개인 키쌍의 개인 키로 생성된 상기 암호화된 사본의 서명을 저장하는 단계를 포함하는 것인 컴퓨터-구현 방법.
- 제 1 항에 있어서, 상기 개인 블록체인은 제 1 개인 블록체인이고, 상기 개인 트랜잭션은 제 1 개인 트랜잭션이며,
상기 방법은,
상기 제 1 개인 트랜잭션과는 상이한 제 2 개인 트랜잭션의 표현을, 상기 제 1 개인 블록체인과는 별개의 제 2 개인 블록체인에 저장하는 단계;
상기 워크플로우 노드에 의해, 수행된 개인 트랜잭션들의 수를 미리 결정된 개인 트랜잭션들의 수를 나타내는 문턱값과 비교하는 단계;
상기 워크플로우 노드에 의해 그리고 상기 개인 트랜잭션들의 수를 상기 문턱값과 비교한 결과에 기초하여, 상기 제 2 개인 트랜잭션과 연관된 계정에 대한 계정 레코드가 상기 공개 블록체인에 저장될 수 있음을 결정하는 단계; 및
상기 제 2 개인 트랜잭션과 연관된 상기 계정에 대한 상기 계정 레코드를 상기 공개 블록체인에 저장하는 단계
를 더 포함하는 컴퓨터-구현 방법. - 제 1 항에 있어서, 상기 계정 레코드는 상기 적어도 하나의 계정의 잔액을 포함하고, 상기 계정 레코드는 상기 연관된 개인 트랜잭션에 관한 정보를 포함하지 않는 것인 컴퓨터-구현 방법.
- 비-일시적인 컴퓨터-판독 가능 저장 매체로서,
상기 비-일시적인 컴퓨터-판독 가능 저장 매체는, 하나 이상의 컴퓨터에 커플링되고,
적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청을 수신하고;
상기 요청을 수신하는 것에 응답하여, 워크플로우 노드에 의해, 상기 개인 트랜잭션을 수행하고;
상기 개인 트랜잭션을 수행하는 것에 응답하여, 상기 워크플로우 노드에 의해, 상기 개인 트랜잭션에 액세스하도록 인가된 엔티티들만이 액세스 가능하도록 구성된 개인 트랜잭션의 표현을 생성하고 ― 상기 개인 트랜잭션의 표현은 상기 적어도 하나의 계정과 연관된 트랜잭션 참여자의 아이덴티티를 포함함 ―;
상기 개인 트랜잭션의 표현을 개인 블록체인에 저장하고;
상기 워크플로우 노드에 의해, 상기 개인 트랜잭션에 적어도 부분적으로 기초하여 상기 개인 트랜잭션과 연관된 상기 적어도 하나의 계정에 대한 계정 레코드를 생성하고 ― 상기 계정 레코드는, 상기 개인 블록체인 내의 상기 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성되고, 상기 계정 레코드는 상기 적어도 하나의 계정과 연관된 상기 트랜잭션 참여자의 업데이트된 잔액을 포함함 ― ; 그리고
상기 계정 레코드를 공개 블록체인에 저장하도록
상기 하나 이상의 컴퓨터에 의해 실행 가능한 명령어들이 기록된 것인 비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 10 항에 있어서,
상기 워크플로우 노드에 의해, 상기 워크플로우 노드의 데이터스토어에 상기 개인 트랜잭션을 저장하도록 ― 상기 데이터스토어는 상기 개인 블록체인과는 별개이고, 상기 개인 트랜잭션의 표현을 생성하는 것은 상기 개인 트랜잭션과 연관된 해시 값을 생성하는 것을 포함함 -
상기 하나 이상의 컴퓨터에 의해 실행 가능한 명령어들이 또한 기록된 것인 비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 10 항에 있어서,
상기 워크플로우 노드에 의해, 상기 적어도 하나의 계정에 대한 계정 레코드의 로컬 표현을 유지하도록
상기 하나 이상의 컴퓨터에 의해 실행 가능한 명령어들이 또한 기록되고,
상기 개인 트랜잭션을 수행하는 것은, 상기 개인 트랜잭션에 기초하여 상기 계정 레코드의 상기 로컬 표현을 수정하는 것을 포함하고,
상기 적어도 하나의 계정 레코드는, 상기 계정 레코드의 상기 로컬 표현에서의 정보의 서브세트를 포함하는 것인 비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 10 항에 있어서, 상기 계정 레코드를 공개 블록체인에 저장하는 것은, 상기 개인 트랜잭션의 표현을 상기 개인 블록체인에 저장하는 것에 응답하여 수행되는 것인 비-일시적인 컴퓨터-판독 가능 저장 매체.
- 제 10 항에 있어서,
상기 개인 블록체인에, 개인 트랜잭션들의 다른 표현들을 저장하도록
상기 하나 이상의 컴퓨터에 의해 실행 가능한 명령어들이 또한 기록되고,
상기 개인 트랜잭션들에 대해서는, 상기 공개 블록체인에, 대응하는 계정의 저장이 수행되지 않는 것인 비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 10 항에 있어서,
공개/개인 키쌍의 공개 키로 암호화된 상기 개인 트랜잭션의 암호화된 사본을, 상기 개인 블록체인과는 별개의 데이터스토어에 저장하도록
상기 하나 이상의 컴퓨터에 의해 실행 가능한 명령어들이 또한 기록된 것인 비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 15 항에 있어서, 상기 개인 트랜잭션의 암호화된 사본을 저장하는 것은, 상기 공개/개인 키쌍의 개인 키로 생성된 상기 암호화된 사본의 서명을 저장하는 것을 포함하는 것인 비-일시적인 컴퓨터-판독 가능 저장 매체.
- 제 10 항에 있어서, 상기 개인 블록체인은 제 1 개인 블록체인이고, 상기 개인 트랜잭션은 제 1 개인 트랜잭션이며,
상기 컴퓨터-판독 가능 매체는,
상기 제 1 개인 트랜잭션과는 상이한 제 2 개인 트랜잭션의 표현을, 상기 제 1 개인 블록체인과는 별개의 제 2 개인 블록체인에 저장하고;
상기 워크플로우 노드에 의해, 수행된 개인 트랜잭션들의 수를 미리 결정된 개인 트랜잭션들의 수를 나타내는 문턱값과 비교하고;
상기 워크플로우 노드에 의해 그리고 상기 개인 트랜잭션들의 수를 상기 문턱값과 비교한 결과에 기초하여, 상기 제 2 개인 트랜잭션과 연관된 계정에 대한 계정 레코드가 상기 공개 블록체인에 저장될 수 있음을 결정하고; 그리고
상기 제 2 개인 트랜잭션과 연관된 상기 계정에 대한 상기 계정 레코드를 상기 공개 블록체인에 저장하도록
상기 하나 이상의 컴퓨터에 의해 실행 가능한 명령어들이 또한 기록된 것인 비-일시적인 컴퓨터-판독 가능 저장 매체. - 제 10 항에 있어서, 상기 계정 레코드는 상기 적어도 하나의 계정의 잔액을 포함하고, 상기 계정 레코드는 상기 연관된 개인 트랜잭션에 관한 정보를 포함하지 않는 것인 비-일시적인 컴퓨터-판독 가능 저장 매체.
- 시스템으로서,
하나 이상의 컴퓨터; 및
하나 이상의 컴퓨터 메모리 디바이스
를 포함하고,
상기 하나 이상의 컴퓨터 메모리 디바이스는, 상기 하나 이상의 컴퓨터와 상호 운용 가능하게 커플링되고, 상기 하나 이상의 컴퓨터에 의해 실행될 때, 하나 이상의 동작들을 수행하는 하나 이상의 명령어를 저장하는 유형의(tangible), 비-일시적인, 기계-판독 가능 매체를 가지고, 상기 동작들은,
적어도 하나의 계정과 연관된 개인 트랜잭션을 수행하라는 요청을 수신하는 동작;
상기 요청을 수신하는 것에 응답하여, 워크플로우 노드에 의해, 상기 개인 트랜잭션을 수행하는 동작;
상기 개인 트랜잭션을 수행하는 것에 응답하여, 상기 워크플로우 노드에 의해, 상기 개인 트랜잭션에 액세스하도록 인가된 엔티티들만이 액세스 가능하도록 구성된 상기 개인 트랜잭션의 표현을 생성하는 동작 ― 상기 개인 트랜잭션의 표현은 상기 적어도 하나의 계정과 연관된 트랜잭션 참여자의 아이덴티티를 포함함 ―;
상기 개인 트랜잭션의 표현을 개인 블록체인에 저장하는 동작;
상기 워크플로우 노드에 의해, 상기 개인 트랜잭션에 적어도 부분적으로 기초하여 상기 개인 트랜잭션과 연관된 상기 적어도 하나의 계정에 대한 계정 레코드를 생성하는 동작 ― 상기 계정 레코드는 상기 개인 블록체인 내의 상기 개인 트랜잭션의 표현에 액세스하도록 인가되지 않은 적어도 하나의 엔티티가 액세스 가능하도록 구성되고, 상기 계정 레코드는 상기 적어도 하나의 계정과 연관된 상기 트랜잭션 참여자의 업데이트된 잔액을 포함함 ― ; 및
상기 계정 레코드를 공개 블록체인에 저장하는 동작
을 포함하는 것인 시스템. - 제 19 항에 있어서,
상기 동작들은, 상기 워크플로우 노드에 의해, 상기 워크플로우 노드의 데이터스토어에 상기 개인 트랜잭션을 저장하는 동작을 더 포함하고,
상기 데이터스토어는 상기 개인 블록체인과는 별개이고,
상기 개인 트랜잭션의 표현을 생성하는 동작은, 상기 개인 트랜잭션과 연관된 해시 값을 생성하는 동작을 포함하는 것인 시스템. - 제 19 항에 있어서,
상기 동작들은, 상기 워크플로우 노드에 의해, 상기 적어도 하나의 계정에 대한 상기 계정 레코드의 로컬 표현을 유지하는 동작을 더 포함하고;
상기 개인 트랜잭션을 수행하는 동작은, 상기 개인 트랜잭션에 기초하여 상기 계정 레코드의 상기 로컬 표현을 수정하는 동작을 포함하고;
상기 적어도 하나의 계정 레코드는, 상기 계정 레코드의 상기 로컬 표현에서의 정보의 서브세트를 포함하는 것인 시스템. - 제 19 항에 있어서, 상기 계정 레코드를 공개 블록체인에 저장하는 동작은, 상기 개인 트랜잭션의 표현을 상기 개인 블록체인에 저장하는 것에 응답하여 수행되는 것인 시스템.
- 제 19 항에 있어서,
상기 동작들은, 상기 개인 블록체인에, 개인 트랜잭션들의 다른 표현들을 저장하는 동작을 더 포함하고,
상기 개인 트랜잭션들에 대해서는, 상기 공개 블록체인에, 대응하는 계정의 저장이 수행되지 않는 것인 시스템. - 제 19 항에 있어서, 상기 동작들은, 공개/개인 키쌍의 공개 키로 암호화된 상기 개인 트랜잭션의 암호화된 사본을, 상기 개인 블록체인과는 별개의 데이터스토어에 저장하는 동작을 더 포함하는 시스템.
- 제 24 항에 있어서, 상기 개인 트랜잭션의 암호화된 사본을 저장하는 동작은, 상기 공개/개인 키쌍의 개인 키로 생성된 상기 암호화된 사본의 서명을 저장하는 동작을 포함하는 것인 시스템.
- 제 19 항에 있어서, 상기 개인 블록체인은 제 1 개인 블록체인이고, 상기 개인 트랜잭션은 제 1 개인 트랜잭션이며,
상기 동작들은,
상기 제 1 개인 트랜잭션과는 상이한 제 2 개인 트랜잭션의 표현을, 상기 제 1 개인 블록체인과는 별개의 제 2 개인 블록체인에 저장하는 동작;
상기 워크플로우 노드에 의해, 수행된 개인 트랜잭션들의 수를 미리 결정된 개인 트랜잭션들의 수를 나타내는 문턱값과 비교하는 동작;
상기 워크플로우 노드에 의해 그리고 상기 개인 트랜잭션들의 수를 상기 문턱값과 비교한 결과에 기초하여, 상기 제 2 개인 트랜잭션과 연관된 계정에 대한 계정 레코드가 상기 공개 블록체인에 저장될 수 있음을 결정하는 동작; 및
상기 제 2 개인 트랜잭션과 연관된 상기 계정에 대한 상기 계정 레코드를 상기 공개 블록체인에 저장하는 동작
을 더 포함하는 시스템. - 제 19 항에 있어서, 상기 계정 레코드는 상기 적어도 하나의 계정의 잔액을 포함하고, 상기 계정 레코드는 상기 연관된 개인 트랜잭션에 관한 정보를 포함하지 않는 것인 시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/122166 WO2019072299A2 (en) | 2018-12-19 | 2018-12-19 | DATA INSULATION IN A BLOCK CHAIN NETWORK |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200078420A KR20200078420A (ko) | 2020-07-01 |
KR102303376B1 true KR102303376B1 (ko) | 2021-09-24 |
Family
ID=66100121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197022207A KR102303376B1 (ko) | 2018-12-19 | 2018-12-19 | 블록체인 네트워크에서의 데이터 아이솔레이션 |
Country Status (10)
Country | Link |
---|---|
US (3) | US10628605B2 (ko) |
EP (1) | EP3559885B1 (ko) |
JP (1) | JP6883110B2 (ko) |
KR (1) | KR102303376B1 (ko) |
CN (1) | CN110088793B (ko) |
MY (1) | MY194395A (ko) |
PH (1) | PH12019501713A1 (ko) |
SG (1) | SG11201906838QA (ko) |
TW (1) | TWI705689B (ko) |
WO (1) | WO2019072299A2 (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111194441B (zh) * | 2018-04-25 | 2023-10-10 | 重庆小雨点小额贷款有限公司 | 一种基于区块链的数据管理方法及相关系统 |
US11216573B1 (en) * | 2018-08-06 | 2022-01-04 | United Services Automobile Association (Usaa) | Privacy preservation in private consensus networks |
US11164180B1 (en) | 2018-08-06 | 2021-11-02 | United Services Automobile Association (Usaa) | Privacy preservation in private consensus networks |
EP3559885B1 (en) | 2018-12-19 | 2022-08-24 | Advanced New Technologies Co., Ltd. | Data isolation in a blockchain network |
CN111164935B (zh) * | 2019-05-31 | 2023-08-22 | 创新先进技术有限公司 | 在基于区块链的私有交易中提供隐私和安全保护的系统和方法 |
WO2021009390A1 (es) * | 2019-07-18 | 2021-01-21 | Allfunds Bank, S.A.U | Disposición de cadenas de bloques con una transacción restringida |
EP4012591A4 (en) * | 2019-08-06 | 2022-09-21 | Sony Group Corporation | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING METHOD, AND PROGRAM |
SG11202003810RA (en) * | 2019-08-27 | 2020-05-28 | Advanced New Technologies Co Ltd | System and method for registering subscribable sub-states in blockchain |
US11277260B2 (en) | 2019-09-17 | 2022-03-15 | International Business Machines Corporation | Off-chain notification of updates from a private blockchain |
CN110706108B (zh) * | 2019-09-30 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 在区块链中并发执行交易的方法和装置 |
US11290294B2 (en) * | 2019-10-04 | 2022-03-29 | Sap Se | Collaboration hub with blockchain verification |
CN111027973A (zh) * | 2019-12-04 | 2020-04-17 | 杭州复杂美科技有限公司 | 转账证明授权提交方法、设备和存储介质 |
US20210250219A1 (en) * | 2020-02-07 | 2021-08-12 | Bank Of America Corporation | System for integration and interoperability between disparate distributed server technologies |
US20240185199A1 (en) * | 2020-03-12 | 2024-06-06 | Logisteed, Ltd. | Payment remittance support system, information processing apparatus, payment remittance support method, and storage medium |
CN111489156A (zh) * | 2020-03-18 | 2020-08-04 | 平安国际智慧城市科技股份有限公司 | 基于区块链的交易方法、电子装置及可读存储介质 |
CN111989707B (zh) * | 2020-06-08 | 2024-04-16 | 支付宝实验室(新加坡)有限公司 | 管理基于区块链的海关清关服务的用户权限 |
WO2020169125A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based document registration for custom clearance |
WO2020169122A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Blockchain-based import custom clearance data processing |
EP3841491B1 (en) | 2020-06-08 | 2023-08-02 | Alipay Labs (Singapore) Pte. Ltd. | Blockchain-based smart contract pools |
CN114930330A (zh) | 2020-06-08 | 2022-08-19 | 支付宝实验室(新加坡)有限公司 | 基于区块链的海关清关服务平台的用户管理 |
WO2020169124A2 (en) | 2020-06-08 | 2020-08-27 | Alipay Labs (singapore) Pte. Ltd. | Distributed storage of custom clearance data |
US11853291B2 (en) * | 2020-07-06 | 2023-12-26 | International Business Machines Corporation | Privacy preserving architecture for permissioned blockchains |
CN113302612B (zh) * | 2020-11-25 | 2022-12-20 | 支付宝(杭州)信息技术有限公司 | 一种用于跨链和跨网络数据传输的计算机实现方法、系统及装置 |
US12010226B2 (en) * | 2021-03-17 | 2024-06-11 | International Business Machines Corporation | Blockchain data segregation |
CN113726747B (zh) * | 2021-08-11 | 2022-07-12 | 东南大学 | 一种基于区块链的工业互联网数据访问控制系统 |
CN114510540A (zh) * | 2022-04-19 | 2022-05-17 | 北京微芯感知科技有限公司 | 数据处理方法、计算存储分离系统及区块链网络架构 |
CN115659410A (zh) * | 2022-07-29 | 2023-01-31 | 湖南工商大学 | 一种保证网络安全的智慧医保支付系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170230375A1 (en) * | 2016-02-10 | 2017-08-10 | Bank Of America Corporation | System for centralized control of secure access to process data network |
US20180068130A1 (en) * | 2016-09-02 | 2018-03-08 | The Toronto-Dominion Bank | System and method for maintaining a segregated database in a multiple distributed ledger system |
US20180349621A1 (en) * | 2017-06-01 | 2018-12-06 | Schvey, Inc. d/b/a/ Axoni | Distributed privately subspaced blockchain data structures with secure access restriction management |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9298387B2 (en) * | 2013-07-17 | 2016-03-29 | International Business Machines Corporation | Recovering from a pending uncompleted reorganization of a data set |
WO2015142765A1 (en) * | 2014-03-17 | 2015-09-24 | Coinbase, Inc | Bitcoin host computer system |
US20170085555A1 (en) | 2015-07-14 | 2017-03-23 | Fmr Llc | Point-to-Point Transaction Guidance Apparatuses, Methods and Systems |
CN105488675B (zh) * | 2015-11-25 | 2019-12-24 | 布比(北京)网络技术有限公司 | 一种区块链的分布式共享总账构建方法 |
US10026118B2 (en) * | 2016-02-22 | 2018-07-17 | Bank Of America Corporation | System for allowing external validation of data in a process data network |
US10135870B2 (en) * | 2016-02-22 | 2018-11-20 | Bank Of America Corporation | System for external validation of secure process transactions |
US10992649B2 (en) * | 2016-04-01 | 2021-04-27 | Consensys Software Inc. | Systems and methods for privacy in distributed ledger transactions |
CN109313753A (zh) * | 2016-04-01 | 2019-02-05 | 摩根大通国家银行 | 用于在私有分布式账本中提供数据隐私的系统和方法 |
WO2017189027A1 (en) * | 2016-04-29 | 2017-11-02 | Digital Asset Holdings | Digital asset modeling |
US20170331896A1 (en) * | 2016-05-13 | 2017-11-16 | De La Rue International Limited | Methods and systems for processing assets |
US10826685B1 (en) | 2016-06-28 | 2020-11-03 | Amazon Technologies, Inc. | Combined blockchain integrity |
KR101841566B1 (ko) | 2016-10-11 | 2018-05-04 | 주식회사 코인플러그 | 블록체인 내의 블록별로 발란스 데이터베이스를 관리하여 전자 바우처를 발행, 사용, 환불, 정산 및 파기하는 방법과 이를 이용한 서버 |
US10361853B2 (en) * | 2016-10-12 | 2019-07-23 | Bank Of America Corporation | Automated data authentication and service authorization via cryptographic keys in a private blockchain |
US10158611B2 (en) * | 2016-11-17 | 2018-12-18 | Bank Of America Corporation | System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash |
US10355869B2 (en) * | 2017-01-12 | 2019-07-16 | International Business Machines Corporation | Private blockchain transaction management and termination |
US10810290B2 (en) * | 2017-03-05 | 2020-10-20 | Ronald H Minter | Robust method and an apparatus for authenticating a client in non-face-to-face online interactions based on a combination of live biometrics, biographical data, blockchain transactions and signed digital certificates |
JPWO2018174112A1 (ja) * | 2017-03-21 | 2020-05-14 | 渡辺 浩志 | ネットワーク上の装置認証技術 |
JP6199518B1 (ja) * | 2017-03-23 | 2017-09-20 | 株式会社bitFlyer | プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム |
CN107196900B (zh) * | 2017-03-24 | 2020-04-24 | 创新先进技术有限公司 | 一种共识校验的方法及装置 |
US20180285839A1 (en) * | 2017-04-04 | 2018-10-04 | Datient, Inc. | Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network |
US10812270B2 (en) * | 2017-04-07 | 2020-10-20 | Citizen Hex Inc. | Techniques for increasing the probability that a transaction will be included in a target block of a blockchain |
US11922363B2 (en) * | 2017-07-05 | 2024-03-05 | United Parcel Service Of America, Inc. | Counterparty physical proximity verification for digital asset transfers |
WO2019018776A1 (en) * | 2017-07-21 | 2019-01-24 | Patientory, Inc. | BLOCK CHAIN NETWORK FOR SECURE EXCHANGE OF HEALTH CARE INFORMATION |
US11196552B2 (en) * | 2017-08-04 | 2021-12-07 | Truss Financial, LLC | Secure data distribution protocol using blockchains |
US10762478B1 (en) | 2017-08-04 | 2020-09-01 | Wells Fargo Bank, N.A. | Creating and managing private electronic currency |
US10614661B2 (en) * | 2017-10-31 | 2020-04-07 | Americorp Investments Llc | Management of virtual goods in distributed multi-ledger gambling architecture |
CN108154367B (zh) * | 2017-12-26 | 2021-07-02 | 成都质数斯达克科技有限公司 | 一种区块链业务校验方法及装置 |
US11449842B2 (en) * | 2018-02-23 | 2022-09-20 | Jpmorgan Chase Bank, N.A. | Systems and methods for private settlement of distributed ledger transactions |
US20190303623A1 (en) * | 2018-04-02 | 2019-10-03 | Ca, Inc. | Promotion smart contracts for software development processes |
US10928803B2 (en) * | 2018-05-02 | 2021-02-23 | Rockwell Automation Technologies, Inc. | Managing blockchains for multiple components in an industrial facility |
US20190354606A1 (en) * | 2018-05-18 | 2019-11-21 | Factom | Private Cryptocoinage in Blockchain Environments |
CN108805656B (zh) * | 2018-05-22 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 供需匹配方法、平台、系统和计算机可读存储介质 |
CN108805568A (zh) * | 2018-05-28 | 2018-11-13 | 夸克链科技(深圳)有限公司 | 一种区块链智能协同交易模式 |
US11328347B2 (en) * | 2018-06-28 | 2022-05-10 | International Business Machines Corporation | Rental asset processing for blockchain |
US10984410B2 (en) * | 2018-11-15 | 2021-04-20 | Adobe Inc. | Entity-sovereign data wallets using distributed ledger technology |
US20200167769A1 (en) * | 2018-11-27 | 2020-05-28 | Its, Inc. | Distributed ledger settlement transactions |
US11127000B2 (en) * | 2018-12-17 | 2021-09-21 | Intel Corporation | Reducing blockchain transaction delay |
EP3559885B1 (en) | 2018-12-19 | 2022-08-24 | Advanced New Technologies Co., Ltd. | Data isolation in a blockchain network |
-
2018
- 2018-12-19 EP EP18866463.5A patent/EP3559885B1/en active Active
- 2018-12-19 CN CN201880004861.3A patent/CN110088793B/zh active Active
- 2018-12-19 JP JP2019540580A patent/JP6883110B2/ja active Active
- 2018-12-19 SG SG11201906838QA patent/SG11201906838QA/en unknown
- 2018-12-19 MY MYPI2019004243A patent/MY194395A/en unknown
- 2018-12-19 WO PCT/CN2018/122166 patent/WO2019072299A2/en unknown
- 2018-12-19 KR KR1020197022207A patent/KR102303376B1/ko active IP Right Grant
-
2019
- 2019-05-23 US US16/421,170 patent/US10628605B2/en active Active
- 2019-07-19 TW TW108125579A patent/TWI705689B/zh active
- 2019-07-25 PH PH12019501713A patent/PH12019501713A1/en unknown
-
2020
- 2020-02-28 US US16/805,492 patent/US11074358B2/en active Active
- 2020-12-14 US US17/121,181 patent/US11106817B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170230375A1 (en) * | 2016-02-10 | 2017-08-10 | Bank Of America Corporation | System for centralized control of secure access to process data network |
US20180068130A1 (en) * | 2016-09-02 | 2018-03-08 | The Toronto-Dominion Bank | System and method for maintaining a segregated database in a multiple distributed ledger system |
US20180349621A1 (en) * | 2017-06-01 | 2018-12-06 | Schvey, Inc. d/b/a/ Axoni | Distributed privately subspaced blockchain data structures with secure access restriction management |
Also Published As
Publication number | Publication date |
---|---|
TW202025663A (zh) | 2020-07-01 |
JP6883110B2 (ja) | 2021-06-09 |
WO2019072299A2 (en) | 2019-04-18 |
EP3559885A2 (en) | 2019-10-30 |
TWI705689B (zh) | 2020-09-21 |
EP3559885B1 (en) | 2022-08-24 |
CN110088793A (zh) | 2019-08-02 |
KR20200078420A (ko) | 2020-07-01 |
US20200202035A1 (en) | 2020-06-25 |
MY194395A (en) | 2022-11-30 |
EP3559885A4 (en) | 2020-01-08 |
JP2020512716A (ja) | 2020-04-23 |
SG11201906838QA (en) | 2019-08-27 |
US11106817B2 (en) | 2021-08-31 |
US10628605B2 (en) | 2020-04-21 |
US20210097196A1 (en) | 2021-04-01 |
US20190286838A1 (en) | 2019-09-19 |
WO2019072299A3 (en) | 2019-08-08 |
PH12019501713A1 (en) | 2020-02-24 |
US11074358B2 (en) | 2021-07-27 |
CN110088793B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102303376B1 (ko) | 블록체인 네트워크에서의 데이터 아이솔레이션 | |
EP3560143B1 (en) | Data isolation in a blockchain network | |
US10678597B2 (en) | Event-driven blockchain workflow processing | |
KR102234128B1 (ko) | 블록체인 네트워크에서의 트랜잭션의 병렬 실행 | |
JP6892513B2 (ja) | 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス | |
EP3566391B1 (en) | Parallel execution of transactions in a blockchain network based on smart contract whitelists | |
KR102289612B1 (ko) | 분산 원장 시스템에서 트랜잭션들의 병렬 실행 수행 | |
KR102222612B1 (ko) | 스마트 계약 화이트리스트 | |
KR102337171B1 (ko) | 판독-기입 세트 모델 기반 블록체인 기술에서 이중 소비 문제를 회피하기 위한 방법 및 디바이스 | |
KR20210106532A (ko) | 블록체인을 통해 행해지는 전송의 성능을 제어하거나 강제하기 위한 컴퓨터-구현된 시스템 및 방법 | |
CN113409131A (zh) | 资产信息管理方法、装置、设备、存储介质和程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
N231 | Notification of change of applicant | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |