Transaction 구조

Tranasction은 EOA가 EOA에게 Eth를 전송하거나 EOA가 CA를 호출할 때 사용되는 구조이다. 이 데이터는 블록체인상에 기록된다.

스크린샷 2024-01-08 오전 11.57.59.png

EOA-EOA Transaction

EOA-EOA간의 거래는 Value에 보내는 Eth양이 들어가고 Input Data에는 빈 값이 들어간다.

스크린샷 2024-01-08 오전 11.58.19.png

EOA-CA Transaction

EOA-CA 간의 거래는 Value에는 보내는 값이 없는 경우에 0이 들어가고 Data에 호출하는 함수명과 파라미터 값이 들어간다.

스크린샷 2024-01-08 오전 11.58.36.png

Transaction 서명

Ethereum은 secp256k1기반의 타원곡선암호(ECC)를 이용하여 서명하고 검증한다.

Transaction 에서 r,s 가 실제 서명이고 v 는 서명값 복구를 위한 값으로 27,28을 사용하고 있다.

서명절차

  1. 서명할 데이터의 hash 값 e를 구한다.
  2. n 보다 작은 랜덤값 k를 생성한다.
  3. k*G 인 좌표 (x1,y1)를 계산한다.
  4. r = x1 mod n인 서명 값 r을 계산한다. ( r == 0 인 경우 2) 부터 다시 시작)
  5. s = k!" e + rd# mod n 인 두 번째 서명 값 s를 계산한다. (s ==0 0 인 경우 2) 부터 다시 시작)

검증절차

  1. 원본 메시지의 hash 값 e를 구한다.