KR20190119581A - 블록체인 가능한 서비스 제공자 시스템 - Google Patents

블록체인 가능한 서비스 제공자 시스템 Download PDF

Info

Publication number
KR20190119581A
KR20190119581A KR1020197022316A KR20197022316A KR20190119581A KR 20190119581 A KR20190119581 A KR 20190119581A KR 1020197022316 A KR1020197022316 A KR 1020197022316A KR 20197022316 A KR20197022316 A KR 20197022316A KR 20190119581 A KR20190119581 A KR 20190119581A
Authority
KR
South Korea
Prior art keywords
user
service
service device
request
access
Prior art date
Application number
KR1020197022316A
Other languages
English (en)
Other versions
KR102470727B1 (ko
Inventor
크리스토프 젠츠쉬
사이먼 젠츠쉬
스테판 투알
Original Assignee
슬록.잇 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 슬록.잇 게엠베하 filed Critical 슬록.잇 게엠베하
Publication of KR20190119581A publication Critical patent/KR20190119581A/ko
Application granted granted Critical
Publication of KR102470727B1 publication Critical patent/KR102470727B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

분산 원장(예를 들어, 블록체인) 가능 운영 환경은, 분산된 블록체인에 영향을 줌으로써 서비스 장치의 서비스를 액세스하는 사용자 장치를 포함한다. 예를 들어, 사용자 장치는 분산된 블록체인에 저장된 스마트 계약과 인터페이싱(interfacing)함으로써 문(예를 들어, 서비스 장치(112))를 락/언락할 수 있다. 사용자 장치는 지불과 같은 파라미터들을 제공하며, 이는 상기 사용자 장치가 상기 서비스 장치에 액세스하는 경우 상기 스마트 계약의 변수를 만족시킨다. 상기 서비스 장치는 상기 분산된 블록체인 상의 상기 스마트 계약에 저장된 정보를 정기적으로 검색한다. 예를 들어, 검색된 정보는 사용자 장치가 서비스 장치에 액세스하도록 허가되는 것을 특정할 수 있거나, 또는 서비스 장치가 서비스를 제공할 것을 특정할 수 있다. 따라서, 검색된 정보가 주어지면, 서비스 장치는 서비스를 사용자 장치에 제공한다.

Description

블록체인 가능한 서비스 제공자 시스템
본 출원은 2016 년 12 월 30 일에 출원된 미국 가출원 특허 제 62/441,013 호의 이익을 청구하며, 상기 특허의 내용은 그 전체가 참조로 포함된다.
본 개시는 일반적으로 거래(exchanges)에 관한 것으로, 보다 상세하게는 예를 들어 블록체인과 같은 분산 원장(decentralized ledger)에서 거래(exchange)를 수행하는 것에 의해, 서비스 장치(예를 들어, 하드웨어 컴포넌트)를 제어하는 것에 관한 것이다.
컴퓨팅 시스템을 사용하는 거래는 종종 안전하지 않으며, 바람직하지 않은 변경(undesired alterations)을 하기 쉽다. 특정 거래가 손상되는 경우, 특정 트랜잭션(transaction)이 손상된 것을 검출하는 것은 어려울 수 있다. 이는 자원들(resources)(예를 들어, 자금, 개인의 노력, 시간 등)에 관해 상당한 손실을 초래한다.
많은 시나리오들에서, 해킹 소스(source of the hacking)는 거래를 다루는 중개인(middle man)으로부터 발생할 수 있다. 예로서, 호텔 방을 예약한 후, 개인은 호텔 방에 대한 키들을 픽업하도록 데스크 직원(desk attendant)과 소통할 필요가 있을 것이다. 여기서, 데스크 직원은 예약된 호텔 방보다 더 작거나 바람직하지 못한 호텔 방으로 호텔 방을 쉽게 전환할(switch) 수 있다. 이러한 전환은 개인이 손쉽게 분명히 알 수 없을 수 있다. 따라서, 거래를 다루는 중개인의 제거(removal of the middle man)를 통해 안전한 트랜잭션을 보장할 필요가 있다.
개시된 실시예들은 다음과 같이 첨부된 도면들과 관련하여 취해질 때, 다음의 상세한 설명 및 첨부된 청구항들로부터 더욱 용이하게 명백해질 다른 장점과 특징을 갖는다.
도 1A는 제1 실시예에 따른 예시적인 블록체인 가능한 운영 환경(blockchain enabled operating environment)을 도시한다.
도 1B는 일 실시예에 따른 서비스 장치로부터 서비스의 제공을 가능하게 하는 블록체인에 대한 기본적인 프로세스들(underlying processes)을 도시한다.
도 1C는 일 실시예에 따른 블록체인 가능한 운영 환경 내의 예시적인 컴퓨팅 장치의 예시적인 컴포넌트들을 도시하는 블록도이다.
도 2는 일 실시예에 따른 장부 기입 프로세스(booking process)를 도시하는 예시적인 상호작용 다이어그램(interaction diagram)이다.
도 3은 제1 실시예에 따른 액세스 프로세스를 도시하는 예시적인 상호작용 다이어그램이다.
도 4A는 제2 실시예에 따른 예시적인 블록체인 가능한 운영 환경을 도시한다.
도 4B는 도 4A에 도시된 제2 실시예에 따른 액세스 프로세스(access process)를 도시하는 예시적인 상호작용 다이어그램이다.
도 5A는 일 실시예에 따른 프록시 장치(proxy device)를 이용하는 액세스 프로세스를 도시하는 예시적인 상호작용 다이어그램이다.
도 5B는 일 실시예에 따른 프록시 장치의 하드웨어 및 소프트웨어 계층들(hardware and software layers)의 예를 도시한다.
도 6은 일 실시예에 따른 상태 채널(state channel)들의 사용을 도시하는 상호작용 다이어그램(interaction diagram)을 도시한다.
도 7A는 일 실시예에 따른 사용자 장치를 통해 블록체인에 액세스하는 서비스 장치를 도시한다.
도 7B는 도 7A에 도시된 실시예에 따른 서비스 장치, 사용자 장치, 및 신뢰 클라이언트 사이의 상호작용을 도시하는 상호작용 다이어그램이다.
도면 및 다음의 기술은 단지 예시의 방식에 의한 바람직한 실시예들에 관한 것이다. 다음의 논의로부터, 본 명세서에 개시된 구조 및 방법의 대안적인 실시예는 청구된 것의 원리로부터 벗어나지 않고 사용될 수 있는 실행 가능한(viable) 대안으로 쉽게 인식될 것임을 주의해야 한다.
이제 여러 실시예에 대한 참조가 상세하게 이루어질 것이며, 그 실시예의 예가 첨부된 도면에 도시된다. 실행 가능한 유사하거나 같은 참조 번호가 도면에서 사용될 수 있으며, 유사하거나 같은 기능을 나타낼 수 있음을 유의해야 한다. 도면은 단지 예시의 목적으로 개시된 시스템(또는 방법)의 실시예를 도시한다. 당업자는, 본 명세서에 설명된 구조 및 방법의 또 다른 실시예가 본 명세서에 기술된 원리를 벗어나지 않고 사용될 수 있음을 다음의 기술로부터 쉽게 인식할 것이다.
예시적인 분산 원장 가능한 운영 환경 (Decentralized Ledger Enabled Operating Environment)
본 개시는 락(lock)과 같이 서비스 장치를 제어하기 위한 방법 및 시스템을 기술하며, 상기 락은 지불을 제공하는 것에 의해 개방될(opened) 수 있고, 상기 지불은 중앙 개체(central entity)/서버를 통하지 않고, 분산 원장(예를 들어, 블록체인)에 대해 수행하는 코드를 통해 처리된다. 설명을 쉽게 하기 위해, 주요 원리는 다른 분산 원장에 적용될 수 있음에도 불구하고, 개시된 구성은 블록 체인의 내용(context)으로 기술될 것이다.
도 1A는 본 명세서에 기술된 구성에 따른 예시적인 블록체인 가능한 운영 환경(100)을 도시한다. 예시적인 운영 환경(100)은 사용자 장치(105) 및 서비스 장치(110)를 포함한다. 또한, 예시적인 운영 환경(100)은 사용자 장치(100) 및 서비스 장치(110) 둘 모두와 통신하는 분산된 블록체인(decentralized blockchain)(120) 상의 스마트 계약(115)을 포함한다. 사용자 장치(105) 및 서비스 장치(110)는 예시적인 운영 환경(100)에서의 동작을 위한 블록체인 가능한 컴퓨팅 장치의 예의 유형이다.
사용자 장치 (User Device)
사용자 장치(105)는 블록체인과 상호작용할 수 있는, 내재되거나 영향을 미칠 수 있는(mediated) 능력을 갖는 장치일 수 있다. 예로서, 사용자 장치(105)는 스마트폰, 태블릿, 휴대폰, 랩톱, 또는 데스크탑 컴퓨팅 장치와 같은 클라이언트 장치(client device)이다. 다양한 실시예들에서 사용자 장치(105)는, 특정 통신 프로토콜을 포함하는 사용자 장치(105)에 설치된 애플리케이션을 통해 블록체인(120)과 통신한다. 사용자 장치(105)로부터의 트랜잭션은 서비스 장치(110)로 값 전송(value transfer)을 실행할 뿐만 아니라, 액세스 제어를 관리한다(예를 들어, 위치에 대한 액세스가 서비스 장치(110)에 의해 제어되는 위치에 대해 장부 기입(booking)을 등록한다).
또한, 사용자 장치(105)는 본 명세서에서 더 설명되는 블록체인(120)으로부터 서비스 장치(110)의 파라미터들을 판독할 수 있다. 예를 들어, 파라미터는 보증금(deposit), 대여 또는 매매의 비용(cost), 가용 날짜(availability dates) 및/또는 시간(times), 또는 트랜잭션을 완료하거나 그리고/또는 실행하는 것과 관련된 다른 정보를 포함할 수 있다. 상기 정보는 스마트 계약(115)의 형태로 코드로 구성된 공유된 블록체인 상태(shared blockchain state)로부터 판독된다. 블록체인 가능한 동작 환경 내에서 실행을 위해 서비스 장치(110)를 구성하기 위해, 스마트 계약(155)은 규칙(rules)(예를 들어, 허가(authorizations)를 포함하는 컴퓨터 프로그램 코드)를 제공한다.
다양한 예시적인 실시예들에서, 사용자 장치(105)는 또한 임의의 주어진 무선 통신 계층을 통한 통신 프로토콜을 통해 서비스 장치(110)와 직접 통신할 수 있다. 예를 들어, 통신은 특정 통신 프로토콜을 포함하는 사용자 장치(105)에 설치된 애플리케이션을 이용하여 블루투스(BLUETOOTH) 또는 근거리 무선 통신(NFC: near field communication) 기술을 통해 발생할 수 있다.
서비스 장치 (Service Device)
서비스 장치(110)는 블록체인(block chain)과 상호작용할 수 있는 능력(capability)을 갖는 객체를 나타낼 수 있다. 서비스 장치(110)는 동작 명령에 기초하여 서비스를 제공할 수 있다. 예를 들어, 서비스 장치(110)는 액세스 제어를 제공하도록 구성될 수 있다. 예를 들어, 액세스 제어는 "개방(open)" 및/또는 "폐쇄(close)"(예를 들어, 락 또는 락 메커니즘(lock mechanism)), 승인을 통한 통과(pass)(예를 들어, 게이트), 또는 "시작(start)" 및/또는 "정지(stop)" 및/또는 "위로/아래로(go up/down)" 및/또는 "좌측으로/우측으로(turn left/right)"(예를 들어, 선택적 기능)를 포함할 수 있다. 보다 구체적인 예로서, 서비스 장치(110)는 호텔 방, 및/또는 그 장비(예를 들어, 미니바, 텔레비전, 룸 서비스) 또는 대학 기숙사에 대한 액세스(예를 들어 승인된 출입)를 사용자 장치(105)의 사용자에게 제공할 수 있다(예를 들어, 문을 여는(unlocking) 것에 의해). 또 달리, (예를 들어 게이트를 개방하는 것에 의해) 서비스 장치는 사용자 장치(105)의 사용자에게 예를 들어 고속 도로와 같은 관심 위치에 대한 액세스를 제공할 수 있다.
다른 예로서, 서비스 장치(110)는 (간단한 바이너리 "개방/폐쇄" 옵션 외의) 다양한 옵션들 사이에서 특정 옵션을 특정하는 동작(action)을 제공하도록 구성될 수 있다. 예를 들어, 서비스 장치(110)는 커피 머신일 수 있고, 다양한 양(예를 들어, 소, 중, 대, 및/또는 다른 옵션)의 카페인 음료를 사용자 장치(105)의 사용자에게 제공할 수 있다. 다른 예로서, 서비스 장치(110)는 천정 팬을 턴온시키고, 상기 천정 팬의 속도를 분당 특정 회전 속도로 설정하도록 구성될 수 있다. 서비스 장치(110)에 의해 제공될 수 있는 서비스들은 전술한 예시들로 제한되지 않고, 의료 장비에 대한 온디맨드 액세스(on demand access), 드론/차량의 제어, 운송 컨테이너들(shipping containers)의 제어, 및 자율적으로 이루어질 수 있는 임의의 프로세스를 더 포함할 수 있으나, 제한되는 것은 아니다.
서비스 장치(110)는 사용자 장치(105)에 의해 대여, 판매 및/또는 상호작용되는 내장된(on-boarded) 필수적인 하드웨어 및 소프트웨어를 가질 수 있다. 예를 들어, 서비스 장치(110)는 블록체인(120)과 통신하기 위해 특정된(specific) 통신 프로토콜들을 포함할 수 있다. 다른 실시예에서, 서비스 장치(110)는 블록체인(120)에 대해 직접적인 액세스를 갖지 않을 수 있으나, 블록체인(120)과 통신하기 위해 적절한 프로토콜들을 포함하는 프록시 장치에게 영향을 줄(leverage) 수 있다. 일 예로서, 프록시 장치는 랙 서버 또는 클라우드 서버(예를 들어, 삼성 아틱 클라우드(SAMSUNG ARTIK Cloud) 또는 서비스 장치의 제조업체에 의해 제공되는 클라우드 서비스)이다. 다시 말해, 프록시 장치에 의해 수행되는 기능들은 복수의 프로세서들 및/또는 전자 장치들에 걸쳐 분산될(distributed) 수 있다. 다양한 실시예들에서, 하나 이상의 프로세서들 또는 프로세서-구현 모듈들(processor-implemented modules)은 복수의 지리적 위치들에 걸쳐 분산될 수 있다. 일부 실시예들에서, 프록시 장치의 하나 이상의 프로세서들은 단일 지리적 위치에 위치될 수 있다(예를 들어, 집 환경, 사무실 환경, 서버 팜 내). 일 실시예에서 프록시 장치는, 하나 이상의 서비스 장치들과 통신하기 위해 필요한 소프트웨어를 동작시키고, 트랜잭션들을 상기 블록체인(120)으로 전송하는 홈 서버(예를 들어, 컴퓨팅 장치(110))일 수 있다. 프록시 장치의 일 예는 도 5A를 참조하여 아래에서 더 상세히 기술된다.
예시적인 실시예에서, (사용자 장치(105)가 실제로 서비스 장치(110)에 액세스하도록 허용된 것을 검증하기 위해,) 서비스 장치(110)는 블록체인에 대한 판독 요청에 따라 사용자 장치(105)로부터 전자적으로 서명된 메시지들을 통해 직접 서비스를 제공할 수 있다. 이러한 시나리오는 도 3과 관련하여 아래에서 보다 상세히 설명된다. 일 실시예에서, 서비스 장치(110)는 블록체인을 정기적으로 "획득(polling)"하고, 스마트 계약(115)에 의해 저장된 값에 대한 변경(modification)의 형태로 관련 상태 변화에 따라 서비스를 제공하는 것에 의해 서비스를 제공할 수 있다. 스마트 계약(115)에 의해 저장된 값에 대한 변경은 사용자 장치(105)에 의해 시작될(initiated) 수 있다. 이러한 시나리오는 도 4B와 관련하여 아래에서 더 상세히 기술된다.
서비스 장치(110)는 2 개의 상이한 방식으로 디스커버리될(discovered) 수 있다. 첫번째는, 스마트 계약 자체로 구현되는 스마트 계약 레지스트리(smart contract registry)를 통해서이다. 두번째는, 특정 스마트 계약 방식(기능) 서명들에 대한 블록체인 분석을 통한 자동 디스커버리(automatic discovery)를 통해서이다.
스마트 계약 (Smart Contract)
각 서비스 장치(110)는 프로그램 코드(또는 코드)의 형태로 블록체인(120)(코드를 별도로 실행할 수 있는 한 구현과 상관없이 공개 또는 개인)으로 표현될 수 있다. 코드는 예를 들어 프로세서, 제어기 또는 상태 머신을 포함할 수 있는 컴퓨터(또는 컴퓨터 장치)에 의해 실행가능한 명령어들을 포함한다. 코드는 특정 방식으로 동작하도록 블록체인 가능한 운영 환경 내에서 특정 컴퓨터 장치들을 구성하기 위한 규칙들을 포함할 수 있다. 일부 예시적인 실시예에서의 코드는 스마트 계약(115)으로 지칭될 수 있다. 사용자 장치(105)로부터의 트랜잭션에 의해 트리거되는 동작들에 대한 서비스 장치(110)의 조건은 스마트 계약(115)에 저장되고 집행된다(enforced). 스마트 계약(115)은 또한 서비스 장치(110)의 소유자에 대한 참조, 및/또는 서비스 장치(110)의 동작을 위한 조건들(예를 들어, 보증금, 대여 또는 판매의 비용, 가용 날짜 및/또는 시간 등)을 관리하는(governing) 파라미터들과 같은 선택적인 변수를 보유할 수 있다. 당업자가 용이하게 인식할 수 있는 스마트 계약(115)이라는 어구의 사용은 블록체인 기술의 분야에 특정한 것이지만, 계약(agreement)을 집행하는 임의의 형태의 코드를 더 지칭할 수 있다. 이러한 경우 스마트 계약(115)은 (지불을 제공하는) 사용자 장치(105) 및 (서비스를 제공하는) 소유자의 서비스 장치(110) 사이에서 계약을 집행한다(enforce an agreement).
동작의 예로서, 스마트 계약은 서비스 장치(110)에 대한 액세스 권한들(access rights)을 관리할 수 있다. 도 1B를 참조하면 블록체인(120)에서 동작하는 스마트 계약(115)은 사용자 장치(105)로부터의 지불/펀드의 전송을 가능하게 하며, 즉 서비스 장치의 소유자(130)가 소유하는 서비스 장치(110)로부터 서비스를 요청한다. 스마트 계약(115)은 지불(예를 들어 전자 형태의 통상적인 통화 및/또는 암호화폐 지불 (cryptocurrency payments))을 수신하거나 그리고/또는 지불하는 것에 응답하여 그 저장된 값을 계속 업데이트할 수 있다. 암호화폐는 일례일 수 있으며, 전자 코인 제공(electronic coin offering), 전자 보상(electronic reward), 교환 제공(barter tender), 또는 전자 포맷(electronic format)의 다른 형태의 값이 될 수 있다는 것을 유의해야 한다.
예를 들어 서비스 장치의 소유자(130)는 서비스 장치(110)가 서비스를 제공 가능하게 하기 원할 경우에, 소유자(130)는 스마트 계약에서 변수로 기록된 서비스 장치(110)에 액세스하기 위한 보증금 액수(deposit amount) 및 시세(price)를 제공할 수 있다. 사용자 장치(105)가, 서비스 장치(110)를 나타내는 스마트 계약(115)에 의해 저장된 변수를 만족시키는 충분한 펀드(funds)를 전송하는 경우에(예를 들어, 보증금이 제공됨), 사용자 장치(105)는, 특정 동작을 수행하는 서비스 장치(110) 내에서 실행할 수 있는 동작 명령들(operating commands)을 (예를 들어, 명령어를 포함하는 프로그램 코드의 형태로) 서비스 장치(110)로 응답하여 전송할 수 있다. 다양한 실시예들에서, 사용자 장치(105) 및 서비스 장치(110)는 사용자 장치(105)가 하나 이상의 동작 명령들을 전송할 수 있게 하는 상태 채널을 설정한다(establish). 스마트 계약(115)의 이후의 로직(logic) 및 서비스 장치(110)에 대한 액세스를 수반하는 다른 세부 사항이 아래에서 기술된다.
블록체인 가능한 환경에서 동작하는 것에 의해, 스마트 계약(115)은 (가상 화폐(virtual currencies) 및/또는 토큰(tokens) 또는 이에 상당하는 통화를 이용하여 발생할 수 있는) 사용자 장치(105)와 서비스 장치의 소유자(130) 사이의 값 전송에 영향을 줄(mediate) 수 있다. 따라서, 서비스 장치의 소유자(130)는 지불(예를 들어, 전자 포맷 또는 암호화폐의 통상적인 통화)을 수신할 수 있고, 사용자 장치(105)는 보증금을 다시 수신하고/수신하거나 지불로부터의 임의의 미결제 신용 거래(outstanding credits)를 수신한다.
블록체인 (Blockchain)
도 1A를 참조하면, 스마트 계약(115)을 호스팅(hosting)하는 기본적인 블록체인(underlying blockchain)(120)은 공개(public)이거나 개인(private)일 수 있다. 블록체인(120)은 스마트 계약(115)에 추가하여 원장(ledger)을 포함할 수 있다. 본 명세서에 기술된 솔루션(solution)은 설계에 의한 애그노스틱의(agnostic) 블록 체인(120)이다. 일 예로서 블록체인(120)은, 별도로 코드를 실행하는 블록 체인(120)과 통신하는 하나 이상의 장치들(예를 들어, 사용자 장치(105) 또는 서비스 장치(110)) 간의 유선 또는 무선 통신을 용이하게 하는 분산된 네트워크(decentralized network)를 지칭한다.
다양한 실시예들에서, 분산된 블록체인(120)의 네트워크는 표준 통신 기술들 및/또는 프로토콜들을 이용한다. 네트워크에 의해 사용되는 기술들의 예들은 이더넷, 802.11, 3G, 4G, 802.16, 또는 임의의 다른 적절한 통신 기술을 포함한다. 네트워크에 의해 사용되는 프로토콜들의 예들은 전송 제어 프로토콜(transmission control protocol)/인터넷 프로토콜(TCP/IP), 하이퍼텍스트 전송 프로토콜(HTTP), 간이 우편 전송 프로토콜(SMTP), 파일 전송 프로토콜(FTP), 또는 임의의 다른 적절한 통신 프로토콜을 포함할 수 있다.
예시적인 사용자 장치, 서비스 장치, 및/또는 블록체인과 통신하는 장치 (Example User Device, Service Device, and/or Device in communication with Blockchain)
도 1C는 블록체인 가능한 운영 환경(100) 내의 예시적인 컴퓨팅 장치(200)의 예시적인 컴포넌트들을 도시하는 블록도이다. 기술된 예시적인 컴퓨팅 장치 컴포넌트들의 일부 또는 모두는, 예를 들어 사용자 장치(105), 서비스 장치(110), 및/또는 블록체인(120)과 통신하는 프록시로서 사용자 장치(105) 또는 서비스 장치(110)에 의해 사용될 수 있는 임의의 장치 내부에 있을 수 있다. 다시 말해, 컴퓨팅 장치(200)는 블록체인(120)상의 노드이다. 컴퓨팅 장치(200)는 기계-판독 가능 매체(machine-readable medium)로부터 명령어를 판독하고, 적어도 하나의 프로세서(또는 제어기)에서 명령어를 실행하도록 구성될 수 있다. 구체적으로, 도 1C는 컴퓨팅 장치(200)가 본 명세서에서 논의된 방법들 중 임의의 하나 이상의 방법들을 수행하게 하기 위한 하나 이상의 명령어들(224)의 예시적인 형태(예를 들어, 소프트웨어 또는 프로그램 또는 프로그램 제품)로 컴퓨팅 장치(200)의 개략적인 표현을 도시한다.
예시적인 컴퓨팅 장치(200)는 적어도 하나의 프로세서(202)(예를 들어, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 디지털 신호 프로세서(DSP), 하나 이상의 주문형반도체들(ASICs: application specific integrated circuits), 하나 이상의 무선-주파수 집적 회로(RFICs), 제어기, 상태 머신, 또는 이들의 임의의 조합), 메인 메모리(204), 및 정적 메모리(206)를 포함할 수 있으며, 상기 포함되는 구성들은 버스(208)를 통해 서로 통신하도록 구성된다. 컴퓨팅 장치(200)는 그래픽 디스플레이 유닛(210)(예를 들어, 플라즈마 디스플레이 패널(PDP), 액정 표시 장치(LCD), 또는 프로젝터)을 더 포함할 수 있다. 컴퓨팅 장치(200)는 또한 입력 장치를 포함할 수 있으며, 상기 입력 장치는 예를 들어, 영숫자 입력 장치(212)(예를 들어, 키보드), 커서 제어 장치(214)(예를 들어, 마우스, 트랙볼, 조이스틱, 모션 센서, 터치 감지 인터페이스, 또는 다른 포인팅 기구)를 포함할 수 있다. 컴퓨팅 장치(200)는 또한 예를 들어, 저장 유닛(216)(예를 들어, 반도체 디스크(solid state disk), 자기 디스크(magnetic disk), 광 디스크(optical disk)), 신호 생성 장치(signal generation device)(218)(예를 들어, 스피커), 및 네트워크 인터페이스 장치(220)를 포함할 수 있으며, 상기 포함되는 구성들은 버스(208)를 통해 통신하도록 또한 구성된다. 컴퓨팅 장치(200)는 컴퓨팅 장치(200)의 설명되고 기술된 컴포넌트들 모두를 포함할 필요는 없다.
저장 유닛(216)은 본 명세서에 기술된 방법들 또는 기능들 중 임의의 하나 이상의 방법들 또는 기능들을 구현하는 명령어(224)(예를 들어, 소프트웨어)가 저장된 기계-판독가능 매체(222)를 포함한다. 명령어들(224)(예를 들어, 프로그램 코드 또는 소프트웨어)는 컴퓨팅 장치(200)에 의한 그 실행 동안 메인 메모리(204) 또는 프로세서(202) 내에(예를 들어, 프로세서의 캐시 메모리 내에) 완전히 또는 적어도 부분적으로 또한 상주할 수 있으며, 메인 메모리(204) 및 프로세서(202)는 또한 기계-판독가능 매체를 구성한다. 명령어들(224)(예를 들어, 소프트웨어)은 네트워크 인터페이스 장치(220)를 통한 네트워크(226)를 통해 전송되거나 또는 수신될 수 있다.
기계-판독가능 매체(222)는 예시적인 실시예에서 단일 매체인 것으로 도시되는 반면에, "기계-판독가능 매체(machine-readable medium)"라는 용어는 명령어들(예를 들어, 명령어들(224))을 저장할 수 있는 단일 매체(single medium) 또는 복수의 매체(multiple media)(예를 들어, 중앙집중형(centralized) 또는 분산 데이터베이스(distributed database), 또는 연관된 캐시 및 서버)를 포함하여 이루어져야 한다. "기계-판독가능 매체"라는 용어는 머신에 의한 실행을 위해 명령어들(예를 들어, 명령어들(224))을 저장할 수 있는 임의의 매체를 포함하여 또한 취해져야 하며, 상기 임의의 매체는 상기 머신이 본 명세서에 개시된 방법들 중 어느 하나 이상의 방법들을 수행하게 한다. "기계-판독가능 매체"라는 용어는 반도체 기억 장치(solid-state memories), 광학 매체, 및 자기 매체의 형태로 데이터 저장소(data repositories)를 포함하지만, 이에 한정되는 것은 아니다.
블록체인 가능한 시스템을 통한 서비스를 위한 동작의 예(Operational example)
도 2는 예시적인 실시예에 따른 장부 기입 프로세스(booking process)를 도시하는 예시적인 상호작용 다이어그램이다. 일 실시예에서, 장부 기입 프로세스는 사용자 장치(105)가 서비스 장치(110)에 대한 액세스를 획득할(gain) 수 있게 한다. 보다 구체적으로, 사용자 장치(105)는 장부 기입 프로세스동안 서비스 장치(110)에 대한 액세스를 획득하기 위해 블록체인(120)에서 서비스 장치(110)를 나타내는 스마트 계약(115)과 통신한다. 액세스를 획득한 이후에, 사용자 장치(105)는 서비스 장치(110)에 의해 제공되는 서비스를 수신하기 위해 액세스 프로세스를 통해 수행한다(proceeds). 아래에 기술된 다양한 실시예에서 장부 기입 프로세스는 동일하게 유지되는 반면에, 액세스 프로세스는 다를 수 있다.
사용자 장치 및 스마트 계약 사이에서의 장부 기입 프로세스의 예
사용자 장치(105)는 서비스 장치(110)를 나타내는 블록체인(120) 상의 스마트 계약(115)을 검색한다(looks up). 일 예로서, 사용자 장치(105)는 동적 레지스트리에 액세스할 수 있고, 스마트 계약(115) 및 대응하는 서비스 장치(110)를 식별할 수 있다. 동적 레지스트리는 제3자 시스템(예를 들어, 애플리케이션/웹사이트, 호텔 장부 기입 제공자(hotel booking provider), 또는 자동차 대여 장부 기입 제공자(rental booking provider))로부터 액세스될 수 있다.
사용자 장치(105)는 지불 보증금, 서비스 장치의 가용 날짜, 및/또는 다른 정보와 같은 서비스 장치(110)의 파라미터를 특정하는 서비스 장치(110)에 대응하는 스마트 계약(115)의 변수들에 대한 액세스를 획득한다.
사용자는 자신의 사용자 장치(105)를 사용하여, 서비스 장치(110)에 액세스하기 위한 매입 승인(purchase permission)에 대한 블록체인(120) 상의 스마트 계약(115)에 전자적으로 서명된 요청(electronically signed request)을 전송하며(255), 상기 서비스 장치(110)는 예를 들어 락, 세탁기, 자동차 충전 포트, 대여 서비스, 및 서비스를 제공할 수 있는 임의의 장치를 포함한다. 사용자 장치(105)는 사용자에 할당된 사용자 식별자(user identifier)를 포함하는 요청을 생성한다. 예를 들어, 사용자 식별자는 사용자가 블록체인의 멤버(member)로 등록할 때, 사용자에게 할당된 식별자를 지칭할 수 있다. 또한, 생성된 요청은 서비스의 바람직한 파라미터들을 특정하는 변수들뿐만 아니라 지불을 포함한다.
사용자 장치(105)는 상기 사용자에게 할당된 키(예를 들어, 개인/공개 키(private/public key))를 이용하여 요청을 전자적으로 서명한다. 예를 들어, 사용자 장치(105)는 사용자에게 할당된 개인 키를 이용하여 요청을 암호화하는 것에 의해 요청을 전자적으로 서명할 수 있다. 다양한 실시예들에서, 사용자 장치(105)는 전자적으로 서명된 요청에서 사용자에게 할당된 공개 키를 더 포함할 수 있다. 이에 따라, 사용자 장치(105)는 전자적으로 서명된 요청을 전송한다.
블록체인(120)상의 스마트 계약(115)은 사용자 장치(105)에 의해 제공되는 요청을 처리한다. 블록체인(120) 상의 스마트 계약(115)은 전자적으로 서명된 요청을 수신하고 복호화(decrypting)한다. 예를 들어, 요청의 내용(context)(예를 들어, 사용자의 사용자 식별자, 지불, 및 특정된 파라미터)을 획득하기 위해, 전자적으로 서명된 요청은 포함된 공개 키를 이용하여 복호화된다.
스마트 계약(115)은 액세스를 제공하기 위한 조건이 충족되는지 여부를 결정한다(260). 예를 들어 블록체인(120) 상의 스마트 계약(115)은, 스마트 계약(115)의 변수를 만족시키는 정확한 펀드(funds)가 전자적으로 서명된 요청에 포함되었는지 여부를 확인한다(checks). 다른 예로서 일정 기간 동안 호텔 방을 대여하기(rent) 위해, 사용자 장치가 전자적으로 서명된 요청을 전송하고 있을 경우에, 스마트 계약(115)은 사용자에 의해 요청된 숙박 날짜(dates of stay)를 특정하는 요청에 포함된 파라미터를 확인하고, 서비스 장치(130)의 소유자에 의해 미리 설정된 상기 스마트 계약(115)의 변수들에 저장된 가용 날짜와 상기 숙박 날짜를 비교한다. 특정된 날짜가 이용 가능할 경우에(예를 들어, 아무도 그 시간에 상기 호텔 방을 대여하지 않을 경우에), 스마트 계약(115)은 상기 조건이 충족된 것으로 간주한다.
스마트 계약(115)은 지불이 사용자 장치(105)로부터 수신되고, 서비스 장치(110)에 대한 액세스가 이제 부여된(granted) 것을 반영하도록 그 승인 데이터 구조(permission data structure)를 업데이트한다(updates)(265). 일 예로서, 승인 데이터 구조는 대응하는 서비스 장치(110)에 대한 액세스를 부여한 사용자 식별자를 포함하는 키-값 쌍 데이터베이스(key-value pair database)일 수 있다. 따라서, 스마트 계약(115)은 전자적으로 서명된 요청에 포함된 사용자 식별자를 가지는 승인 데이터 구조를 업데이트할 수 있으며, 이에 의해 사용자 식별자가 서비스 장치(110)에 대한 액세스가 부여된 것을 나타낸다.
사용자 장치(105)가 블록체인(120)에 대한 액세스를 갖을 경우에(예를 들어, 사용자 장치(105)가 블록체인(120) 상의 노드일 경우에), 사용자 장치(105)는 블록체인(120)으로부터 데이터를 지속적으로 획득하여, 블록체인(120)의 국부적으로 동기화된 복사본을 업데이트하고, 서비스 장치(110)에 대한 액세스 권한이 사용자 식별자에 부여되었음을 검증한다(270). 이에 따라, 장부 기입 프로세스가 완료된다.
사용자 장치 및 스마트 계약 간의 액세스 프로세스의 예
도 3은 제1 실시예에 따른 액세스 프로세스를 도시하는 예시적인 상호작용 다이어그램이다. 액세스 프로세스는 사용자 장치(105)가 서비스 장치(110)에 대한 요청을 시작하고, 서비스 장치(110)에 의해 제공되는 서비스를 수신하는 프로세스를 지칭한다. 도 3에 도시된 실시예에서, 사용자 장치(105)는 서비스 장치(110)로 직접 요청을 전송한다. 서비스 장치는 사용자 장치(105)가 서비스 장치(110)를 동작시키는 권한을 갖는지 여부를 검증할 수 있다. 이러한 실시예에서, 서비스 장치(110)는 블록체인(120)에 대한 액세스를 가지고(예를 들어, 블록체인(120) 내 노드임), 이에 따라서 상기 블록체인(120)으로부터 데이터를 지속적으로 획득하여, 스마트 계약(115)의 국부적으로 동기화된 복사본을 업데이트한다.
도 3에 도시된 바와 같이, 사용자 장치(105)는 서비스를 요청하기 위해 전자적으로 서명된 메시지를 서비스 장치(110)로 전송한다(305). 이를 위해, 사용자 장치(105)는 메시지를 생성한다. 다양한 실시예들에서, 메시지는 서비스 장치(110) 및 요청된 서비스를 기술하는 추가 정보를 식별한다(identifies). 또한, 상기 메시지는 상기 사용자에 할당된 사용자 식별자를 포함할 수 있다. 사용자 장치(105)는 사용자에 할당된 개인키를 이용하여 메시지를 암호화하는 것에 의해 메시지를 전자적으로 서명한다. 사용자 장치(105)는 전자적으로 서명된 메시지에서 사용자에 할당된 공개 키를 더 포함할 수 있다.
전자적으로 서명된 메시지는 상이한 사용자 입력에 응답하여 전송될 수 있다. 예를 들어 사용자는 블록 체인(120), 및 전자적으로 서명된 메시지를 트리거하는 서비스 장치(110)와의 통신 프로토콜들을 포함하는 사용자 장치(105)에 설치된 애플리케이션을 개방할(open) 수 있다. 서비스 장치(110)가 하나 이상의 서비스를 제공할 수 있을 경우에, 사용자는 바람직한 서비스를 특정하는 입력을 더 제공할 수 있다. 전자적으로 서명된 메시지의 전송은 통신 프로토콜(이더리움의 위스퍼(ETHEREUM's WHISPER), 테라해쉬(ELAHASH), 또는 임의의 유사한 기술)을 이용하여 무선 기술 표준(블루투스/NFC/Wifi, 이들의 모든 변형 및 파생 또는 유사한 기술)를 통해 발생할 수 있다.
서비스 장치(110)는 전자적으로 서명된 메시지를 수신하고, 전자적으로 서명된 메시지의 서명을 검증한다(310). 예를 들어, 서비스 장치(110)는 암호 서명 검증을 통해 서명을 검증할 수 있다. 또한, 서비스 장치(110)는 서명된 메시지로부터 사용자 식별자를 도출하는 것에 의해 사용자 식별자를 추출할 수 있다. 여기서, 서비스 장치(110)는 공개 키를 이용하여 전자적으로 서명된 메시지를 복호화하고, 사용자 식별자를 획득할 수 있다. 서비스 장치(110)는 사용자 장치(105)가 서비스 장치(110)에 대한 액세스가 부여된 것을 검증한다(315). 예를 들어, 서비스 장치(110)는 블록체인(120)으로부터 지속적으로 획득된 스마트 계약(115)의 국부적인 동기화된 복사본을 검색한다(retrieves). 따라서 서비스 장치(105)는 전자적으로 서명된 메시지로부터 추출된 사용자 식별자를 스마트 계약 (115)의 그 국부적인 복사본의 승인 데이터 구조에 리스트된(listed) 사용자 식별자와 비교한다.
일단 사용자 장치(105)에 대응하는 사용자 식별자가 서비스 장치(110)에 대한 액세스를 갖는지가 검증되면, 서비스 장치(110)는 요청된 서비스를 제공한다. 또한, 서비스 장치(110)는 서비스가 사용자 장치(110)에 제공된 것을 나타내는 서비스 장치(105)에 대한 정보를 제공할 수 있다. 선택적으로, 사용자 장치는 상기 요청이 성공하였고, 상기 서비스가 제공된 것을 나타내는 표시(indication)와 같은 프로세스의 결과를 (예를 들어, 사용자 장치(105)의 사용자 인터페이스(230) 상에) 디스플레이한다(displays)(325).
블록체인-전용 동작(blockchain-only operation)의 동작의 예(예를 들어, 도 4A 및 도 4B)
도 4A는 제2 예시적인 실시예에 따른 예시적인 블록체인 가능한 운영 환경을 도시한다. 기서 도 4A는, 서비스가 상기 서비스 장치(110)에 의해 제공되는 경우에 사용자 장치(105) 및 서비스 장치(105) 각각이 블록체인(120)과 통신하는 도 1A와 다르다. 다시 말해 이러한 동작 모드(mode of operation)에서, 사용자는 자신의 사용자 클라이언트 장치(user client device)(150)를 사용하여, 상기 블록체인(120)상의 상기 스마트 계약(115)으로 전송된 트랜잭션들만(solely transactions) 이용하여 상기 서비스 장치(110)에 의해 제공되는 서비스를 수신한다.
사용자 장치(105)는 도 2에서 이전에 기술된 바와 같은 장부 기입 프로세스를 통해 수행한다. 액세스 프로세스 동안, 사용자 장치(105)는 전자적으로 서명된 메시지들을 통해 블록체인(120)으로 요청을 전송한다(emits). 서비스 장치(110)는 상기 블록체인(120)으로부터 데이터를 정기적으로 획득하여, 매칭하는(matching) 스마트 계약(115)의 상태에 대한 변경을 위해 블록체인(120)의 국부적인 동기화된 복사본을 업데이트하고, 요청의 일부로 요청된 동작을 수행하도록 사용자 식별자가 허가된 것을 검증한 이후에, 그에 따라 동작한다.
보다 구체적으로, 도 4A에 도시된 제2 실시예에 따른 액세스 프로세스를 도시하는 예시적인 상호작용 다이어그램인 도 4B를 참조한다. 사용자 장치(105)는 서비스 장치(110)로부터 서비스를 요청하는 메시지를 생성할 수 있다. 메시지는 사용자 장치(105)의 사용자에 할당된 사용자 식별자, 서비스 장치(110)의 식별, 및 서비스 장치(110)에 의해 제공될 서비스를 기술하는 정보를 포함할 수 있다. 사용자 장치(105)는 사용자에 할당된 개인 키를 이용하여 메시지를 암호화하는 것에 의해 메시지를 전자적으로 서명하고, 사용자에게 할당된 공개 키를 더 포함한다.
사용자 장치(105)는 서비스 장치(110)를 나타내는 블록체인(120) 상의 스마트 계약(115)에 그것의 공개 키를 포함하는 전자적으로 서명된 메시지를 전송한다. 블록체인(120)상의 스마트 계약(115)은 전자적으로 서명된 메시지를 수신하고, 전자적으로 서명된 메시지를 (예를 들어, 암호 서명 검증 방법(cryptographic signature verification methods)을 통해) 검증하고, 상기 전자적으로 서명된 메시지를 상기 공개 키를 이용하여 복호화하고, 사용자 식별자를 추출한다. 스마트 계약(115)은 추출된 사용자 식별자가 서비스 장치(110)에 대한 액세스 권한을 가졌는지 검증한다(455). 예를 들어, 상기 스마트 계약(115)은 그것의 승인 데이터 구조를 그것의 저장소(storage)의 일부로 액세스하고, 상기 승인 데이터 구조에 리스트된 사용자 식별자와 상기 추출된 사용자 식별자를 비교한다. 스마트 계약(115)은 그것의 내부 데이터 저장소(internal data store)의 일부로 서비스 장치 요청(service device request)을 큐 삽입한다(queues up).
서비스 장치(110)는 블록체인(120)(예를 들어, 블록체인의 노드)에 대한 액세스를 가지므로, 스마트 계약(115)의 국부적인 연속적으로 동기화된 복사본을 저장한다. 상기 서비스 장치는 블록체인(120)을 획득하여(polls)(460), 블록체인(120) 상의 대응하는 스마트 계약(115)에서 발생한 임의의 상태 변화를 갖는 국부적으로 동기화된 복사본을 업데이트한다. 예를 들어, 상태 변화는 이제 새로운 사용자 장치가 서비스 장치(110)에 대한 액세스를 가지는 것을 나타낼 수 있다. 또한, 상태 변경은 블록체인(120) 상의 스마트 계약(115)에 의해 큐 삽입된(queued up) 미결제 서비스 장치 요청(outstanding service device request)을 나타낼 수 있다.
서비스 장치(110)가 미결제 서비스 장치 요청을 검출할 경우에, 서비스 장치(110)는 요청된 서비스를 제공한다. 선택적으로, 사용자 장치는 서비스가 제공되었음을 나타내는 표시와 같은 요청의 결과를 디스플레이한다(470). 사용자 장치는 블록체인(120)의 자신의 복사본에 대한 정기적인 획득(regular polling)을 통해 이러한 정보를 획득할(obtain) 수 있고, 이전에 큐 삽입된 서비스 장치 요청이 이제 완료되었음을 알 수(noting) 있다.
하나 이상의 서비스 장치들과 통신하는 프록시 장치의 동작의 예
도 5A는 예시적인 실시예에 따른 프록시 장치를 이용하는 액세스 프로세스를 도시하는 예시적인 상호작용 다이어그램이다. 이러한 예시적인 실시예에서 프록시 장치(550)는 하나 이상의 서비스 장치들(110)을 대신하여 통신한다. 예를 들어, 프록시 장치(550)는 상기 서비스 장치(110)(와 또한 하나 이상의 다른 서비스 장치들(110))와 통신하기 위해 미리 등록되고 사전-허가될(pre-authorized) 수 있다. 이러한 예시적인 실시예들에서, 프록시 장치(550)의 구현은 블록체인(120)과 직접 통신할 수 없는 서비스 장치(110)에 유용할(beneficial) 수 있다. 상술된 바와 같이 프록시 장치(550)는, 사용자 장치(105)가 서비스를 요청할 수 있고, 프록시 장치(550)가 적절한 로직을 수행하여, 서비스 장치(110)가 요청된 서비스를 제공하게 하는 경우의, 블록체인(120) 상의 사용자 장치(105) 및 스마트 계약(115)과 통신하도록 구성된 컴퓨팅 장치(200)일 수 있다.
사용자 장치(105)는, 도 2에서 상술된 바와 같은 장부 기입 프로세스를 통해 수행한다. 도 5A에 도시된 상호작용 다이어그램을 참조하면, 액세스 프로세스 동안 사용자 장치(105)는, 그것의 공개 키를 포함하는 전자적으로 서명된 메시지를 프록시 장치(550)로 전송한다(transmits or sends)(505). 이러한 전자적으로 서명된 메시지는 도 4B의 단계(450)와 관련한 위의 설명에 따라 사용자 장치(105)에 의해 생성될 수 있다. 프록시 장치(550)는 전자적으로 서명된 메시지를 수신하고, 사용자 식별자를 추출하며, 상기 추출된 사용자 식별자가 상기 서비스 장치(110)에 대한 액세스 권한을 갖는지 검증한다(510). 여기서, 프록시 장치는 블록체인(120)에 대한 액세스를 가지므로(예를 들어, 블록체인(120)의 노드), 상기 블록체인(120)의 국부적인 동기화된 복사본을 저장한다. 상기 프록시 장치는, 상기 사용자 식별자를 포함하는 상기 스마트 계약의 국부적인 동기화된 복사본과 상기 추출된 사용자 식별자를 비교하는 것에 의해 상기 추출된 사용자 식별자가 액세스 권한을 갖는지 검증한다(515).
일단 프록시 장치(550)가, 사용자 장치(105)가 서비스 장치(110)에 액세스할 수 있는지 검증하였으면, 프록시 장치(550)는 상기 서비스 장치(110)로 동작 요청을 전송한다. 상기 동작 요청에 응답하여, 서비스 장치는 서비스를 제공한다(520). 서비스 장치(110)는 상기 서비스가 제공되었음을 나타내는 동작의 요청에 대한 응답을 다시 프록시 장치(550)로 전송한다. 프록시 장치(550)는 사용자 장치(105)로 응답을 더 전송할 수 있다. 사용자 장치(105)는 동작의 결과를 디스플레이에 선택적으로 제공할 수 있다(525).
도 5B는 예시적인 실시예에 따른 프록시 장치의 하드웨어 및 소프트웨어 계층들의 예를 도시한다. 상술한 바와 같이, 다양한 실시예들에서 프록시 장치는 클라우드 서버(cloud server)이다. 따라서, 프록시 장치의 하드웨어 계층은 프록시 장치의 프로세서를 포함할 수 있으며, 상기 하드웨어 계층은 복수의 지리적 위치에 걸쳐 분산될 수 있다. 일반적으로, 하드웨어 및/또는 소프트웨어 계층들은 프록시 장치(550)가 블록체인(120)과 통신할 수 있게 한다. 블록체인(120)은 하나 이상의 분산된 컴퓨팅 장치 상에서 실행될 수 있고, 하나 이상의 스마트 계약들(115) 및 분산 원장(예를 들어, 블록체인(120))을 포함할 수 있다.
예로서, 프록시 장치(550)는 하드웨어(예를 들어, 라즈베리 파이(RASPBERRY PI), 인텔 에디슨(INTEL EDISON), 삼성 아틱(SAMSUNG ARTIK) 등과 같은 내장 보드 프로세서(embedded board processor)) 및/또는 프로세서(202), 그래픽 디스플레이(210)와 같이 도 2A에 기술된 다양한 장치들, 및 블록체인(120)에 직접 액세스할 수 있거나 또는 할 수 없는 서비스 장치(110) 및 블록체인(120) 사이에서 통신이 가능하도록 구성된 기계 판독가능 매체(222)를 포함할 수 있다. 프록시 장치(550)는 또한 운영 시스템(Operation System)을 포함한다. 예를 들어, 프록시 장치(550)에 의해 이용되는 운영 시스템의 예는 우분투 스내피 코어(UBUNTU Snappy core)이다. 다른 예에서, 프록시 장치(550)에 의해 이용되는 운영 시스템은 구글 안드로이드(GOOGLE ANDROID) 또는 애플 아이오에스(APPLE IOS)일 수 있다. 운영 시스템을 통해, 프록시 장치(550)는 하나 이상의 상이한 서비스 장치들(110)과 통신할 수 있다. 예를 들어, 프록시 장치(550)는 애플리케이션 또는 통신 프로토콜을 통해 (예를 들어, 집에서, 호텔에서) 이용 가능한 모든 호환 가능한 서비스 장치들(compatible service devices)(110)을 검출하고, 상기 호환 가능한 서비스 장치들과 통신할 수 있다. 따라서, 프록시 장치(550)의 소유자는 상기 프록시 장치(550)와 통신하는 상기 서비스 장치들(110) 각각에 대한 파라미터들(예를 들어, 보증금, 대여 비용(cost of rental), 가용 시간(time availability))을 설정할 수 있다.
또한, 프록시 장치(550)는 블록체인(120)과의 통신을 가능하게 하는 소프트웨어 프레임워크를 포함한다. 예를 들어, 상기 프록시 장치(550)는 상기 블록체인(120)과 통신하는 소프트웨어 프레임워크와 하나 이상의 제3자 애플리케이션들 사이의 통신을 가능하게 할 수 있는 제어기 애플리케이션과 통신하는 소프트웨어 프레임워크를 포함할 수 있다. 또한, 프록시 장치(550)는 사용자 입력들을 수신할 수 있는 사용자 인터페이스를 포함할 수 있다.
상태 채널들의 사용을 포함하는 동작의 예
도 6은 상태 채널들의 사용을 포함하는 실시예를 열거하는 액세스 프로세스 흐름도를 도시한다. 상태 채널은, 서비스 장치(110)(또는 동일한 소유자가 소유하는 복수의 서비스 장치들)로부터 사용자 장치(105)가 복수의 상이한 서비스들(또는 반복되는 서비스들)에 대한 복수의 트랜잭션들을 전송할 수 있는 통신을 가능하게 한다. 따라서, 사용자 장치(105) 및 서비스 장치(110)는 상태 채널을 통해 제공된 서비스들과 연관된 비용을 기록하고(tally), 상태 채널이 폐쇄되는 경우에 블록체인(120) 상의 스마트 계약(115)을 통한 단일 지불(single payment)을 통해 상기 복수의 트랜잭션들을 정산할(settle) 수 있다.
일 예로서, 서비스 장치(110)는 한 기간(time period) 동안 여러 번 락되거나(locked)/언락될(unlocked) 필요가 있을 수 있다. 따라서, 모든 락(lock)/언락(unlock) 이후에 블록체인(120) 상의 스마트 계약(115)을 이용하여 지불을 정산하는 대신에, 상기 상태 채널이 폐쇄된 이후에 서비스 장치(110)는 정산할 수 있다. 다양한 실시예들에서, 상태 채널은 미리 결정된 양의 시간 또는 미리 결정된 수의 락들/언락들 이후에 폐쇄될 수 있다.
도 6은 사용자 장치(105)와 단일 서비스 장치(110) 사이의 상태 채널 통신을 도시함에도 불구하고, 당업자는 또한 상태 채널들이 (예를 들어, 도 5A에 도시된 바와 같은) 프록시 장치(550)와 관련하여 사용될 수 있다는 것을 알 수 있다. 따라서, 사용자 장치(105)는 사용자 장치(105) 및 프록시 장치(550) 사이에서 개방된 상태 채널에 걸쳐 프록시 장치(550)에 복수의 요청들을 제공할 수 있다. 따라서, 프록시 장치(550)는 복수의 요청들을 검증할 수 있고, 상기 서비스 장치(110)가 요청된 서비스들을 제공하도록 적절하게 명령할(instruct) 수 있다. 상태 채널이 폐쇄된 이후에, 사용자 장치(105) 및 프록시 장치(550)는 제공된 서비스들에 대한 지불을 정산할 수 있다.
특정 예로서, 프록시 장치(550)는 호텔 방에 배치될 수 있다. 호텔 방이 제공할 수 있는 서비스들은, 방에 대한 액세스를 제공하기 위해 문을 여는 것, 호텔 방의 미니-냉장고에서 음료수에 대한 액세스를 제공하는 것, 및/또는 호텔 방의 텔레비전 상의 영화에 대한 접근을 제공하는 것, 및/또는 숙박이 끝난 이후에 호텔 방에서 체크 아웃하는 것을 포함할 수 있으나, 이에 제한되는 것은 아니다. 호텔 방의 프록시 장치(550)와 통신하는 호텔 방 내의 서비스 장치(110)에 각각의 서비스는 대응한다. 이러한 시나리오에서, 사용자 장치(105)는 복수의 서비스 장치(110)와 통신하는 사용자 장치(105) 및 프록시 장치(550) 사이의 통신을 가능하게 하는 상태 채널들을 사용할 수 있다. 따라서 상태 채널이 폐쇄될 때, 블록체인(120) 상의 스마트 계약(115)은 장치(550)와 통신하는 서비스 장치(110)에 의해 제공되는 복수의 서비스들에 대한 단일 지불을 수신한다.
도 6에 도시된 상호작용 다이어그램을 참조하면, 상기 사용자 장치는 상기 서비스 장치(110)(또는 상기 프록시 장치(550))로 전자적으로 서명된 메시지를 전송한다(605). 여기서, 사용자 장치(105)는 서비스 장치(110)가 상태 채널을 개방하도록 요청하는 메시지를 생성한다. 다양한 실시예들에서, 상기 메시지는 사용자 장치(105)의 사용자에게 할당된 사용자 식별자를 포함할 수 있다. 또한, 상기 메시지는 상기 상태 채널이 얼마나 개방되어 유지해야 하는지(예를 들어, 제공된 서비스들에 대한 기간 또는 최대 비용 또는 개수)와 같은 세부 사항을 포함할 수 있다. 사용자 장치(105)는 사용자에 할당된 개인 키를 이용하여 메시지를 암호화하는 것에 의해 메시지를 전자적으로 서명하고, 사용자에게 할당된 공개 키를 더 포함한다.
서비스 장치(110)는 전자적으로 서명된 메시지를 수신하고, 메시지 요청의 서명을 검증하고(610), 사용자 식별자를 추출한다. 예를 들어, 서비스 장치(110)는 전자적으로 서명된 메시지를 검증하기 위해 암호 서명 검증(cryptographic signature validation)을 수행한다. 서비스 장치(110)는 공개 키를 이용하여 서명된 메시지를 복호화하고, 사용자 식별자를 추출한다. 서비스 장치(110)는 블록체인의 국부적으로 저장된 동기화된 복사본을 질의하는 것에 의해 추출된 사용자 식별자가 서비스 장치에 대한 액세스 권한들을 갖는지 검증한다(615).
일단 서비스 장치(110)가, 사용자 장치(105)가 서비스 장치에 액세스할 수 있는지 검증하면, 서비스 장치는 상태 채널을 개방한다(620). 선택적으로, 사용자 장치(105)는 사용자에게 통지하기 위해 상태 채널의 개방의 결과를 디스플레이에 제공할 수 있다(625). 상기 상태 채널이 상기 사용자 장치(105)와 상기 서비스 장치(110) 사이에서 개방된 상태로 유지되는 동안에, 사용자 장치(105)는 하나 이상의 서명된 메시지들을 전송함으로써 서비스 장치(110)의 하나 이상의 서비스들을 요청할 수 있다(630). 서비스 장치(110)는 서명된 요청이 상태 채널을 통해 수신된 사실로 인해, 사용자 장치(105)로부터의 요청에 응답하여 요청된 하나 이상의 서비스들을 제공할 수 있다(635). 이 시간 동안 사용자 장치(105) 및 서비스 장치(110)는, 상태 채널이 개방된 이후로부터 제공되어온 서비스들에 대한 계산(tally)을 관리한다. 단계(630 및 635)는 상태 채널이 폐쇄될 때까지 계속될 수 있다. 상태 채널의 폐쇄는 시간(예를 들어, 하루의 끝) 또는 총 서비스 개수(예를 들어, 10 개의 서비스들을 제공한 후에 폐쇄)로 인한 상태 채널의 미리 결정된 만료(expiration)로 인한 것일 수 있지만, 서비스를 운영하기 위해 미리 결정된 총 비용에 도달했는지 여부 등일 수도 있다. 일부 실시예들에서 상태 채널의 폐쇄에 따라, 제공된 서비스들에 대한 비용은 블록체인(120) 상의 스마트 계약(115)을 통해 정산된다. 다른 예시적인 실시예들에서, 사용자 장치(105) 또는 서비스 장치(110)는 상태 채널이 폐쇄될 때까지 대기할 필요가 없고, 미리 결정된 간격으로 제공된 서비스들에 대한 비용을 정산할 수 있다.
게이트웨이 클라이언트 장치의 동작의 예
도 7A 및 도 7B를 참조하면, 다른 실시예에서 서비스 장치(110)는 블록체인(120)과 직접 통신하는 능력을 갖지 않을 수 있다. 예를 들어, 서비스 장치(110)는 인터넷 연결이 없을 수 있다. 따라서 도 7A에서 IoT 장치라고도 지칭되는 서비스 장치(110)는, 도 7A에서 게이트웨이라고도 지칭되는, 인터넷 가능한 사용자 장치(105)를 사용하여, 블록체인(120)에 액세스할 수 있는 도 7A에서의 신뢰된 클라이언트(trusted client)(704)와 통신한다.
서비스 장치(110) 자체는 인터넷 연결 가능할 필요가 없다. 서비스 장치(110)는 다른 통신 매체를 통해 사용자 장치(105)와 통신할 수 있다. 예를 들어, 이러한 통신 채널이 양방향 메시지 전송(bi-directional sending of messages)이 가능하는 한, 통신은 블루투스, 근거리 무선 통신(NFC), 또는 임의의 다른 유사한 기술을 통해 설정될 수 있다. 서비스 장치(110)는 신뢰된 클라이언트들의 정보를 포함하는 화이트리스트를 저장하는 메모리를 더 포함할 수 있다(710). 또한, 서비스 장치(110)는 사용자 장치(105)로부터 요청의 일부로 포함된 암호 서명(cryptographic signature)과 같은 암호 서명들을 검증할(validate) 수 있다.
게이트웨이(702)는 임의의 장치일 수 있고, 서비스 장치(110)와의 통신 채널(예를 들어, 블루투스, NFC)을 지원할(support) 수 있다. 게이트웨이(702)의 예는 사용자 장치(105)일 수 있다. 일부 실시 예에서, 게이트웨이(702)는 공개/개인 키 쌍을 보유하고, 메시지를 공개 키로 서명할 수 있다. 따라서, 게이트웨이(702)는 서명된 메시지를 서비스 장치(110)에 전송함으로써 검증-프로세스(validation-process)를 시작할 수 있다. 게이트웨이(702)는 신뢰된 클라이언트(710)를 사용하여 블록 체인(120)에 연결하기 위해 서비스 장치(110)에 인터넷 연결을 제공한다.
신뢰된 클라이언트(710)는 블록 체인(120)에 액세스를 제공하는 다른 복수의 호스트들에 의해 제공되는 서비스 일 수 있다. 각각의 신뢰된 클라이언트(704)는 (게스(geth), 에스(eth), 패리티(parity) 등과 유사한 클라이언트를 사용하여) 항상 동기화되는(synced) 블록 체인(120) 내의 노드로서 동작할 수 있다. 또한, 각각의 신뢰된 클라이언트(704)는 개인 키에 액세스할 수 있고, 요청을 서명할 수 있다.
셋 업(set up) 동안, 서비스 장치(110)의 소유자는 서비스 장치(110)에 대한 블록 체인(120) 상의 스마트 계약(115)을 사용한다(deploys). 여기서, 값들은 서비스 장치(110)의 저장소(storage)(예를 들어, 메모리)에 기록될 수 있다. 값들은 서비스 장치의 소유자에 의해 설정된, 신뢰된 클라이언트들의 초기 화이트리스트(initial whitelist)(704)를 포함할 수 있다.
도 7B를 참조하면, 도 7B은 예시적인 실시 예에 따라 사용자 장치(105) 및 신뢰된 클라이언트(704)를 통해 서비스 장치(110)에 의한 블록 체인 액세스(blockchain access)를 가능하게 하는 프로세스를 도시한다. 구체적으로 도 7B에 도시된 바와 같이, 서비스 장치(110)(IoT 장치)는 안전한 것으로 간주되는 신뢰된 클라이언트 인스턴스들(instances)의 리스트(list)를 관리하는 인증서들(certificates)의 화이트리스트(whitelist)를 유지 관리한다(maintains)(705). 화이트리스트는 신뢰된 클라이언트(704)의 인터넷 프로토콜 주소 및 신뢰된 클라이언트(704)의 포트/공개 키와 같은 신뢰된 클라이언트의 정보(710)를 포함할 수 있다. 화이트리스트 자체는 스마트 계약(115)으로서 블록 체인(120) 상에 저장될 수 있다. 이 화이트리스트는 각 노드 인스턴스(node instance)에 대해 결정하기 위해 멀티시그(multisig)를 사용하는 사용자의 그룹 또는 협회(foundation)에 의해 관리될 수 있거나, 노드들의 리스트 중앙에서(centrally) 제어하기 위해 그것을 사용할 수 있는 기업(corporates)에 의해 관리될 수 있다. 화이트리스트가 항상 최신(up-to-date)이고, 오류가 발생하거나(failed) 또는 존재하지 않는(non-existing) 노드들이 없다는 것을 확실히 하기 위해, 크론잡(cronjob) 또는 그 유사한 것이 리스트에서 항목들(entries)을 관찰하고 독립 클라이언트(independent client)와 결과를 비교하는 테스트 요청(test-requests)을 실행할 수 있다. 결과가 일치하지 않은 경우에, 이러한 클라이언트는 리스트에서 제거된다.
서비스 장치(110)는 먼저 게이트웨이(702) 장치를 검증한다(verifies)(단계(710-730)). 게이트웨이(702)는 서비스 장치와의 연결(connection)을 설정한다(establishes)(710). 서비스 장치는 난수(random number)(예를 들어, 랜덤 시드(random seed))를 생성하고(715), 랜덤 시드를 게이트웨이로 전송한다(720). 이러한 시드는 메시지가 재사용될(reused) 수 없다는 것을 보장할 것이고, 중간자 공격(man in the middle-attack)을 방지한다.
게이트웨이(702)에 의해 전송된 연결을 설정하는(예를 들어, 단계(710)) 요청의 예는 다음과 같을 수 있다.
Figure pct00001
랜덤 시드를 포함하는 서비스 장치로부터의 응답(예를 들어, 단계(720))은 다음과 같이 표현될 수 있다.
Figure pct00002
일단 게이트웨이가 시드를 수신하면, 게이트웨이는 서명된 메시지를 전송한다(725). 이는 블루투스, NFC 또는 유사한 기술을 통해 발생할 수 있다. 이러한 메시지의 생성은 다음과 같은 형태를 취할 수 있다.
var msgHash = seed + sender + method;
ethUtil. ecsign (msgHash, privateKey)
이는 다음과 같이 서명된 메시지를 생성하게 한다.
Figure pct00003
서비스 장치(110)는 게이트웨이(702)로부터의 서명된 메시지를 검증할 수 있다(730). 예를 들어, 서비스 장치(110)는 게이트웨이의 서명된 메시지로부터 공개 키를 도출할(derive) 수 있다. 이러한 검증은 다음과 같은 의사 코드(pseudo code)의 형태를 취할 수 있다.
senderPubKey=ethUtil.ecrecover(msgHash,v,r,s)
상기에서 도출된 공개 키가 메시지의 일부로서 전달된 키와 일치하면, 서비스 장치는 메시지가 실제로 메시지에 특정된 게이트웨이(702)에 의해 메시지로 전송된 것임을 확인한다(confirms).
게이트웨이의 신원(identity)을 검증한 이후에, 서비스 장치(110)는 이 공개 키의 소유자가 또한 서비스 장치(110)를 사용하도록 허가되는지 여부를 결정한다. 서비스 장치(110)는 그것의 화이트리스트 상에 유지 관리되는 신뢰된 클라이언트(704)를 선택하고(735), 게이트웨이(702)로 전송되는(745) 요청을 생성한다(740). 여기서 게이트웨이(702)로 전송되는 요청은, 상태 변화(state change)가 있는지 여부를 확인하기(check) 위해, 블록 체인(120)에 저장된 스마트 계약(115)을 획득하는(poll) 요청일 수 있다(예를 들어, 단계(460) 참조).
이러한 요청의 생성은 다음과 같은 형태를 취할 수 있다.
function hasPermission (address user, uint commandCode) constant returns(boolean is-allowed)
그리고 요청(예를 들어, 단계(745)에서 전송된 요청) 자체는 다음과 같은 의사 코드에 의해 표현될 수 있다.
Figure pct00004
Figure pct00005
게이트웨이(702)가 클라이언트 및 시드 파라미터를 포함하는 그러한 요청을 수신할 때, 그것은 특정된 신뢰된 클라이언트(704)에 대한 HTTP(또는 https) 연결을 설정할 것이고, 요청을 전송한다(forward)(750). 상기 요청은 신뢰된 클라이언트(704)를 호스팅하는(hosting) 서버에 POST 요청의 형태를 취할 수 있다. 신뢰된 클라이언트에서 서비스 장치의 질의(Service Device's query)를 실행할 것인(752) 신뢰된 클라이언트(704)에 의해 이 요청은 수신될 것이다. 신뢰된 클라이언트(704)는 신뢰된 클라이언트의 개인 키를 사용하여 서명된 메시지의 형식의 서명된 응답을 생성한다(755). 이러한 응답의 생성은 다음과 같은 형식을 취할 수 있다.
var msgHash = crypto.SHA256( request. method + JSON.stringify( request. params) + request. seed
+ JSON.stringify( response. result));
ethUtil. ecsign (msgHash, privateKey)
(예를 들어, 단계(755)에서 생성된) 응답 메시지는 질의의 결과를 포함할 수 있고, 서명된 필드(signed field)를 추가할(add) 수 있고, 다음과 같은 의사 코드에 의해 표현될 수 있다.
Figure pct00006
예로서, (예를 들어, 단계(755)에서 생성된) 응답 메시지는 스마트 계약(115)에 대한 변경들을 포함할 수 있거나, 큐 삽입된(queued) 서비스 장치 요청을 포함할 수 있다. 따라서, 이 정보가 서비스 장치(110)에 의해 수신될 때, 서비스 장치(110)는 스마트 계약(115)에 대한 변경을 이용하여 국부적으로 저장된 스마트 계약(115)를 업데이트하거나, 큐 삽입된 서비스 장치 요청에 응답하여 서비스를 제공할 수 있다.
신뢰된 클라이언트는, 서비스 장치(110)에 이러한 응답을 전송하는(765) 게이트웨이(702)로 이러한 서명된 메시지를 전송한다(760). 서비스 장치(110)는 수신된 데이터 패키지 내의 신뢰된 클라이언트(704)의 서명을 검증한다(770). 이는 메시지로부터 신뢰된 클라이언트(704)의 공개 키를 추출하고, 그것을 서비스 장치(110)의 화이트리스트에 저장된 것과 비교함으로써 수행될 수 있다.
일 실시 예에서, 서비스 장치(110)는 메시지의 서명이 유효한(valid) 경우 게이트웨이(702)에 메시지를 회신한다(returns). 게이트웨이(702)로 회신된 메시지는 신뢰된 클라이언트(704)에 의한 질의가 성공적인지 여부에 따라 성공 또는 실패 결과를 포함할 수 있고, 다음과 같은 의사 코드의 형태를 취할 수 있다.
Figure pct00007
또 다른 고려 사항
본 발명의 블록체인 가능한 환경의 개시된 실시예는, 분산된 블록체인에 영향을 줄 동안 다양한 서비스 장치들로부터의 서비스들에 액세스할 수 있게 한다. 개시된 실시예들의 이점은 수배(several-fold)이다.
예로서 특정 서비스 장치를 관리하는 분산 블록체인 상의 스마트 계약의 구현은, 서비스와 지불의 안전한 거래를 보장한다. 결제 및 결제 방법. 예를 들어 분산 원장으로서 블록체인은, 지불이 분산 원장에 변경할 수 없게(immutably) 기록되는 것을 보장할 수 있다.
또한 예로서 사용자 장치에 대한 능력은, 사용자 장치의 사용자가 중개인(middle man)을 필요로 하지 않고 서비스 장치에 용이하게 액세스할 수 있는 것을 분산된 블록체인이 보장하도록 영향을 줄 수 있다. 특정 예로서 사용자 장치의 사용자는 블록 체인 상의 호텔 방에 대응하는 스마트 계약에 지불을 제공할 수 있다. 따라서, 사용자는 특정 범위의 날짜에 호텔 방을 장부 기입할 수 있다. 사용자가 호텔 방에 도착할 때, 호텔 방에 대한 키들을 획득하기 위해 프론트 데스크에서 체크 인해야 하는 대신에, 사용자는 사용자 장치를 사용하여 호텔 방(예를 들어, 서비스 장치)의 락을 언락하는(unlocking) 것으로써 호텔 방에 대한 액세스를 획득할(gain) 수 있다.
본 발명의 실시예들에 대해 전술한 설명은 설명을 위한 목적으로 제공되었으며, 이는 개시된 정확한 형태로 본 발명을 제한하거나 한정하는 것으로 의도되지 않는다. 관련 기술 분야의 당업자는 상기 개시의 관점에서 많은 개조 및 변형이 가능하다는 것을 알 수 있다.
본 설명의 일부분은, 정보에 대한 동작의 알고리즘 및 기호 표현의 관점에서 본 발명의 실시예를 기술한다. 이러한 알고리즘 설명 및 표현은 데이터 처리 기술 분야의 당업자에 의해 그 작업의 내용을 본 기술 분야의 다른 당업자에게 효과적으로 전달하도록 일반적으로 사용된다. 이러한 동작들이 기능적으로, 연산적으로, 또는 논리적으로 기술된 반면에, 컴퓨터 프로그램 또는 등가의 전기 회로, 마이크로코드 등에 의해 구현되는 것으로 이해해야 한다. 또한, 보편성을 잃지 않고 이러한 동작들의 구성을 모듈로 지칭하는 것은 종종 편리하게 입증된다. 기술된 동작들 및 그 연관된 모듈들은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합으로 구현될 수 있다.
본 명세서에 기술된 단계, 동작 또는 프로세스 중 어느 하나는 하나 이상의 하드웨어 또는 소프트웨어 모듈로 단독으로 또는 다른 장치와 함께 수행되거나 구현될 수 있다. 일 실시예에서, 소프트웨어 모듈은 컴퓨터 프로그램 코드를 포함하는 컴퓨터-판독가능 매체(computer-readable medium)를 포함하는 컴퓨터 프로그램 제품(computer program product)으로 구현되며, 상기 코드는 단계, 동작, 또는 프로세스 중 일부 또는 모두를 수행하기 위해 컴퓨터 프로세서에 의해 실행될 수 있다.
본 발명의 실시예는 또한 본 명세서의 동작을 수행하기위한 장치와 관련될 수 있다. 이러한 장치는 요구되는 목적을 위해 특별하게 구성될 수 있고/있거나 이러한 장치는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨팅 장치를 포함할 수 있다. 이러한 컴퓨터 프로그램은 유형의(tangible) 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium), 또는 전자 명령어를 저장하기에 적합한 임의의 유형의 매체에 저장될 수 있으며, 상기 매체는 컴퓨터 시스템 버스에 커플링될(coupled) 수 있다. 또한, 명세서에서 언급된 임의의 컴퓨팅 시스템은 단일 프로세서를 포함할 수 있거나, 컴퓨팅 능력이 증가되기 위한 다중 프로세서 설계를 사용하는 아키텍처일 수 있다.
본 발명의 실시예는 또한 본 명세서에 기술된 컴퓨팅 프로세스에 의해 생성되는 제품에 관련될 수 있다. 이러한 제품은 컴퓨팅 프로세스로부터 도출된 정보를 포함할 수 있고, 상기 정보는 비일시적 유형의 컴퓨터 판독 가능 저장 매체에 저장되며, 상기 정보는 본 명세서에 기술된 컴퓨터 프로그램 제품 또는 다른 데이터 조합의 어느 하나의 실시예를 포함할 수 있다.
마지막으로, 본 명세서에 사용된 표현(language)은 주로 가독성과 교육 목적을 위해 선택되었으며, 표현은 발명의 주제를 기술하거나 제한하기 위해 선택된 것은 아니다. 그러므로, 본 발명의 범위는 본 상세한 설명에 의해서가 제한되는 것이 아니라, 본원에 기초한 출원에 대해 발행되는 임의의 청구항에 의해 제한되는 것으로 의도된다. 따라서, 본 발명의 실시예의 개시는 본 발명의 범위를 예시하려고 의도한 것이나, 제한하려고 한 것은 아니며, 본 발명의 범위는 다음의 청구항에서 제시된다.

Claims (20)

  1. 서비스 장치에 액세스하기 위하여, 사용자 클라이언트 장치로부터 전자적으로 서명된 요청을 수신하는 단계 - 상기 전자적으로 서명된 요청은, 상기 사용자 장치의 사용자에게 할당된 사용자 식별자, 및 상기 서비스 장치에 의해 제공되는 서비스와 관련된 하나 이상의 파라미터들을 포함함 - ;
    상기 전자적으로 서명된 요청의 상기 하나 이상의 파라미터들이 액세스를 위한 조건을 만족시키는지를 검증하는 단계;
    분산 원장에 저장된, 상기 서비스 장치에 대해 특정된 승인 데이터 구조를 업데이트하는 단계 - 상기 승인 데이터 구조는, 복수의 사용자 식별자들, 및 각각의 사용자 식별자가 상기 서비스 장치에 액세스하도록 허가되는지 여부에 대한 표시를 포함함 - ; 및
    상기 분산 원장에 저장된 상기 승인 데이터 구조에 대한 변경을 제공하는 단계 - 상기 제공된 변경은 국부적으로 저장된 승인 데이터 구조를 업데이트하기 위해 사용됨 -
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 사용자 장치로부터, 상기 서비스 장치에 의해 제공될 상기 서비스를 요청하는 전자적으로 서명된 메시지를 수신하는 단계 - 상기 서명된 메시지는 상기 사용자 장치의 상기 사용자에게 할당된 상기 사용자 식별자를 포함함 - ;
    상기 서명된 메시지에 포함된 상기 사용자 식별자에 기초하여 상기 사용자 장치가 상기 서비스 장치에 액세스하도록 허가된 것을 검증하는 단계; 및
    상기 검증에 응답하여, 상기 서비스 장치에 대한 서비스 장치 요청을 생성하는 단계 - 상기 서비스 장치에 제공되는 상기 변경들은 상기 서비스 장치가 상기 서비스를 제공하게 하는 상기 서비스 장치 요청을 포함함 -
    를 더 포함하는 방법.
  3. 제2항에 있어서,
    상기 서비스 장치에 의해 제공되는 복수의 서비스들에 대해 지불을 정산하는 요청을 수신하는 단계 - 상기 요청은 상기 서비스 장치가 상기 복수의 서비스들을 제공하기 위해 요청들을 수신한 상태 채널의 폐쇄에 응답하여 상기 서비스 장치에 의해 제공됨 -
    를 더 포함하는 방법.
  4. 제2항에 있어서,
    상기 서명된 메시지에 포함된 상기 사용자 식별자에 기초하여 상기 사용자 장치가 상기 서비스 장치에 액세스하도록 허가된 것을 검증하는 단계는,
    상기 서명된 요청으로부터 상기 사용자 장치의 상기 사용자에게 할당된 상기 사용자 식별자를 추출하는 단계;
    상기 서비스 장치에 대해 특정된 상기 업데이트된 승인 데이터 구조에 액세스하는 단계; 및
    상기 추출된 사용자 식별자와, 상기 승인 데이터 구조에 저장된 상기 복수의 사용자 식별자들을 비교하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 사용자 식별자를 추출하는 단계는,
    상기 사용자 장치의 상기 사용자 식별자에 할당된 공개 키를 이용하여 상기 서명된 요청을 복호화하는 단계
    를 포함하는 방법.
  6. 제1항에 있어서,
    상기 서명된 요청의 상기 하나 이상의 파라미터들이 액세스를 위한 조건을 만족시키는지를 검증하는 단계는,
    상기 분산 원장에 저장된 계약에 액세스하는 단계 - 상기 계약은 상기 서비스 장치에 대해 특정됨 - ; 및
    상기 액세스된 계약의 변수들을 상기 서명된 요청의 상기 하나 이상의 파라미터들과 비교하는 단계
    를 포함하는 방법.
  7. 제1항에 있어서,
    상기 서명된 요청의 상기 하나 이상의 파라미터들은 지불, 가용 날짜, 또는 가용 시간 중 어느 하나를 포함하는,
    방법.
  8. 제1항에 있어서,
    상기 승인 데이터 구조에 대한 상기 변경들은, 상기 국부적으로 저장된 승인 데이터 구조를 업데이트하기 위해, 사용자 장치, 서비스 장치, 또는 프록시 장치 중 어느 하나에 제공되는,
    방법.
  9. 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 저장 매체가 프로세서에 의해 실행될 때, 상기 프로세서가, 사용자 클라이언트 장치로부터 전자적으로 서명된 요청을 수신하여 서비스 장치에 액세스하고 - 상기 전자적으로 서명된 요청은, 상기 사용자 장치의 사용자에게 할당된 사용자 식별자; 및 상기 서비스 장치에 의해 제공되는 서비스와 관련된 하나 이상의 파라미터들을 포함함 - ; 상기 전자적으로 서명된 요청의 상기 하나 이상의 파라미터들이 액세스를 위한 조건을 만족시키는지를 검증하고; 분산 원장에 저장된, 상기 서비스 장치에 대해 특정된 승인 데이터 구조를 업데이트하고 - 상기 승인 데이터 구조는, 복수의 사용자 식별자들; 및 각각의 사용자 식별자가 상기 서비스 장치에 액세스하도록 허가되는지 여부에 대한 표시를 포함함 - ; 상기 분산 원장에 저장된 상기 승인 데이터 구조에 대한 변경을 제공하게 하는 - 상기 제공된 변경은 국부적으로 저장된 승인 데이터 구조를 업데이트하기 위해 사용됨 - , 명령어들
    을 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  10. 제9항에 있어서,
    상기 프로세서에 의해 실행될 때 상기 프로세서가, 상기 사용자 장치로부터, 상기 서비스 장치에 의해 제공될 상기 서비스를 요청하는 전자적으로 서명된 메시지를 수신하고 - 상기 서명된 메시지는, 상기 사용자 장치의 상기 사용자에게 할당된 상기 사용자 식별자를 포함함 - ; 상기 서명된 메시지에 포함된 상기 사용자 식별자에 기초하여 상기 사용자 장치가 상기 서비스 장치에 액세스하도록 허가된 것을 검증하고; 상기 검증에 응답하여, 상기 서비스 장치에 대한 서비스 장치 요청을 생성하게 하는 - 상기 서비스 장치에 제공된 상기 변경은 상기 서비스 장치가 상기 서비스를 제공하게 하는 상기 서비스 장치 요청을 포함함 - , 명령어들
    을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  11. 제10항에 있어서,
    상기 프로세서에 의해 실행될 때, 상기 프로세서가 상기 서비스 장치에 의해 제공되는 복수의 서비스들에 대해 지불을 정산하기 위해 요청을 수신하게 하는 - 상기 요청은 상기 서비스 장치가 상기 복수의 서비스들을 제공하는 요청들을 수신한 상태 채널의 폐쇄에 응답하여 상기 서비스 장치에 의해 제공됨 - , 명령어들
    을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  12. 제10항에 있어서,
    상기 프로세서가 상기 서명된 메시지에 포함된 상기 사용자 식별자에 기초하여 상기 사용자 장치가 상기 서비스 장치에 액세스하도록 허가된 것을 검증하게 하는 상기 명령어들은,
    상기 프로세서에 의해 실행될 때 상기 프로세서가, 상기 서명된 요청으로부터 상기 사용자 장치의 상기 사용자에게 할당된 상기 사용자 식별자를 추출하고; 상기 서비스 장치에 대해 특정된 상기 업데이트된 승인 데이터 구조에 액세스하고; 상기 승인 데이터 구조에 저장된 상기 복수의 사용자 식별자들과 상기 추출된 사용자 식별자를 비교하게 하는, 명령어들
    을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  13. 제9항에 있어서,
    상기 프로세서가 상기 서명된 요청의 상기 하나 이상의 파라미터들이 액세스를 위한 조건들을 만족시키는지를 검증하게 하는 상기 코드는,
    상기 프로세서에 의해 실행될 때 상기 프로세서가, 상기 분산 원장에 저장된 계약에 액세스하고 - 상기 계약은 상기 서비스 장치에 대해 특정됨 - ; 상기 액세스된 계약의 변수들을 상기 서명된 요청의 상기 하나 이상의 파라미터들과 비교하게 하는, 명령어들
    을 더 포함하는, 비일시적 컴퓨터 판독 가능 저장 매체.
  14. 서비스를 요청하는 사용자 장치로부터 서명된 메시지를 수신하는 단계 - 상기 서명된 메시지는 상기 사용자 장치의 사용자에게 할당된 사용자 식별자를 포함함 - ;
    상기 사용자 장치의 상기 사용자에게 할당된 상기 사용자 식별자를 추출하는 단계;
    분산 원장으로부터 획득된, 국부적으로 저장된 승인 데이터 구조를 질의하여, 상기 사용자 장치의 상기 사용자에게 할당된 상기 사용자 식별자가 상기 서비스 장치에 액세스하도록 허가된 것을 검증하는 단계; 및
    상기 서비스를 제공하거나, 또는 상기 서비스를 제공하게 하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 서비스를 제공하게 하는 단계는,
    복수의 서비스 장치들과 통신하는 프록시 장치에 의해, 상기 서비스를 제공하는 상기 서비스 장치로 명령어를 전송하는 단계; 및
    상기 프록시 장치에 의해, 상기 서비스 장치로부터 상기 서비스가 제공된 것을 나타내는 응답을 수신하는 단계
    를 포함하는 방법.
  16. 제14항에 있어서,
    상기 분산 원장에 저장된 승인 데이터 구조에 대한 변경을 수신하는 단계 - 상기 승인 데이터 구조는 상기 서비스 장치에 대해 특정됨 - ; 및
    상기 수신된 변경을 이용하여 상기 국부적으로 저장된 승인 데이터 구조를 업데이트하는 단계 - 상기 업데이트된 승인 데이터 구조는, 복수의 사용자 식별자들; 및 각각의 사용자 식별자가 상기 서비스 장치에 액세스할 수 있는지 여부에 대한 표시를 포함함 -
    를 더 포함하는 방법.
  17. 제14항에 있어서,
    상기 사용자 식별자를 검증하는 단계는,
    상기 국부적으로 저장된 승인 데이터 구조를 질의하는 단계 - 상기 국부적으로 저장된 승인 데이터 구조는, 복수의 사용자 식별자들; 및 각각의 사용자 식별자가 상기 서비스 장치에 액세스하도록 허가되는지 여부에 대한 표시를 포함함 - ; 및
    상기 추출된 사용자 식별자와, 상기 국부적으로 저장된 승인 데이터 구조에 저장된 상기 복수의 사용자 식별자들을 비교하는 단계
    를 포함하는 방법.
  18. 제14항에 있어서,
    상기 사용자 식별자가 상기 서비스 장치에 액세스하도록 허가된 것을 검증하는 것에 응답하여, 상기 사용자 장치를 이용하여 상태 채널을 개방하는 단계 - 상기 상태 채널은 상기 사용자 장치가 상기 서비스 장치에 의해 제공되는 부가적인 서비스를 수신할 수 있게 함 -
    를 더 포함하는 방법.
  19. 제18항에 있어서,
    상기 서비스를 위해 상기 상태 채널을 통해 상기 사용자 장치로부터 복수의 요청들을 수신하는 단계; 및
    상기 복수의 요청들의 각각의 요청에 대해, 상기 사용자 장치의 상기 사용자에게 상기 서비스를 제공하는 단계
    를 더 포함하는 방법.
  20. 제19항에 있어서,
    상기 상태 채널의 미리 결정된 만료가 발생하였음을 검출하는 단계; 및
    상기 상태 채널을 통해 수신된 상기 복수의 요청들에 대해 제공되는 서비스들의 총계를 나타내는 요청을 제공하는 단계
    를 더 포함하는 방법.
KR1020197022316A 2016-12-30 2017-12-28 블록체인 가능한 서비스 제공자 시스템 KR102470727B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662441013P 2016-12-30 2016-12-30
US62/441,013 2016-12-30
PCT/US2017/068798 WO2018126059A1 (en) 2016-12-30 2017-12-28 Block-chain enabled service provider system

Publications (2)

Publication Number Publication Date
KR20190119581A true KR20190119581A (ko) 2019-10-22
KR102470727B1 KR102470727B1 (ko) 2022-11-25

Family

ID=62708569

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197022316A KR102470727B1 (ko) 2016-12-30 2017-12-28 블록체인 가능한 서비스 제공자 시스템

Country Status (6)

Country Link
US (3) US10652239B2 (ko)
EP (1) EP3563325A4 (ko)
JP (1) JP7308756B2 (ko)
KR (1) KR102470727B1 (ko)
CN (1) CN110800004A (ko)
WO (1) WO2018126059A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220118796A (ko) * 2021-02-19 2022-08-26 부경대학교 산학협력단 퍼블릭 블록체인에서의 개인 간 데이터 거래 및 공유를 지원하는 액세스 제어 시스템 및 방법

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6951329B2 (ja) 2015-10-14 2021-10-20 ケンブリッジ ブロックチェーン,エルエルシー デジタルアイデンティティを管理するためのシステム及び方法
US11134380B2 (en) 2016-10-11 2021-09-28 Whitefox Defense Technologies, Inc. Systems and methods for cyber-physical vehicle management, detection and control
WO2018071442A1 (en) 2016-10-11 2018-04-19 Whitefox Defense Technologies, Inc. Systems and methods for cyber-physical vehicle management, detection and control
US11574291B2 (en) * 2017-01-08 2023-02-07 Bprotocol Foundation Methods for exchanging and evaluating virtual currency
US11924322B2 (en) * 2017-05-16 2024-03-05 Arm Ltd. Blockchain for securing and/or managing IoT network-type infrastructure
US11256799B2 (en) * 2017-08-29 2022-02-22 Seagate Technology Llc Device lifecycle distributed ledger
EP3462667A1 (en) * 2017-09-27 2019-04-03 Banco Bilbao Vizcaya Argentaria, S.A. Blockchain based joint blind key escrow
US20190109877A1 (en) 2017-10-11 2019-04-11 Microsoft Technology Licensing, Llc Secure application metering
US11227457B2 (en) * 2017-12-02 2022-01-18 International Business Machines Corporation Blockchain managed storage
US20190228461A1 (en) * 2018-01-25 2019-07-25 Marius Keeley Domokos Omnichannel Commerce Platform with Integrated Mobile Shopping Platform, Online Shopping Platform, Commerce Data and Blockchain Layer
EP3522088B1 (en) * 2018-02-05 2022-03-16 Nokia Technologies Oy Securing blockchain access through a gateway
US20190325452A1 (en) * 2018-04-19 2019-10-24 Michael Farjami Computing Device and System with Biometric Verification, a Hotel Server, and an Exchange Server
US11159376B2 (en) * 2018-05-24 2021-10-26 International Business Machines Corporation System and method for network infrastructure analysis and convergence
WO2019227345A1 (zh) * 2018-05-30 2019-12-05 深圳市元征科技股份有限公司 维修厂的管理方法、系统及数据管理服务器
US20190373051A1 (en) * 2018-06-05 2019-12-05 International Business Machines Corporation Task Scheduling System for Internet of Things (IoT) Devices
US11328347B2 (en) * 2018-06-28 2022-05-10 International Business Machines Corporation Rental asset processing for blockchain
US20200013053A1 (en) * 2018-07-06 2020-01-09 Chaitanya Tushar AMIN Controlling asset access based on payments via a distributed ledger
CN108985644B (zh) * 2018-07-27 2021-02-09 创新先进技术有限公司 权益分配方法及装置、电子设备
US11489816B2 (en) * 2018-07-31 2022-11-01 Ezblock Ltd. Blockchain joining for a limited processing capability device and device access security
CN109191108B (zh) * 2018-08-07 2022-03-11 广东蓝蜜蜂信息技术有限公司 基于区块链的二维码聚合支付系统及其工作方法
US11223655B2 (en) * 2018-08-13 2022-01-11 International Business Machines Corporation Semiconductor tool matching and manufacturing management in a blockchain
US20200058007A1 (en) * 2018-08-15 2020-02-20 NEC Laboratories Europe GmbH Data exchange platform using blockchain
JP7122906B2 (ja) * 2018-08-22 2022-08-22 ブロックチェーンロック株式会社 スマートロック装置及びプラットフォーム
WO2020051226A1 (en) * 2018-09-05 2020-03-12 Whitefox Defense Technologies, Inc. Integrated secure device manager systems and methods for cyber-physical vehicles
US11245576B2 (en) * 2018-09-07 2022-02-08 Dell Products L.P. Blockchain-based configuration profile provisioning system
AU2019236667B2 (en) * 2018-09-28 2023-10-05 Infosys Limited System and method for decentralized identity management, authentication and authorization of applications
CN111045690B (zh) 2018-10-12 2023-04-28 阿里巴巴集团控股有限公司 区块链节点服务部署方法、装置、系统、计算设备及介质
US10949548B2 (en) * 2018-10-18 2021-03-16 Verizon Patent And Licensing Inc. Systems and methods for providing multi-node resiliency for blockchain peers
CN109409883B (zh) * 2018-10-19 2020-10-20 深圳和而泰数据资源与云技术有限公司 基于智能合约的协同处理方法、家电设备及服务器
EP3644550A1 (en) * 2018-10-25 2020-04-29 Siemens Healthcare GmbH Unlocking a medical device
US11308194B2 (en) 2018-10-31 2022-04-19 Seagate Technology Llc Monitoring device components using distributed ledger
WO2020092460A1 (en) 2018-11-01 2020-05-07 Carrier Corporation Integrate body cameras with hotel key box
WO2020096072A1 (ko) * 2018-11-05 2020-05-14 라인플러스 주식회사 디앱에서 요구하는 높은 트랜잭션 처리량을 효율적으로 블록체인에서 처리하기 위한 방법 및 시스템
KR102178583B1 (ko) * 2018-11-13 2020-11-13 주식회사 싸이투코드 디지털 컨텐츠 원본 확인키를 이용한 블록체인 방식의 계약 단말 및 방법
EP3652884B1 (en) * 2018-11-27 2022-01-19 Advanced New Technologies Co., Ltd. Asymmetric key management in consortium blockchain networks
CN109522735B (zh) * 2018-11-29 2021-06-22 上海信联信息发展股份有限公司 一种基于智能合约的数据权限验证方法及装置
JP7243154B2 (ja) * 2018-12-04 2023-03-22 セイコーエプソン株式会社 提供装置及び処理システム
JP7243155B2 (ja) * 2018-12-04 2023-03-22 セイコーエプソン株式会社 提供装置及び処理システム
CN111292444A (zh) 2018-12-06 2020-06-16 开利公司 经由区块链集成而作为可交易数字资产的房产
CN111369710A (zh) * 2018-12-06 2020-07-03 开利公司 由区块链支持的智能锁系统
US11102204B1 (en) * 2018-12-11 2021-08-24 Amazon Technologies, Inc. Agreement and enforcement of rules for a shared resource
US11720545B2 (en) 2018-12-19 2023-08-08 International Business Machines Corporation Optimization of chaincode statements
US11348101B2 (en) * 2018-12-19 2022-05-31 International Business Machines Corporation Post-settlement processes
US10637644B1 (en) * 2018-12-21 2020-04-28 Capital One Services, Llc System and method for authorizing transactions in an authorized member network
SG11201907155UA (en) * 2018-12-28 2019-09-27 Alibaba Group Holding Ltd Smart contract whitelists
RU2731417C1 (ru) 2018-12-28 2020-09-02 Алибаба Груп Холдинг Лимитед Параллельное выполнение транзакций в сети цепочек блоков на основе белых списков смарт-контрактов
EP3571653A4 (en) * 2018-12-28 2020-04-08 Alibaba Group Holding Limited EXECUTING PARALLEL TRANSACTIONS IN A BLOCK CHAIN NETWORK
US11960473B2 (en) 2019-01-15 2024-04-16 Fisher-Rosemount Systems, Inc. Distributed ledgers in process control systems
US11042147B2 (en) * 2019-01-15 2021-06-22 Fisher-Rosemount Systems, Inc. Machine-to-machine transactions using distributed ledgers in process control systems
JP2020113209A (ja) * 2019-01-16 2020-07-27 株式会社Lcnem 情報処理システム
US20220123947A1 (en) * 2019-01-18 2022-04-21 Zeu Technologies, Inc. A Method for Generating Random Numbers in Blockchain Smart Contracts
CA3126956A1 (en) * 2019-01-18 2020-07-23 Zeu Technologies, Inc. A method for generating random numbers in blockchain smart contracts
US11270238B2 (en) * 2019-01-28 2022-03-08 Kyndryl, Inc. Utilizing blockchain technology with mobile robotic machines
US11613268B2 (en) * 2019-02-26 2023-03-28 International Business Machines Corporation Operationally customizable smart vehicle access
US11244383B2 (en) * 2019-02-27 2022-02-08 Rentberry, Inc. Systems and methods for managing rental reservations with blockchain
WO2019101233A2 (en) * 2019-03-04 2019-05-31 Alibaba Group Holding Limited Property management system utilizing a blockchain network
CN110177079B (zh) * 2019-04-17 2021-10-15 北京百度网讯科技有限公司 智能合约的调用系统及调用方法
CN110210910B (zh) * 2019-06-11 2020-09-08 风蝶科技文化(深圳)有限公司 基于区块链网络的影片管理方法及计算机终端
US11151621B2 (en) * 2019-06-25 2021-10-19 Verizon Patent And Licensing Inc. System and method for carrier settlement using blockchain
SG11202002814UA (en) * 2019-08-01 2021-03-30 Advanced New Technologies Co Ltd Shared blockchain data storage based on error correction code
CN111095210B (zh) 2019-08-01 2023-06-30 创新先进技术有限公司 基于纠错编码存储共享的区块链数据
US20230010786A1 (en) * 2019-12-03 2023-01-12 Sony Group Corporation Method, computer program and data sharing system for sharing user-specific data of a user
US11095431B2 (en) 2019-12-13 2021-08-17 DLT Global, Inc. Blockchain transaction manager
JP6894160B1 (ja) * 2019-12-13 2021-06-23 a42株式会社 スマートコントラクトに基づいた利用権情報処理装置、利用権情報処理システム、および利用権情報処理方法
CN110995751B (zh) * 2019-12-18 2022-02-22 北京择天众康科技有限公司 一种基于区块链的大数据智慧医疗养老服务方法及其系统
CN111177182B (zh) * 2019-12-19 2023-06-30 达闼机器人股份有限公司 数据查询方法和装置、存储介质和电子设备
US11765138B2 (en) * 2020-01-15 2023-09-19 Connor Cornelius User personal information communication system and method for plurality of platforms
US11682095B2 (en) * 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
JP7102459B2 (ja) * 2020-02-28 2022-07-19 株式会社リコー 提供者端末、ネットワークシステム、サービス提供方法およびプログラム
CN110995521B (zh) * 2020-03-03 2021-02-19 支付宝(杭州)信息技术有限公司 服务提供方法、装置、设备及系统
DE102020208342A1 (de) * 2020-07-03 2022-01-05 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung zum Ausführen von Transaktionen und Betriebsverfahren hierfür
JP6895567B1 (ja) * 2020-07-14 2021-06-30 金子 賢一 有価証券管理装置、有価証券管理方法及び有価証券管理プログラム
US11665002B2 (en) * 2020-12-11 2023-05-30 International Business Machines Corporation Authenticated elevated access request
CN112597512B (zh) * 2020-12-21 2023-03-24 杭州趣链科技有限公司 基于区块链的温度数据管控方法、装置及存储介质
GB2605649A (en) * 2021-04-09 2022-10-12 Vodafone Group Services Ltd Blockchain key generation
CN113329015B (zh) * 2021-05-28 2022-08-16 中邮信息科技(北京)有限公司 一种区块链的节点的代理方法、装置、介质及电子设备
CA3226815A1 (en) * 2021-07-16 2023-01-19 Iot-Eq, Llc Devices, systems and methods for autonomously monitoring customer use of equipment & billing via a blockchain network
US11962594B2 (en) 2021-11-24 2024-04-16 Schlage Lock Company Llc Blockchain for access control
JP7229410B1 (ja) 2022-06-06 2023-02-27 株式会社野村総合研究所 商品取引支援装置および商品取引支援方法
US11902435B1 (en) 2022-07-20 2024-02-13 CUBE Security Inc. Access control interfaces for blockchains
WO2024019836A1 (en) * 2022-07-20 2024-01-25 CUBE Security Inc. Access control interfaces for blockchains

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328713A1 (en) * 2015-05-05 2016-11-10 ShoCard, Inc. Identity Management Service Using A Blockchain Providing Identity Transactions Between Devices

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343351B1 (en) * 1999-08-31 2008-03-11 American Express Travel Related Services Company, Inc. Methods and apparatus for conducting electronic transactions
KR100690758B1 (ko) * 2005-04-28 2007-03-09 엘지전자 주식회사 휴대단말기의 선불 통신요금 결재장치 및 방법
US9032204B2 (en) * 2011-01-07 2015-05-12 Mastercard International Incorporated Methods and systems for providing a signed digital certificate in real time
US9876775B2 (en) * 2012-11-09 2018-01-23 Ent Technologies, Inc. Generalized entity network translation (GENT)
EP2992692B1 (en) * 2013-05-04 2018-08-29 DECHARMS, Christopher Mobile security technology
US20150227890A1 (en) 2014-02-07 2015-08-13 Kristin Kaye Bednarek Communications system and smart device apps supporting segmented order distributed distribution system
WO2015148725A2 (en) * 2014-03-25 2015-10-01 Mark Stephen Meadows Systems and methods for executing cryptographically secure transactions using voice and natural language processing
US9332018B2 (en) * 2014-04-03 2016-05-03 Prote. Us Converged Systems Corporation Method and system for secure authentication
WO2015161690A1 (zh) 2014-04-25 2015-10-29 天地融科技股份有限公司 数据安全交互方法和系统
WO2016053760A1 (en) * 2014-09-30 2016-04-07 Raistone, Inc. Systems and methods for transferring digital assets using a de-centralized exchange
RU2673842C1 (ru) * 2015-03-20 2018-11-30 Ривец Корп. Автоматическая аттестация сохранности устройства с применением цепочки блоков
EP3304431B1 (en) * 2015-06-04 2021-09-08 Chronicled, Inc. Open registry for identity of things
US9787478B2 (en) * 2015-06-10 2017-10-10 Qualcomm Incorporated Service provider certificate management
US10366204B2 (en) * 2015-08-03 2019-07-30 Change Healthcare Holdings, Llc System and method for decentralized autonomous healthcare economy platform
US11915332B2 (en) * 2015-10-02 2024-02-27 Loyyal Holdings Incorporated System and process for tokenization and management of liability
US20170116693A1 (en) * 2015-10-27 2017-04-27 Verimatrix, Inc. Systems and Methods for Decentralizing Commerce and Rights Management for Digital Assets Using a Blockchain Rights Ledger
US20170147808A1 (en) * 2015-11-19 2017-05-25 International Business Machines Corporation Tokens for multi-tenant transaction database identity, attribute and reputation management
CA3002235C (en) * 2015-12-22 2021-01-26 Thomson Reuters Global Resources Unlimited Company Methods and systems for identity creation, verification and management
US9935772B1 (en) * 2016-02-19 2018-04-03 Vijay K Madisetti Methods and systems for operating secure digital management aware applications
US10318938B2 (en) * 2016-02-22 2019-06-11 Bank Of America Corporation System for routing of process authorization and settlement to a user in process data network based on specified parameters
US10720232B2 (en) * 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US20180089758A1 (en) * 2016-09-26 2018-03-29 Shapeshift Ag System and method of providing a contract-creator application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160328713A1 (en) * 2015-05-05 2016-11-10 ShoCard, Inc. Identity Management Service Using A Blockchain Providing Identity Transactions Between Devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220118796A (ko) * 2021-02-19 2022-08-26 부경대학교 산학협력단 퍼블릭 블록체인에서의 개인 간 데이터 거래 및 공유를 지원하는 액세스 제어 시스템 및 방법

Also Published As

Publication number Publication date
US20220286453A1 (en) 2022-09-08
EP3563325A4 (en) 2020-09-02
US20180191714A1 (en) 2018-07-05
US11316850B2 (en) 2022-04-26
EP3563325A1 (en) 2019-11-06
JP2020507869A (ja) 2020-03-12
KR102470727B1 (ko) 2022-11-25
US20200314095A1 (en) 2020-10-01
US10652239B2 (en) 2020-05-12
WO2018126059A1 (en) 2018-07-05
JP7308756B2 (ja) 2023-07-14
CN110800004A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US11316850B2 (en) Block-chain enabled service provider system
US11963006B2 (en) Secure mobile initiated authentication
US11659392B2 (en) Secure mobile initiated authentications to web-services
US11187013B1 (en) Smart lock box
CA3119897C (en) Secure permissioning of access to user accounts, including secure deauthorization of access to user accounts
CN104919775B (zh) 用于密钥链同步的系统和方法
CN106471783B (zh) 经由网关的企业系统认证和授权
CN105379223B (zh) 管理对企业资源的访问的方法和装置
CA2832754C (en) Method and system for enabling merchants to share tokens
JP2021509983A (ja) 資産管理方法および装置ならびに電子デバイス
US20150047003A1 (en) Verification authority and method therefor
WO2021127577A1 (en) Secure mobile initiated authentications to web-services
EP3867849B1 (en) Secure digital wallet processing system
CN106716957A (zh) 高效且可靠的认证
WO2021127575A1 (en) Secure mobile initiated authentication
WO2019011187A1 (zh) 电子账户的挂失、解挂、业务管理方法、装置及设备

Legal Events

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