[BlockChain] 이더리움의 자료(?)구조 (해시트리s)

pangyoElon·2022년 12월 20일
0
post-thumbnail


이더리움의 블록헤더에는 stateRoot, transactionsRoot, receiptRoot 3가지 해시트리의 Root값이 있다

각 해시트리별로 들어가는 정보를 보면 다음과 같다

먼저 stateRoot의 해시트리(World State Trie)를 보면 EOA와 CA의 nonce(이중지불 방지), balance, codeHash가 들어가 있는 걸 볼 수 있고 추가적으로 storageRoot라는 또 다른 해시트리의 루트값을 볼 수 있는데
storageRoot는 Account storage contents Trie라고 하는 해시트리의 루트값이며 이 해시트리는 CA들의 storage 정보를 저장한다
솔리디티 작성 시 memory, calldata를 제외한 storage 정보들이 여기 저장된다

transactionRoot는 트렌젝션들의 해시트리 루트값,
receiptRoot는 이벤트 로그들의 해시트리 루트값이다

트리들로 알 수 있는 정보들

이 거래가 특정 블록에 속해있는가? => transaction trie
지난 30일 동안, 이 주소에서 생성된 특정 형태의 모든 거래를 알려주세요 => receipt trie
특정 계정의 현재 잔고가 얼마인가? => state trie
현재 이 계정이 존재하는가? => state trie
특정 거래를 특정 계약에 실행시켜보고자 한다. 출력값이 무엇인가? => state trie

profile
01년 블록체인 개발 취준생

0개의 댓글