마스터링 이더리움을 개인적으로 정리한 글입니다. 누락된 내용이 있을 수 있으며 잘못된 해석이 있을 수 있습니다.
포스트에 문제가 있다면 언제든지 댓글 부탁드립니다. :)
이더 화폐 단위
💡 Ether = 화폐 Ethereum ≠ 화폐
💡 이더의 가장 작은 단위는 wei (1 Ether = 10^18 wei)
이더리움 지갑 선택하기
지갑 = 이더리움 계정을 관리에 도움을 주는 소프트웨어, 이더리움의 시스템 관문
지갑
- 사용자의 키를 보유
- 사용자를 대신하여 트랜잭션을 생성, 브로드캐스트
💡 개인키 = 계정
월드 컴퓨터 소개
EVM은 글로벌 싱글톤 즉, 단일 인스턴스 컴퓨터
→ 이더리움의 각노드는 컨트랙트 실행을 확인 하기위해 EVM 로컬사본을 실행
→ 이더리움 블록체인은 트랜잭션, 스마트 컨트랙트를 처리할때 월드 컴퓨터의 변화하는 상태를 기록한다.
EOA와 컨트랙트
외부소유계정은 개인키가 있는 계정 → 자금 또는 컨트랙트에 대한 접근을 제한한다는 뜻
CA
- 스마트컨트랙트 코드를 가지고 있다.
- 개인키가 없다. → 트랜잭션을 시작할 수 없다. → 하지만 여러 호출로 인한 반응은 가능하다.(다중서명 스마트 트랜잭션)
- 스마트 컨트랙트의 로직으로 계정을 제어한다. → 스마트 컨트랙트코드는 컨트랙트 계정 생성시 이더리움 블록에 기록되며 EVM에 의해 실행되는 소프트웨어 프로그램
- 주소가 존재하기 때문에 이더를 보내고 받을수있음
- 트랜잭션의 목적지가 컨트랙트 계정일때 이더와 데이터를 보낼 수 있다.
간단한 컨트랙트 : 테스트 이더 Faucet
💡 msg 객체는 모든 컨트랙트에서 접근 가능한 객체이다. → 이 컨트랙트의 실행을 시작한 트랜잭션을 나타낸다.
fallback , default 함수
function () public payable {}
컨트랙트를 실행한 트랜잭션이 컨트랙트의 함수를 지정하지 않았거나 데이터를 포함하지 않을 경우에 호출된다.
컨트랙트에는 하나의 기본함수를 가질수있으며 일반적으로 이더를 받는 함수다.
{}가 비어있는걸 보면 알수있듯이 이더를 받는일 외에는 아무일도 하지 않는다.
이더를 컨트랙트 주소로 보내는 트랜잭션을 발생시키면 이 함수가 작동한다.
블록체인에 컨트랙트 생성하기
💡 솔리디티로 컨트랙트 작성 → 컨트랙트를 바이트 코드로 컴파일 → 블록체인에 컨트랙트 등록
블록체인에 컨트랙트 등록 = 목적지 주소가 0x00 (제로 어드레스)인 특수 트랜잭션을 생성
컨트랙트를 등록하면 새로운 CA가 등록된다.
'⛓️ Web3' 카테고리의 다른 글
마스터링 이더리움_Ch.4 암호학 (0) | 2023.09.15 |
---|---|
마스터링 이더리움_Ch.3 이더리움 클라이언트 (0) | 2023.09.12 |
마스터링 이더리움_Ch.1 이더리움이란 무엇인가? (0) | 2023.09.09 |
솔리디티 문해력 특강_ 3강 (0) | 2023.09.07 |
솔리디티 문해력 특강_ 2강 (0) | 2023.09.05 |