KR102050007B1 - 블록체인 기반 외부 서비스 지원 시스템 및 그 방법 - Google Patents

블록체인 기반 외부 서비스 지원 시스템 및 그 방법 Download PDF

Info

Publication number
KR102050007B1
KR102050007B1 KR1020170028644A KR20170028644A KR102050007B1 KR 102050007 B1 KR102050007 B1 KR 102050007B1 KR 1020170028644 A KR1020170028644 A KR 1020170028644A KR 20170028644 A KR20170028644 A KR 20170028644A KR 102050007 B1 KR102050007 B1 KR 102050007B1
Authority
KR
South Korea
Prior art keywords
block
external
external device
call
data
Prior art date
Application number
KR1020170028644A
Other languages
English (en)
Other versions
KR20180102269A (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 서강대학교산학협력단
Priority to KR1020170028644A priority Critical patent/KR102050007B1/ko
Publication of KR20180102269A publication Critical patent/KR20180102269A/ko
Application granted granted Critical
Publication of KR102050007B1 publication Critical patent/KR102050007B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Telephonic Communication Services (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명의 실시 예에 따른 블록체인 기반 외부 서비스 지원방법은 블록 생성 노드가 사용자로부터 외부기기 호출명령을 수신함에 따라 외부기기를 호출하는 단계와, 블록 생성 노드가 외부기기로부터 서명을 포함하는 외부 응답 데이터를 수신하는 단계와, 블록 생성 노드가 서명을 검증하고, 외부 응답 데이터를 블록에 저장하여 네트워크의 다른 노드들에게 블록을 전파하는 단계 및 블록을 전파받은 다른 노드들의 블록 검증 노드가 블록에 저장된 외부 응답 데이터의 유효성을 검증하는 단계를 포함한다.

Description

블록체인 기반 외부 서비스 지원 시스템 및 그 방법{SYSTEM AND METHOD FOR SUPPORTING EXTERNAL INTERFACE BASED ON BLOCK CHAIN}
본 발명은 블록체인 기반 스마트 계약에서 외부 인터페이스를 위한 분산 합의 시스템 및 그 방법에 관한 것으로, 더욱 상세하게는 블록체인 기반 스마트 계약에서 외부 기기 호출을 가능하게 하는 외부 기기 호출 인터페이스와 공개키 검증을 이용한 블록체인 기반 외부 서비스 지원 시스템 및 그 방법에 관한 것이다.
비트코인은 제3의 신용 보증 기관 없이 디지털로 거래가 가능한 암호화 화폐이다. 비트코인은 거래 결과의 신뢰도를 보장하기 위해 블록체인 구조를 제안하였다. 블록체인을 이용해 비트코인은 거래 무결성 보장 및 거래 명세 조작 방지, 이중 지불 공격(Double Spending Attack) 방지가 되는 암호화 화폐 네트워크를 구성하였다.
블록체인은 네트워크의 모든 참여자가 같은 데이터를 가지게 하는 분산 합의 기법이다. 블록체인 아키텍처를 이용해 비트코인은 참여가 자유로운 동등 계층망 구조 네트워크(Peer-to-Peer Network)인 비동기 통신 환경에서 비잔틴 장군 문제를 해결하였다.
블록체인 네트워크 참여자는 노드 혹은 채굴자(miner)라 불리는 네트워크를 유지하여 보상을 얻는 참여자와 네트워크 유지에는 참여하지 않고 트랜잭션을 보내는 행동만하는 지갑이라 불리는 참여자가 있다. 모든 노드는 블록체인 분산합의에 참여하여 모든 노드가 같은 트랜잭션을 공유한다.
블록체인은 데이터 저장 효율성을 위하여 모든 트랜잭션을 독립적으로 저장하는 것이 아닌 블록이라는 데이터 구조에 저장한다. 또한 블록에 저장된 트랜잭션은 순서가 있다. 분산 합의 과정에서 네트워크의 모든 노드는 단위 시간당 하나의 트랜잭션 순서가 있는 블록을 공유하는 방식으로 Atomic broadcast를 구현하였다. 블록체인 각 노드는 도 1에 도시된 바와 같이 블록이 하나로 연결된 구조를 저장하고 있다.
한편, 스마트 계약을 통해 많은 서비스를 운용하기 위해서는 블록체인 네트워크 안의 데이터와 서비스뿐만 아니라 인터넷 등 외부에 있는 데이터와 서비스에 접근할 수 있어야 한다. 그러나 현 블록체인 기반 스마트 계약에서는 외부 데이터나 서비스를 호출할 수 없다. 따라서 블록체인에 없는 데이터나 서비스를 사용하려면 블록체인 위에 다시 구축해야 한다. 또한, 블록체인의 데이터는 모두 공개되기 때문에 민감한 정보가 필요한 서비스는 블록체인에서 운용할 수 없다.
종래의 블록체인 기반 스마트 계약에서 외부 기기 호출을 하지 못하는 이유는 스마트 계약을 모든 노드에서 실행하기 때문이다.
도 2는 현 블록체인에서 외부 기기를 호출할 경우의 작동 순서를 추상화하여 도시한다. 블록 검증 노드는 실제로는 굉장히 많을 수 있다. 블록생성 노드가 외부 기기를 호출하여 스마트 계약 실행을 완료 시켜 실행 결과를 저장하여 블록 검증 노드에 보내면 블록 검증 노드는 똑같이 스마트 계약을 실행시켜 실행 결과를 확인할 것이다. 현재 비트코인 네트워크의 노드 수는 약 5,000여개이며 이더리움 네트워크 참여자는 약 6,000여 개이다. 스마트 계약에 외부 기기 호출을 허용한다면 외부 기기는 모든 노드의 호출을 감당할 수 있어야 하며 이 과정에서 엄청난 트래픽이 발생한다. 또한 2.2의 응답 결과와 6.2의 응답 결과가 다를 수 있다. 이 경우는 블록체인 분산 합의 자체가 깨질 수 있어 네트워크 안정성에 영향을 줄 수 있다.
앞서 언급한 문제 때문에 블록체인에 데이터가 구축되지 않은 은행 레거시 시스템의 정보를 필요로 서비스나, 블록체인에 데이터나 알고리즘이 공유되면 안되는 신용 평가 서비스, 고객 개인정보가 포함되는 서비스, 외부 기기의 작동을 필요로 하는 외부 기기 실행 서비스, 날씨 보험과 같이 외부 센서의 데이터를 필요로 하는 서비스의 경우 현 블록체인에서 운영할 수 없다.
(논문) "블록체인 기술 개념 및 적용현황"(2016년5월11일, 한국전자통신연구원. 김영삼 외 3인. 정보통신기술진흥센터 p.2~p.12)
따라서, 본 발명이 해결하고자 하는 과제는 외부기기 호출 불가 문제를 해결하기 위하여 블록 생성 노드와 블록 검증 노드의 트랜잭션 적용 방법을 분리함으로써, 블록 생성 노드는 블록 생성할 때 외부 디바이스 호출 요청이 있으면 직접 호출하고 그 응답을 블록에 저장하고, 외부 디바이스는 공개키 기반 구조로 자신의 응답에 서명하여 보내며, 블록 검증 노드는 공개키 검증을 통해 블록에 저장된 응답이 올바르게 구성되었는지 확인하여 트랜잭션을 검증하는 방법을 통해, 응답 내용을 모든 네트워크가 합의할 수 있고 외부 기기에 발생하는 트래픽을 줄일 수 있는 기술적 수단을 제공하는데 있다.
본 발명의 일실시 예에 따른 블록체인 기반 외부 서비스 지원방법은 블록 생성 노드가 사용자로부터 외부기기 호출명령을 수신함에 따라 외부기기를 호출하는 단계와, 상기 블록 생성 노드가 상기 외부기기로부터 서명을 포함하는 외부 응답 데이터를 수신하는 단계와, 상기 블록 생성 노드가 상기 서명을 검증하고, 상기 외부 응답 데이터를 블록에 저장하여 네트워크의 다른 노드들에게 상기 블록을 전파하는 단계 및 상기 블록을 전파받은 다른 노드들의 블록 검증 노드가 상기 블록에 저장된 상기 외부 응답 데이터의 유효성을 검증하는 단계를 포함한다.
본 발명의 다른 실시 예에 따르면 상기 외부기기를 호출하는 단계는, 외부기기 호출 인터페이스에 따라 외부기기 호출 데이터를 생성하여 상기 외부기기로 전송하고, 상기 외부기기 호출 데이터는 호출 메시지, 현재 생성할 블록 높이, 트랜잭션 해시, 및 트랜잭션 내 호출 순번을 포함하고, 공개키를 동봉한다.
본 발명의 다른 실시 예에 따르면 상기 블록 생성 노드가 상기 서명을 검증하고, 상기 외부 응답 데이터를 블록에 저장하는 단계는 각 상기 외부 응답 데이터의 상기 블록 높이를 제거하고, 동일 트랜잭션에서 발생한 응답은 하나의 트랜잭션 해시만 저장하고 나머지 해시는 제거하여 겹치는 데이터를 제거한다.
본 발명의 다른 실시 예에 따르면 상기 호출된 외부기기가 상기 호출 데이터에 상응하는 작업을 수행하는 단계와, 외부 응답 인터페이스에 따라 상기 공개키를 자신의 비밀키로 서명하여 외부 응답 데이터를 생성하는 단계 및 상기 외부 응답 데이터를 상기 블록 생성 노드에 전달하여 호출에 응답하는 단계를 더 포함한다.
본 발명의 다른 실시 예에 따르면 상기 블록 검증 노드가 상기 블록에 저장된 상기 외부 응답 데이터의 유효성을 검증하는 단계는, 상기 블록에 저장된 트랜잭션들이 요청하는 스마트 계약을 실행하는 단계 및 상기 스마트 계약 실행 도중 상기 외부기기를 호출하는 명령어에 따라 상기 외부기기를 호출하는 대신, 상기 블록에 저장된 상기 외부 응답 데이터로서 외부기기 호출 인터페이스 및 외부 응답 데이터의 서명을 검증하는 단계를 포함한다.
본 발명의 다른 실시 예에 따르면 상기 블록 검증 노드는 상기 외부기기에 대한 호출 인터페이스 및 응답 메시지의 서명이 검증되고, 상기 전파된 블록에 포함된 나머지 트랜잭션을 실행시킨 결과값이 상기 블록에 포함된 트랜잭션 실행 결과값과 일치하면, 상기 해당 블록을 저장하는 단계를 더 포함한다.
본 발명의 다른 실시 예에 따르면 사용자로부터 외부기기 호출명령을 수신하는 단계는, 상기 사용자로부터 스마트 계약 실행을 위한 트랜잭션을 수신하고, 상기 트랜잭션에서 요청한 스마트 계약의 실행에 관련하여 상기 외부기기 호출명령을 수신한다.
본 발명의 실시 예에 따른 블록체인 기반 외부 서비스 지원 시스템은 외부기기를 호출하고, 상기 외부기기로부터 서명을 포함하는 외부 응답 데이터를 수신하며, 상기 서명을 검증하여 상기 외부 응답 데이터를 블록에 저장하고, 네트워크의 다른 노드들에게 상기 블록을 전파하는 블록 생성 노드 및 상기 전파받은 블록에 저장된 상기 외부 응답 데이터의 유효성을 검증하는 것으로 상기 외부기기에 대한 호출을 대체하는 블록 검증 노드를 포함한다.
본 발명의 다른 실시 예에 따르면 상기 블록 생성 노드는, 외부기기 호출 인터페이스에 따라 외부기기 호출 데이터를 생성하여 상기 외부기기로 전송하고, 상기 외부기기 호출 데이터는 호출 메시지, 현재 생성할 블록 높이, 트랜잭션 해시 및 트랜잭션 내 호출 순번을 포함하고, 공개키를 동봉한다.
본 발명의 다른 실시 예에 따른 상기 블록 생성 노드는, 상기 서명을 검증하여 상기 외부 응답 데이터를 블록에 저장할 때, 상기 외부 응답 데이터의 블록 높이를 제거하고, 동일 트랜잭션에서 발생한 응답은 하나의 트랜잭션 해시만 저장하고 나머지 해시는 제거하여 겹치는 데이터를 제거한다.
본 발명의 다른 실시 예에 따른 상기 외부기기는 상기 호출 데이터에 상응하는 작업을 수행하고, 외부 응답 인터페이스에 따라 상기 공개키를 자신의 비밀키로 서명하여 외부 응답 데이터를 생성하며, 상기 외부 응답 데이터를 상기 블록 생성 노드에 전달하여 호출에 응답한다.
본 발명의 다른 실시 예에 따른 상기 블록 검증 노드는, 상기 블록에 저장된 트랜잭션들이 요청하는 스마트 계약을 실행하는 도중 상기 외부기기를 호출하는 명령어에 따라 상기 외부기기를 호출하는 대신, 상기 블록에 저장된 상기 외부 응답 데이터로서, 외부기기 호출 인터페이스 및 외부 응답 데이터의 서명을 검증한다.
본 발명의 다른 실시 예에 따른 상기 블록 검증 노드는 상기 외부기기에 대한 호출 인터페이스 및 응답 메시지의 서명이 검증되고, 상기 전파된 블록에 포함된 나머지 트랜잭션을 실행시킨 결과값이 상기 블록에 포함된 트랜잭션 실행 결과값과 일치하면, 상기 해당 블록을 저장한다.
본 발명의 다른 실시 예에 따른 상기 블록 생성 노드는 상기 사용자로부터 스마트 계약 실행을 위한 트랜잭션을 수신하고, 상기 트랜잭션에서 요청한 스마트 계약의 실행에 관련하여 상기 외부기기 호출명령을 수신한다.
본 발명의 일실시 예에 따르면, 외부기기 호출 불가 문제를 해결하기 위하여 블록 생성 노드와 블록 검증 노드의 트랜잭션 적용 방법을 분리함으로써, 블록 생성 노드는 블록 생성할 때 외부 디바이스 호출 요청이 있으면 직접 호출하고 그 응답을 블록에 저장하고, 외부 디바이스는 공개키 기반 구조로 자신의 응답에 서명하여 보내며, 블록 검증 노드는 공개키 검증을 통해 블록에 저장된 응답이 올바르게 구성되었는지 확인하여 트랜잭션을 검증하는 방법을 통해, 응답 내용을 모든 네트워크가 합의할 수 있고 외부 기기에 발생하는 트래픽을 줄일 수 있다.
도 1은 일반적인 블록체인 각 노드의 블록구조를 도시하는 도면이다.
도 2는 종래 블록체인에서 외부 기기를 호출할 경우의 작동 순서를 도시하는 도면이다.
도 3은 종래 트랜잭션을 통한 서비스 응답 방식의 절차를 표시한 순서도이다.
도 4는 현재 서비스되는 블록체인 스마트 계약에서 직접 외부 인터넷 서비스에 호출을 가능하게 해주는 오라클 서비스를 도시한다.
도 5는 본 발명의 일실시예에 따른 블록체인 기반 외부 서비스 지원 시스템의 개략적인 구성과 동작 흐름을 나타내는 도면이다.
도 6은 본 발명의 일실시예에 따른 외부기기 호출 인터페이스를 도시한다.
도 7은 본 발명의 실시 예에 따른 외부 응답 인터페이스를 도시한다.
도 8은 본 발명의 실시 예에 따른 외부기기의 응답 구조를 도시한다.
도 9 내지 도 11은 본 발명의 실시 예에 따른 블록체인 기반 외부 서비스 지원 시스템의 성능을 나타내는 그래프이다.
본 발명의 실시 예들을 설명하기에 앞서, 기존의 블록체인 기반의 외부기기와 통신하는 방식에서 발생하는 문제점들을 검토한 후, 이들 문제점을 해결하기 위해 본 발명의 실시 예들이 채택하고 있는 기술적 수단을 개괄적으로 소개하도록 한다.
도 3은 트랜잭션을 통한 서비스 응답 방식의 절차를 표시한 순서도이다. 도 3에 도시된 바와 같이 사용자가 스마트 계약 실행을 요청하는 트랜잭션을 보내면 스마트 계약은 외부 기기 호출이 필요한 지점 전까지 스마트 계약을 실행하고, 호출에 필요한 데이터를 저장한다. 외부 기기는 스마트 계약의 상태를 감시(monitoring)한다. 스마트 계약에서 새로운 서비스 요청 데이터가 저장된 것을 파악하면 서비스는 해당 요청에 대한 응답을 트랜잭션을 통해 보낸다. 스마트 계약은 응답을 받으면 그 후에 처리돼야 할 명령어를 처리하고 스마트 계약의 상태를 업데이트한다.
트랜잭션을 이용한 응답 기법을 이용하여 스마트 계약을 할 경우 적어도 두 개의 블록이 생성되어야 스마트 계약을 완료할 수 있다. 사용자의 첫 스마트 계약호출이 스마트 계약 상태를 변화시키기 위한 하나의 블록이 필요하며 외부 기기가 응답하기 위한 또 하나의 블록이 필요하다. 이러한 방법은 실행 결과가 트랜잭션으로 보장되지 못하고 새로운 요청에 대한 올바른 응답을 준다는 보장을 못해준다.
또한, 만약 응답 때문에 동적으로 새로운 호출이 생성되는 스마트 계약의 경우 동적으로 생성된 호출 개수만큼의 블록이 추가되어야 서비스가 완료되기 때문에 서비스 응답시간이 늦어지게 된다.
따라서, 스마트 계약 작성자로서는 스마트 계약만 작성해서 블록체인에 올리면 개발이 완료되는 것이 아닌, 외부 기기와 블록체인 네트워크를 감시하는 별도의 시스템 구축을 필요로 하는 상황이다.
한편, 도 4는 현재 서비스되는 블록체인 스마트 계약에서 직접 외부 인터넷 서비스에 호출을 가능하게 해주는 오라클 서비스를 도시한다.
도 4를 참조하면, Oraclize가 동작하는 방식을 나타내고, Oraclize를 통해 인터넷상의 외부서비스를 호출할 수 있음을 알 수 있다.
Oraclize는 블록체인 네트워크에서 서비스 호출을 모든 네트워크 참여자 수만큼 실행하여 서비스가 과부하되는 것을 막기 위해 대리자를 두어 서비스 호출을 대신 처리한다.
즉, Oraclize는 인터넷 서비스 호출을 대신 받아주고 Internet Source(인터넷 서비스)에 한 번 접근한다. 이를 통해 외부 기기에 과도한 부하가 발생하는 것을 방지하며 모든 네트워크 참여자들이 같은 서비스 응답을 가질 수 있게 하였다.
그러나, Oraclize는 외부 기기 부하를 자신의 서비스에 대한 부하로 전환 시켰을 뿐 근본적 해결책을 제시하지는 못했다. Oraclize는 서비스 부하에 대한 보상으로 사용자들에게 호출 수수료를 받는다. 또한, 모든 외부 기기 호출을 Oraclize를 통해 하는 중앙화된 서비스이다. 모든 서비스 호출이 Oraclize 거치기 때문에 Oraclize에 장애가 생기면 모든 서비스 호출에 문제가 생길 수 있다.
예를 들어, Oraclize 서비스가 공격당해 내용을 조작하거나, 작동을 중단하면 Oraclize를 통해 외부 기기를 호출하는 모든 서비스에 문제가 생길 것이다.
따라서, 본 발명의 실시 예는 종래에 블록체인 기반 스마트 계약이 외부 기기를 직접 호출하지 못하는 문제를 해결하기 위한 기술적 수단을 제안한다. 이를 위해, 본 발명의 실시 예는 블록 생성 노드만 외부기기를 직접 호출하고, 블록 검증 노드에서는 응답 데이터의 유효성만 검증하는 새로운 분산 합의 기법과 이에 필요한 외부 기기 호출 인터페이스를 개시한다.
이하에서는 도면을 참조하여 본 발명의 실시 예들을 구체적으로 설명하도록 한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
도 5는 본 발명의 일실시예에 따른 블록체인 기반 외부 서비스 지원 시스템의 개략적인 구성과 동작 흐름을 나타내는 도면이다.
도 5를 참조하면, 먼저 블록체인 기반 외부 서비스 지원 시스템은 블록 생성 노드(510) 및 블록 검증 노드(530)를 포함하여 구성된다.
블록 생성 노드(510)는 외부기기(550)를 호출하고, 외부기기(550)로부터 서명을 포함하는 외부 응답 데이터를 수신하며, 상기 서명을 검증하여 상기 외부 응답 데이터를 블록에 저장하고, 네트워크의 다른 노드들에게 상기 블록을 전파한다.
블록 생성 노드(510)는 도 6에 도시된 외부기기 호출 인터페이스에 따라 외부기기 호출 데이터를 생성하여 외부기기(550)로 전송하고, 외부기기 호출 데이터는 호출 메시지, 현재 생성할 블록 높이, 트랜잭션 해시 및 트랜잭션 내 호출 순번을 포함하고, 공개키를 동봉한다.
블록 높이와 트랜잭션 해시를 통해 어떤 트랜잭션에서 호출했는지 알 수 있으며 호출 순번은 같은 트랜잭션에서 몇 번째 호출인지 알 수 있게 해준다. 블록 체인 네트워크는 악의적인 노드의 공격을 막을 수 있어야 하므로 외부 기기(550)는 해당 노드가 악의적인 노드가 원하는 결과가 올 때까지 호출을 반복하는 것을 알 수 있어야 한다. 본 발명에서 호출 인터페이스는 이런 것들을 구분할 수 있다. 또한, 스마트 계약에서 알고 있는 공개키를 동봉하였기 때문에 다른 기기를 호출하고 응답을 저장하는 것을 방지할 수 있다.
블록 생성 노드(510)는 외부 기기(550)로부터 수신된 서명을 검증하여 외부 응답 데이터를 블록에 저장할 때, 상기 외부 응답 데이터의 블록 높이를 제거하고, 동일 트랜잭션에서 발생한 응답은 하나의 트랜잭션 해시만 저장하고 나머지 해시는 제거하여 겹치는 데이터를 제거한다.
블록 검증 노드(530)는 전파받은 블록에 저장된 상기 외부 응답 데이터의 유효성을 검증하는 것으로 외부기기에 대한 호출을 대체한다. 그리고, 블록 검증 노드(530)는 외부기기(550)에 대한 호출 인터페이스 및 응답 메시지의 서명이 검증되고, 상기 전파된 블록에 포함된 나머지 트랜잭션을 실행시킨 결과값이 상기 블록에 포함된 트랜잭션 실행 결과값과 일치하면, 상기 해당 블록을 저장한다.
도 5를 참조하여, 본 발명의 실시 예에 따른 외부 응답 인터페이스를 설명한다. 블록 생성 노드(510)가 외부 응답 인터페이스를 블록에 저장하면 블록 검증 노드(530)가 이 데이터를 검증한다. 따라서 블록 생성 노드(510)가 기기의 응답을 조작할 수 없어야 하며 블록 검증 노드(530)는 올바른 기기에서 온 데이터이며 올바른 호출 데이터에 대한 응답인지 확인할 수 있어야 한다. 외부 응답 인터페이스에는 블록 생성 노드(510)가 보낸 호출 데이터와 외부 기기(550)가 보낸 외부 응답 메시지 및 서명이 동봉되어 있다. 블록 검증 노드(530)는 서명 검증을 통해 올바른 기기에서 나온 데이터가 맞는지 올바른 호출 데이터에 대한 응답이 맞는지 검증할 수 있다.
한편, 본 발명에서 외부 기기(550)는 비대칭 키 쌍을 가지고 있어야 한다. 블록체인 네트워크의 블록 생성 노드(510)가 외부 기기(550)에 요청을 보낼 경우 요청에 대한 응답을 자신의 비밀키로 서명하여 보낸다. 블록 생성 노드(510)는 외부 기기(550)에서 수신된 모든 응답을 블록에 저장하여 네트워크에 전파하고, 블록 검증 노드(530)는 검증 시 블록의 모든 응답을 검증하는 것으로 호출을 대체한다.
이하, 도 5를 참조하여 블록체인 기반 외부 서비스 지원 방법에 대해 설명하기로 한다.
사용자가 스마트 계약 실행을 위해 트랜잭션을 보내면(1), 블록 생성 노드(510)는 블록 생성을 위해 트랜잭션을 모은다(2). 그 후 블록 생성 노드(510)는 실행 결과를 만들어 블록에 저장하기 위해 트랜잭션에서 요청한 스마트 계약을 실행한다(3). 도 5에서 3의 하위 과정은 스마트 계약 실행 중 외부 기기 호출 명령을 대면했을 때(3.1) 수행하는 외부 기기 호출 과정을 나타낸다.
블록 생성 노드(510)는 호출 명령에 따라 도 6에 도시된 호출 인터페이스에 따라 호출 데이터를 생성하여 외부기기를 호출한다(3.2). 여기서, 호출 데이터는 호출 메시지, 현재 생성할 블록 높이, 트랜잭션 해시, 및 트랜잭션 내 호출 순번을 포함하고, 공개키를 동봉한다.
외부 기기(550)는 호출 데이터에 따라 알맞은 작업을 수행하고(3.3), 호출 정보와 묶어 서명하여 응답 인터페이스에 따라 외부 응답 데이터를 생성하고 이를 이용하여 블록 생성 노드(510)에 응답한다(3.4). 구체적으로, 외부 기기(550)는 외부 응답 인터페이스에 따라 상기 공개키를 자신의 비밀키로 서명하여 외부 응답 데이터를 생성하고, 이를 블록 생성 노드(510)에 전송한다.
블록 생성 노드(510)는 해당 서명이 올바른지 검증하여 블록에 저장한다(3.5). 그 후 네트워크의 다른 노드들에 블록을 전파한다(4).
도 8은 과정 (2)가 끝나고 완성된 블록에 저장되는 응답 구조를 도시한다. 이때 저장 효율성을 위해 각 응답의 블록 높이를 제거하고, 같은 트랜잭션에서 발생한 응답은 하나의 트랜잭션 해시만 저장하고 나머지 해시는 제거한다. 이러한 구조를 통해 겹치는 데이터를 제거하여 저장 효율성을 증가시킬 수 있다.
도 5의 과정 (5)는 블록 검증 노드(530)가 새로운 블록을 받고 검증하는 과정을 도시한다. 블록 검증 노드(530)는 블록에 저장된 스마트 계약의 실행 결과가 올바른지 확인하기 위해 새로운 블록을 전파 받으면 블록에 저장된 트랜잭션들이 요청하는 스마트 계약을 실행한다(5).
스마트 계약 실행 도중 외부 기기를 호출하는 명령어를 대면하면(5.1), 블록 검증 노드(530)는 외부 기기 호출을 하는 대신 블록에 저장된 외부 응답 데이터를 검증한다(5.2). 이를 위해 호출 인터페이스가 올바른지 검증하고, 응답 메시지의 서명이 올바른지 검증한다.
과정 (5)를 통해 트랜잭션 검증이 완료되면 해당 블록을 저장한다(6). 구체적으로, 블록 검증 노드(530)는 외부기기(550)에 대한 호출 인터페이스 및 응답 메시지의 서명이 검증되고, 상기 전파된 블록에 포함된 나머지 트랜잭션을 실행시킨 결과값이 상기 블록에 포함된 트랜잭션 실행 결과값과 일치하면, 상기 해당 블록을 저장한다.
도 9 내지 도 11은 본 발명의 실시 예에 따른 블록체인 기반 외부 서비스 지원 시스템의 성능을 나타내는 그래프이다.
실험은 노드 5, 10, 15개에 대해 블록 10개를 만드는 작업을 수행하였고, 블록 10개 생성 완료 시간과 네트워크 트래픽을 비교하였다. 각 블록 처리 시에 블록 생성 규칙에 따라 6개의 트랜잭션을 처리하며 각각의 트랜잭션은 외부 기기 호출을 6번씩 요청한다. 외부 기기는 호출 한번 당 SHA256 해시를 10번 돌린 결과값을 응답한다.
도 9는 Oraclize와 본 발명의 실시예에 의한 블록체인 기반 외부 서비스 지원 시스템의 트랜잭션 처리 완료 시간을 비교한 그래프를 도시한다. 도 9의 그래프를 참조하면, 블록체인 네트워크에서의 트랜잭션 처리 완료는 해당 트랜잭션 요청에 대한 올바른 결괏값이 모든 블록에 전파되었음을 의미한다. 마지막 블록이 생성된 시간에서 처음 트랜잭션을 요청한 시간을 트랜잭션 처리 완료 시간으로 계산한다. 모든 노드의 평균 트랜잭션 처리 완료 시간을 계산하였다.
본 발명의 실시 예에 따른 블록체인 기반 외부 서비스 지원 시스템이 기존 Oraclize 보다 약 54% 정도 성능이 향상됨을 보여 주고 있다. Oraclize를 통한 서비스 호출은 Oraclize 서버에 직접 메시지를 보내어 응답 결과를 받아 블록을 검증해야 하지만 본 발명에서 블록에 저장된 내용의 공개키를 검증하는 방법은 특정 시스템에 트래픽을 일으키지 않고 직접 공개키 검증을 하므로 성능을 향상시킬 수 있다.
도 10은 블록체인 네트워크에서 호출하는 외부 기기들에 발생하는 트래픽 양을 노드 개수 별로 나타낸 그래프이다. 트래픽 양은 각 기기에 들어오고 나오는 모든 데이터를 합쳐 바이트 단위로 표시하였다. 그래프에서 나타나듯이 두 기법 모두 기기에서 발생하는 트래픽은 거의 같다. 이는 두 기법 모두 외부 기기를 단 한 번만 호출하게 하는 기법이기 때문이다.
그러나 Oraclize 서비스에서는 엄청난 트래픽이 발생하는데 이는 Oraclize 서비스가 모든 노드의 호출을 받고 모든 노드들에게 올바른 응답을 하기 때문이다. 모든 노드의 요청을 받고 모든 노드에게 응답을 보내기 때문에 노드 수에 비례해 트래픽 양이 증가한다. 노드 수가 많아질수록 Oraclize 서비스 부담이 커질 것이다.
도 11은 블록체인 네트워크 참여 노드들의 트래픽 양을 비교한 그래프를 도시한다. 도 11을 참조하면, 노드의 평균 트래픽 양이 Oraclize쪽이 더 높은 이유는 각각의 노드가 모두 Oraclize와 통신을 하기 때문이다. 블록 검증마다 모든 노드가 Oraclize와 통신을 하므로 상당히 높게 나온다. 본 발명에서 제안하는 기법에 비해 노드 별로 4배 이상 많은 트래픽이 발생한다. 노드 수가 적을수록 살짝 더 트래픽이 높게 나오는데 이는 블록을 10개만 만들기 때문에 하나의 노드가 만드는 블록의 양이 더 많으므로 평균 트래픽 양이 더 높게 나오는 것이다.
한편, 블록체인 네트워크의 악의적인 노드는 블록체인 스마트 계약과 외부 기기 간 인터페이스의 보안 취약점을 이용하여 응답 내용을 조작하거나 이전의 응답 내용을 필요할 때 재사용 하려고 시도할 수 있다.
먼저 악의적인 노드가 응답 내용을 조작하려고 할 수 있다. 그러나 본 발명에 의한 블록체인 기반 외부 서비스 지원 시스템은 외부 기기 호출 시 사전에 공개키를 기입하여 호출하고 응답에는 그 공개키에 해당하는 서명이 있어야 한다. 따라서 악의적인 노드가 필요한 응답을 만드는 것은 불가능하다.
또한 악의적인 노드가 경제적 이득을 위해 이전에 사용하였던 응답을 재사용하려고 시도 할 수 있다. 그러나 응답에는 호출 데이터 전체에 대한 서명이 들어있고 따라서 서명은 호출 데이터에 따라 바뀐다. 다른 호출에는 다른 서명 데이터가 나올 수 밖에 없다. 또한 호출에는 만드려는 블록의 높이, 트랜잭션 해시, 트랜잭션 내 호출 순번이 기입되어 있고 블록 검증 노드들은 호출 데이터가 자신들이 생성한 호출 데이터와 같은지 검증하기 때문에 이전에 사용했던 응답을 다시 사용할 수 없다.
악의적인 노드가 원하는 응답을 얻을 때까지 호출을 계속 시도할 수도 있다. 이 경우 블록체인 자체에서는 막을 수 없지만 호출 인터페이스는 유일하기 때문에 외부 기기에서 같은 호출이 반복해서 들어왔을 경우 저장한 데이터를 다시 재전송 하거나 같은 호출에는 다시 응답하지 않는 방식으로 대응할 수 있다.
본 발명의 일실시 예에 따르면, 외부기기 호출 불가 문제를 해결하기 위하여 블록 생성 노드와 블록 검증 노드의 트랜잭션 적용 방법을 분리함으로써, 블록 생성 노드는 블록 생성할 때 외부 디바이스 호출 요청이 있으면 직접 호출하고 그 응답을 블록에 저장하고, 외부 디바이스는 공개키 기반 구조로 자신의 응답에 서명하여 보내며, 블록 검증 노드는 공개키 검증을 통해 블록에 저장된 응답이 올바르게 구성되었는지 확인하여 트랜잭션을 검증하는 방법을 통해, 응답 내용을 모든 네트워크가 합의할 수 있고 외부 기기에 발생하는 트래픽을 줄일 수 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시 예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
500: 블록체인 기반 외부 서비스 지원 시스템
510: 블록 생성 노드
530: 블록 검증 노드
550: 외부 기기

Claims (15)

  1. 블록 생성 노드가 사용자로부터 트랜잭션을 통해 요청받은 스마트 계약에 따른 외부기기 호출명령을 수신함에 따라 상기 블록 생성 노드만이 직접 외부기기를 호출하는 단계;
    상기 블록 생성 노드가 상기 외부기기로부터 서명을 포함하는 외부 응답 데이터를 수신하는 단계;
    상기 블록 생성 노드가 상기 서명을 검증하고, 상기 외부 응답 데이터를 블록에 저장하여 네트워크의 다른 노드들에게 상기 블록을 전파하는 단계; 및
    상기 블록을 전파받은 다른 노드들의 블록 검증 노드가 상기 블록에 저장된 트랜잭션이 요청하는 스마트 계약에서 외부기기 호출명령을 발견하면 상기 외부기기에 대한 호출을 대체하여 상기 블록에 저장된 서명 검증을 통해 상기 외부 응답 데이터의 유효성만을 검증함으로써 상기 외부 응답 데이터가 상기 외부기기로부터의 데이터가 맞는지 여부와 올바른 외부기기 호출에 대한 응답이 맞는지 여부를 검증하는 단계;를 포함하는, 블록체인 기반 외부 서비스 지원방법.
  2. 제 1 항에 있어서,
    상기 외부기기를 호출하는 단계는,
    외부기기 호출 인터페이스에 따라 외부기기 호출 데이터를 생성하여 상기 외부기기로 전송하고,
    상기 외부기기 호출 데이터는 호출 메시지, 현재 생성할 블록 높이, 트랜잭션 해시, 및 트랜잭션 내 호출 순번을 포함하고, 공개키를 동봉하는, 블록체인 기반 외부 서비스 지원방법.
  3. 제 2 항에 있어서,
    상기 블록 생성 노드가 상기 서명을 검증하고, 상기 외부 응답 데이터를 블록에 저장하는 단계는,
    각 상기 외부 응답 데이터의 상기 블록 높이를 제거하고, 동일 트랜잭션에서 발생한 응답은 하나의 트랜잭션 해시만 저장하고 나머지 해시는 제거하여 겹치는 데이터를 제거하는, 블록체인 기반 외부 서비스 지원방법.
  4. 제 2 항에 있어서,
    상기 호출된 외부기기가,
    상기 외부기기 호출 데이터에 상응하는 작업을 수행하는 단계;
    외부 응답 인터페이스에 따라 상기 공개키를 자신의 비밀키로 서명하여 외부 응답 데이터를 생성하는 단계; 및
    상기 외부 응답 데이터를 상기 블록 생성 노드에 전달하여 호출에 응답하는 단계;를 더 포함하는, 블록체인 기반 외부 서비스 지원방법.
  5. 제 1 항에 있어서,
    상기 블록 검증 노드가 상기 블록에 저장된 상기 외부 응답 데이터의 유효성을 검증하는 단계는,
    상기 블록에 저장된 트랜잭션들이 요청하는 스마트 계약을 실행하는 단계; 및
    상기 스마트 계약 실행 도중 상기 외부기기를 호출하는 명령어에 따라 상기 외부기기를 호출하는 대신, 상기 블록에 저장된 상기 외부 응답 데이터로서 외부기기 호출 인터페이스 및 외부 응답 데이터의 서명을 검증하는 단계;를 포함하는, 블록체인 기반 외부 서비스 지원방법.
  6. 제 5 항에 있어서,
    상기 블록 검증 노드는 상기 외부기기에 대한 호출 인터페이스 및 상기 외부기기가 보낸 응답 메시지의 서명이 검증되고, 상기 전파된 블록에 포함된 나머지 트랜잭션을 실행시킨 결과값이 상기 블록에 포함된 트랜잭션 실행 결과값과 일치하면, 해당 블록을 저장하는 단계를 더 포함하는, 블록체인 기반 외부 서비스 지원방법.
  7. 제 1 항에 있어서,
    상기 사용자로부터 외부기기 호출명령을 수신하는 단계는,
    상기 사용자로부터 스마트 계약 실행을 위한 트랜잭션을 수신하고, 상기 트랜잭션에서 요청한 스마트 계약의 실행에 관련하여 상기 외부기기 호출명령을 수신하는, 블록체인 기반 외부 서비스 지원방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램이 기록된 컴퓨터 판독가능 기록매체.
  9. 사용자로부터 트랜잭션을 통해 요청받은 스마트 계약에 따라 직접 외부기기를 호출하고, 상기 외부기기로부터 서명을 포함하는 외부 응답 데이터를 수신하며, 상기 서명을 검증하여 상기 외부 응답 데이터를 블록에 저장하고, 네트워크의 다른 노드들에게 상기 블록을 전파하는 블록 생성 노드; 및
    상기 전파받은 블록에 저장된 트랜잭션이 요청하는 스마트 계약에서 외부기기 호출명령을 발견하면 상기 블록에 저장된 서명 검증을 통해 상기 외부 응답 데이터의 유효성만을 검증함으로써 상기 외부 응답 데이터가 상기 외부기기로부터의 데이터가 맞는지 여부와 올바른 외부기기 호출에 대한 응답이 맞는지 여부를 검증하는 것으로 상기 외부기기에 대한 호출을 대체하는 블록 검증 노드;를 포함하는, 블록체인 기반 외부 서비스 지원 시스템.
  10. 제 9 항에 있어서,
    상기 블록 생성 노드는,
    외부기기 호출 인터페이스에 따라 외부기기 호출 데이터를 생성하여 상기 외부기기로 전송하고,
    상기 외부기기 호출 데이터는 호출 메시지, 현재 생성할 블록 높이, 트랜잭션 해시 및 트랜잭션 내 호출 순번을 포함하고, 공개키를 동봉하는, 블록체인 기반 외부 서비스 지원 시스템.
  11. 제 10 항에 있어서,
    상기 블록 생성 노드는,
    상기 서명을 검증하여 상기 외부 응답 데이터를 블록에 저장할 때, 상기 외부 응답 데이터의 블록 높이를 제거하고, 동일 트랜잭션에서 발생한 응답은 하나의 트랜잭션 해시만 저장하고 나머지 해시는 제거하여 겹치는 데이터를 제거하는, 블록체인 기반 외부 서비스 지원 시스템.
  12. 제 10 항에 있어서,
    상기 외부기기는,
    상기 호출 데이터에 상응하는 작업을 수행하고, 외부 응답 인터페이스에 따라 상기 공개키를 자신의 비밀키로 서명하여 외부 응답 데이터를 생성하며, 상기 외부 응답 데이터를 상기 블록 생성 노드에 전달하여 호출에 응답하는, 블록체인 기반 외부 서비스 지원 시스템.
  13. 제 9 항에 있어서,
    상기 블록 검증 노드는,
    상기 블록에 저장된 트랜잭션들이 요청하는 스마트 계약을 실행하는 도중 상기 외부기기를 호출하는 명령어에 따라 상기 외부기기를 호출하는 대신, 상기 블록에 저장된 상기 외부 응답 데이터로서, 외부기기 호출 인터페이스 및 외부 응답 데이터의 서명을 검증하는, 블록체인 기반 외부 서비스 지원 시스템.
  14. 제 13 항에 있어서,
    상기 블록 검증 노드는,
    상기 외부기기에 대한 호출 인터페이스 및 상기 외부기기가 보낸 응답 메시지의 서명이 검증되고, 상기 전파된 블록에 포함된 나머지 트랜잭션을 실행시킨 결과값이 상기 블록에 포함된 트랜잭션 실행 결과값과 일치하면, 해당 블록을 저장하는, 블록체인 기반 외부 서비스 지원 시스템.
  15. 제 9 항에 있어서,
    상기 블록 생성 노드는,
    사용자로부터 스마트 계약 실행을 위한 트랜잭션을 수신하고, 상기 트랜잭션에서 요청한 스마트 계약의 실행에 관련하여 외부기기 호출명령을 수신하는, 블록체인 기반 외부 서비스 지원 시스템.
KR1020170028644A 2017-03-07 2017-03-07 블록체인 기반 외부 서비스 지원 시스템 및 그 방법 KR102050007B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170028644A KR102050007B1 (ko) 2017-03-07 2017-03-07 블록체인 기반 외부 서비스 지원 시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170028644A KR102050007B1 (ko) 2017-03-07 2017-03-07 블록체인 기반 외부 서비스 지원 시스템 및 그 방법

Publications (2)

Publication Number Publication Date
KR20180102269A KR20180102269A (ko) 2018-09-17
KR102050007B1 true KR102050007B1 (ko) 2020-01-08

Family

ID=63722005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170028644A KR102050007B1 (ko) 2017-03-07 2017-03-07 블록체인 기반 외부 서비스 지원 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR102050007B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081159B1 (ko) * 2018-11-08 2020-02-25 엔에이치엔 주식회사 블록체인 시스템 및 블록체인 시스템에서 복수의 노드들이 메시지를 검증 및 전파하는 방법
KR101950856B1 (ko) * 2018-11-20 2019-02-22 주식회사 윅스콘 블록체인을 이용한 정보 관리 시스템 및 방법
CN113396113B (zh) 2018-12-12 2023-03-28 未来儿股份有限公司 基板收纳容器
KR102172514B1 (ko) * 2018-12-21 2020-10-30 이화여자대학교 산학협력단 블록체인 기반 테스트 데이터 관리 방법 및 블록체인 노드 장치
US11405198B2 (en) 2019-02-13 2022-08-02 TEEware Co., Ltd. System and method for storing and managing keys for signing transactions using key of cluster managed in trusted execution environment
KR102150210B1 (ko) * 2019-09-16 2020-09-01 (주) 모로보기 블록체인 네트워크
KR102337836B1 (ko) 2019-11-11 2021-12-10 한국전자기술연구원 블록체인 응용 외부 정보 인식 및 정보 제공방법
KR102251607B1 (ko) 2019-12-10 2021-05-13 (주)더아머베어러 블록체인 기반의 국제 물류 통합 유통관리 패스포트 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101628009B1 (ko) 2015-04-20 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
JP2016200954A (ja) 2015-04-09 2016-12-01 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626276B1 (ko) * 2014-06-17 2016-06-01 어준선 디지털 화폐와 연동되어 디지털 컨텐츠를 생성, 제공, 재생하기 위한 방법, 이를 이용한 단말 및 컴퓨터 판독 가능한 기록 매체
KR20160050876A (ko) * 2014-10-31 2016-05-11 코나아이 (주) 스마트 카드에 저장된 공개키와 개인키를 이용한 비트코인 거래방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016200954A (ja) 2015-04-09 2016-12-01 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
KR101628009B1 (ko) 2015-04-20 2016-06-13 주식회사 코인플러그 당사자간 블록체인을 갖는 디지털 가상화폐의 거래시스템
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템

Also Published As

Publication number Publication date
KR20180102269A (ko) 2018-09-17

Similar Documents

Publication Publication Date Title
KR102050007B1 (ko) 블록체인 기반 외부 서비스 지원 시스템 및 그 방법
KR101727525B1 (ko) 블록체인 기반 분산 저장 방법 및 이를 이용한 장치
Lin et al. A survey of blockchain security issues and challenges.
WO2018076760A1 (zh) 基于区块链的交易事务处理方法、系统、电子装置及存储介质
US20200143372A1 (en) Methods for decentralized digital asset transfer and smart contract state transition
KR102566892B1 (ko) 블록체인 합의 방법, 디바이스 및 시스템
JP7432686B2 (ja) ブロックチェーンネットワークにおける効率的な伝播のための確率的リレー
KR20210003234A (ko) 분할된 블록체인 네트워크에서 블록체인의 블록을 유지하는 것
KR101932277B1 (ko) 블록체인 기반의 사용자 정보 공유를 위한 분산 원장 장치 및 분산 원장 방법
KR20190099076A (ko) 전자 어음 관리 방법, 장치 및 기록매체
JP2022520656A (ja) ブロックチェーンネットワークを介した移転を実施するためのコンピュータで実施されるシステムおよび方法
CN110197433B (zh) 数值转移方法、装置及系统
JP6951649B2 (ja) ブロック検証装置、ブロック検証方法、及びプログラム
CN110149323B (zh) 一种具有千万级tps合约处理能力的处理装置
CN113657900A (zh) 一种跨链交易验证方法、系统以及跨链交易系统
JP2024505692A (ja) ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器
Al-Bassam et al. Airtnt: Fair exchange payment for outsourced secure enclave computations
JP2022525551A (ja) データレコードのコピーの分散型台帳システムへの誤伝送の防止
CN111476670B (zh) 区块链回滚保险方法、设备和存储介质
CN111260475A (zh) 一种数据处理方法、区块链节点设备及存储介质
JP2022532764A (ja) プルーフオブワークブロックチェーンネットワークにおける非並列化マイニングのためのシステムおよび方法
Leinweber et al. TEE-based distributed watchtowers for fraud protection in the lightning network
CN113132459B (zh) 分布式存储方法、系统、存储介质、信息数据处理终端
KR101829731B1 (ko) 주주명부를 등록하고 주식 소유권 이전을 기록하는 방법 및 서버
Lai et al. Blockchain for achieving accountable outsourcing computations in edge computing

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)