본문 바로가기
⛓️ Web3

마스터링 이더리움_Ch.2 이더리움 기초

by meLR 2023. 9. 10.

마스터링 이더리움을 개인적으로 정리한 글입니다. 누락된 내용이 있을 수 있으며 잘못된 해석이 있을 수 있습니다.

포스트에 문제가 있다면 언제든지 댓글 부탁드립니다. :)


이더 화폐 단위

💡 Ether = 화폐 Ethereum ≠ 화폐 
💡 이더의 가장 작은 단위는 wei (1 Ether = 10^18 wei)

이더리움 지갑 선택하기

지갑 = 이더리움 계정을 관리에 도움을 주는 소프트웨어, 이더리움의 시스템 관문

 

지갑

  • 사용자의 키를 보유
  • 사용자를 대신하여 트랜잭션을 생성, 브로드캐스트
💡 개인키 = 계정

월드 컴퓨터 소개

EVM은 글로벌 싱글톤 즉, 단일 인스턴스 컴퓨터

→ 이더리움의 각노드는 컨트랙트 실행을 확인 하기위해 EVM 로컬사본을 실행

→ 이더리움 블록체인은 트랜잭션, 스마트 컨트랙트를 처리할때 월드 컴퓨터의 변화하는 상태를 기록한다.

EOA와 컨트랙트

외부소유계정은 개인키가 있는 계정 → 자금 또는 컨트랙트에 대한 접근을 제한한다는 뜻

CA

  • 스마트컨트랙트 코드를 가지고 있다.
  • 개인키가 없다. → 트랜잭션을 시작할 수 없다. → 하지만 여러 호출로 인한 반응은 가능하다.(다중서명 스마트 트랜잭션)
  • 스마트 컨트랙트의 로직으로 계정을 제어한다. → 스마트 컨트랙트코드는 컨트랙트 계정 생성시 이더리움 블록에 기록되며 EVM에 의해 실행되는 소프트웨어 프로그램
  • 주소가 존재하기 때문에 이더를 보내고 받을수있음
  • 트랜잭션의 목적지가 컨트랙트 계정일때 이더와 데이터를 보낼 수 있다.

간단한 컨트랙트 : 테스트 이더 Faucet

💡 msg 객체는 모든 컨트랙트에서 접근 가능한 객체이다. → 이 컨트랙트의 실행을 시작한 트랜잭션을 나타낸다.

fallback , default 함수

function () public payable {}

컨트랙트를 실행한 트랜잭션이 컨트랙트의 함수를 지정하지 않았거나 데이터를 포함하지 않을 경우에 호출된다.

컨트랙트에는 하나의 기본함수를 가질수있으며 일반적으로 이더를 받는 함수다.

{}가 비어있는걸 보면 알수있듯이 이더를 받는일 외에는 아무일도 하지 않는다.

이더를 컨트랙트 주소로 보내는 트랜잭션을 발생시키면 이 함수가 작동한다.

블록체인에 컨트랙트 생성하기

💡 솔리디티로 컨트랙트 작성 → 컨트랙트를 바이트 코드로 컴파일 → 블록체인에 컨트랙트 등록

 

블록체인에 컨트랙트 등록 = 목적지 주소가 0x00 (제로 어드레스)인 특수 트랜잭션을 생성

컨트랙트를 등록하면 새로운 CA가 등록된다.