Search

12장 - 스마트 컨트랙트

대분류
블록체인
소분류
Blockchain - 그라운드X
유형
스마트 컨트랙트
Solidity
최종 편집 일시
2024/10/29 07:59
생성 일시
2023/04/29 00:02
15 more properties
특정 주소에 배포되어있는 TX로 실행가능한 코드
스마트 컨트랙트 소스코드는 함수와상태를표현
컨트랙트는 어카운트로취급; 컨트랙트 소스코드는 블록체인에저장
함수는 상태를 변경하는 함수, 상태를 변경하지 않는 함수로 분류
스마트 컨트랙트는 어카운트이기 때문에 주소를 부여
사용자(enduser,EOAowner)가 스마트 컨트랙트 함수를 실행하거나 상태를 읽을때 주소가 필요
스마트컨트랙트는사용자가실행
상태를 변경하는 함수를 실행하려면 그에 맞는 TX를 생성하여 블록에 추가 (TX체결=함수의 실행)
상태를 변경하지 않는 함수, 상태를 읽는 행위는 TX가 필요없음(노드에서 실행)

Solidity

Ethereum/Klaytn에서 지원하는 스마트 컨트랙트 언어
Klaytn은 Solidity버전 0.4.24, 0.5.6을 지원
일반적인 프로그래밍 언어와 그 문법과 사용이 유사하나 몇 가지 제약이 존재
e.g., 포인터의 개념이 없기 때문에 recursive type의 선언이 불가능

Contract=Code+Data

Solidity 컨트랙트는 코드(함수)와 데이터(상태)로 구성
Solidity 함수는 코드 안에 변수로 선언된 상태를 변경하거나 불러옴
아래 예시에서 set, get은 함수, stored Data는 상태
contract SimpleStorage { uint storedData; //uint = unsigned int, 상태 function set(uint x) public { // 함수, (uint x 파라미터) storedData = x; } function get() public view returns (uint) { //(uint)값을 반환 받을 수 있다. return storedData; } }
Solidity
복사