"블록해시"의 두 판 사이의 차이
hangyuwon95 (토론 | 기여) (→개발 목적) |
hangyuwon95 (토론 | 기여) (→특징) |
||
7번째 줄: | 7번째 줄: | ||
[[Elog.io]] 도구를 개발하는 과정에서 기존에 있는 [[pHash]], [[imgSeek]] 라이브러리보다 자바 스크립트에서 구현하기 쉽게 이미지를 지각적으로 비교할 수 있는 방법이 필요해서 개발 되었다. 또한 [[블록체인]]이 작동하는 과정에서 해싱이 필요하다. | [[Elog.io]] 도구를 개발하는 과정에서 기존에 있는 [[pHash]], [[imgSeek]] 라이브러리보다 자바 스크립트에서 구현하기 쉽게 이미지를 지각적으로 비교할 수 있는 방법이 필요해서 개발 되었다. 또한 [[블록체인]]이 작동하는 과정에서 해싱이 필요하다. | ||
+ | ==작동과정== | ||
+ | 비트코인과 같은 크립토커렌시([[cryptocurrencies]])와 관련하여 트랜잭션은 입력으로 사용 되며 고정 길이의 출력을 제공하는 해시 알고리즘 ( Bitcoin은 SHA-256 사용 )을 통해 실행된다. | ||
+ | ===해싱 프로세스의 작동과정 예시=== | ||
+ | 특정한 입력을 한다. SHA-256 (Secure Hashing Algorithm 256)을 사용한다.SHA-256 의 경우 입력 크기에 상관없이 출력의 길이는 항상 고정 256 비트이다. 방대한 양의 데이터 및 트랜잭션을 처리 할 때 이 점이 중요하다. 따라서 기본적으로 큰 입력 데이터를 기억하는 대신 해시를 기억하고 추적 할 수 있다. 더 나아 가기 전에 먼저 해싱 함수의 다양한 속성과 블록 체인에서 구현되는 방법을 확인해야한다. | ||
==특징== | ==특징== | ||
* 이미지의 경우 알고리즘은 1 %의 경우 두 개의 서로 다른 이미지에 대해 동일한 차단 해시 값을 생성한다. | * 이미지의 경우 알고리즘은 1 %의 경우 두 개의 서로 다른 이미지에 대해 동일한 차단 해시 값을 생성한다. |
2019년 8월 6일 (화) 11:02 판
블록해시(Blockhash)는 비안 양(Bian Yang), 판 구(Fan Gu), 시아무 니우(Shiamu Niu)가 설명한 지각 이미지 해시 알고리즘의 변형을 구현하는 라이브러리이다.
개요
블록의 이름 정보를 담은 블록 해시는 SHA-256 방식으로 변환된 정보이다. 버전(version), 타임(time), 머클루트(Merkle Root), 타겟(target), 논스(Nonce), 이전의 블록 해시(Previousblockhash) 즉, 헤더부에 속하는 6가지를 이용해 구성된다. 블록해시는 256비트 해시를 생성하고, 그 해시는 이미지에 큰 변화없이, 원 상태로 고유하게 조정할 수 있도록 설계되어 있다. 두 해시 사이의 해밍 거리는 두 이미지가 얼마나 다른지를 나타내며, 한 자리 값은 일반적으로 크기가 서로 다르더라도 이미지가 동일하다는 것을 나타낸다.
개발 목적
Elog.io 도구를 개발하는 과정에서 기존에 있는 pHash, imgSeek 라이브러리보다 자바 스크립트에서 구현하기 쉽게 이미지를 지각적으로 비교할 수 있는 방법이 필요해서 개발 되었다. 또한 블록체인이 작동하는 과정에서 해싱이 필요하다.
작동과정
비트코인과 같은 크립토커렌시(cryptocurrencies)와 관련하여 트랜잭션은 입력으로 사용 되며 고정 길이의 출력을 제공하는 해시 알고리즘 ( Bitcoin은 SHA-256 사용 )을 통해 실행된다.
해싱 프로세스의 작동과정 예시
특정한 입력을 한다. SHA-256 (Secure Hashing Algorithm 256)을 사용한다.SHA-256 의 경우 입력 크기에 상관없이 출력의 길이는 항상 고정 256 비트이다. 방대한 양의 데이터 및 트랜잭션을 처리 할 때 이 점이 중요하다. 따라서 기본적으로 큰 입력 데이터를 기억하는 대신 해시를 기억하고 추적 할 수 있다. 더 나아 가기 전에 먼저 해싱 함수의 다양한 속성과 블록 체인에서 구현되는 방법을 확인해야한다.
특징
- 이미지의 경우 알고리즘은 1 %의 경우 두 개의 서로 다른 이미지에 대해 동일한 차단 해시 값을 생성한다.
- 사진의 경우 알고리즘이 실제적으로 고유한 블록 해시를 생성하지만 아이콘, 클립 아트,지도 및 기타 이미지의 경우 알고리즘의 고유한 블록화가 적다. 이미지에서 동일한 색상의 더 큰 영역 (배경 또는 테두리)은 더 자주 충돌한다.
- ‘특정한 데이터를 이를 상징하는 더 짧은 길이의 데이터로 변환하는 행위’를 의미한다.
- 블록 해시(Block Hash)는 블록의 식별자 역할을 수행합니다.
활용
- 일반적으로 우리가 특정한 정품 소프트웨어를 다운로드 받을 때 그 소프트웨어가 해커로 인해 변질되지 않은 정상적인 소프트웨어인 것을 모르기 때문에 우리는 이 때 해시(Hash)라는 것을 이용하여 검증한다.
- 데이터를 변질시킬 수 없는 특성, 무결성이 있어 암호화폐도 존재하는 것이다. 상징 데이터는 원래의 데이터가 조금만 달라져도 확연하게 달라지는 특성을 가지고 있어 무결성을 지키는 데에 많은 도움을 준다.
- 여기에서 상징 데이터는 원래의 데이터가 조금만 달라져도 확연하게 달라지는 특성을 가지고 있어 무결성을 지키는 데에 많은 도움을 준다.
블록해싱 알고리즘
- 블록헤더부 중 버전, 타임, 타켓, 논스는 little-endian형식으로 이전의 블록 해시, 머클루트는 reverse order로 변환한 뒤 합산한다.
- 합산한 정보들을 다이제스트로 메시지 암호화를 한다.
- 변형한 정보를 SHA-256 방식으로 암호화한다.
- 메시지 암호화와, SHA-256 암호화를 다시 한 번 반복한다.
- 결과값을 뒤집는다.[2][3]
각주
- ↑ 블록해시 홈페이지 - http://blockhash.io
- ↑ loum, 〈비트코인에서 블록해시 구하는 방법〉, 《브런치》, 2017-11-01
- ↑ yahweh87, 〈블록해시에 관한 정의〉, 《스팀잇》, 2018
참고자료
- loum, 〈비트코인에서 블록해시 구하는 방법〉, 《브런치》, 2017-11-01
- yahweh87, 〈블록해시에 관한 정의〉, 《스팀잇》, 2018
같이 보기