KR20200096248A - 암호 자료를 안전하게 공유하기 위한 시스템 및 방법 - Google Patents

암호 자료를 안전하게 공유하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20200096248A
KR20200096248A KR1020207017958A KR20207017958A KR20200096248A KR 20200096248 A KR20200096248 A KR 20200096248A KR 1020207017958 A KR1020207017958 A KR 1020207017958A KR 20207017958 A KR20207017958 A KR 20207017958A KR 20200096248 A KR20200096248 A KR 20200096248A
Authority
KR
South Korea
Prior art keywords
computer
participants
computing entity
points
implementation method
Prior art date
Application number
KR1020207017958A
Other languages
English (en)
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
Priority claimed from GBGB1720768.9A external-priority patent/GB201720768D0/en
Priority claimed from GBGB1813772.9A external-priority patent/GB201813772D0/en
Priority claimed from GBGB1813770.3A external-priority patent/GB201813770D0/en
Application filed by 엔체인 홀딩스 리미티드 filed Critical 엔체인 홀딩스 리미티드
Publication of KR20200096248A publication Critical patent/KR20200096248A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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
    • 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/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04L2209/38
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본원에 설명된 시스템 및 방법은 다수의 당사자 각각이, 공유된 시크릿을 노출시키지 않고서, 공유된 시크릿에 기초하는 수량(예를 들어, 공유된 시크릿의 파워)을 생성 및 교환하는 기술에 관한 것이다. 프로토콜에 따라, 둘 이상의 당사자는, 공유된 시크릿의 파워를 결정하기 위해, 둘 이상의 당사자에 의해, 사용될 수 있는 다항식에 대해 생성된 타원 곡선 포인트의 세트를 교환할 수 있다. 프로토콜은, 블록체인 네트워크(예를 들어, 비트코인)에 브로드캐스팅된 스마트 계약에 대한 파라미터를 결정하는 것의 부분으로서 활용될 수 있다. 프로토콜에 기초하여, 부가적인 당사자(예를 들어, 둘 이상의 당사자와 상이한 제 3 당사자)는 스마트 계약의 실행과 같은 계산적 작업을 수행할 수 있다.

Description

암호 자료를 안전하게 공유하기 위한 시스템 및 방법
본 발명은 일반적으로 컴퓨터 보안 및 검증에 관한 것이며, 더 구체적으로, 다수(예를 들어, 둘 이상)의 당사자가 그룹의 요소를 공유하도록 허용하는 기술에 관한 것이며, 그의 지수 또는 곱셈 계수는 공유된 시크릿의 파워(power)에 의존한다. 다수의 당사자가 공유된 시크릿을 노출시키지 않고서, 공유된 시크릿에 기초하는 수량(quantity)(예를 들어, 공유된 시크릿의 파워)을 교환하도록 수량이 공유될 수 있다. 본 발명은 스마트 계약(smart contract)에서의 사용에 특히 적합하지만, 이에 제한되지는 않고, 여기서 다수의 당사자는 스마트 계약에 대한 파라미터에 합의하는 스마트 계약의 개개의 당사자일 수 있다. 본 발명은 보안 관련 장점을 위해 수량을 공유하는 암호 및 수학 기술을 활용할 수 있다.
블록체인은, 결국에는, 트랜잭션(transaction) 및 다른 정보로 구성될 수도 있는, 블록으로 구성되는 컴퓨터 기반의 탈집중화된(decentralised) 분산 시스템으로서 구현되는 피어 투 피어(peer-to-peer) 전자 원장을 지칭할 수 있다. 몇몇 예에서, "블록체인 트랜잭션"은 데이터 및 조건의 세트를 포함하는 필드 값의 구조화된 콜렉션(collection)을 인코딩하는 입력 메시지를 지칭하는데, 필드의 세트가 블록체인 데이터 구조에 기록되기 위해서는, 조건의 세트의 이행이 필수이다. 예를 들면, 비트코인에서, 각각의 트랜잭션은, 블록체인 시스템에서의 참가자 사이에서 디지털 자산의 제어의 양도를 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 몇몇 실시형태에서, "디지털 자산"은 사용할 권리와 관련되는 이진 데이터를 지칭한다. 디지털 자산의 예는, 비트코인(Bitcoin), 이더(ether), 및 라이트코인(Litecoin)을 포함한다. 몇몇 구현예에서, 디지털 자산의 제어를 양도하는 것은, 디지털 자산의 적어도 일부를 제 1 엔티티로부터 제 2 엔티티로 재관련시키는 것에 의해 수행될 수 있다. 블록체인의 각각의 블록은, 블록체인의 시작 이후 블록체인에 기록된 모든 트랜잭션의 영구적이고 불변인 레코드를 생성하게끔 블록이 함께 체인화되도록, 이전 블록의 해시를 포함할 수 있다. 트랜잭션은, 트랜잭션 출력이 어떻게 그리고 누구에 의해 액세스될 수 있지를 명시하는, 그들의 입력 및 출력에 임베딩되는 스크립트로 알려진 작은 프로그램을 포함한다. 비트코인 플랫폼 상에서, 이들 스크립트는 스택 기반의 스크립팅 언어를 사용하여 작성된다.
비록 블록체인 기술이 암호 화폐 구현의 사용을 위해 가장 널리 알려져 있지만, 디지털 기업가는, 비트코인이 기반으로 하는 암호화 보안 시스템 및 새로운 시스템을 구현하기 위해 블록체인에 저장될 수 있는 데이터 둘 모두의 사용을 탐구하기 시작하였다. 블록체인이, 암호 화폐의 영역으로 제한되지 않는 자동화된 태스크 및 프로세스를 위해 사용될 수 있다면, 그것은 고도로 유리할 것이다. 그러한 해결책은, 그들의 애플리케이션에서 더욱 다재 다능하면서, 블록체인의 이점(예를 들면, 이벤트의 영구적이고 무단 변경 방지 기록, 분산 프로세싱, 등등)을 이용할 수 있을 것이다.
본 개시는 하나 이상의 블록체인 기반의 컴퓨터 프로그램의 기술적 양태를 설명한다. 블록체인 기반의 컴퓨터 프로그램은 블록체인 트랜잭션에서 기록되는 머신 판독 가능하고 실행 가능한 프로그램일 수 있다. 블록체인 기반의 컴퓨터 프로그램은 결과를 생성하기 위해 입력을 프로세싱할 수 있는 규칙을 포함할 수 있는데, 그 결과는, 그 다음, 액션으로 하여금 그들 결과에 의존하여 수행되게 할 수 있다. 현재의 연구의 한 영역은 "스마트 계약(smart contract)"을 구현하기 위한 블록체인 기반의 컴퓨터 프로그램의 사용이다. 자연어로 작성될 전통적인 계약과는 달리, 스마트 계약은, 머신 판독 가능 계약 또는 합의의 관점에서 실행을 자동화하도록 설계되는 컴퓨터 프로그램일 수도 있다.
따라서, 둘 이상의 당사자 사이의 공유된 시크릿의 파워를 결정하는데 사용될 수 있는 수량을 교환함으로써 블록체인 상의 다수-당사자 검증 키 기록을 위한 프로토콜을 제공하는 것이 바람직하다. 다양한 실시형태에서, 스마트 계약의 둘 이상의 당사자가 검증 키 및 평가 키를 포함하는 공통 기준 스트링(common reference string)을 결정하는데 사용 가능한 수량을 교환하는 것이 바람직할 수 있다. 다양한 실시형태에서, 본원에 설명된 기술은 암호화와 같은 암호 기술을 사용하지 않고서 둘 이상의 당사자가 공유된 시크릿의 파워를 교환하도록 허용하고, 또한 통신 채널을 통해 교환되는 데이터의 암호화 방식으로 검증 가능한 보장 기밀성(assurances confidentiality)을 요구하는 통신 채널을 확립하도록 참가자에게 요구하지 않는다. 따라서, 본 발명은 개선된 보안 및 검증 해결책을 제공한다.
이러한 개선된 해결책이 이제 고안되었다.
따라서, 본 발명에 따라, 첨부된 청구 범위에 정의된 바와 같은 시스템 및 방법이 제공된다.
본 발명에 따라, 블록체인 네트워크의 노드를 위한 컴퓨터 구현 방법이 제공될 수 있고, 컴퓨터 구현 방법은 유한 필드 요소를 맵핑하기 위해 사용 가능한 함수를 복수의 참가자 중 한 명의 참가자에서 결정하는 단계와, 참가자의 수에 기초하여, 포인트의 세트에서 평가되는 다항식을 생성하는 단계와, 복수의 참가자 중 대응하는 참가자에 상기 다항식을 분배하는 단계와, 복수의 참가자 중 각각의 참가자의 다항식의 합을 결정하는 단계 ― 합은 시크릿의 파워에 대응함 ― 와, 복수의 참가자 중에서 그리고 시크릿에 기초하여, 블록체인 트랜잭션을 일괄적으로 생성하는 단계를 포함한다.
바람직하게는, 포인트의 세트는 타원 곡선 포인트의 세트이다.
바람직하게는, 다항식의 합의 결정은 라그랑주 보간(Lagrange interpolation)에 기초한다.
본원에 설명된 방법은, 시크릿의 파워에 적어도 부분적으로 기초하여, 복수의 참가자에 의해 결정 가능한 공통 기준 스트링을 결정하는 단계를 더 포함할 수 있다.
본원에 설명된 방법은, 복수의 참가자 중 각각의 참가자로부터 대응하는 다항식의 값을 수신하는 단계를 더 포함할 수 있다.
바람직하게는, 오프-체인 통신은 대응하는 참가자로의 다항식의 값의 분배에서 활용된다. 오프-체인 통신은 블록체인 네트워크에 브로드캐스팅되지 않고 그리고/또는 블록체인 네트워크에 의해 검증 불가한 데이터 통신을 지칭할 수 있다.
바람직하게는, 유한 필드 요소를 맵핑하기 위해 사용 가능한 함수는 그룹의 생성기의 계수(coefficient) 또는 지수(exponent)의 역할을 한다.
바람직하게는, 복수의 참가자는 정확히 2명의 참가자이다.
시크릿은 특정 포인트, 가령, 특정 타원 곡선 포인트에서 평가된 다항식의 합에 기초하여 결정될 수 있다.
특정 포인트는 교차 포인트일 수 있고, 가령, 각각의 참가자의 다항식의 합은 (마스터) 다항식을 구성하고, 다항식의 y-축과의 교차는 시크릿이다.
포인트의 세트는 교차 포인트를 배제할 수 있고, 다시 말해서, 교차 포인트는, 적어도 일부 경우에서, 포인트의 세트의 멤버가 아니다.
포인트의 세트에서 평가된 다항식은 적어도 2차일 수 있다.
바람직하게는, 포인트의 세트 중 각각의 포인트는, 포인트의 세트에서 중복되는 포인트가 없도록 상이한 포인트이다.
프로세서와, 실행 가능 명령어를 포함하는 메모리를 포함하는 시스템을 제공하는 것이 또한 바람직한데, 실행 가능 명령어는, 프로세서에 의한 실행의 결과로서, 시스템으로 하여금, 청구되는 바와 같은 방법 중 임의의 것을 수행하게 한다.
또한, 실행 가능 명령어를 저장한 비일시적 컴퓨터 판독 가능 저장 매체를 제공하는 것이 또한 바람직한데, 실행 가능 명령어는, 컴퓨터 시스템의 하나 이상의 프로세서에 의한 실행의 결과로서, 컴퓨터 시스템으로 하여금, 청구되는 바와 같은 방법 중 임의의 것을 적어도 수행하게 한다.
본 발명의 이들 및 다른 양태는 본원에서 설명되는 실시형태로부터 명백해질 것이고 그 실시형태를 참조하여 설명될 것이다. 이제, 본 발명의 실시형태가, 단지 예로서, 그리고 첨부된 도면을 참조하여, 설명될 것인데, 첨부된 도면에서:
도 1은, 스마트 계약의 다수의 당사자가 스마트 계약을 실행하기 위해 제 3 자와 계약하는 컴퓨팅 환경을 도시한다.
도 2는 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티가 둘 이상의 당사자 사이의 공유된 시크릿의 파워를 결정하는데 사용될 수 있는 수량을 교환하는 컴퓨팅 환경을 도시한다.
도 3은 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티가 영지식(zero-knowledge)을 렌더링하는 파라미터의 세트를 교환하는 컴퓨팅 환경을 도시한다.
도 4는 2-당사자 CRS(two-party common reference string) 및 대응하는 POC(proof-of-correctness) 또는 정확한 실행의 증거에 기초한 프로토콜의 다이어그램을 도시한다.
도 5는 일 실시형태에 따라, 검증 키 및 평가 키를 포함하는 2-당사자 공통 기준 스트링을 생성하기 위한 프로세스를 도시한다.
도 6은 적어도 하나의 실시형태에 따라, 다수의 당사자 간에 공유된 시크릿의 파워를 공유하기 위한 프로세스를 도시한다.
도 7은 본 개시의 적어도 하나의 실시형태를 실시하는데 사용될 수 있는 컴퓨팅 장치의 간략한 블록도를 도시한다.
도 1은 다양한 실시형태가 구현될 수 있는 블록체인 환경을 도시한다.
본 개시는, 다수의 당사자가 그룹의 요소를 안전하게 공유하도록 허용하는 시스템 및 방법을 구현하는데 활용될 수 있는 기술을 설명하며, 그의 지수 또는 곱셈 계수는 공유된 시크릿의 파워에 의존한다. 다수의 당사자가 공유된 시크릿을 노출시키지 않고서, 공유된 시크릿에 기초하는 수량(예를 들어, 공유된 시크릿의 파워)을 교환하도록 수량이 공유될 수 있다. 따라서, 다양한 실시형태에서, 복수의 n명의 참가자는 공유된 시크릿의 파워의 표현(예를 들어, 곱셈 경우에서
Figure pct00001
)을 확립한다.
일 실시형태에서, 본원에 설명된 기술 및 방법을 이용하는 프로토콜은, 시크릿 자체를 공유하지 않고서 그리고 다른 컴퓨팅 엔티티(예를 들어, 스마트 계약에 대한 당사자가 아닌 컴퓨팅 엔티티)가 시크릿을 결정하도록 허용할 정보를 드러내지 않고서, 공유된 시크릿의 파워를 결정하기 위해 당사자에 의해 사용될 수 있는 수량을 공유하기 위해 스마트 계약의 2명의 당사자에 의해 사용된다. 일 실시형태에서, 프로토콜은 스마트 계약의 제 2 당사자에게 전송되는 제 1 파라미터의 세트를 계산하는 스마트 계약의 제 1 당사자를 포함하고, 제 2 당사자는 제 2 파라미터의 세트를 계산하고 이러한 파라미터를 제 1 당사자에게 제출하고, 여기서, 전술된 바와 같은 파라미터의 교환 시에, 양자의 당사자는 검증 키를 포함하는 동일한 공통 기준 스트링을 계산할 수 있다. 그 다음, 당사자는, 어드레스(예를 들어, 블록체인 네트워크의 작업자 노드(worker node)의 어드레스)에 잠겨 있고 잠금 해제(예를 들어, 소비)될 수 있는, 스마트 계약에 대한 디지털 자산에 당사자가 비례적으로 기여하는 트랜잭션에 합의할 수 있다. 일 실시형태에서, 스마트 계약 당사자 간의 오프-체인 통신은 공통 기준 스트링을 생성하는데 사용되는 파라미터의 교환으로 제한되며, 반면에 보안의 보장이 유지된다(예를 들어, 시크릿 값은, 스마트 계약에 대한 당사자가 아닌 상대방(adversary) 또는 다른 컴퓨팅 엔티티에 의해 교환된 파라미터에 기초하여 누설되거나 달리 결정될 수 없음). 일 실시형태에서, 2명의 당사자(또는 더 일반적인 경우에 둘 이상의 당사자)는, 가령, 예를 들어, 도 1-7과 관련하여 본 문서의 다른 곳에 설명된 방식으로 공유된 시크릿의 파워를 공유하는 기술을 활용한다.
본 개시의 다양한 실시형태가 실시될 수 있는 예시적인 컴퓨팅 환경(100)을 도시하는 도 1에 대해 참조가 이루어질 수 있다. 본원에 설명된 시스템 및 방법은, 제 1 및 제 2 컴퓨팅 엔티티가 동일한 공통 기준 스트링을 계산하기 위해 사용할 수 있는 수량을 스마트 계약 당사자가 교환하기 위한 프로토콜에 관한 것일 수 있다. 도 1은, 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티 양자가 공통 기준 스트링(108)을 결정하도록 허용하는 파라미터의 세트를 교환하는 제 1 컴퓨팅 엔티티(102) 및 제 2 컴퓨팅 엔티티(104)를 포함하는 컴퓨팅 환경(100)을 도시한다. 공통 기준 스트링은, 컴퓨팅 엔티티 중 어느 하나 또는 둘 모두가 트랜잭션 입력으로서 기여하는 디지털 자산을 잠그는 스마트 계약(110)을 생성하기 위해 당사자에 의해 활용될 수 있다. 공통 기준 스트링은 평가 키(112) 및 검증 키(112)를 포함할 수 있다. 스마트 계약(110)은 도 1에 도시된 블록체인(118)과 같은 블록체인에 공개될 수 있다. 스마트 계약(110)은 스마트 계약(106)에 대한 당사자가 아닌 제 3 컴퓨팅 엔티티(106)에 의해 실행될 수 있다. 스마트 계약 실행의 일부로서 또는 그와 연관하여, 제 3 컴퓨팅 엔티티(예를 들어, 작업자(worker))는 공통 기준 스트링의 평가 키에 적어도 부분적으로 기초하여 스마트 계약의 정확한 실행의 증거(proof)(116)를 생성할 수 있다. 정확한 실행의 증거(116)는 임의의 적합한 컴퓨팅 시스템(예를 들어, 스마트 계약의 당사자 또는 검증자 노드(verifier node)로서 작동하는 블록체인 네트워크의 노드)에 의해 계산적으로 검증 가능할 수 있다. 일 실시형태에서, 검증 키(114)는, 블록체인 네트워크(118)에 공개된 증거가 정확한지를 검증하기 위해 제 4 컴퓨팅 엔티티(예를 들어, 검증자 컴퓨터 시스템)에 의해 활용된다.
적어도 하나의 실시형태에 따라, 제 1 컴퓨팅 엔티티(102) 및 제 2 컴퓨팅 엔티티(104)는 스마트 계약에 대한 당사자인 컴퓨터 시스템이다. 스마트 계약의 당사자는, (예를 들어, 관련 사용자 입력 장치를 통해 제공된 사용자 입력에 따라) 스마트 계약의 실행 조건에 합의한 2개 이상의 컴퓨팅 엔티티를 지칭할 수 있다. 제 1 컴퓨팅 엔티티(102) 및 제 2 컴퓨팅 엔티티(104) 둘 모두는 스마트 계약에 합의하고, 스마트 계약의 각각의 트랜잭션 입력이 스마트 계약의 정확한 실행의 증거를 작업자 노드가 제공하는 것의 결과로서 잠금 해제(예를 들어, 소비)될 수 있는 잠금 스크립트(locking script)에 의해 방해를 받도록, 스마트 계약에 트랜잭션 입력을 제공할 수 있다. 본원에 설명된 시스템 및 방법은, 잠금 스크립트가 변경으로부터 검증 키(
Figure pct00002
)를 보호하는 것을 가능하게 하고, 증거(
Figure pct00003
)의 유효성을 확인하고, 이로써 트랜잭션 검증 동안 블록체인 상에서 영지식 프로토콜(zero-knowledge protocol)의 실행을 허용하는 것에 관한 것이다.
다양한 실시형태에서, 제 1 컴퓨팅 엔티티(102) 및 제 2 컴퓨팅 엔티티(104)는, 스마트 계약의 실행을 제어하는 데 사용되는 스마트 계약에 대한 파라미터, 가령, 날짜, 시간, 조건 및 액션(예를 들어, 디지털 자산의 제어 이전)을 인코딩하는 메시지의 세트를 교환함으로써, 실시형태에서, 스마트 계약에 합의할 수 있다. 예를 들어, 스마트 계약(예를 들어, 실행 가능 프로그램)은 특정 비행의 지연에 대해 당사자를 보장할 수 있으며, 프로그램의 실행은 특정 날짜 상의 특정 상업 비행의 비행 정보와 같은 외부 데이터를 사용하여 특정 비행이 지연되었는지 여부를 결정하는 것을 포함할 수 있다. 비행이 지연된 경우, 프로그램의 당사자는 자산의 이전(예를 들어, 지연에 대한 여행 보험을 제공하는 스마트 계약)을 수신할 수 있다.
일 실시형태에서, 스마트 계약(110)은 C, C ++ 또는 Java와 같은 소스 코드로서 고급 프로그래밍 언어로 인코딩된다. 이들은 단지 예시적인 예이며, 스마트 계약은 다른 적절한 프로그래밍 언어를 사용하여 인코딩될 수 있다. 일 실시형태에서, 컴파일러, 인터프리터 및/또는 어셈블러와 같은 소프트웨어는 스마트 계약(110)을 연산 회로로 변환하는데 활용될 수 있고, 연산 회로는 필드(F)로부터 값을 전달하고 덧셈 및 곱셈 게이트에 연결하는 "와이어"로 구성된다. 연산 회로는, 물리적 와이어에 의해 연결된 일련의 물리적 게이트(예를 들어, 7400-시리즈 게이트, 플립-플롭, 버퍼, 디코더, 멀티플렉서 등과 같은 TTL(transistor-transistor logic) 집적 회로를 사용함)를 포함하는 물리적 회로에 의해 구현될 수 있는 논리 회로를 지칭할 수 있음이 유의되어야 한다. 스마트 계약(110)의 실행이 도 1의 맥락에서 그리고 다른 곳에서 설명되지만, 스마트 계약의 사용은 연산 회로로 변환될 수 있는 소스 코드의 단지 비제한적인 예이다. 일 실시형태에서, 클라이언트(예를 들어, 단독으로 또는 제 2 컴퓨팅 엔티티(104)와 연동하여, 제 1 컴퓨팅 엔티티(102))는 한 세트의 동작에 의해 정의된 작업을 수행하기 위한 소스 코드를 결정하고, 여기서 작업의 실행은 제 3 컴퓨팅 엔티티(106)(작업자 또는 증명자(prover)로 지칭됨)에 위임된다. 일반적으로, 검증자는, 가령, 증명자에 의해 생성된 정확한 실행의 증거(116)의 유효성을 검증함으로써, 증명자가 작업을 정확히 실행했다고 결정하는 것과 연관된 작업을 수행할 수 있다.
검증 가능한 계산은 계산의 증거를 생성할 수 있는 기술이다. 일 실시형태에서, 이러한 기술은, 본원에서 증명자로 지칭되는 다른 컴퓨팅 엔티티에, 입력(x)에 대한 함수(f)의 평가를 아웃소싱(outsource)하기 위해 클라이언트에 의해 활용된다. 일부 경우에서, 클라이언트는, 클라이언트가 함수의 평가를 수행하는 것이 실현 불가하도록(예를 들어, 클라이언트가 사용할 수 있는 컴퓨팅 자원을 사용한 계산의 예상된 런타임이 최대 수용 가능한 임계치를 초과함) 계산적으로 제한되지만, 반드시 그럴 필요는 없으며, 클라이언트는, 일반적으로 말하자면, 계산적 런타임, 계산적 비용(예를 들어, 함수의 평가를 수행하기 위한 컴퓨팅 자원을 할당하는 재정적 비용) 등과 같은 임의의 적절한 기준에 기초하여 입력(x)에 대한 함수(f)의 평가를 위임할 수 있다. 일 실시형태에서, 증명자는, 본 개시의 다른 곳에서 더 상세하게 설명되는 바와 같이, 블록체인 노드와 같은 임의의 적절한 컴퓨팅 엔티티이다. 일 실시형태에서, 증명자(예를 들어, 블록체인 노드)는 입력(x)에 대한 함수(f)를 평가하고, 출력(y) 및 전술된 클라이언트와 같은 다른 컴퓨팅 엔티티 및/또는 블록체인 네트워크의 다른 노드에 의해 검증될 수 있는 출력(y)의 정확성 증거(π)를 생성한다. 논거(argument)로 또한 지칭될 수 있는 증거는 실제 계산하는 것보다 더 빠르게 검증될 수 있고, 따라서 전술된 증명자에 의해 생성된 출력의 정확성을 결정하기 위해 입력(x)에 대해 함수(f)를 재계산하는 것 대신에, 증거의 정확성을 검증함으로써 계산적 오버헤드가 감소될 수 있다(예를 들어, 전력 오버 헤드 및 컴퓨팅 자원의 전력 공급 및 실행과 연관된 비용의 감소). 영지식 검증 가능한 계산에서, 증명자는, 증명자가 특정 속성을 가진 입력을 알고 있다는 증명(attestation)을 클라이언트에 제공한다.
지식의 영지식 증거의 효율적인 변형예는 zk_SNARK(Succinct Non-interactive ARgument of Knowledge)이다. 일 실시형태에서, 모든 페어링 기반의 zk SNARK는, 증명자가 일반적인 그룹 연산을 사용하여 다수의 그룹 요소를 계산하고 검증자가 다수의 페어링 곱 방정식(pairing product equation)을 사용하여 증거를 확인하는 프로세스를 포함한다. 일 실시형태에서, 선형 대화형 증거(linear interactive proof)는 유한 필드에 대해 작동하고, 증명자 및 검증자의 메시지는 필드 요소의 벡터를 결정하기 위해 사용 가능한 정보를 포함, 인코딩, 참조 또는 그렇지 않다면 포함한다.
일 실시형태에서, 제 1 컴퓨팅 엔티티 및/또는 제 2 컴퓨팅 엔티티는, 조건이 충족되는 것에 기초하여, 스마트 계약 및 수행할 동작의 세트를 실행할지 여부 그리고/또는 어떻게 실행할지를 결정하는 조건의 세트를 인코딩하는 하나 이상의 불 연산식(Boolean expression)과 같은, 스마트 계약의 실행을 위해 제안된 파라미터를 인코딩하는 메시지의 세트를 교환함으로써 스마트 계약의 실행 조건에 합의한다. 일 실시형태에서, 하나의 컴퓨팅 엔티티는 프로토콜의 일부로서 제 2 컴퓨팅 엔티티에 파라미터의 세트를 전송하고, 제 2 컴퓨팅 엔티티는 파라미터가 스마트 계약에 대해 수용 가능한지 여부를 결정한다. 파라미터가 수용되지 않으면, 제 2 컴퓨팅 엔티티는 스마트 계약의 실행을 위해 제 2 제안된 파라미터의 세트로서 상이한 파라미터의 세트를 제 1 컴퓨팅 엔티티에 제공할 수 있다. 제 2 컴퓨팅 엔티티는 또한 제 1 파라미터의 세트가 수용 가능하지 않다는 신호를 제공할 수 있고, 제 1 컴퓨팅 엔티티는 제공할 제 2 파라미터의 세트를 결정한다. 어느 경우에나, 일단 모든 당사자가 파라미터에 대한 합의를 시그널링하였다면, 일 실시형태에서, 어느 하나의 컴퓨팅 엔티티는 잠금 트랜잭션 ― 여기서 출력 중 하나가 프로그램(예를 들어, 스마트 계약 스크립트)에 의해 잠금됨 ― 을 생성하고, 이를 스마트 계약의 상대방(counterparty)에 전송할 수 있다. 잠금 트랜잭션은 잠금 해제 트랜잭션이 검증될 수 있는 제약을 초기화하는 트랜잭션을 지칭할 수 있다. 몇몇 예에서, "잠금 해제 트랜잭션"은, 이전 트랜잭션의 UTXO로 표시된 디지털 자산의 적어도 일부와, 블록체인 어드레스와 연관된 엔티티를 재연관(예를 들어, 소유권 또는 제어권의 이전)시키는 블록체인 트랜잭션을 지칭한다.
일 실시형태에서, 제 1 컴퓨팅 엔티티는 잠금 트랜잭션을 생성하고, 작업자 수수료의 일부를 커버하는 트랜잭션 입력을 추가한다. 이 지점에서, 트랜잭션 입력 값이 잠금 트랜잭션의 트랜잭션 출력 값과 동일하지 않기 때문에, 잠금 트랜잭션이 아직 유효하지 않다는 것이 유의되어야 한다. 예를 계속하여, 제 2 컴퓨팅 엔티티가 잠금 트랜잭션을 수신할 때, 제 2 컴퓨팅 엔티티는 스마트 계약을 검증(예를 들어, 스마트 계약을 실행하기 위한 공통 기준 스트링 및 파라미터를 검증)하고, 잠금 트랜잭션에 입력을 추가하고, 디지털 자산 및 또한 프로그램(예를 들어, 스마트 계약)의 실행을 위해 작업자에게 지불되어야 하는 수수료 및 작업자에 대한 수수료의 값을 갖는 출력에 합의한 발행자에게 이전하기 위해 UTXO를 잠금 해제한다. 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티가 둘 모두가 트랜잭션 입력을 스마트 계약에 기여하는 경우에, 스마트 계약은 양자의 당사자에 의해 공동 소유될 수 있고, 스마트 계약의 이전(예를 들어, 교환 또는 판매)은 양자의 당사자로부터의 증명을 요구할 수 있다.
스마트 계약(110)은 블록체인 네트워크의 노드와 같은 제 3 컴퓨팅 엔티티(106)에 의해 실행될 수 있다. 제 3 컴퓨팅 엔티티(106)는 작업자 또는 증명자로 지칭될 수 있다. 일 실시형태에서, 작업자는, 입력에 대한 함수의 계산을 수반하는 계산 작업을 적어도 수행함으로써 스마트 계약을 실행한다. 일 실시형태에서, 작업자는, 스마트 계약의 소유자(들)가 계산 작업을 위임할 수 있는 임의의 적절한 컴퓨터 시스템이다. 일 실시형태에서, 입력은, 작업자와 연관된 개인 키를 사용하여 생성된 디지털 서명(digital signature)과 같은 작업자의 아이덴티티를 증명하는 정보를 포함한다. 일 실시형태에서, 작업자는, 제 1 및 제 2 컴퓨팅 엔티티가 계산적 작업을 성공적으로 완료한 것에 대한 답으로 디지털 자산의 이전 합의하는 컴퓨터 시스템이다. 스마트 계약의 소유자(들)는, 일 실시형태에서, 입력(x) 및 평가 키(
Figure pct00004
)(112)를 증명자에 제공하고, 증명자는 출력(y)(즉, y=f(x) 여기서 입력은 x이고, 함수는 f임)을 계산하는 루틴을 계산하기 위해 평가 모듈을 사용하고, 정확한 실행의 증거(116)를 생성하기 위해 평가 키(
Figure pct00005
)를 사용하며, 이는 또한 본 개시의 다른 곳에서 정확함의 증거(proof-of-correctness)로 지칭될 수 있다. 일 실시형태에서, 작업자는, 컴퓨터 시스템의 하나 이상의 프로세서에 의해 실행될 경우, 컴퓨터 시스템으로 하여금 QAP의 내부 회로 와이어의 값을 평가하게 하고 QAP의 출력(y)을 생성하게 하는 명령어를 포함하는 하드웨어 및/또는 소프트웨어를 포함하는 컴퓨터 시스템이다.
실시형태에서, 출력(y), 내부 회로 와이어의 값(또는 그의 서브세트), 및 평가 키(
Figure pct00006
)는 정확함의 증거를 생성하는데 사용된다. 증거(π)는, 블록체인에 저장되고, 다수의 당사자와 개별적으로 상호작용하도록 작업자에게 요구하지 않고서 다수의 당사자에 의해 검증될 수 있다. 이러한 방식으로, 제 4 컴퓨팅 엔티티(예를 들어, 검증자 컴퓨터 시스템)는 공개 검증 키(
Figure pct00007
)(114) 및 증거(π)를 사용하여 브로드캐스팅된 트랜잭션을 인증하고, 이로써 스마트 계약을 인증할 수 있다. 몇몇 경우에서, 스마트 계약의 소유자(들)는, 검증이 실패하면, 브로드캐스팅된 트랜잭션에 의해 방해받는 디지털 자산을 회수(reclaim)할 수 있다. 몇몇 경우에서, 스마트 계약의 소유자(들)는 증거의 검증을 수행할 수 있다.
일 실시형태에서, 검증 키(114) 및 대응하는 증거(116)는 전술 및/또는 후술되는 기술에 따라 생성된다. 따라서, 다음과 같은 검증 키(
Figure pct00008
) 및 증거(π)가 검증자에게 제공되어,
Figure pct00009
Figure pct00010
검증자가 복수의 타원 곡선 곱셈(예를 들어, 하나는 각각의 공개 입력 변수에 대한 것임) 및 5개의 페어 체크를 계산하고, 그 중 하나는 부가적인 페어링 곱셈을 포함한다.
t(x)가 p(x) 및 따라서
Figure pct00011
를 나누는지를 검증하기 위해 검증 키(
Figure pct00012
), 증거(π) 및
Figure pct00013
가 주어지면, 검증자는 다음과 같이 진행한다. 먼저 검증자는 다음과 같이 3개의 α 항 모두를 확인한다.
Figure pct00014
Figure pct00015
Figure pct00016
여기서
Figure pct00017
,
Figure pct00018
, 및
Figure pct00019
이다. 그 다음, 검증자는 β 항을 확인한다.
Figure pct00020
Figure pct00021
. 마지막으로, 검증자는 가분성(divisibility) 요건을 확인한다.
Figure pct00022
여기서,
Figure pct00023
Figure pct00024
,
Figure pct00025
Figure pct00026
이다.
따라서, 전술된 섹션 및 본 개시에서 설명된 예로부터의 표기법을 고려할 때, 검증은 일 실시형태에 따라 다음 요소의 페어 체크의 세트를 포함한다.
Figure pct00027
Figure pct00028
Figure pct00029
Figure pct00030
Figure pct00031
도 2는, 제 1 컴퓨팅 엔티티(202) 및 제 2 컴퓨팅 엔티티(204)가 둘 이상의 당사자 사이에서 공유된 시크릿의 파워를 결정하는데 사용될 수 있는 수량을 교환하는 컴퓨팅 환경(200)을 도시한다. 제 1 컴퓨팅 엔티티(202) 및 제 2 컴퓨팅 엔티티(204)는, 동일한 공통 기준 스트링을 계산하는데 사용되는 (도 2에 도시된 수평 화살표 아래에 도시된 바와 같은) 수량을 교환할 수 있다. 일 실시형태에서, 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티는 도 1과 관련하여 설명된 것에 따르는 블록체인 네트워크의 노드이다. 적어도 하나의 실시형태에 따라,
Figure pct00032
를 필드에 대한의 함수로 하고,
Figure pct00033
를 대응하는 연산 회로로 하고,
Figure pct00034
를 크기(m) 및 정도(d)의 대응하는 QAP(quadratic arithmetic program)로 한다. 또한
Figure pct00035
를 이중 선형 맵핑(bilinear mapping)으로 하고, G를
Figure pct00036
의 생성기로 한다. 일 실시형태에서, (지수적 표현과 대조적으로) 덧셈 표현(additive representation)이 선택된다. 일 실시형태에서, 평가 키 및 검증 키는 랜덤
Figure pct00037
를 선택하고
Figure pct00038
,
Figure pct00039
(일반적으로:
Figure pct00040
) 및 대응하여
Figure pct00041
를 설정함으로써 선택되어, 다음과 같이 키를 구성한다.
Figure pct00042
Figure pct00043
Figure pct00044
Figure pct00045
여기서
Figure pct00046
, 즉, 입력 및 출력의 수이다. 비대칭 페어링이 고려되는 실시형태에서, 페어링 맵핑은 다음과 같이 정의될 것이고,
Figure pct00047
및 이고,
Figure pct00048
Figure pct00049
의 생성기이다. 이 경우에, CRS는 약간 변할 것이고, VK는 다음과 같을 것이다.
Figure pct00050
Figure pct00051
여기서
Figure pct00052
Figure pct00053
이다.
표시된 바와 같이, 회로는 다항식(v, w)에 의해 설명되며, 이는, 결국, 시크릿(s)에서 평가되고, 시크릿(s)은 회로 및 대응하는 QAP를 소유/생성하는 당사자(예를 들어, 스마트 계약의 소유자)에게만 알려진다.
더 정확하게는, 전술된 바와 같이, 클라이언트가 다음과 같은 요소를 생성한다.
Figure pct00054
제안된 해결책의 보안이 파라미터(s)에 의존하는 반면, 몇몇 실시형태에서, 남아있는 (
Figure pct00055
)를 노출시키는 것은, 시스템 영지식을 렌더링하지 않고 그리고/또는 다른 엔티티가 아는 것을 클라이언트가 원하지 않는 정보를 드러낼 수 있다.
일 실시형태에서, 작업자가 정확함의 증거를 제공하도록 요구되는 해결책의 경우, 검증 키에 대한 정확함의 증거를 검증하기 위한 OP_code(또는 등가물)가 존재할 수 있다.
달리 언급되지 않는 한, 본 개시 전반에 걸쳐, 본 문서의 다항식은 필드(
Figure pct00056
)에 대해 정의된다는 것이 유의되어야 한다. 따라서,
Figure pct00057
를 필드로 한다. 따라서
Figure pct00058
에 대한 다항식에는 다음과 같은
Figure pct00059
가 주어지고,
Figure pct00060
여기서
Figure pct00061
이다.
일 실시형태에서, 공통 기준 스트링은 시크릿(s)에서 평가된 다항식(v(x), w(x))에 의해 다음과 같은 형태로 표현된다.
Figure pct00062
Figure pct00063
일 실시형태에서, 본원에 설명된 기술은 (예를 들어, 타원 곡선 포인트의) 연관된 그룹의 생성기(G)에 대해 다음과 같은 형태
Figure pct00064
의 타원 곡선 포인트를 결정하고 공유하는데 활용된다. 따라서, 일 실시형태에서, 본원에 기재된 시스템 및 방법은 임의의 정수 파워(r)에 대해
Figure pct00065
를 결정 및 분배하는데 활용된다.
적어도 하나의 실시형태에 따라,
Figure pct00066
를 공유 및 분배하기 위한 기술이 도 2에 도시된다. 예로서, n=2인 경우는 도 2와 관련하여 아래에서 더 상세히 설명되며, 스마트 계약의 당사자 간에 시크릿의 파워를 공유하는 비제한적인 예로 간주되어야 한다. 또한, 본원에 설명된 다양한 실시형태에서, 임계치의 등가물이 선험적으로 주어지고, 필요한 참가자의 수가 먼저 합의된다고 가정된다는 것이 유의된다.
도 2는 적어도 하나의 실시형태에 따라, 2명의 참가자의 경우에 공유된 시크릿의 파워를 공유 및 분배하기 위한 기술을 도시한다. 도 2에 도시된 바와 같이 그리고 적어도 하나의 실시형태에 따라, 정확히 2명의 당사자는 공유된 시크릿의 파워를 공유하는 참가자이다(즉, n=2인 경우). 제 1 및 제 2 컴퓨팅 엔티티는 A 및 B로 각각 지칭될 수 있다. 일 실시형태에서, A 및 B는 다음 정보를 교환할 수 있고: A는
Figure pct00067
를 B에 전송하고, 그에 대한 답으로
Figure pct00068
, (
Figure pct00069
)를 수신한다. 이런 식으로, 둘 모두는 다음을 계산할 수 있다.
Figure pct00070
라그랑주 보간(Lagrange Polynomial, n.d.)을 사용하면,
Figure pct00071
Figure pct00072
에 관하여 p를 표현하는 것이 가능하다.
Figure pct00073
그리고,
Figure pct00074
에 의해
Figure pct00075
로 확장된다(WP0559 참조). 참가자는 p(x)를 재구성할 수 없지만, 참가자는 교환된 포인트(
Figure pct00076
)에 의해
Figure pct00077
(그리고 특히
Figure pct00078
)를 재구성할 수 있다. 이것은
Figure pct00079
의 더 높은 파워에 대해서도 물론 사실이다. 다항식(다항식 정리, n.d.)의 결과로서, 다음과 같다.
Figure pct00080
m=2에 대해, 이것은 다음과 같이 된다.
Figure pct00081
이는 결국 다음과 같은 항의 "타워"를 산출한다(여기서 i=1,2).
Figure pct00082
교환될 필요가 있는 항 (
Figure pct00083
와 곱셈됨, 그리고
Figure pct00084
)
1
Figure pct00085
2
Figure pct00086
(선택적으로:
Figure pct00087
)
3
Figure pct00088
(선택적으로:
Figure pct00089
)
Figure pct00090
Figure pct00091
계략적으로, 교환은 다음과 같이 보일 수 있다(일부
Figure pct00092
의 경우).
단계 A
Figure pct00093
B
1 A:
Figure pct00094
Figure pct00095
에 대해:
Figure pct00096
를 B에 전송
2 B:
Figure pct00097
Figure pct00098
에 대해:
Figure pct00099
}, (그리고 선택적으로)
Figure pct00100
를 A에 전송
이 교환(소정의 미리 정해진 협약에 따름) 후에, 양자의 당사자는
Figure pct00101
, 그리고 특히
Figure pct00102
를 계산할 수 있다.
도 3은, 제 1 컴퓨팅 엔티티(302) 및 제 2 컴퓨팅 엔티티(304)가 프로토콜 ― 가령, 도 1과 관련하여 설명된 프로토콜 ― 영지식을 렌더링하는 파라미터의 세트를 교환하는 컴퓨팅 환경(300)을 도시한다. 다양한 실시형태에 따라, 공개 검증 키는 다음과 같은 형태를 취할 수 있다.
Figure pct00103
Figure pct00104
제안된 해결책의 보안이 파라미터(s)에 의존하는 반면, 몇몇 실시형태에서, 남아있는 (
Figure pct00105
)를 노출시키는 것은, 시스템 영지식을 렌더링하지 않고 그리고/또는 다른 엔티티가 아는 것을 클라이언트가 원하지 않는 정보를 드러낼 수 있다. 따라서, 일 실시형태에서, 검증 키(306)를 생성하는데 사용된 남아있는 파라미터의 일부 또는 전부는 도 3과 관련하여 설명된 기술을 사용하여 공유된다.
일 실시형태에서, 다항식은, 도 1, 2 및 4와 관련하여 논의된 기술과 같은 본 개시의 다른 곳에 설명된 기술에 따라, 제 1 컴퓨팅 엔티티(302)와 제 2 컴퓨팅 엔티티(304)(각각 A 및 B로 지칭될 수 있음) 사이에서 교환된다. 따라서, 일 실시형태에서, 제 1 컴퓨팅 엔티티(302)는 타원 곡선 포인트의 세트(
Figure pct00106
)를 계산하고 제 2 컴퓨팅 엔티티(304)와 공유하고, 제 2 컴퓨팅 엔티티(304)는 타원 곡선 포인트의 세트(
Figure pct00107
)를 계산하고 제 1 컴퓨팅 엔티티(302)와 공유한다. 부가적으로, 검증 키(306)를 생성하는데 사용되는 다른 파라미터는 통신 채널을 통해 평문(plaintext) 포맷으로 드러나지 않고 대신에 후술되는 기술을 사용하여 전송될 수 있다.
일 실시형태에 따라,
Figure pct00108
Figure pct00109
의 생성기로 하고
Figure pct00110
에 대해
Figure pct00111
이다. 또한, 일 실시형태에서,
Figure pct00112
가 공유되고, 다른 파라미터는 파라미터의 기밀성(예를 들어, 암호화 또는 다른 은닉(concealment) 기술)을 보장하는 방식으로 전파된다. 반대로, 참가자 중 어느 하나는 파라미터(
Figure pct00113
)를 생성하고 이를 오프- 또는 온라인(예를 들어, 온-체인)으로 다른 참가자에 전송할 수 있음이 유의된다. 전자(former), 즉, 다른 파라미터의 기밀성의 보장에 관하여, 다양한 기술이 활용될 수 있다. 예를 들어, 요소
Figure pct00114
(그리고 구현/프로토콜에 따라 가능하게는
Figure pct00115
)를 공유하기 위해 샤미르(Shamir)의 시크릿 공유 스킴(4S)을 사용하고 그리고/또는
Figure pct00116
에 대해 디피-헬먼(Diffie-Hellman)형 시크릿 생성을 사용함으로써, 다른 파라미터의 기밀성이 보장된다.
일 실시형태에서, 요소
Figure pct00117
또는 그의 일부 조합은
Figure pct00118
의 형태이다. s의 경우에서와 같이, 각각의 참가자(i)는 다항식(
Figure pct00119
)을 생성하고
Figure pct00120
에서 이를 평가하고 대응하는
Figure pct00121
를 참가자(j)와 공유한다. 따라서, 각각의 참가자는
Figure pct00122
, 그리고 특히
Figure pct00123
를 결정할 수 있고, 여기서 q(0)은
Figure pct00124
또는 이들의 일부 조합일 수 있고, 이들의 특정 조합은 zk_SNARKs 프로토콜과 같은 프로토콜/협약에 기초할 수 있다.
일 실시형태에서, α-파라미터는 타원 곡선 포인트에 의해 공유되는 반면에, 다른 파라미터는 스칼라 값에 의해 공유될 수 있다. 이러한 값에 대해, 적어도 하나의 실시형태에 따라, 디피-헬먼 스킴은, 파라미터 자체를 공유하지 않고서, 2개의 컴퓨팅 엔티티 사이에서 스칼라 파라미터를 공유하는데 사용된다. 따라서, 일 실시형태에서,
Figure pct00125
를 N 개의 파라미터의 세트로 한다. 일 실시형태에서, A 및 B는 모듈러스(modulus)(μ) 및 생성기(
Figure pct00126
)를 갖는 곱셈 그룹(Γ)을 사용하기로 합의한 것으로 가정되고, 참가자(A 및 B)는 다음의 단계들을 따라 진행하고(지수적 표현은 본원에서 예시적인 예로서 사용되고 다른 적절한 표현이 활용될 수 있음): 각각의
Figure pct00127
에 대해, 제 1 및 제 2 컴퓨팅 엔티티는 (개인) 난수(
Figure pct00128
)를 각각 생성하고, 그리고 양자는 (공개) 요소:
Figure pct00129
Figure pct00130
)를 도출한다는 것이 가정된다. 그 다음, 컴퓨팅 엔티티는
Figure pct00131
Figure pct00132
를 교환하고
Figure pct00133
Figure pct00134
(=
Figure pct00135
)를 각각 계산한다. 따라서, 파라미터는
Figure pct00136
로 설정된다.
따라서, 위의 기술은, 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티 양자가, 대신에,
Figure pct00137
Figure pct00138
를 교환함으로써 파라미터를 교환하지 않고서 파라미터(
Figure pct00139
)를 공유한다는 것을 입증하였다. 적어도 하나의 실시형태에 따라, 참가자의 수는 적어도 하나의 파라미터가 전술된 방식으로 교환된 것의 결과로서 n=2로 제한된다는 것이 유의되어야 한다.
도 4는 CRS(two-party common reference string) 및 대응하는 POC(proof-of-correctness) 또는 정확한 실행의 증거에 기초한 프로토콜의 다이어그램(400)을 도시한다. 다이어그램(400)은 제 1 컴퓨팅 엔티티(402), 제 2 컴퓨팅 엔티티(404) 및 제 3 컴퓨팅 엔티티(106)를 도시하며, 여기서 제 1 컴퓨팅 엔티티(402) 및 제 2 컴퓨팅 엔티티(404)는, 스마트 계약 실행 시에 제 3 컴퓨팅 엔티티(406)에 의해 잠금 해제될 수 있는 스마트 계약에 공동으로 기여한다. 일 실시형태에서, 프로토콜은 블록체인 네트워크를 적어도 부분적으로 사용하여 구현된다.
본 개시에 따라, 그리고 (예를 들어, 도 4와 관련하여) 더 상세하게 설명되는 바와 같이, 2명의 참가자(A 및 B)에 대한 스킴 및 프로토콜은 공유된 시크릿 및 따라서 공유된 CRS(common reference string)를 생성하는데 활용될 수 있고, 이는 연관된 회로의 정확한 실행을 검증하는데 사용될 수 있다. 일 실시형태에서, 스킴은 먼저 A와 B 사이, 그리고 두 번째로 A+B(또는 어느 하나)와, A 또는 B 중 적어도 하나를 대신하여 계산 작업을 수행하는 작업자(C) 사이의 오프-체인 데이터 교환을 가정한다. 작업자(C)가 계산 작업(예를 들어, 스마트 계약의 실행)을 수행하게 하기 위해, A 및 B 둘 모두는 트랜잭션(P2SH-유형 상환 스크립트(redeem script)를 포함하거나 포함하지 않을 수 있음)을 서명하며, 이는, 자금의 잠금을 해제하기 위해 정확함의 증거를 제공하고, 정확한 검증 키(VK)의 소유를 증명하도록 작업자(C)에게 요구한다.
본 개시에 제시된 바와 같은 프로토콜을 구현하기 위한 기술은, 몇몇 실시형태에서, 기존 블록체인 네트워크에 대한 임의의 프로토콜 변화를 요구하지 않는다(예를 들어, 이미 지원된 기존 커맨드를 사용하여 비트코인 기반의 블록체인 네트워크 상에서 구현될 수 있음). 몇몇 실시형태에서, 비트코인 프로토콜에 의해 지원되는 기존 커맨드의 세트에 대한 확장이 또한 본원에서 논의되고, 확장은, 스마트 계약의 실행 효율을 개선하는 것, 스마트 계약의 크기를 감소시키는 것(이는 블록체인 네트워크의 노드가 적절히 동작하는 데 필요한 저장 공간의 양을 감소시킬 수 있음) 등과 같은 다양한 이점을 가질 수 있는 새로운 커맨드(예를 들어, 새로운 OP 코드)를 포함할 수 있다. 몇몇 실시형태에서, 블록체인에 대한 스마트 트랜잭션을 확인하는 비용은 스마트 계약의 크기에 적어도 부분적으로 기초한다.
일 실시형태에서, 타원 곡선 포인트 및 공통 기준 스트링과 관련된 다른 데이터의 교환 및 전송은 오프-체인으로 전송된다. 일 실시형태에서, 검증 키는 결국, 작업자(C)와 그들의 스마트 계약을 평가하기 원하는 2명의 당사자(A 및 B)에 의해 수행되는 작업(예를 들어, 스마트 계약의 실행)을 위한 디지털 자산의 교환을 통해 온-체인으로 브로드캐스팅되거나 그렇지 않다면 이용 가능하게 된다. 본원에 설명된 바와 같이, 몇몇의 스킴이 가능하다. 예를 들어, A 및 B 둘 모두는, 잠금 트랜잭션을 준비할 때 VK 또는 VK의 해시를 제공할 수 있거나 제공하지 않을 수 있다. 다시 말해서, 일 실시형태에서, 용량 집약적인 워크로드(capacity-intensive workload)의 대부분은 오프-체인(off-chain)으로 수행된다.
일 실시형태에서, 프로토콜은, 도 4에 도시된 점선으로 표시된 바와 같이, 오프-체인 및 온-체인 구성요소 둘 모두를 포함한다. 오프-체인 구성요소는, 데이터를 블록체인 원장에 저장하지 않고서 발생할 수 있는 데이터 및 정보의 통신 및 교환을 포함할 수 있다. 예를 들어, 프로토콜의 오프-체인 구성요소는 소스와 목적지 사이의 IP 패킷의 교환을 포함할 수 있다(예를 들어, 제 1 컴퓨팅 엔티티(402)는 제 1 파라미터의 세트를 목적지인 제 2 컴퓨팅 엔티티(404)로 전송하는 소스임). 예를 들어, 프로토콜의 온-체인 구성요소는, 블록체인 네트워크의 노드에 이용 가능하게 된 블록체인 원장에 데이터를 브로드캐스팅하는 것을 포함할 수 있다.
일 실시형태에서, 제 1 컴퓨팅 엔티티(402)는 제 1 다항식에 적어도 부분적으로 기초하여 타원 곡선 포인트의 세트(
Figure pct00140
)를 계산한다. 제 1 컴퓨팅 엔티티(402)는 타원 곡선 포인트의 세트 중 적어도 일부를 포함하는 데이터를 제 2 컴퓨팅 엔티티(404)에 전송할 수 있다. 예를 들어, 제 1 컴퓨팅 엔티티(402)는 타원 곡선 포인트의 전체 세트를 전송할 수 있다. 제 2 예로서, 제 1 컴퓨팅 엔티티(402)는 타원 곡선 포인트의 서브세트(
Figure pct00141
)를 전송할 수 있다.
몇몇 실시형태에서, 공유된 시크릿(s)의 시크릿(secrecy)을 유지하는데 요구되지 않지만, 시스템을 영지식으로 렌더링하는데 필요할 수 있는 부가적인 데이터가 전송된다. 예를 들어,
Figure pct00142
,
Figure pct00143
(I=v, w, y) 또는 이들의 일부 조합은 또한, 공통 기준 스트링을 결정하는 것의 일부로 사용될 수 있는 부가적인 파라미터 값을 생성하기 위해 (도 3과 관련하여 전술된 바와 같이) 계산될 수 있다. 일 실시형태에서,
Figure pct00144
은 스칼라 값의 세트이다. 일 실시형태에서,
Figure pct00145
(I=v, w, y)는 타원 곡선 포인트의 세트를 지칭한다.
일 실시형태에서, 제 2 컴퓨팅 엔티티(404)는 마찬가지로, 제 1 컴퓨팅 엔티티(402)에 의해 사용된 다항식과 상이할 수 있는 다항식에 기초하여, 타원 곡선 포인트의 세트(
Figure pct00146
)를 계산한다. 제 2 컴퓨팅 엔티티(404)는 전술된 바와 유사한 동작을 수행할 수 있다. 예를 들어, 제 2 컴퓨팅 엔티티(404)는 생성된 타원 곡선 포인트의 서브세트(
Figure pct00147
)를 제 1 컴퓨팅 엔티티(402)로 전송할 수 있다. 부가적으로, 일 실시형태에서,
Figure pct00148
,
Figure pct00149
(I=v, w, y)와 같은 선택적 파라미터, 또는 이들의 일부 조합이 교환될 수 있으며, 이는 공유된 시크릿의 시크릿을 유지할 필요는 없지만, 프로토콜이 영지식임을 보장하는데 활용될 수 있다.
일 실시형태에서, 교환된 수량은, 동일한 공통 기준 스트링을 계산하기 위해 제 1 컴퓨팅 엔티티(402) 및 제 2 컴퓨팅 엔티티(404) 둘 모두에 의해 활용될 수 있다. 이들은, 제 3 컴퓨팅 엔티티(406)가 나중에 정확한 검증 키의 소유를 증명해야 하기 때문에, 제 3 컴퓨팅 엔티티(예를 들어, 작업자)에 공통 기준 스트링을 제공할 수 있거나 제공하지 않을 수 있다. 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티 둘 모두에 의한 동일한 공통 기준 스트링의 결정은 오프-체인으로 수행될 수 있다.
일 실시형태에 따라, 프로토콜에 계속하여, 제 1 및 제 2 컴퓨팅 엔티티는 그들이 스마트 계약의 실행에 비례하여 기여하는 트랜잭션에 합의한다. 일 실시형태에서, 제 1 및 제 2 컴퓨팅 엔티티는 일정 비율의 기여에 합의하고, 이들 각각은, 스마트 계약에 방해받고 스마트 계약의 실행 시에 제 3 컴퓨팅 엔티티에 의해 잠금 해제될 수 있는 트랜잭션 입력을 제공한다. 이는 자금을 동일한 어드레스(C의 어드레스)에 이체하는 P2SH(pay-to-script-hash) 유형의 합의일 수 있거나 아닐 수 있다. P2SH 유형 스크립트는 검증 키의 요소 또는 검증 키의 해시 값, 즉,
Figure pct00150
를 포함할 수 있거나 포함하지 않을 수 있다. 일 실시형태에서, 키는 청크(chunk)로 분할되었다. 스마트 계약은, 제 1 및 제 2 컴퓨팅 엔티티에 의해 합의된 비율로 지불되는 작업자 수수료의 역할을 하는, 제 1 컴퓨팅 엔티티(402)에 의해 기여되는 제 1 트랜잭션 입력 및 제 2 컴퓨팅 엔티티(404)에 의해 기여되는 제 2 트랜잭션 입력을 갖는 도 4에 도시된 제 1 트랜잭션(410)으로서 블록체인에 브로드캐스팅될 수 있다.
일 실시형태에서, 제 3 컴퓨팅 엔티티(406)(작업자로 또한 지칭됨)는 영국 특허 출원 제719998.5호 및/또는 영국 특허 출원 제1720768.9호의 프로토콜에 따라 제 2 트랜잭션(410)에서 자금을 잠금 해제하고, 제 3 컴퓨팅 엔티티(406)는 작업(회로의 정확한 실행)을 위한 자금을 잠금 해제하고, 그렇게 함으로써 제 3 컴퓨팅 엔티티(406)가 (a) 정확한 검증 키 및 (b) 유효한 정확함의 증거를 소유하고 있음을 증명한다. 검증은 다른 컴퓨터 시스템(예를 들어, 검증자인 블록체인의 노드) 또는 스마트 계약에 대한 당사자인 컴퓨팅 엔티티 중 어느 하나 또는 둘 모두에 의해 수행될 수 있다.
도 5는 일 실시형태에 따른, 검증 키 및 평가 키를 포함하는 2-당사자 공통 기준 스트링을 생성하기 위한 프로세스(500)의 예시적인 예를 도시한다. 프로세스(500)(또는 본원에 설명된 임의의 다른 프로세스, 또는 이들의 변형 및/또는 조합)의 일부 또는 전부는 컴퓨터 실행 가능 명령어로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에 수행될 수 있고, 하드웨어, 소프트웨어 또는 이들의 조합에 의해 하나 이상의 프로세서 상에서 일괄적으로 실행되는 코드(예를 들어, 컴퓨터 실행 가능 명령어, 하나 이상의 컴퓨터 프로그램 또는 하나 이상의 애플리케이션)로서 구현될 수 있다. 코드는, 예를 들면, 하나 이상의 프로세서에 의해 실행 가능한 복수의 컴퓨터-판독 가능 명령어를 포함하는 컴퓨터 프로그램 형태로, 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다. 컴퓨터 판독 가능 저장 매체는 비일시적 컴퓨터 판독 가능 매체일 수 있다. 몇몇 실시형태에서, 프로세스(500)를 수행하기 위해 사용 가능한 컴퓨터 판독 가능 명령어 중 적어도 일부는 일시적 신호(예를 들어, 전파 과도 전기 또는 전자기 전송)만을 사용하여 저장되지 않는다. 비일시적 컴퓨터 판독 가능 매체는 일시적 신호의 트랜시버 내에 비일시적 데이터 저장 회로(예를 들어, 버퍼, 캐시 및 큐)를 포함할 수 있다.
일 실시형태에서, 프로세스(500)를 수행하는 시스템은, 시스템에 의해 사용될 수 있는 정보를 적어도 확립하기 위한 프로세스를 수행하는 스마트 계약에 대한 당사자 및 동일한 공통 기준 스트링을 계산하기 위한 스마트 계약의 다른 당사자인 컴퓨팅 엔티티이다. 프로세스(500)와 관련하여 설명된 공통 기준 스트링은, 예를 들어, 도 1-4와 관련하여 논의된 것에 따를 수 있다. 일 실시형태에서, 공통 기준 스트링은 다음 형식의 시크릿(s)에서 평가된 다항식(v(x), w(x))에 의해 표현된다.
Figure pct00151
Figure pct00152
일 실시형태에서, 제 1 컴퓨팅 엔티티는 제 1 타원 곡선 값의 세트를 생성하기 위해 제 1 다항식을 결정한다(502). 일 실시형태에서, 시스템은 (예를 들어, 타원 곡선 포인트의) 연관된 그룹의 일부 생성기(G)에 대해,
Figure pct00153
형태의 타원 곡선 포인트를 생성한다. 달리 언급되지 않는 한, 이 프로세스(500)의 다항식은 필드(
Figure pct00154
)에 대해 정의된다. 따라서,
Figure pct00155
를 필드로 한다. 그 다음,
Figure pct00156
에 대한 다항식에
Figure pct00157
Figure pct00158
가 주어지고, 여기서
Figure pct00159
이다. 타원 곡선 포인트의 세트는
Figure pct00160
로 표현될 수 있다.
제 1 컴퓨팅 엔티티는 타원 곡선 포인트의 세트가 제 2 컴퓨팅 엔티티에 이용 가능하게 한다(504). 일 실시형태에서, 시스템은 타원 곡선 포인트의 전체 세트가 제 2 컴퓨팅 엔티티에 이용 가능하게 할 필요는 없고, 오히려 실시형태에서, 시스템은 타원 곡선 포인트의 서브세트(
Figure pct00161
)를 전송한다.
예를 들어, 적어도 하나의 실시형태에 따라, n=2인 경우에, 제 1 컴퓨팅 엔티티는
Figure pct00162
를 계산하고, 제 2 컴퓨팅 엔티티와
Figure pct00163
를 공유한다. 남아있는 수량(
Figure pct00164
)은 공통 기준 스트링을 계산하기 위해 제 1 컴퓨팅 엔티티에 의해 활용될 수 있다.
또한 스마트 계약에 대한 당사자인 제 2 컴퓨팅 엔티티는 동일한 입력 포인트에 대한 타원 곡선 포인트의 세트를 개별적으로 생성(예를 들어, 타원 곡선 포인트(
Figure pct00165
)를 생성)하고, 생성된 포인트 중 일부 또는 전부를 제 1 컴퓨팅 엔터티에 제공한다. 제 1 컴퓨팅 엔티티는, 제 2 컴퓨팅 엔티티에 의해 생성된 타원 곡선 포인트의 일부 또는 전부에 대응하는 타원 곡선 포인트의 제 2 세트를 제 2 컴퓨팅 엔티티로부터 수신할 수 있고(506), 여기서 서브세트는 (예를 들어, 도 2 및 6과 관련하여) 본 개시의 다른 곳에 설명된 기술에 기초하여 결정될 수 있다.
일 실시형태에서, 시스템은 타원 곡선 포인트의 제 1 및 제 2 세트의 적어도 일부에 기초하여 동일한 공통 기준 스트링을 결정한다(508). 예를 들어, 타원 곡선 포인트들의 교환 후에,
Figure pct00166
Figure pct00167
에 관하여 p를 표현하기 위해 라그랑주 보간이 활용될 수 있다. 일 실시형태에서, 스마트 계약의 양자의 당사자는 교환된 포인트(
Figure pct00168
)에 의해 파워(
Figure pct00169
)(그리고 특히
Figure pct00170
)을 재구성할 수 있다. 파워(
Figure pct00171
)에 대해, 전술된 바와 같은 다음의 다항식이 활용될 수 있다.
Figure pct00172
Figure pct00173
예를 들어, m=2에 대해, 이것은 다음과 같이 된다.
Figure pct00174
일 실시형태에서, 부가적인 파라미터(예를 들어, 스칼라 값 및/또는 타원 곡선 포인트)는, 이를테면, 도 3과 관련하여 설명된 방식으로, 제 1 및 제 2 컴퓨팅 엔티티 사이에서 교환되고, 공유된 시크릿(
Figure pct00175
)의 파워과 관련하여 파라미터는 검증 키 및/또는 평가 키를 계산하는데 활용된다. 일 실시형태에서, 파라미터는, 암호화 방식으로 검증 가능한 기밀성의 보장을 제공하는 암호화 및/또는 통신 채널에 의존하지 않고서 교환된다.
일 실시형태에서, 제 1 컴퓨팅 엔티티 및 제 2 컴퓨팅 엔티티는 트랜잭션에 합의하고, 이들 각각은 스마트 계약을 정확하게 실행하는 제 3 컴퓨팅 엔티티(예를 들어, 작업자)에 의해 잠금 해제될 수 있는 스마트 계약의 각각의 트랜잭션 입력에 기여한다(510). 일 실시형태에서, 컴퓨팅 엔티티 중 어느 하나는 비례적인 작업자 수수료를 제공한다. 둘 모두가 동일한 어드레스(예를 들어, 작업자에 대한 어드레스)에 기여하는 P2SH 유형의 합의가 존재할 수 있거나 존재하지 않을 수 있다. 일 실시형태에서, P2SH 스크립트는 검증 키의 요소 또는 검증 키의 해시 값을 포함한다. 작업자(예를 들어, 제 3 컴퓨팅 엔티티)는, 예를 들어, 영국 특허 출원 제1719998.5호 및/또는 영국 특허 출원 제1720768.9호에 관련하여 설명된 기술을 사용함으로써, 작업자가 정확한 검증을 갖고, 정확함의 유효한 증거를 제공한다는 계산적으로 검증 가능한 증거를 제공함으로써 기여를 잠금 해제(예를 들어, 잠금 해제)할 수 있다.
도 6은 적어도 하나의 실시형태에 따라, n명의 당사자(예를 들어, n> 2) 간에 공유된 시크릿의 파워를 공유하기 위한 프로세스(600)의 예시적인 예를 도시한다. 프로세스(600)(또는 본원에 설명된 임의의 다른 프로세스, 또는 이들의 변형 및/또는 조합)의 일부 또는 전부는 컴퓨터 실행 가능 명령어로 구성된 하나 이상의 컴퓨터 시스템의 제어 하에 수행될 수 있고, 하드웨어, 소프트웨어 또는 이들의 조합에 의해 하나 이상의 프로세서 상에서 일괄적으로 실행되는 코드(예를 들어, 컴퓨터 실행 가능 명령어, 하나 이상의 컴퓨터 프로그램 또는 하나 이상의 애플리케이션)로서 구현될 수 있다. 코드는, 예를 들면, 하나 이상의 프로세서에 의해 실행 가능한 복수의 컴퓨터-판독 가능 명령어를 포함하는 컴퓨터 프로그램 형태로, 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다. 컴퓨터 판독 가능 저장 매체는 비일시적 컴퓨터 판독 가능 매체일 수 있다. 몇몇 실시형태에서, 프로세스(600)를 수행하기 위해 사용 가능한 컴퓨터 판독 가능 명령어 중 적어도 일부는 일시적 신호(예를 들어, 전파 과도 전기 또는 전자기 전송)만을 사용하여 저장되지 않는다. 비일시적 컴퓨터 판독 가능 매체는 일시적 신호의 트랜시버 내에 비일시적 데이터 저장 회로(예를 들어, 버퍼, 캐시 및 큐)를 포함할 수 있다. 일 실시형태에서, 임계치의 등가물에 선험적으로 주어지고, 필요한 참가자의 수가 먼저 합의된다고 가정된다. 이것은 샤미르의 시크릿 공유 스킴(4S)에 설명된 기술과 같은 기존의 다양한 기술과 상이하고, 여기서 시크릿의 공유는 주어진 임계치가 도달된다는 제한 하에서만 작동한다.
다양한 실시형태에 따라, 시크릿 공유는 임의의 수의 당사자에 대해 유효하다. 일 실시형태에서, 본 개시에서 설명된 형식주의(formalism)의 대부분은 다중-당사자(n>2) 시나리오에 적용될 수 있다. 몇몇 실시형태에서, 다중-당사자 시스템(n>2)은 특정 다른 파라미터(예를 들어, 다음의 비타원 곡선(예를 들어, 스칼라) 파라미터:
Figure pct00176
중 일부 또는 전부)를 은닉하도록 요구되지 않는다. 그러나, 이러한 파라미터가 프로토콜에 따라 비공개로 유지되어야 하면,
Figure pct00177
와 같은 파라미터를 은닉하기 위해 도 3과 관련하여 설명된 접근법과 같은 상이한 접근법이 활용될 수 있다.
일 실시형태에서, 모든 참가자는, 유한 필드 요소를 다른 유한 필드 요소에 맵핑하는 함수(
Figure pct00178
)에 합의하고 그리고/또는 이에 액세스할 수 있다. 일 실시형태에서, 함수는 그룹 생성기의 계수/지수의 역할을 한다. 예시 목적으로, 이하에서 설명되는 실시형태는, 우리가 관심을 갖는 함수가 테일러 급수(Taylor series)의 일반화에 의해 다항식으로 표현될 수 있기 때문에, 다항식에 초점을 둔다. 특히, 다양한 실시형태에서, 관련된 당사자는 함수를 동일한 값으로 그리고 서로 그 값을 돌리지 않고서 평가한다. 예를 들어, 1차의 다항식의 경우에, 이는 샤미르의 시크릿 공유 스킴을 활용하는 정도이다. 높은 차수(n>1)에 대해, 당사자는 다음의 형태의 표현을 처리한다.
Figure pct00179
따라서, 본원에 설명된 기술은, 모든 참가자가 동일한
Figure pct00180
를 갖는 것을 보장하는데 활용될 수 있다. 예를 들어, 적어도 하나의 실시형태에 따라 설명된 프로토콜에서, 동일한 EQ_FSG는,
Figure pct00181
이기 때문에, 임의의 정수 파워(r)에 대해
Figure pct00182
의 형태로 포인트를 공개적으로 분배함으로써 둘 이상의 참가자(즉, n>1) 사이에서 공유될 수 있고, 여기서 G는 해당(예를 들어, 타원 곡선 포인트의) 그룹의 생성기이다.
일 실시형태에서, 각각의 참가자는 604 개의 다항식을 생성할 수 있으며, 이는
Figure pct00183
의 경우 포인트의 세트
Figure pct00184
에서 평가되고, 포인트는 모든 당사자에게 알려질 수 있다. 일 실시형태에서, 각각의 참가자의 다항식의 합은 (마스터) 다항식을 구성하며, 다항식의 y 축과의 교차점은 시크릿, 즉, 다음과 같은 시크릿이고,
Figure pct00185
Figure pct00186
이고, 여기서 m은 참가자의 수이다. 전술한 바와 같이 y 축과의 교차점을 교차 포인트로 지칭될 수 있다.
s를 확립하기 위해, 각각의 참가자는 상이한 포인트(
Figure pct00187
)에서 평가된 대응하는 다항식을 공유한다(606). 더 구체적으로, 참가자(i)는
Figure pct00188
에 대해
Figure pct00189
를 생성/계산하고,
Figure pct00190
를 j에 전송한다. 일단 이들 수량이 공유되면, 각각의 참가자는 공유된 시크릿의 파워를 계산하거나 그렇지 않으면 결정할 수 있다(608).
Figure pct00191
을 고려할 때 약간 더 많은 정밀조사(scrutiny)가 필요로 되는데, 왜냐하면 이것이 다음의 표현을 공유하는 정도이기 때문이다.
Figure pct00192
생성기의 파워가 일반적으로 정의되지 않기 때문에,
Figure pct00193
의 파워를 계산하는 것은 불가능할 수 있다. 그러나 모든 참가자가 교환된
Figure pct00194
에 의해
Figure pct00195
를 추론할 수 있기 때문에, 라그랑주 보간 다항식 L(x)의 파워를 심사함으로써 시작하는 것이 가능하다(마스터 다항식은 일반적으로 라그랑주 보간(라그랑주 다항식, n.d.)에 의해 구성될 수 있기 때문에). 라그랑주 보간은 다음과 같이 작성될 수 있다.
Figure pct00196
여기서
Figure pct00197
그리고 따라서:
Figure pct00198
여기서
Figure pct00199
는 다항식 계수(다항식 정리, n.d.)이다. 따라서,
Figure pct00200
다항식은 각각의 참가자에 의해 독립적으로 계산될 수 있다. 다음에, 각각의 참가자는 다음을,
Figure pct00201
계산하여,
Figure pct00202
가 될 수 있고,
이는 결국 (다항식 확장을 사용하여) 다음과 같이 다시 작성할 수 있다.
Figure pct00203
이것은, 참가자(i)(다항식(
Figure pct00204
)의 소유자/작성자)가 참가자(j)에게
Figure pct00205
의 파워, 즉, 다음의 세트를 제공할 수 있음을 의미한다.
Figure pct00206
이것은 참가자(j)가
Figure pct00207
(및 유사하게
Figure pct00208
) 등을 계산할 수 있게 한다. 일 실시형태에서, 참가자는 다음의 형태의 표현을 계산한다.
Figure pct00209
Figure pct00210
적어도 하나의 실시형태에 따라, 참가자가 타원 곡선을 사용하고 여기서 G가 대응하는(곱셈) 표현의 생성기인 예가 고려된다. 2명의 참가자(A 및 B)의 경우에: A는
Figure pct00211
를 B에 전송하고, 그에 대한 답으로
Figure pct00212
를 수신한다. 따라서, 참가자(A)는 다음을 계산할 수 있고,
Figure pct00213
마찬가지로, 참가자(B)는 다음을 계산할 수 있다.
Figure pct00214
라그랑주 보간을 사용하여,
Figure pct00215
Figure pct00216
에 관하여 다음과 같이 p를 표현하는 것이 가능하다.
Figure pct00217
각각의 참가자는 교환된 포인트(
Figure pct00218
)에 의해
Figure pct00219
(그리고 특히
Figure pct00220
)를 재구성할 수 있다.
Figure pct00221
의 더 높은 파워에 대해, 이전 섹션으로부터의 다항식이 활용될 수 있다.
Figure pct00222
m=2에 대해, 이것은 다음과 같이 된다.
Figure pct00223
이 교환(소정의 미리 정해진 협약에 따름) 후에, 양자의 당사자는
Figure pct00224
그리고 특히
Figure pct00225
를 계산할 수 있다.
프로세스(600)에 따른 프로토콜이 이하에서 설명된다. 각각의 참가자가
Figure pct00226
형태의 표현을 획득할 수 있을 필요가 있기 때문에, 포인트 교환 시에 정렬이 필요할 수 있다. 여기서, 우리는 이러한 해결책 중 하나를 예시한다.
일반성의 손실 없이, 적어도 하나의 실시형태에 따라, 참가자(1)가 제 1 타원 곡선 포인트를 제출하는 참가자인 것으로 가정될 수 있다. 일 실시형태에서, 프로토콜은 다음의 단계들을 따른다.
1. 참가자 1은
Figure pct00227
를 모든 i≠1명의 참가자에 분배하고, 여기서
Figure pct00228
이고,
Figure pct00229
이고, 여기서 m은 참가자의 수이다.
2. 참가자 2는
Figure pct00230
,
Figure pct00231
Figure pct00232
에 대해
Figure pct00233
를 모든 i≠2명의 참가자에 분배한다.
3. 참가자 3은
Figure pct00234
,
Figure pct00235
,
Figure pct00236
Figure pct00237
에 대해
Figure pct00238
를 모든 i≠3명의 참가자에 분배한다.
4. ...(각각의 참가자에 대해 이러한 식이다)
시퀀스에서
Figure pct00239
번째 참가자는
Figure pct00240
에 대해
Figure pct00241
,
Figure pct00242
Figure pct00243
에 대해
Figure pct00244
를 모든
Figure pct00245
명의 참가자에 분배한다. 마지막 참가자(m)가 자신의 포인트를 분배할 때, 모든 참가자는
Figure pct00246
를 계산하는 데 필요한 구성요소를 갖는다.
일 실시형태에서, 프로세스(600)는
Figure pct00247
형태의 포인트의 세트를 교환하는 복수의 m명의 참가자(예를 들어, 2명 초과의 참가자)를 포함하고, 여기서 포인트는
Figure pct00248
를 계산하기 위해 각각의 참가자에 의해 사용된다. 그 다음, 참가자는
Figure pct00249
그리고 특히,
Figure pct00250
를 획득하기 위해, 라그랑주 보간과 함께
Figure pct00251
를 사용할 수 있다. 일 실시형태에서, 포인트는 타원 곡선 포인트이며, 여기서
Figure pct00252
이다.
따라서, 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미에서 고려되어야 한다. 그러나, 청구범위에서 기술되는 바와 같은 본 발명의 범위를 벗어나지 않으면서 다양한 수정 및 변경이 이루어질 수도 있다는 것이 명백할 것이다. 마찬가지로, 다른 변형예도 본 개시의 범위 내에 있다. 따라서, 개시된 기술이 다양한 수정 및 대안적인 구성을 허용하지만, 그것의 소정의 예시된 실시형태가 도면에 도시되고 상기에서 상세하게 설명되었다. 그러나, 본 발명을 개시되는 특정한 형태 또는 형태들로 제한하려는 의도가 있는 것이 아니라, 반대로, 본 발명은, 첨부된 청구범위에서 정의되는 바와 같은 본 발명의 범위 내에 속하는 모든 수정예, 대안적인 구성예 및 등가예를 포괄할 것이다는 것이 이해되어야 한다.
달리 언급되거나 또는 문맥에 의해 부정되지 않는 한, 용어 "세트"(예를 들면, "아이템의 세트") 또는 "서브세트"의 사용은, 하나 이상의 멤버를 포함하는 비어 있지 않은 집합으로서 해석되어야 한다. 또한, 달리 언급되거나 또는 문맥에 의해 부정되지 않는 한, 대응하는 세트의 "서브세트"라는 용어는 대응하는 세트의 적절한 서브세트를 반드시 나타내는 것은 아니며, 서브세트 및 대응하는 세트는 동일할 수도 있다.
"A, B, 및 C 중 적어도 하나", 또는 "A, B 및 C 중 적어도 하나"의 형태의 어구와 같은 접속 언어는, 달리 명시적으로 언급되지 않는 한 또는 문맥에 의해 달리 명백하게 부정되지 않는 한, 다르게는, 아이템, 용어, 등등이 A 또는 B 또는 C일 수도 있거나, 또는 A 및 B 및 C의 세트의 임의의 비어 있지 않은 서브세트일 수도 있다는 것을 제시하기 위해 일반적으로 사용되는 바와 같은 맥락에서 이해된다. 예를 들면, 세 개의 멤버를 갖는 세트의 예시적인 예에서, 접속 어구 "A, B, 및 C 중 적어도 하나" 및 "A, B 및 C 중 적어도 하나"는 다음의 세트 {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C} 중 임의의 것을 지칭한다. 따라서, 그러한 접속 언어는, 일반적으로, 소정의 실시형태가 A 중 적어도 하나, B 중 적어도 하나 및 C 중 적어도 하나 각각이 존재할 필요가 있음을 암시하도록 의도되지 않는다. 또한, 문맥으로부터 달리 언급되거나 달리 명확하지 않다면, 어구 "에 기초하는"은 "에 단독으로 기초하는"이 아니라 "에 적어도 부분적으로 기초하는"을 의미한다.
설명되는 프로세스의 동작은 달리 지시되지 않는 한 또는 문맥에 의해 달리 명확하게 부정되지 않는 한, 임의의 적절한 순서로 수행될 수 있다. 설명되는 프로세스(또는 그 변형 및/또는 조합)는, 실행 가능 명령어를 가지고 구성되는 하나 이상의 컴퓨터 시스템의 제어 하에서 수행될 수 있고, 하드웨어 또는 그 조합에 의해, 하나 이상의 프로세서 상에서 일괄적으로(collectively) 실행되는 코드(예를 들면, 실행 가능 명령어, 하나 이상의 컴퓨터 프로그램 또는 하나 이상의 애플리케이션)로서 구현될 수 있다. 몇몇 실시형태에서, 코드는, 예를 들면, 하나 이상의 프로세서에 의해 실행 가능한 복수의 명령어를 포함하는 컴퓨터 프로그램 형태로, 컴퓨터 판독 가능 저장 매체 상에 저장될 수 있다. 몇몇 실시형태에서, 컴퓨터 판독 가능 저장 매체는 비일시적이다.
제공되는 예, 또는 예시적인 언어(예를 들면, "예를 들어") 중 임의의 것 또는 모두의 사용은, 단지 본 발명의 실시형태를 더욱 잘 조명하도록 의도되는 것에 불과하며, 달리 청구되지 않는 한, 본 발명의 범위에 대해 제한을 부과하지는 않는다. 본 명세서에서의 어떤 언어도, 임의의 청구되지 않은 엘리먼트를 본 발명의 실시에 필수적인 것으로 나타내는 것으로 해석되지 않아야 한다.
본 발명을 수행하기 위한 본 발명자에게 알려진 최상의 모드를 비롯한, 본 개시의 실시형태가 설명된다. 그들 실시형태의 변형예는, 전술한 설명의 판독시, 기술 분야에서 통상의 지식을 가진 자에게 명백하게 될 것이다. 본 발명자는, 숙련된 기술자가, 그러한 변형예를 적절히 활용하기를 기대하고, 본 발명자는, 본 개시의 실시형태가 구체적으로 설명된 것과는 달리 실시되는 것을 의도한다. 따라서, 본 개시의 범위는, 적용 가능한 법률에 의해 허용되는 바와 같은 본원에 첨부되는 청구범위에서 열거되는 주제의 모든 수정예 및 등가예를 포함한다. 더욱이, 그 모든 가능한 변형예에서 상기 설명된 엘리먼트의 임의의 조합은, 달리 지시되지 않는 한 또는 문맥에 의해 달리 명백하게 부정되지 않는 한, 본 개시의 범위에 의해 포괄된다.
인용되는 출판물, 특허 출원, 및 특허를 비롯한, 모든 참고 문헌은, 마치 각각의 참고 문헌이 참조에 의해 개별적으로 그리고 구체적으로 통합된 것으로 나타내어지고 그 전체가 기술되는 것과 동일한 정도로 참조에 의해 본원에 통합된다.
상기 언급된 실시형태는 본 발명을 제한하기 보다는 예시하는 것이며, 기술 분야의 숙련된 자는, 첨부된 청구범위에 의해 정의된 바와 같은 본 발명의 범위를 벗어나지 않으면서, 많은 대안적인 실시형태를 설계할 수도 있을 것이다는 것을 유의해야 한다. 소정의 조치가 상이한 종속 청구항에서 인용된다는 단순한 사실은, 이들 조치의 조합이 유리하게 사용될 수 없다는 것을 나타내지는 않는다.

Claims (15)

  1. 컴퓨터 구현 방법으로서,
    유한 필드 요소(finite field element)를 맵핑하기 위해 사용 가능한 함수를 복수의 참가자 중 한 명의 참가자에서 결정하는 단계와,
    참가자의 수에 기초하여, 포인트의 세트에서 평가되는 다항식을 생성하는 단계와,
    상기 복수의 참가자 중 대응하는 참가자에 상기 다항식을 분배하는 단계와,
    상기 복수의 참가자 중 각각의 참가자의 다항식의 합(sum)을 결정하는 단계 ― 상기 합은 시크릿의 파워(power)에 대응함 ― 와,
    상기 복수의 참가자 중에서 그리고 상기 시크릿에 기초하여, 블록체인 트랜잭션(blockchain transaction)을 일괄적으로 생성하는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 포인트의 세트는 타원 곡선 포인트(elliptic curve point)의 세트인
    컴퓨터 구현 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 다항식의 합을 결정하는 단계는 라그랑주 보간(Lagrange interpolation)에 기초하는
    컴퓨터 구현 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 시크릿의 파워에 적어도 부분적으로 기초하여, 상기 복수의 참가자에 의해 결정 가능한 공통 기준 스트링(common reference string)을 결정하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 복수의 참가자 중 각각의 참가자로부터 대응하는 다항식의 값을 수신하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    오프-체인(off-chain) 통신은 대응하는 참가자로의 상기 다항식의 값의 분배에서 활용되는
    컴퓨터 구현 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 유한 필드 요소를 맵핑하기 위해 사용 가능한 상기 함수는 그룹의 생성기의 계수(coefficient) 또는 지수(exponent)의 역할을 하는
    컴퓨터 구현 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 복수의 참가자는 정확히 2명의 참가자인
    컴퓨터 구현 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    상기 시크릿은 특정 포인트에서 평가된 상기 다항식의 합에 기초하여 결정되는
    컴퓨터 구현 방법.
  10. 제 9 항에 있어서,
    상기 특정 포인트는 교차 포인트(intersection point)인
    컴퓨터 구현 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 포인트의 세트는 상기 교차 포인트를 배제하는
    컴퓨터 구현 방법.
  12. 제 1 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 포인트의 세트에서 평가된 상기 다항식은 적어도 2차인
    컴퓨터 구현 방법.
  13. 제 1 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 포인트의 세트의 각각의 포인트는 상이한 포인트인
    컴퓨터 구현 방법.
  14. 시스템으로서,
    프로세서와,
    실행 가능 명령어를 포함하는 메모리를 포함하고,
    상기 실행 가능 명령어는, 상기 프로세서에 의한 실행의 결과로서, 상기 시스템으로 하여금 제 1 항 내지 제 13 항 중 어느 한 항에 따른 컴퓨터 구현 방법을 수행하게 하는
    시스템.
  15. 실행 가능 명령어를 저장한 비일시적인 컴퓨터 판독 가능 저장 매체로서,
    상기 실행 가능 명령어는, 컴퓨터 시스템의 프로세서에 의해 실행된 결과로서, 상기 컴퓨터 시스템으로 하여금 제 1 항 내지 제 13 항 중 어느 한 항에 따른 컴퓨터 구현 방법을 적어도 수행하게 하는
    비일시적인 컴퓨터 판독 가능 저장 매체.
KR1020207017958A 2017-12-13 2018-12-07 암호 자료를 안전하게 공유하기 위한 시스템 및 방법 KR20200096248A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
GBGB1720768.9A GB201720768D0 (en) 2017-12-13 2017-12-13 Computer-implemented system and method
GB1720768.9 2017-12-13
GBGB1813772.9A GB201813772D0 (en) 2018-08-23 2018-08-23 Computer-Implemented system and method
GB1813770.3 2018-08-23
GB1813772.9 2018-08-23
GBGB1813770.3A GB201813770D0 (en) 2018-08-23 2018-08-23 Computer-Implemented system and method
PCT/IB2018/059770 WO2019116187A1 (en) 2017-12-13 2018-12-07 System and method for securely sharing cryptographic material

Publications (1)

Publication Number Publication Date
KR20200096248A true KR20200096248A (ko) 2020-08-11

Family

ID=65013743

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207017958A KR20200096248A (ko) 2017-12-13 2018-12-07 암호 자료를 안전하게 공유하기 위한 시스템 및 방법
KR1020207017961A KR20200094173A (ko) 2017-12-13 2018-12-12 블록체인 기반 스마트 계약의 다중-당사지 생성을 위한 시스템 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207017961A KR20200094173A (ko) 2017-12-13 2018-12-12 블록체인 기반 스마트 계약의 다중-당사지 생성을 위한 시스템 및 방법

Country Status (9)

Country Link
US (6) US11683164B2 (ko)
EP (3) EP3725028A1 (ko)
JP (4) JP7453911B2 (ko)
KR (2) KR20200096248A (ko)
CN (4) CN118449685A (ko)
SG (2) SG11202005567QA (ko)
TW (1) TWI794366B (ko)
WO (2) WO2019116187A1 (ko)
ZA (2) ZA202004255B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102346880B1 (ko) 2020-09-01 2022-01-03 김바올 블록체인에 기반한 성인인증정보 관리 방법 및 장치

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6981472B2 (ja) * 2017-08-22 2021-12-15 日本電信電話株式会社 合意システム、合意装置、プログラム、および記録媒体
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
WO2021013813A1 (en) * 2019-07-24 2021-01-28 Koninklijke Philips N.V. Summarizing a genomic data entry
CN110535916B (zh) * 2019-08-09 2022-04-15 江苏科技大学 一种基于区块链的供应保障管理方法
CN111427958A (zh) * 2020-03-26 2020-07-17 北京链化未来科技有限公司 基于区块链的去中心化数据数据共享方法
TWI790450B (zh) * 2020-06-15 2023-01-21 台灣灣谷科技股份有限公司 智能合約上鏈方法及其系統
WO2022006361A1 (en) * 2020-06-30 2022-01-06 Interdigital Patent Holdings, Inc. Methods, architectures, apparatuses and systems directed to messaging through blockchain networks
US11991284B1 (en) * 2020-07-02 2024-05-21 Steven Ali Ghabel Blockchain-based authentication system and method
CN112653550A (zh) * 2020-10-11 2021-04-13 黑龙江头雁科技有限公司 一种基于BlockChain的多项密钥管理方法
JP2022158677A (ja) 2021-04-02 2022-10-17 株式会社野村総合研究所 マルチパーティ計算で行われるゼロ知識証明のための装置およびシステム
US20220337424A1 (en) * 2021-04-16 2022-10-20 Portable Data Corp Apparatuses And Methods For Facilitating Cryptographically Mediated Organizations And Tokens And Related Interactions
WO2023055582A1 (en) * 2021-09-30 2023-04-06 Visa International Service Association Round optimal oblivious transfers from isogenies
KR20230077838A (ko) 2021-11-26 2023-06-02 (주) 이노트리 다자간 계약의 개인정보 보호를 위한 온라인 전자 계약 플랫폼 시스템
US12086630B2 (en) * 2022-04-07 2024-09-10 Piamond Corp. Method and system for generating and managing smart contract
GB2627757A (en) * 2023-02-28 2024-09-04 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script
GB2627758A (en) * 2023-02-28 2024-09-04 Nchain Licensing Ag Verification of scalar multiplication of elliptic curve points in script

Family Cites Families (138)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4667290A (en) 1984-09-10 1987-05-19 501 Philon, Inc. Compilers using a universal intermediate language
JPH03126133A (ja) 1989-10-11 1991-05-29 Matsushita Electric Ind Co Ltd コンパイラ処理方法
US5499191A (en) 1992-06-15 1996-03-12 Minc Incorporated Multi-level logic optimization in programmable logic devices
US5297150A (en) 1992-06-17 1994-03-22 International Business Machines Corporation Rule-based method for testing of programming segments
US6064928A (en) 1997-04-24 2000-05-16 Automation Systems Laboratory, Inc. Mechanical sensor diagnostic method and system
US5920830A (en) 1997-07-09 1999-07-06 General Electric Company Methods and apparatus for generating test vectors and validating ASIC designs
US6161180A (en) 1997-08-29 2000-12-12 International Business Machines Corporation Authentication for secure devices with limited cryptography
US6519754B1 (en) 1999-05-17 2003-02-11 Synplicity, Inc. Methods and apparatuses for designing integrated circuits
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
EP1283422A1 (en) 2001-08-07 2003-02-12 Lucent Technologies Inc. Testbench for the validation of a device under test
US7209555B2 (en) 2001-10-25 2007-04-24 Matsushita Electric Industrial Co., Ltd. Elliptic curve converting device, elliptic curve converting method, elliptic curve utilization device and elliptic curve generating device
US7085701B2 (en) 2002-01-02 2006-08-01 International Business Machines Corporation Size reduction techniques for vital compliant VHDL simulation models
AU2003252817A1 (en) * 2002-03-13 2003-09-22 Koninklijke Philips Electronics N.V. Polynomial-based multi-user key generation and authentication method and system
US7281017B2 (en) 2002-06-21 2007-10-09 Sumisho Computer Systems Corporation Views for software atomization
CN1679271A (zh) * 2002-08-28 2005-10-05 美国多科摩通讯研究所股份有限公司 基于认证的加密和公共密钥基础结构
US6983456B2 (en) 2002-10-31 2006-01-03 Src Computers, Inc. Process for converting programs in high-level programming languages to a unified executable for hybrid computing platforms
US20050004899A1 (en) 2003-04-29 2005-01-06 Adrian Baldwin Auditing method and service
US20060149962A1 (en) * 2003-07-11 2006-07-06 Ingrian Networks, Inc. Network attached encryption
US7059517B2 (en) * 2003-12-31 2006-06-13 Hewlett-Packard Development Company, L.P. On-line PIN verification using polynomials
US7664957B2 (en) * 2004-05-20 2010-02-16 Ntt Docomo, Inc. Digital signatures including identity-based aggregate signatures
US7590236B1 (en) * 2004-06-04 2009-09-15 Voltage Security, Inc. Identity-based-encryption system
US8200700B2 (en) 2005-02-01 2012-06-12 Newsilike Media Group, Inc Systems and methods for use of structured and unstructured distributed data
US20160004820A1 (en) 2005-02-01 2016-01-07 Newsilike Media Group, Inc. Security facility for maintaining health care data pools
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
TW200725415A (en) 2005-12-30 2007-07-01 Tatung Co Ltd Method for automatically translating high level programming language into hardware description language
US8850411B2 (en) 2006-06-21 2014-09-30 Element Cxi, Llc Compiler system, method and software for a resilient integrated circuit architecture
US7926040B2 (en) 2006-09-06 2011-04-12 International Business Machines Corporation Method and system for timing code execution in a korn shell script
WO2008053650A1 (en) * 2006-10-30 2008-05-08 Nec Corporation Common key block encrypting device, its method, its program, and recording medium
FR2918525A1 (fr) * 2007-07-06 2009-01-09 France Telecom Procede asymetrique de chiffrement ou de verification de signature.
US8543885B2 (en) 2007-11-18 2013-09-24 Lg Electronics Inc. Methods of joint coding in mobile communication system
US8923510B2 (en) * 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard
JP2010096787A (ja) * 2008-10-14 2010-04-30 Tokyo Metropolitan Univ 秘密情報分散装置、秘密情報分散プログラム、秘密情報分散方法、秘密情報復元装置、秘密情報復元プログラム、秘密情報復元方法、及び秘密情報分散復元システム
US8336036B2 (en) 2008-11-21 2012-12-18 Korea University Industrial & Academic Collaboration Foundation System and method for translating high programming level languages code into hardware description language code
WO2010069063A1 (en) * 2008-12-16 2010-06-24 Certicom Corp. Acceleration of key agreement protocols
US8165287B2 (en) * 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
US8189771B2 (en) * 2009-01-12 2012-05-29 King Fahd University Of Petroleum & Minerals Hash functions with elliptic polynomial hopping
FR2947404B1 (fr) 2009-06-30 2011-12-16 Sagem Securite Cryptographie par parametrisation sur une courbe elliptique
JP5159752B2 (ja) 2009-12-03 2013-03-13 セイコープレシジョン株式会社 通信データの検証装置及びそのコンピュータプログラム
US8189775B2 (en) * 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
RU2527207C2 (ru) * 2010-04-27 2014-08-27 Нек Корпорейшн Устройство кодирования, способ конфигурирования кода с исправлением ошибок и программа для них
US10515567B2 (en) * 2010-06-01 2019-12-24 Ternarylogic Llc Cryptographic machines with N-state lab-transformed switching devices
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
WO2012126086A1 (en) * 2011-03-18 2012-09-27 Certicom Corp. Secure financial transactions
US9569771B2 (en) * 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
WO2012151251A2 (en) 2011-05-03 2012-11-08 Panther Payments, LLC Method and system for facilitating person-to person payments
US8607129B2 (en) * 2011-07-01 2013-12-10 Intel Corporation Efficient and scalable cyclic redundancy check circuit using Galois-field arithmetic
JP5697153B2 (ja) 2011-08-04 2015-04-08 キヤノンマーケティングジャパン株式会社 情報処理システム、携帯端末、制御方法、及びプログラム
US8745376B2 (en) 2011-10-14 2014-06-03 Certicom Corp. Verifying implicit certificates and digital signatures
US20150379510A1 (en) 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
CN104854814A (zh) * 2012-12-21 2015-08-19 皇家飞利浦有限公司 密钥共享网络设备及其配置
US8683193B1 (en) 2013-03-01 2014-03-25 Robert Hansen Strict communications transport security
EP2989742B1 (en) * 2013-04-24 2018-08-29 NEC Corporation Method and system for enforcing access control policies on data
US20140321644A1 (en) 2013-04-29 2014-10-30 Her Majesty The Queen In Right Of Canada, As Represented By The Minister Of National Defence Method and system for calculations on encrypted data
US11127001B2 (en) 2013-05-09 2021-09-21 Wayne Fueling Systems Llc Systems and methods for secure communication
US9553982B2 (en) 2013-07-06 2017-01-24 Newvoicemedia, Ltd. System and methods for tamper proof interaction recording and timestamping
EP2860905A1 (en) * 2013-10-09 2015-04-15 Thomson Licensing Method for ciphering a message via a keyed homomorphic encryption function, corresponding electronic device and computer program product
US9026978B1 (en) 2013-10-24 2015-05-05 Cadence Design Systems, Inc. Reverse interface logic model for optimizing physical hierarchy under full chip constraint
JP6095584B2 (ja) * 2014-01-15 2017-03-15 日本電信電話株式会社 マルチパーティ計算システム、秘匿計算装置、マルチパーティ計算方法及びプログラム
FR3018378A1 (fr) 2014-03-12 2015-09-11 Enrico Maim Systeme et procede transactionnels a architecture repartie fondees sur des transactions de transferts d'unites de compte entre adresses
US10320781B2 (en) 2016-12-08 2019-06-11 Sensoriant, Inc. System and methods for sharing and trading user data and preferences between computer programs and other entities while preserving user privacy
US9645794B2 (en) 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
US10025926B2 (en) 2014-11-19 2018-07-17 The Mitre Corporation Side-channel leakage evaluator and analysis kit
US20160162897A1 (en) 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
CN104580240A (zh) 2015-01-22 2015-04-29 杭州安存网络科技有限公司 聊天证据固定方法及装置
PT3259871T (pt) 2015-02-20 2020-11-10 Ericsson Telefon Ab L M Método para proporcionar um valor de dispersão para uma parte de dados, dispositivo eletrónico e programa de computador
SI3073670T1 (sl) 2015-03-27 2021-07-30 Black Gold Coin, Inc. Sistem in postopek za osebno identifikacijo in verifikacijo
WO2016155804A1 (en) 2015-03-31 2016-10-06 Nec Europe Ltd. Method for verifying information
JP2017004044A (ja) 2015-06-04 2017-01-05 富士通株式会社 ライセンス管理プログラム、ライセンス管理方法、およびライセンス管理システム
CN106293892B (zh) 2015-06-26 2019-03-19 阿里巴巴集团控股有限公司 分布式流计算系统、方法和装置
WO2017008829A1 (en) * 2015-07-10 2017-01-19 Nec Europe Ltd. A method and a system for reliable computation of a program
US10339523B2 (en) * 2015-07-14 2019-07-02 Fmr Llc Point-to-point transaction guidance apparatuses, methods and systems
US11488147B2 (en) * 2015-07-14 2022-11-01 Fmr Llc Computationally efficient transfer processing and auditing apparatuses, methods and systems
US20170048209A1 (en) * 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems
US20170091756A1 (en) * 2015-07-14 2017-03-30 Fmr Llc Point-to-Point Transaction Guidance Apparatuses, Methods and Systems
US10366204B2 (en) 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
DE102015114215A1 (de) 2015-08-27 2017-03-02 Rwe Ag Versorgungssystem und verfahren zum betreiben eines versorgungssystems
US20180331832A1 (en) 2015-11-05 2018-11-15 Allen Pulsifer Cryptographic Transactions System
US10269012B2 (en) * 2015-11-06 2019-04-23 Swfl, Inc. Systems and methods for secure and private communications
US10048952B2 (en) 2015-11-11 2018-08-14 Oracle International Corporation Compiler optimized data model evaluation
FR3043811B1 (fr) 2015-11-16 2017-11-10 Morpho Procede d'identification d'une entite
US20170140408A1 (en) 2015-11-16 2017-05-18 Bank Of America Corporation Transparent self-managing rewards program using blockchain and smart contracts
KR102632493B1 (ko) * 2015-11-16 2024-02-02 코르보 유에스, 인크. Esd 보호를 위한 자연 폐쇄 mems 스위치
US9992028B2 (en) * 2015-11-26 2018-06-05 International Business Machines Corporation System, method, and computer program product for privacy-preserving transaction validation mechanisms for smart contracts that are included in a ledger
US11423498B2 (en) 2015-12-16 2022-08-23 International Business Machines Corporation Multimedia content player with digital rights management while maintaining privacy of users
JP2017111591A (ja) 2015-12-16 2017-06-22 株式会社ソシオネクスト 設計方法、設計プログラム及び設計装置
US9715373B2 (en) 2015-12-18 2017-07-25 International Business Machines Corporation Dynamic recompilation techniques for machine learning programs
US10044696B2 (en) 2015-12-22 2018-08-07 Mcafee, Llc Simplified sensor integrity
US9483596B1 (en) 2016-01-08 2016-11-01 International Business Machines Corporation Multi power synthesis in digital circuit design
US9960920B2 (en) 2016-01-26 2018-05-01 Stampery Inc. Systems and methods for certification of data units and/or certification verification
US10108812B2 (en) * 2016-01-28 2018-10-23 Nasdaq, Inc. Systems and methods for securing and disseminating time sensitive information using a blockchain
GB2561729A (en) * 2016-02-23 2018-10-24 Nchain Holdings Ltd Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US11170371B2 (en) 2016-03-03 2021-11-09 Nec Corporation Method for managing data in a network of nodes
US20200327498A1 (en) * 2016-03-21 2020-10-15 National Ict Australia Limited Business Process Execution on a Blockchain Platform
US11017387B2 (en) 2016-03-24 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud services for elemental transactions
US11017388B2 (en) 2016-03-25 2021-05-25 International Business Machines Corporation Cryptographically assured zero-knowledge cloud service for composable atomic transactions
US10839096B2 (en) 2016-03-28 2020-11-17 International Business Machines Corporation Cryptographically provable zero-knowledge content distribution network
US20170287090A1 (en) 2016-03-31 2017-10-05 Clause, Inc. System and method for creating and executing data-driven legal contracts
US10545739B2 (en) 2016-04-05 2020-01-28 International Business Machines Corporation LLVM-based system C compiler for architecture synthesis
PT3440823T (pt) 2016-04-05 2020-12-04 Zamna Tech Limited Método e sistema para gestão de informações pessoais dentro de sistemas informáticos independentes e redes digitais
US11455630B2 (en) 2016-04-11 2022-09-27 nChain Holdings Limited Method for secure peer-to-peer communication on a blockchain
US10333705B2 (en) 2016-04-30 2019-06-25 Civic Technologies, Inc. Methods and apparatus for providing attestation of information using a centralized or distributed ledger
US10046228B2 (en) 2016-05-02 2018-08-14 Bao Tran Smart device
EP3452929B1 (en) 2016-05-06 2020-04-01 Innogy Innovation GmbH System for evaluating telemetry data
US20170337319A1 (en) 2016-05-20 2017-11-23 Ecole polytechnique fédérale de Lausanne (EPFL) System and Method for Optimization of Digital Circuits with Timing and Behavior Co-Designed by Introduction and Exploitation of False Paths
US9774578B1 (en) * 2016-05-23 2017-09-26 Accenture Global Solutions Limited Distributed key secret for rewritable blockchain
US20170344988A1 (en) * 2016-05-24 2017-11-30 Ubs Ag System and method for facilitating blockchain-based validation
CN107438002B (zh) 2016-05-27 2022-02-11 索尼公司 基于区块链的系统以及系统中的电子设备和方法
FR3052286B1 (fr) 2016-06-06 2018-06-15 Morpho Procede de verification d'un droit d'acces d'un individu
US10447478B2 (en) 2016-06-06 2019-10-15 Microsoft Technology Licensing, Llc Cryptographic applications for a blockchain system
US20180018738A1 (en) 2016-07-14 2018-01-18 Digital Asset Holdings Digital asset platform
KR101795696B1 (ko) 2016-07-14 2017-11-09 주식회사 코인플러그 메신저 서비스를 통하여 송수신되는 데이터에 대한 기록 및 검증 서비스를 제공하는 방법, 및 이를 이용한 서버
US10417217B2 (en) 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US20180089760A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a multi-asset rebalancing mechanism
CN106506146A (zh) 2016-10-26 2017-03-15 北京瑞卓喜投科技发展有限公司 基于区块链技术的交易信息校验方法、装置及系统
CN106534317B (zh) 2016-11-17 2019-09-03 杭州云象网络技术有限公司 一种基于区块链技术的灾备云存储系统构建方法
CN106559211B (zh) * 2016-11-22 2019-12-13 中国电子科技集团公司第三十研究所 一种区块链中隐私保护智能合约方法
EP3566389B1 (en) 2017-01-06 2021-08-18 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
EP3566384B1 (en) 2017-01-06 2021-02-17 Koninklijke Philips N.V. Pinocchio / trinocchio on authenticated data
CN106846666B (zh) * 2017-01-18 2019-05-07 北京云知科技有限公司 一种基于区块链的存取款方法
CN110945549A (zh) 2017-03-15 2020-03-31 努Id公司 用于对用于跨机构数字认证的用户拥有的凭证的通用存储和访问的方法和系统
KR101882802B1 (ko) 2017-04-17 2018-07-27 주식회사 코인플러그 Utxo 기반 프로토콜을 이용한 블록체인 기반의 문서 관리 방법 및 이를 이용한 문서 관리 서버
US10419209B1 (en) * 2017-04-26 2019-09-17 Wells Fargo Bank, N.A. Parallel assurance of blockchain signatures
CN107274184A (zh) 2017-05-11 2017-10-20 上海点融信息科技有限责任公司 基于零知识证明的区块链数据处理
CN107179932A (zh) 2017-05-26 2017-09-19 福建师范大学 基于fpga高层次综合指令的优化方法及其系统
CN107040545B (zh) 2017-05-26 2019-05-31 中国人民解放军信息工程大学 工程文件全生命周期安全保护方法
CN107425967B (zh) * 2017-06-15 2019-08-27 武汉理工大学 一种理论安全的灵活多秘密共享方法
CN107426234A (zh) 2017-08-08 2017-12-01 武汉协鑫新能源电力设计有限公司 一种基于区块链技术的绿色电力认证机制
WO2019033074A1 (en) 2017-08-11 2019-02-14 Dragonchain, Inc. SYSTEMS AND METHODS OF INTERACTION WITH DISTRIBUTED REGISTERS
US10268829B2 (en) 2017-08-11 2019-04-23 Dragonchain, Inc. Security systems and methods based on cryptographic utility token inventory tenure
US10333710B2 (en) 2017-09-12 2019-06-25 Qed-It Systems Ltd. Method and system for determining desired size of private randomness using Tsallis entropy
US10521616B2 (en) 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
US10949511B2 (en) * 2017-11-30 2021-03-16 Bank Of America Corporation Multicomputer processing for data authentication using a blockchain approach
US20190180276A1 (en) * 2017-12-07 2019-06-13 Bank Of America Corporation Automated Event Processing Computing Platform for Handling and Enriching Blockchain Data
FR3075534B1 (fr) 2017-12-14 2020-01-10 CopSonic Dispositif de stockage de cles numeriques pour signer des transactions sur une chaine de blocs
FR3098947B1 (fr) * 2019-07-19 2021-09-10 Idemia Identity & Security France Procédé de traitement d’une transaction émise depuis une entité de preuve

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102346880B1 (ko) 2020-09-01 2022-01-03 김바올 블록체인에 기반한 성인인증정보 관리 방법 및 장치

Also Published As

Publication number Publication date
EP3725028A1 (en) 2020-10-21
US20240195611A1 (en) 2024-06-13
CN111466095B (zh) 2024-05-14
JP2024063228A (ja) 2024-05-10
WO2019116187A1 (en) 2019-06-20
TW201928755A (zh) 2019-07-16
KR20200094173A (ko) 2020-08-06
US11888976B2 (en) 2024-01-30
US20220271919A1 (en) 2022-08-25
US20210075597A1 (en) 2021-03-11
SG11202005567QA (en) 2020-07-29
EP3725032A1 (en) 2020-10-21
JP2021507562A (ja) 2021-02-22
JP2023068139A (ja) 2023-05-16
TWI794366B (zh) 2023-03-01
JP7453911B2 (ja) 2024-03-21
CN117478315A (zh) 2024-01-30
ZA202004255B (en) 2023-12-20
SG11202005564WA (en) 2020-07-29
US11683164B2 (en) 2023-06-20
US20240348429A1 (en) 2024-10-17
US11271729B2 (en) 2022-03-08
JP7252233B2 (ja) 2023-04-04
WO2019116246A1 (en) 2019-06-20
EP3725032B1 (en) 2021-11-17
CN111466100A (zh) 2020-07-28
ZA202004256B (en) 2023-01-25
JP2021507563A (ja) 2021-02-22
CN111466095A (zh) 2020-07-28
CN111466100B (zh) 2023-10-31
US20210075610A1 (en) 2021-03-11
US20230370253A1 (en) 2023-11-16
EP4009577A1 (en) 2022-06-08
CN118449685A (zh) 2024-08-06

Similar Documents

Publication Publication Date Title
JP7453911B2 (ja) 暗号材料を安全に共有するためのシステム及び方法
KR102687781B1 (ko) 증명 검증에 기초하여 오프-체인 데이터를 인증하기 위한 시스템 및 방법
EP3707872B1 (en) Systems and methods for ensuring correct execution of computer program using a mediator computer system
US20210377041A1 (en) System for recording verification keys on a blockchain
Scala et al. Zero-knowledge multi-transfer based on range proofs and homomorphic encryption

Legal Events

Date Code Title Description
E902 Notification of reason for refusal