블록체인/Klaytn

12장 - 스마트 컨트랙트

MellowHoney 2023. 5. 25. 10:12
728x90
반응형

특정 주소에 배포되어있는 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; 	} } 

 

 

본 포스트는 GroundX 강의 학습내용을 바탕으로 작성되었습니다.

반응형