2023. 5. 25. 03:04ㆍBlockChain/Ethereum
목차 |
1. 이더리움(Ethereum) |
2. 스마트 컨트랙트(Smart Contract) |
3. 이더리움의 Account |
4. 메시지와 트랜잭션 |
5. 이더리움의 코드 실행 |
6. 이더리움의 블록체인 |
1. 이더리움(Ethereum)
이더리움(Ethereum)은 블록체인 기술을 기반으로 스마트 계약(Smart Contract) 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이자 플랫폼의 자체 통화명이다.
이더리움은 비탈릭 부테린(Vitalik Buterin)이 2015년에 개발하였다.
비탈릭 부테린은 비트코인에 사용된 핵심 기술은 블록체인을 화폐 거래의 기록이 초점을 맞추지 않고,
계약서 등의 추가 정보를 기록할 수 있다는 점을 착안하였다.
전 세계 수많은 사용자들이 보유하고 있는 컴퓨팅 자원을 활용해 이더리움 가상 머신(EVM)을 만들고,
이 플랫폼을 이용하여 다양한 정보를 기록하는 시스템을 창안했다.
※ 이더리움의 특징
이더리움은 기존의 비트코인이 가진 블록체인 기술을 이용하여 다음을 가능하게한다.
스마트 컨트랙트
조건에 따라서 자동으로 실행되는 프로그램, 중개인 없이 신뢰성 있는 거래를 할 수 있도록 돕는다.
개방형 플랫폼
이더리움은 개방형 소스 프로젝트로, 전 세계의 개발자들이 참여하여 플랫폼의 발전에 기여할 수 있다.
개발자들은 Solidity 언어를 사용하여 스마트 컨트랙트를 작성하고, 다양한 도구와 라이브러리를 활용하여 개발을 진행할 수 있다.
다양한 응용분야
이더리움은 탈 중앙화된 금융 시스템, 예측 시장, 앱 스토어, 게임, 신원 확인 등 다양한 분야에서 응용된다.
개발자들은 이더리움의 플랫폼과 스마트 컨트랙트를 활용하여 자신의 아이디어를 구현하고 혁신적인 서비스를 제공 할 수 있다.
튜링 완전
이더리움은 튜링완전(Turing-Complete) 프로그래밍 언어가 심어진 블록체인이다.
튜링 완전이란, 계산 가능한 문제를 해결할 수 있는 모든 기게의 공통된 능력을 나타내는 말이다.
※ 이더리움과 블록체인의 차이점
- EVM이 존재한다.
- UTXO가 아닌 State(상태)를 사용한다.
- 트랜잭션 검증법
- 엉클 루트가 존재한다.
2. 스마트 컨트랙트(Smart Contract)
스마트 컨트랜트란 임의적인 계약 규칙을 구현한 코드에 의해 디지털 자산을 관리한다.
한마디로 자동으로 계약을 실행하는 프로그램이며,
여러 사람이 합의한 내용(계약)을 사람이 없더라도 프로그램이 자동으로 계약을 실행한다.
블록체인에서의 스마트 컨트랜트
i) 계약 성립조건이 기록된 거래내용을 블록체인에 저장한다.
ii) 조건 충족시 자동으로 성립하는 트랜잭션을 스마트 컨트랙트라고 한다.
3. 이더리움의 Account
이더리움에는 두 가지 형태의 Account(계정)가 있다.
EOA(Externally Owned Account)
지갑 주소로 사용되는 일반적인 계정을 나타낸다.
CA(Contract Account)
컨트랙트를 저장하는 계정이다.
이더리움의 Account 인터페이스는 다음과 같다.
interface Account {
nonce: number
balance: string
storageRoot: string
codeHash: string
}
4. 메시지와 트랜잭션
이더리움에서는 트랜잭션을 메시지와 트랜잭션으로 나눈다.
메시지와 트랜잭션의 차이는 서명이 있냐 없냐로 나뉜다.
서명이 없는 트랜잭션을 메시지라고 한다.
메시지는 다음의 인터페이스를 가지며, 트랜잭션은 여기에 서명을 나타내는 속성이 추가된다.
5. 이더리움 코드의 실행
이더리움의 코드는 다음의 순서에 따라 실행이 된다.
1) 계약 생성
소스코드를 작성한 후 컴파일을 진행한다.
2) 배포
계약주소(CA)를 할당하여 블록체인에 저장한다.
3) 트랜잭션 생성
CA로 함수호출, 인자값을 포함한 코드를 실행한다.
4) 가스 소비
트랜잭션 실행을 위해서 가스를 소비한다.
5) 코드 실행
EVM에서 컨트랙트 코드를 실행하여 CA에 연결된 계정의 상태를 변경한다.
6) 상태 변경
계약 상태가 변경된다.
7) 트랜잭션 완료 및 결과 반환
트랜잭션 완료 및 결과를 반환한다.
6. 이더리움의 블록체인
이더리움의 블록체인은 다음의 순서로 작동한다.
1) 이전 블록의 존재 및 유효성을 확인한다.
2) 타임스탬프
3) 블록내에서 유효성 검사
- 블록 넘버
- 난이도
- 트랜잭션 루트(머클 루트)
- 엉클 루트: 유효하지만 체인에 합류되지 않는 블록
- 가스 리미트: 컴퓨팅 자원
4) 작업 증명
난이도에 따른 Hash값 검증
5) 상태 업데이트
6) 최종 상태확인
'BlockChain > Ethereum' 카테고리의 다른 글
Ethereum - Truffle (0) | 2023.05.27 |
---|---|
Ethereum - Smart Contract(스마트 컨트랙트, 계약) (0) | 2023.05.27 |
Ethereum - EVM(Ethereum Virtual Machine)와 가스(Gas) (0) | 2023.05.27 |
Ethereum - Ganache(가나쉬) (1) | 2023.05.26 |
Ethereum과 Web3 (0) | 2023.05.25 |