KR20210086035A - 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치 - Google Patents

블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치 Download PDF

Info

Publication number
KR20210086035A
KR20210086035A KR1020190179709A KR20190179709A KR20210086035A KR 20210086035 A KR20210086035 A KR 20210086035A KR 1020190179709 A KR1020190179709 A KR 1020190179709A KR 20190179709 A KR20190179709 A KR 20190179709A KR 20210086035 A KR20210086035 A KR 20210086035A
Authority
KR
South Korea
Prior art keywords
electronic device
image
hash value
external object
original
Prior art date
Application number
KR1020190179709A
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 KR1020190179709A priority Critical patent/KR20210086035A/ko
Publication of KR20210086035A publication Critical patent/KR20210086035A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

다양한 실시 예에 따른 전자 장치에 있어서, 디스플레이; 카메라 모듈; 오디오 모듈; 통신 모듈; 메모리; 및 프로세서를 포함하고, 상기 프로세서는, 상기 카메라 모듈을 이용하여, 외부 객체에 관한 제1 이미지를 획득하고, 상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하고, 상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하고, 상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 카메라 모듈을 이용하여, 상기 외부 객체에 관한 제2 이미지를 획득하고, 상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하고, 상기 통신 모듈을 이용하여, 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하도록 설정될 수 있다. 이 밖의 다른 실시 예도 가능하다.

Description

블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치 {Method for proving original based on block chain and electronic device using the same}
본 발명은 블록체인에 기반하여 원본을 증명하는 방법 및 이를 사용하는 전자 장치에 관한 것이다.
블록체인(block chain)은 관리 대상 데이터를 '블록'이라고 하는 소규모 데이터들을 체인 형태의 분산 데이터 환경에 저장하는 분산 컴퓨팅 기술 기반의 데이터 위변조 방지 기술을 의미할 수 있다. 블록체인 환경에서, 관리 대상 데이터는 임의로 수정될 수 없으며 변경된 결과는 누구나 열람할 수 있다. 예를 들어, 암호화폐의 거래과정을 기록하는 탈중앙화된 전자장부로서 비트코인이 있다. 비트코인의 거래 기록은 의무적으로 암호화되고 블록체인 소프트웨어를 실행하는 컴퓨터 상에서 운영될 수 있다.
영상, 사진, 음성 등의 파일이 변조되지 않은 원본임을 증명하고자 하는 사용자의 니즈는 지속되고 있다. 이와 관련하여, 블록체인 기반에서 원본증명, 시점인증 기술은 오픈소스 기반으로 제공되고 있으나, 일반인들이 손쉽게 접근 가능한 디앱(decentralized application, Dapp)은 찾아보기 어려운 상황이다. 특히, 원본 증명이 중요한 보험, 렌터카, 카쉐어링 등과 관련하여 관련 디앱의 개발이 필요성이 증대되고 있다. 이에 따라, 스마트폰과 같은 전자 장치 기반의 디앱을 개발하여 관련 서비스를 이용하는 사용자의 불편함을 해소하고, 사업자의 원본 증명 부담을 덜어주는 수단이 필요할 수 있다.
다양한 실시 예에 따른 전자 장치에 있어서, 디스플레이; 카메라 모듈; 오디오 모듈; 통신 모듈; 메모리; 및 프로세서를 포함하고, 상기 프로세서는, 상기 카메라 모듈을 이용하여, 외부 객체에 관한 제1 이미지를 획득하고, 상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하고, 상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하고, 상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 카메라 모듈을 이용하여, 상기 외부 객체에 관한 제2 이미지를 획득하고, 상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하고, 상기 통신 모듈을 이용하여, 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하도록 설정될 수 있다.
다양한 실시 예에 따른 전자 장치의 방법에 있어서, 외부 객체에 관한 제1 이미지를 획득하는 동작; 상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하는 동작; 상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하는 동작; 상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 외부 객체에 관한 제2 이미지를 획득하는 동작; 상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하는 동작; 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하는 동작을 포함할 수 있다.
본 발명의 다양한 실시 예에 따르면, 전자 장치는 사용자가 선택한 정보(예: 사진, 영상, 음성 등)가 원본임을 증명할 수 있다. 예를 들어, 원본임이 중요한 보험, 렌터카, 카쉐어링 등의 서비스와 관련하여 블록체인 기반 디앱을 통해 서비스를 제공할 수 있다. 이에 따라, 관련 서비스를 이용하는 사용자의 불편함을 해소하고, 사업자의 원본 증명 부담을 덜어줄 수 있다.
도 1은 본 발명의 다양한 실시 예에 따른 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 본 발명의 다양한 실시 예에 따른 카메라 모듈의 블록도이다.
도 3은 본 발명의 다양한 실시 예에 따른 프로그램의 블록도이다.
도 4는 본 발명의 다양한 실시 예에 따른 블록체인 기반 원본 증명 시스템을 개략적으로 설명하기 위한 개념도이다.
도 5는 본 발명의 다양한 실시 예에 따른 블록체인 기반 원본 증명 어플리케이션을 개략적으로 나타낸 블록도이다.
도 6은 본 발명의 다양한 실시 예에 따른 전자 장치의 블록체인 기반 원본 증명 방법에 관한 흐름도이다.
도 7은 본 발명의 다양한 실시 예에 따른 전자 장치의 블록체인 기반 원본 및 해쉬 데이터 저장 방법에 관한 흐름도이다.
도 1은, 다양한 실시 예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블록도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일 실시 예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 무선 충전 모듈(197)을 포함할 수 있다. 어떤 실시 예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시 예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드(load)하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드 되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(inactive, 예: 슬립(sleep)) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일 실시 예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일 실시 예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일 실시 예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일 실시 예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일 실시 예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일 실시 예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일 실시 예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일 실시 예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
무선 충전 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 코일들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일 실시 예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일 실시 예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일 실시 예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행하는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 본 발명의 다양한 실시 예에 따른 카메라 모듈의 블록도이다.
도 2를 참조하면, 카메라 모듈(180)은 렌즈 어셈블리(210), 플래쉬(220), 이미지 센서(230), 이미지 스태빌라이저(240), 메모리(250)(예: 버퍼 메모리), 또는 이미지 시그널 프로세서(260)를 포함할 수 있다. 렌즈 어셈블리(210)는 이미지 촬영의 대상인 피사체로부터 방출되는 빛을 수집할 수 있다. 렌즈 어셈블리(210)는 하나 또는 그 이상의 렌즈들을 포함할 수 있다. 일 실시 예에 따르면, 카메라 모듈(180)은 복수의 렌즈 어셈블리(210)들을 포함할 수 있다. 이런 경우, 카메라 모듈(180)은, 예를 들면, 듀얼 카메라, 360도 카메라, 또는 구형 카메라(spherical camera)일 수 있다. 복수의 렌즈 어셈블리(210)들은 동일한 렌즈 속성(예: 화각, 초점 거리, 자동 초점, f 넘버(f number), 또는 광학 줌)을 갖거나, 또는 적어도 하나의 렌즈 어셈블리는 다른 렌즈 어셈블리와 적어도 하나의 다른 렌즈 속성을 가질 수 있다. 렌즈 어셈블리(210)는, 예를 들면, 광각 렌즈 또는 망원 렌즈를 포함할 수 있다. 플래쉬(220)는 피사체로부터 방출되는 빛을 강화하기 위하여 사용되는 광원을 방출할 수 있다. 플래쉬(220)는 하나 이상의 발광 다이오드들(예: RGB(red-green-blue) LED, white LED, infrared LED, 또는 ultraviolet LED), 또는 제논 램프(xenon lamp)를 포함할 수 있다.
이미지 센서(230)는 피사체로부터 렌즈 어셈블리(210)를 통해 전달된 빛을 전기적인 신호로 변환함으로써, 상기 피사체에 대응하는 이미지를 획득할 수 있다. 일 실시 예에 따르면, 이미지 센서(230)는, 예를 들면, RGB 센서, BW(black and white) 센서, IR 센서, 또는 UV 센서와 같이 속성이 다른 이미지 센서들 중 선택된 하나의 이미지 센서, 동일한 속성을 갖는 복수의 이미지 센서들, 또는 다른 속성을 갖는 복수의 이미지 센서들을 포함할 수 있다. 이미지 센서(230)에 포함된 각각의 이미지 센서는, 예를 들면, CCD(charged coupled device) 센서 또는 CMOS(complementary metal oxide semiconductor) 센서로 구현될 수 있다.
이미지 스태빌라이저(240)는 카메라 모듈(180) 또는 이를 포함하는 전자 장치(101)의 움직임에 반응하여, 촬영되는 이미지에 대한 상기 움직임에 의한 부정적인 영향(예: 이미지 흔들림)을 적어도 일부 보상하기 위하여 렌즈 어셈블리(210)에 포함된 적어도 하나의 렌즈 또는 이미지 센서(230)를 특정한 방향으로 움직이거나 제어(예: 리드 아웃(read-out) 타이밍을 조정 등)할 수 있다. 일 실시 예에 따르면, 이미지 스태빌라이저(240)는, 예를 들면, 광학식 이미지 스태빌라이저로 구현될 수 있으며, 카메라 모듈(180)의 내부 또는 외부에 배치된 자이로 센서(미도시) 또는 가속도 센서(미도시)를 이용하여 상기 움직임을 감지할 수 있다.
메모리(250)는 이미지 센서(230)을 통하여 획득된 이미지의 적어도 일부를 다음 이미지 처리 작업을 위하여 적어도 일시 저장할 수 있다. 예를 들어, 셔터에 따른 이미지 획득이 지연되거나, 또는 복수의 이미지들이 고속으로 획득되는 경우, 획득된 원본 이미지(예: 높은 해상도의 이미지)는 메모리(250)에 저장이 되고, 그에 대응하는 사본 이미지(예: 낮은 해상도의 이미지)는 표시 장치(160)을 통하여 프리뷰될 수 있다. 이후, 지정된 조건이 만족되면(예: 사용자 입력 또는 시스템 명령) 메모리(250)에 저장되었던 원본 이미지의 적어도 일부가, 예를 들면, 이미지 시그널 프로세서(260)에 의해 획득되어 처리될 수 있다. 일 실시 예에 따르면, 메모리(250)는 메모리(130)의 적어도 일부로, 또는 이와는 독립적으로 운영되는 별도의 메모리로 구성될 수 있다.
이미지 시그널 프로세서(260)는 이미지 센서(230)을 통하여 획득된 이미지 또는 메모리(250)에 저장된 이미지에 대하여 이미지 처리(예: 깊이 지도(depth map) 생성, 3차원 모델링, 파노라마 생성, 특징점 추출, 이미지 합성, 또는 이미지 보상(예: 노이즈 감소, 해상도 조정, 밝기 조정, 블러링(blurring), 샤프닝(sharpening), 또는 소프트닝(softening))을 수행할 수 있다. 추가적으로 또는 대체적으로, 이미지 시그널 프로세서(260)는 카메라 모듈(180)에 포함된 구성 요소들 중 적어도 하나(예: 이미지 센서(230))에 대한 제어(예: 노출 시간 제어, 또는 리드 아웃 타이밍 제어 등)를 수행할 수 있다. 이미지 시그널 프로세서(260)에 의해 처리된 이미지는 추가 처리를 위하여 메모리(250)에 다시 저장 되거나 카메라 모듈(180)의 외부 구성 요소(예: 메모리(130), 표시 장치(160), 전자 장치(102), 전자 장치(104), 또는 서버(108))로 전달될 수 있다. 일 실시 예에 따르면, 이미지 시그널 프로세서(260)는 프로세서(120)의 적어도 일부로 구성되거나, 프로세서(120)와 독립적으로 운영되는 별도의 프로세서로 구성될 수 있다. 별도의 프로세서로 구성된 경우, 이미지 시그널 프로세서(260)에 의해 처리된 이미지들은 프로세서(120)에 의하여 그대로 또는 추가의 이미지 처리를 거친 후 표시 장치(160)를 통해 표시될 수 있다.
일 실시 예에 따르면, 전자 장치(101)는 각각 다른 속성 또는 기능을 가진 둘 이상의 카메라 모듈(180)들을 포함할 수 있다. 이런 경우, 예를 들면, 적어도 하나의 카메라 모듈(180)은 광각 카메라 또는 전면 카메라이고, 적어도 하나의 다른 카메라 모듈은 망원 카메라 또는 후면 카메라일 수 있다.
도 3은 본 발명의 다양한 실시 예에 따른 프로그램의 블록도이다.
도 3은 다양한 실시예에 따른 프로그램(140)의 블록도(300)이다. 일실시예에 따르면, 프로그램(140)은 전자 장치(101)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(142), 미들 웨어(144), 또는 상기 운영 체제(142) 상에서 실행 가능한 어플리케이션(146)을 포함할 수 있다. 운영 체제(142)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(140) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(101)에 프리로드되거나, 또는 사용자의 사용 환경에서 외부 전자 장치(예: 전자 장치(102 또는 104), 또는 서버(108))로부터 다운로드되거나 갱신 될 수 있다.
운영 체제(142)는 전자 장치(101)의 시스템 리소스 (예: 프로세스, 메모리, 또는 전원)를 제어(예: 할당 또는 회수)할 수 있다. 운영 체제(142)는, 추가적으로 또는 대체적으로, 전자 장치(101)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.
미들 웨어(144)는 어플리케이션(146)이 전자 장치(101)의 하나 이상의 리소스들이 제공하는 기능 또는 정보를 사용할 수 있도록 다양한 기능들을 어플리케이션(146)으로 제공할 수 있다. 미들 웨어(144)는, 예를 들면, 어플리케이션 매니저(301), 윈도우 매니저(303), 멀티미디어 매니저(305), 리소스 매니저(307), 파워 매니저(309), 데이터베이스 매니저(311), 패키지 매니저(313), 커넥티비티 매니저(315), 노티피케이션 매니저(317), 로케이션 매니저(319), 그래픽 매니저(321), 시큐리티 매니저(323), 통화 매니저(325), 또는 음성 인식 매니저(327)를 포함할 수 있다. 어플리케이션 매니저(301)는, 예를 들면, 어플리케이션(146)의 생명 주기를 관리할 수 있다. 윈도우 매니저(303)는, 예를 들면, 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(305)는, 예를 들면, 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(307)는, 예를 들면, 어플리케이션(146)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(309)는, 예를 들면, 배터리의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(101)의 동작에 필요한 전력 정보를 결정 또는 제공할 수 있다. 일실시예에 따르면, 파워 매니저(309)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다.
데이터베이스 매니저(311)는, 예를 들면, 어플리케이션(146)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(313)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(315)는, 예를 들면, 전자 장치(101)와 외부 전자 장치 간의 무선 또는 유선 연결을 관리할 수 있다. 노티피케이션 매니저(317)는, 예를 들면, 발생된 이벤트(예: 통화, 메시지, 또는 알람)를 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(319)는, 예를 들면, 전자 장치(101)의 위치 정보를 관리할 수 있다. 그래픽 매니저(321)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 시큐리티 매니저(323)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(325)는, 예를 들면, 전자 장치(101)의 음성 통화 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(327)는, 예를 들면, 사용자의 음성 데이터를 서버(108)로 전송하고, 해당 음성 데이터에 기반하여 전자 장치(101)에서 수행될 기능에 대응하는 명령어(command) 또는 해당 음성 데이터에 기반하여 변환된 문자 데이터를 수신할 수 있다. 일 실시예에 따르면, 미들 웨어(344)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일 실시예에 따르면, 미들 웨어(144)의 적어도 일부는 운영 체제(142)의 일부로 포함되거나, 또는 운영 체제(142)와는 별도의 소프트웨어로 구현될 수 있다.
어플리케이션(146)은, 예를 들면, 홈(351), 다이얼러(353), SMS/MMS(355), IM(instant message)(357), 브라우저(359), 카메라(361), 알람(363), 컨택트(365), 음성 인식(367), 이메일(369), 달력(371), 미디어 플레이어(373), 앨범(375), 와치(377), 헬스(379)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(381)(예: 기압, 습도, 또는 온도 정보) 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 어플리케이션(146)은 전자 장치(101)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(101)의 다른 어플리케이션(예: 이메일 어플리케이션(369))에서 발생된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(101)의 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치(101)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(160) 또는 카메라 모듈(180))의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 표시 장치(160) 또는 카메라 모듈(180)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.
본 문서에 개시된 다양한 실시 예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시 예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시 예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시 예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시 예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서,'비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 4는 본 발명의 다양한 실시 예에 따른 블록체인 기반 원본 증명 시스템을 개략적으로 설명하기 위한 개념도이다.
다양한 실시 예에 따르면, 블록체인 기반 원본 증명 시스템(400)은 클라이언트(410), 원본 저장부(420), 블록체인 네트워크(430) 및 원본증명 인터페이스(440)을 포함할 수 있다.
다양한 실시 예에 따르면, 클라이언트(410)는 전자 장치(101), 전자 장치(101)에서 동작 가능한 어플리케이션 또는 전자 장치(101)의 사용자를 의미할 수 있다. 예를 들어, 클라이언트(410)는 전자 장치(101)의 카메라 모듈(180)을 통해 동영상, 사진 등의 데이터를 획득할 수 있다. 다른 예를 들어, 클라이언트(410)는 오디오 모듈(170)을 통해 음성 데이터를 획득할 수 있다. 또 다른 예를 들어, 클라이언트(410)는 전자 장치(101)를 통해 문서 데이터를 획득할 수 있다. 여기서, 클라이언트(410)가 획득한 동영상, 사진, 음성, 문서 등의 데이터를 원본 데이터로 정의할 수 있다.
다양한 실시 예에 따르면, 클라이언트(410)는 획득한 원본 데이터에 상응하는 해쉬 데이터 또는 해쉬 값을 획득할 수 있다. 예를 들어, 원본 데이터에 상응하는 해쉬 데이터는 원본 데이터의 생성에 대응하여 생성될 수 있다. 원본 데이터는 일종의 디지털 지문으로 인식되는 해쉬 데이터를 포함할 수 있다. 여기서, 해쉬 데이터는 전자 정보를 암호학적 수학연산(해쉬 알고리즘)을 통해 변환한 값을 의미할 수 있다. 디지털 데이터는 1 Bit의 값이 변경되더라도 완전히 다른 값이 생성(산출)될 수 있기에 원본과 사본의 동일성을 입증하기 위한 해쉬 데이터가 매우 중요할 수 있다. 예를 들어, 해쉬 데이터의 숫자는 0 내지 9, 영문 알파벳 대문자는 A 내지 F(16진수)를 포함한 총 32자, 40자, 또는 64자로 표기할 수 있다. (예: 47E11583857D090CAF2375BD5D0F0FF2)
다양한 실시 예에 따르면, 클라이언트(410)는 원본 데이터를 원본 저장부(420)에 저장할 수 있다. 예를 들어, 원본 저장부(420)는 클라이언트(410) 자체(예: 전자 장치(101)) 또는 클라리언트(410)와 연결된 클라우드 중 적어도 하나를 포함할 수 있다. 예를 들어, 클라이언트(410)는 원본 데이터를 암호화 또는 전자서명을 통해 원본 저장부(420)에 저장할 수 있다.
다양한 실시 예에 따르면, 클라이언트(410)는 원본 데이터의 고유 정보(예: 해쉬 데이터)를 추출하여 원본 데이터의 시간 정보와 함께 블록체인 네트워크(430)에 기록할 수 있다. 해시 데이터 및 시간 정보는 블록체인 네트워크(430)에서 위변조가 불가능 하므로 원본 데이터가 생성된 시점 이후 변경이 없음을 영구적으로 증명할 수 있다. 해쉬 데이터는 블록체인 분산원장(distributed ledger, DL)에 등록될 수 있으며, 다양한 사이트, 국가 또는 기관에 분산되어 존재할 수 있다. 즉, 중앙집중적인 관리자나 중앙집중의 데이터 저장소가 존재하지 않은 채 다양한 기능을 동작할 수 있다.
다양한 실시 예에 따르면, 클라이언트(410)는 원본증명 인터페이스(440)를 통해 원본임을 증명할 수 있다. 예를 들어, 해쉬 데이터의 고유 특성을 이용하여, 원본임을 증명하고자 하는 데이터의 해쉬 데이터와 블록체인 네트워크(430) 상에 존재하는 해쉬 데이터를 상호 비교할 수 있다. 해쉬 데이터가 서로 일치하는 경우에는 대상 데이터가 원본임을 증명할 수 있다.
다양한 실시 예에 따르면, 클라이언트(410)는 원본증명 인터페이스(440)를 통해 원본 저장부(420) 및 블록체인 네트워크(430)에 저장된 데이터들의 메타 데이터를 활용하여 인덱스 기능을 제공할 수 있다. 또한, 필요 시 인덱스 링크를 삭제하여 원본 데이터를 파기할 수 있다. 다만, 해쉬 데이터의 경우 블록 체인의 특성 상 삭제할 수 없다.
도 5는 본 발명의 다양한 실시 예에 따른 블록체인 기반 원본 증명 어플리케이션을 개략적으로 나타낸 블록도이다.
다양한 실시 예에 따르면, 블록체인 기반 원본 증명 어플리케이션(500)은 데이터 생성 모듈(501), 데이터 저장 모듈(503) 및 데이터 검증 모듈(505)을 포함할 수 있다. 사용자는 원본 증명 어플리케이션(500)을 통해 원본 데이터 및 해쉬 데이터를 생성, 저장 및 검증할 수 있다. 여기서, 원본 증명 어플리케이션(500)은 각각의 모듈들을 전기적으로 연결해주는 역할을 수행할 수 있으며, 반드시 각각의 모듈들이 하나의 전자 장치(101)에 존재해야 하는 것은 아니다.
다양한 실시 예에 따르면, 데이터 생성 모듈(501)은 원본 데이터를 생성하고 원본 데이터에 상응하는 해쉬 데이터를 생성할 수 있다. 예를 들어, 원본 데이터는 동영상, 사진, 음성, 문서 등의 다양한 종류의 데이터를 포함할 수 있다.
다양한 실시 예에 따르면, 데이터 저장 모듈(503)은 데이터 생성 모듈(501)에서 생성된 원본 데이터 및 해쉬 데이터를 저장할 수 있다. 예를 들어, 데이터 저장 모듈(503)은 원본 데이터 및 해쉬 데이터를 이원화 하여 저장할 수 있다. 원본 데이터는 원본 데이터가 생성된 전자 장치 또는 클라우드 서버에 저장할 수 있다. 해쉬 데이터는 블록체인 네트워크 상에 등록할 수 있다.
다양한 실시 예에 따르면, 데이터 검증 모듈(505)은 데이터 저장 모듈(503)에 저장된 데이터를 검증 대상 데이터와 비교하여 검증 대상 데이터가 원본임을 증명할 수 있다. 예를 들어, 검증 대상 데이터의 해쉬 데이터와 블록체인 네트워크 상에 등록된 해쉬 데이터를 비교하여 상호 일치하는 경우, 검증 대상 데이터가 원본임을 증명할 수 있다. 즉, 원본 데이터를 조금이라도 수정하는 경우, 해쉬 데이터가 변경되기 때문에 검증 대상 데이터가 조작된 데이터라면 원본 데이터 생성 당시의 해쉬 데이터와 차이가 발생하는 점을 활용할 수 있다.
도 6은 본 발명의 다양한 실시 예에 따른 전자 장치의 블록체인 기반 원본 증명 방법에 관한 흐름도이다.
다양한 실시 예에 따르면, 전자 장치(101)는 610 동작에서, 원본 및 해쉬 데이터를 생성할 수 있다. 예를 들어, 전자 장치(101)는 원본 데이터를 생성하고 원본 데이터에 상응하는 해쉬 데이터를 생성할 수 있다. 예를 들어, 원본 데이터는 동영상, 사진, 음성, 문서 등의 다양한 종류의 데이터를 포함할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 620 동작에서, 원본 및 해쉬 데이터를 저장할 수 있다. 다양한 실시 예에 따르면, 전자 장치(101)는 전자 장치(101)에서 생성된 원본 데이터 및 해쉬 데이터를 저장할 수 있다. 예를 들어, 전자 장치(101)는 원본 데이터 및 해쉬 데이터를 이원화 하여 저장할 수 있다. 원본 데이터는 원본 데이터가 생성된 전자 장치 또는 클라우드 서버에 저장할 수 있다. 해쉬 데이터는 블록체인 네트워크 상에 등록할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 630 동작에서, 임의 자료에 대한 증명 요청을 수신할 수 있다. 예를 들어, 전자 장치(101)는 원본 증명 어플리케이션이 설치되어 있거나 원본 증명 어플리케이션에 접속할 수 있다. 전자 장치(101)는 원본 증명 어플리케이션을 통해 임의 자료의 진위 여부를 확인할 수 있다. 전자 장치(101)는 사용자의 요청에 응답하여 원본 증명 어플리케이션에 검증 대상 자료를 업로드 할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 640 동작에서, 임의 자료의 해쉬 값과 블록체인 네트워크 상에 기 저장된 해쉬 값을 비교하여 임의 자료의 원본 여부를 증명할 수 있다. 예를 들어, 전자 장치(101)는 로컬 또는 클라우드에 저장된 데이터를 검증 대상 데이터와 비교하여 검증 대상 데이터가 원본임을 증명할 수 있다. 예를 들어, 검증 대상 데이터의 해쉬 데이터와 블록체인 네트워크 상에 등록된 해쉬 데이터를 비교하여 상호 일치하는 경우, 검증 대상 데이터가 원본임을 증명할 수 있다. 즉, 원본 데이터를 조금이라도 수정하는 경우, 해쉬 데이터가 변경되기 때문에 검증 대상 데이터가 조작된 데이터라면 원본 데이터 생성 당시의 해쉬 데이터와 차이가 발생하는 점을 활용할 수 있다.
도 7은 본 발명의 다양한 실시 예에 따른 전자 장치의 블록체인 기반 원본 및 해쉬 데이터 저장 방법에 관한 흐름도이다.
다양한 실시 예에 따르면, 전자 장치(101)는 710 동작에서, 제1 원본 및 해쉬 데이터를 생성할 수 있다. 예를 들어, 전자 장치(101)는 교통 사고 발생 시 사용자의 촬영 요청에 응답하여 제1 사진을 획득할 수 있으며, 제1 사진에 상응하는 해쉬 데이터를 획득할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 720 동작에서, 제1 원본 및 해쉬 데이터 외 추가 데이터를 생성하는지 확인할 수 있다. 예를 들어, 교통 사고가 발생한 경우, 한 장의 사진으로는 사고 원인 및 과실 유무를 판단하기에 부족하므로 다수의 사진을 다양한 각도로 촬영할 수 있다. 이에 따라, 전자 장치(101)는 제1 원본 및 해쉬 데이터 외 추가 데이터를 생성하는지 확인하는 것이 필요할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 730 동작에서, 추가 데이터 생성 요청에 대응하여 제2 원본 및 해쉬 데이터를 생성할 수 있다. 예를 들어, 전자 장치(101)는 교통 사고 발생 시 사용자의 촬영 요청에 응답하여 제2 사진을 획득할 수 있으며, 제2 사진에 상응하는 해쉬 데이터를 획득할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 740 동작에서, 사용자로부터 생성 데이터 저장 요청을 확인할 수 있다. 예를 들어, 전자 장치(101)는 다양한 각도에서 다양한 사진을 촬영한 후, 사용자의 요청에 의해 제1 사진 및 제2 사진을 저장하도록 하는 요청을 확인할 수 있다. 예를 들어, 사진의 촬영 시 이용하는 어플리케이션과 사진의 저장을 요청하는 어플리케이션은 상이할 수 있다. 사진의 촬영은 전자 장치(101)의 카메라 어플리케이션을 이용할 수 있으며, 사진의 저장은 전자 장치(101)의 원본 증명 어플리케이션을 이용할 수 있다. 다른 예를 들어, 사진의 촬영 시 이용하는 어플리케이션과 사진의 저장을 요청하는 어플리케이션은 동일할 수 있다. 사용자는 전자 장치(101)의 원본 증명 어플리케이션을 통해 사진을 촬영하고, 촬영된 사진을 저장할 수 있다.
다양한 실시 예에 따르면, 전자 장치(101)는 750 동작에서, 사용자의 데이터 저장 요청에 대응하여, 제1 원본에 상응하는 제1 해쉬 값 및 제2 원본에 상응하는 제2 해쉬 값을 하나의 파일로 블록체인 네트워크에 저장할 수 있다. 예를 들어, 전자 장치(101)는 제1 원본 및 제2 원본은 로컬 또는 클라우드에 저장할 수 있으며, 제1 해쉬 값 및 제2 해쉬 값은 블록체인 네트워크에 저장할 수 있다. 예를 들어, 제1 해쉬 값 및 제2 해쉬 값은 별도의 파일이 아닌 하나의 파일로 함께 블록체인 네트워크에 저장될 수 있다. 블록체인 네트워크 상에 저장하기 위해서는 일종의 수수료가 발생할 수 있으므로, 하나의 원본 데이터가 아닌 복수의 서로 다른 원본 데이터에 상응하는 복수의 해쉬 데이터를 동시에 저장하는 것이 수수료 절약 측면에서 경제적인 면이 있다. 예를 들어, 이더리움(ethereum)의 경우, 트랜잭션을 동작하기 위해 가스(gas)가 소모되므로 최적의 가스 소모량을 고려하여 복수의 해쉬 데이터를 기록할 수 있다.
다양한 실시 예에 따른 전자 장치에 있어서, 디스플레이; 카메라 모듈; 오디오 모듈; 통신 모듈; 메모리; 및 프로세서를 포함하고, 상기 프로세서는, 상기 카메라 모듈을 이용하여, 외부 객체에 관한 제1 이미지를 획득하고, 상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하고, 상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하고, 상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 카메라 모듈을 이용하여, 상기 외부 객체에 관한 제2 이미지를 획득하고, 상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하고, 상기 통신 모듈을 이용하여, 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하도록 설정될 수 있다.
상기 프로세서는, 상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 클라우드 서버에 저장하도록 설정될 수 있다.
상기 프로세서는, 상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 상기 전자 장치의 상기 메모리에 저장하도록 설정될 수 있다.
상기 프로세서는 원본 증명 요청에 응답하여, 검증 대상 데이터의 해쉬 값과 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값 중 적어도 하나의 해쉬 값과 비교하도록 설정될 수 있다.
상기 프로세서는, 상기 검증 대상 데이터의 상기 해쉬 값이 상기 외부 객체에 관한 상기 제1 해쉬 값 또는 제2 해쉬 값과 일치하는 경우, 상기 검증 대상 데이터가 원본임을 알리도록 설정될 수 있다.
상기 프로세서는, 상기 검증 대상 데이터가 원본임을 상기 디스플레이에 출력하도록 설정될 수 있다.
상기 프로세서는, 상기 검증 대상 데이터가 원본이라는 보증 표시를 상기 디스플레이에 출력하도록 설정될 수 있다.
상기 프로세서는, 상기 검증 대상 데이터가 원본임을 상기 오디오 모듈을 통해 출력하도록 설정될 수 있다.
상기 블록체인 네트워크는 퍼블릭 블록체인일 수 있다.
상기 퍼블릭 블록체인은 이더리움 가상 머신(ethereum virtual machine, EVM) 또는 트론 가상 머신(tron virtual machine, TVM)을 포함할 수 있다.
다양한 실시 예에 따른 전자 장치의 방법에 있어서, 외부 객체에 관한 제1 이미지를 획득하는 동작; 상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하는 동작; 상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하는 동작; 상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 외부 객체에 관한 제2 이미지를 획득하는 동작; 상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하는 동작; 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하는 동작을 포함할 수 있다.
상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 클라우드 서버에 저장하는 동작을 포함할 수 있다.
상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 상기 전자 장치의 메모리에 저장하는 동작을 포함할 수 있다.
원본 증명 요청에 응답하여, 검증 대상 데이터의 해쉬 값과 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값 중 적어도 하나의 해쉬 값과 비교하는 동작을 포함할 수 있다.
상기 검증 대상 데이터의 상기 해쉬 값이 상기 외부 객체에 관한 상기 제1 해쉬 값 또는 제2 해쉬 값과 일치하는 경우, 상기 검증 대상 데이터가 원본임을 알리는 동작을 포함할 수 있다.
상기 검증 대상 데이터가 원본임을 디스플레이에 출력하는 동작을 포함할 수 있다.
상기 검증 대상 데이터가 원본이라는 보증 표시를 디스플레이에 출력하는 동작을 포함할 수 있다.
상기 검증 대상 데이터가 원본임을 오디오 모듈을 통해 출력하는 동작을 포함할 수 있다.
상기 블록체인 네트워크는 퍼블릭 블록체인일 수 있다.
상기 퍼블릭 블록체인은 이더리움 가상 머신(ethereum virtual machine, EVM) 또는 트론 가상 머신(tron virtual machine, TVM)을 포함할 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    디스플레이;
    카메라 모듈;
    오디오 모듈;
    통신 모듈;
    메모리; 및
    프로세서를 포함하고, 상기 프로세서는,
    상기 카메라 모듈을 이용하여, 외부 객체에 관한 제1 이미지를 획득하고,
    상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하고,
    상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하고,
    상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 카메라 모듈을 이용하여, 상기 외부 객체에 관한 제2 이미지를 획득하고,
    상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하고,
    상기 통신 모듈을 이용하여, 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하도록 설정된 전자 장치.
  2. 제 1 항에 있어서, 상기 프로세서는,
    상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 클라우드 서버에 저장하도록 설정된 전자 장치.
  3. 제 1 항에 있어서, 상기 프로세서는,
    상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 상기 전자 장치의 상기 메모리에 저장하도록 설정된 전자 장치.
  4. 제 1 항에 있어서, 상기 프로세서는
    원본 증명 요청에 응답하여, 검증 대상 데이터의 해쉬 값과 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값 중 적어도 하나의 해쉬 값과 비교하도록 설정된 전자 장치.
  5. 제 4 항에 있어서, 상기 프로세서는,
    상기 검증 대상 데이터의 상기 해쉬 값이 상기 외부 객체에 관한 상기 제1 해쉬 값 또는 제2 해쉬 값과 일치하는 경우, 상기 검증 대상 데이터가 원본임을 알리도록 설정된 전자 장치.
  6. 제 5 항에 있어서, 상기 프로세서는,
    상기 검증 대상 데이터가 원본임을 상기 디스플레이에 출력하도록 설정된 전자 장치.
  7. 제 5 항에 있어서, 상기 프로세서는,
    상기 검증 대상 데이터가 원본이라는 보증 표시를 상기 디스플레이에 출력하도록 설정된 전자 장치.
  8. 제 5 항에 있어서, 상기 프로세서는,
    상기 검증 대상 데이터가 원본임을 상기 오디오 모듈을 통해 출력하도록 설정된 전자 장치.
  9. 제 1 항에 있어서,
    상기 블록체인 네트워크는 퍼블릭 블록체인인 전자 장치.
  10. 제 9 항에 있어서,
    상기 퍼블릭 블록체인은 이더리움 가상 머신(ethereum virtual machine, EVM) 또는 트론 가상 머신(tron virtual machine, TVM)을 포함하는 전자 장치.
  11. 전자 장치의 방법에 있어서,
    외부 객체에 관한 제1 이미지를 획득하는 동작;
    상기 외부 객체에 관한 제1 이미지에 상응하는 제1 해쉬 값을 획득하는 동작;
    상기 제1 이미지 외 추가 이미지를 획득하도록 하는 요청을 확인하는 동작;
    상기 추가 이미지를 획득하도록 하는 요청에 대응하여, 상기 외부 객체에 관한 제2 이미지를 획득하는 동작;
    상기 외부 객체에 관한 제2 이미지에 상응하는 제2 해쉬 값을 획득하는 동작;
    상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값을 하나의 트랜잭션으로 블록체인 네트워크에 기록하는 동작을 포함하는 전자 장치의 방법.
  12. 제 11 항에 있어서,
    상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 클라우드 서버에 저장하는 동작을 포함하는 전자 장치의 방법.
  13. 제 11 항에 있어서,
    상기 외부 객체에 관한 상기 제1 이미지 및 제2 이미지를 상기 전자 장치의 메모리에 저장하는 동작을 포함하는 전자 장치의 방법.
  14. 제 11 항에 있어서,
    원본 증명 요청에 응답하여, 검증 대상 데이터의 해쉬 값과 상기 외부 객체에 관한 상기 제1 해쉬 값 및 제2 해쉬 값 중 적어도 하나의 해쉬 값과 비교하는 동작을 포함하는 전자 장치의 방법.
  15. 제 14 항에 있어서,
    상기 검증 대상 데이터의 상기 해쉬 값이 상기 외부 객체에 관한 상기 제1 해쉬 값 또는 제2 해쉬 값과 일치하는 경우, 상기 검증 대상 데이터가 원본임을 알리는 동작을 포함하는 전자 장치의 방법.
  16. 제 15 항에 있어서,
    상기 검증 대상 데이터가 원본임을 디스플레이에 출력하는 동작을 포함하는 전자 장치의 방법.
  17. 제 15 항에 있어서,
    상기 검증 대상 데이터가 원본이라는 보증 표시를 디스플레이에 출력하는 동작을 포함하는 전자 장치의 방법.
  18. 제 15 항에 있어서,
    상기 검증 대상 데이터가 원본임을 오디오 모듈을 통해 출력하는 동작을 포함하는 전자 장치의 방법.
  19. 제 11 항에 있어서,
    상기 블록체인 네트워크는 퍼블릭 블록체인인 전자 장치의 방법.
  20. 제 19 항에 있어서,
    상기 퍼블릭 블록체인은 이더리움 가상 머신(ethereum virtual machine, EVM) 또는 트론 가상 머신(tron virtual machine, TVM)을 포함하는 전자 장치의 방법.
KR1020190179709A 2019-12-31 2019-12-31 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치 KR20210086035A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190179709A KR20210086035A (ko) 2019-12-31 2019-12-31 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190179709A KR20210086035A (ko) 2019-12-31 2019-12-31 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치

Publications (1)

Publication Number Publication Date
KR20210086035A true KR20210086035A (ko) 2021-07-08

Family

ID=76894000

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190179709A KR20210086035A (ko) 2019-12-31 2019-12-31 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치

Country Status (1)

Country Link
KR (1) KR20210086035A (ko)

Similar Documents

Publication Publication Date Title
US10691929B2 (en) Method and apparatus for verifying certificates and identities
US10812768B2 (en) Electronic device for recording image by using multiple cameras and operating method thereof
US10929961B2 (en) Electronic device and method for correcting images using external electronic device
CN112119623A (zh) 基于帐户组共享内容的方法和执行该方法的电子装置
KR20190101534A (ko) 제1 이미지 처리 방식으로 보정된 이미지를 제2 이미지 처리 방식을 이용하여 외부 전자 장치에서 보정하기 위한 전자 장치 및 방법
CN111742320A (zh) 提供与应用有关的文本翻译管理数据的方法及其电子装置
US11238622B2 (en) Method of providing augmented reality contents and electronic device therefor
KR102383129B1 (ko) 이미지에 포함된 오브젝트의 카테고리 및 인식률에 기반하여 이미지를 보정하는 방법 및 이를 구현한 전자 장치
KR20200009922A (ko) 전자 장치 및 이미지의 전송 상태에 기반하여 이미지를 보정하는 방법
US11126322B2 (en) Electronic device and method for sharing image with external device using image link information
US11297243B2 (en) Electronic device and method for providing content associated with camera function from electronic device
WO2022089121A1 (zh) 处理推送消息的方法和装置
KR20200101048A (ko) 영상을 처리하는 전자 장치 및 그 영상 처리 방법
KR102405593B1 (ko) 전자 장치 및 그의 데이터 운용 방법
CN108124098B (zh) 电子设备和用于自动聚焦的方法
CN111386699A (zh) 数字分类账相机和图像功能
KR20210086035A (ko) 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치
US11144197B2 (en) Electronic device performing function according to gesture input and operation method thereof
KR20210086031A (ko) 블록체인 기반 원본 증명 방법 및 이를 사용하는 전자 장치
EP3926942A1 (en) Method for processing photographed image and electronic device therefor
US11308317B2 (en) Electronic device and method for recognizing characters
KR20190110308A (ko) Isp 업데이트를 알리는 전자 장치 및 그 동작 방법
US11341595B2 (en) Electronic device for providing image related to inputted information, and operating method therefor
US10805518B2 (en) Electronic device for obtaining security image using security processing module
KR102390798B1 (ko) 그래픽컬 콘텐트를 제공하는 전자 장치 및 제어 방법