일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SQL
- 개발자의 책장
- 코딩공부
- 재귀함수
- Where
- 프로그래머스
- 자바스크립트
- Algorithms
- node.js
- array.slice()
- 역행자
- Programmers
- JavaScript
- 코딩테스트
- 코드스테이츠
- 최강의 인생
- for문
- 정규표현식
- select
- 개발자_조이킴
- 배열
- MySQL
- 알고리즘
- 코플릿
- array
- Hackerrank
- join
- Developer_JoyKim
- array.push()
- 블록체인
Archives
- Today
- Total
CodingSpace
SmartContract / 스마트컨트랙트 본문
What.
스마트 컨트랙트(SmartContract)는 서면으로 이루어지던 계약을 코드로 구현하고 특정 조건이 충족되었을 때 해당 계약이 이행되게 하는 script!
Expressions.
스마트 컨트랙트를 활용하면 두 당사자가 서로를 모르거나 신뢰하지 않더라도 계약을 체결할 수 있다!
그 이유는 특정 조건이 충족되지 않으면 해당 계약은 실행되지 않기 때문이다.
따라서 두 당사자가 신뢰하는 제3자가 없더라도(ex. 부동산 중개인) 계약을 맺을 수 있는 것이 스마트컨트랙트의 핵심!
스마트 컨트랙트의 핵심인 script를 작성할 수 있는 대표언어로는 Solidity와 Vyper가 있습니다.
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
'블록체인' 카테고리의 다른 글
[Blockchain] tokenURI 입력값을 주의하자! (feat. Opensea) (0) | 2022.09.04 |
---|---|
블록체인/클레이튼 - KIP17_tokenURI 함수에 비밀(?) (0) | 2022.07.26 |
블록체인/이더리움 - 용어 간단정리 (0) | 2022.07.26 |
블록체인 - KLAY 받기 (feat. Baobab) (0) | 2022.06.15 |
Metamask / 메타마스크 (0) | 2022.04.07 |
Comments