관리 메뉴

즐겁게, 코드

keccak256 함수로 난수 생성하기 본문

💬 언어/Solidity

keccak256 함수로 난수 생성하기

Chamming2 2021. 4. 16. 00:23

블럭체인에서 보안은 매우 중요한 문제입니다.

따라서 솔리디티는 keccak256 이라는 강력한 해시 함수를 내장하고 있는데요, 한번 예를 들어 보겠습니다.

(Git의 커밋번호를 생성할 때 쓰는 해시 알고리즘이 SHA-1인데, keccak256은 SHA-3을 사용합니다.)

keccak256("aaaab");
//6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5

keccak256("aaaac");
//b1f078126895a1424524de5321b339ab00408010b7cf0e6ed451514981e58aa9

단순히 입력으로 주어진 문자열의 한 문자를 b에서 c로 바꿨을 뿐인데 해시값이 완전히 달라진 모습입니다.

 

C++ 등 다른 프로그래밍 언어에서는 현재 시각 등 추측할 수 있는 값을 난수의 시드(seed)로 삼는데 반해, keccak256 함수는 난수 충돌이 일어날 확률이 매우 희박한 "안전한 난수" 를 생성해주니, 솔리디티에서는 keccak256 함수를 사용해주시면 됩니다.

반응형
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆