728x90
반응형
블록체인
정보를 블록이라고 하는 단위로 저장하여 저장된 블록들을 체인 형태로 묶은 저장 기술
해시함수 (Hash Function)
임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수
- { 해시, 해시 값, 해시 코드 } = 해시 함수에 의해 얻어지는 값
- 데이터를 X, 해시함수를 H라고 표기할 때 해시를 H(X)로 표기
- 산업에서 가장 널리 쓰이는 해시 함수는 SHA-2 (e.g., SHA-256), SHA-3 (e.g., Keccak)
💡 MD5(Message-Digest algorithm 5)와 SHA의 차이
속도 MD5
보안성 SHA
MD5는 값이 중복되는 "Collision" 문제도 나타나기 때문에 SHA를 권장하는 추세
- SHA(Secure Hash Algorithm)-256
- 임의의 길이 메시지를 256 비트(bits)의 축약된 메시지로 만들어내는 해시 알고리즘
import hashlib string1 = "hello" result1 = hashlib.sha256(string1.encode()).hexdigest() print(result1) string2 = "hello!" result2 = hashlib.sha256(string2.encode()).hexdigest() print(result2)
Rules
- 하나의 데이터에서 오직 단 하나의 해시가 도출
- 임의의 데이터 X와 Y가 있을 때 hash값 H(𝒳)
- if X == Y then H(X) == H(Y)
- if X != Y then H(X) != H(Y)
- if H(X) == H(Y) then X == Y
예제 1
예제 2
이 때 두 해시 함수 모두 256 비트 길이의 해시를 생성한다.
본 포스트는 GroundX 강의 학습내용을 바탕으로 작성되었습니다.
반응형
'블록체인 > Klaytn' 카테고리의 다른 글
6장 - 공개키 암호화와 전자서명 (0) | 2023.05.25 |
---|---|
5장 - 블록체인의 비교 (0) | 2023.05.25 |
4장 - 합의 알고리즘 (0) | 2023.05.25 |
3장 - 블록체인 네트워크 (0) | 2023.05.25 |
2장 - 블록, 블록헤더, 해시포인터 (0) | 2023.05.25 |