accounts

EOA & Contract

Externally Owned Account & Contract Account

외부 소유 계정(EOA)

개인키가 있는 계정 (자금 컨트랙트에 대한 접근을 제어)

contract account

스마트 컨트랙트 코드를 가지고 있고, 개인키는 없음 (스마트 컨트랙트 코드로 제어)

  • 스마트 컨트랙트 코드: 컨트랙트 계정 생성 시 이더리움 블록체인에 기록되고 EVM에 의해 실행되는 소프트웨어 프로그램

  • 주소를 들고 있고 이더를 보내고 받을 수 있음

코드 실행

  • transaction의 목적지가 컨트랙트 계정 주소일 때 EVM에서 실행
  • 트랜잭션과 트랜잭션 데이터를 입력으로 사용
  • transaction에 ether, 실행할 컨트랙트의 특정 함수, 파라미터 데이터 등을 포함할 수 있다.

Transaction 시작

  • 컨트랙트 계정은 개인키가 없기에 트랜잭션 시작 불가
  • EOA 만 시작할 수 있음
  • 하지만 컨트랙트는 복잡한 실행 경로를 구축하여 다른 컨트랙트를 호출해서 react할 수 있다.
    • 방법
      • 다중 서명 스마트 트랜잭션 지갑에 지급 요청 트랜잭션을 전송하여 일부 ETH를 다른 주소로 보냄
        • 다중 서명 지갑: 2명 이상의 승인으로 돈이 움직이는 지갑
        • 지급 요청 트랜잭션: 제안, 전송, 승인 과정을 통해서 송금하는 것