이더리움 Account

less than 1 minute read

개인키, 공개키, 주소 생성

  • 개인키 : 자신만이 알고 있어야 되는 키 (256bit), 블록체인 상에서 자기자신을 입증할 수 있게 해 줌.
  • 공개키 : 모두가 알고 있어도 되는 키 (256bit), 공개키로 잠겨 있는 경우, 맞는 개인키로만 해제 가능
  • 주소 : 공개키에 대해 keccak256 해시한 값(256bit)에서 앞 96bit를 버려서 남은 160bit를 16진수 변환해서 사용 (0x…)

주소 종류

  1. EOA (Externally Owned Account)
    • 일반 사용자들이 갖는 주소 등 일반적인 주소가 이에 해당함
    • 트랜잭션을 생성할 수 있는 주소 (모든 트랜잭션은 EOA로부터 시작된다.)
    • getCode 호출 시, ‘0x’ 반환값을 갖는다.
  2. CA (Contract Account)
    • 솔리디티를 이용해 만든 코드(Smart Contract)를 블록체인 상에 deploy시킬 때, 해당 코드가 인스턴스화되는데 이 떄 해당 인스턴스를 가리키는 포인터 역할을 한다.
    • 동일한 동작을 하는 CA는 얼마든지 있을 수 있지만, 해당 주소는 유일하다. (블록체인 상 모든 주소는 유일하다.)
    • EOA에서 CA의 함수 호출이 가능하며, CA에서 다른 CA의 함수를 호출하는 것 역시 가능하다. (Internal Transaction으로 동작한다.)
    • getCode 호출 시, 해당 컨트랙트에 대한 binary information이 반환된다.

구분하는 법

  • web3.eth.getCode(<궁금한 주소>) 의 결과값이 “0x”인 경우 EOA 이다!

Categories:

Updated: