KR102206950B1 - 워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리 - Google Patents

워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리 Download PDF

Info

Publication number
KR102206950B1
KR102206950B1 KR1020197011612A KR20197011612A KR102206950B1 KR 102206950 B1 KR102206950 B1 KR 102206950B1 KR 1020197011612 A KR1020197011612 A KR 1020197011612A KR 20197011612 A KR20197011612 A KR 20197011612A KR 102206950 B1 KR102206950 B1 KR 102206950B1
Authority
KR
South Korea
Prior art keywords
client
node
consensus
nodes
client nodes
Prior art date
Application number
KR1020197011612A
Other languages
English (en)
Other versions
KR20200054132A (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 KR20200054132A publication Critical patent/KR20200054132A/ko
Application granted granted Critical
Publication of KR102206950B1 publication Critical patent/KR102206950B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3674Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes involving authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/321Cryptographic 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 a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • H04L2209/38

Abstract

본 개시의 구현예는, 제1 합의 노드에 의한, 적어도 두 클라이언트 노드 사이에서 트랜잭션 데이터(transaction data)를 전송하기 위한 워크플로우의 정책(policy)의 획득을 포함한다. 정책은, 대응하는 비공개 키를 사용해 적어도 두 클라이언트 노드 각각에 의해 디지털 서명되고, 정책은, 적어도 두 클라이언트 노드 사이에서의 트랜잭션 데이터의 라우팅 순서를 포함한다. 제1 합의 노드는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 제출되는 트랜잭션 데이터도 수신한다. 트랜잭션 데이터는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드의 비공개 키에 의해 디지털 서명된다. 이후, 제1 합의 노드는 정책에 기초하여 제2 합의 노드에 또는 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 트랜잭션 데이터를 전달한다.

Description

워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리
블록체인 시스템(blockchain system), 합의 네트워크(consensus network), 분산형 원장 시스템 네트워크(DLS network, distributed ledger system network), 또는 블록체인(blockchain)으로도 지칭될 수 있는, 블록체인 네트워크(blockchain network)는, 참여 엔티티들이 보안적으로, 그리고 불변적으로 데이터를 저장할 수 있게 한다. 블록체인은, 트랜잭션(transaction)의 원장으로서 기술될 수 있으며, 다수의 블록체인 사본이 블록체인 네트워크에 걸쳐 저장된다. 블록체인의 예시 유형은 공개 블록체인(public blockchain), 컨소시엄 블록체인(consortium blockchain), 및 비공개 블록체인(private blockchain)을 포함할 수 있다. 공개 블록체인은 모든 엔티티가 해당 블록체인을 사용하도록 개방되어 있으며, 합의 프로세스에 참여한다. 컨소시엄 블록체인은, 미리 선택된 노드들의 세트에 의해 합의 프로세스가 제어되는 블록체인이다. 비공개 블록체인은, 판독 및 기입 권한(read and write permissions)을 중심적으로 제어하는 특정한 엔티티를 위해 제공된다.
일부 블록체인 시스템은, 블록체인 네트워크를 사용하는 클라이언트 노드들(또는 사용자들) 및 합의 노드들을 포함할 수 있다. 한편으로, 합의 노드들은 다른 합의 노드들과 통신하여 합의에 도달한다. 다른 한편으로, 합의 노드들은 클라이언트 노드들과 통신하여 새 트랜잭션을 수락하고 블록에 추가한다. 일부 경우, 클라이언트 노드들은, 합의를 위해 블록체인에 제출된 트랜잭션 데이터가, 합의 노드들에 의해 뷰 가능(viewable)하게 되는 것을 원치 않을 수도 있다. 일부 경우, 합의 노드들은, 상이한 보안 수준을 갖는 컨소시엄 시스템 또는 다른 코어 시스템의 미리 선택된 노드들로 구성된 네트워크와도 통신한다. 그러므로, 데이터 프라이버시 및 보안을 보호하기 위해, 상이한 유형의 통신들에 대한 경계가 설정될 수 있다.
본 개시의 구현예는, 워크플로우에 기초한, 블록체인 네트워크를 통한 클라이언트 노드들 사이에서의 비공개 트랜잭션(private transaction)의 관리에 관한 것이다. 더 구체적으로, 본 개시의 구현예는, 비공개 트랜잭션 데이터를 동기화하기 위한, 블록체인 클라이언트 노드들 사이의 비공개 통신 채널들의 구성에 관한 것이다.
일부 구현예에서, 동작은, 제1 합의 노드에 의해, 적어도 두 클라이언트 노드 사이에서 트랜잭션 데이터를 전송하기 위한 워크플로우의 정책(policy)을 획득하는 동작으로서, 정책은, 대응하는 비공개 키를 사용해 적어도 두 클라이언트 노드 각각에 의해 디지털 서명되고, 정책은, 적어도 두 클라이언트 노드 사이에서의 트랜잭션 데이터의 라우팅 순서를 포함하는, 정책을 획득하는 동작; 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 제출되는 트랜잭션 데이터를 수신하는 동작으로서, 트랜잭션 데이터는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드의 비공개 키에 의해 디지털 서명되는, 트랜잭션 데이터를 수신하는 동작; 및 정책에 기초하여 제2 합의 노드에 또는 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 트랜잭션 데이터를 전달하는 동작을 포함한다. 다른 구현예는, 컴퓨터 저장 디바이스 상에 인코딩된 방법의 동작을 수행하도록 구성된 대응 시스템, 장치, 및 컴퓨터 프로그램을 포함한다.
이들 구현예 및 다른 구현예는 각각 다음의 특징 중 하나 이상을 선택적으로 포함할 수 있다: 적어도 두 클라이언트 노드 중 라우팅 순서 상 마지막 클라이언트 노드로부터, 대응하는 비공개 키를 사용해 적어도 두 클라이언트 노드 각각에 의해 디지털 서명된 트랜잭션 데이터를 수신함; 블록체인의 합의 프로세스에 기초하여 트랜잭션 데이터가 유효하다고 결정함; 트랜잭션 데이터의 해시된 값(hashed value)을 블록체인 상에 기록함; 적어도 두 클라이언트 노드 중 제1 클라이언트 노드는 라우팅 순서 상 첫 번째 클라이언트 노드임; 제2 합의 노드는, 라우팅 순서 상 두 번째 클라이언트 노드에 의해 신뢰됨; 제1 합의 노드는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드 및 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 의해 신뢰됨; 트랜잭션 데이터는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 디지털 서명됨; 정책은, 적어도 두 클라이언트 노드 각각의 주소 및 적어도 두 클라이언트 노드에 의해 신뢰되는 합의 노드들 각각의 주소를 포함함.
본 개시는, 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 본 명세서에 제공된 방법의 구현예에 따른 동작을 수행하게 하는 명령어가 수록된 하나 이상의 비일시적 컴퓨터-판독가능 저장 매체도 제공한다.
본 개시는 또한, 본 명세서에 제공된 방법을 구현하기 위한 시스템을 제공한다. 시스템은, 하나 이상의 프로세서, 및 하나 이상의 프로세서에 커플링되고, 하나 이상의 프로세서에 의해 실행될 때, 하나 이상의 프로세서로 하여금, 본 명세서에 제공된 방법의 구현예에 따라서 동작을 수행하게 하는 명령어가 수록된 컴퓨터-판독가능 저장 매체를 포함한다.
본 개시에 따른 방법은, 본 명세서에 설명된 양상 및 특징의 임의의 조합을 포함할 수 있다는 것이 이해된다. 즉, 본 개시에 따른 방법은, 본 명세서에 구체적으로 설명된 양상 및 특징의 조합으로 제한되는 것이 아니라, 제공된 양상 및 특징의 임의의 조합도 포함한다.
본 개시의 하나 이상의 구현예의 세부사항이 첨부 도면 및 아래의 설명에 명시되어 있다. 본 개시의 다른 특징 및 장점은, 설명 및 도면으로부터, 그리고 청구범위로부터 명백해질 것이다.
도 1은, 본 개시의 구현예를 실행하기 위해 사용될 수 있는 예시 환경을 도시한다.
도 2는, 본 개시의 구현예에 따른 예시 개념 아키텍처를 도시한다.
도 3은, 본 개시의 구현예에 따른, 클라이언트 노드들 사이의 비공개 통신 채널들을 갖는 예시 블록체인 시스템을 도시한다.
도 4는, 본 개시의 구현예에 따른, 비공개 트랜잭션을 관리하는 예시 방법을 도시한다.
다양한 도면 내의 유사한 참조 기호는 유사한 요소를 나타낸다.
본 개시의 구현예는, 워크플로우에 기초한, 블록체인 네트워크를 통한 클라이언트 노드들 사이에서의 비공개 트랜잭션의 관리에 관한 것이다. 더 구체적으로, 본 개시의 구현예는, 비공개 트랜잭션 데이터를 동기화하기 위한, 블록체인 클라이언트 노드들 사이의 비공개 통신 채널들의 구성에 관한 것이다.
일부 구현예에서, 동작은, 제1 합의 노드에 의해, 적어도 두 클라이언트 노드 사이에서 트랜잭션 데이터를 전송하기 위한 워크플로우의 정책을 획득하는 동작으로서, 정책은, 대응하는 비공개 키를 사용해 적어도 두 클라이언트 노드 각각에 의해 디지털 서명되고, 정책은, 적어도 두 클라이언트 노드 사이에서의 트랜잭션 데이터의 라우팅 순서를 포함하는, 정책을 획득하는 동작; 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 제출되는 트랜잭션 데이터를 수신하는 동작으로서, 트랜잭션 데이터는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드의 비공개 키에 의해 디지털 서명되는, 트랜잭션 데이터를 수신하는 동작; 및 정책에 기초하여 제2 합의 노드에 또는 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 트랜잭션 데이터를 전달하는 동작을 포함한다.
본 개시의 구현예에 대한 추가적인 맥락을 제공하기 위해, 그리고 위에서 소개한 바와 같이, (예컨대, 피어-투-피어(peer-to-peer) 노드들로 이루어진) 합의 네트워크, 분산형 원장 시스템, 또는 단순히 블록체인으로도 지칭될 수 있는, 블록체인 네트워크는, 참여 엔티티들이 보안적이고 불변적으로 트랜잭션을 수행하고 데이터를 저장할 수 있게 한다. 블록체인은 공개 블록체인, 비공개 블록체인, 또는 컨소시엄 블록체인으로서 제공될 수 있다. 본 명세서에서, 본 개시의 구현예는, 참여 엔티티들 사이에 공개된, 공개 블록체인을 참조하여 더 상세히 설명된다. 그러나, 본 개시의 구현예는 임의의 적절한 유형의 블록체인으로 실현될 수 있으리라 예상된다.
컨소시엄 블록체인에서, 합의 프로세스는, 인가된 노드들의 세트에 의해 제어되며, 하나 이상의 노드가 각 엔티티(예컨대, 기업)에 의해 운영된다. 예컨대, 10개의 엔티티(예컨대, 기업)로 구성된 컨소시엄은 컨소시엄 블록체인 시스템을 운영할 수 있으며, 각 엔티티는 컨소시엄 블록체인 내의 적어도 하나의 노드를 운영할 수 있다. 따라서, 컨소시엄 블록체인 시스템은, 참여 엔티티들에 관한 비공개 네트워크로 간주될 수 있다. 일부 예시에서, 블록이 유효하려면 그리고 블록이 블록체인에 추가되려면, 각 엔티티(노드)가 모든 블록에 서명해야 한다. 일부 예시에서, 블록이 유효하려면 그리고 블록이 블록체인에 추가되려면, 적어도 엔티티들(노드들)의 부분 집합(예컨대, 적어도 7개의 엔티티)이 모든 블록에 서명해야 한다. 한 예시 컨소시엄 블록체인 시스템은, 미국 뉴욕주 뉴욕시의 J.P. Morgan Chase & Co.에 의해 개발된 Quorum을 포함한다. Quorum은, 금융 활용 사례를 위해 특별히 설계된, 기업에 초점을 둔, 권한형 블록체인 인프라스트럭처(permissioned blockchain infrastructure)로서 설명될 수 있다. Quorum은, 스위스 추크시의 Ethereum Foundation에 의해 제공되는, Ethereum 블록체인을 위한 기반 코드인 Ethereum을 기반으로 개발되었다.
일반적으로, 컨소시엄 블록체인 시스템은, 컨소시엄 블록체인 시스템 내의, 권한을 가진 참여 엔티티들 사이에서의 트랜잭션을 지원한다. 블록체인은 모든 노드에 걸쳐 복제되므로, 트랜잭션은 컨소시엄 블록체인 시스템 내의 모든 노드와 공유된다. 즉, 모든 노드는, 블록체인에 관하여 완벽한 합의 상태에 있다. 합의(예컨대, 블록을 블록체인에 추가하는 것에 대한 동의)를 달성하기 위하여, 컨소시엄 블록체인 네트워크 내에 합의 프로토콜이 구현된다. 한 예시 합의 프로토콜은, Bitcoin 네트워크 내에 구현되는 작업증명(POW, proof-of-work)을, 제한 없이 포함한다.
본 개시의 구현예는, 워크플로우에 기초한, 블록체인 네트워크를 통한 클라이언트 노드들 사이에서의 비공개 트랜잭션의 관리에 관한 것이다. 더 구체적으로, 본 개시의 구현예는, 비공개 트랜잭션 데이터를 동기화하기 위한, 블록체인 클라이언트 노드들 사이의 비공개 통신 채널들의 구성에 관한 것이다.
도 1은, 본 개시의 구현예를 실행하기 위해 사용될 수 있는 예시 환경(100)을 도시한다. 일부 예시에서, 예시 환경(100)은, 엔티티들이 공개 블록체인(102)에 참여할 수 있게 한다. 예시 환경(100)은 컴퓨팅 시스템들(106, 108) 및 네트워크(110)를 포함한다. 일부 예시에서, 네트워크(110)는 LAN(local area network), WAN(wide area network), 인터넷, 또는 이들의 조합을 포함하며, 웹 사이트들, 사용자 디바이스들(예컨대, 컴퓨팅 디바이스들), 및 백엔드 시스템들을 연결한다. 일부 예시에서, 네트워크(110)는 유선 및/또는 무선 통신 링크를 통해 액세스될 수 있다.
도시된 예시에서, 컴퓨팅 시스템들(106, 108)은, 블록체인(104) 내에 트랜잭션을 저장하기 위해 컨소시엄 블록체인 시스템(102) 내의 노드로서 참여할 수 있게 하는 임의의 적절한 컴퓨팅 시스템을 각각 포함할 수 있다. 예시 컴퓨팅 디바이스들은, 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨팅 디바이스, 및 스마트폰을, 제한 없이 포함한다. 일부 예시에서, 컴퓨팅 시스템들(106, 108)은, 컨소시엄 블록체인 시스템(102)과 상호작용하기 위한 하나 이상의 컴퓨터-구현 서비스(computer-implemented service)를 호스팅한다. 예컨대, 컴퓨팅 시스템(106)은, 하나 이상의 다른 엔티티(예컨대, 다른 사용자들)와의 트랜잭션을 관리하기 위해 제1 엔티티(예컨대, 사용자 A)가 사용하는 트랜잭션 관리 시스템과 같은, 제1 엔티티의 컴퓨터-구현 서비스를 호스팅할 수 있다. 컴퓨팅 시스템(108)은, 하나 이상의 다른 엔티티(예컨대, 다른 사용자들)와의 트랜잭션을 관리하기 위해 제2 엔티티(예컨대, 사용자 B)가 사용하는 트랜잭션 관리 시스템과 같은, 제2 엔티티의 컴퓨터-구현 서비스를 호스팅할 수 있다. 도 1의 예시에서, 컨소시엄 블록체인 시스템(102)은, 노드들로 구성된 피어-투-피어 네트워크인 것으로 나타나 있으며, 컴퓨팅 시스템들(106, 108)은, 컨소시엄 블록체인 시스템(102)에 참여하는 제1 엔티티 및 제2 엔티티 각각의 노드를 제공한다.
도 2는, 본 개시의 구현예에 따른, 예시 개념 아키텍처(200)를 도시한다. 예시 개념 아키텍처(200)는, 엔티티 계층(202), 호스팅된 서비스 계층(204), 및 블록체인 계층(206)을 포함한다. 도시된 예시에서, 엔티티 계층(202)은, Entity_1(E1), Entity_2(E2), 및 Entity_3(E3)이라는 3개의 엔티티를 포함하며, 각 엔티티는 각각의 트랜잭션 관리 시스템(208)을 갖는다.
도시된 예시에서, 호스팅된 서비스 계층(204)은 각 트랜잭션 관리 시스템(208)을 위한 블록체인 인터페이스(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)를 제공한다.
블록체인 시스템은 합의 노드들 및 클라이언트 노드들을 포함할 수 있다. 합의 노드들은 합의 프로세스에 참여할 수 있다. 클라이언트 노드들은 블록체인 시스템을 사용할 수는 있지만, 합의 프로세스에는 참여하지 않는다. 일부 구현예에서, 합의 노드들은, 다른 목적을 위해 블록체인 시스템을 사용하면서, 합의 프로세스에 참여할 수 있다. 일부 구현예에서, 합의 노드들은, 사용자들이 블록체인에 트랜잭션을 제출하기 위해 클라이언트 노드들을 사용할 수 있도록, 클라이언트 노드들과 통신할 수 있다. 합의 노드들은, 클라이언트 노드들에 의해 제출되는 트랜잭션을 블록체인에 추가하기 위한 합의에 도달하기 위해 서로와도 통신할 수 있다.
일부 구현예에서, 클라이언트 노드들의 그룹은 트랜잭션 데이터를 블록체인 네트워크로부터 비공개 상태로 유지하기 원할 수 있다. 새 트랜잭션 데이터가 생성될 때, 데이터 동기화가 수행되어, 클라이언트 노드들의 그룹이, 동일한 데이터를 갖는 것을 보장할 수 있다. 트랜잭션 데이터는, 클라이언트 노드들에 의해 신뢰되는 합의 노드들을 통해 라우팅될 수 있다. 클라이언트 노드들 및 라우팅하는 합의 노드들로 이루어진 그룹은 워크플로우를 형성할 수 있으며, 이러한 워크플로우는, 관련된 모든 클라이언트 노드들의 디지털 서명에 의해 보증되는 정책에 기초하여 트랜잭션 데이터의 라우팅을 확립한다. 워크플로우에 따라서 데이터 동기화가 수행될 때, 트랜잭션 데이터를 수신하는 각 클라이언트 노드는 자신의 디지털 서명을 해당 트랜잭션 데이터에 추가할 수 있다. 이후, 워크플로우 내의 마지막 클라이언트 노드에 도달될 때까지, 각 클라이언트 노드는, 디지털 서명된 사본을 워크플로우를 통해 그다음 클라이언트 노드에 전달한다. 이후, 마지막 클라이언트 노드는 자신의 디지털 서명을 추가하고, 합의를 위해 합의 노드에 트랜잭션 데이터를 제출한다. 합의에 도달된 후, 트랜잭션 데이터는 블록체인 상에 해시되어 기록될 수 있다. 그러므로, 클라이언트 노드는, 블록체인 상에 기록된 해시된 데이터에 해당 데이터를 비교함으로써, 워크플로우 상의 또 다른 클라이언트 노드로부터 수신한 비공개 데이터의 진위를 검증할 수 있다.
도 3은, 본 개시의 구현예에 따른, 클라이언트 노드들 사이의 비공개 통신 채널들을 갖는 예시 블록체인 시스템(300)을 도시한다. 상위 수준에서, 블록체인 시스템(300)은 클라이언트 노드 A(302), 클라이언트 노드 B(304), 클라이언트 노드 C(306), 및 클라이언트 노드 D(308), 그리고 블록체인 네트워크(310)를 포함한다. 블록체인 네트워크(310)는 합의 노드 A(312), 합의 노드 B(314), 및 합의 노드 C(316)를 포함한다.
도 3에는 3개의 워크플로우도 예시되어 있다. 예시의 목적을 위해, 워크플로우-AC(320)는 실선 화살표에 의해 연결되어 있다. 워크플로우-AC(320)에는 클라이언트 노드 A(302), 클라이언트 노드 A(302)에 의해 신뢰되는 합의 노드 A(312), 클라이언트 노드 C(306)에 의해 신뢰되는 합의 노드 B(314), 및 클라이언트 노드 C(306)가 수반된다. 워크플로우-AD(322)는 쇄선 화살표에 의해 연결되어 있다. 워크플로우-AD에는 클라이언트 노드 A(302), 클라이언트 노드 A(302)에 의해 신뢰되는 합의 노드 A(312), 클라이언트 노드 D(308)에 의해 신뢰되는 합의 노드 C(316), 및 클라이언트 노드 D(308)가 수반된다. 워크플로우-BC(324)는 점선에 의해 연결되어 있다. 워크플로우-BC(324)에는 클라이언트 노드 B(304), 클라이언트 노드 B(304) 및 클라이언트 노드 D(308)에 의해 신뢰되는 합의 노드 B(314), 및 클라이언트 노드 D(308)가 수반된다. 도 3에 도시된 클라이언트 노드, 합의 노드, 및 워크플로우의 구체적인 수는 예시의 목적을 위한 것이라는 점이 이해되어야 한다. 구체적인 구현예에 따라서, 예시 블록체인 시스템(300)은, 도시된 것보다 더 많거나 더 적은 수의 클라이언트 노드, 합의 노드, 또는 워크플로우를 포함할 수 있다.
워크플로우 내의 데이터 송신은, 스마트 계약(smart contract) 내에 저장된 정책에 기초하여 수행될 수 있다. 스마트 계약 하에서, 정책은 클라이언트 노드들 및 블록체인 네트워크에 공개될 수 있다. 워크플로우-AC(320)를 예로 들면, 정책은 클라이언트 노드 A(302), 클라이언트 노드 C(306), 클라이언트 노드 A(302)에 의해 신뢰되는 합의 노드 A(312), 및 클라이언트 노드 C(306)에 의해 신뢰되는 합의 노드 B(314)의 주소를 포함하도록 만들어질 수 있다. 정책의 한 예시 코드는 다음과 같이 표현될 수 있다:
“Workflow_AC”: {
“client_A_addr”: “client_A_trust_consensus_node_addr”,
“client_C_addr”: “client_C_trust_consensus_node_addr”
}
정책은 임의의 당사자(party)에 의해 만들어질 수 있으며, 수행되어야 하는 대응 워크로드 내의 모든 클라이언트 노드의 디지털 서명에 의해 보증된다. 클라이언트 노드 A(302)에 의해 새 트랜잭션 데이터가 생성 및 저장될 때, 클라이언트 노드 A(302)는 자신과 관련된 워크플로우 정책들을 식별할 수 있다. 본 예시(300)에서, 클라이언트 노드 A(302)는 워크플로우-AC(320)의 정책 및 워크플로우-AD(324)의 정책을 발견할 수 있다. 이후, 클라이언트 노드 A(302)는 워크플로우-AC(320)의 정책이 클라이언트 노드 A(302) 및 클라이언트 노드 C(306)의 올바른 디지털 서명을 가지고 있는지를 이들의 대응하는 공개 키를 사용하여 검증할 수 있다. 클라이언트 노드 A(302)는 워크플로우-AD(324)의 정책이 클라이언트 노드 A(302) 및 클라이언트 노드 D(308)의 올바른 디지털 서명을 가지고 있는지의 여부도 검증할 수 있다.
워크플로우-AC(320)의 경우, 정책 상의 디지털 서명들이 유효하다면, 클라이언트 노드 A(302)는 워크플로우-AC(320)의 정책에 기초하여 트랜잭션 데이터에 디지털 서명하고 합의 노드 A(312)의 주소에 트랜잭션 데이터를 전송할 수 있다. 합의 노드 A(312)는, 트랜잭션 데이터를 수신한 후, 트랜잭션 데이터를 합의 노드 B(314)의 주소에 전달한다. 합의 노드 B(314)는 트랜잭션 데이터를 클라이언트 노드 C(306)에 전달한다. 트랜잭션 데이터를 수신한 후, 클라이언트 노드 C(306)는 클라이언트 노드 A(302)의 공개 키를 사용해 클라이언트 노드 A(302)의 디지털 서명을 검증할 수 있다. 서명이 올바르다면, 클라이언트 노드 C(306)는 트랜잭션 데이터의 사본을 자신의 비공개 데이터베이스에 저장할 수 있다. 클라이언트 노드 C(306)는 트랜잭션 데이터에 디지털 서명하고 트랜잭션 데이터를 블록체인 네트워크(310)에 제출할 수 있다. 블록체인 네트워크(310)는, 실제 트랜잭션 데이터가 공개적으로 뷰 가능하지는 않지만 워크플로우-AC(320) 내의 클라이언트 노드들에 의해 검증될 수는 있도록, 해시된 트랜잭션 데이터를 블록체인 상에 기록할 수 있다.
이와 유사하게, 워크플로우-AD(322)의 경우, 정책 상의 디지털 서명들이 유효하다면, 클라이언트 노드 A(302)는 워크플로우-AD(322)의 정책에 기초하여 트랜잭션 데이터에 디지털 서명하고 트랜잭션 데이터를 합의 노드 A(312)의 주소에 전송할 수 있다. 합의 노드 A(312)는, 트랜잭션 데이터를 수신한 후, 트랜잭션 데이터를 합의 노드 C(316)의 주소에 전달한다. 이후, 합의 노드 C(316)는 트랜잭션 데이터를 클라이언트 노드 D(308)에 전달한다. 트랜잭션 데이터를 수신한 후, 클라이언트 노드 D(308)는 클라이언트 노드 A(302)의 공개 키를 사용해 클라이언트 노드 A(302)의 디지털 서명을 검증할 수 있다. 서명이 올바르다면, 클라이언트 노드 D(308)는 트랜잭션 데이터의 사본을 자신의 비공개 데이터베이스에 저장할 수 있다. 이후, 클라이언트 노드 D(308)는 트랜잭션 데이터에 디지털 서명하고 트랜잭션 데이터를 블록체인 네트워크(310)에 제출할 수 있다. 워크플로우-BC(324)의 데이터 송신은 이와 유사하게 수행될 수 있다.
도 4는, 본 개시의 구현예에 따른, 비공개 트랜잭션을 관리하는 예시 방법(400)을 도시한다. 표현의 명료성을 위하여, 다음의 설명은 일반적으로 본 설명 내의 다른 도면들의 맥락에서 예시 프로세스(400)를 설명한다. 그러나, 예컨대, 임의의 시스템, 환경, 소프트웨어, 및 하드웨어, 또는, 적절한 경우, 시스템, 환경, 소프트웨어, 및 하드웨어의 조합에 의해, 예시 프로세스(400)가 수행될 수 있다는 것이 이해될 것이다. 일부 구현예에서, 예시 프로세스(400)의 다양한 단계는, 동시에, 조합되어, 루프 내에서, 또는 임의의 순서로 실행될 수 있다.
단계(402)에서, 제1 합의 노드는, 적어도 두 클라이언트 노드 사이에서 트랜잭션 데이터를 전송하기 위한 워크플로우의 정책을 획득한다. 일부 예시에서, 정책은, 대응하는 비공개 키를 사용해 적어도 두 클라이언트 노드 각각에 의해 디지털 서명된다. 일부 예시에서, 정책은, 적어도 두 클라이언트 노드 사이에서의 트랜잭션 데이터의 라우팅 순서를 포함한다. 일부 구현예에서, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드는, 라우팅 순서 상 첫 번째 클라이언트 노드이다. 일부 구현예에서, 트랜잭션 데이터는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 디지털 서명된다. 일부 구현예에서, 정책은, 적어도 두 클라이언트 노드 각각의 주소 및 적어도 두 클라이언트 노드에 의해 신뢰되는 합의 노드들 각각의 주소를 포함한다.
단계(404)에서, 제1 합의 노드는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 제출되는 트랜잭션 데이터를 수신하며, 트랜잭션 데이터는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드의 비공개 키에 의해 디지털 서명된다.
단계(406)에서, 제1 합의 노드는 정책에 기초하여 제2 합의 노드에 또는 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 트랜잭션 데이터를 전달한다. 일부 구현예에서, 제1 합의 노드는 또한, 적어도 두 클라이언트 노드 중 라우팅 순서 상 마지막 클라이언트 노드로부터, 대응하는 비공개 키를 사용해 적어도 두 클라이언트 노드 각각에 의해 디지털 서명된 트랜잭션 데이터를 수신한다. 또한, 제1 합의 노드는 블록체인의 합의 프로세스에 기초하여 트랜잭션 데이터가 유효하다고 결정하고, 트랜잭션 데이터의 해시된 값을 블록체인 상에 기록한다. 일부 구현예에서, 제2 합의 노드는, 라우팅 순서 상 두 번째 클라이언트 노드에 의해 신뢰된다. 일부 구현예에서, 제1 합의 노드는, 적어도 두 클라이언트 노드 중 제1 클라이언트 노드 및 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 의해 신뢰된다.
본 명세서에 설명된 구현예 및 동작은, 본 명세서에 개시된 구조를 비롯한, 디지털 전자 회로부로, 또는 컴퓨터 소프트웨어나, 펌웨어나, 하드웨어로, 또는, 이들 중 하나 이상의 조합으로 구현될 수 있다. 동작은, 하나 이상의 컴퓨터-판독가능 저장 디바이스 상에 저장되거나 다른 소스로부터 수신되는 데이터에 대해 데이터 처리 장치에 의해 수행되는 동작으로서 구현될 수 있다. 데이터 처리 장치, 컴퓨터, 또는 컴퓨팅 디바이스는, 예를 들어, 프로그래밍가능 프로세서, 컴퓨터, 시스템 온 칩, 또는 이들의 다수나 조합을 비롯한, 데이터 처리용 장치, 디바이스, 및 기계를 망라할 수 있다. 이러한 장치는, 특수 목적 논리 회로부, 예컨대, CPU(central processing unit), FPGA(field programmable gate array), 또는 ASIC(application-specific integrated circuit)을 포함할 수 있다. 이러한 장치는, 해당 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제(예컨대, 하나의 운영 체제, 또는 운영 체제들의 조합), 크로스-플랫폼 런타임 환경, 가상 머신, 또는 이들 중 하나 이상의 조합을 구성하는 코드도 포함할 수 있다. 이러한 장치 및 실행 환경은, 웹 서비스, 분산형 컴퓨팅, 및 그리드 컴퓨팅 인프라스트럭처와 같은, 다양하고 상이한 컴퓨팅 모델 인프라스트럭처를 실현할 수 있다.
(예컨대, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 소프트웨어 모듈, 소프트웨어 유닛, 스크립트, 또는 코드로서도 공지되어 있는) 컴퓨터 프로그램은, 컴파일러형이나 인터프리터형 언어, 또는 선언형이나 절차형 언어를 비롯한 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립형 프로그램, 또는, 컴퓨팅 환경에서의 사용에 적절한, 모듈, 컴포넌트, 서브루틴, 객체, 또는 다른 유닛을 비롯한 임의의 형태로 배치될 수 있다. 프로그램은, 다른 프로그램 또는 데이터를 보유한 파일의 일부(예컨대, 마크업 언어 문서 내에 저장된 하나 이상의 스크립트)에 저장되거나, 해당 프로그램 전용 단일 파일에 저장되거나, 다수의 조정된 파일(예컨대, 하나 이상의 모듈, 서브프로그램, 또는 코드의 부분들을 저장한 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 한 컴퓨터 상에서, 또는 한 지점에 위치되거나, 다수의 지점에 걸쳐 분산되고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터 상에서 실행될 수 있다.
컴퓨터 프로그램의 실행을 위한 프로세서는, 예를 들어, 범용 마이크로프로세서와 특수 목적 마이크로프로세서 둘 다, 그리고 임의의 종류의 디지털 컴퓨터의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 리드-온리 메모리나 랜덤-액세스 메모리, 또는 둘 다로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는, 명령어에 따라서 동작을 수행하기 위한 프로세서, 그리고 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함하거나, 또는, 이러한 대용량 저장 디바이스로부터 데이터를 수신하거나, 이러한 대용량 저장 디바이스에 데이터를 전송하거나, 둘 다를 수행하도록, 이러한 대용량 저장 디바이스에 동작가능하게 커플링될 것이다. 또한, 컴퓨터는 또 다른 디바이스, 예컨대, 모바일 디바이스, PDA(personal digital assistant), 게임 콘솔, GPS(global positioning system) 수신기, 또는 휴대용 저장 디바이스 내에 임베딩될 수 있다. 컴퓨터 프로그램 명령어 및 데이터를 저장하는 데 적절한 디바이스는, 예를 들어, 반도체 메모리 디바이스, 자기 디스크, 및 자기-광학 디스크를 비롯한, 비휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로부에 의해 보완되거나 특수 목적 논리 회로부에 포함될 수 있다.
모바일 디바이스는 핸드셋, UE(user equipment), 모바일 전화기(예컨대, 스마트폰), 태블릿, 웨어러블 디바이스(예컨대, 스마트 손목시계 및 스마트 안경), 인체 내의 이식형 디바이스(implanted device)(예컨대, 바이오센서, 인공와우 임플란트(cochlear implant)), 또는 다른 유형의 모바일 디바이스를 포함할 수 있다. 모바일 디바이스는 무선으로(예컨대, RF(radio frequency) 신호를 사용해) (후술되는) 다양한 통신 네트워크와 통신할 수 있다. 모바일 디바이스는, 모바일 디바이스의 현재 환경의 특성을 결정하기 위한 센서를 포함할 수 있다. 센서는 카메라, 마이크, 근접 센서, GPS 센서, 모션 센서, 가속도계, 주변광 센서, 습기 센서, 자이로스코프, 나침반, 습도계, 지문 센서, 얼굴 인식 시스템, RF 센서(예컨대, Wi-Fi 및 셀룰러 무선 센서), 열 센서, 또는 다른 유형의 센서를 포함할 수 있다. 예컨대, 카메라는, 이동가능하거나 고정된 렌즈, 플래시, 이미지 센서, 및 이미지 프로세서를 갖는 전방 또는 후방 카메라를 포함할 수 있다. 카메라는, 얼굴 및/또는 홍채 인식을 위한 세부사항을 캡처하는 능력을 지닌 메가픽셀 카메라일 수 있다. 카메라는, 메모리 내에 저장되거나 원격으로 액세스되는 인증 정보 및 데이터 프로세서와 함께, 얼굴 인식 시스템을 형성할 수 있다. 얼굴 인식 시스템 또는 하나 이상의 센서, 예컨대, 마이크, 모션 센서, 가속도계, GPS 센서, RF 센서는 사용자 인증을 위해 사용될 수 있다.
사용자와의 상호작용이 가능하도록 하기 위하여 디스플레이 디바이스 및 입력 디바이스, 예컨대, 사용자에게 정보를 디스플레이하기 위한 LCD(liquid crystal display) 또는 OLED(organic light-emitting diode)/가상 현실(VR, virtual-reality)/증강 현실(AR, augmented-reality) 디스플레이 및 사용자가 컴퓨터에 입력을 제공할 수 있도록 하는 터치스크린, 키보드, 및 포인팅 디바이스를 갖는 컴퓨터 상에 구현예가 구현될 수 있다. 사용자와의 상호작용이 가능하도록 하기 위하여 다른 종류의 디바이스가 사용될 수도 있으며; 예컨대, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예컨대, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 비롯한 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자에 의해 사용되는 디바이스에 문서를 전송하고 해당 디바이스로부터 문서를 수신함으로써, 예컨대, 웹 브라우저로부터 수신되는 요청에 응답하여, 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써, 사용자와 상호작용할 수 있다.
구현예는, 임의의 형태 또는 매체의 유선 또는 무선 디지털 데이터 통신(또는 이들의 조합), 예컨대, 통신 네트워크에 의해 상호연결된 컴퓨팅 디바이스를 사용해 구현될 수 있다. 상호연결된 디바이스의 예는, 일반적으로 서로 멀리 떨어져 있어 통상적으로 통신 네트워크를 통해 상호작용하는 클라이언트와 서버이다. 클라이언트, 예컨대, 모바일 디바이스는, 예컨대, 구매, 판매, 결제, 증여, 전송, 또는 대출 트랜잭션을 수행하거나 그를 인가하여, 자체적으로, 서버와 함께, 또는 서버를 통해 트랜잭션을 수행할 수 있다. 그러한 트랜잭션은, 동작과 응답이 시간적으로 근접한 실시간 트랜잭션일 수 있으며; 예컨대, 동작과 응답이 실질적으로 동시에 발생한다고 개인이 지각하거나, 개인의 동작을 뒤따르는 응답에 대한 시간차가 1밀리초(ms) 또는 1초(s) 미만이거나, 시스템의 처리 제한사항을 고려하여 응답에는 의도적인 지연이 없다.
통신 네트워크의 예는 LAN(local area network), RAN(radio access network), MAN(metropolitan area network), 및 WAN(wide area network)을 포함한다. 통신 네트워크는 인터넷의 전부 또는 일부, 또 다른 통신 네트워크, 또는 통신 네트워크들의 조합을 포함할 수 있다. LTE(Long Term Evolution), 5G, IEEE 802, IP(Internet Protocol), 또는 다른 프로토콜이나 프로토콜들의 조합을 비롯한 다양한 프로토콜 및 표준에 따른 통신 네트워크 상에서 정보가 송신될 수 있다. 통신 네트워크는, 연결된 컴퓨팅 디바이스들 사이에서, 음성 데이터, 비디오 데이터, 생체 데이터, 또는 인증 데이터, 또는 다른 정보를 송신할 수 있다.
분리된 실시예들로서 설명된 특징은, 단일 구현예에서 조합되어 구현될 수 있으며, 단일 구현예로서 설명된 특징은, 다수의 구현예에서 분리되어 구현되거나 임의의 적절한 부분조합으로 구현될 수 있다. 특정한 순서로 설명 및 청구된 동작들은, 해당 특정 순서를 요구하는 것으로 이해되어서는 안 되며, 예시된 모든 동작이 수행되어야 하는 것으로 이해되어서도 안 된다(일부 동작은 선택적일 수 있음). 적절한 경우, 멀티태스킹 또는 병렬 처리(또는 멀티태스킹과 병렬 처리의 조합)가 수행될 수 있다.

Claims (9)

  1. 워크플로우에 기초한, 블록체인 네트워크를 통한 비공개 데이터 트랜잭션(private data transaction)을 위한 컴퓨터-구현 방법(computer-implemented method)에 있어서,
    제1 합의 노드에 의해, 적어도 두 클라이언트 노드 및 적어도 두 합의 노드 사이에서 트랜잭션 데이터를 전송하기 위한 워크플로우의 정책(policy)을 획득하는 단계로서, 상기 적어도 두 합의 노드 중 상기 제1 합의 노드는, 상기 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 신뢰되며 상기 제1 클라이언트 노드와 통신하도록 지정되고, 상기 적어도 두 합의 노드 중 제2 합의 노드는, 상기 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 의해 신뢰되며 상기 제2 클라이언트 노드와 통신하도록 지정되고, 상기 정책은, 대응하는 비공개 키를 사용해 상기 적어도 두 클라이언트 노드 각각에 의해 디지털 서명되고, 상기 정책은, 상기 적어도 두 클라이언트 노드 사이에서의 상기 트랜잭션 데이터의 라우팅 순서를 포함하고, 상기 제1 클라이언트 노드는, 상기 라우팅 순서에서 상기 제1 합의 노드보다 앞서고, 상기 제2 합의 노드는, 상기 라우팅 순서에서 상기 제2 클라이언트 노드보다 앞서는, 상기 정책을 획득하는 단계;
    상기 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 제출되는 상기 트랜잭션 데이터를 수신하는 단계로서, 상기 트랜잭션 데이터는, 상기 적어도 두 클라이언트 노드 중 제1 클라이언트 노드의 비공개 키에 의해 디지털 서명되는, 상기 트랜잭션 데이터를 수신하는 단계; 및
    상기 제1 합의 노드에 의해, 상기 제2 합의 노드의 주소 또는 상기 라우팅 순서에서 상기 제1 합의 노드보다 뒤에 있지만 상기 제2 합의 노드보다 앞서는 제3 합의 노드의 주소에 기초하여, 상기 제2 합의 노드 또는 상기 제3 합의 노드에 상기 트랜잭션 데이터를 전달하는 단계
    를 포함하는, 비공개 데이터 트랜잭션을 위한 컴퓨터-구현 방법.
  2. 제1항에 있어서,
    상기 적어도 두 클라이언트 노드 중 라우팅 순서 상 마지막 클라이언트 노드로부터, 상기 대응하는 비공개 키를 사용해 상기 적어도 두 클라이언트 노드 각각에 의해 디지털 서명된 상기 트랜잭션 데이터를 수신하는 단계;
    블록체인의 합의 프로세스에 기초하여 상기 트랜잭션 데이터가 유효하다고 결정하는 단계; 및
    상기 트랜잭션 데이터의 해시된 값(hashed value)을 상기 블록체인 상에 기록하는 단계를 더 포함하는, 비공개 데이터 트랜잭션을 위한 컴퓨터-구현 방법.
  3. 제1항에 있어서, 상기 적어도 두 클라이언트 노드 중 제1 클라이언트 노드는, 상기 라우팅 순서 상 첫 번째 클라이언트 노드인, 비공개 데이터 트랜잭션을 위한 컴퓨터-구현 방법.
  4. 삭제
  5. 제1항에 있어서, 상기 제1 합의 노드는, 상기 적어도 두 클라이언트 노드 중 제1 클라이언트 노드 및 상기 적어도 두 클라이언트 노드 중 제2 클라이언트 노드에 의해 신뢰되는, 비공개 데이터 트랜잭션을 위한 컴퓨터-구현 방법.
  6. 제1항에 있어서, 상기 트랜잭션 데이터는, 상기 적어도 두 클라이언트 노드 중 제1 클라이언트 노드에 의해 디지털 서명되는, 비공개 데이터 트랜잭션을 위한 컴퓨터-구현 방법.
  7. 제1항에 있어서, 상기 정책은, 상기 적어도 두 클라이언트 노드 각각의 주소 및 상기 적어도 두 클라이언트 노드에 의해 신뢰되는 합의 노드들 각각의 주소를 포함하는, 비공개 데이터 트랜잭션을 위한 컴퓨터-구현 방법.
  8. 하나 이상의 프로세서에 커플링되고, 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금, 제1항 내지 제3항 및 제5항 내지 제7항 중 어느 한 항의 방법에 따른 동작들을 수행하게 하는 명령어가 수록된, 비일시적 컴퓨터-판독가능 저장 매체.
  9. 시스템에 있어서,
    컴퓨팅 디바이스; 및
    상기 컴퓨팅 디바이스에 커플링되고, 상기 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금, 제1항 내지 제3항 및 제5항 내지 제7항 중 어느 한 항의 방법에 따른 동작들을 수행하게 하는 명령어가 수록된 컴퓨터-판독가능 저장 디바이스
    를 포함하는, 시스템.
KR1020197011612A 2018-11-07 2018-11-07 워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리 KR102206950B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/114426 WO2019072270A2 (en) 2018-11-07 2018-11-07 MANAGING PRIVATE TRANSACTIONS ON BLOCK CHAIN NETWORKS BASED ON A WORKFLOW

Publications (2)

Publication Number Publication Date
KR20200054132A KR20200054132A (ko) 2020-05-19
KR102206950B1 true KR102206950B1 (ko) 2021-01-26

Family

ID=66100027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197011612A KR102206950B1 (ko) 2018-11-07 2018-11-07 워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리

Country Status (12)

Country Link
US (1) US20190251566A1 (ko)
EP (1) EP3545664A4 (ko)
JP (1) JP6810259B2 (ko)
KR (1) KR102206950B1 (ko)
CN (1) CN110226318B (ko)
AU (1) AU2018347191B2 (ko)
CA (1) CA3041162A1 (ko)
MX (1) MX2019004673A (ko)
PH (1) PH12019500888A1 (ko)
RU (1) RU2723308C1 (ko)
SG (1) SG11201903567VA (ko)
WO (1) WO2019072270A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3673430A4 (en) * 2019-06-27 2020-07-22 Alibaba Group Holding Limited IMPLEMENTATION OF A BLOCKCHAIN-BASED WORKFLOW
US10659219B1 (en) 2019-08-23 2020-05-19 Capital One Services, Llc Workflow management via distributed ledgers and smart contracts
WO2019228554A2 (en) 2019-08-27 2019-12-05 Alibaba Group Holding Limited System and method for blockchain-based notification
EP3692487B1 (en) 2019-08-27 2022-08-24 Advanced New Technologies Co., Ltd. System and method for registering subscribable sub-states in blockchain
CN111133428B (zh) * 2019-08-27 2023-07-04 创新先进技术有限公司 在区块链中注册可订阅状态的系统和方法
CN111213135B (zh) 2019-08-27 2023-11-21 创新先进技术有限公司 用于基于区块链的通知的系统和方法
CN111178885B (zh) * 2019-12-18 2023-08-04 达闼机器人股份有限公司 基于区块链的数据处理方法、装置、数据处理设备及系统
CN111523142A (zh) * 2020-04-26 2020-08-11 腾讯科技(深圳)有限公司 数据处理方法、装置、电子设备及介质
CN112488680B (zh) * 2020-12-04 2024-02-20 深圳前海微众银行股份有限公司 一种基于区块链的私有交易处理方法及装置
US11743327B2 (en) 2021-02-05 2023-08-29 International Business Machines Corporation Topological ordering of blockchain associated proposals
CN112766971A (zh) * 2021-03-30 2021-05-07 支付宝(杭州)信息技术有限公司 在区块链中发送交易和执行交易的方法和装置
JP7288264B2 (ja) * 2021-04-16 2023-06-07 シーアン グァダー ネットワーク テクノロジー カンパニー リミテッド トランザクションシーケンスコンセンサス方法及びシステム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010129065A (ja) * 2008-12-01 2010-06-10 Ntt Data Corp ワークフロー管理システム、ワークフロー管理方法
US9286369B2 (en) * 2009-12-30 2016-03-15 Symantec Corporation Data replication across enterprise boundaries
US9319276B2 (en) * 2010-12-21 2016-04-19 Cisco Technology, Inc. Client modeling in a forwarding plane
EP2498488A1 (en) * 2011-03-09 2012-09-12 Thomson Licensing Method and system digital for processing digital content according to a workflow
KR101692890B1 (ko) * 2011-10-25 2017-01-04 니시라, 인크. 범용 흐름을 변환하는 섀시 제어기
US9098318B2 (en) * 2011-11-11 2015-08-04 Vmware, Inc. Computational asset identification without predetermined identifiers
US20140068251A1 (en) * 2012-08-31 2014-03-06 Motorola Solutions, Inc. Method and device for dynamically updating and maintaining certificate path data across remote trust domains
CN104320262B (zh) * 2014-11-05 2017-07-21 中国科学院合肥物质科学研究院 基于加密数字货币公开账本技术的用户公钥地址绑定、检索和校验的方法及系统
US11386404B2 (en) * 2015-02-04 2022-07-12 Ripple Luxembourg S.A. Temporary consensus subnetwork in a distributed network for payment processing
CN107615317A (zh) * 2015-03-31 2018-01-19 纳斯达克公司 区块链交易记录的系统和方法
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US20170243193A1 (en) * 2016-02-18 2017-08-24 Skuchain, Inc. Hybrid blockchain
SG11201808657TA (en) * 2016-04-01 2018-10-30 Jpmorgan Chase Bank Na Systems and methods for providing data privacy in a private distributed ledger
RU2016123959A (ru) * 2016-06-16 2017-12-21 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запроса на транзакцию в распределенных системах обработки данных
RU2631144C1 (ru) * 2016-07-12 2017-09-19 Федоров Вадим Геннадьевич Способ маршрутизации трафика, имеющего приоритетный класс в сети связи, включающий двух и более операторов
CN108090750A (zh) * 2016-11-22 2018-05-29 深圳银链科技有限公司 区块链清结算系统及方法
JP6775086B2 (ja) * 2016-12-16 2020-10-28 株式会社日立製作所 ブロックチェーン監視及び管理
CN106874087A (zh) * 2017-01-25 2017-06-20 上海钜真金融信息服务有限公司 一种区块链智能合约定时任务调度方法
US20180218455A1 (en) * 2017-01-30 2018-08-02 Dais Technology, Inc. System for creating and utilizing smart policies on a blockchain
CN107196989B (zh) * 2017-03-21 2019-08-09 阿里巴巴集团控股有限公司 一种业务请求的处理方法及装置
CN107070938A (zh) * 2017-04-27 2017-08-18 电子科技大学 基于区块链的数据访问控制系统
CN107392040B (zh) * 2017-04-28 2019-08-09 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CA3065319A1 (en) * 2017-06-01 2018-12-06 Schvey, Inc. d/b/a/ Axoni Distributed privately subspaced blockchain data structures with secure access restriction management
CN107257340B (zh) * 2017-06-19 2019-10-01 阿里巴巴集团控股有限公司 一种认证方法、基于区块链的认证数据处理方法及设备
CN107846282B (zh) * 2017-11-03 2021-01-29 法信公证云(厦门)科技有限公司 一种基于区块链技术的电子数据分布式保管方法及系统
CN108540483A (zh) * 2018-04-23 2018-09-14 北京云图科瑞科技有限公司 一种基于区块链的设备监控方法及装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101727525B1 (ko) * 2016-09-05 2017-04-17 주식회사 스케일체인 블록체인 기반 분산 저장 방법 및 이를 이용한 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Quorum Whitepaper, https://github.com/ConsenSys/quorum/blob/master/docs/Quorum%20Whitepaper%20v0.2.pdf(2018.08.24.) 1부.*
박승철의 블록체인 제3강 하이퍼레저 패브릭 거래 처리, https://leeminki.github.io/blockchain/2018/09/07/Youtube_hyperledger_3.html(2018.09.07.) 1부.*

Also Published As

Publication number Publication date
MX2019004673A (es) 2019-08-14
EP3545664A4 (en) 2020-01-01
SG11201903567VA (en) 2019-05-30
EP3545664A2 (en) 2019-10-02
JP6810259B2 (ja) 2021-01-06
KR20200054132A (ko) 2020-05-19
WO2019072270A3 (en) 2019-08-22
CN110226318A (zh) 2019-09-10
AU2018347191B2 (en) 2020-04-30
CA3041162A1 (en) 2019-04-18
PH12019500888A1 (en) 2020-01-20
RU2723308C1 (ru) 2020-06-09
US20190251566A1 (en) 2019-08-15
BR112019008140A2 (pt) 2019-09-10
JP2020504920A (ja) 2020-02-13
CN110226318B (zh) 2021-05-18
WO2019072270A2 (en) 2019-04-18

Similar Documents

Publication Publication Date Title
KR102206950B1 (ko) 워크플로우에 기초한, 블록체인 네트워크 상에서의 비공개 트랜잭션의 관리
JP6878700B2 (ja) クロスブロックチェーン認証方法、装置、および電子デバイス
KR102215245B1 (ko) 준동형 암호화를 사용하는 블록체인 데이터 보호
KR102151894B1 (ko) 계좌 모델 하에서 퍼블릭 및 프라이빗 트랜잭션을 지원하는 블록체인 시스템
KR102348768B1 (ko) 동형 암호화를 이용한 블록체인 데이터 보호
KR102193549B1 (ko) 실용적 비잔틴 장애 허용 블록체인 합의 및 노드 동기화의 용이화
JP6934058B2 (ja) ブロックチェーンノード間の通信のための方法、装置および電子デバイス、ならびにブロックチェーンに基づく証明書管理のための方法、装置および電子デバイス
US11108571B2 (en) Managing communications among consensus nodes and client nodes
JP2021131870A (ja) クロスブロックチェーン認証方法および装置
JP2020503585A (ja) 論理マップを通じたスマートコントラクトデータベースの走査
KR102510353B1 (ko) 블록체인 기반 골프 서비스 제공 방법 및 시스템
BR112019008140B1 (pt) Método implementado por computador, meio de armazenamento legível por computador e sistema para implementar um método

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant