본문 바로가기
BlockChain/ethereum

Ethereum storage와 keccak-256

by gamxong 2023. 3. 14.

 

 

Ethereum의 한 가지 중요한 측면은 Keccak-256 해시 함수를 기반으로 하는 storage model을 가지고 있다는 것 입니다.

 

이더리움에서 각 smart contract는 계약 실행에 필요한 데이터를 저장하는 데 사용할 수 있는 자체 저장 공간을 가지고 있습니다. 저장 공간은 키와 값이 32바이트(256비트) 단어인 키-값 저장소로 구성됩니다. 값은 정수, 주소 또는 바이트 배열일 수 있으며 키는 계약 주소와 256비트 인덱스 값의 연결을 해싱하여 생성됩니다.

 

Keccak-256 해시 함수는 여러 특징 때문에 이더리움 스토리지 시스템의 키를 생성하는 데 사용됩니다.

 

1. 단방향 함수이므로 해시 값에서 입력 메시지를 생성하는 것이 사실상 불가능합니다.

2. 고정 길이 출력을 생성하므로 스토리지 시스템에서 데이터를 쉽게 저장하고 검색할 수 있습니다.

3. 충돌에 강하므로 두 개의 다른 입력이 동일한 해시 값을 생성할 가능성이 없습니다.


smart contract의 저장 공간에 액세스하기 위해 이더리움은 SSTORE라는 특수 opcode를 사용합니다. 이 코드는 키와 값이라는 두 개의 32바이트 단어를 입력으로 사용합니다. 키가 스토리지 공간에 이미 존재하는 경우 값이 업데이트됩니다. 키가 없으면 새 키-값 쌍이 생성됩니다. 각 SSTORE 작업은 작업을 실행하는 데 필요한 컴퓨팅 노력의 척도인 가스를 소비합니다. 소비되는 가스의 양은 저장되는 값의 크기와 키가 저장 공간에 이미 존재하는지 여부에 따라 다릅니다.

전반적으로 Keccak-256을 사용하는 Ethereum의 storage model은 smart contract이 데이터를 저장하고 검색할 수 있는 안전하고 효율적인 방법을 제공합니다. 

댓글