hashing

suhan cho·2022년 5월 19일
0

hashing

  • 특수하게 정의된 해시함수를 이용하여 임의의 사이즈를 가진 데이터를 고정된 길이를 가지는 데이터로 매핑하는 프로세스
  • 입력값에 변화가 있으면 다른 출력값이 나온다(2^256크기이다)
  • 256비트 해시함수는 충돌 가능성 없고 서로 다른 데이터는 다른 해시값을 가짐

블록체인에서 해시 사용

  • 디지털 서명에 사용된다
  • off-chain on-chain
  • 스토리지를 위해서 해시를 이용해서 줄여 저장한다.

블록체인 헤더

  • 뭔가를 건드리면 prev block hash값이 변경된다
  • 위변조가 불가능 하다
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract Khash {

    bytes32 public hashedValue;

/*
    function hashMe( uint value1, bytes32 password) public 
    {
	    hashedValue = keccak256(abi.encodePacked(value1, password));
    }  
*/
    function hashMe(uint value1) public 
    {
        hashedValue = keccak256(abi.encodePacked(value1));
    }
}
  • 전달하고자 하는 값을 헤시를 이용해 원래 값을 볼 수 없게한다
  • kaccak256이라는 해쉬 함수는 이미 배포되어있는 모듈형태여서 부르트포스로 알아낼 수는 있다
  • 위와 같은 경우가 있기에 psw(bytes32이므로 16진수로 바꿔서 넣어줘야 한다)를 추가해 더 복잡하게 한다
profile
안녕하세요

0개의 댓글