CodingSpace

SmartContract / 스마트컨트랙트 본문

블록체인

SmartContract / 스마트컨트랙트

개발자_조이킴 2022. 4. 12. 11:10


What.

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


Expressions.

스마트 컨트랙트를 활용하면 두 당사자가 서로를 모르거나 신뢰하지 않더라도 계약을 체결할 수 있다!

그 이유는 특정 조건이 충족되지 않으면 해당 계약은 실행되지 않기 때문이다. 

따라서 두 당사자가 신뢰하는 제3자가 없더라도(ex. 부동산 중개인) 계약을 맺을 수 있는 것이 스마트컨트랙트의 핵심!

 

스마트 컨트랙트의 핵심인 script를 작성할 수 있는 대표언어로는 SolidityVyper가 있습니다.

Solidity와 Vyper로 작성된 script는 컴파일러를 통해 바이트코드(Bytecode)로 변환한 후 블록체인에 배포됩니다.

 

이더리움 스마트 컨트랙트의 동작 절차는 다음과 같습니다:

  • Solidity 등으로 스마트 컨트랙트 script를 작성합니다
  • Solidity 코드를 컴파일러를 통해 Bytecode로 변환합니다
  • Transaction에 Bytecode를 담고, 마이너(miner)가 해당 Transaction이 담긴 블록을 채굴합니다. 이때 해당 Transaction이 블록체인 네트워크에 기록됩니다 (배포)
  • 유저는 ABI(Application Binary Interface)를 통해 배포된 스마트 컨트랙트에 정의된 함수를 호출하는 Bytecode를 생성하고, Transaction에 담아 블록체인 네트워크에 전달합니다
  • 채굴자는 유저로부터 받은 Bytecode를 배포된 스마트 컨트랙트에 따라 EVM(Ethereum Virtual Machine) 위에서 실행합니다. 이때, 가스비(gas fee)가 계산되면서 블록에 추가되고, 실행 결과가 유효한 경우 실행 결과가 state에 반영됩니다

 

Why?

스마트 컨트랙트의 필요성은 무엇일까?

스마트 컨트랙트의 기술적인 특징은 살펴보면 굉장히 다양한 분야에서 응용될 수 있다는 점을 알 수 있습니다:

  • 누구나 스마트 컨트랙트를 배포할 수 있다
  • 스마트 컨트랙트의 소유자가 아니더라도 누구든지 검증할 수 있다
  • 코드의 실행을 자동화할 수 있다
  • 위변조가 어렵다

 

위의 특징들을 고려하면, 스마트 컨트랙트는

  • 투명한 거래 내역이 공개되어야하는 분야
  • 중개인 비용을 절감해야하는 분야
  • 거래 수수료 비용을 감소해야하는 분야

에 적합할 것으로 보입니다.


References. 

Laura님의 글: https://medium.com/haechi-audit-kr/smart-contract-a-to-z-79ebc04d6c86

 

스마트 컨트랙트(Smart Contract), 글 한 편으로 제대로 이해하기

블록체인 스마트 컨트랙트 개요 및 작동방식 A to Z

medium.com

 

Comments