KR102199967B1 - 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템 - Google Patents

위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템 Download PDF

Info

Publication number
KR102199967B1
KR102199967B1 KR1020180156124A KR20180156124A KR102199967B1 KR 102199967 B1 KR102199967 B1 KR 102199967B1 KR 1020180156124 A KR1020180156124 A KR 1020180156124A KR 20180156124 A KR20180156124 A KR 20180156124A KR 102199967 B1 KR102199967 B1 KR 102199967B1
Authority
KR
South Korea
Prior art keywords
target content
data
node
verification
content
Prior art date
Application number
KR1020180156124A
Other languages
English (en)
Other versions
KR20200069034A (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 KR1020180156124A priority Critical patent/KR102199967B1/ko
Publication of KR20200069034A publication Critical patent/KR20200069034A/ko
Application granted granted Critical
Publication of KR102199967B1 publication Critical patent/KR102199967B1/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

실시예들은 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 블록체인 시스템과 관련된다. 상기 네트워크는 하나 이상의 노드가 참여하는 네트워크로서, 각 노드는 네트워크 데이터를 저장하는 분산 스토리지를 포함하고, 상기 방법은: 업로드 노드에 의해, 투명성 검증 처리된 저장 데이터의 생성 요청을 서비스 노드에게 전송하는 단계; 서비스 노드에 의해, 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성하는 단계; 및 상기 투명성 검증 처리된 저장 데이터를 네트워크에 저장하는 단계를 포함한다.

Description

위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템{METHOD FOR PREVENTING FALSIFICATION DATA FROM BEING STORED IN NETWORK AND SYSTEM PERFORMING THE METHOD}
본 발명은 네트워크에 데이터를 저장하는 기술에 관한 것으로서, 보다 상세하게는 네트워크에 데이터를 저장하기 이전에 데이터의 위변조가 없음을 증명하는 투명성 검증(transparent verification) 처리 동작을 수행하여 투명성 검증 처리된 데이터를 네트워크에 저장함으로써, 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템에 관한 것이다.
블록체인(blockchain)은 피어-투-피어(peer-to-peer) 전자 장부로서, 블록들은 트랜잭션들로 구성되는 분산형 데이터 시스템으로서 구현된다. 각 트랜잭션은 블록 체인 시스템의 참여자간에 디지털 자산의 지배권 전송을 인코딩하는 데이터 구조이며 최소한 하나의 입력과 하나 이상의 출력을 포함한다. 각 블록은 이전 블록의 해시를 포함하여 해당 블록이 서로 연결되어, 처음부터 블록체인에 기록된 영구적이며 변경 불가능한 모든 트랜잭션을 생성한다.
기록된 데이터의 영구적이며 변경 불가능한 특성으로 인해, 블록체인 기술은 신용과 관련된 가상 화폐 기술분야에서 활발이 활용되고 있다. 최근에는 가상 화폐 기술분야 이외에도, 데이터 보안 분야, 데이터 저장 분야, 데이터 공증 분야에서도 블록체인을 이용한 새로운 기술을 개발하려는 시도가 활발히 이루어지고 있다.
도 1은, 종래의 일 실시예에 따른, 블록체인 네트워크의 보안 허점을 설명하기 위한 도면이다.
그러나, 블록체인 네트워크는 중요한 보안 허점이 있다. 전술한 블록체인에 기록된 데이터의 특성은 데이터 자체의 투명성을 보장하지 않는다. 현재의 블록체인 시스템은 기록되는 데이터가 조작되었는지 여부를 판단할 수 없고, 예컨대 공증을 위한 블록체인 시스템에서는, 특정 시간에 특정 사용자가 데이터를 저장했는지 여부만 확인한다.
만약 조작된 데이터가 블록체인 시스템에 기록되는 경우, 조작된 데이터는 영구적으로 변경되지 않고 블록체인 시스템 내에서 전파될 수 있다. 이러한 조작된 데이터의 입력은 블록체인 시스템의 신뢰도를 하락시킨다.
특허공개공보 제 10-2018-0089682호
본 발명의 일 측면에 따르면 블록체인 네트워크에 데이터를 저장하기 이전에 데이터의 위변조 여부를 검사하는 투명성 검증(transparent verification) 동작을 수행하여 위변조 데이터가 블록체인 네트워크에 저장되는 것을 방지하는 방법을 제공할 수 있다.
이 외에도 상기 방법을 수행하는 시스템을 제공할 수 있다.
본 발명의 일 측면에 따른 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법에 있어서, 상기 네트워크는 하나 이상의 노드가 참여하는 네트워크로서, 각 노드는 네트워크 데이터를 저장하는 분산 스토리지를 포함하고, 상기 방법은: 업로드 노드에 의해, 투명성 검증 처리된 저장 데이터의 생성 요청을 서비스 노드에게 전송하는 단계; 서비스 노드에 의해, 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성하는 단계; 및 상기 투명성 검증 처리된 저장 데이터를 네트워크에 저장하는 단계를 포함할 수 있다.
일 실시예에서, 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성하는 단계는, 상기 요청에 기초하여 타겟 컨텐츠를 생성하는 단계; 상기 타겟 컨텐츠의 메타 데이터를 생성하는 단계; 투명성 검증 처리를 위해 상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상을 암호화하는 단계; 및 상기 암호화된 데이터를 투명성 검증 처리된 저장 데이터로 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 암호화된 데이터는 상기 서비스 노드의 개인키(private key)를 사용하여 생성된 서비스 노드의 전자 서명을 갖는 데이터일 수 있다.
일 실시예에서, 상기 저장 데이터를 암호화하는 단계는, 상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상을 해시 함수에 입력하여 타겟 컨텐츠의 해시 값을 생성하는 단계; 및 상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상의 해시 값을 전자 서명으로 갖는 저장 데이터를 생성하는 단계를 포함할 수 있다.
일 실시예에서, 상기 메타 데이터는 상기 타겟 컨텐츠의 생성자, 생성 일시, 및 요청자 중 하나 이상을 포함할 수 있다.
일 실시예에서, 상기 요청은 저장 컨텐츠에 액세스하기 위한 정보 및 저장 컨텐츠의 범위에 해당되는 정보 중 하나 이상을 포함할 수 있다.
일 실시예에서, 상기 저장 데이터를 네트워크에 저장하는 단계는 업로드 노드에 의해 수행될 수 있다.
일 실시예에서, 상기 업로드 노드에 의해, 상기 네트워크에 저장하는 단계 이전에, 검증 확인 단계를 더 포함할 수 있다.
일 실시예에서, 상기 검증 확인 단계는, 상기 저장 데이터를 복호화하는 단계; 상기 타겟 컨텐츠에 대응하는 확인 컨텐츠를 생성하는 단계; 및 상기 타겟 컨텐츠와 확인 컨텐츠를 비교하는 단계를 포함할 수 있다.
일 실시예에서, 상기 비교하는 단계는, 상기 타겟 컨텐츠와 확인 컨텐츠에서 하나 이상의 데이터를 추출하는 단계; 상기 추출된 데이터의 유형별 비교 알고리즘을 적용하는 단계; 및 상기 타겟 컨텐츠와 확인 컨텐츠 간의 일치성이 소정 값 이상인 경우, 상기 타겟 컨텐츠에 대한 투명성 검증 처리를 유효하다고 결정하는 단계를 포함할 수 있다.
일 실시예에서, 상기 추출된 데이터의 유형은 텍스트, 이미지, 동영상 및 음성 중 하나 이상을 포함할 수 있다.
일 실시예에서, 상기 일치성이 소정 값 미만인 경우, 상기 업로드 노드에 의해, 상기 타겟 컨텐츠에 대한 투명성 검증 요청을 재전송하는 단계를 더 포함할 수 있다.
일 실시예에서, 상기 저장 데이터를 복호화하는 단계는, 상기 서비스 노드의 전자 서명을 갖는 투명성 검증 처리된 저장 데이터를 수신하는 단계; 수신된 저장 데이터의 적어도 일부를 해시 함수의 입력으로 사용하여 해시 값을 생성하는 단계; 상기 서비스 노드의 공개키로 상기 수신된 전자 서명을 복호화하는 단계; 및 상기 저장 데이터의 적어도 일부의 해시 값과 상기 전자 서명의 복호화 값을 비교하는 단계를 포함할 수 있다.
일 실시예에서, 상기 타겟 컨텐츠를 생성하는 단계는, 상기 서비스 노드가 타겟 컨텐츠를 저장 또는 관리하는 컨텐츠 서비스 노드인 경우, 상기 컨텐츠 서비스 노드에 의해 수행될 수 있다.
일 실시예에서, 상기 타겟 컨텐츠를 생성하는 단계는, 상기 서비스 노드가 타겟 컨텐츠를 저장 또는 관리하는 컨텐츠 서비스 노드가 아닌 특정 노드인 경우, 상기 타겟 컨텐츠를 생성하기 위해 상기 특정 노드가 상기 컨텐츠 서비스 노드의 타겟 컨텐츠에 액세스하는 단계를 포함할 수 있다.
일 실시예에서, 상기 특정 노드는 상기 네트워크의 참여자들의 적어도 과반수의 동의를 얻어 결정될 수 있다.
일 실시예에서, 상기 네트워크에는 상기 투명성 검증 처리된 저장 데이터만이 저장되는 것을 특징으로 하는 방법.
본 발명의 다른 일 측면에 따른 컴퓨터 판독가능 기록 매체는 컴퓨터에 의해 판독가능하고, 상기 컴퓨터에 의해 동작 가능한 프로그램 명령어를 저장할 수 있다. 여기서, 상기 프로그램 명령어가 상기 컴퓨터의 프로세서에 의해 실행되는 경우 상기 프로세서가 전술한 실시예들에 따른 방법을 수행할 수 있다.
본 발명의 일 측면에 따른 블록체인 시스템은 블록체인 네트워크에 데이터를 저장하기 이전에 데이터의 위변조 여부를 검사하는 투명성 검증(transparent verification) 동작을 수행할 수 있다. 그 결과, 블록체인 시스템에 저장된 데이터에 대한 투명성을 보장할 수 있다.
그 결과, 가짜 뉴스와 같은 음해성 데이터 조작의 피해를 최소화할 수 있고, 법적 효력이 있는 디지털 증거로 활용될 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명 또는 종래 기술의 실시예의 기술적 해결책을 보다 명확하게 설명하기 위해, 실시예에 대한 설명에서 필요한 도면이 아래에서 간단히 소개된다. 아래의 도면들은 본 명세서의 실시예를 설명하기 위한 목적일 뿐 한정의 목적이 아니라는 것으로 이해되어야 한다. 또한, 설명의 명료성을 위해 아래의 도면들에서 과장, 생략 등 다양한 변형이 적용된 일부 요소들이 도시될 수 있다.
도 1은, 종래의 일 실시예에 따른, 블록체인 네트워크의 보안 허점을 설명하기 위한 도면이다.
도 2는, 본 발명의 일 실시예에 따른, 블록체인 시스템의 블록도이다.
도 3은, 본 발명의 일 실시예에 따른, 블록체인 네트워크에 데이터가 저장되는 과정을 설명하기 위한 도면이다.
도 4는, 본 발명의 제1 실시예에 따른, 블록체인 네트워크(10)에 위변조 데이터가 저장되는 것을 방지하는 과정을 설명하기 위한 도면이다.
도 5는, 본 발명의 일 실시예에 따른, 타겟 컨텐츠의 암호화를 설명하기 위한 도면이다.
도 6은, 본 발명의 일 실시예에 따른, 블록체인 네트워크(10)에 저장되는 데이터를 설명하기 위한 도면이다.
도 7은, 본 발명의 일 실시예에 따른, 검증 확인 동작의 흐름도이다.
도 8은, 본 발명의 제2 실시예에 따른, 블록체인 네트워크에 위변조 데이터가 저장되는 것을 방지하는 과정을 설명하기 위한 도면이다.
여기서 사용되는 전문 용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분의 존재나 부가를 제외시키는 것은 아니다.
다르게 정의하지는 않았지만, 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 보통 사용되는 사전에 정의된 용어들은 관련기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.
본 명세서에서, 네트워크는 피어-투-피어(peer-to-peer) 전자 장부로서, 트랜잭션들로 구성되는 블록들이 연결된 블록체인을 네트워크 데이터로 갖는 분산형 데이터 시스템인 블록체인 네트워크를 포함할 수 있다. 이하, 설명의 명료성을 위해, 네트워크는 블록체인 네트워크로 지칭하여 발명을 서술한다.
본 명세서에서 "노드"는 블록체인 네트워크의 참여자로서, 서버, 개인용 컴퓨터, 스마트 폰, 단말기 등 다양한 통신 가능한 전자장비에 의해 구현될 수 있다.
이하에서, 도면을 참조하여 본 발명의 실시예들에 대하여 상세히 살펴본다.
도 2는, 본 발명의 일 실시예에 따른, 블록체인 시스템의 블록도이다.
도 2를 참조하면, 위변조 데이터가 블록체인 네트워크에 저장되는 것을 방지하는 시스템(이하, "블록체인 시스템")(1)은 서비스 노드(100), 업로드 노드(200), 다운로드 노드(300) 등을 포함한 하나 이상의 노드가 참여한 블록체인 네트워크(10)를 포함하며, 블록체인 네트워크(10)를 통해 각 노드 간에 데이터가 통신하도록 구성된다. 일부 실시예에서, 블록체인 네트워크(10)의 노드(100, 200, 300)는 각 노드에서의 동작을 수행하도록 구성된 프로세서(110, 210, 310) 및 동작의 결과(예컨대, 블록체인 데이터)를 저장하는 저장 소자(130, 230, 330)를 포함할 수 있다.
본 명세서에서, 블록체인 시스템(1)은 데이터 공증, 데이터 보안 등과 관련된 다양한 서비스를 제공하는데 활용될 수 있다. 이하, 설명의 명료성을 위해 공증 서비스를 제공하는 블록체인 시스템(1)을 통해 본 발명을 서술하지만, 본 발명에 따른 실시예들은 공증 서비스에 제한되지 않는 것이 통상의 기술자에게 명백할 것이다.
실시예들에 따른 블록체인 시스템(1)은 전적으로 하드웨어이거나, 전적으로 소프트웨어이거나, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면을 가질 수 있다. 예컨대, 블록체인 시스템(1) 및/또는 노드는 데이터 처리 능력이 구비된 하드웨어 및 이를 구동시키기 위한 운용 소프트웨어를 통칭할 수 있다. 본 명세서에서 "부(unit)", "모듈(module)", "장치", 또는 "시스템" 등의 용어는 하드웨어 및 해당 하드웨어에 의해 구동되는 소프트웨어의 조합을 지칭하는 것으로 의도된다. 예를 들어, 하드웨어는 CPU(Central Processing Unit), GPU(Graphic Processing Unit) 또는 다른 프로세서(processor)를 포함하는 데이터 처리 가능한 컴퓨팅 장치일 수 있다. 또한, 소프트웨어는 실행중인 프로세스, 객체(object), 실행파일(executable), 실행 스레드(thread of execution), 프로그램(program) 등을 지칭할 수 있다.
여기서, 블록체인 네트워크(10)는 상기 블록체인을 분산 원장(distyributed ledger)으로 이용하고자 하는 노드로 구성된 네트워크로서, 상기 분산 원장은 트랜잭션 정보를 기록한 원장을 특정 기관의 중앙 서버가 아닌, peer-to-peer 네트워크에 분산하여 구성원에 의해 공동으로 기록되고 관리된다. 블록체인 네트워크(10)의 각 구성원(즉, 노드)은 합의(consensus) 프로토콜을 사용하여 원장(ledger) 내용(일반적으로 트랜잭션으로 지칭됨)에 대해 동의 과정을 거친다. 블록체인 네트워크(10)는 모든 노드에서 합의된 트랜잭션을 시간 순서대로 기록하며, 한번 블록체인에 저장된 트랜잭션의 기록은 변경할 수 없다. 또한, 블록체인 네트워크(10)는 트랜잭션의 무결성을 보장하기 위해 PKI 알고리즘에 기반한 전자 서명(digital signature)을 사용한다.
여기서, 블록체인은 다수의 트랜잭션이 일정 시간 마다 그룹화되어 하나의 블록(block)을 생성하고, 기존에 생성된 블록에 상기 블록이 체인(chain)처럼 계속적으로 연결되는 데이터 구조를 나타낸다. 상기 블록들에는 다양한 정보들이 포함될 수 있다. 일부 실시예들에서, 상기 블록들은 해당 블록의 블록 해쉬(Hash) 값, 논스(Nonce) 값, 이전 블록의 블록 해쉬값 등을 포함할 수도 있다. 상기 해쉬값과 논스값은 사전 설정된 해쉬 함수(hash function)를 이용하여 구한 값들이다. 또한, 상기 시스템(1)을 실행하는 소프트웨어에 대한 정보, 블록 생성 시각, 노드(100, 200, 300)에 연관된 정보(예컨대, 노드(100)의 IP 주소 등) 등을 포함할 수도 있다.
이러한 블록체인은 블록체인 네트워크(10)에 포함된 각 노드의 블록체인 분산 스토리지(이하, "분산 스토리지")(미도시)에 저장된다. 각 노드의 분산 스토리지는 블록체인 네트워크에 의해 생성된 블록체인 결과를 각 노드에 분산 저장하기 위한 소정의 저장 공간으로서, 블록체인 네트워크(10)의 전체 분산 스토리지를 구성하는 스토리지 컴포넌트를 의미한다. 블록체인에 저장되는 데이터는 블록체인 네트워크(10)를 통해 다른 노드들에 전파되며, 데이터의 전파 결과는 다시 상기 다른 노드들에 저장된다. 모든 노드들에게 전파된 결과, 각 노드의 분산 스토리지에 저장된 블록체인은 실질적으로 동일하며, 전파된 데이터의 유효성을 검증하는데 충분하다. 따라서, 본 명세서에서는 특별한 한정이 없는 한 블록체인 네트워크(10)에 데이터를 저장하는 것은 상기 데이터가 블록체인 네트워크(10)를 통해 전파되어 각 노드의 분산 스토리지에 데이터를 저장하는 것을 나타낸다.
블록체인 시스템(1)은 서비스 노드(100)가 데이터를 투명성 검증 처리한 이후에 블록체인 네트워크(10)에 상기 처리된 데이터를 저장하도록 구성된다. 여기서, 블록체인 네트워크(10)에 데이터를 저장하는 것은 각 노드(100, 200, 300)의 분산 스토리지에 데이터를 저장하는 것을 지칭한다.
도 3은, 본 발명의 일 실시예에 따른, 블록체인 네트워크에 데이터가 저장되는 과정을 설명하기 위한 도면이다.
도 3을 참조하면, 블록체인 시스템(1)에 의해 위변조 데이터가 블록체인 네트워크(10)에 저장되는 것을 방지하는 방법은: 블록체인 네트워크에 타겟 컨텐츠를 저장하기 위해 업로드 노드(200)가 투명성 검증 처리된 저장 데이터의 생성 요청을 서비스 노드에게 전송하는 단계(S110); 서비스 노드(100)가 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성하는 단계(S120); 상기 투명성 검증 처리된 저장 데이터를 블록체인 네트워크(10)에 저장하는 단계(S150)를 포함한다. 일부 실시예에서, 상기 방법은 다운로드 노드(300)가 저장 데이터 제공 요청을 블록체인 네트워크(10)에 전송하고, 요청된 저장 데이터를 수신하는 단계(S160)를 더 포함할 수 있다.
단계(S110)에서, 업로드 노드(200)는 서비스 노드(100)에 저장 데이터의 생성 요청을 전송한다.
업로드 노드(200)는 블록체인 네트워크(10)에 컨텐츠를 저장하려고 하는 블록체인 네트워크(10)의 참여자 노드로서, 블록체인 네트워크(10)의 다른 참여자들에게 컨텐츠에 포함된 정보에 위변조가 없다는 신뢰를 주지 못하는 구성원을 지칭한다. 일 실시예에서, 업로드 노드(200)는 블록체인 시스템(1)의 특별한 권한이 없는 일반 사용자의 전자 장치일 수 있다.
반면, 서비스 노드(100)는 블록체인 네트워크(10)의 참여자들에 대하여 서비스 노드(100)에 의한 투명성 검증 처리가 수행된 데이터에 대해서는 위변조가 없다는 신뢰를 가지는, 즉 공증 신뢰성이 있는 구성요소이다. 블록체인 시스템(1)은 서비스 노드(100)에 의해 투명성 검증 처리된 데이터가 블록체인 네트워크(10)에 저장된다.
투명성 검증 처리 동작은 업로드 노드(200) 이외의 공증 신뢰성이 있는 노드(예컨대, 서비스 노드(100))에서 수행되는 동작으로서, 신뢰성 있는 노드에 의한 위변조가 없는 타겟 컨텐츠를 생성하는 동작을 포함한다. 타겟 컨텐츠는 블록체인 네트워크(10)의 다른 노드들에게 전파될 컨텐츠이다.
일 실시예에서, 서비스 노드(100)는 온라인을 통해 컨텐츠 서비스를 제공하는 제공자에 의해 운영되는 노드(이하, "컨텐츠 서비스 노드")일 수 있다. 다른 일 실시예에서, 서비스 노드(100)는 전문적으로 공증 서비스를 제공하는 제공자에 의해 운영되는 노드(이하, "공증 서비스 노드") 등을 포함한다.
여기서, 컨텐츠 서비스 제공자는 SNS 서비스 제공자(예컨대, 카카오 톡, 페이스 북, 네이버 등), 동영상 서비스 제공자(예컨대, 유튜브, 넷플릭스 등), 미디어 서비스 제공자(예컨대, 뉴스, 방송 기관 등), 포탈 서비스 제공자(예컨대, 다음, 네이버, 구글 등)를 포함한다. 컨텐츠 서비스 제공자는 컨텐츠를 생성한 제작자일 수 있거나, 또는 다른 외부 구성요소에 의해 제작된 컨텐츠를 저장하고, 편집 권한이 있는 자에 의한 편집은 업데이트하되, 비권한자에 의한 컨텐츠의 위변조가 없도록 컨텐츠를 관리하며, 서비스에 연관된 제3자(예컨대, 서비스 접속자 등)에게 해당 컨텐츠를 제공한다. 일 실시예에서, 컨텐츠 서비스 노드(100)는 타겟 컨텐츠를 저장 및/또는 관리하도록 구성된 구성요소일 수 있다.
여기서, 전문 공증 서비스 제공자는 상기 컨텐츠 제공자와 별개의 구성요소로서, 블록체인 네트워크(10)의 구축 이전부터 공증 서비스를 제공해온 경험이 있으며, 이러한 경험에 의해 공증 서비스에 대한 시장의 신뢰성을 확보한 서비스 제공자, 또는 이러한 공증 서비스 제공자가 가입한 협회 등을 포함한다. 예를 들어, 상기 전문 공증 서비스 제공자는 공증 업무 등록 또는 변호사 업무 등록을 한 사용자, 및/또는 전자공증시스템을 서비스하는 법무부를 포함한다. 이 경우, 공증 서비스 노드는 상기 등록 사용자 및/또는 법무부에 의해 운영되는 노드를 포함한다.
일 실시예에서, 공증 서비스 노드(100)는 디지털 컨텐츠에 대해 공증 서비스를 제공하도록 구성된 구성요소로서, 상기 블록체인 네트워크의 참여자들의 적어도 과반수의 동의를 얻어 결정될 수 있다.
서비스 노드(100)는 타겟 데이터를 저장 데이터로 생성하고, 저장 데이터에 위변조가 없다는 투명성을 제공할 수 있는 암호화 처리를 수행한다. 이에 대해서는 아래에서 보다 상세하게 서술한다.
이와 같이, 블록체인 시스템(1)에서는 서비스 노드(100)에 의해 투명성이 검증된 데이터가 블록체인 네트워크(10)에 저장되므로(S150), 블록체인 네트워크(10)에 저장된 데이터(예컨대, 타겟 컨텐츠)에 대해서는 높은 신뢰성이 보장된다.
위변조 데이터가 방지되는 과정에 대해서는 아래의 도 4 및 도 8을 참조하여 보다 상세하게 서술한다.
제1 실시예
도 4는, 본 발명의 제1 실시예에 따른, 블록체인 네트워크(10)에 위변조 데이터가 저장되는 것을 방지하는 과정을 설명하기 위한 도면이다.
도 4를 참조하면, 블록체인 시스템(1)은 서비스 노드(100), 업로드 노드(200) 및 다운로드 노드(300)를 포함한다. 여기서, 블록체인 시스템(1)의 서비스 노드(100)는 컨텐츠 서비스 노드이다.
단계(S110)에서, 타겟 컨텐츠를 블록체인 네트워크(10)에 저장하고자 하는 업로드 노드(200)는 타겟 컨텐츠와 관련된 저장 데이터의 생성 요청을 서비스 노드인 컨텐츠 서비스 노드(100)에 전송한다. 상기 저장 데이터의 생성 요청은 저장 데이터에 대한 투명성 검증 처리 요청을 포함한다.
단계(S120)에서, 서비스 노드로서 컨텐츠 서비스 노드(100)는 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성한다.
일 실시예에서, 저장 데이터의 생성 요청은 타겟 컨텐츠를 생성하기 위한 타겟 컨텐츠 관련 정보를 포함한다. 일 실시예에서, 타겟 컨텐츠 관련 정보는 타겟 컨텐츠에 액세스하기 위한 정보(예컨대, URL), 타겟 컨텐츠를 나타내는 정보(예컨대, 타겟 컨텐츠의 범위에 해당되는 타임 라인, 식별정보) 등을 포함한다.
예를 들어, 타겟 컨텐츠가 제1 사용자와 제2 사용자가 메신저 프로그램 상에서 통신한 제1 시간부터 제2 시간 상의 메시지인 경우, 타겟 컨텐츠를 나타내는 정보는 제1 시간부터 제2 시간에 해당되는 타임라인을 포함할 수 있다.
일 실시예에서, 서비스 노드(100)가 컨텐츠 제공 노드인 경우, 투명성 검증 처리 동작은 타겟 컨텐츠를 생성하는 단계(S121), 및 상기 타겟 컨텐츠를 검증을 위한 암호화 처리하는 단계(S123)를 포함한다.
서비스 노드(100)는 상기 타겟 컨텐츠 관련 정보에 기초하여 타겟 컨텐츠를 생성한다(S121). 서비스 노드(100)는 블록체인 네트워크(10)의 참여자에게 위변조에 대하여 신뢰를 가지고 있으므로, 서비스 노드(100)에 의해 생성된 타겟 컨텐츠는 적어도 서비스 노드(100)에 의한 위변조가 없다.
일 실시예에서, 서비스 노드(100)는 상기 타겟 컨텐츠에 대한 메타 데이터를 더 생성할 수 있다. 상기 메타 데이터는 타겟 컨텐츠의 진정성과 원본성을 검증하는데 활용될 수 있는 데이터이다. 일 실시예에서, 타겟 컨텐츠에 대한 메타 데이터는 타겟 컨텐츠의 생성자, 생성 일시, 요청자, 컨텐츠 제작 기기(예컨대, 업로드 노드(200)의 기기) 등을 포함한다. 예를 들어, 서비스 노드(100)는 타겟 컨텐츠로 스냅샷 파일을 생성한 뒤, 생성된 스냅샷 파일에 메타 데이터를 기록할 수 있다.
일 실시예에서, 상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상은 저장 데이터로서, 검증을 위한 암호화 처리될 수 있다(S123). 상기 검증을 위한 암호화 처리는 블록체인 저장용 데이터를 블록체인에 저장하는 과정의 유효성을 설명하는 것으로서, 상기 실시예에서, 검증을 위한 암호화 처리는 PKI(public key infrastructure) 기반 전자 서명 처리를 포함한다.
도 5는, 본 발명의 일 실시예에 따른, 타겟 컨텐츠의 암호화를 설명하기 위한 도면이다.
도 5를 참조하면, 서비스 노드(100)는 블록체인 저장용 데이터에 기초하여 PKI(public key infrastructure) 기반 전자 서명(digital signature)을 추가로 생성하여 검증을 위한 암호화 처리를 수행할 수 있다.
공개키 방식(Public Key)은 암호학적으로 연관된 두 개의 키를 만들어서 하나는 자기가 안전하게 보관하고 다른 하나는 상대방에게 공개하는 방식이다. 본인만 갖고 있는 키를 개인키(Private Key)라고 하며 상대방에게 공개하는 키는 공개키(Public Key)라고 지칭한다. 암호화하는 키와 복호화하는 키가 다르므로 공개키 방식 암호화는 비대칭키(Asymmetric Key) 방식 암호화에 해당된다.
공개키 알고리즘은 RSA, Elgamal 등을 포함한다. 또한, 공개키 알고리즘은 전자 서명에 사용하는 DSA(Digital Signature Algorithm), KCDSA 등을 포함할 수도 있다.
일 실시예에서, 상기 전자 서명은 블록체인 저장용 데이터에 해쉬 함수를 적용하여 블록체인 저장용 데이터의 해쉬 값을 산출한 후, 블록체인 저장용 데이터의 해쉬 값에 서비스 노드(100)의 개인키를 적용하여 노드(100)의 블록체인 저장용 데이터에 대한 전자 서명을 생성한다.
예를 들어, 전자 서명할 대상의 내용을 해시 함수의 입력으로 사용하여 해시 값을 생성한다. 해시 값을 암호화하기 위해 미리 갖고 있는 자신의 개인키를 사용한다. 개인키에 의해 암호화된 해시 값이 대상의 전자 서명이 된다.
상기 해쉬 함수는 임의의 길이를 갖는 메시지를 입력 받아 고정된 길이의 해쉬 값을 출력하는 함수이다. 해쉬 함수는 동일한 입력에 대해서는 항상 동일한 출력이 나오는 특징을 가진다. 상기 특징으로 인해, 해쉬 함수는 입력 메시지에 대한 변경할 수 없는 증거 값을 출력할 수 있다. 이로 인해, 서비스 노드(100)에 의해 기밀을 위한 암호화 처리된 저장 데이터는 위변조가 없는 투명성이 검증되게 된다.
블록체인 시스템(1)은 서비스 노드(100)에 의한 암호화 처리 이후, 투명성 검증 처리된 저장 데이터를 블록체인 네트워크(10)에 저장할 수 있다(S150).
일 실시예에서, 서비스 노드(10)에 의해 투명성 검증 처리된 저장 데이터는 업로드 노드(200)에 의해 블록체인 네트워크(10)에 저장될 수 있다.
다시 도 4를 참조하면, 단계(S120) 이후, 서비스 노드(100)는 투명성 검증 처리된 저장 데이터(예컨대, 타겟 컨텐츠, 메타 데이터 및 이들의 조합)를 포함하는 투명성 검증 처리에 대한 응답을 생성하고, 상기 응답을 업로드 노드(200)에 전송한다.
업로드 노드(200)는 상기 응답에 포함된 저장 데이터를 블록체인 네트워크(10)에 저장한다(S150). 일부 실시예에서, 블록체인 네트워크(10)에 저장되는 저장 데이터는 업로드 노드(200)의 개인키에 의한 전자 서명을 더 갖도록 구성될 수 있다.
도 6은, 본 발명의 일 실시예에 따른, 블록체인 네트워크(10)에 저장되는 데이터를 설명하기 위한 도면이다.
도 6을 참조하면, 투명성 검증 처리된 저장 데이터는 타겟 컨텐츠 및 메타 데이터로서, 블록체인 네트워크(10)에 참여한 다른 노드에 전파되어 상기 블록체인 네트워크(10)에 저장된다. 이와 같이, 블록체인 네트워크(10)에 저장되는 데이터는 컨텐츠 서비스 노드(100)의 전자 서명의 전자 서명을 가지므로, 업로드 노드(200)에 의해 위변조되지 않는 높은 투명성을 가진다.
이와 같이, 블록체인 시스템(1)은 디지털 증거 전체(예컨대, 컨텐츠 파일과 메타 데이터)를 블록체인 네트워크(10)에 저장하도록 구성되나, 이에 제한되지 않는다.
예를 들어, 블록체인 시스템(1)은 메타 데이터만 저장하고, 나머지 데이터(예컨대, 타겟 컨텐츠)는 외부 스토리지(들)에 저장 할 수 있으며, 혹은 그 중간 형태도 가능하도록 구성될 수도 있다. 단, 외부 스토리지(클라우드 등)에 저장 시 타겟 컨텐츠의 해시 값을 메타 데이터에 기록함으로써 자료의 무결성 검증이 가능하도록 구성된다.
추가적으로, 업로드 노드(200)는 블록체인 네트워크(10)에 저장 데이터를 저장하기 이전에, 검증 확인 동작을 더 수행할 수 있다(S140).
증거를 기록하려는 사용자의 요청으로, 제 3자(즉, 서비스 노드(100))에 의해 생성된 타겟 컨텐츠(예컨대, 스크린 캡쳐 화면 등)은 사용자가 가지고 있는 기기에서 보여지는 것과 상이 할 수 있다. 서비스 노드(100)와 업로드 노드(200) 간에 있어서, 화면 크기, 해상도, 운영체제, 웹 브라우저, PC/모바일 앱 버전, 코덱 등의 차이로 인해 발생 가능하기 때문이다.
이로 인하여, 생성된 저장 데이터에 대한 검증 확인 동작이 요구된다.
도 7은, 본 발명의 일 실시예에 따른, 검증 확인 동작의 흐름도이다.
도 7을 참조하면, 검증 확인 동작을 위해, 업로드 노드(200)는 검증을 위한 암호화 처리된 저장 데이터를 복호화한다(S141). 업로드 노드(200)는 단계(S130)에서 서비스 노드의 전자 서명을 갖는 투명성 검증 처리된 저장 데이터를 수신한다. 수신된 저장 데이터(예컨대, 타겟 컨텐츠 파일)가 서비스 노드(100)로부터 온전히 도착한 데이터인지 확인하기 위해 업로드 노드(200)는 전송 받은 저장 데이터의 적어도 일부(예컨대, 타겟 컨텐츠 파일)를 해시 함수의 입력으로 사용하여 해시 값(h1)을 생성한다. 수신자는 전송 받은 전자 서명을 서비스 노드(100)의 공개키로 복호화하여 복호화 결과 값(h2)를 생성한다. 복호화된 결과 값(h2)이 해시 값(h1)과 동일하면, 전송 받은 데이터는 서비스 노드(100)가 서명하여 보낸 것이며, 동시에 데이터에 포함된 정보에 위변조가 없다는 것을 나타낸다.
업로드 노드(200)는 타겟 데이터에 대응하는 확인 컨텐츠를 생성한다. 서비스 노드(100)에 저장되는 컨텐츠 중 적어도 일부는 업로드 노드(200)의 사용자에 의해 입력 및/또는 제작되어 서비스 노드(100)에 전송된 것이므로, 업로드 노드(200) 또한 타겟 컨텐츠에 대응하는 확인 컨텐츠를 생성할 수 있다(S142). 예를 들어, 타겟 컨텐츠가 메신저 프로그램 상의 메시지를 포함하는 경우, 업로드 노드(200)는 업로드 노드(200)에 설치된 상기 메신저 프로그램을 통해 확인 컨텐츠를 생성할 수 있다.
그 후, 업로드 노드(200)는 업로드 노드(200)가 생성한 확인 컨텐츠와 서비스 노드(100)가 생성한 타겟 컨텐츠를 비교한다(S143).
일 실시예에서, 업로드 노드(200)는 상기 타겟 컨텐츠와 확인 컨텐츠에서 하나 이상의 데이터를 추출한다. 상기 추출된 데이터의 유형은 텍스트, 이미지, 동영상, 음성 등일 수 있으나, 이에 제한되진 않는다.
그 후, 상기 추출된 데이터의 유형별 비교 알고리즘을 적용한다.
예를 들어, 추출된 데이터의 유형이 텍스트인 경우, 비교 알고리즘은 Jaccard distance, Cosine distance, Euclidean distance, 및 Relaxed Word Mover's Distance 중 하나 이상이 적용될 수 있다.
예를 들어, 추출된 데이터의 유형이 이미지인 경우, 비교 알고리즘은 Key point matching, Histogram method, Hash code/fingerprint, Higher-order local autocorrelation, Harris Corner Detection Algorithm, 및 Watershed 중 하나 이상이 적용될 수 있다.
예를 들어, 추출된 데이터의 유형이 동영상인 경우, 비교 알고리즘은 Spectral similarity kernel, Cumulative Similarity Measurement, PSNR Compare, Correlation images 중 하나 이상이 적용될 수 있다.
업로드 노드(200)는 상기 타겟 컨텐츠와 확인 컨텐츠 간의 일치성이 소정 값 이상인 경우, 상기 타겟 컨텐츠에 대한 투명성 검증 처리를 유효하다고 결정한다.
전술한 검증 확인 동작은 타겟 컨텐츠 및/또는 확인 컨텐츠에 대하여 전체를 한번에 비교하는 방식으로 수행되거나, 또는 여러 부분으로 분할하여 비교 알고리즘을 반복 수행하는 방식으로 수행될 수 있다.
비교 결과 타겟 컨텐츠에 대한 투명성 검증 처리가 유효하다고 결정한 경우, 업로드 노드(200)는 서비스 노드(100)로부터 수신한 투명성 검증 처리된 저장 데이터를 블록체인 네트워크(10)에 저장한다(S150).
반면, 비교 결과 타겟 컨텐츠에 대한 투명성 검증 처리가 유효하지 않다고 결정한 경우, 업로드 노드(200)는 투명성 검증 처리가 유효한 저장 데이터를 수신하기 위해 서비스 노드(100)에 투명성 검증 처리 요청을 다시 전송한다(S110).
다른 일 실시예에서, 서비스 노드(100)에 의해 투명성 검증 처리된 저장 데이터는 서비스 노드(100)가 블록체인 네트워크(10)의 다른 노드에 전파함으로써 블록체인 네트워크(10)에 저장될 수 있다. 이 경우, 업로드 노드(200)에서의 검증 확인 동작(S140)은 생략될 수 있다.
전술한 과정(S110 내지 S150)에 의해 블록체인 네트워크(10)에는 서비스 노드(100)의 전자 서명을 가짐으로써 투명성이 검증된 저장 데이터가 저장된다. 그 결과, 사용자는 블록체인 네트워크(10)의 데이터에 대하여 높은 신뢰도를 가질 수 있고, 나아가 법정 증거 자료로 활용될 수 있다.
다시 도 4를 참조하면, 블록체인 시스템(1)은 다운로드 노드(300)에게 저장 데이터를 제공할 수 있다(S160). 다운로드 노드(300)는 저장 데이터를 사용하고자 하는 노드를 지칭한다. 예를 들어, 타겟 컨텐츠가 증거로서 활용되는 경우, 다운로드 노드(300)는 경찰, 법원과 같은 사법 기관, 또는 동사무소 등과 같은 공공 기관과 관련된 노드(예컨대, 사법 기관에 의해 운영되는 노드, 또는 사법 기관에 의한 감독을 받는 노드)를 포함한다.
이 경우, 다운로드 노드(300)는 블록체인 네트워크(10)에 저장 데이터의 제공을 요청한다(S161). 예를 들어, 사법 기관과 관련된 노드는 블록체인 네트워크(10)에 참여하고 저장 데이터를 저장한 적어도 하나의 노드에 상기 저장 데이터의 제공을 요청한다.
상기 적어도 하나의 노드는 요청에 응답하여, 요청된 저장 데이터를 검색하고(S162), 및 검색된 저장 데이터를 사법 기관에게 제공한다(S163). 상기 요청을 수신한 노드는 전자 서명 및 저장 데이터를 사법 기관과 관련된 노드에 제공한다.
블록체인 네트워크(10)에 저장된 타겟 컨텐츠는 단계(S123)에서 암호화된 데이터이므로, 다운로드 노드(300)는 암호화된 타겟 컨텐츠를 복호화하는 작업을 더 수행한다.
일 실시예에서, 다운로드 노드(300)는 서비스 노드(100)에게 공개키의 제공을 요청하고(S164), 서비스 노드(100)는 상기 공개키의 제공 요청에 응답하여 자신의 공개키를 제공한다(S165).
다운로드 노드(300)는 공개키를 이용하여 타겟 컨텐츠를 복호화한다(S166). 단계(S166)의 복호화 과정은 단계(S141)의 복호화 과정과 유사하므로, 자세한 설명은 생략한다.
일부 실시예에서, 저장 데이터가 업로드 노드(200)의 개인키에 의한 전자 서명을 더 갖는 경우, 다운로드 노드(300)는 업로드 노드(200)의 공개키에 대한 제공 요청을 업로드 노드(200)에 전송하고, 이를 수신한 뒤, 업로드 노드(200)의 전자 서명을 복호화하는 동작을 더 수행할 수 있다.
상기 블록체인 시스템(1) 및/또는 노드들이 본 명세서에 서술되지 않은 다른 구성요소를 포함할 수도 있다는 것이 통상의 기술자에게 명백할 것이다. 예를 들어, 상기 블록체인 시스템(1)은 네트워크 인터페이스, 데이터 엔트리를 위한 입력 장치, 및 디스플레이, 인쇄 또는 다른 데이터 표시를 위한 출력 장치를 포함하는, 본 명세서에 서술된 동작에 필요한 다른 하드웨어 요소를 포함할 수도 있다.
제2 실시예
도 8은, 본 발명의 제2 실시예에 따른, 블록체인 네트워크에 위변조 데이터가 저장되는 것을 방지하는 과정을 설명하기 위한 도면이다.
본 발명의 제2 실시예에 따른 블록체인 네트워크에 위변조 데이터가 저장되는 것을 방지하는 방법은 도 3의 제1 실시예에 따른 블록체인 네트워크에 위변조 데이터가 저장되는 것을 방지하는 방법과 상당부분 유사하므로, 차이점을 위주로 설명한다.
도 8을 참조하면, 블록체인 시스템(1)은 서비스 노드(100), 컨텐츠 서비스 노드(120), 업로드 노드(200) 및 다운로드 노드(300)를 포함한다. 여기서, 블록체인 시스템(1)의 서비스 노드(100)는 공증 서비스 노드이다.
단계(S210)에서, 타겟 컨텐츠를 블록체인 네트워크(10)에 저장하고자 하는 업로드 노드(200)는 투명성 검증 처리된 저장 데이터의 생성 요청을 서비스 노드인 공증 서비스 노드(100)에 전송한다.
단계(S220)에서, 서비스 노드로서 공증 서비스 노드(100)는 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성한다.
일 실시예에서, 서비스 노드(100)가 공증 서비스 노드인 경우, 투명성 검증 처리된 저장 데이터의 생성 동작(S220)은 타겟 컨텐츠를 생성하기 위해 컨텐츠 제공 노드(120)의 컨텐츠에 액세스하는 단계(S221), 및 타겟 컨텐츠를 암호화하는 단계(S223)를 포함한다.
서비스 노드(100)는 URI로 접근 가능한 컨텐츠에 있어서 업로드 노드(100)의 투명성 검증 처리 요청에 응답하여 블록체인 네트워크(10)의 참여자들이 신뢰할 수 있는 제 3자인 서비스 노드(100)가 대신 타겟 컨텐츠를 수집한다. 이 경우, 단계(S210)의 요청은 상기 타겟 컨텐츠에 접근 가능한 정보(에컨대, URL 정보)를 포함한다.
예를 들어, 타겟 컨텐츠가 웹페이지의 화면인 경우, 단계(S210)의 요청을 수신한 서비스 노드(100)는 해당 웹페이지에 액세스한 뒤, 스냅샷 파일을 생성한다(S221).
일 실시예에서, 서비스 노드(100)는 생성된 타겟 컨텐츠에 대한 메타데이터(예: 생성자, 생성 일시, 요청자, 웹브라우저 명 등)를 더 생성할 수 있다. 예를 들어, 서비스 노드(100)는 생성된 스냅샷 파일에 메타 데이터를 기록할 수 있다. 이러한 메타 데이터를 이용하면 파일의 진정성과 원본성이 입증될 수 있다.
단계(S223)에서, 공증 서비스 노드(100)는 타겟 컨텐츠를 기밀을 위한 암호화 처리한다.
예를 들어, 공증 서비스 노드(100)는 스냅샷 파일의 해시 값을 생성한 뒤, 공증 서비스 노드(100)의 개인키로 스냅샷 파일의 해시 값을 전자 서명으로 생성하여 스냅샷 파일을 기밀을 위한 암호화 처리한다.
이와 같이, 데이터(즉, 타겟 컨텐츠)는 블록체인에 저장되기 이전에 공증 서비스 노드(100)에 의해 투명성 검증 처리됨으로써, 블록체인에 데이터를 저장 시 전자 서명, 또는 전자 서명과 메타데이터가 기록된다. 이로 인해, 블록체인 네트워크(10)에 저장된 컨텐츠의 투명성이 입증된다.
단계(S230 내지 S260)는 제1 실시예의 단계(S130 내지 S160)와 유사므로, 자세한 설명은 생략한다.
이상에서 설명한 실시예들에 따른 블록체인 시스템(1) 및 블록체인 네트워크에 위변조 데이터가 저장되는 것을 방지하는 방법에 의한 동작은 적어도 부분적으로 컴퓨터 프로그램으로 구현되어, 컴퓨터로 읽을 수 있는 기록매체에 기록될 수 있다. 예를 들어, 프로그램 코드를 포함하는 컴퓨터-판독가능 매체로 구성되는 프로그램 제품과 함께 구현되고, 이는 기술된 임의의 또는 모든 단계, 동작, 또는 과정을 수행하기 위한 프로세서에 의해 실행될 수 있다.
상기 컴퓨터는 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북, 스마트 폰, 또는 이와 유사한 것과 같은 컴퓨팅 장치일 수도 있고 통합될 수도 있는 임의의 장치일 수 있다. 컴퓨터는 하나 이상의 대체적이고 특별한 목적의 프로세서, 메모리, 저장공간, 및 네트워킹 구성요소(무선 또는 유선 중 어느 하나)를 가지는 장치다. 상기 컴퓨터는 예를 들어, 마이크로소프트의 윈도우와 호환되는 운영 체제, 애플 OS X 또는 iOS, 리눅스 배포판(Linux distribution), 또는 구글의 안드로이드 OS와 같은 운영체제(operating system)를 실행할 수 있다.
상기 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록신원확인 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장신원확인 장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다. 또한, 본 실시예를 구현하기 위한 기능적인 프로그램, 코드 및 코드 세그먼트(segment)들은 본 실시예가 속하는 기술 분야의 통상의 기술자에 의해 용이하게 이해될 수 있을 것이다.
이상에서 살펴본 본 발명은 도면에 도시된 실시예들을 참고로 하여 설명하였으나 이는 예시적인 것에 불과하며 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 실시예의 변형이 가능하다는 점을 이해할 것이다. 그러나, 이와 같은 변형은 본 발명의 기술적 보호범위 내에 있다고 보아야 한다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.

Claims (18)

  1. 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법에 있어서, 상기 네트워크는 하나 이상의 노드가 참여하는 네트워크로서, 각 노드는 네트워크 데이터를 저장하는 분산 스토리지를 포함하고, 상기 방법은:
    업로드 노드에 의해, 투명성 검증 처리된 저장 데이터의 생성 요청을 서비스 노드에게 전송하는 단계;
    서비스 노드에 의해, 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성하는 단계; 및
    상기 업로드 노드에 의해, 상기 투명성 검증 처리된 저장 데이터의 검증을 확인하는 단계; 및
    상기 업로드 노드에 의해, 상기 투명성 검증 처리된 저장 데이터를 네트워크에 저장하는 단계를 포함하되,
    상기 검증 확인 단계는,
    상기 투명성 검증 처리된 저장 데이터를 복호화하는 단계;
    상기 요청에 기초한 타겟 컨텐츠에 대응하는 확인 컨텐츠를 생성하는 단계; 및
    상기 타겟 컨텐츠와 확인 컨텐츠를 비교하는 단계를 포함하고,
    상기 타겟 컨텐츠와 확인 컨텐츠를 비교하는 단계는,
    상기 타겟 컨텐츠와 확인 컨텐츠에서 하나 이상의 데이터를 추출하는 단계;
    상기 추출된 데이터의 유형별 비교 알고리즘을 적용하는 단계; 및
    상기 타겟 컨텐츠와 확인 컨텐츠 간의 일치성이 소정 값 이상인 경우, 상기 타겟 컨텐츠에 대한 투명성 검증 처리를 유효하다고 결정하는 단계를 포함하는 방법.
  2. 제1항에 있어서, 상기 요청에 응답하여 투명성 검증 처리된 저장 데이터를 생성하는 단계는,
    상기 요청에 기초하여 타겟 컨텐츠를 생성하는 단계;
    상기 타겟 컨텐츠의 메타 데이터를 생성하는 단계;
    투명성 검증 처리를 위해 상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상을 암호화하는 단계; 및
    상기 암호화된 데이터를 투명성 검증 처리된 저장 데이터로 생성하는 단계를 포함하는 방법.
  3. 제2항에 있어서,
    상기 암호화된 데이터는 상기 서비스 노드의 개인키(private key)를 사용하여 생성된 서비스 노드의 전자 서명을 갖는 데이터인 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상을 암호화하는 단계는,
    상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상을 해시 함수에 입력하여 타겟 컨텐츠의 해시 값을 생성하는 단계; 및
    상기 타겟 컨텐츠, 메타 데이터 및 이들의 조합 중 하나 이상의 해시 값을 전자 서명으로 갖는 저장 데이터를 생성하는 단계를 포함하는 방법.
  5. 제2항에 있어서,
    상기 메타 데이터는 상기 타겟 컨텐츠의 생성자, 생성 일시, 및 요청자 중 하나 이상을 포함하는 것을 특징으로 하는 방법.
  6. 제2항에 있어서,
    상기 요청은 상기 타겟 컨텐츠에 액세스하기 위한 정보 및 저장 컨텐츠의 범위에 해당되는 정보 중 하나 이상을 포함하는 것을 특징으로 하는 방법.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 제1항에 있어서,
    상기 추출된 데이터의 유형은 텍스트, 이미지, 동영상 및 음성 중 하나 이상을 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서,
    상기 일치성이 소정 값 미만인 경우, 상기 업로드 노드에 의해, 상기 타겟 컨텐츠에 대한 투명성 검증 요청을 재전송하는 단계를 더 포함하는 방법.
  13. 제1항에 있어서, 상기 저장 데이터를 복호화하는 단계는,
    상기 서비스 노드의 전자 서명을 갖는 투명성 검증 처리된 저장 데이터를 수신하는 단계;
    수신된 저장 데이터의 적어도 일부를 해시 함수의 입력으로 사용하여 해시 값을 생성하는 단계;
    상기 서비스 노드의 공개키로 상기 수신된 전자 서명을 복호화하는 단계; 및
    상기 저장 데이터의 적어도 일부의 해시 값과 상기 전자 서명의 복호화 값을 비교하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제2항에 있어서, 상기 타겟 컨텐츠를 생성하는 단계는,
    상기 서비스 노드가 타겟 컨텐츠를 저장 또는 관리하는 컨텐츠 서비스 노드인 경우, 상기 컨텐츠 서비스 노드에 의해 수행되는 것을 특징으로 하는 방법.
  15. 제2항에 있어서, 상기 타겟 컨텐츠를 생성하는 단계는,
    상기 서비스 노드가 타겟 컨텐츠를 저장 또는 관리하는 컨텐츠 서비스 노드가 아닌 특정 노드인 경우,
    상기 타겟 컨텐츠를 생성하기 위해 상기 특정 노드가 상기 컨텐츠 서비스 노드의 타겟 컨텐츠에 액세스하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 제15항에 있어서,
    상기 특정 노드는 상기 네트워크의 참여자들의 적어도 과반수의 동의를 얻어 결정된 것을 특징으로 하는 방법.
  17. 제1항에 있어서,
    상기 네트워크에는 상기 투명성 검증 처리된 저장 데이터만이 저장되는 것을 특징으로 하는 방법.
  18. 컴퓨터에 의해 판독가능하고, 상기 컴퓨터에 의해 동작 가능한 프로그램 명령어를 저장하는 컴퓨터 판독가능 기록매체로서, 상기 프로그램 명령어가 상기 컴퓨터의 프로세서에 의해 실행되는 경우 상기 프로세서가 제1항 내지 제6항 그리고 제11항 내지 제17항 중 어느 하나의 항에 따른 방법을 수행하게 하는 컴퓨터 판독가능 기록매체.
KR1020180156124A 2018-12-06 2018-12-06 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템 KR102199967B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180156124A KR102199967B1 (ko) 2018-12-06 2018-12-06 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180156124A KR102199967B1 (ko) 2018-12-06 2018-12-06 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템

Publications (2)

Publication Number Publication Date
KR20200069034A KR20200069034A (ko) 2020-06-16
KR102199967B1 true KR102199967B1 (ko) 2021-01-11

Family

ID=71141930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180156124A KR102199967B1 (ko) 2018-12-06 2018-12-06 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템

Country Status (1)

Country Link
KR (1) KR102199967B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112203247B (zh) * 2020-09-24 2023-10-20 南方电网科学研究院有限责任公司 一种电能数据的安全存储方法及系统
KR102403014B1 (ko) * 2021-11-10 2022-05-30 인트인 주식회사 클라우드 컨테이너 이미지의 위·변조 방지 및 취약점 진단 동시 체크 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
KR101712726B1 (ko) 2015-04-27 2017-03-14 갤럭시아커뮤니케이션즈 주식회사 해시 코드를 이용하는 콘텐츠의 무결성 및 유효성 검증 방법 및 시스템
JP2017188883A (ja) * 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム
JP2017204704A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 正当性保証方法、正当性保証システム及び正当性保証プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120053398A (ko) * 2010-11-17 2012-05-25 삼성전자주식회사 컨텐츠를 검증하기 위한 서명 장치와 검증 장치를 포함하는 검증 시스템 및 검증 방법
KR20180089682A (ko) 2017-02-01 2018-08-09 삼성전자주식회사 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101712726B1 (ko) 2015-04-27 2017-03-14 갤럭시아커뮤니케이션즈 주식회사 해시 코드를 이용하는 콘텐츠의 무결성 및 유효성 검증 방법 및 시스템
KR101701131B1 (ko) * 2016-04-28 2017-02-13 주식회사 라피 이종간 블록체인 연결을 이용한 데이터 기록/검증 방법 및 시스템
JP2017204704A (ja) * 2016-05-10 2017-11-16 日本電信電話株式会社 正当性保証方法、正当性保証システム及び正当性保証プログラム
JP2017188883A (ja) * 2017-03-23 2017-10-12 株式会社bitFlyer プライベートノード、プライベートノードにおける処理方法、及びそのためのプログラム

Also Published As

Publication number Publication date
KR20200069034A (ko) 2020-06-16

Similar Documents

Publication Publication Date Title
KR102084674B1 (ko) 블록체인 기반 컨텐츠 관리 방법 및 상기 방법을 수행하는 시스템
US11323272B2 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
US10541818B2 (en) Decentralized biometric signing of digital contracts
US20200084045A1 (en) Establishing provenance of digital assets using blockchain system
WO2018145127A1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
CN113015974B (zh) 针对隐私保护的可验证同意
US20130132733A1 (en) System And Method For Digital Rights Management With System Individualization
KR102234825B1 (ko) 암호 동작들의 안전한 수행
JP7319380B2 (ja) ブラウザクッキーを保護する
KR102199967B1 (ko) 위변조 데이터가 네트워크에 저장되는 것을 방지하는 방법 및 상기 방법을 수행하는 시스템
KR102608325B1 (ko) 클라이언트 장치에서 통신의 무결성 보호
CN112954403B (zh) 视频加密方法、装置、设备及存储介质
JP2023096089A (ja) グループ署名による匿名イベント証明
JP7389235B2 (ja) 匿名イベント認証
ur Rehman et al. Blockchain-based approach for proving the source of digital media
WO2016172986A1 (zh) 数据认证方法、装置和系统、计算机存储介质
US20240171393A1 (en) Method to validate ownership and authentication of a digital asset
US20230081416A1 (en) Anonymous private shared partitions in blockchain networks
US12003649B2 (en) Anonymous event attestation with group signatures
USRE49968E1 (en) Electronic identification verification methods and systems with storage of certification records to a side chain
US20240187420A1 (en) Securing browser cookies
WO2022123585A1 (en) Systems and methods for video verification
CN115280308A (zh) 一种许可认证的方法、装置、电子设备、系统及存储介质
MANOVIGNESH et al. A GENERIC INFORMATION LINEAGE FRAMEWORK LIME FOR INFORMATION FLOW ACROSS MULTIPLE ENTITIES

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