KR102181136B1 - 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템 - Google Patents

복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템 Download PDF

Info

Publication number
KR102181136B1
KR102181136B1 KR1020180140422A KR20180140422A KR102181136B1 KR 102181136 B1 KR102181136 B1 KR 102181136B1 KR 1020180140422 A KR1020180140422 A KR 1020180140422A KR 20180140422 A KR20180140422 A KR 20180140422A KR 102181136 B1 KR102181136 B1 KR 102181136B1
Authority
KR
South Korea
Prior art keywords
block
content
sub
blockchain
node
Prior art date
Application number
KR1020180140422A
Other languages
English (en)
Other versions
KR20200056579A (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 KR1020180140422A priority Critical patent/KR102181136B1/ko
Priority to JP2019205572A priority patent/JP6921921B2/ja
Priority to US16/684,598 priority patent/US11200225B2/en
Publication of KR20200056579A publication Critical patent/KR20200056579A/ko
Application granted granted Critical
Publication of KR102181136B1 publication Critical patent/KR102181136B1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/1059Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
    • 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/24Querying
    • G06F16/248Presentation of query results
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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

Abstract

본 발명의 실시예는, 복수의 노드 중 어느 하나의 노드가 메인 블록에 종속 연결된 후보 서브 블록을 생성하여 전파하는 단계; 복수의 노드 중 어느 하나의 노드가 수신된 후보 서브 블록의 유효성 검증 후 유효한 후보 서브 블록을 저장 및 전파하는 단계; 복수의 노드 중 어느 하나의 노드가 사용자가 질의한 콘텐츠와 매칭된 후보 서브 블록을 생성한 노드로부터 수신된 콘텐츠 블록의 유효성을 검증한 후 상기 콘텐츠 블록에 연결된 말단 블록을 저장 및 전파하는 단계; 및 복수의 노드 중 어느 하나의 노드는 수신된 동일한 말단 블록의 개수가 기 설정치 이상되면 상기 말단 블록과 연결된 후보 서브 블록을 승인하여 승인 서브 블록을 생성하고 상기 승인 서브 블록을 미리 저장된 블록체인 로컬 복사본에 업데이트하며 상기 승인 서브 블록을 전파하는 단계;를 포함하는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법을 제공할 수 있다.

Description

복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템{A method and blockchain system for constructing a sub blockchain in a blockchain system comprising a distributed network of a plurality of nodes}
본 발명은 블록체인 시스템에 관한 것으로서, 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 이를 위한 블록체인 시스템에 관한 것이다.
블록체인은 2008년 사토시 나카모토의 Bitcoin: A Peer-to-Peer Electronic Cash System에서 블록과 블록을 연결하는 방법에서 유래하였다. 블록체인은 피어 들에게 원장이 공유되고 블록 안의 내용이 투명하게 공개되며 임의로 변경이 불가능한 특성으로 인해 암호화폐에서 필수불가결의 기술로 인정받았다. 그리고 이제 블록체인은 암호화폐만을 위한 기술이 아니라 여러 산업 분야에 걸쳐서 활용가능성을 보여주고 있다. 블록체인은 분산화된 P2P 네트워크를 근간으로 한다. P2P는 'Peer-to-Peer'라는 뜻으로 중앙 서버없이 각 단말들이 서로 동등한 입장에서 통신을 하는 네트워크를 말한다. 각 단말은 서버이기도 하면서 동시에 클라이언트가 된다. 블록체인 네트워크를 구성하는 노드(Peer)들은 원장의 사본을 각자 보관하고 자신이 가진 원장의 상황에 따라 행동을 결정한다. 즉, 노드들은 블록을 받아들일지, 다음 블록을 생성할지, 받은 블록을 다시 주변 노드들로 전파할지 등을 결정한다. 노드들은 독립적인 개체이며 자신과 연결된 다른 노드들에 대한 신뢰가 요구되지 않는다. 종래의 블록체인 상의 블록에는 제한된 용량의 데이터를 담을 수 있다. 네트워크에 참여한 수많은 노드들이 블록을 분산 저장하는 블록체인 기술의 특성상 블록에 포함될 데이터의 용량에는 일정한 제약이 필연적으로 따른다.
대한민국특허공개공보 제10-2018-0115779호
본 발명은 전술한 문제점을 해결하기 위한 것으로써 블록 체인 상에 포함될 데이터의 용량 제약을 극복할 수 있는 방법 및 블록체인 시스템을 제공할 수 있다.
또한, 본 발명은 콘텐츠를 포함하는 서브 블록 체인을 구성하는 방법 및 이를 위한 블록체인 시스템을 제공할 수 있다.
또한, 본 발명은 필요에 따라 용량이 큰 콘텐츠 블록의 선택적 동기화가 가능한 방법 및 블록체인 시스템을 제공할 수 있다.
또한, 본 발명은 서브 블록 체인의 승인 합의를 위한 알고리즘을 제공할 수 있다.
본 발명의 실시예는, 복수의 노드 중 어느 하나의 노드가 메인 블록에 종속 연결된 후보 서브 블록을 생성하여 전파하는 단계; 복수의 노드 중 어느 하나의 노드가 수신된 후보 서브 블록의 유효성 검증 후 유효한 후보 서브 블록을 저장 및 전파하는 단계; 복수의 노드 중 어느 하나의 노드가 사용자가 질의한 콘텐츠와 매칭된 후보 서브 블록을 생성한 노드로부터 수신된 콘텐츠 블록의 유효성을 검증한 후 상기 콘텐츠 블록에 연결된 말단 블록을 저장 및 전파하는 단계; 및 복수의 노드 중 어느 하나의 노드는 수신된 동일한 말단 블록의 개수가 기 설정치 이상되면 상기 말단 블록과 연결된 후보 서브 블록을 승인하여 승인 서브 블록을 생성하고 상기 승인 서브 블록을 미리 저장된 블록체인 로컬 복사본에 업데이트하며 상기 승인 서브 블록을 전파하는 단계;를 포함하는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법을 제공할 수 있다.
다른 측면에서, 복수의 노드 중 어느 하나의 노드가 메인 블록에 종속 연결된 후보 서브 블록을 생성하여 전파하는 단계는, 말단 블록을 생성하는 단계; 상기 말단 블록의 해시 및 콘텐츠를 포함하는 콘텐츠 블록을 생성하는 단계; 상기 콘텐츠 블록의 해시 및 상기 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계; 및 상기 후보 서브 블록을 블록체인 네트워크로 전파하는 단계;를 포함하는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법을 제공할 수 있다.
또 다른 측면에서, 상기 말단 블록의 해시 및 콘텐츠를 포함하는 콘텐츠 블록을 생성하는 단계는, 상기 말단 블록의 해시 및 제1 콘텐츠를 포함하는 제1 콘텐츠 블록을 생성하는 단계; 및 상기 제1 콘텐츠보다 적은 데이터 용량의 제2 콘텐츠 및 상기 제1 콘텐츠 블록의 해시를 포함하는 제2 콘텐츠 블록을 생성하는 단계;를 포함하고, 상기 콘텐츠 블록의 해시 및 상기 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계는, 상기 제2 콘텐츠 블록의 해시 및 상기 제1 또는 제2 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계;를 포함하는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법을 제공할 수 있다.
또 다른 측면에서, 복수의 노드 중 어느 하나의 노드가 사용자가 질의한 콘텐츠와 매칭된 후보 서브 블록을 생성한 노드로부터 수신된 콘텐츠 블록의 유효성을 검증한 후 상기 콘텐츠 블록에 연결된 말단 블록을 저장 및 전파하는 단계는, 사용자로부터로부터 검색할 콘텐츠 정보를 수신하는 단계; 저장된 후보 서브 블록 중 수신된 콘텐츠 정보와 매칭되는 서브 블록을 검색하는 단계; 검색된 서브 블록을 생성한 노드로 상기 검색된 서브 블록에 연결된 콘텐츠 블록의 전송을 요청하는 단계; 수신된 콘텐츠 블록의 유효성을 검증하는 단계; 및 유효성이 검증된 콘텐츠 블록에 연결된 말단 블록을 저장하고 상기 블록체인 네트워크로 전파하는 단계;를 포함하는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법을 제공할 수 있다.
또 다른 측면에서, 복수의 노드 중 어느 하나의 노드가 저장한 동일한 말단 블록의 개수가 기 설정치 이상되면 해당 말단 블록과 연결된 후보 서브 블록을 승인하여 후보 서브 블록을 블록체인에 업데이트하고 승인된 서브 블록을 전파하는 단계;를 더 포함하는 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법을 제공할 수 있다.
또 다른 측면에서, 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템의 적어도 하나의 노드의 적어도 하나의 프로세서에 의해 실행 가능한 명령들을 포함하는 비일시적인 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램으로서, 상기 명령들은, 사용자의 요청에 응답하여 복수의 카테고리 정보들 각각을 포함한 서로 종속 연결된 메인 블록 체인을 표시하고, 상기 메인 블록 체인 상의 어느 하나의 메인 블록의 선택에 응답하여 상기 메인 블록에 연결된 적어도 하나의 서브 블록 체인들 각각의 서브 블록들을 표시하고, 상기 서브 블록들 중 어느 하나의 서브 블록의 선택에 응답하여 상기 서브 블록에 종속 연결된 복수의 콘텐츠 블록을 저장한 콘텐츠 저장 노드로 상기 복수의 콘텐츠 블록의 전송을 요청하고, 수신된 콘텐츠 블록 내의 콘텐츠를 표시하는 것을 포함하는 비일시적인 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램을 제공할 수도 있다.
또 다른 측면에서, 상기 복수의 콘텐츠 블록 중 수신된 콘텐츠 블록의 유효성 검증 완료 후 상기 수신된 콘텐츠 블록에 후속하여 연결된 콘텐츠 블록의 전송이 요청되는 비일시적인 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램을 제공할 수도 있다.
또 다른 측면에서, 상기 복수의 노드들은 상기 콘텐츠 블록 내의 콘텐츠의 열람 횟수 정보를 공유하고, 상기 서브 블록들이 표시될 때 상기 열람 횟수 정보에 기초하여 산정된 콘텐츠의 신뢰 정보가 표시되는 것을 더 포함하는 비일시적인 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램을 제공할 수도 있다.
본 발명은 블록 체인에 포함될 데이터 용량의 제한을 극복할 수 있는 블록체인 시스템을 제공할 수 있다.
또한, 본 발명은 콘텐츠가 포함된 서브 블록 체인의 신뢰을 위한 합의를 이루기 위한 알고리즘을 제공할 수 있다.
또한, 본 발명은 용량이 큰 콘텐츠의 열람 전 콘텐츠의 신뢰 수준이나 콘텐츠 신뢰와 관련된 합의 달성 여부를 확인할 수 있다.
또한, 본 발명은 콘텐츠의 공유나 판매 및 구매가 가능한 블록체인 기반의 콘텐츠 공유 시스템을 제공할 수 있다.
또한, 본 발명은 스트리밍 형태의 콘텐츠 열람이 가능한 블록체인 시스템을 제공할 수 있다.
또한, 본 발명은 콘텐츠가 포함된 콘텐츠 블록의 선택적 동기화가 가능케 하여 저장 용량의 부담을 경감시킬 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 명확하게 이해될 수 있다.
도 1은 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에 대한 개관을 나타낸다.
도 2는 본 발명의 실시예에 따른 복수의 노드들이 전부 또는 일부를 공유하는 블록체인에 대한 예시도이다.
도 3은 본 발명의 다른 실시예에 따른 복수의 노드들이 전부 또는 일부는 공유하는 블록체인에 대한 예시도이다.
도 4는 본 발명의 또 다른 실시예에 따른 복수의 노드들이 전부 또는 일부는 공유하는 블록체인에 대한 예시도이다.
도 5는 본 발명의 실시예에 따른 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법에 대한 흐름도이다.
도 6은 임의의 노드에서 후보 서브 블록을 생성하는 방법에 대한 흐름도이다.
도 7은 수신된 후보 서브 블록에 대한 검증 및 전파 과정을 나타낸 흐름도이다.
도 8은 선택된 후보 서브 블록에 연결된 콘텐츠 블록을 수신하고 말단 블록을 전파하는 방법을 나타낸 흐름도이다.
도 9 및 도 10은 블록체인 검색용 사용자 인터페이스의 예시도이다.
도 11은 후보 서브 블록의 승인 과정을 나타낸 흐름도이다.
도 12는 승인 서브 블록의 수신에 따른 노드의 동작 과정을 나타낸 흐름도이다.
도 13은 콘텐츠의 신뢰 정보를 표시하는 방법에 대한 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. 이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 또한, 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1은 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에 대한 개관을 나타낸다.
이하에서 설명하는 시스템(10)은 네트워크상에서 피어투피어(peer-to-peer) 네트워크 아키텍처 구조를 이룬다. 즉, 시스템에 참여하는 사용자들은 모두 등등한 지위를 가지고 있고 특별한 노드는 존재하지 않으며 모든 노드가 네트워크 서비스를 구성하는 역할을 분담한다. 네트워크상의 여러 노드는 서로 등등한 토폴로지를 가지면서 그물망 네트워크에서 서로 연결된다. 네트워크 내에 있는 노드들이 서로 등등한 위치에 있다고 할지라도 지원하는 기능에 따라 각자의 역할은 상이할 수 있다.
모든 노드(100)는 네트워크 내에 라우팅 기능을 보유하고 있으며, 다른 기능을 포함할 수도 있다. 모든 노드(100)는 거래와 블록을 비롯한 각종 데이터를 검증하고 전파하며, 이웃 노드들과의 연결을 유지하는 기능을 수행할 수 있다. 여기서의 거래라 함은 금전적인 거래나 가상 화폐의 거래뿐만 아니라 스마트컨트렉트에 따른 각종 거래 및 각종 콘텐츠의 거래를 모두 포함한다. 따라서, 본 명세서에서의 거래의 의미가 특정한 거래에 국한되지 않음을 주의해야 한다.
사용자는 일반 개인에서부터 조직, 커뮤니티, 대규모 집단에 이르기까지 다양할 수 있고 다른 유형의 개체를 포함할 수 있다.
새로운 노드가 시스템에 참여하기 위해 먼저 네트워크상에 존재하는 다른 노드들을 검색할 수 있다. 이러한 프로세스를 시작하기 위해서 새로운 노드는 기존에 네트워크상에 존재하는 노드를 최소 한 개는 검색해서 연결해야 할 수 있다. 새로운 노드가 이미 알고 있는 이웃 노드에 연결되기 위해 각 노드는 특정 번호의 포트로 TCP 커넥션을 연결하거나 대안 포트로 연결할 수 있다. 새로운 노드는 연결 요청 메시지를 이웃 노드로 전송하고 이웃 노드는 연결 요청을 승인할 경우 승인 메시지를 새로운 노드에 전송함으로써 해당 요청에 응답할 수 있다. 하나 이상의 연결이 성립되고 나면, 새로운 노드는 자신의 IP 주소가 담겨 있는 어드레스 메시지를 이웃 노드들에게 전송할 수 있다. 차례로 이웃 노드들은 전송받은 어드레스 메시지를 그들의 이웃 노드들에게 전송함으로써 새롭게 연결된 노드가 더 잘 알려지고 다른 노드들과 더 잘 연결되게 할 수 있다. 또한, 새롭게 연결된 노드는 어드레스 요청 메시지를 이웃 노드들에게 보내서 다른 이웃 노드들의 IP 주소 목록을 다시 전송해줄 것을 요청할 수 있다. 이러한 방식을 통해 노드는 자신과 연결되어 있는 이웃 노드를 검색할 수 있고 다른 노드들이 자신을 검색할 수 있도록 자신의 존재를 네트워크상에 홍보할 수 있다.
복수의 노드들(100) 중 적어도 일부의 노드는 블록체인 전체의 복사본 또는 적어도 블록체인의 부분집합에 해당하는 복사본을 가질 수 있다. 일부 실시예에서, 블록체인 중에서 메인 블록체인 전체의 복사본과 서브 블록체인의 전체의 복사본 또는 서브 블록체인의 부분집합에 해당하는 복사본을 가질 수 있다.
블록체인은 각종 데이터로 구성되는 변경 불가능한 블록으로 구성된 분산형 컴퓨터 시스템으로 구성된다. 블록체인을 구성하는 각 블록은 이전 블록의 해시를 포함하므로 블록이 함께 연결되어 처음부터 블록체인에 쓰여진 카테고리 등의 정보에 대한 레코드를 생성한다. 블록은 이전 블록에 종속적으로 연결되어 있으므로 해체, 수정 및 재구성이 거의 불가능하고 노드들이 각자 보유하므로 분산되고 견고하다.
각각의 노드는 모든 컴퓨팅 언어를 읽을수 있도록 서버, 인터페이스, 시스템, 데이터베이스, 에이전트, 피어, 엔진, 컨트롤러 또는 개별적으로 또는 집합적으로 작동하는 기타 유형의 컴퓨팅 장치를 포함하거나 컴퓨팅 장치들의 적절한 조합으로 구성될 수 있다. 컴퓨팅 장치는 비일시적인 컴퓨터 판독 가능 저장 매체(예를 들어, 하드 드라이브, 솔리드 스테이트 드라이브, RAM, 플래시, ROM 등)상에 저장된 소프트웨어 명령을 실행하도록 구성된 프로세서를 포함할 수 있다. 바람직하게, 컴퓨팅 장치가 후술하는 각종 기능을 제공할 수 있도록 소프트웨어 명령이 구성된다. 또한, 개시된 기술들은 프로세서로 하여금 개시된 단계들을 실행하게 하는 소프트웨어 명령들을 저장하는 비일시적 컴퓨터 판독 가능 매체를 포함하는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 바람직하게는, 다양한 서버, 시스템, 데이터베이스 그리고 인터페이스는 HTTP, HTTPS, AES, 공개/개인키 교환, 웹 서비스 API, 알려진 금융 거래 프로토콜 또는 다른 전자 기반의 표준화된 프로토콜 또는 알고리즘을 사용하여 데이터를 교환할 수 있다. 바람직하게, 데이터 교환은 패킷 교환 네트워크, 인터넷, LAN, WAN, VPN 또는 다른 유형의 패킷 교환 네트워크를 통해 수행될 수 있다.
도 2는 본 발명의 실시예에 따른 복수의 노드들이 전부 또는 일부를 공유하는 블록체인에 대한 예시도이다.
블록체인(200)은 메인 블록체인(210)와 서브 블록체인(220)으로 구성될 수 있다. 도 2에 따르면, 메인 블록 2에 서브 블록체인이 연결된 것으로 도시되어 있으나 이는 예시적인 것이며 다른 메인 블록에도 적어도 하나의 서브 블록체인이 연결될 수 있다.
메인 블록체인(210)은 복수의 메인 블록(211)들로 구성될 수 있다. 복수의 메인 블록(211)들은 서로 종속적으로 연결된다. 어느 하나의 메인 블록은 이전 메인 블록의 해시를 포함할 수 있다. 복수의 메인 블록(211) 각각에는 미리 정해진 카테고리 별 항목 정보가 포함될 수 있다. 여기서의 카테고리는 동일한 성격의 콘텐츠를 세부 항목별로 구분한 것이다. 예시적으로, 콘텐츠가 영화 동영상인 경우 콘텐츠는 한국 영화, 미국 영화, 홍콩 영화, 중국 영화, 일본 영화 등의 카테고리로 구분될 수 있다. 다만, 콘텐츠가 영화에 한정되는 것은 아니다. 복수의 메인 블록(211)들 중에서 어느 하나의 메인 블록은 복수의 항목 중 어느 하나의 항목 정보만을 가질 수 있고, 복수의 메인 블록의 항목 정보는 서로 상이할 수 있다.
서브 블록체인(220)은 복수의 메인 블록(211)중 어느 하나의 메인 블록에 연결된 또 다른 체인이거나, 다른 서브 블록체인(220)에 연결된 또 다른 체인이 될 수 있다. 예시적으로, 제1 서브 블록체인(221)은 메인 블록(211)에 연결된 서브 블록체인이고, 제2 서브 블록체인(222)은 제1 서브 블록체인(221)에 연결된 서브 블록체인이 될 수 있다. 서브 블록체인(220) 상의 서브 블록들에는 콘텐츠가 포함될 수 있다.
또한, 어느 하나의 메인 블록에 연결된 제1 및 제2 서브 블록체인(221, 222)은 동일한 카테고리로 분류되는 콘텐츠를 포함하되 이들은 서로 다른 종류의 콘텐츠를 포함할 수 있다.
각각의 서브 블록체인은 서브 블록, 콘텐츠 블록 그리고 말단 블록을 포함할 수 있다.
말단 블록(229)은 어느 하나의 서브 블록체인의 마지막 블록을 지칭하는 블록이 될 수 있다. 말단 블록(229)은 자신과 연결된 서브 블록을 식별하는 서브 블록 식별 정보를 포함할 수 있다.
콘텐츠 블록(228)은 말단 블록(229)의 해시와 자신과 연결된 서브 블록을 식별하는 서브 블록 식별 정보를 포함할 수 있다. 또한, 콘텐츠 블록(228)은 콘텐츠를 포함할 수 있다. 여기서의 콘텐츠는 네트워크에 참여한 노드의 사용자들이 서로 공유하거나 판매, 구입하고자 하는 디지털 정보로서 디지털로 가공된 각종 정보 내용물이나 프로그램, 영화, 음악, 게임 소프트웨어 등을 의미한다.
서브 블록(227)은 콘텐츠 블록(228)의 해시와 자신과 연결된 메인 블록의 해시를 포함할 수 있다. 또한, 서브 블록은 콘텐츠의 종류에 관한 정보를 포함할 수 있다.
네트워크에 참여한 복수의 노드들은 메인 블록체인(210)의 로컬 복사본을 가질 수 있다. 메인 블록체인(210) 내의 메인 블록(211)에 기록된 정보들은 카테고리 정보로써 데이터 용량이 크지 않다. 따라서, 네트워크에 참여한 노드가 메인 블록체인(210)의 로컬 복사본을 저장하기 위한 블록체인 동기화 시간이 신속하게 이루어질 수 있다.
메인 블록체인(210)의 길이는 연장될 수 있다. 즉 새로운 메인 블록이 메인 블록체인(210) 상에 지속적으로 업데이트될 수 있다. 네트워크에 참여한 노드 중 어느 하나의 지정된 노드는 메인 블록체인(210)을 관리할 수 있다. 즉, 해당 노드는 새로운 메인 블록을 메인 블록체인(210) 상에 연결할 수 있다.
도 3은 본 발명의 다른 실시예에 따른 복수의 노드들이 전부 또는 일부는 공유하는 블록체인에 대한 예시도이다.
서브 블록체인(220)은 서브 블록(227)과 복수의 콘텐츠 블록(228) 그리고 말단 블록(229)으로 구성될 수도 있다.
복수의 콘텐츠 블록(228)은 예시적으로 제1 및 제N(N은 2이상의 정수) 콘텐츠 블록을 포함할 수 있다.
제N 콘텐츠 블록은 말단 블록(229)의 해시와 자신과 연결된 서브 블록의 정보를 포함할 수 있다. 또한, 제N 콘텐츠 블록은 콘텐츠를 포함할 수 있다. 제1 콘텐츠 블록은 제2 콘텐츠 블록의 해시를 포함할 수 있다. 즉, 제N-M(M은 1이상 N-1이하의 정수) 콘텐츠 블록은 제N-M+1 콘텐츠 블록의 해시를 포함할 수 있다.
제1 내지 제N-1 콘텐츠 블록 각각은 제N 콘텐츠 블록에 포함된 콘텐츠에 대한 요약 정보를 포함할 수 있다. 일부 실시예에서, 제1 내지 제N-1 콘텐츠 블록 각각은 제N 콘텐츠 블록에 포함된 콘텐츠에 대한 서로 다른 요약 정보를 포함할 수 있다. 즉, 제1 내지 제N-1 콘텐츠 블록 각각은 제N 콘텐츠 블록에 포함된 콘텐츠의 용량보다는 적은 콘텐츠에 대한 요약 정보만을 포함할 수 있다. 예시적으로, 제1 콘텐츠 블록은 콘텐츠의 명칭 정보를 포함하고, 제2 콘텐츠 블록은 콘텐츠의 크레딧 정보를 포함할 수 있으며, 제3 콘텐츠 블록은 콘텐츠의 일부를 포함할 수 있다. 보다 구체적인 예를 들어, 콘텐츠가 영화인 경우, 제1 콘텐츠 블록은 영화의 명칭 정보를 포함하고, 제2 콘텐츠 블록은 영화의 개봉 일시, 제작자 정보, 출원 배우 정보, 러닝 타임 정보 등을 포함할 수 있다. 그리고, 제3 콘텐츠 블록은 영화의 포토 정보나 영화의 예고편 콘텐츠를 포함할 수 있다. 다만, 이에 제한되는 것은 아니고 콘텐츠 블록의 개수에 따라서 콘텐츠를 포함하는 마지막 콘텐츠 블록을 제외한 나머지 콘텐츠 블록들에 포함된 정보는 달라질 수 있다.
일부 실시예에서, 제1 내지 제N 콘텐츠 블록들 각각은 하나의 콘텐츠에 대한 부분 집합의 콘텐츠를 포함할 수 있다. 예시적으로, 하나의 콘텐츠가 N개로 분할되고 분할된 분할 콘텐츠 각각은 제1 내지 제N 콘텐츠 블록들 각각에 포함될 수 있다. 콘텐츠가 영화인 경우, 시간 순서대로 분할된 분할 영상이 제1 내지 제N 콘텐츠 블록들 각각에 순서대로 포함될 수 있다.
도 4는 본 발명의 또 다른 실시예에 따른 복수의 노드들이 전부 또는 일부는 공유하는 블록체인에 대한 예시도이다.
서브 블록체인(220)은 서브 블록(227), 원본 콘텐츠 블록(228), 복제 콘텐츠 블록(226) 그리고 말단 블록(229)으로 구성될 수도 있다.
원본 콘텐츠 블록(228)과 복제 콘텐츠 블록(226) 각각은 말단 블록(229)의 해시를 포함할 수 있다. 그리고, 서브 블록(227)은 원본 콘텐츠 블록(228)의 해시와 복제 콘텐츠 블록(226)의 해시를 포함할 수 있다.
원본 콘텐츠 블록(228)은 콘텐츠를 포함하고, 복제 콘텐츠 블록(226)은 콘텐츠를 포함하지 않는 블록이다. 그리고, 복제 콘텐츠 블록(226)은 원본 콘텐츠 블록(228)을 보유한 노드로 원본 콘텐츠 블록(228)의 전송을 요청하기 위한 스크립트를 내장할 수 있다. 노드가 복제 콘텐츠 블록(226) 내의 스크립트를 실행하면 스크립트는 원본 콘텐츠 블록(228)을 보유한 노드로 원본 콘텐츠 블록(288)의 전송을 요청하게 된다. 다른 측면에서, 복제 콘텐츠 블록(226)은 원본 콘텐츠가 저장된 저장소에 대한 링크 정보를 포함할 수 있다. 노드가 복제 콘텐츠 블록(226) 내의 링크에 연결된 노드로 원본 콘텐츠 블록(227)을 요청하게 된다.
서브 블록체인(220)을 저장하는 노드는 서브 블록(227), 원본 콘텐츠 블록(228), 복제 콘텐츠 블록(226) 그리고 말단 블록(229)을 모두 저장할 수 있다. 이 중에서 원본 콘텐츠 블록(228)을 선택적으로 저장하지 않을 수도 있다.
일부 실시예에서, 콘텐츠 블록은 복수개로 구성될 수 있다. 예를 들어, 콘텐츠 블록은 제1 내지 제N-1 콘텐츠 블록과 원본 콘텐츠 블록인 제N 콘텐츠 블록과 복제 콘텐츠 블록으로 구성될 수 있다. 그리고, 제N-1 콘텐츠 블록은 제N 콘텐츠 블록과 복제 콘텐츠 블록 각각의 해시를 포함할 수 있다. 다른 측면에서, 하나의 콘텐츠가 분할된여 복수의 콘텐츠 블록들에 저장된 경우, 콘텐츠 블록은 제1 내지 제N 원본 콘텐츠 블록과 제1 내지 제N 복제 콘텐츠 블록으로 구성될 수도 있다. 그리고, 제M(M은 1보다 크고 N 미만의 정수) 원본 콘텐츠 블록과 제M 복제 콘텐츠 블록은 제M+1 원본 콘텐츠 블록과 제M+1 복제 콘텐츠 블록 각각의 해시를 포함할 수 있다.
도 5는 본 발명의 실시예에 따른 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법에 대한 흐름도이다.
도 5를 참조하면, 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법(S100)은 복수의 노드 중 어느 하나의 노드가 메인 블록에 종속 연결된 후보 서브 블록을 생성하여 전파하는 단계(S110), 복수의 노드 중 어느 하나의 노드가 수신된 후보 서브 블록의 유효성 검증 후 유효한 후보 서브 블록을 저장 및 전파하는 단계(S120), 복수의 노드 중 어느 하나의 노드가 사용자가 질의한 콘텐츠와 매칭된 후보 서브 블록을 생성한 노드로부터 수신된 콘텐츠 블록의 유효성을 검증한 후 상기 콘텐츠 블록에 연결된 말단 블록을 저장 및 전파하는 단계(S130) 및 복수의 노드 중 어느 하나의 노드는 수신된 동일한 말단 블록의 개수가 기 설정치 이상되면 상기 말단 블록과 연결된 후보 서브 블록을 승인하여 승인 서브 블록을 생성하고 상기 승인 서브 블록을 미리 저장된 블록체인 로컬 복사본에 업데이트하며 상기 승인 서브 블록을 전파하는 단계(S140)를 포함할 수 있다.
이하, 도 5의 각 단계를 보다 상세하게 설명한다.
도 6은 임의의 노드에서 후보 서브 블록을 생성하는 방법에 대한 흐름도이다.
도 5 및 도 6을 참조하면, 임의의 노드에서 후보 서브 블록을 생성하는 방법(S110)은 말단 블록을 생성하는 단계(S111), 말단 블록의 해시 및 콘텐츠를 포함하는 콘텐츠 블록을 생성하는 단계(S112), 콘텐츠 블록의 해시 및 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계(S113) 및 후보 서브 블록을 블록체인 네트워크로 전파하는 단계(S114)를 포함할 수 있다.
보다 상세하게는, 블록체인 네트워크에 참여한 모든 노드는 후보 서브 블록을 생성할 수 있는 권한을 가질 수 있다. 일부 실시예에서, 일부 노드만이 후보 서브 블록을 생성할 수도 있다.
노드는 보유한 콘텐츠를 블록체인 시스템 상에서 검증받고 공유하기 위해 후보 서브 블록을 생성할 수 있다.
상세하게, 노드는 말단 블록을 생성할 수 있다(S111). 말단 블록은 서브 블록 체인을 구성하는 블록으로써 서브 블록 체인의 최종 블록에 해당한다. 말단 블록에는 말단 블록의 생성 노드 정보와 생성 시점, 콘텐츠 정보, 후보 서브 블록을 식별하는 정보 등을 포함할 수 있다.
노드는 말단 블록의 해시와 콘텐츠를 포함하는 콘텐츠 블록을 생성할 수 있다(S112). 콘텐츠 블록에 포함된 콘텐츠는 서브 블록 체인이 연결된 메인 블록에 포함된 카테고리 정보에 매칭되는 콘텐츠가 될 수 있다. 예시적으로, 메인 블록이 포함된 카테고리 정보가 한국 영화 카테고리인 경우 콘텐츠 블록에 포함되는 콘텐츠는 한국 영화로 분류되는 영화 콘텐츠가 될 수 있다.
노드는 콘텐츠 블록의 해시 및 메인 블록의 해시를 포함하는 후보 서브 블록을 생성할 수 있다(S113). 후보 서브 블록은 콘텐츠 블록의 해시를 포함하여 콘텐츠 블록과 연결될 수 있다. 그리고 후보 서브 블록은 자신의 서브 블록 체인이 연결된 메인 블록의 해시를 포함할 수 있다.
다른 측면에서, 메인 블록에 이미 승인된 서브 블록이 연결된 경우, 콘텐츠 블록의 해시, 메인 블록의 해시 그리고 이미 승인된 서브 블록의 해시를 포함하는 후보 서브 블록을 생성할 수 있다.
노드는 서브 블록 체인을 구성하면 서브 블록 체인의 후보 서브 블록을 블록체인 네트워크 상에 전파할 수 있다(S114). 노드는 서브 블록체인 전부가 아닌 후보 서브 블록만을 전파하고, 후보 서브 블록 내에는 콘텐츠가 아닌 콘텐츠의 식별 정보를 포함하기 때문에 데이터 용량이 적다. 따라서, 후보 서브 블록은 수초 내에 블록체인 네트워크에 연결된 모든 노드로 전파될 수 있다.
후보 서브 블록은 미승인 블록으로서 메인 블록체인 상에 정식으로 연결된 블록이 아니다. 다만, 노드들의 합의 하에 후보 서브 블록이 승인되면 메인 블록체인 상에 연결된다. 또한, 승인 서브 블록이 메인 블록체인에 연결될 때 승인 서브 블록에 연결된 콘텐츠 블록과 말단 블록이 모두 메인 블록체인에 연결될 수 있다. 즉, 승인된 서브 블록 체인이 메인 블록체인에 연결될 수 있다.
서브 블록 체인이 승인되어 메인 블록체인에 연결된 경우라고 하여도, 노드의 사용자의 선택에 따라서 서브 블록 체인의 부분집합만을 자신의 블록체인 로컬 복사본에 업데이트할 수 있다. 상세하게, 노드의 사용자는 승인된 서브 블록 체인이 존재하는 경우 서브 블록 체인 상의 서브 블록만을 자신의 블록체인 로컬 복사본에 업데이트할 수 있다. 따라서, 노드의 사용자는 저장 공간과 콘텐츠 저장의 필요성을 고려하여 선택적으로 콘텐츠 블록의 저장 여부를 결정할 수 있다.
일부 실시예에서, 콘텐츠 블록은 복수개가 될 수 있다. 예시적으로, 콘텐츠 블록은 제1 및 제2 콘텐츠 블록으로 구성될 수 있다.
노드는 말단 블록의 해시 및 제1 콘텐츠를 포함하는 제1 콘텐츠 블록을 생성하고, 제2 콘텐츠 및 제1 콘텐츠 블록의 해시를 포함하는 제2 콘텐츠 블록을 생성할 수 있다. 일부 실시예에서, 제2 콘텐츠는 제1 콘텐츠보다 적은 용량을 가질 수 있다. 예시적으로, 콘텐츠가 동영상인 경우 제1 콘텐츠는 동영상이 되고, 제2 콘텐츠는 동영상의 종류 정보, 동영상의 제작자 정보, 동영상의 등장 인물 등에 대한 정보와 같이 영상이 아닌 텍스트 및/또는 이미지 정보와 같이 콘텐츠를 식별하는 정보가 될 수 있다.
또한, 노드는 제2 콘텐츠 블록의 해시와 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성할 수 있다. 그리고, 노드는 생성된 후보 서브 블록을 블록체인 네트워크로 전파할 수 있다.
일부 실시예에서, 노드는 말단 블록의 해시 및 콘텐츠를 포함하는 원본 콘텐츠 블록과 말단 블록의 해시를 포함하는 복제본 콘텐츠 블록을 생성할 수 있다.
또한, 노드는 원본 콘텐츠 블록의 해시 및 복제본 콘텐츠 블록의 해시를 포함하는 후보 서브 블록을 생성하여 블록체인 네트워크로 전파할 수 있다.
도 7은 수신된 후보 서브 블록에 대한 검증 및 전파 과정을 나타낸 흐름도이다.
도 7을 참조하여, 수신된 후보 서브 블록에 대한 검증 및 전파 방법(S200)을 설명하면, 네트워크에 참여한 노드들 중 임의의 노드가 다른 노드가 생성한 후보 서브 블록을 수신할 수 있다(S210).
노드는 수신된 후보 서브 블록의 유효성을 검증할 수 있다(S220). 상세하게, 노드는 후보 서브 블록에 포함된 콘텐츠 정보와 후보 서브 블록이 연결된 메인 블록의 카테고리 항목의 정합성을 확인할 수 있다. 또한, 노드는 후보 서브 블록이 이미 승인된 승인 서브 블록인지 여부를 확인할 수 있다. 또한, 노드는 후보 서브 블록과 동일한 블록이 이전에 수신된 적이 있는지 여부를 확인할 수 있다. 또한, 노드는 예시적으로 블록에 포함된 정보의 구문(syntax)과 데이터 구조가 정확한지 검증, 포함된 정보의 크기가 미리 설정된 기준보다 작은지를 검증하는 과정 등 미리 정해진 체크리스트를 바탕으로 후보 서브 블록의 유효성을 검증할 수 있다.
노드는 수신한 후보 서브 블록이 메인 블록과의 관계에서 정합성 실패, 수신한 후보 서브 블록이 이미 승인된 블록이거나 중복 수신된 후보 서브 블록인 경우, 그 밖의 체크리스트 상의 요건을 충족하지 않는 경우 중 적어도 하나를 충족하지 않는 경우 수신한 후보 서브 블록의 유효성 검증은 실패한 것으로 판단할 수 있다. 노드는 유효성 검증에 실패한 후보 서브 블록을 폐기하고(S230), 검증 실패 정보를 후보 서브 블록의 생성 노드로 전송할 수 있다(S240).
이와 달리, 수신한 후보 서브 블록의 유효성 검증이 완료되면 노드는 해당 후보 서브 블록을 저장하고(S250), 블록체인 네트워크 상에 전파할 수 있다(S260).
노드는 유효성이 검증된 후보 서브 블록을 데이터베이스에 저장한다. 전술한 과정을 통해 노드의 데이터베이스 상에는 서로 다른 후보 서브 블록이 쌓여갈 수 있다. 노드는 사용자의 요청에 응답하여 저장된 후보 서브 블록들 중 사용자의 요청에 매칭되는 후보 서브 블록을 검색할 수 있다.
도 8은 선택된 후보 서브 블록에 연결된 콘텐츠 블록을 수신하고 말단 블록을 전파하는 방법을 나타낸 흐름도이고, 도 9 및 도 10은 블록체인 검색용 사용자 인터페이스의 예시도이다.
도 8을 참조하면, 후보 서브 블록에 연결된 콘텐츠 블록을 수신하고 말단 블록을 전파하는 방법(S300)은 사용자의 요청에 응답하여 블록체인 검색용 사용자 인터페이스를 실행하는 단계(S310), 사용자의 질의에 응답하여 저장된 후보 서브 블록을 검색하는 단계(S320), 질의된 콘텐츠와 매칭된 후보 서브 블록을 선택하는 단계(S330), 선택된 후보 서브 블록을 생성한 노드로 콘텐츠 블록의 전송 요청하는 단계(S340), 콘텐츠 블록을 수신하는 단계(S350), 수신된 콘텐츠 블록의 유효성을 검증하는 단계(S360), 콘텐츠 블록의 유효성이 검증되면 말단 블록의 전송을 요청하는 단계(S370), 수신된 말단 블록을 저장하는 단계(S380) 및 말단 블록을 전파하는 단계(S390)를 포함할 수 있다.
상세하게, 도 8 및 도 9를 참조하면, 노드는 사용자의 요청에 응답하여 블록체인 검색용 사용자 인터페이스(510)를 실행하여 표시할 수 있다(S310). 사용자 인터페이스(510) 상에는 노드에 저장된 메인 블록 체인(210)이 표시될 수 있다. 또한, 메인 블록 체인(210) 상의 메인 블록들 각각의 카테고리 정보가 함께 표시될 수 있다.
사용자는 사용자 인터페이스(510) 상의 검색어 입력란(520)에 검색어를 입력할 수 있다. 노드는 데이터베이스에 저장된 후보 서브 블록들 중에서 입력된 검색어에 매칭되는 후보 서브 블록을 검색할 수 있다(S320). 사용자가 질의한 검색어와 매칭되는 적어도 하나의 후보 서브 블록을 표시하고, 사용자는 표시된 후보 서브 블록 중 어느 하나를 선택할 수 있다(S330).
다른 측면에서, 도 8 및 도 10을 참조하면, 노드는 사용자의 요청에 응답하여 블록체인 검색용 사용자 인터페이스(510)를 실행하여 표시(S310)할 수 있다. 사용자 인터페이스(510) 상에는 메인 블록 체인(210)이 표시될 수 있다. 노드는 메인 블록 체인(210) 상의 복수의 메인 블록 중 어느 하나에 대한 사용자의 선택에 응답하여 노드의 데이터베이스 상에 저장된 후보 서브 블록들 중에서 선택된 메인 블록과 연결된 후보 서브 블록들을 표시할 수 있다. 일부 실시예에서, 노드는 메인 블록 체인(210) 상의 복수의 메인 블록 중 어느 하나에 대한 사용자의 선택에 응답하여 노드의 데이터베이스 상에 저장된 승인 서브 블록과 후보 서브 블록을 모두 표시할 수도 있다. 또한, 서브 블록을 표시할 때 표시된 서브 블록이 승인된 서브 블록인지를 표시할 수 있다. 따라서, 사용자는 표시된 서브 블록의 신뢰 여부를 확인할 수 있다. 이는 사용자로 하여금 복수의 서브 블록 중 콘텐츠의 신뢰가 가능한 서브 블록에 선택의 용이함을 제공한다.
또한, 사용자는 표시된 후보 서브 블록들 중에서 어느 하나의 후보 서브 블록을 선택할 수 있다(S330).
노드는 사용자의 후보 서브 블록을 선택한 것에 응답하여 선택된 후보 서브 블록을 생성한 노드로 선택된 후보 서브 블록과 연결된 콘텐츠 블록의 전송을 요청할 수 있다(S340).
노드는 콘텐츠 블록을 수신하면 콘텐츠 블록에 포함된 콘텐츠를 표시할 수 있다. 그리고, 콘텐츠 블록의 유효성을 검증할 수 있다(S360).
콘텐츠 블록의 유효성 검증에 대해 보다 구체적으로 설명한다.
노드는 콘텐츠의 표시가 완료되면 콘텐츠 블록의 유효성 검증이 완료된 것으로 판단할 수 있다. 예를 들어, 콘텐츠가 동영상인 경우 동영상의 재생이 모두 완료되면 콘텐츠 블록의 유효성 검증이 완료된 것으로 판단할 수 있다. 일부 실시예에서, 사용자의 승인 정보의 입력에 응답하여 콘텐츠 블록의 유효성 검증을 완료할 수 있다. 예를 들어, 노드는 콘텐츠를 표시함과 아울러 콘텐츠의 유효성 검증 여부를 확인받기 위한 검증용 사용자 인터페이스를 실행할 수 있다. 사용자는 실행된 검증용 사용자 인터페이스 상에서 해당 콘텐츠의 유효성에 대한 정보를 입력할 수 있다. 노드는 사용자로부터 콘텐츠가 유효하다는 입력 정보를 수신하는 것에 응답하여 콘텐츠 블록의 유효성이 검증된 것으로 판단할 수 있다. 일부 실시예에서, 노드는 콘텐츠 블록 내의 콘텐츠를 표시하기 전에 결제용 사용자 인터페이스를 실행할 수 있다. 사용자는 결제용 사용자 인터페이스를 통해 콘텐츠의 재생을 위한 비용 결제 절차를 진행할 수 있다. 노드는 콘텐츠 블록 또는 콘텐츠 블록과 연결된 후보 서브 블록에 포함된 비용 정보, 및 콘텐츠 블록을 생성한 노드의 블록체인 주소를 읽어 드릴 수 있다. 그리고 읽어 드린 정보는 결제용 사용자 인터페이스를 통해 표시될 수 있다. 사용자는 결제용 사용자 인터페이스를 통해 표시된 비용의 결제를 진행할 수 있다. 노드는 비용 결제가 완료 후 콘텐츠 블록 내의 콘텐츠를 실행할 수 있다. 또한, 노드는 비용 결제의 완료에 응답하여 콘텐츠 블록의 유효성이 검증된 것으로 판단할 수 있다.
실시예는, 노드가 미리 저장된 서브 블록을 검색하고 검색된 서브 블록에 포함된 서브 블록 생성 노드의 정보를 확인하여 해당 노드로 콘텐츠 블록을 요청함으로써 사용자에게 콘텐츠를 표시하게 한다. 따라서, 노드는 용량이 큰 콘텐츠 블록을 미리 저장하지 않아도 저장된 서브 블록을 이용하여 콘텐츠 블록을 수신하고, 콘텐츠 블록 내의 콘텐츠를 표시할 수 있다.
일부 실시예에서, 콘텐츠 블록은 복수의 콘텐츠 블록으로 구성될 수 있다.
복수의 콘텐츠 블록 중 말단 블록과 연결된 최종 콘텐츠 블록에는 사용자가 실제 열람하기를 원하는 콘텐츠가 포함될 수 있고, 최종 콘텐츠 블록을 제외한 나머지 콘텐츠 블록에는 최종 콘텐츠 블록에 포함된 콘텐츠를 식별하기 위한 각종 정보가 포함될 수 있다.
예를 들어, 콘텐츠 블록이 후보 서브 블록에 연결된 제1 콘텐츠 블록과 제1 콘텐츠 블록 및 말단 블록에 연결된 제2 콘텐츠 블록으로 구성되면, 제1 콘텐츠 블록에 포함된 콘텐츠는 제2 콘텐츠 블록에 포함된 콘텐츠를 식별하는 정보로써 설명, 요약, 기타 정보가 될 수 있다.
후보 서브 블록을 생성한 노드는 콘텐츠 블록의 전송 요청에 응답하여 후보 서브 블록에 최초 연결된 제1 콘텐츠 블록을 전송할 수 있다.
제1 콘텐츠 블록을 수신한 노드는 제1 콘텐츠 블록의 유효성을 검증할 수 있다. 예시적으로, 미리 마련된 체크리스트를 바탕으로 제1 콘텐츠 블록의 유효성을 검증할 수 있다. 일부 실시예에서, 노드는 검증용 사용자 인터페이스를 실행하여 사용자로부터의 검증 확인 입력 신호가 수신되면 제1 콘텐츠 블록이 유효하다고 판단할 수 있다. 노드는 제1 콘텐츠 블록의 유효성이 확인되면 제1 콘텐츠 블록에 후속하여 연결된 제2 콘텐츠 블록의 전송을 후보 블록 생성 노드 요청할 수 있다. 이와 같이, 콘텐츠 블록이 복수개로 구성된 경우 노드는 콘텐츠 블록을 순차적으로 수신할 수 있다. 그리고, 다음 콘텐츠 블록의 수신 동작 실행은 이전 콘텐츠 블록의 유효성이 만족되는 것을 조건으로 발생할 수 있다. 또한, 콘텐츠 블록 내의 콘텐츠의 표시 전 비용 결제가 요구되는 경우라면, 최종 콘텐츠 블록 내의 콘텐츠의 표시할 때만 비용 결제를 요구할 수도 있다.
실시예는, 콘텐츠 블록을 복수개로 구성하고 최종 콘텐츠 블록에만 상대적으로 대용량의 콘텐츠를 포함하도록 구성한다. 따라서, 노드는 상대적으로 데이터 용량이 적은 최선단의 콘텐츠 블록을 수신하여 해당 콘텐츠 블록의 유효성 검증 후(콘텐츠의 식별 정보를 확인하여 최종 콘텐츠 블록에 포함된 콘텐츠가 무엇인지 미리 확인 등) 후단의 콘텐츠 블록을 수신한다. 따라서, 사용자는 최선단의 콘텐츠 블록들 내의 콘텐츠 식별 정보를 미리 확인함으로써 원치 않는 대용량의 콘텐츠를 전송받는 문제를 방지할 수 있다.
또한, 실시예는, 복수의 콘텐츠 블록들 각각은 분할된 콘텐츠들을 각각 포함할 수 있다. 따라서, 사용자는 스트리밍 형태로 복수의 콘텐츠 블록들을 순차적으로 수신하고 수신된 콘텐츠 블록 내의 콘텐츠를 열람할 수 있다. 또한, 복수의 콘텐츠 블록들 별로 비용 결제가 이루어지도록 하여 콘텐츠의 순차적인 열람에 따른 과금 처리가 가능하다. 또한, 복수의 콘텐츠 블록들 중 적어도 일부의 콘텐츠 블록만을 데이터베이스에 저장할 수 있다. 따라서, 전체 콘텐츠의 내용 중 사용자가 필요한 부분의 콘텐츠만이 저장될 수 있다.
일부 실시예에서, 콘텐츠 블록은 원본 콘텐츠 블록과 복제 콘텐츠 블록을 포함할 수 있다. 원본 콘텐츠 블록에는 콘텐츠가 포함될 수 있다. 그리고 복제 콘텐츠 블록은 후보 서브 블록을 생성한 노드로 원본 콘텐츠 블록의 전송을 요청하기 위한 스크립트를 내장할 수 있다. 다른 측면에서, 복제 콘텐츠 블록은 원본 콘텐츠가 저장된 저장소에 대한 링크 정보를 포함할 수 있다.
노드는 수신된 원본 콘텐츠 블록 만을 삭제 처리할 수 있다. 원본 콘텐츠 블록의 삭제에 따라 노드의 저장 용량의 부담을 경감할 수 있다. 또한, 복제 콘텐츠 블록에 의해 말단 블록과 서브 블록의 체인 연결은 유지된다. 또한, 필요에 따라서 복제 콘텐츠 블록 내의 스크립트나 링크를 이용하여 원본 콘텐츠 블록을 요청할 수 있다.
노드는 콘텐츠 블록의 유효성 검증 후 유효성이 검증되지 않으면, 해당 콘텐츠 블록과 연결된 후보 서브 블록을 삭제할 수 있고(S361), 콘텐츠 블록의 검증 실패 정보를 후보 서브 블록을 생성한 노드로 전송할 수 있다(S362).
노드는 콘텐츠 블록의 유효성 검증이 완료되면, 후보 서브 블록 생성 노드로 말단 블록의 전송을 요청할 수 있다. 노드는 수신된 말단 블록을 저장하고(S380), 말단 블록을 블록체인 네트워크로 전파(S390)할 수 있다.
한편, 사용자는 콘텐츠를 열람한 후 해당 콘텐츠가 포함된 콘텐츠 블록을 삭제 처리할 수 있다.
노드는 사용자로부터 콘텐츠의 삭제 요청의 수신에 응답하여 콘텐츠가 포함된 콘텐츠 블록을 제거할 수 있다. 일부 실시예에서, 콘텐츠 블록이 복수개의 콘텐츠 블록을 포함하는 경우 최종 콘텐츠 블록만을 제거할 수도 있다. 일부 실시예에서, 콘텐츠 블록이 원본 콘텐츠 블록과 복제 콘텐츠 블록을 포함하는 경우 원본 콘텐츠 블록만을 제거할 수 있다.
도 11은 후보 서브 블록의 승인 과정을 나타낸 흐름도이다.
도 11을 참조하여 후보 서브 블록의 승인 방법(S400)을 설명한다.
네트워크에 참여한 노드들 중 임의의 노드가 다른 노드가 전송한 말단 블록을 수신할 수 있다(S410).
노드는 수신된 말단 블록의 유효성을 검증할 수 있다(S420). 상세하게, 노드는 말단 블록에 연결된 후보 서브 블록이 이미 승인된 서브 블록인 경우 말단 블록을 삭제할 수 있다(S430).
노드는 말단 블록의 유효성이 검증되면 말단 블록을 저장할 수 있다.
노드는 저장된 동일한 말단 블록의 총 개수가 기 설정치(T) 이상인지를 판단할 수 있다(S440). 노드는 저장된 동일 말단 블록의 총 개수가 기 설정치 이상이되면 해당 말단 블록에 연결된 후보 서브 블록을 승인할 수 있다(S450). 즉, 말단 블록은 콘텐츠 블록의 유효성 검증 후에 네트워크 상에 전파된다. 따라서, 동일한 말단 블록의 개수가 증가할수록 말단 블록과 관련된 콘텐츠 블록의 열람 횟수가 증가한 것으로 볼 수 있다. 이는 콘텐츠의 신뢰도가 증가함을 의미한다. 콘텐츠의 신뢰도가 기 설정 수준에 이르면 비로소 후보 서브 블록은 정식 서브 블록으로 승인될 수 있다.
노드는 승인된 서브 블록을 데이터베이스 상에 저장된 블록체인 상에 업데이트하여 서브 블록이 메인 블록에 연결되도록 할 수 있다. 그리고 노드는 승인된 서브 블록을 블록체인 네트워크 상에 전파할 수 있다(S460).
도 12는 승인 서브 블록의 수신에 따른 노드의 동작 과정을 나타낸 흐름도이다.
도 12를 참조하여 승인 서브 블록의 수신에 따른 노드의 동작 과정(S500)을 설명한다.
네트워크에 참여한 복수의 노드 중 임의의 노드는 승인 서브 블록을 수신할 수 있다(S510). 승인 서브 블록이 수신되면 승인 서브 블록의 유효성을 검증할 수 있다(S520). 예시적으로 수신된 승인 서브 블록이 이미 자신의 블록체인에 업데이트된 경우에는 수신된 승인 서브 블록을 폐기할 수 있다(S521). 노드는 수신된 승인 서브 블록의 유효성이 인정되면 블록체인을 업데이트하고 승인 서브 블록을 블록체인 네트워크 상에 전파할 수 있다(S530).
도 13은 콘텐츠의 신뢰 정보를 표시하는 방법에 대한 흐름도이다.
도 13을 참조하여, 실시예에 따른 콘텐츠의 신뢰 정보를 표시하는 방법(S600)을 설명한다.
임의의 노드는 사용자의 요청에 응답하여 검색용 사용자 인터페이스를 실행하고 복수의 카테고리 정보들 각각을 포함한 서로 종속 연결된 메인 블록 체인을 표시할 수 있다(S610).
노드는 메인 블록 체인 상의 어느 하나의 메인 블록에 대한 사용자의 선택에 응답하여 메인 블록에 연결된 적어도 하나의 서브 블록 체인들 각각의 서브 블록들을 표시할 수 있다(S620). 이 때, 표시되는 서브 블록들은 승인된 서브 블록이거나 미승인된 서브 블록이 될 수 있고, 서브 블록의 승인 여부가 구별되어 표시될 수 있다.
노드는 서브 블록들 중 어느 하나의 서브 블록에 대한 사용자의 선택에 응답하여 서브 블록에 종속 연결된 복수의 콘텐츠 블록을 저장한 콘텐츠 저장 노드로 복수의 콘텐츠 블록의 전송을 요청할 수 있다(S630).
노드는 수신된 콘텐츠 블록 내의 콘텐츠를 표시할 수 있다(S640).
이 때, 복수의 콘텐츠 블록 중 수신된 콘텐츠 블록의 유효성 검증 완료 후 수신된 콘텐츠 블록에 후속하여 연결된 콘텐츠 블록의 전송이 요청될 수 있다. 예를 들어, 복수의 콘텐츠 블록으로 구성된 경우 앞단의 콘텐츠 블록에 대한 유효성 검증 완료 후 이어진 콘텐츠 블록의 전송이 요청될 수 있다. 다른 측면에서, 콘텐츠 블록에 대한 유효성 검증 완료 후 이어진 말단 블록의 전송이 요청될 수 있다.
노드는 복수의 콘텐츠 블록 중 마지막 콘텐츠 블록 내의 콘텐츠의 표시에 응답하여 마지막 콘텐츠 블록에 연결된 말단 블록의 전송을 요청할 수 있다(S650).
노드는 말단 블록의 수신에 응답하여 콘텐츠 열람 정보를 생성할 수 있다(S660). 이 때, 이미 승인된 서브 블록에 연결된 콘텐츠 블록 상의 콘텐츠를 열람한 경우에만 콘텐츠 열람 정보가 생성될 수도 있다.
노드는 콘텐츠 열람 정보를 블록체인 네트워크에 전파할 수 있다(S670).
임의의 노드는 블록체인 네트워크로부터 수신된 콘텐츠 열람 정보를 수신하여 저장할 수 있다. 그리고, 저장된 동일한 콘텐츠의 열람 정보의 개수에 기초하여 콘텐츠 신뢰 정보를 생성할 수 있다. 그리고, 노드가 수신된 콘텐츠 블록을 표시하거나, 수신된 콘텐츠 블록 내의 콘텐츠를 표시하기 전이나 수신된 콘텐츠 블록 내의 콘텐츠를 표시할 때 생성된 콘텐츠 신뢰 정보가 표시될 수 있다.
이상 설명된 본 발명에 따른 실시예는 다양한 컴퓨터 구성요소를 통하여 실행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위하여 하나 이상의 소프트웨어 모듈로 변경될 수 있으며, 그 역도 마찬가지이다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
또한 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술할 특허청구범위에 기재된 본 발명의 사상 및 기술 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 명세서의 상세한 설명에 기재된 내용으로 한정되는 것이 아니라 특허청구범위에 의해 정하여져야만 할 것이다.

Claims (8)

  1. 복수의 노드 중 어느 하나의 노드가 메인 블록에 종속 연결된 후보 서브 블록을 생성하여 전파하는 단계;
    복수의 노드 중 어느 하나의 노드가 수신된 후보 서브 블록의 유효성 검증 후 유효한 후보 서브 블록을 저장 및 전파하는 단계;
    복수의 노드 중 어느 하나의 노드는 저장한 복수의 후보 서브 블록 중에서 사용자가 질의한 콘텐츠와 매칭되는 후보 서브 블록을 검색하여 매칭된 후보 서브 블록을 생성한 노드로 상기 매칭된 후보 서브 블록에 연결된 콘텐츠 블록을 수신하여 상기 콘텐츠 블록의 유효성을 검증하고, 상기 콘텐츠 블록의 유효성이 검증되면 상기 매칭된 후보 서브 블록을 생성한 노드로부터 상기 콘텐츠 블록에 연결된 말단 블록을 수신하여 저장 및 전파하는 단계; 및
    복수의 노드 중 어느 하나의 노드는 수신된 동일한 말단 블록의 개수가 기 설정치 이상되면 상기 콘텐츠 블록 내의 콘텐츠에 대한 신뢰도가 기 설정 수준에 이른 것으로 판단하여 상기 말단 블록과 연결된 후보 서브 블록을 승인하여 승인 서브 블록을 생성하고 상기 승인 서브 블록을 미리 저장된 블록체인 로컬 복사본에 업데이트하며 상기 승인 서브 블록을 전파하는 단계;를 포함하는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  2. 제1 항에 있어서,
    복수의 노드 중 어느 하나의 노드가 메인 블록에 종속 연결된 후보 서브 블록을 생성하여 전파하는 단계는,
    말단 블록을 생성하는 단계;
    상기 말단 블록의 해시 및 콘텐츠를 포함하는 콘텐츠 블록을 생성하는 단계;
    상기 콘텐츠 블록의 해시 및 상기 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계; 및
    상기 후보 서브 블록을 블록체인 네트워크로 전파하는 단계;를 포함하는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  3. 제2 항에 있어서,
    상기 말단 블록의 해시 및 콘텐츠를 포함하는 콘텐츠 블록을 생성하는 단계는,
    상기 말단 블록의 해시 및 제1 콘텐츠를 포함하는 제1 콘텐츠 블록을 생성하는 단계; 및
    상기 제1 콘텐츠보다 적은 데이터 용량의 제2 콘텐츠 및 상기 제1 콘텐츠 블록의 해시를 포함하는 제2 콘텐츠 블록을 생성하는 단계;를 포함하고,
    상기 콘텐츠 블록의 해시 및 상기 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계는,
    상기 제2 콘텐츠 블록의 해시 및 상기 제1 또는 제2 콘텐츠의 카테고리와 매칭된 메인 블록의 해시를 포함하는 후보 서브 블록을 생성하는 단계;를 포함하는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  4. 제1 항에 있어서,
    복수의 노드 중 어느 하나의 노드는 저장한 복수의 후보 서브 블록 중에서 사용자가 질의한 콘텐츠와 매칭되는 후보 서브 블록을 검색하여 매칭된 후보 서브 블록을 생성한 노드로 상기 매칭된 후보 서브 블록에 연결된 콘텐츠 블록의 유효성이 검증되면 상기 매칭된 후보 서브 블록을 생성한 노드로부터 상기 콘텐츠 블록에 연결된 말단 블록을 수신하여 저장 및 전파하는 단계는,
    사용자로부터로부터 검색할 콘텐츠 정보를 수신하는 단계;
    저장된 후보 서브 블록 중 수신된 콘텐츠 정보와 매칭되는 서브 블록을 검색하는 단계;
    검색된 서브 블록을 생성한 노드로 상기 검색된 서브 블록에 연결된 콘텐츠 블록의 전송을 요청하는 단계;
    수신된 콘텐츠 블록의 유효성을 검증하는 단계; 및
    유효성이 검증된 콘텐츠 블록에 연결된 말단 블록을 저장하고 상기 블록체인 네트워크로 전파하는 단계;를 포함하는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  5. 제4 항에 있어서,
    상기 수신된 콘텐츠 블록의 유효성을 검증하는 단계에서, 상기 수신된 콘텐츠 블록 내에 포함된 콘텐츠의 재생이 완료, 사용자로부터의 승인 정보 수신 및 상기 콘텐츠의 재생을 위한 비용 결제 절차의 진행 완료 중 어느 하나에 의해 상기 수신된 콘텐츠 블록의 유효성이 검증되는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  6. 제1 항에 있어서,
    상기 메인 블록 체인은 복수의 카테고리 정보들 각각을 포함한 메인 블록들이 서로 종속 연결되고,
    사용자의 노드는 상기 메인 블록 체인 상의 어느 하나의 메인 블록에 대한 사용자의 선택에 응답하여 선택된 메인 블록에 연결된 적어도 하나의 서브 블록 체인들 각각의 서브 블록들을 표시하고,
    사용자의 노드는 표시된 서브 블록들 중 어느 하나의 서브 블록의 선택에 응답하여 선택된 서브 블록에 종속 연결된 복수의 콘텐츠 블록을 저장한 콘텐츠 저장 노드로 선택된 서브 블록에 종속 연결된 복수의 콘텐츠 블록의 전송을 요청하고,
    사용자의 노드는 수신한 복수의 콘텐츠 블록 내의 콘텐츠를 표시하는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  7. 제6 항에 있어서,
    선택된 서브 블록에 종속 연결된 복수의 콘텐츠 블록의 전송을 요청할 때 어느 하나의 수신된 콘텐츠 블록의 유효성이 검증되면 유효성이 검증된 콘텐츠 블록에 후속하여 연결된 콘텐츠 블록의 전송이 요청되는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
  8. 제6 항에 있어서,
    상기 복수의 노드들은 상기 콘텐츠 블록 내의 콘텐츠의 열람 횟수 정보를 공유하고,
    상기 서브 블록들이 표시될 때 상기 열람 횟수 정보에 기초하여 산정된 콘텐츠의 신뢰 정보가 표시되는 것을 더 포함하는
    복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법.
KR1020180140422A 2018-11-15 2018-11-15 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템 KR102181136B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180140422A KR102181136B1 (ko) 2018-11-15 2018-11-15 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템
JP2019205572A JP6921921B2 (ja) 2018-11-15 2019-11-13 複数のノードの分散ネットワークで構成されたブロックチェーンシステムにおけるサブブロックチェーンの構成方法及びブロックチェーンシステムプログラム
US16/684,598 US11200225B2 (en) 2018-11-15 2019-11-15 Method and blockchain for constructing sub blockchain in blockchain system comprising distributed network of plurality of nodes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180140422A KR102181136B1 (ko) 2018-11-15 2018-11-15 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템

Publications (2)

Publication Number Publication Date
KR20200056579A KR20200056579A (ko) 2020-05-25
KR102181136B1 true KR102181136B1 (ko) 2020-11-20

Family

ID=70726336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180140422A KR102181136B1 (ko) 2018-11-15 2018-11-15 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템

Country Status (3)

Country Link
US (1) US11200225B2 (ko)
JP (1) JP6921921B2 (ko)
KR (1) KR102181136B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210147496A (ko) 2020-05-29 2021-12-07 (주)바다플랫폼 체인 데이터베이스를 구비한 블록체인 네트워크 기반의 데이터 저장 장치를 이용한 데이터 저장 및 조회방법
EP3956775B1 (en) * 2020-06-24 2024-03-20 Beatdapp Software Inc. System and method for continuous tracking of media playback using blockchain
WO2022149239A1 (ja) * 2021-01-07 2022-07-14 日本電信電話株式会社 情報処理装置、隣接ノード選択方法及びプログラム
CN112799879B (zh) * 2021-01-15 2024-04-05 北京百度网讯科技有限公司 节点的故障处理方法、装置、设备和存储介质
CN113407558A (zh) * 2021-07-14 2021-09-17 广东粤信智能科技有限公司 一种基于区块链世界状态的交易数据更新方法、存储介质及系统
CN114357081A (zh) * 2022-01-05 2022-04-15 南昌航空大学 一种网状结构的区块链构造方法
KR20230117986A (ko) 2022-02-03 2023-08-10 최현일 블록체인 시스템에서 이벤트 프로세스별로 독립적인 블록체인을 구성하는 방법 및 시스템
CN115442045B (zh) * 2022-06-20 2023-06-02 上海市大数据中心 基于政务联盟链的政务数据访问控制方法及系统
CN116820352B (zh) * 2023-08-23 2023-11-10 湖南奔普智能科技有限公司 一种具有数据容灾功能的病区自助结算系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100916034B1 (ko) * 1999-01-29 2009-09-08 엑시스 에이비 디지털 영상용 데이터 저장 및 감소 방법 및 상기 방법을 이용하는 감시 시스템
JP2017220710A (ja) * 2016-06-03 2017-12-14 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意装置および合意検証装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000036454A (ko) * 2000-03-14 2000-07-05 이중호 인터넷 검색사이트에서 조회횟수를 이용한 검색도메인표시방법
JP2008108096A (ja) * 2006-10-26 2008-05-08 Sony Corp コンテンツ共有システム、コンテンツ管理サーバ、クライアント機器、コンテンツ管理方法およびコンテンツ取得方法
JP2008158912A (ja) * 2006-12-26 2008-07-10 Funai Electric Co Ltd オーディオサーバ
SG10202007907PA (en) 2016-02-23 2020-09-29 Nchain Holdings Ltd Blockchain-implemented method for control and distribution of digital content
JP6601624B2 (ja) * 2016-05-10 2019-11-06 日本電信電話株式会社 コンテンツ流通システム、コンテンツ流通方法、コンテンツ生成装置及びコンテンツ生成プログラム
US10657526B2 (en) * 2016-10-28 2020-05-19 International Business Machines Corporation System and method to dynamically setup a private sub-blockchain based on agility of transaction processing
KR102382127B1 (ko) * 2017-04-05 2022-04-04 삼성에스디에스 주식회사 블록체인 기반의 데이터 처리 시스템 및 그 동작 방법
US11032083B2 (en) * 2018-11-06 2021-06-08 International Business Machines Corporation Atomic transactional processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100916034B1 (ko) * 1999-01-29 2009-09-08 엑시스 에이비 디지털 영상용 데이터 저장 및 감소 방법 및 상기 방법을 이용하는 감시 시스템
JP2017220710A (ja) * 2016-06-03 2017-12-14 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意装置および合意検証装置

Also Published As

Publication number Publication date
KR20200056579A (ko) 2020-05-25
JP6921921B2 (ja) 2021-08-18
JP2020088857A (ja) 2020-06-04
US20200159717A1 (en) 2020-05-21
US11200225B2 (en) 2021-12-14

Similar Documents

Publication Publication Date Title
KR102181136B1 (ko) 복수의 노드들의 분산 네트워크로 구성된 블록체인 시스템에서 서브 블록체인을 구성하는 방법 및 블록체인 시스템
WO2020063820A1 (zh) 资产交易方法、存储介质及计算机设备
US10713086B2 (en) Asynchronous directed acyclic map based distributed transaction network
CN111047324B (zh) 用于更新区块链节点处的公钥集合的方法及装置
WO2022121538A1 (zh) 基于区块链的数据同步方法、系统及相关设备
TW202036335A (zh) 在區塊鏈網路上實施轉移之電腦實施系統及方法
CN113544722A (zh) 使用区块链的方法
JP2020524434A (ja) ブロックチェーン・ネットワークにおける高速伝搬のための方法及び特殊ネットワーク・ノード
KR102201468B1 (ko) 블록체인 기반의 게임 제작을 위한 크라우드펀딩 시스템의 동작 방법 및 서비스 환경을 구현하기 위한 시스템
KR102542631B1 (ko) 블록체인과는 다른 형식의 저장소에 저장되는 블록체인 데이터를 검증하는 방법 및 시스템
CN114008969A (zh) 包含在区块链中的交易的延展性
JP5084746B2 (ja) ピアツーピアでのカルマおよび信頼を確立する方法ならびにその装置
JP2023515368A (ja) ブロックチェーンネットワークと共に使用される証明サービス
JP2022532889A (ja) 複数インプットトランザクション
US20220253821A1 (en) Streaming portions of data over a side channel
KR20230043800A (ko) 컨텐츠 관리 서버
JP2023515369A (ja) 分散型データベース
JP2022548583A (ja) ブロックチェーンのトランザクションを介するデータの共有
KR102474863B1 (ko) 사용자 단말기, 디지털 컨텐츠의 이용 권리 증서를 유통시키는 방법, 및 상기 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램
WO2021017637A1 (zh) 一种验证认证数字资产真实性的方法
US20230300191A1 (en) Connecting to the blockchain network
KR102121245B1 (ko) 복수의 블록체인망들 간의 데이터 공유 시스템 및 방법
KR102040907B1 (ko) 에스엔에스 전파를 활용한 추천인 암호화폐 자동지급 방법
MUNDHRA IMPROVEMENTS IN CHARACTERISTICS OF CRYPTOCURRENCIES: RIPPLE
KR20240007642A (ko) 최선의 체인을 결정하기 위한 헤더 클라이언트

Legal Events

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