KR20190138645A - 블록체인을 이용한 안전한 데이터 레코드 분산을 위한 방법 및 시스템 - Google Patents

블록체인을 이용한 안전한 데이터 레코드 분산을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20190138645A
KR20190138645A KR1020197030446A KR20197030446A KR20190138645A KR 20190138645 A KR20190138645 A KR 20190138645A KR 1020197030446 A KR1020197030446 A KR 1020197030446A KR 20197030446 A KR20197030446 A KR 20197030446A KR 20190138645 A KR20190138645 A KR 20190138645A
Authority
KR
South Korea
Prior art keywords
key
public key
nodes
blockchain
output
Prior art date
Application number
KR1020197030446A
Other languages
English (en)
Other versions
KR102599183B1 (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 KR20190138645A publication Critical patent/KR20190138645A/ko
Application granted granted Critical
Publication of KR102599183B1 publication Critical patent/KR102599183B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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/3678Payment 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 e-cash details, e.g. blinded, divisible or detecting double spending
    • 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/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

입력 노드 그룹 및 출력 노드 그룹을 갖는 블록체인을 사용해서 데이터 레코드 분산 프로세스의 보안을 향상시키기 위한 컴퓨터-구현 방법으로서, 각각의 그룹은 개인 키-공개 키 쌍을 갖지만, 노드들은 그들 각각의 개인 키의 키 공유만을 갖고, 어떠한 노드도 완전한 개인 키를 갖지 못한다. 임계치 서명 스킴, 비밀 공유 가담, 및 스텔스 어드레스를 사용하여, 입력 노드들로부터의 데이터 레코드들이 입력 노드들의 협업 동작을 통해 결정되는 스텔스 어드레스에서 모집되고, 이는 입력 노드들의 공개 키, 공유 비밀, 및 스텔스 어드레스의 협업적인 결정을 필요로 한다. 공개 키는 트랜잭션에 복사된다. 출력 노드들은 트랜잭션을 찾고 공개 키를 추출해서, 그 진본성을 협업적으로 검증하고, 공유 비밀을 협업적으로 결정한다. 그렇게 함으로써, 출력 노드들은 데이터 레코드들을 스텔스 어드레스로부터 출력 어드레스들에 분산시키기 위한 제2 트랜잭션에 협업적으로 서명할 수 있다. 본 발명은, 예를 들어 비트코인 블록체인, 또는 다른 블록체인 구현예와 함께 사용될 수 있다.

Description

블록체인을 이용한 안전한 데이터 레코드 분산을 위한 방법 및 시스템
본 발명은 일반적으로 블록체인 트랜잭션(blockchain transactions)에 관한 것으로, 특히 보안을 향상시키기 위해 출력으로부터 입력을 분리시키는 데이터 레코드 분산 프로세스를 생성 및 수행하기 위한 방법 및 장치에 관한 것이다.
본 명세서에 있어서는, '블록체인(blockchain)'이라는 용어를 모든 형태의 전자적인, 컴퓨터-기반의, 분산 원장(distributed ledgers)을 포함한다는 의미로 사용한다. 이는 블록체인 및 트랜잭션-체인 기술, 허가 및 무허가 원장, 공유 원장 및 이들의 변형을 포함하지만, 이들에 한정되는 것은 아니다. 다른 블록체인 구현예들이 제안되고 개발되었지만, 가장 널리 알려져 있는 블록체인 기술의 용례는 비트코인(Bitcoin) 원장이다. 본 명세서에서는 편의 및 예시의 목적으로 비트코인이 언급될 수 있지만, 본 발명은 비트코인 블록체인에 사용하는 것으로 한정되지 않으며 대안적인 블록체인 구현예 및 프로토콜도 본 발명의 범위 내에 있는 것이라는 점에 유의해야 한다.
블록체인은, 결국 트랜잭션들로 구성된 블록들로 구성되는 컴퓨터-기반의 탈-중앙집중형 분산 시스템으로 구현된 컨센서스-기반의 전자 원장이다. 각각의 트랜잭션은 블록체인 시스템 참여자들 사이의 디지털 자산의 제어의 전송을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각각의 블록이 이전 블록의 해시를 포함하므로, 블록들이 함께 연쇄되어 그 개시 이래로 블록체인에 작성된 모든 트랜잭션의 영구적인 불변의 레코드를 생성한다. 트랜잭션은 그 입력 및 출력에 내재된 스크립트라고 하는 소규모 프로그램을 포함하고, 이는 트랜잭션의 출력에 액세스할 수 있는 방법 및 대상을 특정한다. 비트코인 플랫폼의 경우, 이러한 스크립트는 스택-기반 스크립팅 언어를 사용해서 작성된다.
블록체인에 트랜잭션이 작성되게 하기 위해서는, 트랜잭션이 "유효성 검증(validated)"되어야 한다. 네트워크 노드(채굴자)는, 각각의 트랜잭션이 유효함을 보장하고, 무효한 트랜잭션이 네트워크로부터 거부되게 하는 작업을 수행한다. 네트워크 노드에 인스톨된 소프트웨어 클라이언트는 그 잠금 및 잠금 해제 스크립트를 실행함으로써 아직 소비되지 않은 트랜잭션(UTXO)에 대하여 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트의 실행이 TRUE로 평가되면, 트랜잭션은 유효하고, 트랜잭션이 블록체인에 작성된다. 따라서, 블록체인에 트랜잭션이 작성되게 하기 위해서는, i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되어야 하고 ― 트랜잭션이 유효성 검증되면, 해당 노드가 네트워크 내의 다른 노드들에 트랜잭션을 중계하고; ii) 채굴자에 의해 구축되는 신규 블록에 추가되어야 하고; iii) 채굴, 즉 과거 트랜잭션들의 공공 원장에 추가되어야 한다.
암호화폐 구현용으로 블록체인 기술이 가장 널리 알려져 있지만, 디지털 사업가는 비트코인이 기초로 하는 암호화 보안 시스템 및 신규 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터를 모두 이용하는 것을 모색하기 시작했다. 블록체인이 암호화폐의 영역에 한정되지 않는 자동화된 태스크 및 프로세스에 사용될 수 있다면 매우 유리할 것이다. 이러한 해법은 블록체인의 이점(예컨대, 영구적인 변조 방지 이벤트 레코드, 분산 처리 등)을 활용할 수 있으면서 그 용례에 있어서 더욱 다용도이다. 따라서, 본원은 블록체인에 대하여 기록되는 "데이터 레코드(data record)"를 지칭할 수 있다. 데이터 레코드는, 예를 들어, 문서, 처리 능력 또는 시간의 측정치, 암호화폐 수량, 자산의 소유권을 나타내는 보안 또는 다른 토큰, 또는 해당 엔티티가 해당 데이터 레코드를 사용 또는 이동시키는 것을 허용하는 암호화 자료를 소유한 엔티티에 의해 제어될 수 있는 그 밖의 그러한 것들을 포함할 수 있다.
비트코인과 같은 블록체인 기술의 인식되어 있는 장점들 중 하나는 그 익명성과 보안이다. 즉, 비트코인 원장은 트랜잭션에 참여한 참여자들에 관한 어떠한 개인 정보도 포함하지 않고; 공개 어드레스 정보만을 포함한다. 그러나, 외부 데이터 및 분석 기법을 사용하면, 특정 트랜잭션들 및 어드레스들을 개인과 성공적으로 연계시킬 수 있다.
비트코인 같은 암호화폐의 익명성 및 대체성을 향상시키기 위해, 코인 믹싱(coin mixing) 트랜잭션이 사용될 수 있다. CoinJoin 같은 코인 믹싱 트랜잭션은 입력들의 세트를 모집(pool)하고 가치(value)를 출력들의 세트에 전송한다. 그러나, CoinJoin은 여전히 다른 참여자의 입력-출력 관계에 관한 지식을 가진 적어도 1명의 참여자를 수반하므로, 단지 부분적으로만 익명화되어, 결국 덜 안전한 트랜잭션 및 부족한 암호화 해법이 된다.
블록체인 내의 레코드들의 잠재적인 추적성은 특정 용례에 악영향을 끼칠 수 있는 구현 결함을 드러낸다. 예시적인 용례는, 표시를 위한 검사지 또는 서류의 제출, 익명의 범죄 보고서의 제출, 익명의 조사 또는 인구조사 보고서의 제출, 또는 참여자 노드들의 그룹들이, 제출 이후 데이터를 변경할 수 없는 상황하에서, 데이터 레코드를 하나 이상의 다른 노드들에 안전하고 기밀하게 전송할 필요가 있는 그 밖의 이러한 용례들을 포함한다.
따라서, 입출력에 관한 향상된 불추적성 및 불연계성을 통해 강화된 보안 및 보다 강력한 암호화를 제공하면서도 효율적이고 콤팩트한 데이터 레코드 분산 프로세스를 생성하는 향상된 방법 및 장치를 제공하는 것이 바람직하다.
그래서, 이러한 향상된 해법이 고안되었다.
따라서, 본 발명에 따르면, 첨부된 청구항들에서 정의되는 바와 같은 방법 및 장치가 제공된다.
본 발명은 컴퓨터-구현 방법 및 상응하는 시스템을 제공할 수 있다. 방법/시스템은 블록체인-구현 방법/시스템으로서 설명될 수 있다. 본 발명은 보안 방법 또는 암호화 방법/시스템으로서 설명될 수 있다. 약간의 또는 다량의 암호화폐와 같은 디지털 자산 또는 데이터 레코드의 안전한 전송을 제공할 수 있다. 부가적으로 또는 대안으로서, 약간의 또는 다량의 암호화폐와 같은 디지털 자산의 전송을 제어하기 위한 제어 메커니즘을 제공할 수 있다.
데이터 레코드들이 모집된 협업적으로-결정되는 스텔스 어드레스(stealth address), 및 해당 모집된 스텔스 어드레스로부터 지정된 출력 어드레스에 데이터 레코드를 분산함에 있어서 협업적 및 협력적 출력 노드 참여의 요건의 사용을 통해, 데이터 분산 프로세스가 보다 안전하고 강력하게 이루어질 수 있다.
부가적으로 또는 대안으로서, 본원은 블록체인을 사용해서 데이터 레코드 분산 프로세스에 참여하기 위한 컴퓨터-구현 방법을 설명하고, 데이터 레코드 분산은 다수의 입력 어드레스 및 다수의 출력 어드레스를 포함하며, 각각의 어드레스는 각각의 입력 노드 또는 출력 노드에 의해 제어(또는 소유)된다. 입력 노드들 중 하나에서 구현되는 방법은, 출력 노드들과 연계되는 제1 공개 키를 취득하는 단계; 입력 노드들과 연계되는 제2 개인 키의 키 공유(key share)를 취득― 제2 개인 키는 입력 노드들의 어느 것에도 알려지지 않음 ―하는 단계; 비밀 공유 가담(secret share joining)을 사용해서 제2 개인 키에 대응하는 제2 공개 키를 도출하는 데 협업하는 단계; 제1 공개 키, 키 공유, 및 비밀 공유 가담을 사용해서 공유 비밀(shared secret)을 도출하는 데 협업하는 단계; 및 다수의 입력 어드레스로부터 데이터 레코드를 수신하고 출력 어드레스로서 스텔스 어드레스를 갖는 제1 블록체인 트랜잭션을 생성― 스텔스 어드레스는 제1 공개 키 및 공유 비밀에 기초함 ―하는 단계를 포함한다.
일부 구현예에 있어서, 제1 블록체인 트랜잭션은 비-트랜잭션 코드 및 제2 공개 키의 복사본을 포함한다. 경우에 따라, 비-트랜잭션 코드는 OP_RETURN 또는 기능상 등가의 것이며, 제2 공개 키의 복사본은 제1 블록체인 트랜잭션에서 OP_RETURN에 이어진다.
일부 구현예에 있어서, 제2 공개 키를 도출하는 데 협업하는 단계는 키 공유를 포함하는 제1 라그랑즈(Lagrange) 다항식 보간법의 항(term)을 계산하는 단계, 및 해당 항을 다른 입력 노드들에 의해 제공되는 제1 라그랑즈 다항식의 항들과 합산하는 단계를 포함한다.
일부 구현예에 있어서, 제1 블록체인 트랜잭션을 생성하는 단계는 스텔스 어드레스를 제1 공개 키 및 상응하는 개인 키로서 공유 비밀을 갖는 비밀 공개 키의 합으로서 결정하는 단계를 포함한다.
본원은 블록체인을 사용해서 데이터 레코드 분산 프로세스에 참여하기 위한 컴퓨터-구현 방법을 설명하고, 데이터 레코드 분산 프로세스는 다수의 입력 어드레스 및 다수의 출력 어드레스를 포함하며, 각각의 어드레스는 각각의 입력 노드 또는 출력 노드에 의해 제어(또는 소유)된다. 출력 노드들 중 하나에 의해 구현되는 방법은, 출력 노드들과 연계되는 제1 개인 키의 키 공유를 취득― 제1 개인 키는 출력 노드들의 어느 것에도 알려지지 않고, 제1 개인 키는 제1 공개 키와 연계됨 ―하는 단계; 입력 노드들과 연계되는 제2 공개 키를 포함하는 제1 블록체인 트랜잭션을 위해 블록체인을 검색― 제1 블록체인 트랜잭션은 다수의 입력 어드레스를 식별하고 출력 어드레스로서 스텔스 어드레스를 가짐 ―하는 단계; 제1 트랜잭션으로부터 추출되는 제2 공개 키, 키 공유, 및 비밀 공유 가담을 사용해서 공유 비밀을 도출하는 데 협업하는 단계; 제1 공개 키 및 공유 비밀을 사용해서 스텔스 어드레스를 결정하고, 결정된 스텔스 어드레스를 제1 블록체인 트랜잭션의 출력 어드레스와 비교해서 이들이 일치하는지 확인하는 단계; 및 스텔스 어드레스와 연계하여 모집한 데이터 레코드들을 다수의 출력 어드레스에 분산하기 위해 제2 블록체인 트랜잭션에 서명하는 데 협업하는 단계를 포함하고, 서명하는 것은 공유 비밀 및 키 공유를 사용해서 타원 곡선 디지털 서명 알고리즘을 이용하는 것을 포함한다.
일부 구현예에 있어서, 블록체인을 검색하는 단계는 비-트랜잭션 코드를 포함하는 트랜잭션들을 식별하는 단계를 포함한다. 경우에 따라, 비-트랜잭션 코드는 블록체인 트랜잭션을 무효한 것으로 표시하는 데 사용될 수 있는 커맨드 또는 명령어이다. 이는, 예를 들어, 비트코인 프로토콜에 공지된 OP_RETURN 연산 코드, 또는 다른 블록체인 프로토콜과 연계되는 기능적으로 등가의 커맨드일 수 있다. 제2 공개 키는 제1 블록체인 트랜잭션에서 OP_RETURN에 이어질 수 있다(즉, 뒤에 배치될 수 있음).
일부 구현예에 있어서, 방법은 비밀 공유 가담을 사용해서 제1 개인 키에 대응하는 제1 공개 키를 도출하는 데 협업하는 단계를 더 포함할 수 있다. 경우에 따라, 제1 공개 키를 도출하는 데 협업하는 단계는 키 공유를 포함하는 제1 라그랑즈 다항식 보간법의 항을 계산하는 단계, 및 해당 항을 다른 출력 노드들에 의해 제공되는 제1 라그랑즈 다항식의 항들과 합산하는 단계를 포함할 수 있다.
일부 구현예에 있어서, 공유 비밀을 도출하는 데 협업하는 단계는 키 공유 및 제2 공개 키를 포함하는 제2 라그랑즈 다항식 보간법의 항을 계산하는 단계, 및 해당 항을 다른 출력 노드들로부터의 제2 라그랑즈 다항식의 항들과 합산하는 단계를 포함할 수 있다.
일부 구현예에 있어서, 스텔스 어드레스를 결정하는 것은 스텔스 어드레스를 제1 공개 키 및 상응하는 개인 키로서 공유 비밀을 갖는 비밀 공개 키의 합으로서 결정하는 것을 포함할 수 있다.
일부 구현예에 있어서, 타원 곡선 디지털 서명 알고리즘을 이용하는 것은 임계치 서명 스킴(threshold signature scheme)에서 안전한 역산(secure inverse) 및 안전한 곱셈(secure multiplication)을 사용하는 것을 포함할 수 있으며, 스텔스 어드레스에 대응하는 개인 키는 제1 개인 키에 공유 비밀을 더한 것으로서 협업적으로 결정된다.
일부 구현예에 있어서, 데이터 레코드 분산은 가치 믹싱(value mixing)으로서 지칭될 수 있다.
본원은 설명된 방법을 수행하기 위한 컴퓨팅 장치를 더 설명하고, 컴퓨팅 장치는 적어도 하나의 프로세서, 메모리, 네트워크 인터페이스, 및 실행시에, 프로세서로 하여금 본 명세서에서 설명되는 하나 이상의 방법의 설명된 동작들을 수행하게 하는 프로세서-실행 가능 명령어를 포함하는 블록체인 애플리케이션을 포함한다.
본원은 복수의 참여 노드 사이에서 블록체인을 사용해서 데이터 레코드 분산에 참여하기 위한 프로세서-실행 가능 명령어를 저장하는 비-일시적인 프로세서-판독 가능 매체를 더 설명하고, 프로세서-실행 가능 명령어는, 참여 노드들 중 하나의 노드의 프로세서에 의한 실행시에, 프로세서로 하여금 본 명세서에서 설명되는 하나 이상의 방법의 동작들을 수행하게 한다.
본 발명의 일 양태 또는 실시형태에 관련하여 설명되는 임의의 특징은 하나 이상의 다른 양태/실시형태에 대해서도 사용될 수 있다. 본 발명의 이들 및 다른 양태들은 본 명세서에서 설명되는 실시형태로부터 분명해지며 이를 참조하여 설명될 것이다. 이제, 본 발명의 실시형태가 첨부 도면을 참조하여 단지 예시로서 설명될 것이다:
도 1은 노드들의 예시적인 블록체인 네트워크를 예시하고;
도 2는 데이터 레코드 분산 프로세스의 일 실시형태를 개략적으로 예시하고;
도 3은 블록체인 트랜잭션에서 데이터 레코드 분산을 위한 예시적인 프로세스를 흐름도 형태로 도시하고;
도 4는 본원의 실시형태에 따른 데이터 레코드 분산 동작에 입력 노드로서 참여하기 위한 예시적인 프로세스를 흐름도 형태로 도시하고;
도 5는 본원의 실시형태에 따른 데이터 레코드 분산 동작에 출력 노드로서 참여하기 위한 예시적인 프로세스를 흐름도 형태로 도시하고;
도 6은 간략화된 참여 노드의 블록도를 도시한다.
본원에 있어서, "및/또는(and/or)"이라는 용어는, 열거된 요소들 중 어느 하나를 단독으로 포함하거나, 임의의 하위-조합을 포함하거나, 또는 요소들을 모두 포함하되, 추가적인 요소들을 반드시 제외하는 것은 아닌, 열거된 요소들의 가능한 모든 조합 및 하위-조합을 포함하기 위한 것이다.
본원에 있어서, "... 또는 ... 중 적어도 하나(at least one of ... or ...)"라는 문구는, 열거된 요소들 중 어느 하나를 단독으로 포함하거나, 임의의 하위-조합을 포함하거나, 또는 요소들을 모두 포함하되, 임의의 추가적인 요소들을 반드시 제외하는 것은 아니며, 또한 반드시 요소들을 모두 필요로 하는 것은 아닌, 열거된 요소들의 어느 하나 이상을 포함하기 위한 것이다.
블록체인과 연계되는 예시적인 블록체인 네트워크(100)를 블록도 형태로 예시하는 도 1을 먼저 참조한다. 블록체인 네트워크는 초대 없이 또는 다른 맴버들의 동의 없이 누구나 가담할 수 있는 피어-투-피어(peer-to-peer) 개방형 멤버십 네트워크이다. 블록체인 네트워크(100)가 동작하고 있는 블록체인 프로토콜의 인스턴스를 실행하는 분산 전자 장치는 블록체인 네트워크(100)에 참여할 수 있다. 이러한 분산 전자 장치를 노드(102)라고 할 수 있다. 블록체인 프로토콜은, 예를 들어, 비트코인 프로토콜 또는 다른 암호화폐일 수 있다.
블록체인 프로토콜을 실행하고 블록체인 네트워크(100)의 노드(102)를 형성하는 전자 장치는, 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 서버와 같은 컴퓨터, 스마트폰과 같은 모바일 장치, 스마트 워치와 같은 웨어러블 컴퓨터 또는 그 밖의 전자 장치를 포함하는 다양한 유형으로 될 수 있다.
블록체인 네트워크(100)의 노드(102)들은 유선 및 무선 통신 기술을 포함할 수 있는 적절한 통신 기술을 사용해서 서로 연결된다. 많은 경우에, 블록체인 네트워크(100)는 적어도 부분적으로 인터넷을 통해 구현되고, 개별 노드(102)들 중 일부는 지리적으로 분산된 장소에 위치될 수 있다.
노드(102)들은 블록체인 상의 모든 트랜잭션의 글로벌 원장을 유지한다. 글로벌 원장은 분산 원장이며, 각각의 노드(102)는 글로벌 원장의 전체 복사본 또는 부분 복사본을 저장할 수 있다. 글로벌 원장에 영향을 미치는 노드(102)에 의한 트랜잭션들은 다른 노드(102)들에 의해 검증되어 글로벌 원장의 유효성이 유지된다. 비트코인 프로토콜을 사용하는 것과 같이, 블록체인 네트워크를 구현하고 동작하는 세부내용이 당업자에게 이해될 것이다.
각각의 트랜잭션은 하나 이상의 입력 및 하나 이상의 출력을 갖는 것이 일반적이다. 입력 및 출력에 내재된 스크립트는 트랜잭션의 출력에 액세스할 수 있는 방법 및 대상을 특정한다. 트랜잭션의 출력은 트랜잭션의 결과로서 가치가 전송된 어드레스일 수 있다. 이후, 해당 가치는 아직 소비되지 않은 트랜잭션 출력으로서 해당 출력 어드레스와 연계된다. 이후, 후속 트랜잭션은 해당 어드레스를 해당 가치를 소비 또는 분산하기 위해 입력으로서 참조할 수 있다.
트랜잭션들은 블록체인 원장 상의 트랜잭션들에 개인 정보를 포함하고 있지 않은 의사-익명 트랜?션이지만, 연쇄 트랜잭션에서 가치의 전송을 추적하는 것이 가능하며, 경우에 따라, 외부 데이터를 사용해서 가치를 개인에게 연결하는 것이 가능하다. 익명성을 높이기 위해, 코인 믹싱 트랜잭션을 사용하여 다양한 소스로부터의 입력들을 모집하고 나서 모집된 가치를 분할하여 출력들에 할당할 수 있다. 입력들 및 출력들이 모두 동일한 사이즈이면, 특정 입력을 특정 출력과 연계시키는 것이 어렵다. 그러나, 이러한 트랜잭션에 있어서는 적어도 하나의 참여 노드가 다른 참여 노드에 의해 특정되는 입력 어드레스들과 출력 어드레스들 사이의 연결관계를 알고 있다. 비트코인 프로토콜에서의 CoinJoin 동작과 같은 이러한 코인 믹싱 트랜잭션에 있어서는, 다수의 입력 및 다수의 출력을 갖는 단일의 트랜잭션이 가치들을 혼합하는 데 사용된다.
입력과 출력 사이의 연결이 드러나는 것을 피하기 위해, 다양한 유효성을 가진 링 서명(ring signatures) 또는 스텔스 어드레스와 같은 일부 다른 익명화 기법이 사용된다. 스텔스 어드레스는 특정 사용자로부터 자금이 송신되는 출력 어드레스를 연결 해제하려 한다. 링 서명은 가능한 서명자들의 그룹의 어느 하나의 서명자가 특정 트랜잭션에 서명/인가한 서명자였다고 간주함으로써 소스를 추적할 수 없게 만들려고 한다. 불행히도, 링 서명은, 링 서명 개념과 호환되는 서명의 구조가 비트코인의 서명 요건과 호환되지 않기 때문에, 비트코인과 같은 일부 프로토콜에서 구현하기에는 문제가 있는 것으로 입증되었다. 모네로(Monero)와 같은 일부 다른 암호화폐가 링 서명이 가능하도록 특별히 설계되었다.
앞서 주지한 바와 같이, (암호화폐 가치들을 혼합하는 것에 더하여) 다수의 용례에 있어서, 특정 출력 노드에서 특정 문서와 입력 노드의 연결을 방지하는 방식으로 입력 노드가 출력 노드에 문서를 공급하는 안전한 변경 불가능한 문서 또는 데이터 레코드 분산 시스템을 제공하는 것이 유리할 것이다. 이러한 용례는 많은 다른 것들 중에서도 검사지 또는 서류의 제출, 범죄 보고서의 제출, 조사 또는 인구조사 보고서의 제출을 포함한다.
본원에 따르면, 임의의 특정 서명자로부터 입력을 효과적으로 연결 해제하고 임의의 특정 수신자로부터 출력을 효과적으로 연결 해제해서 불추적성 및 불연계성을 제공하는 방식으로 데이터 레코드 분산을 가능하게 하는 방법 및 장치가 설명된다. 블록체인 프로토콜의 구조 내에서 그렇게 하면, 해당 보안을 제공함에 있어서, 또한 부분적인 실패 또는 부분적인 분산 없이 분산의 효율적이고 효과적인 완료를 보장함에 있어서 중요한 기술적인 구현 과제가 생긴다. 아래의 설명은 그러한 기술적인 구현 과제에 대한 해법의 적어도 하나의 예시적인 실시형태를 제공한다.
본 명세서의 설명에 있어서는, "입력 노드(input node)", "출력 노드(output node)", "참여 노드(participating node)", "입력 어드레스(input address)", 및 "출력 어드레스(output address)"라는 용어들이 사용될 수 있다. 노드의 "어드레스(address)"에 대한 참조는 물리적인 노드의 네트워크 어드레스를 지칭하는 것을 의미하지 않는다. 대신에, "어드레스(address)"는 물리적인 노드가 트랜잭션 상의 서명에 대응하는 키를 갖거나 또는 제어함으로써 소유권을 주장할 수 있는 아직 소비지 않은 가치를 갖는 블록체인 상의 트랜잭션에 지정되는 어드레스이다. 이러한 의미에서, "출력 어드레스(output address)"는 참여 노드의 어드레스가 아니라, 참여 출력 노드에 의해 소유된 또는 그것과 연계된 블록체인 트랜잭션 출력 어드레스이다. 마찬가지로, "입력 어드레스(input address)"는 참여 입력 노드에 의해 소유된 또는 그것과 연계된 아직 소비되지 않은 트랜잭션 출력(unspent transaction output)(UTXO)의 어드레스이다.
타원 곡선 디지털 서명(Elliptic Curve Digital Signatures)
비트코인과 같은 일부 블록체인 기술은 디지털 서명을 위한 수학적 스킴으로서 타원 곡선 디지털 서명 알고리즘(Elliptic Curve Digital Signature Algorithm)(ECDSA)을 사용한다. ECDSA는 UTXO와 연계되는 가치가 그 적법한 소유자에 의해서만 소비될 수 있게 하는데 사용되는 암호화 디지털 서명이다. ECDSA 서명에 필요한 파라미터는 다음을 포함한다:
E ― 타원 곡선 함수
G ― 위수 n:n×G = 0 인 타원 곡선 상의 기준점
n ― 큰 소수(prime number)
q ― 하위그룹 위수
키 쌍이 난수 x로부터 생성되고, 여기서 0<x<n이다. 난수 x는 개인 키로서의 역할을 하고, 공개 키 P가 P = x×G로서 생성된다.
메시지 m, 난수 k 및 개인 키 x가 주어지면, 쌍 (r,s)를 갖는 서명이 생성된다. 난수 k는 0<k<q가 되도록 선택된다. 이후, r = k×G가 계산되고, s = k-1(m+xr) mod n이 계산되며, 여기서 k-1은 k mod n:k-1k≡1 mod n의 역수이다. 이는 서명 (r,s)를 제공한다.
서명 (r,s), 메시지 m 및 공개 키 P가 주어지면, 서명이 검증될 수 있다. 서명을 검증하기 위해, v = s-1m×G+s-1r×y가 계산된다. 이 식에서, s-1은 s-1s≡1 mod n이 되도록 하는 s mod q의 역수이다. 서명은 v = r인 경우에 유효하다. G에는 위수 n이 있으므로, s-1의 mod n 부분은 EC 점을 G와 곱할 때 없어진다는 점에 유의해야 한다.
임계치 서명 스킴(Threshold Signature Scheme)
비밀 키를 공유로 분할하고 그 공유를 참여자들의 세트 사이에 분산할 수 있게 하는 "임계치 서명 공유(threshold signature sharing)"라고 불리는 기술이 개발되었다. 이 기술에 있어서, 참여자들의 세트의 임의의 서브세트는 해당 서브세트의 카디널리티가 지정된 가치 t 이상인 한 비밀을 재구성할 수 있다. 서브세트의 카디널리티가 t보다 작으면, 비밀에 관한 정보는 드러나지 않는다. 이는 적어도 t명의 참여자가 공유 비밀을 사용해서 서명하도록 협업해야만 한다는 것을 의미한다. 참여자들 사이의 키 공유의 분산은 키 공유를 할당하는 중앙 딜러를 사용해서, 또는 딜러가 없는 분산 시스템을 통해 행해질 수 있다. 각각의 해법은 분산 방법들 중에서의 선택시에 구현되는 시스템의 요건을 신중하게 고려해야 하는 장단점이 있다.
적어도 하나의 실시형태에 있어서, 해당 기술은 비밀을 차수 t의 다항식에 내재시키는 것을 수반할 수 있다. n명의 참여자 각각은 당시 미지였던 다항식에 점을 할당받고, 결국 t+1명의 참여자의 능력이 라그장즈 다항식 보간법(Lagrange Polynomial Interpolation)을 사용해서 다항식을 정확하게 재구성할 수 있게 된다.
개별 키 공유를 소유한 n명의 참여자 중 m명이 개별 참여자들 중 어느 한 명에게 비밀 키를 재구성/드러내지 않고, 또한 서명을 생성하기 위해 2t+1명의 참여자를 수반하지 않고, 암호화-기반의 계산을 실행하도록 협력할 수 있게 하는 임계치 서명 스킴(Threshold Signature Scheme)이라고 불리는 변형이 개발되었다.
임계치 서명 스킴은 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)에 광범위하게 의존한다. 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)은 차수 t를 가진 함수 f(x)가 t+1개의 점, 즉 p = {(x1,f(x1)), (x2,f(x2)),...,(xt+1,f(xt+1))}로 다음과 같이 재구성될 수 있음을 나타낸다.
Figure pct00001
여기서, 라그랑즈 계수는
Figure pct00002
bi,p(xi) = 1이고, bi,p(xj) = 0이라는 점에 유의한다.
임계치 서명 계산의 일 요소는 x×G의 결정이고, 여기서 x는 비밀 키이며, G는 타원 곡선(Elliptical Curve) 상의 점이다. 비밀 키 x가 주어졌는데, 그 키 공유가 n명의 참여자들 사이에서 '분할(split)'되면:
임의의 비밀 x는 다항식 f(x) 상의 점 f(0)이고
(키 x의) 공유들 x1, x2, ..., xn은 f(x1), f(x2), ..., f(xn)에 대응하고
f(x)가 t-차 다항식이면, 비밀 x는
Figure pct00003
에 의해 보간될 수 있고, 여기서 π는 공유들 xa, xb, ..., xt, xt+1의 사이즈 t+1 서브세트이며, b는 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)과 관련하여 위에서 언급한 대로 라그랑즈 계수이다.
π는 그 개별 xi 공유들을 드러내지 않고 x×G를 계산하도록 협업하는 t+1명의 참여자들의 그룹이다. x는 t-차 다항식 상의 x = 0 점이다.
· 각각의 참여자 i는 bi,πxi×G 부분을 계산한다.
· π의 모든 참여자는 그들의 부분을 함께 가산(라그랑즈 보간법을 통해 비밀 x를 재구성)하고 다음이 주어진다:
Figure pct00004
이 프로세스를 "비밀 공유 가담(Secret Share Joining)"이라고 할 수 있다.
임계치 서명을 생성하는 다른 양태는 xy mod n을 생성하는 2개의 비밀 키를 곱하는 능력이다. 2개의 t-차 다항식이 곱해지는 경우, 결과는 차수 2t의 다항식이다. 결과적으로, 2t+1명의 참여자는 그들의 공유를 드러내지 않고 적(product)을 출력하도록 협업해야 한다. 따라서, 이 실시예에 있어서, π는 2t+1명의 참여자의 그룹이다.
각각의 참여자는 이미 공유 xi 및 공유 yi를 갖고 있다. x 및 y가 t-차 다항식 상의 x = 0 점이기 때문에, xy는 보간하기 위해 2t+1 점을 필요로 하는 2t-차 다항식 상의 x = 0 점이라는 것에 유의한다. xy를 결정하기 위한 보간에 있어서, 공유 xi는 xiyi로 대체되고, 라그랑즈 계수 bi,p(x)에 대하여 세트 p는 이제 2t+1명의 멤버를 포함한다는 것에 유의한다.
· 각각의 참여자 i는 bi,πxiyi mod n 부분을 계산한다.
· π의 모든 참여자는 그들의 부분을 함께 가산하고 다음이 주어진다:
Figure pct00005
이 프로세스를 "안전한 곱셈(Secure Multiplication)"이라고 할 수 있다.
ECDSA 서명을 협업적으로 생성하는 것은 k-1k≡1 mod n이 되도록 k mod n의 역수 k-1의 협업적인 결정을 수반한다. 메시지 m, 난수 k 및 개인 키 x가 주어지면, ECDSA 서명은 쌍 (r,s)으로 이루어진다는 점을 기억해야 하며, 여기서 k는 0<k<q이고 q는 하위그룹의 위수이다. 다음에 유의한다.
r = k×G
s = k-1(m+xr) mod n
그룹 π는 그 공유 ki를 드러내지 않고 또한 k를 재구성하지 않고 k-1 mod n에서 공유를 계산하도록 협업하는 2t+1 플레이어로 구성된다. 예시적인 일 실시형태에 있어서, 역수의 협업 생성은 다음 단계들을 포함할 수 있다:
· 그룹은 딜러가 없는 비밀 분산을 사용해서 난수인 공유 ci를 계산한다.
· 각각의 참여자 i는 bi,πkici mod n 부분을 계산한다.
· π의 모든 참여자는 그들의 부분을 함께 가산하고 다음이 주어진다:
Figure pct00006
· 모든 참여자는 역수를 계산한다.
(kc mod n)-1 mod n = k-1c-1 mod n
· 각각의 참여자 i는 제2 부분 k-1c-1×ci mod n을 계산한다. 이는 k-1의 그들의 공유이다.
· π'는 k-1의 공유에 대한 다항식이 단지 t-차 다항식일 경우의 t+1 플레이어의 그룹이다.
· c는 t-차 다항식의 비밀이고 재구성을 위해 t+1 공유를 필요로 하고, 이제 보여지는 바와 같이, k-1 mod n의 연산에는 단지 c를 재구성하는 것만이 필요하다.
·
Figure pct00007
· 비밀 c는 절대 드러나지 않는다는 점에 유의한다.
이 프로세스를 "안전한 역산(Secure Inverse)"이라고 할 수 있다.
"안전한 공유 가담(Secure Share Joining)" 및 "안전한 역산(Secure Inverse)" 프로세스는 비밀 키를 재구성하지 않고 ECDSA 서명을 총괄하여 및 협업하여 생성하는 데 적용될 수 있다. 이 프로세스에서, π는 2t+1명의 참여자의 그룹이다. 각각의 참여자는 비밀 키 x의 공유 xi를 갖는다. 하기의 프로세스는 제2 비밀 k의 사용을 수반하지만, 일부 구현예에 있어서는, 비밀 x가 재사용되지 않는 한 제2 비밀 k에 대한 필요성이 배제될 수 있다는 점에 유의한다. 예를 들면, 암호화폐 설정에 있어서, 임계치 서명이 계좌의 전체 잔고를 새로운 어드레스에 송금하는 것을 인가하는 것에 한한다. 일 실시예에 있어서, k는 메시지 m의 해시로 설정될 수 있다. 이는 안전한 ECDSA 절차를 간소화하고 서명을 위한 임계치(이는 2t+1임)와 관련된 상황을 명확하게 만든다. 그러나, 이 예시적인 실시예에 있어서, 제2 비밀 k는 다음의 경우에 사용된다:
· 그룹 π가 딜러가 없는 비밀 분산을 사용해서 각각의 참여자에 대하여 공유 ki를 계산한다. 그룹 π가 적어도 2t+1명의 참여자를 갖는다.
· t명의 참여자의 하위그룹 π'가 안전한 공유 가담(Secure Share Joining)을 사용해서 r = k×G를 생성하도록 협업한다. 이 가치는 전체 그룹에 브로드캐스트된다.
· 그룹은 안전한 역산(Secure Inverse)을 사용해서 k-1 mod n의 공유를 계산한다. 이 공유를 본 명세서에서는 ki -1이라고 한다.
· 각각의 참여자 i는 bi,πki -1(m+xir) mod n 부분을 계산하고, 여기서 m은 서명된 메시지(트랜잭션)이다.
· 그룹은 그들의 각각의 부분을 가산하도록 협업하고 다음이 주어진다:
Figure pct00008
· 이는 2t+1 공유를 필요로 하는 m+xr(여기서, x는 비밀임)과 k-1의 안전한 곱셈에 상당한다.
· 그룹은 비밀 키를 드러내지 않고 또한 개별 멤버들이 그들 각각의 비밀 키 공유를 드러내지 않고 서명을 성공적으로 계산했다:
r = k×G
s = k-1(m+xr) mod n
스텔스 어드레스 그룹 임계치 교환(Stealth Address Group Threshold Exchange)
위에서 언급한 대로, 본원은 입력 세트로부터 출력 세트로 안전한 데이터 레코드 분산을 위한 방법 및 장치를 제안한다. 다시 말해, 제1 참여자 그룹, 즉 그룹 A는 각각 입력 데이터 레코드를 공급하고, 제2 참여자 그룹, 즉 그룹 B는 각각 출력 데이터 레코드를 수신한다. 방법 및 장치는 외부의 자가 어느 입력 어드레스가 어느 데이터 레코드를 어느 출력 어드레스에 전송했는지를 식별하기 어렵게 만들도록 동작한다. 그룹 A의 어떠한 멤버도 그룹 B의 멤버가 아니라고 가정할 수 있다.
특히, 본원은, 그룹 A 참여자가 제1 트랜잭션을 사용해서 데이터 레코드를 스텔스 어드레스에 전송하고, 그룹 B가 제2 트랜잭션을 사용해서 스텔스 어드레스로부터의 데이터 레코드를 출력 어드레스에 전송하는 프로세스를 제안한다. 스텔스 어드레스는 입력 데이터 레코드들이 모집될 그룹 B에 의해 총괄적으로 제어되는 어드레스이다. 설명한 프로세스에 있어서, 두 그룹에 의해 사용되는 개인 키는 실제로 각각의 그룹의 임의의 개별 멤버가 절대 알지 못하고, 해당 프로세스는 협업 기반으로 수행된다. 본 명세서에서 설명되는 예시적인 실시형태는 일부 알트코인(altcoin) 프로토콜의 불추적성 및 불연계성 특징을 모방하지만, 예를 들어, 비트코인 같은 일부 ECDSA-기반 블록체인 프로토콜에 의해 부과되는 기술적 제약 내에서 그렇게 한다.
이제, 데이터 레코드 분산 프로세스(200)의 일 실시형태를 개략적으로 예시하는 도 2를 참조한다. 복수의 노드는 그룹 A 노드 세트의 멤버이다. 노드는 총 nA 노드에 대하여 노드 1A, 2A, 3A, ..., nA로 표시된다. "노드(nodes)"는 본 명세서에서 멤버 또는 참여자 또는 참여 노드로서 인용될 수 있다. 일부 구현예에 있어서, 각각의 노드는 지갑 또는 그 밖의 그와 같은 블록체인 엔티티이다. 다른 복수의 노드는 총 nB 노드에 대하여 1B, 2B, 3B, ..., nB로 표시되는, 그룹 B 노드 세트의 멤버이다. 대부분의 구현예에서, nA = nB라고 가정할 수 있다. 일부 구현예에 있어서는, 그룹 A의 어떠한 멤버도 그룹 B의 멤버가 아니다. 그러나, 경우에 따라, 그룹 A의 적어도 하나의 노드가 그룹 B의 노드이기도 하며; 이는, 예를 들면, 지갑 또는 그 밖의 그와 같은 노드가 데이터 레코드를 데이터 레코드 분산 트랜잭션에 배치하고, 동일한 데이터 레코드가 해당 트랜잭션에 이어서 나타나는 상응하는, 다만 연결 해제된, 출력 어드레스를 소유하는 경우이다. 일부 구현예에 있어서, 데이터 레코드는 암호화폐의 수량이다.
이제, 도 2와 함께 도 3을 참조한다. 도 3은 블록체인 트랜잭션에서 데이터 레코드 분산을 위한 예시적인 프로세스(300)를 흐름도 형태로 도시한다. 동작(302)에 지시된 바와 같이, 그룹 A 및 그룹 B가 형성된다. 노드들은 딜러가 없는 방식으로 광고된 또는 공개된 데이터 레코드 분산 트랜잭션 기회에 가담할 수 있다. 아래에서 나중에 설명되는 바와 같이, 딜러가 없는 키 공유의 분산이 일어날 수 있다. 일부 구현예가 더욱 중앙집중식의 트랜잭션 가담 및 키 공유 분산 아키텍처를 수반할 수 있는 것도 가능하다.
그룹 A의 노드들 각각은 그들 각각의 입력에 서명하고 그들 각각의 UTXO의 소유권을 증명할 수 있도록 그들 자신의 공개-개인 키 쌍을 갖는다. 그들은 또한, 각각의 노드가 개인 키 e의 각각의 공유 ei만을 갖고 어떠한 노드도 실제 개인 키 e를 알지 못하더라도, 공개-개인 키 쌍, 즉 P | e를 총괄적으로 공유한다. 유사하게, 그룹 B의 노드들은, 각각의 노드가 개인 키 d의 각각의 공유 di만을 갖고 어떠한 노드도 실제 개인 키 d를 알지 못하더라도, 공개-개인 키 쌍, 즉 Q | d를 총괄적으로 갖는다. 그룹 B 공개 키 Q는 그룹 A 노드들과 공유된다.
그룹 A 개인 키 공유 ei 및 비밀 공유 가담(Secret Share Joining)을 사용하면, 적어도 nA 노드들 중 mA 노드는 동작(304)에 의해 지시된 바와 같이 스텔스 어드레스, 즉 Apool을 총괄적으로 결정한다. 스텔스 어드레스는 부분적으로 그룹 B 공개 키 Q 및 그룹 A 개인 키의 적어도 mA 공유에 기초한다. 이는 그룹 B에는 알려지지 않으며, 임의의 특정 노드가 그 상응하는 개인 키를 소유하는 것에 의해 스텔스 어드레스를 제어한다는 점에서 "소유"되지 않는다.
동작(306)에서, 그룹 A의 노드들은 제1 트랜잭션(202)을 형성하고, 각각의 노드는 입력 데이터 레코드를 제공한다. 입력 데이터 레코드는 각각의 노드에 의해 소유 또는 제어되는 데이터 레코드를 특정하는 것으로 제공된다. 암호화폐를 수반하는 일 실시예에 있어서, 데이터 레코드는 각각의 노드에 의해 제어되는 UTXO이다. 많은 구현예들에 있어서, 데이터 레코드 분산 동작에서의 익명성을 향상시키기 위해, 입력 데이터 레코드들은 그들의 페이스(face)를 구별할 수 없다. 예를 들어, 암호화폐의 경우, 입력 데이터 레코드들은 동일한 수량의 암호화폐일 수 있다. 제1 트랜잭션(202)의 출력은 스텔스 어드레스 Apool에서 모집되는 출력 데이터 레코드들의 집합이다.
제1 트랜잭션(202)에는 그룹 A 공개 키 P의 복사본이 또한 포함된다. 이 가치는 해당 트랜잭션에 부정적인 영향을 주지 않는 일부 타입의 데이터 필드에 배치될 수 있다. 데이터 필드는 트랜잭션과 관련이 없는 코멘트, 텍스트, 또는 임의의 그와 같은 데이터에 대하여 지정된 필드일 수 있다. 경우에 따라, 데이터 필드는 해당 필드가 비-트랜잭션 데이터를 포함한다는 것을 나타내기 위해 특정 코드 또는 신호에 의해 표시 또는 지정될 수 있다. 비트코인 프로토콜에 있어서, 예를 들어, OP_RETURN 코드는 무효한 트랜잭션 출력을 표시하는 데 사용되는 스크립트 연산 부호이다. 비트코인 지불을 처리함에 있어서는 OP_RETURN 코드 이후에 배치되는 임의의 데이터가 무시되기 때문에, 이는 트랜잭션 내의 메시지 또는 데이터 저장 필드로서 효과적으로 작용할 수 있다. 따라서, 비트코인 프로토콜에 기초하는 일 구현예에 있어서, 제1 트랜잭션(202)은 그룹 A 공개 키 P로 이어지는 OP_RETURN 코드를 갖는 출력을 포함한다. 일반적인 용어로, 비-트랜잭션 데이터 또는 정보가 트랜잭션에 포함됨을 나타내는 코드를, 본 명세서에서는 "비-트랜잭션 코드(non-transactional code)"라고 할 수 있다.
이후, 그룹 A 멤버들은 그들 각각의 입력에 서명하고, 제1 트랜잭션(202)은 동작(308)에 의해 지시된 바와 같이, 유효성 검증 및 확인을 위해 블록체인 네트워크에 제출된다. 제1 트랜잭션(202)은 결국 블록에 통합되고 블록체인(204)에 추가된다.
동작(310)에서, 그룹 B 노드들, 또는 그들의 서브세트는 블록체인을 검색해서 OP_RETURN 코드(또는 사용되는 블록체인 프로토콜에 따라 유사한 데이터 필드 또는 코드)를 포함하는 트랜잭션을 식별한다. 그룹 B 노드들이 그룹 A 공개 키 P를 알지 못하고, 가치가 모집된 스텔스 어드레스 Apool을 알지 못한다는 점에 유의한다. 각각의 트랜잭션이 OP_RETURN 코드를 포함하는 것으로 밝혀지면, 그룹 B 노드들은 해당 트랜잭션이 그들이 검색하고 있는 데이터 레코드 분산 트랜잭션에 대응하는지의 여부를 평가한다. 그들은 비밀 공유 가담(Secret Share Joining)을 사용해서 그들 자신의 개인 키 공유를 더 수반하는 수학적 연산에서 OP_RETURN 코드에 이어지는 가치를 테스트함으로써 이 평가를 행하여, Apool 스텔스 어드레스를 생성함에 있어서 그룹 A 노드에 의해 사용된 공유 비밀을 생성한다. 그 실시예가 아래에서 설명되는 수학적 연산이 트랜잭션에서 출력 어드레스와 일치하는 스텔스 어드레스를 확인하면, 그룹 B 노드들은 해당 트랜잭션이 제1 트랜잭션(202)이라고 결정한다. 스텔스 어드레스의 확인은 평가의 일부로서 개인 키 공유 di를 사용해서 비밀 공유 가담(Secret Share Joining) 절차에서의 그룹 B 노드들의 협업에 의존하고, 그룹 B 노드들 중 어느 것도 그룹 B 개인 키 d를 알지 못한다는 점에 유의한다.
그룹 B 노드들이 제1 트랜잭션(202)을 식별하도록 총괄적으로 관리했으면, 그룹 B 노드들은, 그 중 어느 것도 그룹 B 개인 키 d에 부분적으로 기초하기 때문에 해당 캐인 키를 독립적으로 생성할 수는 없지만, 어드레스 Apool에 대하여 개인 키를 협업하여 생성할 수 있다.
이후, 동작(312)에서, 그룹 B 노드들은 입력이 스텔스 어드레스 Apool이고 출력이 그룹 B의 멤버들에 의해 지정되는 각각의 출력 어드레스인 제2 트랜잭션에 가담된다. 경우에 따라, 하나 이상의 출력이 그룹 A의 하나 이상의 멤버에 의해 데이터 레코드 분산 프로세스의 기초가 되는 동의의 일부로서 지정될 수 있으며, 일부 실시예에 있어서는, 별도의 안전한 통신으로 각각의 그룹 B 멤버들에 대하여 지정될 수 있다. 제2 트랜잭션(206)은 동작(314)에서 임계치 서명 스킴(Threshold Signature Scheme)을 사용해서 그룹 B 멤버들에 의해 서명되고, 입력 스텔스 어드레스와 연계되는 개인 키는 공유된 그룹 B 개인 키 d에 부분적으로 기초한다. 위에서 설명한 바와 같이, 적어도 그룹 B 노드들의 2tB+1은 제2 트랜잭션(206)에 서명하는 데 협업하고, 여기서 tB는 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)에서 수반되는 비밀 다항식의 위수이다.
제2 트랜잭션(206)이 서명되면, 동작(316)에서 유효성 검증 및 확인을 위해 블록체인 네트워크에 제출된다. 모집된 데이터 레코드들은 각각의 출력 어드레스에 분산된다.
데이터 레코드 분산 프로세스의 보다 상세한 구현 실시예는 아래에 제공된다. 이 실시예는 ECDSA가 서명 메커니즘인 비트코인 프로토콜의 사용에 기초한다. 아래의 실시예에 있어서, G는 타원 곡선의 연산자이다. 각각의 그룹, 즉 GroupAGroupB가 형성되며, 그들 각각의 키 공유를 참여 노드들 사이에 분산한다. 프로세스의 제1 스테이지는 스텔스 어드레스에서 데이터 레코드들을 모집하는 것을 수반하고, 그룹 B 멤버들은 트랜잭션을 식별하고 스텔스 어드레스에 대한 개인 키를 (협업하여) 도출하도록 관리한다:
· 수신 그룹 GroupB는 공개 키 Q = d×G를 생성하고, 여기서 d는 그룹의 개별 멤버들에게 알려지지 않은 비밀 키이다. 그러나, GroupB의 nB 멤버들 각각은 비밀 키 d의 키 공유 di를 갖고, 그에 따라, GroupB의 mB 멤버들은 협업하여 Q를 계산해야만 한다. 이는 비밀 공유 가담(Secret Share Joining)을 사용해서 계산된다. 결과적인 공개 키 Q는 모든 이해관계자, 특히 GroupA가 이용 가능해진다.
· 송신 그룹 GroupA도 비밀 공유 가담(Secret Share Joining)을 사용해서 그룹의 nA 멤버들 중 mA 멤버들 사이에 공개 키 P = e×G를 생성하고, 여기서 해당 그룹의 각각의 멤버는 키 공유 ei를 갖는다.
· 두 그룹 사이에 공유된 비밀은 c = H(e×Q) = H(d×P)가 되며, 여기서 H는 암호화 해시 함수이다. GroupA는 비밀 공유 가담(Secret Share Joining)을 사용해서 해당 그룹의 nA 멤버들 중 mA 멤버들 사이에 e×Q를 결정하고 나서, 궁극적으로는 c = H(e×Q)를 계산한다.
· 이 시점에 수신자 그룹 GroupB는, GroupA 공개 키 가치 P가 해당 그룹에 아직 통신되지 않았기 때문에, 비밀 가치 c를 모르며, 또한 결정할 수 없다는 점에 유의한다.
· GroupA의 멤버들은 그들의 개별 데이터 레코드들을 Q+(c×G) 식으로부터 도출되는 스텔스 어드레스 Apool에 송신하는 제1 트랜잭션을 생성한다. 다시 말해, 스텔스 어드레스는 공유 비밀 c 및 GroupB 공개 키 Q에 기초한다. 이 예시적인 스텔스 어드레스의 도출에 있어서, 해당 어드레스는 공개 키 Q 및 (c×G)에 의해 주어지는 비밀 공개 키의 추가에 기초하고, 공유 비밀 c는 비밀 공개 키에 대응하는 개인 키이다.
· 트랜잭션에는, 가치 P가 배치되는 OP_RETURN 출력이 또한 포함된다.
· 수신자 그룹 GroupB는 OP_RETURN 코드를 가진 블록체인을 검색한다.
· GroupB는 이들 트랜잭션의 OP_RETURN 출력들 각각에 포함되는 데이터가 P라고 가정하고, 해당 가치를 사용해서 c = H(d×P), 즉 공유 비밀을 계산한다. 이 계산은 d×P의 계산에서 mB 참여자들의 키 공유 di를 사용하는 또 다른 협업적 비밀 공유 가담(Secret Share Joining) 절차이다. 가치가 실제로 P이면, 적절한 공유 비밀 c가 생성될 것이고, GroupB는 출력이 Q+(c×G)에 의해 주어지는 스텔스 어드레스인지의 여부를 평가함으로써 이를 테스트할 수 있다.
· 스텔스 어드레스가 확인되면(즉, 적절한 공유 비밀 c가 결정됨), 해당 어드레스에 대한 개인 키, Apool은 d+c이다. Q = d×G이므로, Q+(c×G) = (d×G)+(c×G) = (d+c)×G임에 유의한다.
이 제1 스테이지 이후에, 이제 수신자 GroupB 노드들이 어드레스 Q+(c×G)에서의 데이터 레코드들을 그들의 최종 출력 어드레스에 분산할 수 있게 되지만, 이것도 마찬가지로 그룹의 개별 멤버들이 비밀 키 d를 모르고 트랜잭션에 서명할 수 없기 때문에 협업적으로 행해져야만 한다.
트랜잭션의 제2 스테이지에 있어서, GroupB의 적어도 2tB+1 참여자들은 스텔스 어드레스, Q+(c×G)에 저장되는 데이터 레코드들에 대한 트랜잭션에 서명하기 위해 협업해야만 하고, 여기서 tB는 비밀 다항식의 위수이다.
이 실시예에 있어서, 서명될 필요가 있는 어드레스의 개인 키는 d+c이고, 여기서 c는 GroupAGroupB에 걸친 공유 비밀 가치이고, d는 Q = d×G가 되도록 한다. ECDSA 서명 (r,s)의 상기 논의로부터 다음을 기억해야 하며:
r = k×G
s = k-1(m+xr) mod n
여기서, k는 0<k<q가 되도록 하는 난수이고, q는 하위그룹 위수이다.
따라서,
s = k-1(m+(d+c)r) mod n
s = k-1(m+dr+cr) mod n
GroupB 노드들은 다음을 제공하는 개별 그룹 멤버들의 부분들을 생성 및 추가하는 과정에서 안전한 역산(Secure Inverse) 및 안전한 곱셈(Secure Multiplication)을 사용해서 협업한다:
Figure pct00009
이러한 방식으로 서명을 협업적으로 생성하면, 모집된 데이터 레코드들을 분산하는 트랜잭션이 서명되어 블록체인에 제출된다.
전술한 실시예는 당업자에 의해 이해되는 시스템의 일부 구현의 세부내용을 생략하고 있다는 점을 이해할 것이고; 세부내용의 예를 들자면, 암호화폐 트랜잭션에서의 잠재적인 '변경(change)'의 취급, 또는 블록체인을 사용하는 데 필요할 수 있는 트랜잭션 비용이다.
키 공유의 분산은 딜러가 없는 방식으로 또는 중앙 집중식으로 행해질 수 있다는 점을 또한 이해할 것이다. 이러한 임의의 구현예에 있어서, 이해 당사자는 각각의 접근법의 장단점을 평가할 수 있고, 어느 방법이 보안, 신뢰성, 및 효율성 요구를 가장 만족하거나 또는 균형을 맞추는지를 결정할 수 있다.
이제, 본원의 실시형태에 따른 데이터 레코드 분산 동작에 입력 노드로서 참여하기 위한 예시적인 프로세스(400)를 흐름도 형태로 도시하는 도 4를 참조한다. 이 실시예에서의 입력 노드는 입력 데이터 레코드들을 분산 동작에 제공하는 그룹 A 노드 세트의 참여 노드이다. 프로세스(400)는 동작(402)에서 입력 노드가 데이터 레코드 분산 프로세스에 가담하는 것으로 시작한다. 가담 프로세스는 본 명세서에서 상세하게 설명되지 않으며, 아마도 동일한 입력 가치 및/또는 출력 가치(통화 믹싱의 경우), 일반적인 데이터 레코드 유형, 및/또는 각 그룹의 충분한 수를 보장하는 것에 기초하여 입력 노드들 및 출력 노드들의 적절한 그룹들을 모으는 중앙집중식으로 또는 탈-중앙집중식으로 구현될 수 있다.
동작(404)에서, 입력 노드는 그룹 B 출력 노드들과 연계되는 제1 공개 키 Q를 수신한다. 동작(406)에서, 입력 노드는 그룹 A 입력 노드들과 연계되는 제2 개인 키 e의 키 공유 ei를 수신한다. 동작들(404 및 406)은 상이한 순서로 또는 일부 구현예에서는 동시에 발생할 수 있다. 제2 개인 키 e는 상응하는 공개 키 P를 갖는다는 것이 이해될 것이다. 동작(408)에서, 입력 노드는 비밀 공유 가담을 사용해서 그룹 A의 다른 입력 노드들과 협업하여 제2 공개 키 P를 도출한다. 이 협업은 그룹 A의 nA 노드들 중 적어도 mA 노드들을 수반한다. 완전한 제2 개인 키 e는 그룹 A 입력 노드들의 어느 노드에게도 알려지지 않는 데, 이는 각각의 노드가 해당 키의 그 각각의 공유 ei만을 갖기 때문이라는 점에 유의한다.
적어도 하나의 구현예에 있어서, 제2 공개 키 P는, 트랜잭션에서 P에 저장되는 가치가 없을 것이기 때문에, 비밀 공유 가담 및 키 공유 ei에 의존하기 보다는, 단일 노드에 의해 계산될 수 있는 데; 다만, 이는 단일 노드가 개인 키 e를 갖는다는 것을 의미한다. 이는 제2 공개 키 P가 환불 또는 변경 등과 같은 일부 경우에 데이터 레코드 또는 가치를 저장하기 위한 장소로서 사용되거나, 또는 장소를 도출하기 위해 사용되는 경우 우려가 될 수 있다. 따라서, 제2 공개 키 P의 결정에 있어서는 비밀 공유 가담 및 키 공유를 이용하는 것이 바람직하다.
위에서 주지된 바와 같이, 데이터 레코드를 저장할 스텔스 어드레스의 결정은 그룹 A 및 그룹 B 모두의 노드들에 의해 결정될 수 있는, 해당 그룹들 내에서 협업적으로 작용하는 공유 비밀 c에 기초한다. 이 실시예에 있어서, 공유 비밀은 두 그룹이 독립적으로 결정할 수 있도록 c = H(e×Q) = H(d×P)에 의해 주어진다.
동작(410)에서, 입력 노드는 안전한 공유 가담(Secure Share Joining)을 사용해서 공유 비밀 c를 결정하는 데 협업한다. 위에서 주지된 바와 같이, 이는 입력 노드가 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)의 그 항, 즉 bi,πei×Q를 계산하는 것을 수반한다. 공유 비밀 c를 찾기 위해 항들이 합산 및 해싱된다. 일부 구현예에 있어서, 참여 그룹 A 노드들 중 하나는 공유 비밀 c를 찾기 위해 항들을 누적하고, 항들을 합산하고, 합을 해싱하는 '마스터(master)' 노드로서의 역할을 할 수 있다. 일부 다른 구현예에 있어서, 그룹 A 노드들 중 둘 이상, 또는 전부는 공유 비밀 c를 찾기 위해 동일한 계산을 할 수 있다. 그룹 B의 노드들은 그룹 A 공개 키 P를 갖고 있지 않기 때문에 공유 비밀 c를 아직 알지 못한다는 것이 이해될 것이다. 그룹 A는, 아래에서 설명되는 바와 같이, 트랜잭션을 통하는 것 외에는 그 공개 키 P를 공유하지 않는다.
동작(412)에서, 입력 노드는 그 입력 데이터 레코드(예를 들어, 가치가 저장된 UTXO에 의해 지정됨)를 제공함으로써 제1 트랜잭션을 가담 또는 생성하는 데 참여한다. 제1 트랜잭션은 그룹 B 출력 노드들의 공유 비밀 c 및 공개 키 Q로부터 도출되는 스텔스 어드레스, Apool에서 모든 입력 데이터 레코드들을 모집한다. 특정 실시예에 있어서는, Apool = Q+(c×G)이지만, 다른 식이 제2 공개 키 Q 및 공유 비밀 c로부터 스텔스 어드레스를 도출하는 데 사용될 수 있다. 이 식에서, (c×G) 항은 공유 비밀 c를 그 개인 키로서 갖는 비밀 공개 키이다.
제1 트랜잭션은 제2 공개 키를 포함한다. 일부 구현예에 있어서, 제2 공개 키는 비-트랜잭션 데이터 필드에 삽입되어서, 트랜잭션에 영향을 주지 않지만, 확인된 트랜잭션이 블록체인 상에 있을 때에는 공개적으로 읽을 수 있다. 일부 구현예에 있어서, 비-트랜잭션 데이터 필드는 비트코인 프로토콜에서 OP_RETURN 같은 비-트랜잭션 코드를 사용해서 시그널링된다.
이후, 블록체인 네트워크에 의한 유효성 검증 및 확인을 위해 제1 트랜잭션이 제출되고, 결국 블록체인 상의 블록에 통합된다.
이제, 본원의 실시형태에 따른 데이터 레코드 분산 프로세스에 출력 노드로서 참여하기 위한 예시적인 프로세스(500)를 흐름도 형태로 도시하는 도 5를 참조한다. 프로세스(500)는 동작(502)에 의해 지시된 바와 같이, 먼저 출력 노드가 데이터 레코드 분산 프로세스에 가담하는 것을 포함한다. 앞서 주지된 바와 같이, 가담은 특정 구현에 따라 적절한 그룹들을 모으는 더욱 중앙집중식으로 관리되는 프로세스 또는 탈-중앙집중식 가담 프로세스를 수반할 수 있다.
동작(504)에서, 출력 노드는 출력 노드들과 연계되는 제1 개인 키 di의 키 공유를 취득한다. 완전한 개인 키 d는 출력 노드들의 어느 것에도 알려지지 않는다. 개인 키 d는, 초기에는 마찬가지로 출력 노드들에게 알려지지 않는, 상응하는 공개 키 Q를 갖는다. 그러나, 출력 노드는, 동작(505)에 의해 지시된 바와 같이, 제1 개인 키의 그 키 공유 di 및 안전한 공유 가담(Secure Share Joining)을 사용해서 제1 공개 키 Q를 협업적으로 결정하는 데 가담한다. 따라서, 공개 키 Q는 출력 노드 및 그룹 B 출력 노드 세트의 다른 노드들에게 알려진다. 공개 키 Q는, 그들의 공유 비밀 c의 생성에 있어서 제1 공개 키 Q를 사용할 것이기 때문에 그룹 A 입력 노드 세트가 이용할 수 있게 되도록 전파되거나 또는 이용 가능해진다.
동작(506)에서, 출력 노드는 제1 트랜잭션을 식별하기 위해 블록체인을 검색한다. 검색은 잠재적으로 제2 공개 키 P일 수 있는 비-트랜잭션 데이터의 존재를 나타내는 특정 신호 또는 코드를 포함하는 트랜잭션을 식별하는 것에 기초할 수 있다. 일 구현예에 있어서, 검출된 신호는, 해당 코드에 이어지는 데이터가 비-트랜잭션 데이터임을 나타내는, 비트코인 프로토콜에서의 OP_RETURN과 같은 비-트랜잭션 코드이다.
동작(506)의 검색은 그룹 B의 출력 노드들 중 하나, 일부 또는 전부에 의해 수행될 수 있음이 이해될 것이다. 일부 구현예에 있어서, 검색은 중앙-편성된 데이터 레코드 분산 프로세스의 경우 중앙 서버에 의해 또는 그룹 B의 일부가 아닌 노드에 의해 수행될 수 있으며; 즉 편성자 노드가 그룹 B 노드들을 대신해서 검색을 수행할 수 있으며, 후술하는 바와 같이, 해당 노드들에게 그룹 B 노드들에 의한 후속 테스트 동안 발견되는 적격 트랜잭션을 제공할 수 있다.
동작(508)에서, 출력 노드는 제1 트랜잭션에서 발견되는 제2 공개 키 P 및 비밀 공유 가담(Secret Share Joining)을 사용해서 공유 비밀 c를 협업적으로 도출하려고 시도하는 데 참여한다. 위에서 주지된 바와 같이, 이 실시예의 공유 비밀은 c=H(e×Q)=H(d×P)로서 표현된다. 그룹 B의 출력 노드들은 식별된 트랜잭션으로부터 추출된 데이터가 제2 공개 키 P라고 가정하고, 이를 바탕으로 H(d×P)로부터 c라고 추정되는 것을 협업적으로 계산한다. 이는 출력 노드가 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)의 그 각각의 항, 즉 bi,πdi×P를 계산하는 것을 수반한다. 공유 비밀 c로 추정되는 것을 찾기 위해 해당 항들이 합산 및 해싱되고, 이는 추출된 데이터가 실제로 제2 공개 키 P인 경우가 된다. 노드들 중 하나는 공유 비밀 c를 찾기 위해 항들을 합산하고 해싱하기 위한 '마스터' 노드로서의 역할을 할 수 있다. 일부 구현예에 있어서, 노드들 각각은 그룹 A의 모든 노드가 공유 비밀 c를 계산하도록 동일한 계산을 할 수 있다.
노드들이 식별된 트랜잭션으로부터 공유 비밀을 정확하게 계산했다고 가정하면, 출력 노드들은 식별된 트랜잭션에서 지정되는 출력 어드레스와 일치하는 스텔스 어드레스를 결정하기 위해 공유 비밀을 사용할 수 있는지를 확인함으로써 해당 공유 비밀을 테스트한다. 동작(510)에서, 출력 노드는 그룹 B 제1 공개 키 Q 및 계산된 공유 비밀 c를 사용해서 스텔스 어드레스 Apool을 유효성 검증하는 데 참여한다. 스텔스 어드레스가 Q+(c×G)에 의해 주어진다는 것을 기억해야 한다. 다시, 일부 구현예에 있어서는 그룹 B 노드들 중 하나가 이 유효성 검증 테스트를 수행할 수 있다. 일부 다른 구현예에 있어서, 그룹 B 노드들 중 2개 이상, 또는 전부는 정확한 트랜잭션을 식별했음을 검증하기 위해 동일한 유효성 검증 테스트를 수행할 수 있다. 계산된 Apool이 트랜잭션의 출력 어드레스와 일치하면, 출력 노드들은 그들이 정확한 트랜잭션을 갖고 있고 제2 공개 키 P를 적절히 추출했다고 검증한다. 또한, 출력 노드들은 (총괄적으로) 이제 Apool로부터 데이터 레코드들을 분산시킬 수 있게 하는 Apool에 대응하는 개인 키 (d+c)를 생성할 수 있게 된다.
동작(512)에서, 출력 노드는 적어도 다른 2tB 출력 노드들과 함께 데이터 레코드들을 Apool로부터 각각의 출력 어드레스로 분산하는 제2 블록체인 트랜잭션에 서명하는 데 협업적으로 참여한다. 제2 블록체인 트랜잭션에 서명하기 위해, 출력 노드들은 개인 키 d+c에 기초하여 서명을 생성해야 한다. 출력 노드들 중 어느 것도 완전한 제1 개인 키 d를 갖지 못하므로, 이들은 정확한 서명을 생성하기 위해 임계치 서명 스킴(Threshold Signature Scheme)에서 협업한다. 비트코인 프로토콜과 같은 일부 구현예에 있어서, 이는 공유 비밀 c 및 키 공유 di를 사용하는 타원 곡선 디지털 서명 알고리즘을 수반하고, 안전한 역산(Secure Inverse) 및 안전한 곱셈(Secure Multiplication)을 사용하는 것에 의존한다. 특히, 이 실시예에 있어서, 출력 노드는 라그랑즈 다항식 보간법(Lagrange Polynomial Interpolation)의 그 각각의 항을 결정함으로써 협업한다. 이 실시예에 있어서, 출력 노드에 의해 계산되는 항은 (bi,πki -1(m+di+cr)mod n)으로 표현될 수 있고, 여기서 k는 하위그룹 위수보다 작은 난수이고, m은 서명된 메시지(통상, 트랜잭션의 생략 해시(truncated hash)), n은 큰 소수이고, b는 라그랑즈 다항식 보간법에서의 라그랑즈 계수이고, di는 제1 개인 키의 키 공유이고, c는 공유 비밀이고, r은 k×G이다.
트랜잭션이 서명되면, 유효성 검증 및 확인을 위해 제출되고, 결국 블록체인 상의 블록에 포함된다.
상기 예시적인 실시형태에서 설명한 동작들 중 일부는 프로세스에 실질적으로 영향을 미치지 않으면서 일부 구현예에서는 동시에 또는 상이한 순서로 발생할 수 있다는 점이 이해될 것이다. 본원은 그러한 변경 및 수정을 포함한다.
이제, 참여 노드(600)의 간략화된 실시예를 블록도 형태로 도시하는 도 6을 참조한다. 노드(600)는 입력 노드 또는 출력 노드일 수 있다. 노드(600)는 하나 이상의 마이크로프로세서, 주문형 집적회로(ASIC), 마이크로컨트롤러, 또는 유사한 컴퓨터 처리 장치를 포함할 수 있는 프로세서(602)를 포함한다. 노드(600)는 가치, 변수, 및 경우에 따라 프로세서-실행 가능 프로그램 명령어를 저장하기 위한 영구적 및 일시적 메모리를 포함할 수 있는 메모리(604), 및 유선 또는 무선 네트워크를 통해 네트워크 연결을 제공하기 위한 네트워크 인터페이스(606)를 더 포함한다.
노드(600)는, 실행시에, 프로세서(602)로 하여금, 본 명세서에서 설명되는 하나 이상의 기능 또는 동작을 수행하게 하는 프로세서-실행 가능 명령어를 포함하는 프로세서-실행 가능 블록체인 애플리케이션(608)을 포함한다.
비디오 특징 추출기를 구성하기 위해 본 명세서에서 설명되는 장치 및 프로세스와, 설명된 방법/프로세스를 구현하는 임의의 모듈, 루틴, 프로세스, 스레드, 애플리케이션, 또는 그 밖의 소프트웨어 컴포넌트는 표준 컴퓨터 프로그래밍 기술 및 언어를 사용해서 실현될 수 있다는 점이 이해될 것이다. 본원은 특정한 프로세서, 컴퓨터 언어, 컴퓨터 프로그래밍 관례, 데이터 구조, 그 밖의 이러한 구현 상세에 한정되지 않는다.
전술한 실시형태들은 본 발명을 한정하는 것이 아니라 예시하는 것이며, 당업자라면, 첨부된 청구항들에 의해 규정되는 바와 같은 발명의 범위로부터 일탈함이 없이, 다양한 대안적인 실시형태들을 설계할 수 있을 것이라는 점에 유의해야 한다. 청구항들에 있어서, 괄호 안의 임의의 참조 부호는 해당 청구항들을 제한하는 것으로 해석되지 않아야 한다. "포함하는(comprising)" 및 "포함한다(comprises)" 등의 단어는 전체적으로 임의의 청구항 또는 명세서에 열거된 요소들 또는 단계들 이외의 것들의 존재를 배제하지 않는다. 본 명세서에 있어서, "포함한다"는 "구비한다 또는 구성된다(includes or consists of)"를 의미하고, "포함하는"은 "구비하는 또는 구성되는(including or consisting of)"을 의미한다. 요소의 단수형 참조는 그러한 요소들의 복수형 참조를 배제하지 않으며, 그 반대도 마찬가지이다. 본 발명은 몇 개의 별개의 요소를 포함하는 하드웨어에 의해, 그리고 적절하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 몇 개의 수단을 열거하는 장치 청구항에 있어서, 이들 수단 중 몇몇은 하나의 동일한 하드웨어 아이템에 의해 구체화될 수 있다. 단지 특정 조치들이 서로 다른 종속 청구항들에서 인용된다는 사실만으로 이들 조치의 조합이 유리하게 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (16)

  1. 블록체인을 사용해서 데이터 레코드 분산 프로세스에 참여― 상기 데이터 레코드 분산 프로세스는 다수의 입력 어드레스 및 다수의 출력 어드레스를 포함하고, 각각의 어드레스는 각각의 입력 노드 또는 출력 노드에 의해 제어됨 ―하기 위한 컴퓨터-구현 방법으로서, 상기 입력 노드들 중 하나에서 구현되는 상기 방법은:
    상기 출력 노드들과 연계되는 제1 공개 키를 취득하는 단계;
    상기 입력 노드들과 연계되는 제2 개인 키의 키 공유(key share)를 취득― 상기 제2 개인 키는 상기 입력 노드들의 어느 것에도 알려지지 않음 ―하는 단계;
    비밀 공유 가담(secret share joining)을 사용해서 상기 제2 개인 키에 대응하는 제2 공개 키를 도출하는 데 협업하는 단계;
    상기 제1 공개 키, 상기 키 공유, 및 상기 비밀 공유 가담을 사용해서 공유 비밀(shared secret)을 도출하는 데 협업하는 단계; 및
    상기 다수의 입력 어드레스로부터 데이터 레코드를 수신하고 출력 어드레스로서 스텔스 어드레스(stealth address)를 갖는 제1 블록체인 트랜잭션을 생성― 상기 스텔스 어드레스는 상기 제1 공개 키 및 상기 공유 비밀에 기초함 ―하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 제1 블록체인 트랜잭션은 비-트랜잭션 코드 및 상기 제2 공개 키의 복사본을 포함하는
    방법.
  3. 제2항에 있어서,
    상기 비-트랜잭션 코드는 OP_RETURN 또는 기능상 등가의 것이며, 상기 제2 공개 키의 복사본은 상기 제1 블록체인 트랜잭션에서 OP_RETURN에 이어지는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제2 공개 키를 도출하는 데 협업하는 단계는 상기 키 공유를 포함하는 제1 라그랑즈(Lagrange) 다항식 보간법의 항(term)을 계산하는 단계, 및 상기 항을 다른 입력 노드들에 의해 제공되는 상기 제1 라그랑즈 다항식의 항들과 합산하는 단계를 포함하는
    방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 공유 비밀을 도출하는 데 협업하는 단계는 상기 키 공유 및 상기 제1 공개 키를 포함하는 제2 라그랑즈 다항식 보간법의 항을 계산하는 단계, 및 상기 항을 다른 입력 노드들로부터의 상기 제2 라그랑즈 다항식의 항들과 합산하는 단계를 포함하는
    방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 제1 블록체인 트랜잭션을 생성하는 단계는 상기 스텔스 어드레스를 상기 제1 공개 키 및 상응하는 개인 키로서 상기 공유 비밀을 갖는 비밀 공개 키의 합으로서 결정하는 단계를 포함하는
    방법.
  7. 블록체인을 사용해서 데이터 레코드 분산 프로세스에 참여― 상기 데이터 레코드 분산 프로세스는 다수의 입력 어드레스 및 다수의 출력 어드레스를 포함하고, 각각의 어드레스는 각각의 입력 노드 또는 출력 노드에 의해 제어됨 ―하기 위한 컴퓨터-구현 방법으로서, 상기 출력 노드들 중 하나에서 구현되는 상기 방법은:
    상기 출력 노드들과 연계되는 제1 개인 키의 키 공유를 취득― 상기 제1 개인 키는 상기 출력 노드들의 어느 것에도 알려지지 않고, 상기 제1 개인 키는 제1 공개 키와 연계됨 ―하는 단계;
    상기 입력 노드들과 연계되는 제2 공개 키를 포함하는 제1 블록체인 트랜잭션을 위해 블록체인을 검색― 상기 제1 블록체인 트랜잭션은 상기 다수의 입력 어드레스를 식별하고 출력 어드레스로서 스텔스 어드레스를 가짐 ―하는 단계;
    상기 제1 트랜잭션으로부터 추출되는 상기 제2 공개 키, 상기 키 공유, 및 비밀 공유 가담을 사용해서 공유 비밀을 도출하는 데 협업하는 단계;
    상기 제1 공개 키 및 상기 공유 비밀을 사용해서 상기 스텔스 어드레스를 결정하고, 결정된 상기 스텔스 어드레스를 상기 제1 블록체인 트랜잭션의 상기 출력 어드레스와 비교해서 이들이 일치하는지 확인하는 단계; 및
    상기 스텔스 어드레스와 연계하여 모집한 데이터 레코드들을 상기 다수의 출력 어드레스에 분산하기 위해 제2 블록체인 트랜잭션에 서명하는 데 협업― 상기 서명하는 것은 상기 공유 비밀 및 상기 키 공유를 사용해서 타원 곡선 디지털 서명 알고리즘을 이용하는 것을 포함함 ―하는 단계를 포함하는
    방법.
  8. 제7항에 있어서,
    상기 블록체인을 검색하는 단계는 비-트랜잭션 코드를 포함하는 트랜잭션들을 식별하는 단계를 포함하는
    방법.
  9. 제8항에 있어서,
    상기 비-트랜잭션 코드는 OP_RETURN을 포함하고, 상기 제2 공개 키는 상기 제1 블록체인 트랜잭션에서 OP_RETURN에 이어지는
    방법.
  10. 제7항 내지 제9항 중 어느 한 항에 있어서,
    비밀 공유 가담을 사용해서 상기 제1 개인 키에 대응하는 상기 제1 공개 키를 도출하는 데 협업하는 단계를 더 포함하는
    방법.
  11. 제10항에 있어서,
    상기 제1 공개 키를 도출하는 데 협업하는 단계는 상기 키 공유를 포함하는 제1 라그랑즈 다항식 보간법의 항을 계산하는 단계, 및 상기 항을 다른 출력 노드들에 의해 제공되는 상기 제1 라그랑즈 다항식의 항들과 합산하는 단계를 포함하는
    방법.
  12. 제7항 내지 제9항 중 어느 한 항에 있어서,
    상기 공유 비밀을 도출하는 데 협업하는 단계는 상기 키 공유 및 상기 제2 공개 키를 포함하는 제2 라그랑즈 다항식 보간법의 항을 계산하는 단계, 및 상기 항을 다른 출력 노드들로부터의 상기 제2 라그랑즈 다항식의 항들과 합산하는 단계를 포함하는
    방법.
  13. 제7항 내지 제12항 중 어느 한 항에 있어서,
    상기 스텔스 어드레스를 결정하는 것은 상기 스텔스 어드레스를 상기 제1 공개 키 및 상응하는 개인 키로서 상기 공유 비밀을 갖는 비밀 공개 키의 합으로서 결정하는 것을 포함하는
    방법.
  14. 제7항 내지 제13항 중 어느 한 항에 있어서,
    상기 타원 곡선 디지털 서명 알고리즘을 이용하는 것은 임계치 서명 스킴(threshold signature scheme)에서 안전한 역산(secure inverse) 및 안전한 곱셈(secure multiplication)을 사용하는 것을 포함하고, 상기 스텔스 어드레스에 대응하는 개인 키는 상기 제1 개인 키에 상기 공유 비밀을 더한 것으로서 협업적으로 결정되는
    방법.
  15. 복수의 참여 노드 사이에서 블록체인을 사용해서 데이터 레코드 분산 프로세스에 참여하기 위한 컴퓨팅 장치로서, 상기 컴퓨팅 장치는 상기 참여 노드들 중 하나이고, 상기 컴퓨팅 장치는:
    프로세서;
    메모리;
    네트워크 연결을 제공하기 위한 네트워크 인터페이스;
    상기 프로세서에 의한 실행시에, 상기 프로세서로 하여금 제1항 내지 제14항 중 어느 한 항에 기재된 방법을 수행하게 하는 컴퓨터-실행 가능 명령어를 포함하는 블록체인 애플리케이션을 포함하는
    컴퓨팅 장치.
  16. 복수의 참여 노드 사이에서 블록체인을 사용해서 데이터 레코드 분산 프로세스에 참여하기 위한 프로세서-실행 가능 명령어를 저장하는 비일시적인 프로세서-판독 가능 매체로서, 상기 프로세서-실행 가능 명령어는, 상기 참여 노드들 중 하나에서의 프로세서에 의한 실행시에, 상기 프로세서로 하여금 제1항 내지 제14항 중 어느 한 항에 기재된 방법을 수행하게 하는 비일시적인 프로세서-판독 가능 매체.
KR1020197030446A 2017-04-07 2018-04-06 블록체인을 이용한 안전한 데이터 레코드 분산을 위한 방법 및 시스템 KR102599183B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1705621.9 2017-04-07
GBGB1705621.9A GB201705621D0 (en) 2017-04-07 2017-04-07 Computer-implemented system and method
PCT/IB2018/052406 WO2018185724A1 (en) 2017-04-07 2018-04-06 Method and system for secure data record distribution using a blockchain

Publications (2)

Publication Number Publication Date
KR20190138645A true KR20190138645A (ko) 2019-12-13
KR102599183B1 KR102599183B1 (ko) 2023-11-08

Family

ID=58744811

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197030446A KR102599183B1 (ko) 2017-04-07 2018-04-06 블록체인을 이용한 안전한 데이터 레코드 분산을 위한 방법 및 시스템

Country Status (9)

Country Link
US (2) US11875340B2 (ko)
EP (2) EP4300399A3 (ko)
JP (3) JP7029468B2 (ko)
KR (1) KR102599183B1 (ko)
CN (1) CN110520881A (ko)
GB (1) GB201705621D0 (ko)
SG (2) SG11201908511PA (ko)
TW (1) TWI751320B (ko)
WO (1) WO2018185724A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021137391A1 (ko) * 2019-12-30 2021-07-08 재단법인 경주스마트미디어센터 비밀 공유를 이용한 블록 체인 생성 방법
WO2021137392A1 (ko) * 2019-12-30 2021-07-08 재단법인 경주스마트미디어센터 블록 체인 기반 영상 저작물 관리 방법
KR20220085568A (ko) * 2020-12-15 2022-06-22 포항공과대학교 산학협력단 개인 정보 보안 강화된 블록체인 기반 의료 정보 제공 방법 및 시스템
KR20220142254A (ko) * 2021-04-14 2022-10-21 에이아이오티홀딩스 주식회사 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018211675A1 (en) * 2017-05-18 2018-11-22 Nec Corporation Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
CN110785782A (zh) * 2017-06-20 2020-02-11 区块链控股有限公司 使用区块链网络的多轮令牌分发系统和方法
CN107465505B (zh) * 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
GB201720753D0 (en) * 2017-12-13 2018-01-24 Nchain Holdings Ltd Computer-implemented system and method
KR20200104413A (ko) * 2018-01-17 2020-09-03 메디씨 벤쳐스, 인코포레이티드 거래 주소를 생성하기 위해 n개의 키 중 m개를 사용하는 다중 승인 시스템
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
GB2576081A (en) * 2018-06-03 2020-02-05 Vvow Company Ltd Peer-to-peer cryptocurrency and crypto asset trading platform
CN111768304A (zh) 2018-08-06 2020-10-13 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
GB201816936D0 (en) 2018-10-17 2018-11-28 Nchain Holdings Ltd Computer-implemented system and method
GB201817507D0 (en) * 2018-10-27 2018-12-12 Nchain Holdings Ltd Computer implemented system and method
CN110730963B (zh) * 2018-11-27 2023-12-01 创新先进技术有限公司 用于信息保护的系统和方法
EP3549303B1 (en) 2018-11-27 2021-05-26 Advanced New Technologies Co., Ltd. System and method for information protection
JP6908700B2 (ja) 2018-11-27 2021-07-28 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 情報保護のためのシステム及び方法
AU2018347195B2 (en) 2018-11-27 2020-09-24 Advanced New Technologies Co., Ltd. System and method for information protection
US10726657B2 (en) 2018-11-27 2020-07-28 Alibaba Group Holding Limited System and method for information protection
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
CN110032880B (zh) * 2018-12-13 2021-10-29 创新先进技术有限公司 基于区块链的录屏取证方法、系统和电子设备
CN109685657B (zh) * 2018-12-25 2023-07-21 众安信息技术服务有限公司 在区块链网络中处理交易的方法和节点设备以及存储介质
TWI689194B (zh) * 2019-01-22 2020-03-21 開曼群島商現代財富控股有限公司 基於無分派者秘密共享的門檻式簽章系統及其方法
TWI694349B (zh) * 2019-01-22 2020-05-21 開曼群島商現代財富控股有限公司 防止記憶體傾印的門檻式簽章系統及其方法
PL3616356T3 (pl) * 2019-03-18 2021-07-26 Advanced New Technologies Co., Ltd. Zapobieganie fałszywemu przedstawianiu danych wejściowych przez uczestników w bezpiecznych obliczeniach wielostronnych
CN110011813A (zh) * 2019-04-12 2019-07-12 湘潭大学 一种基于区块链的数据隐蔽传输方法
CN110009499B (zh) * 2019-04-17 2021-05-11 北京八分量信息科技有限公司 一种基于区块链和隐藏地址的交易方法及系统
GB2584154A (en) * 2019-05-24 2020-11-25 Nchain Holdings Ltd Knowledge proof
US10937096B2 (en) 2019-07-15 2021-03-02 Advanced New Technologies Co., Ltd. Transaction processing in a service blockchain
CN110471984B (zh) * 2019-07-15 2020-08-25 阿里巴巴集团控股有限公司 基于区块链的业务处理方法及装置、电子设备
CN110555783B (zh) * 2019-07-18 2023-08-29 中国南方电网有限责任公司 一种基于区块链的电力营销数据保护方法及系统
CN110675265B (zh) * 2019-09-29 2022-07-08 四川师范大学 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法
US20210135855A1 (en) * 2019-10-30 2021-05-06 EMC IP Holding Company LLC Threshold-Based Override of Data Privacy Using Distributed Ledgers and Key Shares
CN111047448A (zh) * 2019-12-30 2020-04-21 国家计算机网络与信息安全管理中心 多通道数据融合的分析方法及装置
CN111340494B (zh) * 2020-05-15 2020-08-28 支付宝(杭州)信息技术有限公司 资产类型一致性证据生成、交易、交易验证方法及系统
CN111709740B (zh) * 2020-05-18 2023-06-06 杜晓楠 区块链系统中隐藏交易地址的方法、计算机可读存储介质和区块链系统
CN111598701B (zh) * 2020-05-22 2023-09-19 深圳市迅雷网络技术有限公司 一种信息监控方法、系统、设备及存储介质
CN112199382B (zh) * 2020-05-28 2023-12-15 支付宝(杭州)信息技术有限公司 在联盟链网络中创建节点组、基于节点组的交易方法
CN112070496B (zh) * 2020-08-06 2024-03-19 中国科学院信息工程研究所 一种基于动态标记的区块链隐蔽信息传输方法及系统
CN112260834B (zh) * 2020-10-12 2023-01-20 南京邮电大学 Ad Hoc网络中基于区块链的密钥生成和管理方法
CN112532613B (zh) * 2020-11-25 2024-02-02 山东师范大学 一种基于区块链地址的隐蔽通信方法
CN112636929B (zh) * 2020-12-29 2023-01-17 北京百度网讯科技有限公司 群组业务实现方法、装置、设备和存储介质
CN112910870B (zh) * 2021-01-22 2021-11-09 西安电子科技大学 基于区块链的协同隐私计算数据通信方法
CN113364576B (zh) * 2021-05-28 2022-07-22 湘潭大学 一种基于区块链的数据加密存证与共享方法
CN113067707B (zh) * 2021-06-02 2021-08-31 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质
CN113364769B (zh) * 2021-06-03 2022-04-15 浙江大学 一种区块链网络中的隐蔽信道构造方法
TWI761243B (zh) * 2021-06-29 2022-04-11 中華電信股份有限公司 群組即時通訊的加密系統和加密方法
CN113660088A (zh) * 2021-07-12 2021-11-16 北京理工大学 一种基于动态地址的区块链交易筛选方法
CN113656828B (zh) * 2021-07-20 2023-04-07 北京理工大学 面向金融系统交易的基于格密码的区块链隐私保护方法
CN113726517A (zh) * 2021-08-10 2021-11-30 北京信安世纪科技股份有限公司 一种信息共享方法及装置
CN114095214B (zh) * 2021-10-29 2023-12-12 上海热线信息网络有限公司 一种基于区块链nft技术的加、解密方法及装置、设备及介质
CN114640462B (zh) * 2022-02-17 2024-05-17 北京邮电大学 区块链隐私保护方法、装置、电子设备及存储介质
CN114567433B (zh) * 2022-03-04 2024-03-26 浪潮云信息技术股份公司 一种基于Shamir秘密共享的多方AOS环签名方法及系统
CN115225337B (zh) * 2022-06-24 2023-11-28 北京天融信网络安全技术有限公司 一种基于区块链的隐蔽通信方法、终端、系统及存储介质
CN115021946B (zh) * 2022-08-09 2022-10-21 西南石油大学 一种基于环签名的去中心化混币方法
CN115378616B (zh) * 2022-10-21 2023-01-10 三未信安科技股份有限公司 一种基于Ed25519的门限签名方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100283376B1 (ko) * 1998-11-23 2001-03-02 정선종 타원 곡선을 이용한 내용 은닉 서명 방법
KR20160114749A (ko) * 2015-02-25 2016-10-06 이진희 블록체인 구조를 사용하는 암호화화폐 거래방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001166687A (ja) * 1999-09-29 2001-06-22 Hitachi Software Eng Co Ltd グループ署名生成方法及びシステム
US9130757B2 (en) * 2008-08-11 2015-09-08 International Business Machines Corporation Method for authenticated communication in dynamic federated environments
GB2464125A (en) * 2008-10-04 2010-04-07 Ibm Topology discovery comprising partitioning network nodes into groups and using multiple discovery agents operating concurrently in each group.
US8713329B2 (en) * 2009-02-26 2014-04-29 Red Hat, Inc. Authenticated secret sharing
JP5960678B2 (ja) * 2011-03-15 2016-08-02 パナソニック株式会社 改ざん監視システム、管理装置、保護制御モジュール及び検知モジュール
US20150120569A1 (en) 2013-10-31 2015-04-30 Bitgo, Inc. Virtual currency address security
US10158480B1 (en) * 2015-03-16 2018-12-18 Winklevoss Ip, Llc Autonomous devices
US20160321434A1 (en) * 2015-05-01 2016-11-03 Monegraph, Inc. Digital content rights transactions using block chain systems
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
US10097356B2 (en) 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
EP3324355B1 (en) * 2015-07-13 2020-08-26 Nippon Telegraph and Telephone Corporation Contract agreement method, agreement verification method, contract agreement system, agreement verification device, contract agreement device, contract agreement program and agreement verification program
US10778439B2 (en) * 2015-07-14 2020-09-15 Fmr Llc Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
EP3862956B1 (en) * 2016-02-23 2024-01-03 nChain Licensing AG Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
GB201607476D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd Operating system for blockchain IOT devices
GB2538022B (en) * 2016-08-20 2018-07-11 PQ Solutions Ltd Multiple secrets in quorum based data processing
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
GB2561256A (en) * 2017-04-05 2018-10-10 Stmicroelectronics Grenoble2 Sas Apparatus for use in a can system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100283376B1 (ko) * 1998-11-23 2001-03-02 정선종 타원 곡선을 이용한 내용 은닉 서명 방법
KR20160114749A (ko) * 2015-02-25 2016-10-06 이진희 블록체인 구조를 사용하는 암호화화폐 거래방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021137391A1 (ko) * 2019-12-30 2021-07-08 재단법인 경주스마트미디어센터 비밀 공유를 이용한 블록 체인 생성 방법
WO2021137392A1 (ko) * 2019-12-30 2021-07-08 재단법인 경주스마트미디어센터 블록 체인 기반 영상 저작물 관리 방법
KR20220085568A (ko) * 2020-12-15 2022-06-22 포항공과대학교 산학협력단 개인 정보 보안 강화된 블록체인 기반 의료 정보 제공 방법 및 시스템
KR20220142254A (ko) * 2021-04-14 2022-10-21 에이아이오티홀딩스 주식회사 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템

Also Published As

Publication number Publication date
EP4300399A2 (en) 2024-01-03
TW201840159A (zh) 2018-11-01
JP2020516164A (ja) 2020-05-28
GB201705621D0 (en) 2017-05-24
US20240152913A1 (en) 2024-05-09
JP2022069474A (ja) 2022-05-11
JP2023118955A (ja) 2023-08-25
CN110520881A (zh) 2019-11-29
JP7320092B2 (ja) 2023-08-02
SG10202110580RA (en) 2021-11-29
SG11201908511PA (en) 2019-10-30
US11875340B2 (en) 2024-01-16
KR102599183B1 (ko) 2023-11-08
TWI751320B (zh) 2022-01-01
WO2018185724A1 (en) 2018-10-11
EP3607516A1 (en) 2020-02-12
JP7029468B2 (ja) 2022-03-03
EP3607516B1 (en) 2024-01-03
US20210090072A1 (en) 2021-03-25
EP4300399A3 (en) 2024-01-17

Similar Documents

Publication Publication Date Title
KR102599183B1 (ko) 블록체인을 이용한 안전한 데이터 레코드 분산을 위한 방법 및 시스템
JP7320493B2 (ja) 分散協調を用いるスマートコントラクトの実行
EP3613189B1 (en) Secure blockchain-based consensus
KR102595998B1 (ko) 블록체인을 사용해서 데이터 레코드를 분산하기 위한 시스템 및 방법
US11341487B2 (en) System and method for information protection
US11870894B2 (en) Controlled cryptographic private key release
WO2018153486A1 (en) Method for signing a new block in a decentralized blockchain consensus network
KR20200096784A (ko) 트러스트 레스 또는 무 딜러 방식으로 동작하는 그룹에 걸쳐 계산 작업을 수행하기 위한 컴퓨터 구현 시스템 및 방법
KR102618691B1 (ko) 블록체인 네트워크를 이용한 멀티 라운드 토큰 분배 시스템 및 방법
TW201928755A (zh) 用以安全分享密碼材料之系統及方法
KR20190120777A (ko) 컴퓨터로 구현된 시스템 및 방법
CN110999211A (zh) 用于通信、存储和处理由实体通过区块链网络提供的数据的系统和方法
CN112527898A (zh) 安全计算方法、装置、节点及存储介质
US20230403161A1 (en) Aggregate anonymous credentials for decentralized identity in blockchain
CN118202622A (zh) 用于分布式区块链功能的方法和系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right