digital-signature

디지털 서명

  • 용도

    • 이더리움 계정과 개인키 소유자가 이더 지출 또는 컨트랙트 이행을 승인했다는 것을 증명
    • 부인 방지 (보낸 사람이 보내지 않았다고 주장할 수 없음)
    • 트랜잭션이 서명된 후엔 누구도 트랜잭션 데이터를 수정할 수 없음을 증명
  • 타원 곡선 암호를 기반으로 한다.

작동 방법

  • 알고리즘
    • 메시지에서 개인키를 사용해 서명을 만드는 알고리즘
    • 누구나 메시지와 공개키만 사용해서 서명을 검증할 수 있게 해주는 알고리즘

서명 만들기

  • 메시지: RLP로 인코딩된 트랜잭션의 Keccak-256의 해시
  • 서명키: EOA의 개인 키

$Sig = F_{sig}(F_{keccak256}(transaction), key)$

서명 확인

  • 필요한 것
    • 서명
    • 시리얼라이즈된 트랜잭션
    • 서명을 만들 때 사용한 개인키