-
[Blockchain 101] Smart ContractIntern/블록체인 2024. 11. 27. 09:01
• EOA / Smart Contract 차이점?
구분 EOA Smart Contract 소유 및 관리 주체 개인이 소유하며 프라이빗 키를 통해 제어 블록체인에 배포된 코드로 특정 주소를 가짐 트랜잭션 생성 직접 트랜잭션을 생성하고 서명 가능 자체적으로 트랜잭션 생성 불가능,
외부 요청에 의해 작동실행 조건 사용자의 서명과 가스비 지불로 실행 트랜잭션 호출 및 조건 만족 시 실행 가능 가스비 지불 주체 사용자가 직접 가스비를 지불 가스비는 호출한 EOA나 다른 Smart Contract가 부담 저장 데이터 ETH 잔고만 보유 가능 상태 변수, ETH, 기타 데이터 저장 가능 역할 사용자가 블록체인과 상호작용하는 기본 계정 특정 로직을 수행하는 프로그램처럼 작동
• ERC-20, ERC-721, ERC-1155
- ERC-20
➀ 대체 가능한 토큰 표준
➁ 동일한 값의 토큰이 상호 교환 가능
➂ 토큰 전송, 잔고 확인, 승인 등의 기능 제공
- ERC-721
➀ 대체 불가능한 토큰(NFT) 표준
➁ 각 토큰이 고유하며 식별 가능한 메타데이터 포함
➂ 주로 디지털 자산(ex) 이미지, 게임 아이템) 표현에 사용
- ERC-1155
➀ 멀티 토큰 표준
➁ 대체 가능한 토큰과 대체 불가능한 토큰을 동시에 지원
➂ 단일 Contract에서 여러 토큰 관리 가능
• Read / Write
- Read
➀ Smart Contract에서 데이터를 읽는 작업
➁ 상태 변수 조회 또는 함수 호출(가스비 없음)
➂ ex) 토큰 잔고 확인, 특정 상태 값 조회
- Write
➀ Smart Contract의 상태를 변경하는 작업
➁ 트랜잭션을 통해 실행되며 가스비가 필요
➂ ex) 토큰 전송, 상태 변경, 데이터 추가
• Proxy Pattern
- Proxy Pattern이란?
➀ Smart Contract를 업데이트 가능하도록 설계
➁ 사용자와 상호작용하는 Proxy Contract와 실제 로직이 담긴 Logic Contract로 분리
➂ Proxy Contract는 Logic Contract로 호출을 위임
- 장점
➀ 코드 업그레이드 가능
➁ 기존 데이터 및 주소를 유지하면서 새로운 로직 배포 가능
• Smart Contract는 어떻게 배포하고, 배포되면 이후에 어떻게 실행이 되는가?
- 배포
➀ Solidity로 작성된 코드를 컴파일해 바이트코드 생성
(Solidity : 이더리움 플랫폼에서 Smart Contract를 작성하기 위해 설계된 프로그래밍 언어)
➁ EOA에서 트랜잭션을 생성하여 배포
➂ 배포 후 Smart Contract가 블록체인에 저장됨
- 실행
➀ EOA가 Smart Contract의 함수를 호출하는 트랜잭션 전송
➁ 특정 조건 만족 시 내부적으로 정의된 로직 실행
➂ 실행 결과는 블록체인에 기록되며 불변
• Smart Contract가 스스로 어떤 조건에 의해 실행되는 것이 가능한가?
Smart Contract는 EOA 또는 다른 Smart Contract의 호출에 의해 실행됩니다.
ex) 자동 실행 예시
➀ 타임락(Time Lock) : 특정 시간이 되면 실행
➁ 특정 이벤트 발생 감지
➂ 다른 Contract에서 호출을 통해 트리거
• Smart Contract에 Transaction을 보내려면 어떤 방법들이 있는가?
➀ 웹 인터페이스 사용
- Metamask 등 지갑을 통해 직접 트랜잭션 서명 및 전송
➁ 프로그램 코드 사용
- Web3.js, Ethers.js 등의 라이브러리를 활용해 트랜잭션 생성
➂ CLI 도구 사용
- Truffle, Hardhat을 통해 스크립트 실행
➃ Smart Contract 내부 호출
- 다른 Smart Contract에서 함수 호출을 통해 실행
• Smart Contract에 Transaction을 보내면 어떤 일들이 일어나는가?
➀ 트랜잭션 생성 및 서명
- EOA가 트랜잭션 생성 후 개인 키로 서명
➁ 트랜잭션 전송 및 블록 포함
- 노드로 전송되어 네트워크에서 검증 후 블록에 포함
➂ Contract 실행
- 트랜잭션에 포함된 데이터(함수 호출 및 파라미터)에 따라 로직 실행
- 상태 값 변경 및 이벤트 발생 가능
➃ 결과 저장
- 실행 결과가 블록체인에 기록
- 실패한 경우 트랜잭션은 롤백되며, 가스비 일부 소모
반응형'Intern > 블록체인' 카테고리의 다른 글
[Blockchain 101] Proof of Stake(PoS) (0) 2024.11.30 [Blockchain 101] Proof of Work(PoW) (0) 2024.11.28 [Blockchain 101] 블록체인의 장단점 (0) 2024.11.27 [Blockchain 101] 브릿지 (0) 2024.11.27 [Blockchain 101] 블록체인의 기술적인 구조 (0) 2024.11.26