KR20220143874A - 블록체인과 연관된 복수의 서비스들을 위한 플랫폼 - Google Patents

블록체인과 연관된 복수의 서비스들을 위한 플랫폼 Download PDF

Info

Publication number
KR20220143874A
KR20220143874A KR1020227031588A KR20227031588A KR20220143874A KR 20220143874 A KR20220143874 A KR 20220143874A KR 1020227031588 A KR1020227031588 A KR 1020227031588A KR 20227031588 A KR20227031588 A KR 20227031588A KR 20220143874 A KR20220143874 A KR 20220143874A
Authority
KR
South Korea
Prior art keywords
blockchain
client
platform
services
request
Prior art date
Application number
KR1020227031588A
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
Application filed by 엔체인 라이센싱 아게 filed Critical 엔체인 라이센싱 아게
Publication of KR20220143874A publication Critical patent/KR20220143874A/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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

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

Abstract

제1 양상에서, 본 개시내용은 서비스에 대한 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷으로 클라이언트 요청을 수신할 수 있는 API(application programming interface)와 연관된 플랫폼 프로세서를 사용하여, 블록체인과 연관된 복수의 서비스들을 제공하는 플랫폼을 구현하기 위한 방법들, 디바이스들 및 시스템들을 제안한다. 요청 및/또는 클라이언트의 아이덴티티의 적절한 검증에 더하여, 요청된 블록체인 서비스에 대한 목적지 어드레스 또는 엔드포인트가 결정되고, 출력 스크립트를 획득하기 위해 목적지 어드레스에 기초하여 적어도 하나의 블록체인 트랜잭션이 생성된다. 그 후 출력 스크립트에 기초한 결과는 HTTP 송신 프로토콜 포맷으로 주어진 클라이언트에 전송된다. 일부 양상들에서, 블록체인 트랜잭션은 블록체인 상에서 유한 상태 머신으로서 구현되는 이벤트 스트림과 연관된다.

Description

블록체인과 연관된 복수의 서비스들을 위한 플랫폼
본 개시내용은 일반적으로 하나 이상의 클라이언트들에 대한 분산 원장, 즉 블록체인과 연관된 하나 이상의 서비스들의 플랫폼을 구현하기 위한 방법들 및 시스템들에 관한 것이다. 특히, 본 개시내용은 이벤트 스트림들 또는 기계 판독 가능 계약들의 구현과 같이, 하나 이상의 클라이언트들에 대한 블록체인과 연관된 복수의 기능들 및 애플리케이션들에 대한 액세스의 제공에 관한 것이다(그러나 이에 제한되지 않음).
이 문서에서 우리는 모든 형태의 전자, 컴퓨터 기반, 분산 원장을 포함하기 위하여 '블록체인'이라는 용어를 사용한다. 이는 합의 기반(consensus-based) 블록체인 및 트랜잭션 체인 기술들, 허가 및 비허가 원장들, 공유 원장들, 공용 및 개인 블록체인들 및 이들의 변동들을 포함한다. 다른 블록체인 구현들이 제안되고 개발되었지만, 블록체인 기술의 가장 널리 알려진 애플리케이션은 비트코인 원장이다. 비트코인은 편의 및 예시의 목적으로 본원에서 지칭될 수 있지만, 본 개시내용은 비트코인 블록체인과 함께 사용하는 것으로 제한되지 않으며, 임의의 종류의 디지털 자산 또는 디지털 자산의 표현과 연관된 대안적인 블록체인 구현들 및 프로토콜들이 본 개시내용의 범위 내에 속한다는 것이 주의되어야 한다. "클라이언트", "엔티티”, "노드", "사용자", "전송자", "수령인", "지급인", "수취인"이라는 용어들은 본원에서 컴퓨팅 또는 프로세서-기반 자원을 지칭할 수 있다. 본원에서 "비트코인"이란 용어는 비트코인 프로토콜로부터 도출되거나 이에 기초하는 임의의 버전 또는 변동을 포함하는 데 사용된다. "디지털 자산"이라는 용어는 암호화폐, 재산의 적어도 일부를 표현하는 토큰들, 스마트 계약, 라이센스, 즉 소프트웨어 라이센스, 또는 미디어 콘텐츠에 대한 DRM 계약들 등과 같은 임의의 이전 가능한 자산을 지칭할 수 있다. "디지털 자산"이라는 용어는 이 문서 전반에 걸쳐 가치와 연관될 수 있는 상품을 표현하는 데 사용되며, 이는 하나의 엔티티에서 다른 엔티티로의 트랜잭션에서 지불로서 이전되거나 제공될 수 있다는 것이 이해될 것이다.
블록체인은 결국, 트랜잭션들로 구성되는 블록들로 구성된 컴퓨터-기반 탈중앙화된 분산 시스템으로서 구현되는 피어-투-피어 전자 원장이다. 각각의 트랜잭션은 블록체인 시스템의 참여자들 사이의 디지털 자산의 제어의 이전을 인코딩하는 데이터 구조이며, 적어도 하나의 입력 및 적어도 하나의 출력을 포함한다. 각각의 블록은 이전 블록의 해시를 포함하여서, 블록들은 그의 시작 이래로 블록체인에 기록되는 모든 트랜잭션들에 대한 영구적이고 변경 불가능한 레코드를 생성하도록 함께 체이닝된다(chained). 트랜잭션들은 그 입력들 및 출력들에 매립되는 스크립트들로서 알려진 소형 프로그램들을 포함하며, 이들은 트랜잭션의 출력이 어떻게 그리고 누구에 의해 액세스될 수 있는지를 지정한다. 비트코인 플랫폼에서, 이러한 스크립트는 스택-기반 스크립트 언어(stack-based scripting language)를 이용하여 기록된다.
트랜잭션이 블록체인에 기록되기 위해서는 "유효성 검증(validated)"되어야 한다. 네트워크 노드들(채굴자들)은 각각의 트랜잭션이 유효하다는 것을 보장하기 위한 작업을 수행하며, 유효하지 않은 트랜잭션들은 네트워크로부터 거부된다. 노드들 상에 설치된 소프트웨어 클라이언트들은 그의 잠금 및 잠금 해제 스크립트들을 실행함으로써 미지출 트랜잭션(UTXO)에 대하여 이 유효성 검증 작업을 수행한다. 잠금 및 잠금 해제 스크립트들의 실행이 참(TRUE)으로 평가되는 경우, 트랜잭션은 유효하고 트랜잭션은 그 후 블록체인에 기록된다. 따라서, 트랜잭션이 블록체인에 기록되기 위해서는 i) 트랜잭션을 수신하는 제1 노드에 의해 유효성 검증되어야 하며 ― 트랜잭션이 유효성 검증되는 경우, 노드는 트랜잭션을 네트워크의 다른 노드들에 중계함 ― , ii) 채굴자에 의해 구축된 새로운 블록에 추가되어야 하며, iii) 채굴, 즉 과거 트랜잭션들의 공용 원장에 추가되어야 한다.
채굴자들에 의해 수행되는 작업들의 성질은 블록체인을 유지하는 데 사용되는 합의 메커니즘의 유형에 의존한다는 것이 인지될 것이다. 작업 증명(proof of work; PoW)이 오리지널 비트코인 프로토콜과 연관되지만, PoS(proof of stake), DPoS(delegated proof of stake), PoC(proof of capacity), PoET(proof of elapsed time), PoA(proof of authority) 등과 같은 다른 합의 메커니즘들이 사용될 수 있다는 것이 인지될 것이다. 상이한 합의 메커니즘들은 채굴이 노드들 간에 분산되는 방식에 따라 변동되며, 블록을 성공적으로 채굴할 승산(odd)들은 예컨대, 채굴자의 해싱 파워(PoW), 채굴자에 의해 홀딩되는 암호화폐의 양(PoS), 위임 채굴자(Delegate Miner)에 대해 스테이킹된(staked) 암호화폐의 양(DPoS), 암호화 퍼즐에 대한 사전 결정된 솔루션을 저장하는 채굴자의 능력(PoC), 채굴자에게 랜덤으로 할당된 대기 시간(PoET) 등에 의존한다. 통상적으로, 채굴자들에는 블록의 채굴에 대한 인센티브 또는 보상이 제공된다. 예컨대, 비트코인 블록체인은 새롭게 발행된 암호화폐(비트코인(Bitcoin)) 및 블록 내 트랜잭션들과 관련된 수수료(트랜잭션 수수료)로 채굴자들을 보상한다. 비트코인 블록체인의 경우, 발행된 암호화폐의 양은 시간이 지남에 따라 줄어들고 인센티브는 결국 트랜잭션 수수료들만으로 구성된다. 따라서 트랜잭션 수수료들의 처리는 비트코인 블록체인과 같은 공용 블록체인(public blockchain)에 데이터를 커밋하는(committing) 기본 메커니즘의 일부라는 것이 인지될 것이다.
이전에 언급된 바와 같이, 주어진 블록의 각각의 트랜잭션은 블록체인 시스템의 참여자들 간의 디지털 자산의 제어의 이전을 인코딩한다. 디지털 자산이 반드시 암호화폐에 대응할 필요는 없다. 예컨대, 디지털 자산은 문서, 이미지, 물리적 오브젝트 등의 디지털 표현과 관련될 수 있다. 채굴자들에 대한 암호화폐 및/또는 트랜잭션 수수료들의 지불은 단순히, 필요한 작업을 수행함으로써 블록체인의 유효성을 유지하기 위한 인센티브로서 작용할 수 있다. 블록체인과 연관된 암호화폐는 채굴자들에 대한 보안으로서 작용할지도 모르고, 블록체인 자체는 주로 암호화폐 이외의 디지털 자산과 관련된 트랜잭션들에 대한 원장이다. 일부 경우들에서, 참여자들 간의 암호화폐 이전이 트랜잭션들의 원장을 유지하기 위해 블록체인을 사용하는 엔티티와 상이하고 그리고/또는 그에 독립적인 엔티티에 의해 처리될지도 모른다.
일단 UTXO로서 블록체인에 저장되면, 사용자는 연관된 자원의 제어를 다른 트랜잭션의 입력과 연관된 다른 어드레스로 이전할 수 있다. 이러한 이전은 일반적으로, 디지털 지갑을 사용하여 행해지지만, 반드시 그럴 필요는 없다. 이 디지털 지갑은 디바이스; 물리적 매체; 프로그램; 데스크톱, 랩톱 또는 이동 단말과 같은 컴퓨팅 디바이스 상의 애플리케이션(앱); 또는 인터넷과 같은 네트워크 상의 도메인과 연관된 원격-호스팅 서비스일 수 있다. 디지털 지갑은 공개 및 개인 키들을 저장하고, 사용자와 연관된 자원들; 토큰들 및 자산들 등의 소유권을 추적하고; 디지털 자산들을 수신하거나 지출하고; 암호화폐들, 라이센스들, 재산 또는 다른 유형들의 자원과 같은 디지털 자산들과 관련될 수 있는 토큰들을 이전하는 데 사용될 수 있다.
암호화폐 구현의 사용을 위한 블록체인 기술이 가장 널리 알려져 있지만, 디지털 기업가들은 새로운 시스템을 구현하기 위해 블록체인 상에 저장될 수 있는 데이터 및 비트코인이 기초하고 있는 암호화 보안 시스템 둘 모두를 사용하는 방법을 모색하고 있다. 암호화폐 영역으로 제한되지 않는 자동화된 작업들 및 프로세스들을 위해 블록체인이 사용될 수 있는 경우가 매우 유리할 것이다. 이러한 솔루션은 블록체인의 이점들(예컨대, 이벤트들의 영구적인 위조-방지성 레코드들, 분산 프로세싱 등)을 활용하는 동시에 그의 애플리케이션들에서 더 다재다능해질 수 있을 것이다.
현재 연구의 한 영역은 "스마트 계약들"의 구현을 위한 블록체인의 사용이다. 이들은 기계-판독 가능 계약 또는 동의의 조건들의 실행을 자동화하도록 설계된 컴퓨터 프로그램들이다. 자연어로 기록되는 기존의 계약과 달리, 스마트 계약은 결과들을 생성하기 위해 입력들을 프로세싱할 수 있는 규칙들을 포함하는 기계 실행 가능 프로그램이며, 이는 그 후 그러한 결과들에 의존하여 액션들이 수행되게 할 수 있다. 블록체인-관련 다른 관심 영역은 '토큰들'(또는 '컬러드 코인(coloured coin)들')을 사용하여 블록체인을 통해 실세계 엔티티들을 표현 및 이전하는 것이다. 잠재적으로 민감성 또는 비밀 아이템은 어떠한 구별 가능한 의미 또는 가치도 갖지 않는 토큰으로 표현될 수 있다. 따라서 토큰은 실세계 아이템이 블록체인으로부터 참조될 수 있게 하는 식별자로서 역할을 한다.
위에서 언급된 예들 또는 시나리오들은 블록체인의 이점들을 이용하여 영구적이고 변조 방지된 이벤트 레코드들을 제공하면서; 예컨대, BSV(Bitcoin Satoshi's Vision) 블록체인에서 사용되는 ECDSA(Elliptic Curve Digital Signature Algorithm)에 대한 암호화 키들을 관리하는 소프트웨어 및/또는 하드웨어, 또는 프로세서/모듈 이를테면, 디지털 자산들을 관리하기 위한 기능성을 구현하기 위한 디지털 지갑을 포함하거나 구현하도록 클라이언트, 클라이언트 엔티티, 컴퓨팅 디바이스들 또는 클라이언트와 연관된 단말에 요구한다. 또한, 클라이언트 디바이스가 블록체인 트랜잭션 구조를 구현하고 BSV 라이브러리들에 대한 액세스를 가질 수 있도록 하는 요건이 있다. 따라서 클라이언트들은 이러한 기능성을 구현하기 위한 프로세싱을 포함할 필요가 있을 뿐만 아니라, 이들은 데이터 및/또는 디지털 자산들 ― 이들은 실세계 자산 트랜잭션을 표현하는 스마트 계약 또는 토큰과 관련이 있음 ― 을 전송, 수신 및 보기 위해 블록체인 네트워크를 사용하기 전에, 이러한 프로세스들에 대해 적절한 보안 조치들이 구현되는 것을 보장할 필요가 있다.
따라서, 계산적으로 정교하든 그렇지 않든 간에, 계산적 및 기능적으로 덜 부담되는, 간단하고 빠르고 정확하며 신뢰할 수 있고 안전한 방식으로, 임의의 클라이언트가 블록체인과 연관된 유용한 애플리케이션들에 즉각적으로 액세스하고 상호작용할 수 있도록 허용하는, 안전하고, 복잡성이 낮고, 사용자 친화적이고, 효율적이며 견고한 기술들을 구현하고자 하는 바람이 있다. 보다 구체적으로, 분산 원장(블록체인) 기술, 및 레코드들의 증가된 보안, 투명성 및 신뢰성의 이점들을 이용하여, 임의의 클라이언트 컴퓨팅 디바이스가, 클라이언트와 연관된 임의의 데이터, 이벤트 또는 디지털 자산이 즉각적으로 그리고 안전하게 채굴되거나 블록체인 내로 기록되고 그리하여 그에 관한 영구적이고, 변조 방지되며 감사 가능한 레코드 ― 이는 요구에 따라 생성되고, 기록되고, 업데이트되고, 판독되고 또는 볼 수 있음 ― 를 제공하도록 보장하는 것을 가능하게 하는 복수의 블록체인 관련 서비스들 또는 애플리케이션들을 위한 공통 플랫폼 또는 인터페이스를 제공하고자 하는 바람이 있다.
이러한 개선된 솔루션이 이제 창안되었다. 본 개시내용은 하나 이상의 기술들을 제안함으로써 위의 기술적 문제를 해결하고, 그에 의해, 클라이언트와 연관된 정보 또는 데이터가, 블록체인과 연관된 모든 이점들을 여전히 이용할 수 있으면서, 이러한 클라이언트가 블록체인을 사용하기 위한 임의의 프로세싱 또는 기능성을 구현할 필요 없이도 블록체인과 연관된 하나 이상의 서비스에 대한 API(application programming interface)를 제공하는 방법들, 디바이스들 및 시스템들에 의해, 간단하고 안전하며 즉각적으로, 블록체인 내로 기록되거나 블록체인으로부터 획득될 수 있다.
제1 양상에서, 본 개시내용은 서비스에 대한 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷으로 클라이언트 요청을 수신할 수 있는 API(application programming interface)와 연관된 플랫폼 프로세서를 사용하여; 블록체인과 연관된 복수의 서비스들을 제공하는 플랫폼을 구현하기 위한 방법들, 디바이스들 및 시스템들을 제안한다. 요청 및/또는 클라이언트의 아이덴티티의 적절한 검증에 더하여, 요청된 블록체인 서비스에 대한 목적지 어드레스 또는 엔드포인트가 결정되고, 출력 스크립트를 획득하기 위해 목적지 어드레스에 기초하여 적어도 하나의 블록체인 트랜잭션이 생성된다. 그 후 출력 스크립트에 기초한 결과는 HTTP 송신 프로토콜 포맷으로 주어진 클라이언트에 전송된다.
제2 양상에서, 본 개시내용은 블록체인을 이용하여 구현되는 이벤트 스트림(ES)과 관련되고 클라이언트로부터의 HTTP 요청에 기초하여 클라이언트에 대한 블록체인과 연관된 트랜잭션들에 대해, 데이터-기록 서비스를 구현하기 위한 방법들, 디바이스들 및 시스템들을 제안하며, 여기서 이벤트 스트림은 FSM(Finite State Machine)을 표현하거나 추적하는 데 사용될 수 있다. 예컨대, 이 FSM은 스마트 계약일 수 있다. 블록체인 상의 이벤트 스트림의 현재 상태(ESn)가 결정되고 이벤트 스트림(ES)에 대한 새로운 또는 다음 이벤트(En+1)가 수신된 요청에서 식별되고 이벤트 스트림(ES)에 대해 이전 트랜잭션(TX)으로부터의 트랜잭션 출력과 관련된 입력 및 새로운 이벤트(En+1)를 표현하는 이벤트 데이터와 연관된 미지출 출력(UTXO)을 포함하는 블록체인 트랜잭션을 생성함으로써 프로세싱된다. 블록체인에 제출되면, 블록체인 상의 이벤트 스트림의 현재 상태는 새로운 이벤트(En+1)에 기초하여 ESn+1로 업데이트된다. 결과는 현재 상태(ESn+1)와 연관되며, 이 결과는 HTTP 송신 프로토콜 포맷으로 제공된다.
본 명세서 전반에 걸쳐, 단어 "포함하다(comprise)", 또는 "포함하다(includes)", "포함하다(comprises)" 또는 "포함하는(comprising)"과 같은 변동들은 언급된 요소, 정수, 단계, 또는 요소들, 정수들, 단계들의 그룹을 포함하지만, 임의의 다른 요소, 정수, 단계, 또는 요소들, 정수들, 또는 단계들의 그룹의 배제를 의미하지 않는 것으로 이해될 것이다.
본 개시내용의 양상들 및 실시예들은 이제, 단지 예로서만 그리고 첨부 도면들을 참조하여 설명될 것이다.
도 1은 제1 양상에 따라, 블록체인과 연관된 복수의 서비스들을 위한 플랫폼의 개요를 도시하는 개략도이다.
도 2a는 제1 양상에 따라, 플랫폼과 연관된 하나 이상의 프로세서들에 의해 구현되는 바와 같은, 블록체인과 연관되는 복수의 서비스들의 플랫폼을 제공하기 위한 방법을 도시하는 흐름도이다.
도 2b는 제1 양상에 따라, 클라이언트와 연관된 하나 이상의 프로세서들에 의해 구현되는 바와 같은, 블록체인과 연관되는 복수의 서비스들의 플랫폼에 액세스하기 위한 방법을 도시하는 흐름도이다.
도 3은 제1 양상에 따라, 블록체인과 연관되는 복수의 서비스들의 플랫폼의 구성요소들을 도시하는 개략도이다.
도 4는 제2 양상에 따라, 플랫폼 서비스와 연관된 하나 이상의 프로세서들에 의해 구현되는 바와 같은, 블록체인과 연관된 트랜잭션들에 대한 데이터-기록 서비스를 구현하기 위한 방법을 도시하는 흐름도이다.
도 5는 본 개시내용의 다양한 양상들 및 실시예들이 구현될 수 있는 컴퓨팅 환경을 예시하는 개략도이다.
제1 양상에 따라, 본 개시내용은 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법을 제공하며, 플랫폼은 복수의 클라이언트들을 위해 제공되고, 방법은 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현된다.
유리하게는, 플랫폼 프로세서 API는 웹 기반 상호 작용 인터페이스를 허용하는데 즉, 일부 실시예들에서, 하나 이상의 클라이언트들에 대한 웹 서비스로 구현될 수 있어서, 웹-기반 서비스들에 대한 표준 인터넷 통신 프로토콜들을 사용하여 인터넷을 통해 통신이 발생할 수 있다. 예컨대, 일부 실시예들에서, 애플리케이션 레벨, 또는 클라이언트와 서버(이 경우, 플랫폼 서비스) 사이의 층 이를테면, HTTP, HTTPS 등의 HTTP 메시지들 또는 요청들이 이송 층 프로토콜 이를테면, TCP/IP 등에 기초하여 송신 및 수신될 수 있다. 본원에서 HTTP 송신 프로토콜들 또는 HTTP API에 대한 참조는 TCP/IP, UDP, HTTPS 등과 같은 모든 표준 인터넷 통신 프로토콜들을 또한 요약한다.
일부 실시예들에서, 플랫폼 프로세서는 HTTP API 엔드포인트로서 구현된다. 일부 실시예들에서, 플랫폼 프로세서는 REST(Representational State Transfer) 엔드포인트로서 구현된다. 유리하게는, API는 REST 엔드포인트로서 구현될 수 있고, 그리하여 클라이언트가 표준 인터넷 또는 웹 기반 프로토콜들 이를테면, HTTP 또는 HTTPS를 사용하여 통신하도록 허용한다.
제1 양상의 방법은 복수의 클라이언트들 중 주어진 클라이언트로부터, 요청을 수신하는 단계를 포함하고, 요청은 복수의 서비스들 중 주어진 서비스에 관한 것이고, 주어진 클라이언트로부터의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초한다. 그 후, 클라이언트 아이덴티티 및/또는 요청(들)이 유효하다는 결정에 기초하여, 방법은 주어진 서비스와 연관된 목적지 어드레스를 획득하는 단계를 포함한다. 일부 실시예들에서, 목적지 어드레스는 IP 어드레스 또는 네트워크 어드레스 엔드포인트일 수 있다. 예컨대, 이는 엔드포인트 URI(universal resource identifier)일 수 있고, 웹 서버의 URL(universal resource location)을 포함할 수 있으며, 이로부터, 요청된 서비스가 요청된 서비스에 대해 지불 프로세서 또는 하나 이상의 다른 엔티티들(클라이언트를 포함함)에 의해 액세스될 수 있다.
일부 실시예들에서, 이 목적지 어드레스는 플랫폼 API 엔드포인트와 동일한 엔드포인트일 수 있다. 이는 플랫폼이 메인 또는 코어 서비스의 것과 같은 요청된 서비스를 제공하는 경우에 해당할 수 있다. 다른 실시예들에서, 플랫폼에 의해 제공되는 다수의 상이한 유형들의 서비스들 ― 각각이 상이한 프로세서들 또는 웹서버들에 의해 구현됨 ― 이 있는 경우, 목적지 어드레스는 플랫폼 API와 상이할 수 있으며, 이 플랫폼 API는 플랫폼과 연관되는 웹서버들 및 다른 프로세서에 대한 호스트 서버로서 작용할 수 있다. 이 경우, 플랫폼 프로세서는, 각각이 블록체인 상에서 복수의 서비스들 중 주어진 서비스를 구현하도록 구성되고 각각이 개개의 프로세서에 고유한 특정 목적지 어드레스 또는 엔드포인트와 연관되는 복수의 프로세서들과 연관되거나 이들을 포함한다.
제1 양상의 방법은 출력 스크립트를 획득하기 위해 획득된 목적지 어드레스에 대응하는 적어도 하나의 블록체인 트랜잭션에 기초하여 주어진 서비스에 대한 요청을 프로세싱하는 단계를 더 포함한다. 일부 실시예들에서, 출력 스크립트는 요청된 서비스와 관련된 데이터와 연관되거나, 요청된 서비스의 결과는 UTXO에 포함되고 트랜잭션에 대한 이러한 데이터 또는 디지털 자산을 포함한다.
제1 양상에서, 출력 스크립트와 연관된 이 결과는 그 후 HTTP 또는 유사한 송신 프로토콜 포맷으로 주어진(요청하는) 클라이언트에 전송된다.
유리하게는, 본 개시내용의 제1 양상의 방법은, 하나 이상의 클라이언트들에 대한 API로서 제공되는 플랫폼을 구현함으로써, 클라이언트와 연관된 하나 이상의 프로세서들이 블록체인에 데이터를 기록하거나 그에 액세스하도록 플랫폼 프로세서에 의해 제공되는 웹 서비스를 사용하거나 가입(sign-up)하도록 허용한다. 플랫폼과 연관된 하나 이상의 프로세서들은 REST(Representational State Transfer) ― 이는 웹 서비스들 및 웹 기반 상호작용들을 개발하기 위한 아키텍처 스타일임 ― 와 같은(그러나 이에 제한되지 않음) 표준 기반 인터페이스 설계를 사용하여, 제공되고 있는 서비스들 중 하나 이상을 구현할 수 있다. REST API 맥락의 자원은 유형, 연관된 데이터, 다른 자원들에 대한 관계들 및 그 자원 상에서 동작하는 일 세트의 메서드(method)들을 갖는 오브젝트로서 정의될 수 있다. 따라서, 제1 양상의 플랫폼 프로세서에 의해 구현된 플랫폼 또는 서비스들은 유리하게는, 비트코인 SV(BSV) 블록체인과 같은 블록체인의 상태 또는 분산 원장에 액세스하고 애플리케이션 인터페이스를 통해 그 상태를 변경하고 이를 REST API로서 노출할 수 있는 동작들 또는 기능들을 트리거하기 위한 API 구현으로서 제공된다. 다시 말해, 플랫폼과 연관된 하나 이상의 서버들 또는 프로세서들은 이러한 서비스를 사용하기로 선택한 하나 이상의 클라이언트들에 대한 REST 엔드포인트로서 간주될 수 있다. 유리하게는, 클라이언트는 이에 따라 HTTP 또는 유사한 인터넷 커맨드들을 통해 플랫폼 서비스와 통신할 수 있다. 더 유리하게는, BSV, 비트코인, 블록체인 지식, ECDSA 또는 다른 암호화 키 관리 라이브러리들 또는 트랜잭션 구조 소프트웨어 이를테면, 디지털 지갑 소프트웨어 등은, 제공되는 서비스들 중 임의의 것에 대해 클라이언트에 의해 구현될 필요가 없다. 하나 이상의 프로세싱 자원들 또는 사용자 단말들을 사용하는 클라이언트는 클라이언트 신원(client identify)을 검증하기 위한 패스워드 보호 인가(password protection authorisation) 또는 표준 PKI(public key infrastructure)와 같은 일부 알려진 인증 기술들을 통해 플랫폼을 사용하도록 간단히 등록할 수 있다. 그 후, 클라이언트는 기본 HTTP 또는 이와 유사한 것을 통해 플랫폼 서비스와 간단히 통신할 수 있어야 한다.
일부 실시예들에서, 플랫폼을 통해 제공될 수 있는 블록체인과 연관된 서비스들의 일부 예들은 다음과 같다:
- 블록체인의 상태를 변경하기 위해 블록체인에 데이터를 기록/제출하기 위한 데이터 서비스들;
- 블록체인의 현재 상태를 반영하는 데이터를 판독/획득하기 위한 데이터 서비스들;
- 블록체인과 연관된 트랜잭션들에 대한 단순 지불 검증과 연관된 서비스들;
- 하나 이상의 이벤트 스트림들 및/또는 블록체인과 연관된 기계 판독 가능 계약들의 관리와 연관된 서비스들;
- 복수의 클라이언트들에 대한 디지털 지갑 프레임워크의 관리와 연관된 서비스들;
- 피어 투 피어 통신 채널들의 제공과 연관된 채널 서비스들;
- 데이터 저장과 연관된 저장 서비스들.
실시예들에서, 제1 양상의 플랫폼 프로세서와 연관된 다수의 프로세서들 또는 웹서버들이 있는 경우, 제1 양상의 방법은 HTTP 송신 프로토콜 포맷으로 클라이언트로부터 요청을 수신하는 단계, 수신된 요청을 RPC(Remote Procedure Call) 포맷으로 변환하는 단계, 및 수신된 요청에서 식별된 서비스를 구현하도록 구성된, 복수의 프로세서들 중 주어진 프로세서에 RPC 요청을 전송하는 단계를 수행하기 위한 API(application programming interface) 변환기를 제공하는 단계를 더 포함한다. 역방향 흐름 경로에서, 이 실시예는 RPC 포맷으로 주어진 프로세서로부터 연관된 응답을 수신하는 것, 그리고 HTTP 또는 유사한 송신 프로토콜을 사용하여 클라이언트에 전송될 개개의 응답을 변환하는 것을 포함한다.
이는, 클라이언트가 웹 서비스들에 대한 인터넷 프로토콜 통신 표준들을 사용하여 통신하지 않지만, 위에서 설명된 서비스들을 구현하는 노드들 또는 서버들 중 임의의 것과의 상호운용성(interoperability)을 원활하게 제공하고 웹-기반 플랫폼 API를 사용하여 간단한 HTTP를 통해 블록체인과 연관되는 요청들을 통신하도록 허용하기 때문에 유리하다. 이 실시예에서 구현된 API 변환기는 HTTPS로부터 RPC로 또는 그 반대로의 변환, 또는 그 점에 대해서, 다른 웹-기반 프로토콜들로부터, 위의 서비스들, 주어진 암호화폐에 대한 네트워크들, 또는 달리 구상될 수 있는 디지털 자산들 중 하나 이상을 구현하는 플랫폼 프로세서들에 의해 지원되는 대안적인 통신 프로토콜들로의 변환으로 제한되지 않는다. 역방향 흐름 경로에서, 제1 양상의 방법은 또한, 개개의 프로세서로부터의 대응하는 블록체인 트랜잭션과 연관된 응답들을 RPC 포맷으로 수신하고 클라이언트에 전송하기 위해 HTTP를 사용하여 개개의 응답들을 상응하게 변환하는 것을 포함한다. 따라서 유리하게는, 플랫폼 프로세서에 의해 제안된 인터페이스를 구현하는 것은 클라이언트들(수취인들) 및 채굴자들이 상이한 무선 데이터 통신 프로토콜들 및 메커니즘들을 사용할 때 블록체인에 트랜잭션들을 제출하기 위한 원활한 통신을 가능하게 한다.
제1 양상의 일부 실시예들에서, 클라이언트로부터의 수신된 요청은 위에서 언급된 바와 같이 플랫폼에 의해 제공되는 복수의 서비스들 중 요청된 주어진 서비스에 대한 서비스 식별자뿐만 아니라 주어진 클라이언트 특유의 클라이언트 식별자와 연관되거나 포함하는 HTTP GET 또는 HTTP POST 또는 HTTP PUT 또는 HTTP PATCH 요청이다. 일부 실시예들에서, 클라이언트에 전송된 결과는 클라이언트 식별자에 기초한 HTTP POST 요청이다.
일부 실시예들에서, 블록체인 트랜잭션들에 대한 클라이언트 어드레싱을 더 간단하게 만들기 위해, 하나 이상의 클라이언트들 엔티티들에 대해 복잡한 공개 어드레스 대신 기억하기 쉽고 더 사용자 친화적인 별칭(alias)이 사용되는 메커니즘들이 이미 존재한다. 이러한 솔루션은 둘 모두가 nChain Holdings Limited의 이름으로 US 특허 출원 번호 제16/384696호 및 UK 특허 출원 번호 제1907180.2호에서 제안된다. 이 문서들은 bsvalias 지불 서비스로서 지칭되는 별칭-기반 지불 서비스 및 연관된 프로토콜들을 제시하며, 여기서 별칭은 클라이언트 엔티티의 공개 어드레스 대신 목적지 어드레싱을 위해 사용된다. 이러한 시스템의 별칭은 일반적으로 전송/수신 클라이언트 엔티티의 도메인 이름과 연관되고 URI 또는 이메일 어드레스일 수 있다. 따라서 전송자 또는 엔티티가 별칭을 인식하거나 그에 별칭이 제공되는 한, 이는 bsvalias 지불 시스템 또는 별칭 기반 어드레싱 메커니즘에 대해 충분하다. 메시지들은 예컨대, bsvalias 또는 다른 지불 서비스를 위해 잘 알려진 URI 또는 로케이션에 저장된, JSON(JavaScript Object Notation) 문서와 같은 기계 판독 가능 자원에 제공된 명령들을 사용하여 클라이언트의 별칭에 전송될 수 있다. 본 개시내용의 일부 실시예들에서, 복수의 클라이언트들 중 하나 이상은 개개의 클라이언트를 식별하기 위해 위와 같은 별칭을 가질 수 있다.
관련 실시예들에서, 제1 양상의 방법은 클라이언트 식별자 및 클라이언트 식별자에 대응하는 레코드 ― 레코드는 플랫폼 프로세서와 연관됨 ― 에 기초하여 클라이언트를 유효성 검증하는 것을 포함한다. 예컨대, 이러한 레코드는 클라이언트 가입 또는 등록 시에 생성되고 플랫폼 프로세서와 연관되거나 그에 저장될 수 있다. 그 후, 클라이언트의 성공적인 유효성 검증에 기초하여, 방법은, 개개의 레코드에 포함된 서비스 식별자 및 속성 또는 세팅에 기초하여 클라이언트로부터의 수신된 요청이 유효한지를 결정하는 것을 포함한다. 일부 실시예들에서, 상기 속성 또는 세팅은 주어진 클라이언트가 요청된 서비스의 전부 또는 일부에 대한 액세스를 허용받았는지 여부를 표시할 수 있다. 예컨대, 클라이언트 식별자와 연관된 하나 이상의 허가 레벨들이 속성 또는 세팅에서 제공될 수 있다. 예컨대, 주어진 클라이언트는 특정 이벤트에 대해 블록체인 상에 있는 데이터를 판독하기 위한 서비스를 요청하도록 허용될 수 있지만 그러한 이벤트를 수정, 삭제 또는 종결하도록 허용되지 않을 수 있는 반면, 다른 클라이언트는 하나 이상의 서비스들과 관련된 모든 액션에 대한 허가를 가질 수 있다.
일부 실시예들에서, 주어진 클라이언트의 아이덴티티를 검증하는 단계는 클라이언트와 연관된 디지털 서명에 기초할 수 있다. 각각의 클라이언트와 연관된 개인 키 및 공개 키(또는 공개 어드레스)를 포함하는 암호화 키 쌍들은 서비스에 대해 이루어진 요청이 실제로 주어진 클라이언트로부터 기원한 것임을 검증하는 데 사용될 수 있는데, 즉, 개인 키에 의해 서명된 데이터는 대응하는 공개 키를 사용해서만 복원되거나 유효성 검증될 수 있다. 검증이 디지털 서명에 기초하는 경우 표준 PKI(public key infrastructure) 기술들이 사용되고 구현될 수 있다.
제1 양상의 일부 실시예들에서, 복수의 클라이언트들 중 주어진 클라이언트의 하나 이상의 프로세서들에 의해 구현되는 바와 같은 복수의 서비스들의 플랫폼에 액세스하기 위한 컴퓨터 구현 방법은, 플랫폼과 연관된 하나 이상의 프로세서들과 연관된 API(application programming interface) 엔드포인트를 획득하거나 식별하는 단계, 및 복수의 서비스들 중 주어진 서비스와 관련된 요청을 전송하는 단계를 포함하고, 요청은 주어진 클라이언트에 대한 클라이언트 식별자, 및 요청된 주어진 서비스에 대한 서비스 식별자를 포함하거나 그와 연관된다. 위에서 언급된 바와 같이, 요청은 HTTP(Hypertext Transfer Protocol) 또는 유사한 송신 프로토콜 포맷을 사용하여 전송된다. 방법은 또한 요청과 연관된 블록체인 트랜잭션의 출력 스크립트와 관련된 결과를 수신하는 것을 포함하며, 상기 결과는 HTTP 송신 프로토콜 포맷으로 클라이언트에 제공된다.
제2 양상에서, 본 개시내용은 블록체인과 연관된 트랜잭션들에 대해 데이터-기록 서비스를 구현하기 위한 컴퓨터 구현 방법을 제공하며, 이 방법은 클라이언트들이 블록체인에 데이터를 기록하기 위한 서비스에 액세스하는 것을 가능하게 하도록 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현된다. 제2 양상의 방법은 클라이언트로부터 요청을 수신하는 단계를 포함하고, 요청은 블록체인을 사용하여 구현되는 이벤트 스트림(ES)과 관련되고, 클라이언트로부터의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초한다. 일부 실시예들에서, 이벤트 스트림은 유한 수의 상태들을 갖는 시스템을 표현하고 하나의 스테이지로부터 다음 스테이지로 트랜지션을 위한 트랜지션 기능 또는 트리거 이벤트를 통해 주어진 시간에 단 하나의 상태에만 있을 수 있는, 잘 알려진 컴퓨팅 용어인 FSM(Finite State Machine) 이를테면, DFA(Deterministic Finite Automaton)을 표현하거나 이를 추적할 수 있다. 일부 실시예들에서, 이러한 이벤트 스트림은 기술적 프로세스의 제어 수단 또는 기술을 표현하는데 데 유용하다. 일부 실시예들에서, 이벤트 스트림은 블록체인 상의 기계 판독 가능 계약 또는 스마트 계약과 연관된 입력들, 상태들 및/또는 이벤트들을 표현하거나 추적할 수 있으며, 여기서 유리하게는, 계약의 과거 및 현재 상태의 변경 불가능한 레코드가 레코딩된다. 일부 실시예들에서, 클라이언트로부터 수신된 요청은 이벤트 스트림과 연관된 스마트 계약에서 상태 트랜지션이 일어나는 것을 가능하게 하도록 트리거 이벤트를 포함한다.
제2 양상의 방법은 이벤트 스트림의 현재 상태(ESi=n)를 결정하는 단계를 포함하며, 여기서 i는 0 내지 N의 정수이고, 각각의 정수 i는 이벤트 스트림(ES)의 주어진 상태를 표현하고, 여기서 i = 0은 생성된 이벤트 스트림(ES)을 표현하고, i = n은 블록체인에서 현재 상태의 이벤트 스트림(ES)을 표현하며, i = N은 이벤트 스트림(ES)의 최종 상태를 표현한다. 일부 실시예들에서, 현재 상태의 결정은 이벤트 스트림과 연관된 가장 최근 결과에 기초한 현재 상태의 표시일 수 있으며, 상기 결과는 이벤트 스트림에 대한 하나 이상의 별개의 오프-체인 저장 자원들에 또는 블록체인 상에 저장된다. 이는 이벤트 스트림과 연관된 앞선 또는 이전 블록체인 트랜잭션의 식별자에 기초할 수 있다. 이벤트 스트림에 대해 식별된 이전 상태가 없는 경우, 이는 현재 상태가 n = 0, 즉 새로운 이벤트 스트림이 생성될 것이라는 결정을 초래할 것이다. 일부 실시예들에서, 현재 상태는 또한 블록체인으로부터 리트리브(retrieve)되거나 판독될 수 있다. 이는 위에서 설명된 바와 같이 데이터 판독기에 의해 수행될 수 있으며, 이는 플랫폼 프로세서에 의해 제공되는 복수의 서비스들 중의 서비스일 수 있다.
제2 양상의 방법에서, 수신된 요청에 기초하여 이벤트 스트림(ES)에 대한 새로운 이벤트(En+1)를 프로세싱하는 단계는 블록체인 트랜잭션(TXn + 1)을 생성하는 단계를 포함하며, 블록체인 트랜잭션(TXn+1)은 이전 트랜잭션(TXn)으로부터의 트랜잭션 출력(TXOn)과 연관된 입력, 및 새로운 이벤트(En)를 표현하는 이벤트 데이터와 연관되는 미지출 출력(UTXOn+1)을 포함한다. 일부 실시예들에서, n = 0인 경우, 이전 출력을 지출하는 입력은 존재하지 않을 것이다. 그러나 이벤트 스트림(ES)과 연관된 디지털 자산들을 표현하는 다른 입력들이 있을 수 있다. 그 후, 방법은 트랜잭션(TXn+1)을 블록체인에 제출하는 것을 포함한다.
일단 제출되면, 이벤트 스트림의 현재 상태는 제출된 블록체인 트랜잭션에 기초하여 업데이트되는데, 즉, 상태는 ESi =n = ESn+1이 되도록 새롭게 생성된 이벤트 En+1에 기초하여 ESi =n+1이 되도록 업데이트될 것이다. 일부 실시예들에서, 업데이트된 상태는 이벤트 스트림 내 최신 트랜잭션의 미지출 출력인 UTXOn+1에 존재하는 데이터에 기초한다. 그 후, 방법은 이벤트 스트림의 업데이트된 현재 상태(ESn+1)에 기초한 결과를 전송하는 것을 포함하며, 이 결과는 HTTP 송신 프로토콜 포맷에 기초하여 제공된다.
본 개시내용의 제2 양상은 플랫폼 프로세서에 의해 구현된 데이터-기록 서비스의 구현을 논의하거나 즉, 구현은 스마트 계약의 상태들을 제어하는 것과 같이 실세계 프로세스와 연관된 데이터를 기록하는 기능성을 가능하게 한다. 제2 양상의 플랫폼 프로세서는 제1 양상에서 논의된 것과 연관되며, 여기서 제2 양상은 복수의 블록체인 서비스들 중 하나, 즉 블록체인에 데이터를 기록하여 그의 현재 상태를 변경하는 것에 대해 논의한다. 요청 및 응답이 플랫폼에 대한 API를 사용하여 수신 및 제공됨에 따라, 제2 양상은 제1 양상과 연관된 모든 이점들을 제공한다. 게다가, 데이터-기록 서비스는 유리하게는, 효과로부터 트리거들 또는 이벤트들을 간단히 추출함으로써 하나 이상의 클라이언트들이 블록체인-구현 스마트 계약의 상태의 트랜잭션을 인에이블하도록 허용한다. 따라서 스마트 계약의 다양한 스테이지들의 변경 불가능한 레코드는 제2 양상의 데이터 기록 서비스에 의해 제공될 수 있다.
본 개시내용의 양상들은 또한, 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스를 포함하며, 메모리는 프로세서에 의한 실행의 결과로서, 디바이스로 하여금 위에서 논의된 바와 같은 컴퓨터-구현 방법을 수행하게 하는 실행 가능한 명령들을 포함하고, 컴퓨팅 디바이스는 플랫폼 프로세서와 관련된다.
본 개시내용의 양상들은 또한, 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스를 포함하며, 메모리는 프로세서에 의한 실행의 결과로서, 디바이스로 하여금 위에서 논의된 바와 같은 컴퓨터-구현 방법을 수행하게 하는 실행 가능한 명령들을 포함하고, 컴퓨팅 디바이스는 클라이언트와 관련된다.
본 개시내용의 양상들은 또한 컴퓨터 시스템을 포함하며, 이는 무선 통신 네트워크를 통해 적어도 하나의 클라이언트에 통신 가능하게 커플링된 적어도 하나의 플랫폼 프로세서 ― 적어도 하나의 플랫폼 프로세서는 적어도 하나의 클라이언트로부터의 HTTP 요청들을 프로세싱하기 위한 API(application programming interface) 엔드포인트와 연관되고, 적어도 하나의 플랫폼 프로세서는 위에서 언급된 컴퓨팅 디바이스에 따라 구현됨 ― ; 및 위에서 언급된 클라이언트 컴퓨팅 디바이스에 따라 구현되는 적어도 하나의 클라이언트를 포함한다.
본 개시내용의 양상들은 또한 실행 가능한 명령들이 저장되어 있는 컴퓨터-판독 가능 저장 매체를 포함하며, 명령들은 컴퓨터의 프로세서에 의해 실행된 결과로서, 컴퓨터로 하여금 위에서 제시된 양상들 및 실시예들 중 임의의 것의 방법을 수행하게 한다.
일부 특정 실시예들은 이제, 유사한 참조 번호들이 유사한 특징들을 지칭하는 첨부 도면들을 참조하여 예시의 방식으로 설명된다.
제1 양상 ― 블록체인과 연관된 복수의 서비스들을 위한 플랫폼 API
제1 양상에 대해 위에서 설명된 복수의 서비스들을 제공하기 위한 플랫폼 프로세서는 유리하게는, BSV 블록체인과 같은 블록체인 네트워크를 사용하여 소프트웨어 제어 기술 시스템들 또는 스마트 계약들의 관리와 같은 유용한 실세계 비즈니스 및 기술 애플리케이션들의 신속한 전달을 가능하게 하는 PaaS(Platform as a Service) 및 SaaS(Software as a Service) 제안물일 수 있다. 플랫폼 서비스들의 개요는 시스템의 고레벨 개략도를 보여주는 도 1에서 볼 수 있다. 플랫폼 서비스들은, 서비스들이 하나 이상의 클라이언트들에 의해 액세스될 수 있게 하는 API(108)를 제공하는 플랫폼 프로세서(100)를 갖는다.
이 도면에 도시된 바와 같은 플랫폼 서비스들(100)은 3개의 서비스 패밀리들로 구성되며, 클라이언트 단부에서 어떠한 블록체인 기반 소프트웨어, 지식 또는 라이브러리들도 실제로 구현하지 않고도 사용자들 및 조직들이 블록체인의 고유한 속성들에 의해 제공되는 이점들을 쉽고 안전하게 이용할 수 있게 하는 것을 목표로 한다. 이러한 서비스는 다음과 같다:
- 상품 데이터 원장으로서 체인의 사용을 단순화하는 것을 목표로 하는 데이터 서비스(102).
- 비트코인 SV와 같은 디지털 자산에 의해 뒷받침되는 일반화된 컴퓨팅 프레임워크를 제공하는 것을 목표로 하는 컴퓨팅 서비스(104)
- 비트코인 SV와 같은 디지털 자산을 사용하여 트랜잭팅(transacting)하기 위한 엔터프라이즈-클래스 능력들을 제공하는 커머스 서비스들(106)
- 위의 코어 서비스들과 연관될 수 있는 부가적인 서비스들 이를테면, 단순 지불 검증(Simple Payment Verificationl; SPV) 기반 서비스들, 피어 투 피어 통신을 위한 채널 서비스들 및/또는 저장 서비스들.
위에서 언급된 바와 같이, API가 웹 서비스로 구현되기 때문에, API에서 클라이언트의 HTTPS 프로토콜을 통해 또는 HTTPS 프로토콜을 사용하여 요청들이 수신될 수 있다. 그 후, 요청된 서비스들은 기본 소프트웨어(110)를 사용하여 하나 이상의 서비스 모듈들 또는 프로세싱 자원들(102-106)에 의해 구현되며, 이러한 기본 소프트웨어(110)는 블록체인과 연관되는데, 즉 블록체인과 연관된 트랜잭션들을 생성, 프로세싱 및 제출하기 위한 자원들, 라이브러리들 및/또는 키-관리 지갑 구현들을 구현하기 위한 것이다. 일단 프로세싱되면, 트랜잭션들은 (클라이언트가 임의의 그러한 기능성 또는 트랜잭션 라이브러리들을 구현하는 대신에) 블록체인 네트워크(112)에 제출될 수 있다. 기껏해야, 클라이언트는 암호화폐 또는 일부 다른 디지털 자산과 연관된 디지털 지갑 등을 구현할 수 있지만, 플랫폼 서비스(100)가 또한 클라이언트를 위해 디지털 자산을 제공 및 관리할 수 있기 때문에 이것이 필수적인 것은 아니다.
도 2a는 본 개시내용의 제1 양상에 관한 것이며, 도 1에 도시된 플랫폼(100)과 같이 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법을 도시한다. 도 2a의 방법은 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현된다.
단계(202a)는 복수의 클라이언트들 중 주어진 클라이언트로부터 요청을 수신하는 것을 도시한다. 일부 실시예들에서, 클라이언트는 클라이언트와 연관된 하나 이상의 컴퓨팅 디바이스들, 자원들 또는 프로세서들일 수 있으며, 상기 클라이언트는 플랫폼 프로세서에 의해 제공되는 복수의 서비스들에 액세스하기 위해 등록 또는 가입되어 있다. 위에서 언급된 바와 같이, 플랫폼 프로세서는 각각이 비트코인 SV 블록체인과 같은 블록체인을 사용하여 구현되는 상이한 유형의 기능 또는 서비스를 제공하는 하나 이상의 프로세서들(이를테면, 도 1에서 보여지는 데이터, 컴퓨팅 및 커머스 서비스들을 위한 프로세서)일 수 있다. 단일 서비스에 대해 단 하나의 프로세서만 있는 것이 또한 가능하다. 플랫폼 프로세서가 플랫폼에 대한 URI와 같은 API 엔드포인트와 연관되기 때문에, 주어진 클라이언트의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷과 같은 표준 인터넷 프로토콜에 기초할 수 있다. 일부 실시예들에서, 요청은 클라이언트에 대한 식별자뿐만 아니라 요청된 서비스에 대한 식별자를 포함할 수 있다.
단계(204a)에서, 클라이언트가 플랫폼 프로세서 및 그것에 의해 제공되는 기능성을 사용하도록 등록된 유효 클라이언트인지를 확인하기 위해 클라이언트의 아이덴티티가 체크될 수 있다. 일부 실시예들에서, 이는 패스워드 보호 로그인 인증 등과 같은 알려진 인증 방법들에 기초할 수 있다. 이 경우에, 요청에 포함된 클라이언트 식별자 또는 별칭, 및 패스워드에 기초하여, 주어진 클라이언트에 대한 레코드가 생성될 수 있다. 유효성 검증은 API에서 수신된 패스워드가 레코드 내 패스워드와 매칭되는 것에 기초할 수 있다. 다른 실시예들에서, 암호화 개인/공개 키 쌍들에 기초하는 표준 PKI 기술들은 단계(202a)에서 클라이언트로부터 수신된 요청에 존재하는 디지털 서명을 유효성 검증하는 데 사용될 수 있다. 이 경우에, 클라이언트의 아이덴티티는 개인 키에 의해 서명된 요청이 공개 키를 사용하여 성공적으로 복원되거나 유효성 검증될 수 있는지를 체크함으로써 검증될 수 있다.
클라이언트 아이덴티티가 검증될 수 없거나 검증이 실패하는 경우, 단계(206a)에서, 요청은 더 이상 추가로 프로세싱되지 않는다.
클라이언트가 성공적으로 유효성 검증되는 경우, 단계(208a)에서, 단계(202a)에서 서비스에 대한 요청의 유효성이 체크된다. 이 단계는 주어진 클라이언트가 실제로 요청된 서비스를 이용 가능하도록 인가받았음을 보장하기 위한 것이다. 이에 대한 허가 또는 속성들은 개개의 클라이언트에 제공될 수 있거나 제공되지 않을 수 있는 액세스 레벨들 또는 서비스의 하나 이상의 유형들을 표시하기 위해 클라이언트에 대한 레코드에 존재할 수 있다.
요청이 요청 클라이언트에 대해 허용되지 않거나 유효하지 않은 것으로 밝혀지는 경우, 단계(210a)에서 요청이 더 이상 추가로 프로세싱되지 않는다.
위에서 제시된 클라이언트 및/또는 서비스를 유효성 검증하는 실시예들이 유용할지라도, 제1 양상의 동작을 위해 필수적인 것은 아니라는 것이 이해될 것이다. 일부 경우들에서, 단계들(204a 또는 208a)의 유효성 검증만이 수행될 수 있다. 일부 경우들에서, 어떠한 유효성 검사도 수행되지 않는다. 이 경우에, 임의의 클라이언트는 등록되었든 안되었든 간에, 이러한 액세스에 대한 적절한 지불 시에 서비스 또는 플랫폼을 사용할 수 있다.
단계(212a)에서, 목적지 어드레스 ― 이는 단계(202a)에서 요청된 서비스를 구현하는 것을 담당하는 서버 또는 프로세서에 대한 엔드포인트 URI일 수 있음 ― 가 획득된다. 일부 실시예들에서, 복수의 플랫폼 프로세서들이 있는 경우, 호스트 서버 또는 플랫폼 API는 식별된 서비스를 구현하도록 구성된 프로세서와 연관된 목적지 어드레스로 전송되도록, 수신된 요청을 RPC(Remote Procedure Call) 포맷으로 변환할 수 있다.
단계(214a)에서, 요청된 서비스는 그것을 담당하는 개개의 플랫폼 프로세서에 의해 프로세싱된다. 블록체인 트랜잭션은 담당 프로세서의 목적지 어드레스/엔드포인트에 기초하여 플랫폼 프로세서에 의해 획득되거나 판독되거나 생성되고, 이 트랜잭션에 대한 출력 스크립트가 획득된다. 도 2a가 이 단계에서 블록체인 트랜잭션을 생성하는 것을 지칭하지만, 본 개시내용의 제1 양상이 그러한 것으로 제한되지 않는다는 것이 이해될 것이다. 단계(202a)의 요청이 블록체인으로부터 데이터를 판독하거나 가져오는 것인 경우, 트랜잭션이 생성되지 않을 수 있고 데이터가 단순히 블록체인으로부터 판독되거나 획득될 수 있다. 생성된 블록체인 트랜잭션들 중 하나 이상에 대해 복수의 블록체인 트랜잭션들 또는 다수의 출력 스크립트들이 있을 수 있다.
단계(216a)에서, 출력 스크립트들은 결과로서 데이터 출력들을 포함할 수 있거나(예컨대, 데이터 캐리어 UTXO가 있을 수 있음), 결과는 트랜잭션 식별자들 또는 트랜잭션의 나머지 출력들에 기초하여 획득될 수 있다. 결과가 획득될 수 있는 트랜잭션들과 관련된 지출 불가능한 OP-RETURN 출력이 또한 있을 수 있다.
단계(218a)에서, 출력 스크립트와 연관된 결과는 HTTP 또는 유사한 송신 프로토콜 포맷으로 주어진 클라이언트에 제공된다. 일부 실시예들에서, 서비스에 대한 담당 프로세서가 호스트 플랫폼 API에 원격으로 로케이팅되는 경우, 플랫폼 프로세서는 RPC 포맷으로 담당 프로세서로부터 블록체인 트랜잭션(들)과 연관된 응답을 수신한다. 그 후, API 변환기는 이를 클라이언트에 전송하기 전에 HTTP 포맷에 기초하여 전송될 수 있는 메시지로 이를 변환한다. 위에서 언급된 바와 같이, 클라이언트가 bsvalias와 같은 별칭 어드레싱 서비스를 사용한 경우, 결과는 bsvalias 기계 판독 가능 자원에 의해 지시되는 포맷으로, 클라이언트에 대한 별칭으로 어드레스싱된 HTTP 메시지로 전송된다.
도 2b는 본 개시내용의 제1 양상에 관한 것이며, 도 1에 도시된 플랫폼(100)과 같이 블록체인과 연관된 복수의 서비스들의 플랫폼에 액세스하기 위한 컴퓨터 구현 방법을 도시한다. 도 2b의 방법은 클라이언트와 연관된 하나 이상의 프로세서들에 의해 구현된다.
단계(202b)에서, 플랫폼과 연관된 API(application programming interface) 엔드포인트가 식별된다. 이전에 언급된 바와 같이, 이는 호스트 플랫폼 프로세서와 연관된 API일 수 있으며 서비스의 구현을 담당하는 하나 이상의 추가 프로세서들 ― 각각은 자체 서비스 엔드포인트 또는 목적지 어드레스를 가짐 ― 이 있을 수 있다.
단계(204b)에서, 클라이언트는 도 1의 데이터 기록 서비스(102)와 같은 서비스에 대한 요청을 준비한다. 일부 실시예들에서 클라이언트는 올바른 서비스 엔드포인트로 라우팅될 수 있도록 요청에 클라이언트 별칭 또는 식별자 및/또는 서비스 식별자를 포함시킨다. 이는 요청 클라이언트의 유효성 및 요청된 서비스를 사용하기 위한 클라이언트의 허가에 관한 플랫폼 프로세서에 의한 체크들에 대해 유용하다.
단계(206b)에서, 단계(204b)에서 준비된 요청은, 플랫폼 프로세서가 HTTP(Hypertext Transfer Protocol) 또는 REST API로서 구현되기 때문에 HTTP 또는 유사한 송신 프로토콜 포맷을 사용하여 전송된다.
단계(208b)에서, 요청과 연관된 블록체인 트랜잭션의 출력 스크립트에 관련된 결과는 플랫폼 프로세서로부터 제공된다. 이 결과는 HTTP 송신 프로토콜 포맷으로 클라이언트에 제공된다.
유리하게는, 제1 양상의 방법들의 경우, 블록체인 기반 서비스들에 대한 요청은 HTTP 송신 프로토콜 포맷으로 클라이언트에 의해 전송 및 수신되고, 이에 따라 클라이언트는 어떠한 트랜잭션 능력 또는 블록체인 라이브러리들도 구현해야 할 필요 없이, 클라이언트는 블록체인 고유의 모든 이점들 및 서비스들 사용할 수 있다. 이는 서비스가 HTTP 또는 REST API 엔드포인트일 수 있는 플랫폼 API를 통해 제공되기 때문이다. 예컨대, REST API 설계 표준들은 인터넷을 통해 다음 HTTP 커맨드들을 사용하여 HTTP 요청들 및 통신을 프로세싱할 수 있다 ― 그리고 이는 클라이언트에 의해 요구되는, 즉 인터넷을 통해 메시지들을 전송 및 수신할 수 있게 되는데 요구되는 모든 기능성임 ― . 플랫폼 프로세서(들)는 원격으로 또는 클라이언트에 대해 별개로 커맨드들을 구현한다.
Figure pct00001
도 3은 제공된 서비스들 중 임의의 하나 이상이 액세스될 수 있게 하는 API와 연관된 플랫폼(300)에 의해 구현될 수 있고 블록체인과 연관된 복수의 서비스들의 보다 세분화된 개략도를 제공한다. 이 도면에서 보여지는 바와 같이, 데이터 서비스(302)는 데이터 기록기(302a) 및 데이터 판독기 서비스(302b)를 포함할 수 있다. 데이터 기록기 서비스(302a)를 사용한 이벤트 스트림들의 구현은 클라이언트들이 간단하고 안전하며 최적화된 방식으로 데이터를 블록체인에 기록하는 것을 가능하게 하도록 도면에서 자세히 설명될 것이다. 데이터 판독기 서비스(302b)는 클라이언트들이 블록체인에 저장된 데이터를 리턴하는 질의들을 전송하는 것을 가능하게 한다. 이는 클라이언트가 애드 혹(ad hoc) 또는 주기적 기반으로 즉, 특정 시간프레임 내에 블록체인으로부터 판독하고자 하는 데이터의 유형 또는 블록체인(310)에서 프로세싱되는 일 세트의 관련되거나 관련되지 않은 이벤트들 또는 문서들과 연관된 것들을 미리 정의할 수 있는 필터링된 스트림들을 사용할 수 있다. 데이터 아카이브 특징은 지정된 이벤트 또는 계약에 대한 이전 트랜잭션의 로그들에 대한 액세스를 허용한다.
플랫폼(300)의 컴퓨팅 서비스들(306)은 스마트 계약과 연관된 애플리케이션(306a) 및 프레임워크(306b)를 포함하며, 이는 일부 실시예들에서, 블록체인(310)에서 상태 머신으로서 표현될 수 있다. 예를 들어, 컴퓨팅 서비스들은 플랫폼 서비스들과 연관된 클라이언트를 위해 블록체인과 연관된 스마트 계약들을 관리할 수 있다. 컴퓨팅 서비스들(306)은, 데이터가 입력되고 임의의 그러한 컴퓨테이션에 대한 결과들이 클라이언트에 제공될 필요가 있기 때문에, 데이터 서비스(302)와 상호작용한다.
커머스 서비스들(304)은 동급 최상의 보안 관행들 및 기술들에 기초하여 블록체인(310)을 통한 트랜잭션을 위해 엔터프라이즈 지갑들(304a)을 통해 엔터프라이즈-클래스 능력들(enterprise-class capabilities)의 제공을 담당한다. 예컨대, 일부 실시예들에서, 엔터프라이즈 지갑들은 하나 초과의 사람 또는 사용자 또는 계정이 정의된 기준을 충족하는, 즉 특정한 미리 정의된 제한을 초과하는 큰 값의 암호화폐와 연관된 트랜잭션에 서명(sign off)할 필요가 있을 때 블록체인 트랜잭션 프로세싱을 가능하게 하는 기능성을 구현할 수 있다. 엔터프라이즈 지갑은 또한 암호화폐 또는 다른 자원을 표현하는 토큰들과 같은 대량의 디지털 자산들을 이동시키기 위해 임계 수 및/또는 유형의 서명들을 구현하는 기능성을 또한 포함할 수 있다. 그 후 이러한 자산들의 움직임은 이러한 엔터프라이즈 지갑 구현에 의해 적용된 기준들에 기초하여 프로세싱된 후 블록체인 상에 표현될 수 있다.
SPV(simplified payment verification) 서비스들(308)은 블록체인으로부터의 정보를 요구하지만 채굴자 노드를 실행하지 않기 때문에 블록체인에 대한 직접 링크를 포함하지 않는 애플리케이션들이다. 이러한 SPV 서비스(308)는 경량 클라이언트가, 전체 블록체인(310)을 다운로드하지 않고도 트랜잭션이 블록체인에 포함되었음을 검증하도록 허용한다. 이는 관찰자가 트랜잭션 검증을 위한 SPV(simple payment verification)와 연관된 API와 같은 상이한 API를 사용하여 이벤트 스트림의 버전(제2 양상에서 아래에서 논의됨)을 수신할 수 있는 경우에 유리할 수 있다. 이 구성에서, 플랫폼 서비스는 SPV 서버로서 작용할 수 있으며, 검증을 위해 이벤트 스트림의 버전, 즉 복제본들을 수신하는 관찰자는 SPV 클라이언트일 수 있다. 따라서 SPV 서비스들(308)은 확장성 및 효율성을 개선할 뿐만 아니라, 네트워크의 복잡성을 감소시킬 수 있다. 채널들의 사용(아래의 채널 서비스들 참조)과 함께, 피어들 간의 데이터의 전달 및 검증이 크게 개선될 수 있다.
본 개시내용은 또한 하나 이상의 클라이언트들에 대한 채널 서비스를 구현하기 위한 컴퓨터 구현 방법에 관한 것으로, 이 방법은 채널 프로세서에 의해 구현되고, 방법은, 하나 이상의 클라이언트들 중 주어진 클라이언트로부터 요청을 수신하는 단계 ― 요청은 채널의 생성과 관련됨 ― ; 및 채널을 통해 주어진 클라이언트와 다른 엔티티 간의 직접 통신을 가능하게 하는 하나 이상의 기능들에 대한 액세스를 주어진 클라이언트에 제공하는 단계를 포함한다. 채널 서비스는 플랫폼(300) 내에서 별개의 서비스로서 또는 SPV 서비스들(308)과 함께 제공될 수 있다. 방법은, 주어진 클라이언트에 대해 채널과 연관된 하나 이상의 알림들을 저장 및/또는 제공하는 단계를 포함한다.
유리하게는, 채널들의 사용은 클라이언트들이 블록체인에 대한 어떠한 프로세싱 또는 기능성을 구현할 필요 없이, 채널 또는 메시징 서비스에 대한 인터페이스 또는 기능들을 제공하면서 여전히 이와 연관된 모든 이점들을 이용할 수 있는 방법들, 디바이스들 및 시스템들에 의해, 이러한 클라이언트들에 대한 직접 또는 피어-투-피어 통신을 가능하게 한다.
채널 서비스는 별개의 채널 프로세서에 의해 제공될 수 있거나, 위에서 언급된 플랫폼 및 또는 플랫폼 프로세서에 의해 제공될 수 있거나, 또는 클라이언트와 통합될 수 있거나, 또는 클라이언트 및/또는 플랫폼과 별개로/독립적으로 구현될 수 있다. 채널들은 예컨대, 검증을 위해 요구될 수 있는 메시지들 또는 데이터의 전달을 위해 엔티티들 간의 직접 또는 피어 투 피어 통신 경로들 또는 세션들을 가능하게 한다. 채널 서비스 및/또는 채널 프로세서의 예는 nChain Holdings Limited의 이름으로 출원되고, 그의 청구 대상이 인용에 의해 본원에 포함되는 영국 특허 출원 번호 제2007597.4호에서 상세히 설명된다.
위의 것 외에도, 저장 서비스들이 또한 플랫폼(300)을 통해 제공될 수 있다. 일부 실시예들에서, 플랫폼과 연관된 임의의 기본 데이터는 선택적으로 플랫폼 서비스의 클라이언트들을 위해 제공되는 별개의 및/또는 지오-펜스(geo-fenced) 저장 옵션에 저장될 수 있다. 이는 플랫폼과 연관된 임의의 블록체인 트랜잭션의 검증을 위해 또는 클라이언트와 연관되거나 스마트 계약과 관련된 데이터의 안전한 리트리벌을 위해 요구되는 데이터를 저장하는 데 사용될 수 있다. 지오-펜스 데이터 저장은 유리하게는, 데이터가 현지 법률(예컨대, GDPR)에 따라 보유될 수 있도록 보장하고, 이에 따라 플랫폼/플랫폼(300)에 대한 서비스 제공자가 저장소에 보유된 데이터에 대해 일부 법적 또는 다른 책임(accountability)을 갖는 것을 가능하게 한다.
제2 양상 ― 블록체인과 연관된 데이터 기록 서비스를 제공하는 플랫폼
도 4는 본 개시내용의 제2 양상에 관한 것이고, 제1 양상의 도 3에 도시된 데이터 기록기(302a)와 같이 블록체인과 연관되는 트랜잭션들에 대한 데이터 기록 서비스를 제공하기 위한 컴퓨터 구현 방법을 도시한다. 도 3의 방법은 서비스를 위한 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현된다.
단계(402)는 클라이언트로부터 요청을 수신하는 것을 도시하며, 요청은 블록체인을 사용하여 구현된 이벤트 스트림(ES)에 관련된다. 클라이언트의 요청은 제1 양상과 마찬가지로 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷이다. 일부 실시예들에서, 이벤트 스트림은 상태 머신과 관련되고, 블록체인에서 유한 상태 머신으로서 구현되는 기계 판독 가능 계약 또는 스마트 계약을 표현한다. FSM(Finite State Machine)은 잘 알려진 수학적 컴퓨테이션 모델이다. 이는 임의의 주어진 시간에 유한한 수의 상태들 중 정확히 하나에 있을 수 있는 추상적 머신이다. FSM은 일부 외부 입력들에 대한 응답으로 한 상태로부터 다른 상태로 변할 수 있으며, 한 상태에서 다른 상태로의 변화는 트랜지션(transition)이라 불린다. FSM은 그의 상태들의 목록, 그의 초기 상태 및 각각의 트랜지션에 대한 조건들에 의해 정의될 수 있다. 비트코인 SV 블록체인에서, UTXO 세트는 상태 머신으로 간주될 수 있으며 주어진 출력의 지출 상태는 트랜잭션(머신)에 대한 이전 입력들의 함수이다. 따라서, 모든 트랜잭션을 재생함으로써, 임의의 출력의 현재 지출 상태 및 UTXO 세트의 현재 콘텐츠들은 블록체인을 사용하여 결정론적으로 설정될 수 있다. 따라서, 도 4의 실시예에서, 요청은 블록체인에서 이벤트 스트림(ES)으로서 구현되는, 스마트 계약의 현재 상태를 변경하기 위한 요청으로서 간주될 수 있다.
단계(404)는 데이터 기록기 또는 데이터 기록 서비스를 구현하기 위한 플랫폼 프로세서에 의해 이벤트 스트림의 현재 상태(ESi =n)를 결정하는 것을 도시한다. i는 0 내지 N의 정수이며, 각각의 정수 i는 유한 수의 상태들을 갖는 이벤트 스트림(ES)의 주어진 상태를 표현하며, 여기서 i = 0은 생성된 이벤트 스트림(ES)을 표현하고, i = n은 블록체인 내 현재 상태의 이벤트 스트림(ES)을 표현하고, i = N은 이벤트 스트림(ES)의 최종 상태를 표현한다. 따라서 이벤트 스트림(ES)의 현재 상태는 En가 될 것이다.
단계(406)는 단계(402)에서 수신된 요청에 기초하여 이벤트 스트림(ES)에 대한 다음 또는 새로운 이벤트(En+1)와 연관된 데이터를 식별하거나 획득하는 것을 도시한다. 이 실시예에서, 새로운 이벤트는 이벤트 스트림이 다음 상태로 트랜지션하도록 상태의 변경을 트리거하는 데이터 또는 함수일 수 있다.
단계(408)는 데이터 기록기를 구현하는 플랫폼 프로세서와 연관된 하나 이상의 프로세서들에 의해 다음 이벤트(En+1)에 대한 블록체인 트랜잭션(TXn+1)을 생성하는 단계를 도시한다. 블록체인 트랜잭션(TXn+1)은 적어도, 다음을 포함한다:
- 이전 트랜잭션(TXn)으로부터의 트랜잭션 출력(TXOn)과 연관된 입력. 이 입력은 이전 트랜잭션으로부터의 TXOn 출력을 지출한다.
- 새로운 이벤트(En+1)를 표현하는 이벤트 데이터와 연관된 미지출 출력(UTXOn+1). 일부 실시예들에서, 이것은 데이터 출력, 즉 트랜잭션의 데이터 캐리어 요소를 표현한다.
네트워크 채굴 수수료들을 적절하게 커버하기 위한 자금 입력들과 같은 부가적인 입력들이 있을 수 있고, 트랜잭션에 대한 변화 출력들과 같은 다른 출력들이 또한 있을 수 있다.
단계(410)는 단계(408)에서 생성된 트랜잭션(TXn+1)을 블록체인에 제출하는 것을 도시한다. 여기서 트랜잭션은 플랫폼 프로세서와 연관된 채굴자 노드 또는 BSV 노드 소프트웨어에 의해 후속 블록에의 포함을 위해 비트코인 SV 네트워크와 같은 블록체인에 제출될 수 있다.
단계(412)는 ESi=n = ESn+1이 되도록, 이벤트 스트림(ES)의 현재 상태를 새롭게 생성된 이벤트(En+1)에 기초하여 이제 ESi=n+1이 되도록 업데이트하는 것을 도시한다. 이는 ES에 대한 블록체인에 제출된 최신 트랜잭션(TXn+1)에 대응한다. 일부 실시예들에서, 새로운 상태는 최종 트랜잭션 출력(UTXOn+1)에서 출력된 이벤트 데이터에 기초하여 식별되고 업데이트된다.
단계(414)는 단계(412)에서의 업데이트된 현재 상태(ESn+1)에 기초한 결과를 전송하는 것을 도시하며, 이 결과는 HTTP 송신 프로토콜 포맷에 기초하여 클라이언트에 제공된다.
이제 도 5를 참조하면, 본 개시내용의 적어도 하나의 실시예를 실행하는 데 사용될 수 있는 컴퓨팅 디바이스(2600)의 예시적이고 단순화된 블록도가 제공된다. 다양한 실시예들에서, 컴퓨팅 디바이스(2600)는 위에서 예시되고 설명된 시스템들 중 임의의 것을 구현하는 데 사용될 수 있다. 예컨대, 컴퓨팅 디바이스(2600)는 도면의 DBMS의 하나 이상의 구성요소들로서 사용되도록 구성될 수 있거나, 컴퓨팅 디바이스(2600)는 주어진 사용자와 연관된 클라이언트 엔티티가 되도록 구성될 수 있으며, 클라이언트 엔티티는 도 5의 DBMS에 의해 관리되는 데이터베이스에 대한 데이터베이스 요청들을 행한다. 따라서 컴퓨팅 디바이스(2600)는 휴대용 컴퓨팅 디바이스, 개인용 컴퓨터 또는 임의의 전자 컴퓨팅 디바이스일 수 있다. 도 5에 도시된 바와 같이, 컴퓨팅 디바이스(2600)는 하나 이상의 레벨들의 캐시 메모리 및 메인 메모리(2608) 및 영구 저장소(2610)를 포함하는 저장 서브시스템(2606)과 통신하도록 구성될 수 있는 메모리 제어기를 갖는 하나 이상의 프로세서들(집합적으로 2602로 라벨링됨)을 포함할 수 있다. 메인 메모리(2608)는 도시된 바와 같이 동적 랜덤 액세스 메모리(DRAM)(2618) 및 판독 전용 메모리(ROM)(2620)를 포함할 수 있다. 저장 서브시스템(2606) 및 캐시 메모리(2602)는 본 개시내용에서 설명된 바와 같이 트랜잭션들 및 블록들과 연관된 세부사항들과 같은 정보의 저장을 위해 사용될 수 있다. 프로세서(들)(2602)는 본 개시내용에서 설명된 바와 같은 임의의 실시예의 기능성 또는 단계들을 제공하기 위해 활용될 수 있다.
프로세서(들)(2602)는 또한 하나 이상의 사용자 인터페이스 입력 디바이스들(2612), 하나 이상의 사용자 인터페이스 출력 디바이스들(2614) 및 네트워크 인터페이스 서브시스템(2616)과 통신할 수 있다.
버스 서브시스템(2604)은 컴퓨팅 디바이스(2600)의 다양한 구성요소들 및 서브시스템들이 의도된 대로 서로 통신하는 것을 가능하게 하기 위한 메커니즘을 제공할 수 있다. 버스 서브시스템(2604)이 단일 버스로서 개략적으로 도시되지만, 버스 서브시스템의 대안적인 실시예들은 다수의 버스들을 활용할 수 있다.
네트워크 인터페이스 서브시스템(2616)은 다른 컴퓨팅 디바이스들 및 네트워크들에 대한 인터페이스를 제공할 수 있다. 네트워크 인터페이스 서브시스템(2616)은 다른 시스템들로부터 컴퓨팅 디바이스(2600)로 데이터를 수신하고 컴퓨팅 디바이스(2600)로부터 다른 시스템들로 데이터를 송신하기 위한 인터페이스 역할을 할 수 있다. 예컨대, 네트워크 인터페이스 서브시스템(2616)은 데이터 기술자(data technician)가 디바이스를 네트워크에 연결하는 것을 가능하게 할 수 있어서, 데이터 기술자는 데이터 센터와 같은 원격 위치에 있으면서 디바이스로 데이터를 송신하고 디바이스로부터 데이터를 수신할 수 있을 수 있다.
사용자 인터페이스 입력 디바이스들(2612)은 하나 이상의 사용자 입력 디바이스들 이를테면, 키보드; 통합 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿과 같은 포인팅 디바이스; 스캐너; 바코드 스캐너; 디스플레이에 통합된 터치스크린; 음성 인식 시스템들, 마이크로폰들과 같은 오디오 입력 디바이스들; 및 다른 유형들의 입력 디바이스들을 포함할 수 있다. 일반적으로, "입력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)에 정보를 입력하기 위한 모든 가능한 유형들의 디바이스들 및 메커니즘들을 포함하도록 의도된다.
하나 이상의 사용자 인터페이스 출력 디바이스들(2614)은 디스플레이 서브시스템, 프린터, 또는 비-시각적 디스플레이 이를테면, 오디오 출력 디바이스 등을 포함할 수 있다. 디스플레이 서브시스템은 음극선관(CRT), 평면 패널 디바이스 이를테면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 또는 프로젝션 또는 다른 디스플레이 디바이스일 수 있다. 일반적으로, "출력 디바이스"라는 용어의 사용은 컴퓨팅 디바이스(2600)로부터 정보를 출력하기 위한 모든 가능한 유형들의 디바이스들 및 메커니즘들을 포함하도록 의도된다. 하나 이상의 사용자 인터페이스 출력 디바이스들(2614)은, 예컨대, 설명된 프로세스들 및 변형들을 내부에서 수행하는 애플리케이션과의 사용자 상호작용이 적절할 수 있을 때 그러한 상호작용을 용이하게 하기 위한 사용자 인터페이스를 제시하는 데 사용될 수 있다.
저장 서브시스템(2606)은 본 개시내용의 적어도 하나의 실시예의 기능성을 제공할 수 있는 기본 프로그래밍 및 데이터 구조들을 저장하기 위한 컴퓨터-판독 가능 저장 매체를 제공할 수 있다. 하나 이상의 프로세서들에 의해 실행될 때, 애플리케이션들(프로그램들, 코드 모듈들, 명령들)은 본 개시내용의 하나 이상의 실시예들의 기능성을 제공할 수 있고, 저장 서브시스템(2606)에 저장될 수 있다. 이러한 애플리케이션 모듈들 또는 명령들은 하나 이상의 프로세서들(2602)에 의해 실행될 수 있다. 저장 서브시스템(2606)은 본 개시내용에 따라 사용되는 데이터를 저장하기 위한 저장소를 부가적으로 제공할 수 있다. 예컨대, 메인 메모리(2608) 및 캐시 메모리(2602)는 프로그램 및 데이터를 위한 휘발성 저장소를 제공할 수 있다. 영구 저장소(2610)는 프로그램 및 데이터를 위한 영구(비-휘발성) 저장소를 제공할 수 있으며, 플래시 메모리, 하나 이상의 솔리드 스테이트 드라이브들, 하나 이상의 자기 하드 디스크 드라이브들, 연관된 이동식 매체들을 갖는 하나 이상의 플로피 디스크 드라이브들, 연관된 이동식 매체들을 갖는 하나 이상의 광학 드라이브들(예컨대, CD-ROM 또는 DVD 또는 블루레이 드라이브) 및 다른 유사한 저장 매체들을 포함할 수 있다. 이러한 프로그램 및 데이터는 본 개시내용에 설명된 바와 같은 트랜잭션들 및 블록들과 연관된 데이터뿐만 아니라 본 개시내용에 설명된 바와 같은 하나 이상의 실시예들의 단계들을 수행하기 위한 프로그램들을 포함할 수 있다.
컴퓨팅 디바이스(2600)는 휴대용 컴퓨터 디바이스, 태블릿 컴퓨터, 워크스테이션, 또는 아래에서 설명되는 임의의 다른 디바이스를 포함하는 다양한 유형들로 이루어질 수 있다. 부가적으로, 컴퓨팅 디바이스(2600)는 하나 이상의 포트들(예컨대, USB, 헤드폰 잭, 라이트닝 커넥터 등)을 통해 컴퓨팅 디바이스(2600)에 연결될 수 있는 다른 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(2600)에 연결될 수 있는 디바이스는 광섬유 커넥터들을 수용하도록 구성된 복수의 포트들을 포함할 수 있다. 따라서, 이 디바이스는 프로세싱을 위해 컴퓨팅 디바이스(2600)에 디바이스를 연결하는 포트를 통해 송신될 수 있는 전기 신호들로 광학 신호들을 변환하도록 구성될 수 있다. 컴퓨터들 및 네트워크들의 끊임없이 변하는 성질로 인해, 도 5에 도시된 컴퓨팅 디바이스(2600)의 설명은 디바이스의 바람직한 실시예를 예시하기 위한 특정 예로서만 의도된다. 도 5에 도시된 시스템보다 더 많거나 더 적은 구성요소들을 갖는 다수의 다른 구성들이 가능하다.
열거된 예시적 실시예들
이로써 본 개시내용은 청구된 양상들 및 실시예들을 더 잘 설명하고, 기술하고 이해하기 위한 예시적인 실시예로서 본원에서 제공되는, 위의 양상들과 관련되는 다음의 조항들에 기초하여 논의된다.
1. 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법으로서,
플랫폼은 복수의 클라이언트들을 위해 제공되고, 방법은 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현되고, 방법은,
복수의 클라이언트들 중 주어진 클라이언트로부터, 요청을 수신하는 단계 ― 요청은 복수의 서비스들 중 주어진 서비스에 관한 것이고, 주어진 클라이언트로부터의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초함 ― ;
클라이언트 아이덴티티 및/또는 요청이 유효하다는 결정에 기초하여, 주어진 서비스와 연관된 목적지 어드레스를 획득하는 단계;
출력 스크립트를 획득하기 위해 획득된 목적지 어드레스에 대응하는 적어도 하나의 블록체인 트랜잭션에 기초하여, 주어진 서비스에 대한 요청을 프로세싱하는 단계; 및
출력 스크립트와 연관된 결과를 주어진 클라이언트에 전송하는 단계를 포함하고,
결과는 HTTP 송신 프로토콜 포맷에 기초하여 제공되는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
2. 조항 1에 제시된 방법에 있어서
플랫폼 프로세서는 HTTP API 엔드포인트로서 구현되는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
3. 조항 2에 제시된 방법에 있어서
플랫폼 프로세서는 REST(Representational State Transfer) 엔드포인트로서 구현되는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
4. 조항 1 내지 조항 3 중 어느 한 조항에 제시된 방법에 있어서,
플랫폼 프로세서는, 각각이 블록체인 상에서 복수의 서비스들 중 주어진 서비스를 구현하도록 구성되고 각각이 개개의 프로세서에 고유한 특정 목적지 어드레스 또는 엔드포인트와 연관되는 복수의 프로세서들과 연관되거나 포함하는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
5. 조항 1 내지 조항 4 중 어느 한 조항에 제시된 방법에 있어서,
플랫폼 프로세서는 API 변환기와 연관되고, API 변환기는,
HTTP 송신 프로토콜 포맷으로 주어진 클라이언트로부터 요청을 수신하는 단계;
수신된 요청을 RPC(Remote Procedure Call) 포맷으로 변환하고, 수신된 요청에서 식별된 주어진 서비스를 구현하도록 구성된, 복수의 프로세서들 중 주어진 프로세서에 RPC 요청을 전송하는 단계;
주어진 프로세서로부터 적어도 하나의 블록체인 트랜잭션과 연관된 응답을 RPC 포맷으로 수신하는 단계; 및
HTTP 송신 프로토콜을 사용하여 클라이언트에 전송될 개개의 응답을 변환하는 단계를 수행하도록 구성되는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
6. 조항 1 내지 조항 5 중 어느 한 조항에 제시된 방법에 있어서,
수신된 요청은 주어진 클라이언트에 대한 클라이언트 식별자 및 요청된 주어진 서비스에 대한 서비스 식별자와 연관되거나 포함하는 HTTP GET 또는 POST 또는 PUT 또는 PATCH 요청이고, 클라이언트에 전송된 결과는 주어진 클라이언트에 대한 클라이언트 식별자에 기초한 HTTP POST 요청인, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
7. 조항 6에 제시된 방법에 있어서,
클라이언트 식별자 및 클라이언트 식별자에 대응하는 레코드에 기초하여 클라이언트를 유효성 검증하는 단계 ― 레코드는 플랫폼 프로세서와 연관됨 ― ; 및
클라이언트의 성공적인 유효성 검증에 기초하여, 개개의 레코드에 포함된 서비스 식별자 및 속성 또는 세팅에 기초하여 클라이언트로부터의 수신된 요청이 유효한지를 결정하는 단계를 포함하는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
8. 조항 6 또는 조항 7에 제시된 방법에 있어서,
클라이언트 식별자는 주어진 클라이언트에 대해 제공되는 별칭이고, 별칭은 주어진 클라이언트에 특유하고 별칭-기반 어드레싱 서비스에 의해 제공되며, 어드레싱 서비스는 정의되거나 잘 알려진 로케이션으로부터 액세스 가능한 기계 판독 가능 자원을 갖고, 기계 판독 가능 자원은 주어진 클라이언트와 관련된 하나 이상의 능력들을 포함하는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
9. 조항 8에 제시된 방법에 있어서
별칭은 주어진 클라이언트에 대한 도메인 이름과 연관되는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
10. 조항 1 내지 조항 9 중 어느 한 조항에 제시된 방법에 있어서,
플랫폼은 블록체인을 사용하여 구현된 다음 서비스들:
블록체인의 상태를 변경하기 위해 블록체인에 데이터를 기록/제출하기 위한 데이터 서비스들;
블록체인의 현재 상태를 반영하는 데이터를 판독/획득하기 위한 데이터 서비스들;
블록체인과 연관된 트랜잭션들에 대한 단순 지불 검증(simplified payment verification)과 연관된 서비스들;
블록체인과 연관된 하나 이상의 이벤트 스트림들 및/또는 스마트 계약들의 관리와 연관된 서비스들;
블록체인과 연관된 복수의 클라이언트들에 대한 디지털 지갑 프레임워크의 관리와 연관된 서비스들;
피어 투 피어 통신 채널들의 제공과 연관된 서비스들;
데이터 저장과 연관된 서비스들 중 적어도 하나 이상을 포함하는, 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
11. 블록체인과 연관된 복수의 서비스들의 플랫폼에 액세스하기 위한 컴퓨터 구현 방법으로서,
플랫폼은 복수의 클라이언트들을 위해 제공되고, 방법은 복수의 클라이언트들 중 주어진 클라이언트의 하나 이상의 프로세서들에 의해 구현되고, 방법은:
플랫폼과 연관된 하나 이상의 프로세서들과 연관된 API(application programming interface) 엔드포인트를 획득하거나 식별하는 단계;
복수의 서비스들 중 주어진 서비스에 관련된 요청을 전송하는 단계 ― 요청은 주어진 클라이언트에 대한 클라이언트 식별자, 및 요청된 주어진 서비스에 대한 서비스 식별자를 포함하거나 연관되고, 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초하여 전송됨 ― ;
요청과 연관된 블록체인 트랜잭션의 출력 스크립트와 관련된 결과를 수신하는 단계를 포함하고,
상기 결과는 HTTP 송신 프로토콜 포맷에 기초하여 클라이언트에 제공되는, 블록체인과 연관된 복수의 서비스들의 플랫폼에 액세스하기 위한 컴퓨터 구현 방법.
12. 블록체인과 연관된 트랜잭션들에 대한 데이터 기록 서비스를 구현하기 위한 컴퓨터 구현 방법으로서,
방법은 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현되고, 방법은:
클라이언트로부터 요청을 수신하는 단계 ― 요청은 블록체인을 사용하여 구현되는 이벤트 스트림(ES)과 관련되고, 클라이언트로부터의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초함 ― ;
이벤트 스트림의 현재 상태(ESi =n)를 결정하는 단계 ― 여기서 i는 0 내지 N의 정수이고, 각각의 정수 i는 이벤트 스트림(ES)의 주어진 상태를 표현하고, 여기서 i = 0은 생성된 이벤트 스트림(ES)을 표현하고, i = n은 블록체인에서 현재 상태의 이벤트 스트림(ES)을 표현하며, i = N은 이벤트 스트림(ES)의 최종 상태를 표현함 ― ;
다음 단계들에 의해 수신된 요청에 기초하여 이벤트 스트림(ES)에 대한 새로운 이벤트(En+1)을 프로세싱하는 단계 ― 다음 단계들은,
블록체인 트랜잭션(TXn + 1)을 생성하는 단계 ― 블록체인 트랜잭션(TXn + 1)은, 이전 트랜잭션(TXn)으로부터의 트랜잭션 출력(TXOn)과 연관된 입력; 및 새로운 이벤트(En+1)를 표현하는 이벤트 데이터와 연관된 미지출 출력(UTXOn + 1)을 포함함 ― ;
블록체인에 트랜잭션(TXn + 1)을 제출하는 단계이고, 상기 제출에 응답하여, 방법은 ESi =n = ESn +1이 되도록, 새롭게 생성된 이벤트(En+1)에 기초하여 이벤트 스트림(ES)의 현재 상태를 ESi =n+1이 되도록 업데이트하는 단계를 포함함 ― ; 및
업데이트된 현재 상태(ESn + 1)에 기초한 결과를 전송하는 단계를 포함하고,
결과는 HTTP 송신 프로토콜 포맷에 기초하여 제공되는, 블록체인과 연관된 트랜잭션들에 대한 데이터 기록 서비스를 구현하기 위한 컴퓨터 구현 방법.
위에서 언급된 양상들 및 실시예들은 본 개시를 제한하기보다는 예시하고, 당업자는 첨부된 청구항들에 의해 정의된 바와 같은 본 개시내용의 범위로부터 벗어남이 없이 다수의 대안적인 실시예들을 설계할 수 있을 것이란 점이 주의되어야 한다. 청구항들에서, 괄호 안의 배치된 임의의 참조 부호들은 청구항들을 제한하는 것으로 해석되어서는 안 된다. "포함하는(comprising)" 및 "포함하다(comprises)" 등의 단어는 전체로서 명세서 또는 임의의 청구항에 나열된 것들 이외의 요소들 또는 단계들의 존재를 배제하지 않는다. 본 명세서에서, "포함하다(comprises)"는 "포함하거나 구성된다(includes or consists of)"를 의미하고 "포함하는(comprising)"은 "포함하거나 구성되는(including or consisting of)"을 의미한다. 요소의 단수 참조는 그러한 요소들의 복수 참조를 배제하지 않으며 그 반대의 경우도 마찬가지이다. 본 개시내용은 여러 별개의 요소들을 포함하는 하드웨어에 의해 그리고 적합하게 프로그래밍된 컴퓨터에 의해 구현될 수 있다. 여러 수단들을 열거하는 디바이스 청구항에서, 이들 수단들 중 여러 개는 하나의 그리고 동일한 하드웨어 아이템에 의해 구체화될 수 있다. 소정의 측정들이 서로 상이한 종속 청구항들에서 인용된다는 단순한 사실만으로 이 측정들의 결합이 유리하게 사용될 수 없다는 것을 나타내는 것은 아니다.

Claims (12)

  1. 블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법으로서,
    상기 플랫폼은 복수의 클라이언트들을 위해 제공되고, 상기 방법은 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현되고, 상기 방법은:
    상기 복수의 클라이언트들 중 주어진 클라이언트로부터, 요청을 수신하는 단계 ― 상기 요청은 상기 복수의 서비스들 중 주어진 서비스에 관한 것이고, 상기 주어진 클라이언트로부터의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초함 ― ;
    클라이언트 아이덴티티 및/또는 요청이 유효하다는 결정에 기초하여, 상기 주어진 서비스와 연관된 목적지 어드레스를 획득하는 단계;
    출력 스크립트를 획득하기 위해 상기 획득된 목적지 어드레스에 대응하는 적어도 하나의 블록체인 트랜잭션에 기초하여, 상기 주어진 서비스에 대한 요청을 프로세싱하는 단계; 및
    상기 출력 스크립트와 연관된 결과를 상기 주어진 클라이언트에 전송하는 단계를 포함하고,
    상기 결과는 상기 HTTP 송신 프로토콜 포맷에 기초하여 제공되는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  2. 제1 항에 있어서
    상기 플랫폼 프로세서는 HTTP API 엔드포인트로서 구현되는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  3. 제2 항에 있어서,
    상기 플랫폼 프로세서는 REST(Representational State Transfer) 엔드포인트로서 구현되는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 플랫폼 프로세서는, 각각이 상기 블록체인 상에서 상기 복수의 서비스들 중 주어진 서비스를 구현하도록 구성되고 각각이 개개의 프로세서에 고유한 특정 목적지 어드레스 또는 엔드포인트와 연관되는 복수의 프로세서들과 연관되거나 포함하는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 플랫폼 프로세서는 API 변환기와 연관되고, 상기 API 변환기는,
    상기 HTTP 송신 프로토콜 포맷으로 상기 주어진 클라이언트로부터 상기 요청을 수신하는 단계;
    수신된 요청을 RPC(Remote Procedure Call) 포맷으로 변환하고, 상기 수신된 요청에서 식별된 상기 주어진 서비스를 구현하도록 구성된, 상기 복수의 프로세서들 중 주어진 프로세서에 RPC 요청을 전송하는 단계;
    상기 주어진 프로세서로부터 적어도 하나의 블록체인 트랜잭션과 연관된 응답을 RPC 포맷으로 수신하는 단계; 및
    상기 HTTP 송신 프로토콜을 사용하여 상기 클라이언트에 전송될 개개의 응답을 변환하는 단계를 수행하도록 구성되는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  6. 제1 항 내지 제5 항 중 어느 한 항에 있어서,
    상기 수신된 요청은 상기 주어진 클라이언트에 대한 클라이언트 식별자 및 요청된 주어진 서비스에 대한 서비스 식별자와 연관되거나 포함하는 HTTP GET 또는 POST 또는 PUT 또는 PATCH 요청이고, 상기 클라이언트에 전송된 결과는 상기 주어진 클라이언트에 대한 클라이언트 식별자에 기초한 HTTP POST 요청인,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  7. 제6 항에 있어서
    상기 클라이언트 식별자 및 상기 클라이언트 식별자에 대응하는 레코드에 기초하여 상기 클라이언트를 유효성 검증하는 단계 ― 상기 레코드는 상기 플랫폼 프로세서와 연관됨 ― ; 및
    상기 클라이언트의 성공적인 유효성 검증에 기초하여, 개개의 레코드에 포함된 서비스 식별자 및 속성 또는 세팅에 기초하여 상기 클라이언트로부터의 수신된 요청이 유효한지를 결정하는 단계를 포함하는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  8. 제6 항 또는 제7 항에 있어서,
    상기 클라이언트 식별자는 주어진 클라이언트에 대해 제공되는 별칭이고, 상기 별칭은 상기 주어진 클라이언트에 특유하고 별칭-기반 어드레싱 서비스에 의해 제공되며, 상기 어드레싱 서비스는 정의되거나 잘 알려진 로케이션으로부터 액세스 가능한 기계 판독 가능 자원을 갖고, 상기 기계 판독 가능 자원은 상기 주어진 클라이언트와 관련된 하나 이상의 능력들을 포함하는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  9. 제8 항에 있어서,
    상기 별칭은 상기 주어진 클라이언트에 대한 도메인 이름과 연관되는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 플랫폼은 상기 블록체인을 사용하여 구현된 다음 서비스들:
    상기 블록체인의 상태를 변경하기 위해 상기 블록체인에 데이터를 기록/제출하기 위한 데이터 서비스들;
    상기 블록체인의 현재 상태를 반영하는 데이터를 판독/획득하기 위한 데이터 서비스들;
    상기 블록체인과 연관된 트랜잭션들에 대한 단순 지불 검증(simplified payment verification)과 연관된 서비스들;
    상기 블록체인과 연관된 하나 이상의 이벤트 스트림들 및/또는 스마트 계약들의 관리와 연관된 서비스들;
    상기 블록체인과 연관된 복수의 클라이언트들에 대한 디지털 지갑 프레임워크의 관리와 연관된 서비스들;
    피어 투 피어 통신 채널들의 제공과 연관된 서비스들;
    데이터 저장과 연관된 서비스들 중 적어도 하나 이상을 포함하는,
    블록체인과 연관된 복수의 서비스들의 플랫폼을 제공하기 위한 컴퓨터 구현 방법.
  11. 블록체인과 연관된 복수의 서비스들의 플랫폼에 액세스하기 위한 컴퓨터 구현 방법으로서,
    상기 플랫폼은 복수의 클라이언트들을 위해 제공되고, 상기 방법은 상기 복수의 클라이언트들 중 주어진 클라이언트의 하나 이상의 프로세서들에 의해 구현되고, 상기 방법은:
    상기 플랫폼과 연관된 하나 이상의 프로세서들과 연관된 API(application programming interface) 엔드포인트를 획득하거나 식별하는 단계;
    상기 복수의 서비스들 중 주어진 서비스에 관련된 요청을 전송하는 단계 ― 상기 요청은 상기 주어진 클라이언트에 대한 클라이언트 식별자, 및 요청된 주어진 서비스에 대한 서비스 식별자를 포함하거나 연관되고, 상기 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초하여 전송됨 ― ;
    상기 요청과 연관된 블록체인 트랜잭션의 출력 스크립트와 관련된 결과를 수신하는 단계를 포함하고,
    상기 결과는 HTTP 송신 프로토콜 포맷에 기초하여 상기 클라이언트에 제공되는,
    블록체인과 연관된 복수의 서비스들의 플랫폼에 액세스하기 위한 컴퓨터 구현 방법.
  12. 블록체인과 연관된 트랜잭션들에 대한 데이터 기록 서비스를 구현하기 위한 컴퓨터 구현 방법으로서,
    상기 방법은 API(application programming interface)와 연관된 플랫폼 프로세서에 의해 구현되고, 상기 방법은:
    클라이언트로부터 요청을 수신하는 단계 ― 상기 요청은 상기 블록체인을 사용하여 구현되는 이벤트 스트림(ES)과 관련되고, 상기 클라이언트로부터의 요청은 HTTP(Hypertext Transfer Protocol) 송신 프로토콜 포맷에 기초함 ― ;
    상기 이벤트 스트림의 현재 상태(ESi =n)를 결정하는 단계 ― 여기서 i는 0 내지 N의 정수이고, 각각의 정수 i는 상기 이벤트 스트림(ES)의 주어진 상태를 표현하고, 여기서 i = 0은 생성된 이벤트 스트림(ES)을 표현하고, i = n은 상기 블록체인에서 현재 상태의 이벤트 스트림(ES)을 표현하며, i = N은 상기 이벤트 스트림(ES)의 최종 상태를 표현함 ― ;
    다음 단계들에 의해 상기 수신된 요청에 기초하여 상기 이벤트 스트림(ES)에 대한 새로운 이벤트(En+1)을 프로세싱하는 단계 ― 상기 다음 단계들은,
    블록체인 트랜잭션(TXn + 1)을 생성하는 단계 ― 상기 블록체인 트랜잭션(TXn+1)은, 이전 트랜잭션(TXn)으로부터의 트랜잭션 출력(TXOn)과 연관된 입력; 및 상기 새로운 이벤트(En+1)를 표현하는 이벤트 데이터와 연관된 미지출 출력(UTXOn + 1)을 포함함 ― ;
    상기 블록체인에 상기 트랜잭션(TXn + 1)을 제출하는 단계이고, 상기 제출에 응답하여, 상기 방법은 ESi =n = ESn +1이 되도록, 새롭게 생성된 이벤트(En+1)에 기초하여 상기 이벤트 스트림(ES)의 현재 상태를 ESi =n+1이 되도록 업데이트하는 단계를 포함함 ― ; 및
    상기 업데이트된 현재 상태(ESn + 1)에 기초한 결과를 전송하는 단계를 포함하고,
    상기 결과는 상기 HTTP 송신 프로토콜 포맷에 기초하여 제공되는,
    블록체인과 연관된 트랜잭션들에 대한 데이터 기록 서비스를 구현하기 위한 컴퓨터 구현 방법.
KR1020227031588A 2020-02-19 2021-02-15 블록체인과 연관된 복수의 서비스들을 위한 플랫폼 KR20220143874A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB2002285.1A GB202002285D0 (en) 2020-02-19 2020-02-19 Computer-implemented system and method
GB2002285.1 2020-02-19
PCT/IB2021/051261 WO2021165817A1 (en) 2020-02-19 2021-02-15 Platform for a plurality of services associated with a blockchain

Publications (1)

Publication Number Publication Date
KR20220143874A true KR20220143874A (ko) 2022-10-25

Family

ID=69956567

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227031588A KR20220143874A (ko) 2020-02-19 2021-02-15 블록체인과 연관된 복수의 서비스들을 위한 플랫폼
KR1020227031587A KR20220143873A (ko) 2020-02-19 2021-02-15 블록체인과 연관된 이벤트들의 시퀀스에 대한 이벤트 스트림들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020227031587A KR20220143873A (ko) 2020-02-19 2021-02-15 블록체인과 연관된 이벤트들의 시퀀스에 대한 이벤트 스트림들

Country Status (8)

Country Link
US (3) US11880839B2 (ko)
EP (2) EP4107688A1 (ko)
JP (2) JP2023513845A (ko)
KR (2) KR20220143874A (ko)
CN (2) CN115136169A (ko)
GB (1) GB202002285D0 (ko)
TW (2) TW202139669A (ko)
WO (2) WO2021165817A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2622240A (en) * 2022-09-08 2024-03-13 Nchain Licensing Ag Blockchain state machine
GB2622241A (en) * 2022-09-08 2024-03-13 Nchain Licensing Ag Blockchain state machine

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339523B2 (en) * 2015-07-14 2019-07-02 Fmr Llc Point-to-point transaction guidance apparatuses, methods and systems
US20170132630A1 (en) * 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
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
US10868674B2 (en) * 2016-08-12 2020-12-15 ALTR Solutions, Inc. Decentralized database optimizations
EP3561680B8 (en) * 2016-12-22 2022-10-26 Nippon Telegraph and Telephone Corporation Rpc conversion processing system and rpc conversion method
CN110709871A (zh) * 2017-05-22 2020-01-17 区块链控股有限公司 可参数化的智能合约
US11556521B2 (en) 2017-09-29 2023-01-17 Oracle International Corporation System and method for providing an interface for a blockchain cloud service
WO2019086677A1 (en) * 2017-11-03 2019-05-09 Aid Technology Limited Method, apparatus, and computer-readable medium for securely performing digital asset transactions
US10693637B2 (en) * 2018-03-23 2020-06-23 Belavadi Nagarajaswamy Ramesh System and method for composite-key based blockchain device control
CN112154626A (zh) * 2018-05-14 2020-12-29 区块链控股有限公司 使用区块链执行原子交换的计算机实现的系统和方法
US11250466B2 (en) * 2018-07-30 2022-02-15 Hewlett Packard Enterprise Development Lp Systems and methods for using secured representations of user, asset, and location distributed ledger addresses to prove user custody of assets at a location and time
US10999260B1 (en) * 2020-05-12 2021-05-04 iCoin Technology, Inc. Secure messaging between cryptographic hardware modules

Also Published As

Publication number Publication date
KR20220143873A (ko) 2022-10-25
JP2023513845A (ja) 2023-04-03
GB202002285D0 (en) 2020-04-01
US20230078784A1 (en) 2023-03-16
TW202139669A (zh) 2021-10-16
US20230082545A1 (en) 2023-03-16
EP4107644A2 (en) 2022-12-28
TW202139668A (zh) 2021-10-16
US20240086914A1 (en) 2024-03-14
EP4107688A1 (en) 2022-12-28
CN115176248A (zh) 2022-10-11
US11880839B2 (en) 2024-01-23
JP2023515435A (ja) 2023-04-13
CN115136169A (zh) 2022-09-30
WO2021165814A2 (en) 2021-08-26
WO2021165817A1 (en) 2021-08-26
WO2021165814A3 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
US11652605B2 (en) Advanced non-fungible token blockchain architecture
WO2019217938A1 (en) User id codes for online verification
US20240086914A1 (en) Platform for a plurality of services associated with a blockchain
US11876801B2 (en) User ID codes for online verification
WO2020234824A1 (en) Computer-implemented system and method
TW202139127A (zh) 用於與區塊鏈相關聯之服務平台之運算服務
KR20210106532A (ko) 블록체인을 통해 행해지는 전송의 성능을 제어하거나 강제하기 위한 컴퓨터-구현된 시스템 및 방법
US20230119035A1 (en) Platform services verification
Sanchez‐Reillo et al. Developing standardised network‐based biometric services
KR20220076486A (ko) 블록체인 트랜잭션들을 위한 콜-백 메커니즘들
US20230093411A1 (en) Synchronising event streams
US11757985B1 (en) Systems and methods for a blockchain interoperability platform
Saldamli et al. Identity management via blockchain
US20230275769A1 (en) Systems and methods for linking cryptography-based digital repositories to perform blockchain operations in decentralized applications
US20230275757A1 (en) Systems and methods for facilitating secure blockchain operations in decentralized applications using cryptography-based, storage applications in computer networks
EP4107689A1 (en) Platform services verification
WO2023164651A1 (en) Systems and methods for facilitating secure blockchain operations in decentralized applications using cryptography-based, storage applications in computer networks