KR102589438B1 - 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법 - Google Patents

블록체인 기반 시스템에서의 비결정적 데이터 생성 방법 Download PDF

Info

Publication number
KR102589438B1
KR102589438B1 KR1020180035192A KR20180035192A KR102589438B1 KR 102589438 B1 KR102589438 B1 KR 102589438B1 KR 1020180035192 A KR1020180035192 A KR 1020180035192A KR 20180035192 A KR20180035192 A KR 20180035192A KR 102589438 B1 KR102589438 B1 KR 102589438B1
Authority
KR
South Korea
Prior art keywords
blockchain
deterministic data
smart contract
node
data
Prior art date
Application number
KR1020180035192A
Other languages
English (en)
Other versions
KR20190113047A (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 KR1020180035192A priority Critical patent/KR102589438B1/ko
Priority to PCT/KR2019/001046 priority patent/WO2019190040A1/ko
Publication of KR20190113047A publication Critical patent/KR20190113047A/ko
Application granted granted Critical
Publication of KR102589438B1 publication Critical patent/KR102589438B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems

Abstract

블록체인 기반 시스템에서, 별도의 외부 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법이 제공된다. 본 발명의 일 실시예에 따른 비결정적 데이터(non-deterministic) 생성 방법은, 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계 및 상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함할 수 있다. 이때, 상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것일 수 있다.

Description

블록체인 기반 시스템에서의 비결정적 데이터 생성 방법{METHOD FOR GENERATING NON-DETERMINISTIC DATA IN BLOCKCHAIN-BASED SYSTEM}
본 발명은 블록체인 기반 시스템에서 수행되는 비결정적 데이터 생성 방법에 관한 것이다. 보다 자세하게는, 블록체인 알고리즘에 따라 동작하는 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에서, 외부의 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법, 비결정적 데이터를 요구하는 트랜잭션을 자체적으로 처리하는 방법에 관한 것이다.
블록체인(blockchain) 기술은 지속적으로 증가하는 데이터를 특정 단위의 블록에 기록하고, P2P(peer-to-peer) 네트워크를 구성하는 각각의 노드들이 상기 블록을 체인 형태의 자료 구조로 관리하는 데이터 관리 기술을 의미한다. 이때, 체인 형태의 자료 구조로 구성된 블록체인 데이터는, 중앙 시스템의 제어 없이 각각의 블록체인 노드에서 동일하게 유지된다.
블록체인 기반 시스템을 구성하는 각 블록체인 노드는 모두 동일한 블록체인 데이터를 유지하도록 동작하기 때문에, 블록체인 기반 시스템은 자체적으로 비결정적 데이터(non-deterministic data)를 생성할 수 없다. 예를 들어, 도 1에 도시된 바와 같이, 제1 블록체인 노드(1)와 제2 블록체인 노드(3)가 각각 랜덤 값(2,4)을 생성한다고 가정하자. 그러면, 비결정적 데이터의 특성으로 인해 각 블록체인 노드(1, 3)에서 상이한 랜덤 값(2,4)이 생성될 수 있다. 이와 같은 경우, 블록체인 노드(1,3) 간에 합의가 이루어질 수 없기 때문에, 생성된 랜덤 값은 블록체인 상에서 유효하게 이용될 수 없다. 따라서, 블록체인 기반 시스템에서는 자체적으로 비결정적 데이터가 생성될 수 없다.
상기와 같은 문제를 해결하기 위해, 일부 블록체인 기반 시스템(e.g. 이더리움)에서는 외부 서버로부터 비결정적 데이터를 얻어오는 방식을 채용하고 있다. 그러나, 외부 서버는 집중적인 공격 대상이 되는 등 전체 블록체인 기반 시스템의 신뢰성을 저하시키는 주된 요인이 된다.
이에 따라, 블록체인 기반 시스템에서 외부 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법이 요구되고 있다.
한국공개특허 제2017-0089795호(2017.08.04 공개)
본 발명이 해결하고자 하는 기술적 과제는, 블록체인 기반 시스템에서 외부 서버를 이용하지 않고 자체적으로 비결정적 데이터를 생성하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는, 블록체인 기반 시스템에서 비결정적 데이터가 이용되는 트랜잭션을 자체적으로 처리하는 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계 및 상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함할 수 있다. 이때, 상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것일 수 있다.
일 실시예에서, 상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며, 상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1이 될 수 있다.
일 실시예에서, 상기 생성 요청은, 상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것일 수 있다.
일 실시예에서, 상기 제1 블록체인 노드가, 상기 생성 요청과 함께 상기 비결정적 데이터에 대한 식별 값을 받는 단계를 더 포함하되, 상기 선택된 비결정적 데이터는 상기 식별 값과 매칭되어 상기 블록체인 상에 기록될 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청을 받는 단계, 상기 제1 블록체인 노드가, 상기 생성 요청의 응답으로, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 상기 비결정적 데이터를 생성하는 단계 및 상기 제1 블록체인 노드가, 상기 생성된 비결정적 데이터를 제공하는 단계를 포함할 수 있다.
일 실시예에서, 상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며, 상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1이 될 수 있다.
일 실시예에서, 상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트에 서명하는 블록체인 노드의 리스트를 설정 항목으로 포함하며, 상기 제1 스마트 컨트랙트의 합의 정책에 정의된 블록체인 노드의 리스트는 상기 제1 블록체인 노드만을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 요청 장치로부터 수신된 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 수신하는 단계, 상기 제1 블록체인 노드가, 상기 요청 장치로 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 제공하는 단계 및 상기 복수의 블록체인 노드 중 특정 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중 상기 요청 장치에 의해 선택된 비결정적 데이터를 수신하는 단계를 포함할 수 있다. 이때, 상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 생성된 것일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 블록체인 기반 시스템에서의 트랜잭션 처리 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 트랜잭션 처리 방법에 있어서, 사용자 단말로부터 비결정적 데이터가 이용되는 타깃 트랜잭션에 대한 처리 요청을 수신하는 단계, 상기 처리 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 비결정적 데이터를 생성하는 단계 및 상기 블록체인 상에 공유된 상기 타깃 트랜잭션에 관한 제2 스마트 컨트랙트 및 상기 생성된 비결정적 데이터를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함할 수 있다.
일 실시예에서, 상기 타깃 트랜잭션을 처리하는 단계는, 상기 생성된 비결정적 데이터에 기초하여 챌린지(challenge) 데이터를 상기 사용자 단말로 제공하는 단계, 상기 사용자 단말로부터, 상기 챌린지 데이터에 대응되는 리스폰스(response) 데이터를 수신하는 단계 및 상기 리스폰스 데이터 및 상기 제2 스마트 컨트랙트를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 블록체인 기반 시스템은, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 제1 블록체인 노드 및 상기 생성 요청에 응답하여, 상기 제1 스마트 컨트랙트를 이용하여 제2 비결정적 데이터를 생성하는 제2 블록체인 노드를 포함할 수 있다. 이때, 상기 제1 블록체인 노드는, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 동작을 수행하고, 상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록될 수 있다.
상술한 본 발명의 몇몇 실시예들에 따르면, 외부 서버의 도움 없이 블록체인 기반 시스템에서 자체적으로 비결정적 데이터가 생성될 수 있다. 따라서, 외부 서버에 의해 블록체인 기반 시스템의 보안성 및 신뢰성이 전반적으로 저하되는 문제가 해결될 수 있다.
또한, 생성된 비결정적 데이터는 트랜잭션 ID와 같은 식별 값에 매칭되어 블록체인 상에 기록되고, 기록된 비결정적 데이터는 식별 값에 의해 조회될 수 있다. 따라서, 본 발명의 실시예들에 따른 블록체인 기반 시스템은 해당 트랜잭션의 거래 주체만이 해당 트랜잭션의 처리에 이용된 비결정적 데이터에 접근 가능하도록 동작할 수 있다.
또한, 상기 블록체인 기반 시스템은 비결정적 데이터가 필수적으로 요구되는 중요 트랜잭션(e.g. 챌린지-리스폰스 기반의 인증이 수반되는 트랜잭션)에 대한 안전한 처리 서비스를 제공할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 블록체인 기반 시스템에서 자체적으로 비결정적 데이터를 생성하는 경우의 문제점을 설명하기 위한 도면이다.
도 2는 본 발명의 몇몇 실시예들에 따른 방법들이 수행될 수 있는 예시적인 블록체인 기반 시스템의 구성도이다
도 3 내지 도 5는 본 발명의 제1 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.
도 7은 본 발명의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.
도 8 내지 도 10은 본 발명의 몇몇 실시예들에 따른 비결정적 데이터의 조회 및 제공 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.
도 12 및 도 13은 본 발명의 몇몇 실시예들에 따른 방법으로 생성된 비결정적 데이터가 트랜잭션 처리에 활용되는 예들을 나타내는 흐름도이다.
도 14는 블록체인 기반 시스템을 구성하는 각 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 블록체인 데이터란 블록체인 네트워크를 구성하는 각각의 블록체인 노드가 유지하는 데이터로, 적어도 하나의 블록이 체인 형태의 자료 구조로 구성되는 데이터를 가리킨다. 블록체인 기반 시스템을 구성하는 모든 블록체인 노드는 동일한 블록체인 데이터를 유지한다. 단, 블록체인 기반 시스템이 멀티 채널(multi-channel) 기능을 지원하는 경우, 동일한 채널에 속한 블록체인 노드들끼리 동일한 블록체인 데이터를 유지하게 된다.
본 명세서에서, 블록체인 네트워크란, 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 복수의 블록체인 노드로 구성된 P2P 구조의 네트워크를 의미한다.
본 명세서에서, 블록체인 노드란, 블록체인 네트워크를 구성하고 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 컴퓨팅 노드를 의미한다. 상기 컴퓨팅 노드는 물리적 장치로 구현될 수 있으나, 가상 머신(virtual machine)과 같이 논리적 장치로 구현될 수도 있다. 상기 컴퓨팅 노드가 가상 머신으로 구현되는 경우, 하나의 물리적 장치에 복수의 블록체인 노드가 포함될 수도 있다. 상기 블록체인 노드가 물리적 장치로 구현된 예시에 대해서는 도 14를 참조하도록 한다.
본 명세서에서, 비결정적 데이터(non-deterministic data)란, 경우에 따라 서로 다른 결과가 나올 수 있는 확률적 성질을 갖는 모든 데이터를 포함한다. 상기 비결정적 데이터의 대표적인 예시로는 랜덤 데이터(e.g. random number), 타임 스탬프(timestamp) 등이 될 수 있다. 그러나, 본 발명의 범위가 상기 열거된 예시에 한정되는 것은 아니다.
본 명세서에서, 스마트 컨트랙트(smart contract)란, 블록체인 기반 시스템에서 트랜잭션 처리에 이용되는 스크립트 또는 소프트웨어 코드를 의미한다. 보다 구체적으로, 상기 스마트 컨트랙트는 트랜잭션 처리에 이용되는 각종 조건, 상태, 상기 조건에 따른 행위를 프로그래밍 방식으로 작성한 코드로, 예를 들어, 이더리움(ethereum)의 스마트 컨트랙트, 하이퍼레저 패브릭(hyperledger fabric)의 체인코드(chain code) 등을 포함할 수 있다. 블록체인 기반 시스템에서, 블록체인 노드는 블록체인을 통해 스마트 컨트랙트를 공유할 수 있다.
이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 2는 본 발명의 몇몇 실시예들에 따른 방법들이 수행될 수 있는 예시적인 블록체인 기반 시스템의 구성도이다.
도 2를 참조하면, 상기 블록체인 기반 시스템은 복수의 블록체인 노드(100-1 내지 100-6)를 포함하도록 구성될 수 있다. 단, 이는 본 발명의 목적을 달성하기 위한 바람직한 실시예일뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있음은 물론이다. 또한, 도 2에 도시된 블록체인 기반 시스템의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 적어도 하나의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 사용자 단말(200)과 적어도 하나의 블록체인 노드(100)는 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직(logic)으로 구현될 수도 있다. 또한, 둘 이상의 블록체인 노드(100)가 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직으로 구현될 수도 있다.
상기 블록체인 기반 시스템에서, 블록체인 노드(100)는 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 노드이다. 복수의 블록체인 노드(100)는 분산된 구조의 P2P 네트워크(300)를 구성하며, 블록체인 상에서 블록체인 데이터를 공유한다. 다만, 상기 블록체인 기반 시스템이 멀티 채널 기능을 제공하는 경우, 같은 채널에 속한 블록체인 노드 간에만 블록체인 데이터가 공유될 수 있다.
참고로, 상기 블록체인 상에서 블록체인 데이터가 공유된다는 것은, 복수의 블록체인 노드가 동일한 블록체인 데이터를 유지한다는 것으로 이해될 수 있다.
블록체인 노드(100)는 블록체인 상에서 스마트 컨트랙트를 공유한다. 도 2에는, 블록체인 노드(100-1, 100-2)만이 스마트 컨트랙트(10) 및 스마트 컨트랙트(20)를 공유하고 있는 것으로 도시하였으나, 나머지 블록체인 노드(100-3 내지 100-6)도 스마트 컨트랙트(10) 및 스마트 컨트랙트(20)를 공유하고 있을 수 있다. 그러나, 전술한 바와 같이, 두 블록체인 노드(100-1, 100-2)가 같은 채널에 속한 노드이기 때문에, 블록체인 노드(100-1, 100-2)끼리만 스마트 컨트랙트(10, 20)를 공유하고 있는 것으로 이해해도 무방하다.
상기 블록체인 기반 시스템에서, 스마트 컨트랙트(10, 이하 "스마트 컨트랙트 A"로 칭함)는 사용자 단말(200)로부터 요청된 트랜잭션을 처리하는 루틴이 포함된 소프트웨어 코드이다. 본 발명의 몇몇 실시예에 따르면, 상기 요청된 트랜잭션은 비결정적 데이터를 이용하여 처리되는 트랜잭션(e.g. 챌린지-리스폰스 기반의 인증이 수반되는 트랜잭션)일 수 있고, 스마트 컨트랙트 A(10)는 상기 요청된 트랜잭션을 처리하기 위해 비결정적 데이터를 이용하는 특정 루틴(routine)을 포함할 수 있다. 또한, 스마트 컨트랙트 A(10)는 상기 특정 루틴이 실행되는 과정에서 필요한 비결정적 데이터를 얻기 위해 스마트 컨트랙트(20, 이하 "스마트 컨트랙트 B"로 칭함)를 이용할 수 있다. 이에 대한 자세한 설명은 도 3 이하의 도면을 참조하여 후술하도록 한다.
스마트 컨트랙트 B(20)는 비결정적 데이터를 생성하는 루틴이 포함된 소프트웨어 코드이다. 예를 들어, 스마트 컨트랙트 B(20)는 랜덤 데이터를 생성하는 함수(e.g. random())를 포함할 수 있다. 따라서, 스마트 컨트랙트 B(20)는 비결정적 데이터의 요청자에게 자체적으로 생성된 비결정적 데이터를 제공할 수 있다. 이때, 상기 요청자는 사용자 단말(200)이 될 수도 있고, 블록체인 노드(100)가 될 수도 있음은 물론이다. 스마트 컨트랙트 B(20)를 이용하여 비결정적 데이터를 생성하는 방법, 스마트 컨트랙트 B(20)를 이용하여 비결정적 데이터가 이용되는 트랜잭션을 처리하는 방법 등에 대한 자세한 설명은 도 3 이하의 도면을 참조하여 상세하게 설명하도록 한다.
본 발명의 몇몇 실시예에 따르면, 스마트 컨트랙트(e.g. 10, 20) 별로 합의 정책(e.g. 하이퍼레저 패브릭의 경우 endorsement policy)이 정의될 수 있다. 상기 합의 정책은 예를 들어 해당 스마트 컨트랙트를 실행하는(또는 서명하는) 블록체인 노드의 리스트(또는 서명의 리스트), 블록체인 노드의 개수, 해당 스마트 컨트랙트에 관한 트랜잭션의 합의에 요구되는 서명(signature)의 개수 등의 항목을 포함할 수 있으나, 본 발명의 범위가 상기 열거된 예시에 한정되는 것은 아니다. 본 실시예에서, 스마트 컨트랙트는 상기 합의 정책에 따라 실행되고, 상기 합의 정책은 해당 스마트 컨트랙트의 용도, 중요도 등의 요인에 따라 유연하게 정의될 수 있다.
사용자 단말(200)은 블록체인 기반 시스템을 통해 각종 트랜잭션의 처리 서비스를 제공 받는 단말이다. 예를 들어, 사용자 단말(200)은 블록체인 기반 시스템으로 트랜잭션의 처리를 요청하고, 요청에 따른 트랜잭션의 처리 결과를 확인할 수 있다. 또한, 사용자 단말(200)은 블록체인 기반 시스템으로 비결정적 데이터를 직접 요청하고, 상기 블록체인 기반 시스템에 의해 자체적으로 생성된 비결정적 데이터를 제공받을 수도 있다.
상기 블록체인 기반 시스템을 구성하는 각 구성 요소는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 2를 참조하여 본 발명의 몇몇 실시예들 따른 방법이 수행될 수 있는 예시적인 블록체인 기반 시스템에 대하여 설명하였다. 이하에서는, 도 3 내지 도 13을 참조하여 상기 블록체인 기반 시스템에서 수행되는 본 발명의 몇몇 실시예들에 따른 방법들에 대하여 설명하도록 한다.
도 3 내지 도 5는 본 발명의 제1 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 설명하기 위한 흐름도이다. 도 3, 도 4 및 그 이하의 도면은 2개의 블록체인 노드(100-1, 100-2)만을 도시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이고, 3개 이상의 블록체인 노드가 포함될 수도 있음은 물론이다.
상기 제1 실시예에서, 비결정적 데이터의 요청 및 생성은 모두 단일 블록체인 노드에서 수행된다. 이하, 상기 제1 실시예에 따른 방법에 대하여 상세하게 설명하도록 한다.
도 3을 참조하면, 상기 제1 실시예에 따른 방법은 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S10)에서 시작된다. 이때, 요청된 트랜잭션은 비결정적 데이터가 이용되는 트랜잭션이다.
본 발명의 몇몇 실시예에 따르면, 사용자 단말(200)은 소정의 식별 값과 함께 상기 트랜잭션의 처리를 요청할 수 있다. 이때, 상기 식별 값은 비결정적 데이터에 대한 조회 기능을 제공하기 위해 이용되는 값으로, 예를 들어, 트랜잭션 ID, 랜덤 값 등이 이용될 수 있다. 본 실시예에서, 생성된 비결정적 데이터는 수신된 식별 값과 매칭되어 블록체인 상에 기록될 수 있다. 이에 대한 예는 도 4, 도 12 및 도 13을 참조하도록 한다. 또한, 식별 값을 이용하여 블록체인 상에 기록된 비결정적 데이터에 대한 조회 기능이 제공될 수 있다. 실시예에 따라, 비결정적 데이터에 대한 유효 기간(expiration time)이 설정되고, 유효 기간 정보 또한 상기 식별 값에 매칭되어 블록체인 상에 기록될 수 있다. 유효 기간의 활용예는 도 13 및 도 14를 참조하여 설명하도록 한다.
다시 도 3을 참조하면, 상기 트랜잭션의 처리 요청에 응답하여, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 A(10)를 실행한다. 전술한 바와 같이, 스마트 컨트랙트 A(10)는 비결정적 데이터를 이용하여 해당 트랜잭션을 처리하는 루틴을 포함하는 스마트 컨트랙트이다.
단계(S11)에서, 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 트리거(trigger) 된다.
단계(S12)에서, 상기 생성 요청에 응답하여, 제1 블록체인 노드(100-1)는 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성한다. 전술한 바와 같이, 스마트 컨트랙트 B(20)는 비결정적 데이터(e.g. 0x123)를 생성하는 루틴을 포함하는 스마트 컨트랙트이다.
단계(S12)에서, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 B(20)를 실행하는 반면, 제2 블록체인 노드(100-2)는 스마트 컨트랙트 B(20)를 실행하지 않는다. 이는, 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있다. 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 합의에 필요한 서명의 개수가 1개("1 of n")이거나 스마트 컨트랙트 B(20)를 실행하는(또는 서명하는) 블록체인 노드(endorser)가 제1 블록체인 노드(100-1)가 되도록 "endorsement policy"가 정의되면 도 3에 도시된 바와 같이 동작할 수 있다.
단계(S13)에서, 스마트 컨트랙트 B(20)의 실행 결과로 생성된 비결정적 데이터가 스마트 컨트랙트 A(10)로 제공된다. 그러면, 스마트 컨트랙트 A(10)는 생성된 비결정적 데이터를 이용하여 요청된 트랜잭션을 처리할 수 있다.
단계(S14)에서, 제1 블록체인 노드(100-1)는 트랜잭션의 처리 결과를 사용자 단말(200)에게 제공한다. 이때, 제1 블록체인 노드(100-1)는 트랜잭션 처리에 이용된 비결정적 데이터를 함께 사용자 단말(200)에게 제공할 수도 있다.
참고로, 도 3에서 스마트 컨트랙트 B(20)는 스마트 컨트랙트 A(10)의 요청에 따라 비결정적 데이터를 생성하였으나, 사용자 단말(200)의 직접적인 요청에 응답하여 비결정적 데이터를 생성할 수도 있음은 물론이다.
한편, 블록체인의 구현 방식에 따라, 블록체인 노드 중 트랜잭션을 처리하고 서명하는 노드(e.g. 하이퍼레저 패브릭의 "endorser")와 트랜잭션의 확정을 담당하는 노드(e.g. 하이퍼레저 패브릭의 "orderer")가 별도로 존재할 수도 있다. 이와 같이, 트랜잭션의 확정을 담당하는 노드(이하, "합의 노드"로 칭함)가 별도로 존재하는 경우, 상기 제1 실시예에 따른 방법은 도 5에 도시된 바와 같이 수행될 수 있다. 간략하게 부연 설명하면, 제1 블록체인 노드(100-1)의 스마트 컨트랙트 A(10)는 생성된 비결정적 데이터의 확정을 담당하는 합의 노드(100-k)로 전달하고(S34), 합의 노드(100-k)가 전달받은 비결정적 데이터를 블록에 기록하고 블록체인 네트워크 상에 전파함으로써, 블록체인 상에 상기 생성된 비결정적 데이터가 기록될 수 있다. 이하에서는, 합의 노드가 존재하는 경우를 가정하여, 본 발명의 몇몇 실시예들에 따른 방법을 설명하도록 한다. 다만, 합의 노드의 존재 여부에 의해, 본 발명의 기술적 범위가 한정되거나 변경되는 것은 아니다.
지금까지 도 3 내지 도 5를 참조하여 본 발명의 제1 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 상술한 방법에 따르면, 외부의 서버를 이용하지 않고, 블록체인 기반 시스템 내부에서 자체적으로 비결정적 데이터가 생성될 수 있다. 이에 따라, 외부 서버에 의해 야기되는 보안 상의 취약점이 보완되는 바, 전반적인 시스템의 신뢰성 및 보안성이 향상될 수 있다.
다음으로, 도 6을 참조하여 본 발명의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하도록 한다.
도 6은 본 발명의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.
상기 제2 실시예에서, 비결정적 데이터의 요청과 생성은 서로 다른 블록체인 노드에서 수행된다. 이하, 상기 제2 실시예에 따른 방법을 설명함에 있어 전술한 실시예와의 차이점을 중심으로 설명하고, 전술한 실시예와 동일한 내용에 대한 설명은 생략한다.
도 6을 참조하면, 상기 제2 실시예에 따른 방법 또한 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S40)에서 시작된다. 전술한 바와 같이, 단계(S40)에서 소정의 식별 값이 사용자 단말(200)로부터 제공될 수도 있다.
단계(S41)에서, 제1 블록체인 노드(100)의 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 트리거 된다.
단계(S42)에서, 상기 생성 요청에 응답하여, 제2 블록체인 노드(100-2)가 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성한다.
즉, 단계(S42)에서, 제2 블록체인 노드(100-2)는 스마트 컨트랙트 B(20)를 실행하는 반면, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 B(20)를 실행하지 않는다. 이는, 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있다. 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 합의에 필요한 서명의 개수가 1개("1 of n")이거나 스마트 컨트랙트 B(20)의 실행 노드(endorser)가 제2 블록체인 노드(100-2)가 되도록 "endorsement policy"가 정의되면 도 6에 도시된 바와 같이 동작할 수 있다.
단계(S43)에서, 스마트 컨트랙트 B(20)의 실행 결과로 생성된 비결정적 데이터가 스마트 컨트랙트 A(10)로 제공된다. 그러면, 스마트 컨트랙트 A(10)는 생성된 비결정적 데이터를 이용하여 요청된 트랜잭션을 처리할 수 있다. 이하의 단계(S44 내지 S46)에 대한 설명은 전술한 바와 같으므로 생략하도록 한다.
지금까지, 도 6을 참조하여 본 발명의 제2 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 이하에서는, 도 7을 참조하여 본 발명의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하도록 한다.
도 7은 본 발명의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.
상기 제3 실시예에서, 비결정적 데이터의 생성은 복수의 블록체인 노드(e.g. 100-1, 100-2, ??, 100-n)에서 수행된다. 이하, 상기 제3 실시예에 따른 방법을 설명함에 있어 전술한 실시예와의 차이점을 중심으로 설명하고, 전술한 실시예와 동일한 내용에 대한 설명은 생략한다.
도 7을 참조하면, 상기 제3 실시예에 따른 방법 또한 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S50)에서 시작된다. 전술한 바와 같이, 단계(S50)에서 소정의 식별 값이 사용자 단말(200)로부터 제공될 수 있음은 물론이다.
단계(S51-1, S51-2)에서, 제1 블록체인 노드(100)의 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 복수의 블록체인 노드(100-1, 100-2)로 트리거 된다.
단계(S52-1, S52-2)에서, 상기 생성 요청에 응답하여, 각각의 블록체인 노드(100-1, 100-2)가 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터(e.g. 0x123, 0xabc)를 생성한다.
즉, 단계(S52-1, S52-2)에서, 복수의 블록체인 노드(e.g. 100-1, 100-2)가 각각 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성하는데, 이는 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있다. 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 합의에 필요한 서명의 개수가 1개("1 of n")이고 스마트 컨트랙트 B(20)를 실행하는(또는 서명하는) 블록체인 노드(endorser)가 복수가 되도록 "endorsement policy"가 정의되면 도 7에 도시된 바와 같이 동작할 수 있다. 물론, 스마트 컨트랙트 B(20)에 서명하는 노드의 리스트가 제1 블록체인 노드(100-1) 및 제2 블록체인 노드(100-2)만을 포함하도록 "endorsement policy"가 정의되면, 상기 복수의 블록체인 노드 중에서 2개의 블록체인 노드(100-1, 100-2)만이 스마트 컨트랙트 B(20)를 실행하고 서명하게 된다.
단계(S53-1, S53-2, S54)에서, 제1 블록체인 노드(100-1)는 생성된 복수의 비결정적 데이터를 제공받고, 상기 복수의 비결정적 데이터 중에서 특정 비결정적 데이터(e.g. 0x123)를 선택한다. 여기서, 특정 비결정적 데이터를 선택하는 방식은 어떠한 방식이 이용되더라도 무방하다.
제1 예에서, 제1 블록체인 노드(100-1)는 획득 시간에 기초하여 특정 비결정적 데이터를 선택(e.g. 가장 먼저 획득된 데이터, 가장 늦게 획득된 데이터 등)할 수 있다.
제2 예에서, 제1 블록체인 노드(100-1)는 복수의 비결정적 데이터 중에서 임의로 특정 비결정적 데이터를 선택할 수 있다.
제3 예에서, 제1 블록체인 노드(100-1)는 복수의 비결정적 데이터의 값의 분포에 기초하여 특정 데이터를 선택할 수 있다. 예컨대, 복수의 비결정적 데이터 중에서 편차가 가장 큰 데이터가 선택될 수 있다. 다만, 상기 열거된 예시들은 본 발명의 일부 실시예를 설명하기 위한 것일 뿐이고, 본 발명의 범위가 상기 열거된 예시들에 한정되는 것은 아니다.
이하의 단계(S55 내지 S57)에 대한 설명은 전술한 바와 같으므로 생략하도록 한다.
지금까지, 도 7을 참조하여 본 발명의 제3 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 상술한 방법에 따르면, 외부의 서버를 이용하지 않고, 블록체인 기반 시스템 내부에서 자체적으로 비결정적 데이터가 생성될 수 있다. 이에 따라, 외부 서버에 의해 야기되는 보안 상의 취약점이 보완되는 바, 전반적인 시스템의 신뢰성 및 보안성이 향상될 수 있다.
이하에서는, 도 8 내지 도 10을 참조하여 본 발명의 몇몇 실시예들에 따른 비결정적 데이터의 조회 및 제공 방법에 대하여 간략하게 설명하도록 한다.
도 8 내지 도 10에 도시된 바와 같이, 전술한 실시예들에 따라 생성된 비결정적 데이터는 다양한 방식으로 사용자 단말(200)로 제공될 수 있다.
제1 실시예에서, 도 8에 도시된 바와 같이, 단계(S64)에서 비결정적 데이터가 선택되면, 제1 블록체인 노드(100-1)는 선택된 비결정적 데이터가 블록체인 상에 기록되기 전에(즉, 확정되기 전에) 사용자 단말(200)로 상기 선택된 비결정적 데이터를 제공할 수 있다(S65). 물론, 제1 블록체인 노드(100-1)가 하나의 비결정적 데이터만 제공받는 경우(e.g. 도 4 내지 도 6에 도시된 경우)라면, 제1 블록체인 노드(100-1)는 별도의 선택 과정을 수행하지 않고 바로 사용자 단말(200)로 상기 비결정적 데이터를 제공하도록 동작할 수 있다.
제2 실시예에서, 도 9에 도시된 바와 같이, 제1 블록체인 노드(100-1)는 생성된 비결정적 데이터가 블록체인 상에 기록된 이후에 비결정적 데이터를 제공하도록 동작할 수 있다(S77).
제3 실시예에서, 도 10에 도시된 바와 같이, 제1 블록체인 노드(100-1)는 생성된 비결정적 데이터가 블록체인 상에 기록된 이후에 소정의 확정 신호를 사용자 단말(200)로 통지할 수 있다(S87). 도 10에서, 상기 확정 신호의 통지는 스마트 컨트랙트 B(20)에 의해 수행되는 것으로 도시되었다. 다만, 실시예에 따라, 스마트 컨트랙트 A(10)에 의해 상기 확정 신호가 통지될 수도 있다. 본 실시예에서, 확정 신호 통지를 받은 이후에, 사용자 단말(200)은 블록체인 상에 기록된 비결정적 데이터를 조회할 수 있고, 상기 조회는 비결정적 데이터의 생성 요청 시 제공한 식별 값을 이용하여 수행될 수 있다(S88 내지 S90). 도 10에서, 사용자 단말(200)은 스마트 컨트랙트 A(10)를 통해 비결정적 데이터를 조회하는 것으로 도시되었으나, 사용자 단말(200)은 직접 스마트 컨트랙트 B(20)를 통해 블록체인 상에 기록된 비결정적 데이터를 조회할 수도 있다.
제4 실시예에서, 상기 제1 실시예 내지 상기 제3 실시예의 조합에 의해 생성된 비결정적 데이터가 사용자 단말(200)로 제공되거나, 조회될 수 있다.
지금까지, 도 8 내지 도 10을 참조하여 본 발명의 몇몇 실시예들에 따른 비결정적 데이터의 조회 및 제공 방법에 대하여 간략하게 설명하였다. 이하에서는, 도 11을 참조하여 본 발명의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하도록 한다.
도 11은 본 발명의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 나타내는 흐름도이다.
상기 제4 실시예에서, 비결정적 데이터의 생성은 전술한 제3 실시예와 마찬가지로 복수의 블록체인 노드(e.g. 100-1, 100-2, ??, 100-n)에서 수행된다. 다만, 비결정적 데이터의 선택이 별도의 장치(e.g. 사용자 단말 200)에서 수행되는 차이점이 있다. 이하, 상기 제4 실시예에 따른 방법을 설명함에 있어 전술한 실시예와의 차이점을 중심으로 설명하고, 전술한 실시예와 동일한 내용에 대한 설명은 생략한다.
도 11을 참조하면, 상기 제4 실시예에 따른 방법 또한 사용자 단말(200)로부터 트랜잭션 처리 요청을 받는 단계(S100)에서 시작된다. 전술한 바와 같이, 단계(S100)에서 소정의 식별 값이 사용자 단말(200)로부터 제공될 수 있음은 물론이다.
단계(S101-1 내지 S103-2)에서, 복수의 블록체인 노드(e.g. 100-1, 100-2)가 각각 스마트 컨트랙트 B(20)를 실행하여 복수의 비결정적 데이터를 생성한다. 이에 대한 자세한 설명은 전술한 바와 같으므로 생략하도록 한다.
단계(S104)에서, 제1 블록체인 노드(100-1)가 생성된 복수의 비결정적 데이터(e.g. 0x123, 0xabc)를 사용자 단말(200)로 제공한다.
참고로, 도 11에서는 제1 블록체인 노드(100-1)가 복수의 비결정적 데이터(e.g. 0x123, 0xabc)를 모아서 사용자 단말(200)로 제공하는 것이 예로써 도시되었으나, 실시예에 따라, 블록체인 노드(e.g. 100-1, 100-2) 각각이 자신이 생성한 비결정적 데이터를 사용자 단말(200)로 제공할 수도 있다.
단계(S105)에서, 사용자 단말(200)은 복수의 비결정적 데이터 중에서 특정 비결정적 데이터(e.g. 0x123)를 선택한다. 여기서, 특정 비결정적 데이터를 선택하는 방식은 어떠한 방식이 이용되더라도 무방하다.
단계(S106)에서, 사용자 단말(200)은 합의 노드(100-k)로 선택된 비결정적 데이터를 전달하여, 상기 선택된 비결정적 데이터가 블록체인 상에 기록되도록 한다.
참고로, 도 11에서는 사용자 단말(200)이 선택된 비결정적 데이터를 직접 합의 노드(100-k)로 전달하는 것이 예로써 도시되었으나, 실시예에 따라, 사용자 단말(200)은 상기 선택된 비결정적 데이터를 다른 블록체인 노드(e.g. 100-1, 100-2)를 통해서 합의 노드(100-k)로 전달하도록 동작할 수도 있다.
이하의 단계(S107)에 대한 설명은 전술한 바와 같으므로 생략하도록 한다.
한편, 본 발명의 다른 실시예에 따르면, 블록체인 노드(100-1, 100-2)에 의해 생성된 복수의 비결정적 데이터는 합의 노드(100-k)로 전달되고, 합의 노드(100-k)가 비결정적 데이터의 선택 단계(S105)를 수행하도록 동작할 수도 있다. 이와 같은 경우, 합의 노드(100-k)는 선택된 비결정적 데이터를 블록체인 상에 기록하고, 상기 선택된 비결정적 데이터를 제1 블록체인 노드(100-1) 또는 사용자 단말(200)에게 제공하도록 동작할 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 블록체인 노드(100-1, 100-2)에 의해 생성된 복수의 비결정적 데이터는 합의 노드가 아닌 다른 블록체인 노드(e.g. 100-2, 100-3 등)로 전달되고, 상기 복수의 비결정적 데이터를 수신한 특정 블록체인 노드가 비결정적 데이터의 선택 단계(S105)를 수행하도록 동작할 수도 있다. 이와 같은 경우, 상기 특정 블록체인 노드는 합의 노드(100-k) 및/또는 사용자 단말(200)로 선택된 비결정적 데이터를 제공하도록 동작할 수 있다.
또한, 본 발명의 또 다른 실시예에 따르면, 비결정적 데이터의 선택 단계(S105)는 블록체인 네트워크를 구성하지 않는 별도의 컴퓨팅 장치(미도시)에서 수행될 수도 있다. 이때, 상기 컴퓨팅 장치(미도시)는 사용자 단말(200)로부터 수신된 트랜잭션 처리 요청을 블록체인 노드로 전달하고, 블록체인 노드로부터 복수의 비결정적 데이터를 수신하며, 수신된 복수의 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하고, 선택된 비결정적 데이터를 사용자 단말(200), 블록체인 노드(e.g. 100-1, 100-2) 및/또는 합의 노드(100-k)로 전달하는 동작을 수행할 수 있다. 또는, 상기 컴퓨팅 장치(미도시)는 블록체인 노드로부터 복수의 비결정적 데이터를 수신하고, 수신된 복수의 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하며, 선택된 비결정적 데이터를 사용자 단말(200), 블록체인 노드(e.g. 100-1, 100-2) 및/또는 합의 노드(100-k)로 전달하는 동작만을 수행할 수도 있다.
이와 같이, 실시예들에 따라 비결정적 데이터의 선택 단계(S105)를 수행하는 주체는 달라질 수 있다.
지금까지, 도 11을 참조하여 본 발명의 제4 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 이하에서는, 보다 이해의 편의를 제공하기 위해, 블록체인 기반 시스템에서 비결정적 데이터를 활용하는 예시에 대하여 도 12 및 도 13을 참조하여 설명하도록 한다.
도 12 및 도 13은 본 발명의 몇몇 실시예들에 따른 방법으로 생성된 비결정적 데이터가 트랜잭션 처리에 활용되는 예들을 나타내는 흐름도이다. 특히, 도 12 및 도 13은 챌린지-리스폰스(challenge-response) 기반의 사용자 인증이 수반되는 트랜잭션을 스마트 컨트랙트 A(10)를 통해 처리하는 예를 도시하고 있다. 또한, 도 12 및 도 13에서 스마트 컨트랙트(10, 20)를 실행하는 블록체인 노드는 실시예들에 따라 달라질 수 있으므로, 블록체인 네트워크(300)로 도시되었다. 먼저, 도 12에 도시된 활용 예를 설명한다.
도 12를 참조하면, 단계(S110 내지 S113)에서, 사용자 단말(200)의 트랜잭션 처리 요청에 응답하여, 스마트 컨트랙트 B(20)를 통해 비결정적 데이터가 생성되고, 생성된 비결정적 데이터는 블록체인 상에 기록된다. 이때, 소정의 식별 값(e.g. 트랜잭션 ID)에 매칭되어 블록체인 상에 기록될 수 있다. 여기서, 비결정적 데이터가 식별 값에 매칭되어 저장되고 식별 값을 통해 비결정적 데이터에 대한 접근이 허용되는 경우, 해당 트랜잭션의 거래 주체만이 트랜잭션의 처리에 이용된 비결정적 데이터에 접근할 수 있게 된다. 따라서, 보다 안전한 트랜잭션 처리 서비스가 제공될 수 있다.
또한, 본 발명의 실시예에 따르면, 비결정적 데이터의 유효 기간이 함께 블록체인 상에 기록될 수 있다. 본 실시예에서, 유효 기간이 지난 비결정적 데이터는 더 이상 유효하지 않은 데이터로 처리되므로, 리플레이 공격(replay attack) 등에 대한 예방이 가능하다. 즉, 생성된 비결정적 데이터가 탈취되더라도, 이후의 트랜잭션에 영향을 미치지 않기 때문에, 트랜잭션 처리에 대한 보안성이 더욱 향상될 수 있다.
단계(S114 내지 S116)에서, 생성된 비결정적 데이터는 랜덤 챌린지 값으로써 사용자 단말(200)로 전달된다.
단계(S117)에서, 사용자 단말(200)은 전달받은 랜덤 챌린지 값을 이용하여 전자 서명을 수행한다. 상기 전자 서명은 예를 들어 랜덤 챌린지 값을 사용자의 개인키로 서명하는 방식일 수 있으나. 어떠한 방식으로 수행되더라도 무방하다. 예컨대, 해시 함수를 이용하여 랜덤 챌린지 값에 대한 해싱(hashing)이 수행되더라도 무방하며, 챌린지-리스폰스 기법에 따라 단계(S97)의 동작과 사용자 단말(200)이 제공하는 리스폰스 데이터의 유형은 얼마든지 다양한 형태로 변형될 수 있다.
단계(S118 내지 S120)에서, 스마트 컨트랙트 A(10)는 사용자 단말(200)로부터 전자 서명과 트랜잭션 ID를 수신하고, 상기 트랜잭션 ID를 이용하여 블록체인 상에 기록된 랜덤 챌린지 값의 조회를 요청한다.
단계(S121)에서, 스마트 컨트랙트 B(20)를 통해 랜덤 챌린지 값의 조회 및 유효성 체크가 수행된다. 예를 들어, 상기 유효성 체크는 상기 트랜잭션 ID에 매칭되는 랜덤 챌린지 값이 조회되는지 여부에 대한 판정, 조회된 랜덤 챌린지 값의 유효 기간이 이미 만료됐는지 여부에 대한 판정 등을 포함할 수 있다.
본 발명의 실시예에 따르면, 랜덤 챌린지 값의 조회 요청에 응답하여, 스마트 컨트랙트 B(20)는 조회된 랜덤 챌린지 값의 유효 기간이 만료되었는지 여부를 판정하고, 만료되지 않았다는 판정에 응답하여 상기 유효 기간을 갱신하도록 동작할 수 있다.
본 발명의 실시예에 따르면, 랜덤 챌린지 값의 조회 요청에 응답하여, 스마트 컨트랙트 B(20)는 조회된 랜덤 챌린지 값의 유효 기간이 만료되었는지 여부를 판정하고, 만료 판정에 응답하여 새로운 랜덤 챌린지 값을 생성할 것을 통지하도록 동작할 수 있다. 또는, 스마트 컨트랙트 B(20)는 상기 만료 판정에 응답하여 새로운 랜덤 챌린지 값을 생성하고, 생성된 랜덤 챌린지 값을 제공하도록 동작할 수도 있다.
단계(S122)에서, 유효성 체크 결과가 포함된 조회 결과가 제공된다.
단계(S123)에서, 스마트 컨트랙트 A(10)는 조회 결과를 활용하여 트랜잭션 처리를 수행한다. 예를 들어, 조회된 랜덤 챌린지 값의 유효 기간이 만료된 경우, 트랜잭션이 유효하게 처리될 수 없음을 알리는 결과가 처리 결과로 제공될 수 있다. 다른 예를 들어, 조회된 랜덤 챌린지 값이 유효한 경우, 사용자의 공개키 및 랜덤 챌린지 값을 이용하여, 전자 서명에 대한 검증이 수행될 수 있다. 그리고, 전자 서명이 검증된 경우, 스마트 컨트랙트 A(10)에 의해 트랜잭션의 처리가 유효하게 수행될 수 있다.
단계(S124, S125)에서, 요청한 트랜잭션의 처리 결과가 사용자 단말(200)로 제공된다.
지금까지, 도 12를 참조하여 본 발명의 활용 예에 대하여 설명하였다. 다음으로, 도 13에 도시된 활용 예에 대하여 설명한다.
도 13에 도시된 활용 예는 도 12에 도시된 예와 전반적으로 유사하다. 다만, 단계(S130 내지 S133)에서 사용자 단말(200)의 요청이 직접적으로 스마트 컨트랙트 B(20)로 전달되고, 생성된 랜덤 챌린지 값 또한 스마트 컨트랙트 A(10)를 거치지 않고 바로 사용자 단말(200)로 제공된다는 점에서 차이가 있다. 그 이후의 단계에 대한 설명은 전술한 바와 동일하므로 생략하도록 한다.
지금까지, 도 12 및 도 13을 참조하여 비결정적 데이터가 활용되는 구체적인 예시에 대하여 설명하였다. 상술한 예들에 따르면, 챌린지-리스폰스에 기반하여 처리되는 트랜잭션이 외부 서버의 도움 없이 블록체인 기반 시스템 내에서 자체적으로 처리될 수 있다. 이에 따라, 블록체인 기반 시스템을 통해 안전성 및 신뢰성이 더욱 향상된 트랜잭션 처리 서비스가 제공될 수 있다.
마지막으로, 도 14를 참조하여, 블록체인 노드(100)를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 구성 및 동작에 대하여 설명하도록 한다.
도 14는 본 발명의 실시예에 따른 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 하드웨어 구성도이다.
도 14를 참조하면, 컴퓨팅 장치(400)는 하나 이상의 프로세서(410), 버스(450), 네트워크 인터페이스(470), 프로세서(410)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(430)와, 스마트 컨트랙트(491)를 저장하는 스토리지(490)를 포함할 수 있다. 다만, 도 14에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 14에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(410)는 컴퓨팅 장치(400)의 각 구성의 전반적인 동작을 제어한다. 프로세서(410)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(410)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(400)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(430)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(430)는 본 발명의 실시예들에 따른 비결정적 데이터 생성 방법을 실행하기 위하여 스토리지(490)로부터 하나 이상의 프로그램(491)을 로드할 수 있다. 도 14에서 메모리(430)의 예시로 RAM이 도시되었다.
버스(450)는 컴퓨팅 장치(400)의 구성 요소 간 통신 기능을 제공한다. 버스(450)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(470)는 컴퓨팅 장치(400)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(470)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(470)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
스토리지(490)는 상기 하나 이상의 프로그램(491)을 비임시적으로 저장할 수 있다. 도 14에서 상기 하나 이상의 프로그램(491)의 예시로 비결정적 데이터를 생성하는 스마트 컨트랙트(491)가 도시되었다. 이외에도, 스토리지(490)는 블록체인 알고리즘에 따라 컴퓨팅 장치(400)를 동작(e.g. 스마트 컨트랙트를 실행)시키는 블록체인 프로그램(미도시)을 더 포함할 수 있다.
스토리지(490)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
스마트 컨트랙트(491)는 전술한 본 발명의 실시예에 따라 블록체인 상에서 비결정적 데이터를 생성한다. 예를 들어, 스마트 컨트랙트(491)는 메모리(430)에 로드되어, 하나 이상의 프로세서(410)에 의해 실행되고, 비결정적 데이터 생성 요청에 응답하여 상기 비결정적 데이터를 생성하는 루틴을 포함할 수 있다.
지금까지, 도 14를 참조하여 본 발명의 실시예에 따른 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 구성 및 동작에 대하여 설명하였다.
지금까지 도 2 내지 도 14를 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 자체적으로 제1 비결정적 데이터를 생성하는 단계;
    상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 상기 제1 비결정적 데이터와 다른 제2 비결정적 데이터를 수신하는 단계; 및
    상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함하되,
    상기 제1 스마트 컨트랙트는 입력 데이터의 도움 없이 자체적으로 비결정적 데이터를 생성하는 루틴을 포함하고,
    상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 자체적으로 생성된 것이며,
    상기 블록체인 기반 시스템은 상기 제1 스마트 컨트랙트에 대한 합의 정책을 관리하고,
    상기 합의 정책은 상기 제1 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며,
    상기 합의 정책에 설정된 서명의 개수는 1인,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  2. 제1 항에 있어서,
    상기 제1 블록체인 노드가, 상기 생성된 비결정적 데이터를 제공하는 단계를 더 포함하되,
    상기 제공하는 단계는,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 비결정적 데이터의 생성을 요청한 노드에게 상기 선택된 비결정적 데이터를 제공하는 단계를 포함하는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  3. 제1 항에 있어서,
    상기 제1 블록체인 노드가, 상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록됨에 응답하여, 상기 비결정적 데이터의 생성을 요청한 노드에게 소정의 신호를 통지하는 단계를 더 포함하는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  4. 제1 항에 있어서,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 다른 스마트 컨트랙트에 대한 합의 정책을 더 관리하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  5. 제1 항에 있어서,
    상기 생성 요청은,
    상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  6. 제1 항에 있어서,
    상기 제1 블록체인 노드가, 상기 생성 요청과 함께 식별 값을 수신하는 단계를 더 포함하되,
    상기 선택된 비결정적 데이터는 상기 식별 값과 매칭되어 상기 블록체인 상에 기록되는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  7. 제6 항에 있어서,
    상기 복수의 블록체인 노드 중 특정 블록체인 노드가, 상기 식별 값과 함께 비결정적 데이터의 조회 요청을 받는 단계; 및
    상기 특정 블록체인 노드가, 상기 조회 요청에 응답하여, 상기 식별 값에 매칭되는 비결정적 데이터를 제공하는 단계를 더 포함하는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  8. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청을 받는 단계;
    상기 제1 블록체인 노드가, 상기 생성 요청의 응답으로, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 상기 비결정적 데이터를 자체적으로 생성하는 단계; 및
    상기 제1 블록체인 노드가, 상기 생성된 비결정적 데이터를 제공하는 단계를 포함하되,
    상기 제1 스마트 컨트랙트는 입력 데이터의 도움 없이 자체적으로 비결정적 데이터를 생성하는 루틴을 포함하고,
    상기 블록체인 기반 시스템은 상기 제1 스마트 컨트랙트에 대한 합의 정책을 관리하며,
    상기 합의 정책은 상기 제1 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하고,
    상기 합의 정책에 설정된 서명의 개수는 1인,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  9. 제8 항에 있어서,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 다른 스마트 컨트랙트에 대한 합의 정책을 더 관리하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  10. 제8 항에 있어서,
    상기 합의 정책은 상기 제1 스마트 컨트랙트에 서명하는 블록체인 노드의 리스트를 설정 항목으로 더 포함하고,
    상기 제1 스마트 컨트랙트의 합의 정책에 설정된 블록체인 노드의 리스트는 상기 제1 블록체인 노드만을 포함하는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  11. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 요청 장치로부터 수신된 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 자체적으로 제1 비결정적 데이터를 생성하는 단계;
    상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 상기 제1 비결정적 데이터와 다른 제2 비결정적 데이터를 수신하는 단계;
    상기 제1 블록체인 노드가, 상기 요청 장치로 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 제공하는 단계; 및
    상기 복수의 블록체인 노드 중 특정 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중 상기 요청 장치에 의해 선택된 비결정적 데이터를 수신하는 단계를 포함하되,
    상기 제1 스마트 컨트랙트는 입력 데이터의 도움 없이 자체적으로 비결정적 데이터를 생성하는 루틴을 포함하고,
    상기 제2 비결정적 데이터는 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 상기 제2 블록체인 노드에 의해 자체적으로 생성된 것이며,
    상기 블록체인 기반 시스템은 상기 제1 스마트 컨트랙트에 대한 합의 정책을 관리하고,
    상기 합의 정책은 상기 제1 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하며,
    상기 합의 정책에 설정된 서명의 개수는 1인,
    블록체인 기반 시스템에서의 비결정적 데이터 생성 방법.
  12. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 트랜잭션 처리 방법에 있어서,
    사용자 단말로부터 비결정적 데이터가 이용되는 타깃 트랜잭션에 대한 처리 요청을 수신하는 단계;
    상기 처리 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 비결정적 데이터를 자체적으로 생성하는 단계; 및
    상기 블록체인 상에 공유된 상기 타깃 트랜잭션에 관한 제2 스마트 컨트랙트 및 상기 생성된 비결정적 데이터를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함하되,
    상기 제1 스마트 컨트랙트는 입력 데이터의 도움 없이 자체적으로 비결정적 데이터를 생성하는 루틴을 포함하고,
    상기 블록체인 기반 시스템은 상기 제1 스마트 컨트랙트에 대한 합의 정책을 관리하며,
    상기 합의 정책은 상기 제1 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하고,
    상기 합의 정책에 설정된 서명의 개수는 1인,
    블록체인 기반 시스템에서의 트랜잭션 처리 방법.
  13. 제12 항에 있어서,
    상기 타깃 트랜잭션을 처리하는 단계는,
    상기 생성된 비결정적 데이터에 기초하여 결정된 챌린지(challenge) 데이터를 상기 사용자 단말로 제공하는 단계;
    상기 사용자 단말로부터, 상기 챌린지 데이터에 대응되는 리스폰스(response) 데이터를 수신하는 단계; 및
    상기 리스폰스 데이터 및 상기 제2 스마트 컨트랙트를 이용하여, 상기 타깃 트랜잭션을 처리하는 단계를 포함하는 것을 특징으로 하는,
    블록체인 기반 시스템에서의 트랜잭션 처리 방법.
  14. 블록체인 기반 시스템에 있어서,
    비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 자체적으로 제1 비결정적 데이터를 생성하는 제1 블록체인 노드; 및
    상기 생성 요청에 응답하여, 상기 제1 스마트 컨트랙트를 이용하여 상기 제1 비결정적 데이터와 다른 제2 비결정적 데이터를 자체적으로 생성하는 제2 블록체인 노드를 포함하되,
    상기 제1 스마트 컨트랙트는 입력 데이터의 도움 없이 자체적으로 비결정적 데이터를 생성하는 루틴을 포함하고,
    상기 블록체인 기반 시스템은 상기 제1 스마트 컨트랙트에 대한 합의 정책을 관리하며,
    상기 제1 스마트 컨트랙트에 대한 합의 정책은 상기 제1 스마트 컨트랙트의 합의에 요구되는 서명(signature)의 개수를 설정 항목으로 포함하고,
    상기 합의 정책에 설정된 서명의 개수는 1이며,
    상기 제1 블록체인 노드는 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 동작을 더 수행하고,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되는 것을 특징으로 하는,
    블록체인 기반 시스템.
  15. 제14 항에 있어서,
    상기 제1 블록체인 노드는,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 비결정적 데이터의 생성을 요청한 노드에게 상기 선택된 비결정적 데이터를 제공하는 동작을 수행하는 것을 특징으로 하는,
    블록체인 기반 시스템.
  16. 제14 항에 있어서,
    상기 제1 블록체인 노드는,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록됨에 응답하여, 상기 비결정적 데이터의 생성을 요청한 노드에게 소정의 신호를 통지하는 동작을 수행하는 것을 특징으로 하는,
    블록체인 기반 시스템.
  17. 제14 항에 있어서,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 다른 스마트 컨트랙트에 대한 합의 정책을 더 관리하는,
    블록체인 기반 시스템.
  18. 제14 항에 있어서,
    상기 생성 요청은,
    상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것을 특징으로 하는,
    블록체인 기반 시스템.
  19. 제14 항에 있어서,
    상기 제1 블록체인 노드는 상기 생성 요청과 함께 식별 값을 수신하되,
    상기 선택된 비결정적 데이터는 상기 식별 값과 매칭되어 상기 블록체인 상에 기록되는 것을 특징으로 하는,
    블록체인 기반 시스템.
  20. 제19 항에 있어서,
    상기 블록체인 기반 시스템은 상기 제1 블록체인 노드 및 상기 제2 블록체인 노드를 포함하는 복수의 블록체인 노드로 구성되되,
    상기 복수의 블록체인 노드 중 특정 블록체인 노드는,
    상기 식별 값이 포함된 비결정적 데이터의 조회 요청에 응답하여, 상기 식별 값에 매칭되는 비결정적 데이터를 제공하는 동작을 수행하는 것을 특징으로 하는,
    블록체인 기반 시스템.
KR1020180035192A 2018-03-27 2018-03-27 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법 KR102589438B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180035192A KR102589438B1 (ko) 2018-03-27 2018-03-27 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법
PCT/KR2019/001046 WO2019190040A1 (ko) 2018-03-27 2019-01-24 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180035192A KR102589438B1 (ko) 2018-03-27 2018-03-27 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법

Publications (2)

Publication Number Publication Date
KR20190113047A KR20190113047A (ko) 2019-10-08
KR102589438B1 true KR102589438B1 (ko) 2023-10-13

Family

ID=68059307

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180035192A KR102589438B1 (ko) 2018-03-27 2018-03-27 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법

Country Status (2)

Country Link
KR (1) KR102589438B1 (ko)
WO (1) WO2019190040A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116934488B (zh) * 2023-09-18 2023-12-05 四川德力政通科技有限公司 一种基于卫星定位的动产在线在途交易管理系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2017216289A1 (en) * 2016-02-04 2018-09-27 Nasdaq Technology Ab Systems and methods for storing and sharing transactional data using distributed computer systems
AU2017240796A1 (en) * 2016-03-31 2018-10-25 Clause, Inc. System and method for creating and executing data-driven legal contracts
KR20170089795A (ko) 2017-07-17 2017-08-04 강정헌 중앙 관리형 블록체인 인증을 적용한 자율적 군집통신 보안 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018051305A1 (en) * 2016-09-19 2018-03-22 Thomson Reuters Global Resources Unlimited Company Systems and methods for interception of smart contracts

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Christian Cachin et al "Non-determinism in byzantine fault-tolerant replication." arXiv:1603.07351(2016.) 1부.*
Marko Vukolic "Rethinking permissioned blockchains." Proceedings of the ACM workshop on blockchain, cryptocurrencies and contracts(2017.) 1부.*
Peter Mell et al "Cryptocurrency smart contracts for distributed consensus of public randomness." Stabilization, Safety, and Security of Distributed Systems, Proceedings 19(2017.) 1부.*
Sisi Duan et al "hBFT: speculative Byzantine fault tolerance with minimum cost." IEEE Transactions on Dependable and Secure Computing, Vol. 12(1), pp. 58-70(2014.) 1부.*

Also Published As

Publication number Publication date
WO2019190040A1 (ko) 2019-10-03
KR20190113047A (ko) 2019-10-08

Similar Documents

Publication Publication Date Title
KR102475649B1 (ko) 최소 검증 클라이언트를 사용하는 무신뢰 무상태 인센티브화 원격 노드 네트워크
US10762479B2 (en) Method and system for processing blockchain-based real-time transaction
US10747721B2 (en) File management/search system and file management/search method based on block chain
RU2671045C2 (ru) Синхронизация хэшей мандатов между службами каталогов
US9008316B2 (en) Role-based distributed key management
EP3178011B1 (en) Method and system for facilitating terminal identifiers
JP6215934B2 (ja) ログイン検証の方法、クライアント、サーバ、およびシステム
CN107483419B (zh) 服务器认证接入终端的方法、装置、系统、服务器及计算机可读存储介质
CN111383021B (zh) 基于区块链网络的节点管理方法、装置、设备及介质
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN111597567B (zh) 数据处理方法、装置、节点设备及存储介质
JP2019517067A5 (ko)
US20080301793A1 (en) Apparatus and method of verifying online certificate for offline device
Arulkumar et al. Secure communication in unstructured P2P networks based on reputation management and self certification
CN110619022B (zh) 基于区块链网络的节点检测方法、装置、设备及存储介质
KR102589438B1 (ko) 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법
CN111597537B (zh) 基于区块链网络的证书签发方法、相关设备及介质
CN110874492B (zh) 数据处理方法、装置、计算设备及系统
KR102179078B1 (ko) 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법
CN112181599B (zh) 模型训练方法、装置及存储介质
WO2019239191A1 (en) Methods, wireless modules, electronic devices and server devices
CN111935059B (zh) 一种设备标识的处理方法、装置及系统
CN115694843B (zh) 避免仿冒的摄像机接入管理方法、系统、设备和介质
Shahrukh et al. A New Approach to Financial Distribution Systems Leveraging Hyperledger-Besu and Consortium Blockchain
US20170005866A1 (en) System and Method for Implementing an Ecosystem based on Policy Exchanges in a Network of Devices with Embedded Electronics

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