스마트 컨트랙트

스마트 컨트랙트는 서면으로 이루어지던 계약을 코드로 구현하고 특정 조건이 충족되었을 때 해당 계약이 이행되도록 하는 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.