트랜잭션 서명 (Signing Transactions)#
공개키와 개인키#
블록체인 트랜잭션의 핵심은 개인키와 공개키의 관계를 이해하는 것입니다.
- 개인키(Private Key): 무작위로 생성된 비밀 키로, 모든 트랜잭션에 서명하는 데 사용됩니다.
- 공개키(Public Key): 개인키를 타원곡선 디지털 서명 알고리즘(ECDSA)을 통해 변환하여 생성됩니다.
- 개인키는 반드시 비밀로 유지되어야 하지만, 공개키는 모든 사람이 접근할 수 있어야 합니다.
트랜잭션 서명 과정#
- 블록체인에 트랜잭션을 보낼 때, 개인키로 데이터에 디지털 서명을 합니다.
- 해싱 알고리즘을 사용하여 메시지 서명으로부터 개인키를 역추적하는 것은 불가능합니다.
- 누구나 메시지 서명을 사용자의 공개키와 비교하여 트랜잭션의 유효성을 검증할 수 있습니다.
개인키 보안의 중요성#
- MetaMask에서 계정 상세정보 > 개인키 표시를 통해 개인키에 접근할 수 있습니다.
- 개인키를 가진 사람은 누구나 사용자를 대신하여 트랜잭션에 서명할 수 있으므로, 개인키를 안전하게 보관하는 것이 매우 중요합니다.
- 지갑 주소는 공개키를 Keccak256 알고리즘으로 해싱하여 생성된 마지막 20바이트입니다.
핵심 정리#
- 트랜잭션은 사용자의 개인키로 서명됩니다.
- 생성된 메시지 서명은 공개키와의 비교를 통해 누구나 검증할 수 있습니다.
- 개인키는 반드시 비밀로 유지하고 안전하게 보관해야 합니다.
- 공개키는 개인키에 타원곡선 디지털 서명 알고리즘(ECDSA)을 적용하여 생성됩니다.
- 이더리움 주소는 공개키를 Keccak256 알고리즘으로 해싱하여 생성됩니다.