이더스캔에서 나오는 Transaction Hash는 어떤 정보인가요?
이더스캔에서 나오는 Transaction Hash는 어떤 정보인가요?
지갑 주소 형태와 비슷하긴 한데
코인 전송하면 Transaction Hash 가 생기는데 어떤 의미인건가요?
블록 생성/검증 관점에서 설명 좀 부탁드려요~
예를 들어 이더리움 블록체인 상에서 A가 B에게 1ETH를 전송하는 트랜젝션을 발생시킨다고 할 때, 이 트랜젝션이 다른 노드들에게 브로드캐스팅되기 위해서는 A가 자신의 프라이빗 키로 서명을 해야만 합니다.
그리고 A가 서명을 하게 되면 트랜젝션이 다른 노드로 전파되게 되고 이때 다른 노드로부터 생성된 TxHash를 받을 수 있게 됩니다. 이때 TxHash는 말 그대로 트랜젝션의 세부 정보와 서명 정보를 해싱한 암호화된 값이라고 할 수 있습니다.
그러나 이때의 TxHash는 Raw Transaction으로 암호화 해싱을 한 번 거친 '있는 그대로의' 긴 문자열로 이루어진 트랜젝션이라고 할 수 있습니다.
그리고 이러한 Raw Transaction이 포함하고 있는 정보에는 논스 값, 가스 비, 가스 한도, B의 지갑 주소, 보내는 이더리움의 수량, 데이터 필드에 입력된 문자열(일반적으로 비어 있음) 등이 있습니다.
하지만 이러한 Raw Transaction은 우리가 일반적으로 확인하는 TxHash 값은 아니며 우리가 보는 해시 값 이것보다 더 짧은 문자열이라고 할 수 있습니다.
이어서 우리가 확인할 수 있는 TxHash 값을 만들기 위해서는 Raw Transaction에다가 이더리움의 키를 만들 때 사용하는 암호화 해시 함수인 Keccak256를 통해 한 번 더 해싱하여 암호화를 하는 과정이 필요합니다.
이렇게 되면 우리가 일반적으로 이더스캔을 통해 확인할 수 있는 TxHash 값이 나오게 되며 글로는 긴 과정을 거치는 것 같지만 실제로 우리가 트랜젝션을 브로드캐스팅하는 즉시 TxHash 값이 생성됩니다.
끝으로 이렇게 트랜젝션이 브로드캐스팅 되고 TxHash가 생성되며 트랜젝션이 Mempool에서 유효성이 검증된 후 펜딩 상태에 있다가 블록이 생성되면서 기록되고 1컨펌을 받게 되면 비로소 트랜젝션의 처리가 끝나게 됩니다.
그리고 우리가 이더스캔을 통해 TxHash 값을 입력함으로써 트랜젝션의 상세 정보를 확인할 수 있는 것이라고 할 수 있습니다.
답변이 도움이 되길 바랍니다.