"블록해시"의 두 판 사이의 차이
(새 문서: '''블록해시'''(Blockhash)는 비안 양(Bian Yang), 판 구Fan Gu, 시아무 니우Shiamu Niu가 설명한 지각 이미지 해시 알고리즘의 변형을 구현...) |
잔글 |
||
1번째 줄: | 1번째 줄: | ||
− | '''블록해시'''(Blockhash)는 [[비안 양]](Bian Yang), [[판 구]]Fan Gu, [[시아무 니우]]Shiamu | + | '''블록해시'''(Blockhash)는 [[비안 양]](Bian Yang), [[판 구]](Fan Gu), [[시아무 니우]](Shiamu Niu)가 설명한 [[지각 이미지 해시 알고리즘]]의 변형을 구현하는 [[라이브러리]]이다. |
==개요== | ==개요== | ||
− | 블록의 이름 정보를 담은 블록 해시는 [[ | + | 블록의 이름 정보를 담은 블록 해시는 [[SHA-256]] 방식으로 변환된 정보이다. 버전(version), 타임(time), [[머클루트]](Merkle Root), 타겟(target), [[논스]](Nonce), 이전의 블록 해시(Previousblockhash) 즉, 헤더부에 속하는 6가지를 이용해 구성된다. 블록해시는 256비트 해시를 생성하고, 그 해시는 이미지에 큰 변화없이, 원 상태로 고유하게 조정할 수 있도록 설계되어 있다. 두 해시 사이의 [[해밍]] 거리는 두 이미지가 얼마나 다른지를 나타내며, 한 자리 값은 일반적으로 크기가 서로 다르더라도 이미지가 동일하다는 것을 나타낸다. |
− | 블록해시는 256비트 해시를 생성하고, 그 해시는 이미지에 큰 변화없이, 원 상태로 고유하게 조정할 수 있도록 설계되어 있다. 두 해시 사이의 [[해밍]] 거리는 두 이미지가 얼마나 다른지를 나타내며, 한 자리 값은 일반적으로 크기가 서로 다르더라도 이미지가 동일하다는 것을 나타낸다. | ||
==개발 목적== | ==개발 목적== | ||
10번째 줄: | 9번째 줄: | ||
==특징== | ==특징== | ||
* 이미지의 경우 알고리즘은 1 %의 경우 두 개의 서로 다른 이미지에 대해 동일한 차단 해시 값을 생성한다. | * 이미지의 경우 알고리즘은 1 %의 경우 두 개의 서로 다른 이미지에 대해 동일한 차단 해시 값을 생성한다. | ||
− | * 사진의 경우 알고리즘이 실제적으로 고유한 블록 해시를 생성하지만 아이콘, 클립 아트,지도 및 기타 이미지의 경우 알고리즘의 고유한 블록화가 적다. 이미지에서 동일한 색상의 더 큰 영역 (배경 또는 테두리)은 더 자주 충돌한다.<ref> | + | * 사진의 경우 알고리즘이 실제적으로 고유한 블록 해시를 생성하지만 아이콘, 클립 아트,지도 및 기타 이미지의 경우 알고리즘의 고유한 블록화가 적다. 이미지에서 동일한 색상의 더 큰 영역 (배경 또는 테두리)은 더 자주 충돌한다.<ref>블록해시 홈페이지 - http://blockhash.io</ref> |
− | == | + | ==블록해싱 알고리즘== |
− | # | + | # [[블록헤더]]부 중 버전, 타임, 타켓, [[논스]]는 [[little-endian]]형식으로 이전의 블록 해시, 머클루트는 [[reverse order]]로 변환한 뒤 합산한다. |
# 합산한 정보들을 다이제스트로 메시지 암호화를 한다. | # 합산한 정보들을 다이제스트로 메시지 암호화를 한다. | ||
# 변형한 정보를 [[SHA-256]] 방식으로 암호화한다. | # 변형한 정보를 [[SHA-256]] 방식으로 암호화한다. | ||
# 메시지 암호화와, [[SHA-256]] 암호화를 다시 한 번 반복한다. | # 메시지 암호화와, [[SHA-256]] 암호화를 다시 한 번 반복한다. | ||
− | # 결과값을 뒤집는다.<ref>loum,〈[https://brunch.co.kr/@loum/36 비트코인에서 블록해시 구하는 방법]〉, 《브런치》, 2017-11-01</ref><ref>yahweh87,〈[https://steemit.com/kr/@yahweh87/5 블록해시에 관한 정의]〉, | + | # 결과값을 뒤집는다.<ref>loum, 〈[https://brunch.co.kr/@loum/36 비트코인에서 블록해시 구하는 방법]〉, 《브런치》, 2017-11-01</ref><ref>yahweh87, 〈[https://steemit.com/kr/@yahweh87/5 블록해시에 관한 정의]〉, 《스팀잇》, 2018</ref> |
− | |||
{{각주}} | {{각주}} | ||
==참고자료== | ==참고자료== | ||
+ | * loum, 〈[https://brunch.co.kr/@loum/36 비트코인에서 블록해시 구하는 방법]〉, 《브런치》, 2017-11-01 | ||
+ | * yahweh87, 〈[https://steemit.com/kr/@yahweh87/5 블록해시에 관한 정의]〉, 《스팀잇》, 2018 | ||
==같이 보기== | ==같이 보기== |
2019년 7월 24일 (수) 02:48 판
블록해시(Blockhash)는 비안 양(Bian Yang), 판 구(Fan Gu), 시아무 니우(Shiamu Niu)가 설명한 지각 이미지 해시 알고리즘의 변형을 구현하는 라이브러리이다.
개요
블록의 이름 정보를 담은 블록 해시는 SHA-256 방식으로 변환된 정보이다. 버전(version), 타임(time), 머클루트(Merkle Root), 타겟(target), 논스(Nonce), 이전의 블록 해시(Previousblockhash) 즉, 헤더부에 속하는 6가지를 이용해 구성된다. 블록해시는 256비트 해시를 생성하고, 그 해시는 이미지에 큰 변화없이, 원 상태로 고유하게 조정할 수 있도록 설계되어 있다. 두 해시 사이의 해밍 거리는 두 이미지가 얼마나 다른지를 나타내며, 한 자리 값은 일반적으로 크기가 서로 다르더라도 이미지가 동일하다는 것을 나타낸다.
개발 목적
Elog.io 도구를 개발하는 과정에서 기존에 있는 pHash, imgSeek 라이브러리보다 자바 스크립트에서 구현하기 쉽게 이미지를 지각적으로 비교할 수 있는 방법이 필요해서 개발 되었다.
특징
- 이미지의 경우 알고리즘은 1 %의 경우 두 개의 서로 다른 이미지에 대해 동일한 차단 해시 값을 생성한다.
- 사진의 경우 알고리즘이 실제적으로 고유한 블록 해시를 생성하지만 아이콘, 클립 아트,지도 및 기타 이미지의 경우 알고리즘의 고유한 블록화가 적다. 이미지에서 동일한 색상의 더 큰 영역 (배경 또는 테두리)은 더 자주 충돌한다.[1]
블록해싱 알고리즘
- 블록헤더부 중 버전, 타임, 타켓, 논스는 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
같이 보기