스마트 컨트랙트

스마트 컨트랙트는 서면으로 이루어지던 계약을 코드로 구현하고 특정 조건이 충족되었을 때 해당 계약이 이행되도록 하는 script 이다.

사실상 클래스에 가깝다.

이더리움 스마트 컨트랙트 작동방식

  • 스마트 컨트랙트로 구현하고자 하는 내용을 Solidity 등으로 구현한다.
  • Solidity 코드를 컴파일하여 네트워크에 배포할 수 있는 Bytecode를 생성한다.
  • Transaction에 Bytecode를 담고, 마이너가 해당 Transaction이 담긴 블록을 채굴한다. 이와 동시에 해당 Transaction은 블록체인 네트워크에 기록된다.
  • 유저는 ABI를 통해 배포된 스마트 컨트랙트 코드에 정의된 함수를 호출하는 Bytecode를 생성하고, Transaction에 담아 블록체인 네트워크에 전달한다.
  • 채굴자는 유저로부터 받은 Bytecode를 배포된 스마트 컨트랙트 코드에 따라 EVM 위에서 실행한다. 이때, Gas Fee가 계산되면서 블록에 추가되고, 실행 결과가 유효한 경우 실행 결과가 State에 반영된다.

! [[ Pasted image 20231125155357.png ]]

상태 변수는 블록 체인에 직접 기록이 되고 , 함수로 블록 체인에 값을 변경할 수 있다


! [[ Pasted image 20231125165924.png ]]

스마트 컨트랙트 계정에는 메타 마스크와 같은 외부 계정(EA)과 스마트 컨트랙트가 해당 되는 계약 계정(C A)가 있다.

페이로드(Payload)

This line appears after every note.

Notes mentioning this note

There are no notes linking to this note.


Here are all the notes in this garden, along with their links, visualized as a graph.

ReadmeTips설명자료 모음나의 유의 사항과 고치고자 했던점Throw error기능 목록제출용 소감문회고록1주차 피드백BoardStyle guide checklist기능 요구 사항 숫자 야구입출력 요구 사항제출용 소감문 숫자 야구 게임프로그래밍 요구 사항회고록기능 목록요구 사항제출용 소감문 자동차 경주 게임회고록Todo'기능 목록제출용 소감문 크리스마스 프로모션회고록Scpc몰입해본 경험성공한 프로젝트들1. 효과적인 학습 방식과 경험2. 성장 중 겪은 실패와 극복3. 오랜 시간 몰입했던 경험 그리고 도전4. 원하는 프로그래머 모습우테코 증빙자료효과적인 학습 방법과 결과프론트엔드 기말과제 리팩토링CssDiv에 그림자 효과 넣기FlexBabelBigintBooleanClassIife(즉시 실행 함수 표현식)Javascript style guideJavascript typesJavascriptLinked list(연결 리스트)MapMark and sweepNull typeNumberObject ForeachObject.defineproperty()ObjectPromiseReference countingSetShift 연산String.indexof(), string.includes()StringSymbolUndefined typeV8 가비지 컬렉션Async 와 awaitCall 과 apply 메서드Callback 함수Private 프로퍼티SomeThrowWrapper object가비지 컬렉션객체의 attribute기본 매개변수 문법데이터 속성메모리 관리메모리 생명 주기배열생성자(constructor)원시값접근자 속성함수 호이스팅(hoisting)함수(function)함수를 정의하는 법함수와 메소드의 차이힙과 스택Class component(클래스형 컴포넌트)DomFunction component(함수형 컴포넌트)JsxReact domReact elementReact hooksReact 생명주기ReactSpaVirtual domPropsUseeffect렌더링리렌더링마운트함수형 컴포넌트와 클래스형 컴포넌트의 차이점Github page로 배포GithubReadme 파일 작성CloneFork커밋 메시지 작성 규칙Brain stormingWeb3마이너스마트 컨트랙트페이로드(payload)Markdown(md)MermaidMvc 패턴도메인 로직비즈니스 로직Jest란Tdd(테스트 주도 개발)모킹(mocking)이란스파이(spying)이란AbiDtdNode jsReadmeThreadXml런타임 환경스키마유클리드 호제법최대공배수 알고리즘Todo list옵시디언 웹 주소