KR20190126992A - 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법 - Google Patents

블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법 Download PDF

Info

Publication number
KR20190126992A
KR20190126992A KR1020180050995A KR20180050995A KR20190126992A KR 20190126992 A KR20190126992 A KR 20190126992A KR 1020180050995 A KR1020180050995 A KR 1020180050995A KR 20180050995 A KR20180050995 A KR 20180050995A KR 20190126992 A KR20190126992 A KR 20190126992A
Authority
KR
South Korea
Prior art keywords
blockchain
node
deterministic data
smart contract
data
Prior art date
Application number
KR1020180050995A
Other languages
English (en)
Inventor
이규상
정현석
성기운
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020180050995A priority Critical patent/KR20190126992A/ko
Publication of KR20190126992A publication Critical patent/KR20190126992A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1068Discovery involving direct consultation or announcement among potential requesting and potential source peers
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

블록체인 기반 시스템에서, 별도의 외부 서버를 이용하지 않고 특정 선택 노드를 활용하여 비결정적 데이터를 생성하는 방법이 제공된다. 상기 비결정적 데이터 생성 방법은, 상기 복수의 블록체인 노드에 포함된 선택 노드가, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 생성된 제1 비결정적 데이터를 제공받는 단계, 상기 선택 노드가, 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 생성된 제2 비결정적 데이터를 제공받는 단계 및 상기 선택 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함하되, 상기 복수의 블록체인 노드는, 상기 제1 스마트 컨트랙트의 실행 결과에 대한 서명(signature)을 수행하는 제1 타입의 블록체인 노드와 상기 제1 스마트 컨트랙트의 실행 결과를 블록에 기록하고 전파하는 제2 타입의 블록체인 노드를 포함하고, 상기 선택 노드는 상기 제2 타입의 블록체인 노드일 수 있다.

Description

블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법{METHOD FOR GENERATING NON-DETERMINISTIC DATA USING A SPECIFIC SELECTION NODE 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 스마트 컨트랙트(smart contract)를 이용하여 생성된 제1 비결정적 데이터를 제공받는 단계, 상기 선택 노드가, 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 생성된 제2 비결정적 데이터를 제공받는 단계 및 상기 선택 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함할 수 있다. 이때, 상기 복수의 블록체인 노드는, 상기 제1 스마트 컨트랙트의 실행 결과에 대한 서명(signature)을 수행하는 제1 타입의 블록체인 노드와 상기 제1 스마트 컨트랙트의 실행 결과를 블록에 기록하고 전파하는 제2 타입의 블록체인 노드를 포함하고, 상기 선택 노드는 상기 제2 타입의 블록체인 노드일 수 있다.
일 실시예에서, 상기 복수의 블록체인 노드는, 상기 제1 타입에 해당하는 제1 블록체인 노드 및 제2 블록체인 노드를 포함하고, 상기 제1 비결정적 데이터는, 상기 제1 블록체인 노드에 의해 생성된 것이며, 상기 제2 비결정적 데이터는, 상기 제2 블록체인 노드에 의해 생성된 것을 특징으로 하는, 해당할 수 있다.
일 실시예에서, 상기 선택 노드가, 상기 선택된 비결정적 데이터를 제공하는 단계를 더 포함하되, 상기 제공하는 단계는, 상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 선택된 비결정적 데이터를 제공하는 단계를 포함 수 있다.
일 실시예에서, 상기 블록체인 기반 시스템은, 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고, 상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명의 개수를 설정 항목으로 포함하되, 상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1일 수 있다.
일 실시예에서, 상기 선택 노드가, 상기 선택된 비결정적 데이터를 제1 블록에 기록하는 단계 및 상기 선택 노드가, 상기 제1 블록을 상기 복수의 블록체인 노드로 전파하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 특정 선택 노드를 활용한 비결정적 데이터 생성 방법은, 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서, 상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 제공받는 단계 및 상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 상기 복수의 블록체인 노드 중 선택 노드에게 제공하는 단계를 포함할 수 있다. 이때, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서, 상기 선택 노드에 의해 선택된 비결정적 데이터가 상기 블록체인 상에 기록될 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템은, 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에 있어서, 상기 복수의 블록체인 노드 중 적어도 일부의 블록체인 노드로부터, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 생성된 제1 비결정적 데이터 및 제2 비결정적 데이터를 제공받고, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 선택 노드를 포함할 수 있다. 이때, 상기 복수의 블록체인 노드는, 상기 제1 스마트 컨트랙트의 실행 결과에 대한 서명(signature)을 수행하는 제1 타입의 블록체인 노드 및 상기 제1 스마트 컨트랙트의 실행 결과를 블록에 기록하고 전파하는 제2 타입의 블록체인 노드를 포함하고, 상기 선택 노드는, 상기 제2 타입의 블록체인 노드일 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 블록체인 노드는, 프로세서, 네트워크 인터페이스 및 상기 프로세서에 의해 실행되는 적어도 하나의 프로그램을 저장하는 메모리를 포함하되, 상기 적어도 하나의 프로그램은, 블록체인 상에 공유된 제1 스마트 컨트랙트를 이용하여 생성된 제1 비결정적 데이터를 제공받는 동작, 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 생성된 제2 비결정적 데이터를 제공받는 동작 및 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 동작을 수행하도록 하는 인스트럭션들(instructions)을 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨팅 장치와 결합되어, 블록체인 상에 공유된 제1 스마트 컨트랙트를 이용하여 생성된 제1 비결정적 데이터를 제공받는 단계, 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 생성된 제2 비결정적 데이터를 제공받는 단계 및 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 실행시키기 위하여, 컴퓨터로 판독가능한 기록매체에 저장될 수 있다.
도 1은 블록체인 기반 시스템에서 자체적으로 비결정적 데이터를 생성하는 경우의 문제점을 설명하기 위한 도면이다.
도 2는 본 발명의 몇몇 실시예들에 따른 방법들이 수행될 수 있는 예시적인 블록체인 기반 시스템의 구성도이다
도 3은 본 발명의 일 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 비결정적 데이터의 조회 방법을 설명하기 위한 흐름도이다.
도 5 내지 도 7은 본 발명의 몇몇 실시예들에 따른 비결정적 데이터 제공 방법을 설명하기 위한 흐름도이다.
도 8은 블록체인 기반 시스템을 구성하는 각 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에 대한 설명에 앞서, 본 명세서에서 사용되는 몇몇 용어들에 대하여 명확하게 하기로 한다.
본 명세서에서, 블록체인 또는 블록체인 데이터란 블록체인 네트워크를 구성하는 각각의 블록체인 노드가 유지하는 데이터로, 적어도 하나의 블록이 체인 형태의 자료 구조로 구성되는 데이터를 가리킨다. 블록체인 기반 시스템을 구성하는 모든 블록체인 노드는 동일한 블록체인 데이터를 유지한다. 단, 블록체인 기반 시스템이 멀티 채널(multi-channel) 기능을 지원하는 경우, 동일한 채널에 속한 블록체인 노드들끼리 동일한 블록체인 데이터를 유지하도록 동작할 수도 있다.
본 명세서에서, 블록체인 네트워크란, 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 복수의 블록체인 노드로 구성된 P2P(peer-to-peer) 구조의 네트워크를 의미한다.
본 명세서에서, 블록체인 노드란, 블록체인 네트워크를 구성하고 블록체인 알고리즘(또는 프로토콜)에 따라 동작하는 컴퓨팅 노드를 의미한다. 상기 컴퓨팅 노드는 물리적 장치로 구현될 수 있으나, 가상 머신(virtual machine)과 같이 논리적 장치로 구현될 수도 있다. 상기 컴퓨팅 노드가 가상 머신으로 구현되는 경우, 하나의 물리적 장치에 복수의 블록체인 노드가 포함될 수도 있다. 상기 블록체인 노드가 물리적 장치로 구현된 예시에 대해서는 도 8을 참조하도록 한다.
본 명세서에서, 비결정적 데이터(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)가 동일한 물리적 컴퓨팅 장치 내의 서로 다른 로직(logic)으로 구현될 수도 있다.
상기 블록체인 기반 시스템에서, 블록체인 노드(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)의 개수 등의 항목을 포함할 수 있으나, 본 발명의 범위가 상기 열거된 예시에 한정되는 것은 아니다. 본 실시예에서, 스마트 컨트랙트는 상기 합의 정책에 따라 실행 및 합의 절차가 수행되며, 상기 합의 정책은 해당 스마트 컨트랙트의 용도, 중요도 등의 요인에 따라 유연하게 정의될 수 있다.
본 발명의 몇몇 실시예에 따르면, 복수의 블록체인 노드(100-1 내지 100-6)는 제1 타입의 블록체인 노드와 제2 타입의 블록체인 노드를 포함할 수 있다.
상기 제1 타입의 블록체인 노드는 스마트 컨트랙트(e.g. 10, 20)를 실행하고, 실행 결과에 대한 서명을 수행하는 노드(e.g. 하이퍼레저 패브릭의 "endorser")이다. 물론, 특정 스마트 컨트랙트의 합의 정책에 상기 특정 스마트 컨트랙트를 실행하는 노드가 블록체인 노드(100-1)로 설정된 경우, 상기 제1 타입의 블록체인 노드 중에서 블록체인 노드(100-1)만이 상기 특정 스마트 컨트랙트를 실행하고 서명하도록 동작할 수도 있다.
상기 제2 타입의 블록체인 노드는 스마트 컨트랙트의 실행 결과에 대한 주요 합의(consensus) 과정을 수행하거나, 신규 블록에 상기 실행 결과를 기록하고 전파하는 노드(e.g. 하이퍼레저 패브릭의 "orderer")이다. 예를 들어, 상기 제2 타입의 블록체인 노드는 특정 스마트 컨트랙트의 합의 정책에 기초하여 상기 특정 스마트 컨트랙트의 실행 결과를 검증하고, 유효한 경우 상기 실행 결과를 블록에 기록하고 전파함으로써 상기 실행 결과가 확정되도록 할 수 있다. 다만, 실시예에 따라, 특정 블록체인 노드는 상기 제1 타입 및 상기 제2 타입의 블록체인 노드의 기능을 모두 수행하도록 구현될 수도 있다. 이하에서는, 상기 제2 타입의 블록체인 노드를 상기 제1 타입의 블록체인 노드와 구별하기 위해 "합의 노드"로 명명하도록 한다.
상기 블록체인 기반 시스템에서, 사용자 단말(200)은 블록체인 기반 시스템을 통해 각종 트랜잭션의 처리 서비스를 제공 받는 단말이다. 예를 들어, 사용자 단말(200)은 블록체인 기반 시스템으로 트랜잭션의 처리를 요청하고, 요청된 트랜잭션의 처리 결과를 확인할 수 있다. 또한, 사용자 단말(200)은 블록체인 기반 시스템으로 비결정적 데이터를 직접 요청하고, 상기 블록체인 기반 시스템에 의해 자체적으로 생성된 비결정적 데이터를 제공받을 수도 있다.
상기 블록체인 기반 시스템을 구성하는 각 구성 요소는 네트워크를 통해 통신할 수 있다. 여기서, 상기 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 이동 통신망(mobile radio communication network), Wibro(Wireless Broadband Internet) 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
지금까지 도 2를 참조하여 본 발명의 몇몇 실시예들 따른 방법이 수행될 수 있는 예시적인 블록체인 기반 시스템에 대하여 설명하였다. 이하에서는, 도 3 내지 도 7을 참조하여 상기 블록체인 기반 시스템에서 수행되는 본 발명의 몇몇 실시예들에 따른 방법들에 대하여 설명하도록 한다.
도 3은 본 발명의 일 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법을 설명하기 위한 흐름도이다. 도 3 및 그 이하의 도면은 제1 타입에 해당하는 2개의 블록체인 노드(100-1, 100-2)와 1개의 합의 노드(100-k)만을 도시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이고, 다수의 블록체인 노드가 포함될 수 있음은 물론이다. 이하에서는, 설명의 편의를 위해, 블록체인 노드 #1(100-1)은 "제1 블록체인 노드"로 명명하고, 블록체인 노드 #2(100-2)는 "제2 블록체인 노드"로 명명하도록 한다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법은 사용자 단말(200)로부터 트랜잭션의 처리 요청을 받는 단계(S10)에서 시작된다. 이때, 상기 트랜잭션은 비결정적 데이터가 이용되는 트랜잭션을 의미할 수 있다.
상기 트랜잭션의 처리 요청에 응답하여, 제1 블록체인 노드(100-1)는 스마트 컨트랙트 A(10)를 실행한다. 전술한 바와 같이, 스마트 컨트랙트 A(10)는 비결정적 데이터를 이용하여 해당 트랜잭션을 처리하는 루틴을 포함하는 스마트 컨트랙트이다.
단계(S11-1, 11-2)에서, 스마트 컨트랙트 A(10)에 의해 비결정적 데이터의 생성 요청이 각 블록체인 노드(100-1, 100-2)로 트리거(trigger) 된다.
단계(S12-1, S12-2)에서, 상기 생성 요청에 응답하여, 각각의 블록체인 노드(100-1, 100-2)가 블록체인 상에 공유된 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터(0x123, 0xabc)를 생성한다.
즉, 단계(S12-1, S12-2)에서, 복수의 블록체인 노드(e.g. 100-1, 100-2)가 각각 스마트 컨트랙트 B(20)를 실행하여 비결정적 데이터를 생성하는데, 이는 스마트 컨트랙트 B(20)의 합의 정책에 따른 시스템의 동작으로 이해될 수 있는데, 예컨대, 블록체인 기반 시스템이 하이퍼레저 패브릭 기반으로 동작하는 경우, 스마트 컨트랙트 B(20)를 실행하고 서명하는 제1 타입의 블록체인 노드(e.g. endorser)가 복수가 되도록 "endorsement policy"가 정의되면 도 3에 도시된 바와 같이 동작할 수 있다. 물론, 스마트 컨트랙트 B(20)에 서명하는 노드의 리스트가 제1 블록체인 노드(100-1) 및 제2 블록체인 노드(100-2)만을 포함하도록 "endorsement policy"가 정의되면, 상기 복수의 블록체인 노드 중에서 2개의 블록체인 노드(100-1, 100-2)만이 스마트 컨트랙트 B(20)를 실행하고 서명하게 된다.
단계(S13-1, 13-2)에서, 스마트 컨트랙트 B(20)의 실행 결과로 생성된 복수의 비결정적 데이터(0x123, 0xabc)가 제1 블록체인 노드(100-1)의 스마트 컨트랙트 A(10)로 제공된다. 다만, 실시예에 따라, 각 블록체인 노드(100-1, 100-2)에 의해 생성된 복수의 비결정적 데이터는 곧바로 합의 노드(100-k)에게 제공되도록 구현될 수도 있다.
단계(S14)에서, 제1 블록체인 노드(100-1)는 복수의 비결정적 데이터(0x123, 0xabc)를 합의 노드(100-k)에게 제공한다. 이때, 제1 블록체인 노드(100-1)는 복수의 비결정적 데이터(0x123, 0xabc)를 동시에 제공할 수도 있고, 서로 다른 시점에 각각 제공할 수도 있음은 물론이다.
단계(S15)에서, 합의 노드(100-k)가 제공받은 복수의 비결정적 데이터(0x123, 0xabc) 중에서 어느 하나의 비결정적 데이터(e.g. 0x123)를 선택한다. 즉, 합의 노드(100-k)가 비결정적 데이터의 선택을 수행하는 선택 노드로 이용된다. 여기서, 특정 비결정적 데이터를 선택하는 방식은 어떠한 방식이 이용되더라도 무방하다.
제1 예에서, 합의 노드(100-k)는 비결정적 데이터의 획득 시간에 기초하여 특정 비결정적 데이터를 선택(e.g. 가장 먼저 획득된 데이터, 가장 늦게 획득된 데이터 등)할 수 있다.
제2 예에서, 합의 노드(100-k)는 복수의 비결정적 데이터 중에서 임의로 특정 비결정적 데이터를 선택할 수 있다.
제3 예에서, 합의 노드(100-k)는 복수의 비결정적 데이터의 값의 분포에 기초하여 특정 데이터를 선택할 수 있다. 예컨대, 복수의 비결정적 데이터 중에서 편차가 가장 큰 데이터가 선택될 수 있다. 다만, 상기 열거된 예시들은 본 발명의 일부 실시예를 설명하기 위한 것일 뿐이고, 본 발명의 범위가 상기 열거된 예시들에 한정되는 것은 아니다.
본 단계(S15)에서, 합의 노드(100-K)는 스마트 컨트랙트 B(20)의 실행 결과에 대한 합의(즉, 최종 검증 및 확정)를 수행할 수 있고, 이는 스마트 컨트랙트 B(20)에 대한 합의 정책에 기초하여 수행될 수 있다. 여기서, 스마트 컨트랙트 B(20)에 대한 합의 정책에 정의된 서명의 개수는 "1"일 수 있다(e.g. "endorsement policy" 1 of n으로 설정). 따라서, 스마트 컨트랙트 B(20)의 실행 결과(즉, 생성된 비결정적 데이터)가 서로 다르더라도, 합의 노드(100-k)에 의해 합의가 이루어질 수 있다.
단계(S16)에서, 유효하게 합의가 수행된 경우, 합의 노드(100-k)는 선택된 비결정적 데이터를 블록에 기록하고, 상기 블록을 복수의 블록체인 노드(e.g. 100-1, 100-2)로 전파할 수 있다. 그러면, 제1 블록체인 노드(100-1)의 스마트 컨트랙트 A(10)는 선택된 비결정적 데이터를 이용하여 요청된 트랜잭션을 처리할 수 있다.
단계(S17)에서, 제1 블록체인 노드(100-1)는 트랜잭션의 처리 결과를 사용자 단말(200)에게 제공한다. 이때, 제1 블록체인 노드(100-1)는 트랜잭션 처리에 이용된 비결정적 데이터를 함께 사용자 단말(200)에게 제공할 수도 있다.
참고로, 도 3에서 스마트 컨트랙트 B(20)는 스마트 컨트랙트 A(10)의 요청에 따라 비결정적 데이터를 생성하였으나, 사용자 단말(200)의 직접적인 요청에 응답하여 비결정적 데이터를 생성할 수도 있음은 물론이다.
지금까지, 도 3을 참조하여 본 발명의 일 실시예에 따른 비결정적 데이터 생성 및 트랜잭션 처리 방법에 대하여 설명하였다. 상술한 방법에 따르면, 특정 선택 노드를 활용하여 다수의 비결정적 데이터 중 어느 하나의 비결정적 데이터를 선택 및 전파함으로써, 외부 서버의 도움 없이 블록체인 기반 시스템에서 자체적으로 비결정적 데이터가 생성될 수 있다. 따라서, 외부 서버에 의해 블록체인 기반 시스템의 보안성 및 신뢰성이 전반적으로 저하되는 문제가 해결될 수 있다. 또한, 블록체인 기반 시스템에서, 비결정적 데이터가 이용되는 트랜잭션(e.g. 챌린지-리스폰스 기반의 인증이 수반되는 트랜잭션)이 자체적으로 처리될 수 있는 바, 안전한 트랜잭션 처리 서비스가 제공될 수 있다.
한편, 본 발명의 실시예에 따르면, 소정의 식별 값을 이용하여 비결정적 데이터에 대한 조회 서비스가 제공될 수 있다. 이하, 도 4를 참조하여 본 실시예에 대하여 간략하게 설명하도록 한다.
도 4는 본 발명의 일 실시예에 따른 비결정적 데이터 조회 방법을 설명하기 위한 흐름도이다. 상기 비결정적 데이터 조회 방법을 설명함에 있어서, 전술한 실시예들과 동일한 내용에 대한 설명은 생략하도록 한다.
도 4를 참조하면, 단계(S20)에서, 사용자 단말(200)은 소정의 식별 값(ID1)과 함께 상기 트랜잭션의 처리를 요청할 수 있다(S20). 이때, 상기 식별 값은 비결정적 데이터에 대한 조회 기능을 제공하기 위해 이용되는 값으로, 예를 들어, 트랜잭션 ID, 랜덤 값 등이 이용될 수 있다.
이하의 단계(S21-1 내지 S23)는 전술한 바와 동일한 바 이에 대한 설명은 생략하도록 한다.
단계(24)에서, 제1 블록체인 노드(100-1)는 식별 값(ID1)과 함께 복수의 비결정적 데이터를 합의 노드(100-k)에게 제공한다.
단계(S25, S26)에서, 합의 노드(100-k)는 복수의 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하고, 선택된 비결정적 데이터를 식별 값(ID1)과 매칭하여 블록체인 상에 기록한다.
본 발명의 실시예에 따르면, 비결정적 데이터에 대한 유효 기간(expiration time)이 설정되고, 유효 기간 정보 또한 상기 식별 값에 매칭되어 블록체인 상에 기록될 수 있다. 본 발명의 실시예에 따르면, 유효 기간이 특정 기간으로 제한된 비결정적 데이터를 이용하여 보다 신뢰도 높은 트랜잭션 처리 서비스가 제공될 수 있다.
단계(S28-1 내지 S28-3)에서, 사용자 단말(200)은 식별 값을 이용하여 블록체인 상에 기록된 비결정적 데이터에 대한 조회를 요청할 수 있고, 특정 블록체인 노드(e.g. 100-1)는 상기 요청에 응답하여 상기 식별 값에 매칭되는 비결정적 데이터를 제공할 수 있다. 특히, 도 4에서는, 사용자 단말(200)이 스마트 컨트랙트 A(10)를 통해 비결정적 데이터를 조회하는 것이 예로써 도시되었으나, 사용자 단말(200)은 스마트 컨트랙트 B(20)를 통해 직접 비결정적 데이터를 조회할 수도 있다.
지금까지, 도 4를 참조하여 본 발명의 일 실시예에 따른 비결정적 데이터 조회 방법에 대하여 설명하였다. 상술한 방법에 따르면, 생성된 비결정적 데이터는 트랜잭션 ID와 같은 식별 값에 매칭되어 블록체인 상에 기록되므로, 이후 상기 식별 값에 의해 조회될 수 있다. 이에 따라, 해당 트랜잭션의 거래 주체만이 해당 트랜잭션의 처리에 이용된 비결정적 데이터에 접근이 허용될 것인 바, 더욱 안전한 트랜잭션 처리 서비스가 제공될 수 있다.
이하에서는, 도 5 내지 도 7을 참조하여 본 발명의 몇몇 실시예들에 따른 비결정적 데이터 제공 방법에 대하여 간략하게 설명하도록 한다.
도 5 내지 도 7에 도시된 바와 같이, 전술한 실시예들에 따라 합의 노드(100-k)에 의해 선택된 비결정적 데이터는 다양한 방식으로 사용자 단말(200)로 제공될 수 있다.
제1 실시예에서, 도 5에 도시된 바와 같이, 단계(S35)에서 비결정적 데이터가 선택되면, 합의 노드(100-k)는 선택된 비결정적 데이터(0x123)가 블록체인 상에 기록되기 전에(즉, 확정되기 전에) 사용자 단말(200)로 상기 선택된 비결정적 데이터가 제공되도록 할 수 있다(S35). 예컨대, 도 5에 도시된 바와 같이, 합의 노드(100-k)는 선택된 비결정적 데이터(0x123)를 제1 블록체인 노드(100-1)를 통해 사용자 단말(200)에게 제공할 수 있다(S36, S37). 단, 실시예에 따라, 합의 노드(100-k)는 직접 선택된 비결정적 데이터(0x123)를 사용자 단말(200)에게 제공할 수도 있다.
제2 실시예에서, 도 6에 도시된 바와 같이, 선택된 비결정적 데이터(0x123)가 블록체인 상에 기록된 이후에, 제1 블록체인 노드(100-1)가 상기 선택된 비결정적 데이터(0x123)를 사용자 단말(200)에게 제공하도록 동작할 수 있다(S47). 물론, 합의 노드(100-k)가 직접 사용자 단말(200)에게 제공하도록 동작할 수도 있다.
제3 실시예에서, 도 7에 도시된 바와 같이, 선택된 비결정적 데이터(0x123)가 블록체인 상에 기록된 이후에, 제1 블록체인 노드(100-1)는 소정의 확정 신호를 사용자 단말(200)로 통지할 수 있다(S57). 도 7에서, 상기 확정 신호의 통지는 스마트 컨트랙트 B(20)에 의해 수행되는 것으로 도시되었으나, 실시예에 따라, 스마트 컨트랙트 A(10)에 의해 상기 확정 신호가 통지될 수도 있다. 또한, 합의 노드(100-k)가 직접 상기 확정 신호를 사용자 단말(200)로 통지할 수도 있다.
상기 제3 실시예에서, 확정 신호 통지를 받은 이후에, 사용자 단말(200)은 블록체인 상에 기록된 비결정적 데이터를 조회할 수 있고, 상기 조회는 비결정적 데이터의 생성 요청 시 제공한 식별 값을 이용하여 수행될 수 있다(S58-1 내지 S58-3). 도 7에서, 사용자 단말(200)은 스마트 컨트랙트 A(10)를 통해 비결정적 데이터를 조회하는 것으로 도시되었으나, 사용자 단말(200)은 직접 스마트 컨트랙트 B(20)를 통해 블록체인 상에 기록된 비결정적 데이터를 조회할 수도 있다.
제4 실시예에서, 상기 제1 실시예 내지 상기 제3 실시예의 조합에 의해 생성된 비결정적 데이터가 사용자 단말(200)로 제공되거나, 조회될 수 있다.
지금까지, 도 5 내지 도 7을 참조하여 본 발명의 몇몇 실시예들에 따른 비결정적 데이터 제공 방법에 대하여 간략하게 설명하였다. 마지막으로, 도 8을 참조하여, 블록체인 노드(100)를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 구성 및 동작에 대하여 설명하도록 한다.
도 8은 본 발명의 실시예에 따른 블록체인 노드(100)를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 하드웨어 구성도이다.
도 8를 참조하면, 컴퓨팅 장치(400)는 하나 이상의 프로세서(410), 버스(450), 네트워크 인터페이스(470), 프로세서(410)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(430)와, 스마트 컨트랙트(491)를 저장하는 스토리지(490)를 포함할 수 있다. 다만, 도 8에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 8에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(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)을 로드할 수 있다. 도 8에서 메모리(430)의 예시로 RAM이 도시되었다.
버스(450)는 컴퓨팅 장치(400)의 구성 요소 간 통신 기능을 제공한다. 버스(450)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
네트워크 인터페이스(470)는 컴퓨팅 장치(400)의 유무선 인터넷 통신을 지원한다. 또한, 네트워크 인터페이스(470)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 네트워크 인터페이스(470)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
예를 들어, 네트워크 인터페이스(470)는 블록체인 네트워크(300)를 구성하는 다른 블록체인 노드와의 통신을 지원할 수 있다.
스토리지(490)는 상기 하나 이상의 프로그램(491)을 비임시적으로 저장할 수 있다. 도 8에서 상기 하나 이상의 프로그램(491)의 예시로 비결정적 데이터를 생성하는 스마트 컨트랙트(491)가 도시되었다. 이외에도, 스토리지(490)는 전술한 몇몇 실시예들에 따른 방법에 따라 컴퓨팅 장치(400)를 동작(e.g. 스마트 컨트랙트를 실행)시키는 컴퓨터 프로그램(미도시) 및 블록체인 데이터를 더 포함할 수 있다.
스토리지(490)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
스마트 컨트랙트(491)는 전술한 본 발명의 실시예에 따라 블록체인 상에서 비결정적 데이터를 생성한다. 예를 들어, 스마트 컨트랙트(491)는 메모리(430)에 로드되어, 하나 이상의 프로세서(410)에 의해 실행되며, 비결정적 데이터를 생성하는 루틴을 포함할 수 있다.
상기 컴퓨터 프로그램(미도시)은 메모리(430)에 로드되어, 프로세서(410)에 의해 전술한 몇몇 실시예들에 따른 방법을 수행하도록 하는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 제1 컴퓨터 프로그램(미도시)은, 블록체인 상에 공유된 스마트 컨트랙트(e.g. 스마트 컨트랙트 B 20)를 이용하여 생성된 제1 비결정적 데이터를 제공받는 단계, 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 생성된 제2 비결정적 데이터를 제공받는 단계 및 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 수행하도록 하는 인스트럭션들을 포함할 수 있다. 상기 제1 컴퓨터 프로그램(미도시)가 컴퓨팅 장치(400)에 탑재되는 경우, 컴퓨팅 장치(400)는 도 3 등에 도시된 합의 노드(100-k)로 동작할 수 있다.
다른 예를 들어, 제2 컴퓨터 프로그램(미도시)은, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 스마트 컨트랙트(e.g. 스마트 컨트랙트 B 20)를 이용하여 제1 비결정적 데이터를 생성하는 단계, 다른 블록체인 노드로부터 제2 비결정적 데이터를 제공받는 단계 및 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 상기 복수의 블록체인 노드 중 합의 노드(100-k)에게 제공하는 단계를 수행하도록 하는 인스트럭션들을 포함할 수 있다. 상기 제2 컴퓨터 프로그램(미도시)이 컴퓨팅 장치(400)에 탑재되는 경우, 컴퓨팅 장치(400)는 도 3 등에 도시된 제1 블록체인 노드(100-1)로 동작할 수 있다.
지금까지, 도 8를 참조하여 본 발명의 실시예에 따른 블록체인 노드를 구현할 수 있는 예시적인 컴퓨팅 장치(400)의 구성 및 동작에 대하여 설명하였다.
지금까지 도 2 내지 도 8을 참조하여 본 발명의 몇몇 실시예들 및 상기 몇몇 실시예들에 따른 효과를 언급하였다. 본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 2 내지 도 8을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (18)

  1. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,
    상기 복수의 블록체인 노드에 포함된 선택 노드가, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 생성된 제1 비결정적 데이터를 제공받는 단계;
    상기 선택 노드가, 상기 블록체인 상에 공유된 상기 제1 스마트 컨트랙트를 이용하여 생성된 제2 비결정적 데이터를 제공받는 단계; 및
    상기 선택 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 단계를 포함하되,
    상기 복수의 블록체인 노드는, 상기 제1 스마트 컨트랙트의 실행 결과에 대한 서명(signature)을 수행하는 제1 타입의 블록체인 노드와 상기 제1 스마트 컨트랙트의 실행 결과를 블록에 기록하고 전파하는 제2 타입의 블록체인 노드를 포함하고,
    상기 선택 노드는 상기 제2 타입의 블록체인 노드인 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  2. 제1 항에 있어서,
    상기 선택된 비결정적 데이터는 상기 블록체인 상에 기록되는 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  3. 제1 항에 있어서,
    상기 복수의 블록체인 노드는, 상기 제1 타입에 해당하는 제1 블록체인 노드 및 제2 블록체인 노드를 포함하고,
    상기 제1 비결정적 데이터는, 상기 제1 블록체인 노드에 의해 생성된 것이며,
    상기 제2 비결정적 데이터는, 상기 제2 블록체인 노드에 의해 생성된 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  4. 제3 항에 있어서,
    상기 제1 블록체인 노드는, 비결정적 데이터의 생성 요청에 응답하여 상기 제1 비결정적 데이터를 생성하되,
    상기 생성 요청은 상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  5. 제1 항에 있어서,
    상기 선택 노드가, 상기 선택된 비결정적 데이터를 제공하는 단계를 더 포함하되,
    상기 제공하는 단계는,
    상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 선택된 비결정적 데이터를 제공하는 단계를 포함하는 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  6. 제1 항에 있어서,
    상기 블록체인 기반 시스템은, 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,
    상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명의 개수를 설정 항목으로 포함하되,
    상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1인 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  7. 제1 항에 있어서,
    상기 선택 노드가, 상기 선택된 비결정적 데이터를 제1 블록에 기록하는 단계; 및
    상기 선택 노드가, 상기 제1 블록을 상기 복수의 블록체인 노드로 전파하는 단계를 더 포함하는 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  8. 복수의 블록체인 노드를 포함하는 블록체인(blockchain) 기반 시스템에서 수행되는 비결정적 데이터(non-deterministic data) 생성 방법에 있어서,
    상기 복수의 블록체인 노드 중 제1 블록체인 노드가, 비결정적 데이터의 생성 요청에 응답하여, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 제1 비결정적 데이터를 생성하는 단계;
    상기 제1 블록체인 노드가, 상기 복수의 블록체인 노드 중 제2 블록체인 노드로부터 제2 비결정적 데이터를 제공받는 단계; 및
    상기 제1 블록체인 노드가, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터를 상기 복수의 블록체인 노드 중 선택 노드에게 제공하는 단계를 포함하되,
    상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서, 상기 선택 노드에 의해 선택된 비결정적 데이터가 상기 블록체인 상에 기록되는 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  9. 제8 항에 있어서,
    상기 복수의 블록체인 노드는, 상기 제1 스마트 컨트랙트의 실행 결과에 대한 서명(signature)을 수행하는 제1 타입의 블록체인 노드와 상기 제1 스마트 컨트랙트의 실행 결과를 블록에 기록하고 전파하는 제2 타입의 블록체인 노드를 포함하되,
    상기 선택 노드는 상기 제2 타입의 블록체인 노드인 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  10. 제8 항에 있어서,
    상기 블록체인 기반 시스템은 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,
    상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명의 개수를 설정 항목으로 포함하되,
    상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1인 것을 특징으로 하는,
    특정 선택 노드를 활용한 비결정적 데이터 생성 방법.
  11. 복수의 블록체인 노드를 포함하는 블록체인 기반 시스템에 있어서,
    상기 복수의 블록체인 노드 중 적어도 일부의 블록체인 노드로부터, 블록체인 상에 공유된 제1 스마트 컨트랙트(smart contract)를 이용하여 생성된 제1 비결정적 데이터 및 제2 비결정적 데이터를 제공받고, 상기 제1 비결정적 데이터 및 상기 제2 비결정적 데이터 중에서 어느 하나의 비결정적 데이터를 선택하는 선택 노드를 포함하되,
    상기 복수의 블록체인 노드는, 상기 제1 스마트 컨트랙트의 실행 결과에 대한 서명(signature)을 수행하는 제1 타입의 블록체인 노드 및 상기 제1 스마트 컨트랙트의 실행 결과를 블록에 기록하고 전파하는 제2 타입의 블록체인 노드를 포함하고,
    상기 선택 노드는, 상기 제2 타입의 블록체인 노드인 것을 특징으로 하는,
    블록체인 기반 시스템.
  12. 제11 항에 있어서,
    상기 선택된 비결정적 데이터는 상기 블록체인 상에 기록되는 것을 특징으로 하는,
    블록체인 기반 시스템.
  13. 제12 항에 있어서,
    상기 적어도 일부의 블록체인 노드는, 상기 제1 타입에 해당하는 제1 블록체인 노드 및 제2 블록체인 노드를 포함하되,
    상기 제1 비결정적 데이터는, 상기 제1 블록체인 노드에 의해 생성된 것이고,
    상기 제2 비결정적 데이터는, 상기 제2 블록체인 노드에 의해 생성된 것을 특징으로 하는,
    블록체인 기반 시스템.
  14. 제13 항에 있어서,
    상기 제1 블록체인 노드는,
    상기 제2 블록체인 노드로부터 상기 제2 비결정적 데이터를 제공받고, 상기 제1 비결정적 데이터 및 상기 제공받은 제2 비결정적 데이터를 상기 선택 노드에게 제공하는 것을 특징으로 하는,
    블록체인 기반 시스템.
  15. 제13 항에 있어서,
    상기 제1 블록체인 노드는 비결정적 데이터의 생성 요청에 응답하여 상기 제1 비결정적 데이터를 생성하되,
    상기 생성 요청은 상기 블록체인 상에 공유된 제2 스마트 컨트랙트에 의해 트리거(trigger)되는 것을 특징으로 하는,
    블록체인 기반 시스템.
  16. 제11 항에 있어서,
    상기 선택 노드는, 상기 선택된 비결정적 데이터가 상기 블록체인 상에 기록되기 전에, 상기 선택된 비결정적 데이터를 제공하는 것을 특징으로 하는,
    블록체인 기반 시스템.
  17. 제11 항에 있어서,
    상기 블록체인 기반 시스템은, 상기 블록체인 상에 공유되는 각각의 스마트 컨트랙트에 대한 합의 정책을 관리하고,
    상기 합의 정책은 해당 스마트 컨트랙트의 합의에 요구되는 서명의 개수를 설정 항목으로 포함하되,
    상기 제1 스마트 컨트랙트에 대한 합의 정책에 정의된 서명의 개수는 1인 것을 특징으로 하는,
    블록체인 기반 시스템.
  18. 제11 항에 있어서,
    상기 선택 노드는, 상기 선택된 비결정적 데이터를 제1 블록에 기록하고, 상기 제1 블록을 상기 복수의 블록체인 노드로 전파하는 것을 특징으로 하는,
    블록체인 기반 시스템.
KR1020180050995A 2018-05-03 2018-05-03 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법 KR20190126992A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180050995A KR20190126992A (ko) 2018-05-03 2018-05-03 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180050995A KR20190126992A (ko) 2018-05-03 2018-05-03 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법

Publications (1)

Publication Number Publication Date
KR20190126992A true KR20190126992A (ko) 2019-11-13

Family

ID=68534723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180050995A KR20190126992A (ko) 2018-05-03 2018-05-03 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법

Country Status (1)

Country Link
KR (1) KR20190126992A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210112678A (ko) * 2020-03-05 2021-09-15 ㈜프렌즈게임즈 블록체인 네트워크에 기반하여 어뷰징을 탐지하는 방법 및 이를 이용한 블록체인 노드
WO2023121001A1 (ko) * 2021-12-20 2023-06-29 아주대학교 산학협력단 신뢰도 기반의 메시지 전파 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20170089795A (ko) 2017-07-17 2017-08-04 강정헌 중앙 관리형 블록체인 인증을 적용한 자율적 군집통신 보안 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210112678A (ko) * 2020-03-05 2021-09-15 ㈜프렌즈게임즈 블록체인 네트워크에 기반하여 어뷰징을 탐지하는 방법 및 이를 이용한 블록체인 노드
WO2023121001A1 (ko) * 2021-12-20 2023-06-29 아주대학교 산학협력단 신뢰도 기반의 메시지 전파 장치 및 방법

Similar Documents

Publication Publication Date Title
US20220407725A1 (en) File storage method, terminal, and storage medium
CN110442652B (zh) 一种基于区块链的跨链数据处理方法及装置
US11068316B2 (en) Systems and method for managing memory resources used by smart contracts of a blockchain
US11232077B2 (en) Method and apparatus for sharing information recorded on blockchain based on anchoring
US10936302B2 (en) Updating sub-systems of a device using blockchain
KR102450411B1 (ko) 블록체인 기반 트랜잭션 처리 방법, 장치 및 그 시스템
CN104050201A (zh) 用于多租户分布式环境中的数据管理的方法和设备
EP3533200B1 (en) Fault tolerant automatic secret rotation
US20200145225A1 (en) Distributed transaction processing
CN111597567B (zh) 数据处理方法、装置、节点设备及存储介质
CN109995523B (zh) 激活码管理方法及装置、激活码生成方法及装置
US11018860B2 (en) Highly available and reliable secret distribution infrastructure
US10540193B2 (en) Software-defined microservices
JP6618138B1 (ja) 改ざん検知性を有するデータ管理システム
KR20190126992A (ko) 블록체인 기반 시스템에서 특정 선택 노드를 활용한 비결정적 데이터 생성 방법
CN116010926A (zh) 登陆认证方法、装置、计算机设备和存储介质
CN114756293A (zh) 业务处理方法、装置、计算机设备和存储介质
KR20190113047A (ko) 블록체인 기반 시스템에서의 비결정적 데이터 생성 방법
CN113469815A (zh) 数据管理方法及装置
CN110175036B (zh) 软锁许可的升级方法及装置
KR102406242B1 (ko) 특허 중개 과정에서의 특허 명세서 관리용 블록체인 기반 패치 관리 장치
US11258616B2 (en) Decentralized key management system and method
CN116383252B (zh) 基于隐匿查询的联邦规则引擎处理方法及装置
US20240013294A1 (en) Secure Decentralized System
BE1024521B1 (nl) Databank die via zijn ontwerp privacy garandeert en werkwijzen met deze databank