본문 바로가기
blockchain

[NFT 블록체인 마켓 앱 만들기 with 그라운드X 3기] Smart Contract & Solidity 2

by clolee 2022. 7. 22.

- 5. 스마트 컨트랙트 개념

count 스마트 컨트랙트 살펴보기

블록체인에서 스마트 컨트랙트가 어떻게 돌아가는지, 스마트 컨트랙트 개념

클레이튼 블록체인에서 스마트 컨트랙트 실행, 작동

 

1) World Computer

블록체인 스마트 컨트랙트의 개념을 World computer에 빗대어 설명할 수 있다.

블록체인에 있는 데이터 

1. 누구나 볼 수 있음

2. 누구나 접근해서 사용 가능 - 스마트 컨트랙트 코드 안에 있는 특정 동작을 정의된 동작 내에서 할 수 있다

 

블록체인은 각자 원하는 서버에 배포하는 게 아니라 무조건 클레이튼 블록체인에 모두가 코드를 올릴 수 있음

트랜잭션을 누구나 다 볼 수 있음

transaction hash 일련번호를 통해 스마트 컨트랙트를 블록체인에 배포했다는 뜻.

배포 후 contract address를 검색할 수 있음. Deploy 한 후 Deployed contranct 아래 주소.

검색할 수 있다는 말은 누구나 내가 만든 스마트 컨트랙트를 볼 수 있다는 뜻

 

klaytnscope에서 transaction hash 일련번호를 검색

0x1a 로 시작하는 거래에서 스마트 컨트랙트를 배포했다는 의미

from : 내 주소

to : 빈칸이면 블록체인에 (거래를) 보냈다는 뜻

그랬더니 Smart Contract가 만들어짐

아래 탭 Input Data 는 우리가 만든 코드. 여기선 count.sol의 코드

코드가 블록체인이 이해할 수 있는 글자 방식으로 블록체인에 올라감

글자가 코드이기 때문에 누구나 내가 만든 코드를 볼 수가 있음

 

klaytn IDE에서 setCount 통해 count 3으로 바꾸기

Input Data : 컴퓨터가 이해할 수 있는 setCount 글자 + 3

 

블록체인에 있는 코드는 누구나 볼 수 있고 코드에서 정의된 방식으로 누구나 사용할 수 있다

 

 

2) Account

블록체인에 있는 두 가지 기반의 주소

1. 개인키 기반 account

블록체인에서 활동하기 위해 만드는 주소. 이전에 우리는 클레이튼 월렛에서 만듦

원하는 데로 로컬에서 만들 수 있음.

개인키 기반 주소에서 월렛 주소 즉, 블록체인 기반 주소가 나옴. 이 주소는 계좌번호 같은 것. klay를 보관

 

2. 스마트 컨트랙트 기반 account

스마트 컨트랙트가 블록체인에 올라가면 자신의 계좌번호 자신의 주소가 존재.

Deploy 한 후 Deployed contranct 아래 주소 이것이 스마트 컨트랙트의 주소

이 블록체인의 스마트 컨트랙트 주소로 찾아가서 count를 3으로 바꿔라

 

klayscope에 스마트 컨트랙트 주소 입력 시

내 주소에서 스마트 컨트랙트를 실행해달라는 의미

FROM : 내 주소

TO : 스마트 컨트랙트 주소

 

개인키 기반 account, 스마트 컨트랙트 기반 account 둘 다 주소가 있고

개인키 기반의 주소가 klay, 코인을 소유하여 Balance를 가지고 있는 것처럼 스마트 컨트랙트도 돈, 코인, 토큰을 보관할 수 있다. 

개인키 기반 주소와 다른 점은 Code를 보관한다는 것. 어떠한 일을 할 수 있다는 코드를 보관할 수 있다.

 

스마트 컨트랙트 account

Address : 0xB0AA53E40c1D9A870d933c09C29F8d435011E567

Balance : 0

Code : count.sol 코드의 컴퓨터가 이해 가능한 글자

 

개인키 기반 account

Address : 0x4cafff9e7780d75bec2c3e1ebe8af45ac084759b

Balance : 149.90966KLAY 

(Balance 는 klayscope에 address 입력하면 나옴)

 

블록체인은 누구나 사용할 수 있으니까 스마트 컨트랙트 account 여러 개 존재할 수 있음(다른 코드들)

개인키 기반 주소도 다른 사람들 것 여러 개 있을 수 있음

블록체인은 수많은 스마트 컨트랙트들과 개인키 기반 주소들이 서로 돈을 주고받기도 하고 코드를 실행하기도 하는 트랜잭션이 모인 집합

 

3) Transaction

1. 블록체인에서의 모든 거래. 활동들

2. 클레이를 보내는 것. 코드에서 돈을 보낼 수 있다. 스마트 컨트랙트에서 중요한 개념.

KLAY를 보낼 수 있다.

3. 코드를 실행하는 것. 코드를 실행하는데 돈이 든다.

KLAY가 든다.

 

블록체인에서 코드를 실행하고 count값을 바꾼다는 것은

모두가 볼 수 있는 블록체인에 모두가 볼 수 있는 방식으로 값을 변환한다는 뜻

아무나 막 사용하면 블록체인이 오염됨. 이것을 방지하기 위해 코드 실행 시 약간의 수수료를 지불한다.

이것이 일반적인 코딩과 스마트 컨트랙트의 가장 큰 차이점

 

블록체인 스마트 컨트랙트에서는 코드 안에서 서로 간에 돈을 보낼 수 있다.

은행계좌이체의 경우 코드 안에서 돈을 보내는 것 어려움. 페이, 간편 결제 다른 플랫폼 연동해야 함

스마트 컨트랙트에서는 코드 안에서 블록체인에서 이용되는 KLAY를 주고받을 수 있음. 

블록체인 스마트 컨트랙트에서 중요한 점.

 

트랜잭션의 일련번호 : Transaction hash

클레이를 보내거나 스마트 컨트랙트를 만든 것과 같은 특정 활동 시 트랜잭션 해시가 나옴

트랜잭션 해시 일련번호에서 트랜잭션을 실행함을 의미

 

4) Fee

gas, gas price

수수료 = GAS * GAS PRICE

코드 실행하는데 돈이 든다.

GAS PRICE - 클레이튼에서는 정해져 있음

Transaction hash 복사 후 검색

Gas Used * Gas Price = TX Fee

코드 실행 시 돈이 들어가는데 측정 단위 : Gas

트랜잭션 코드 실행하는데 44,869 Gas를 사용

실제 사용된 수수료 Tx Fee = 0.01121725 Klay

 

count.sol 이라는 스마트 컨트랙트가 배포되고 거기에 사용되는 주소, 트랜잭션 해시 알아봄

 

- 6. Klaytn IDE 변경사항

Account에 월렛 키 (primary key)를 넣는 방법

카이카스 크롬 확장프로그램

https://chrome.google.com/webstore/detail/kaikas/jblndlipeogpafnldhgmapagcccfchpi?hl=ko

계정 누르고 지갑키 관리 누르기. 지갑키 내보내기. 비밀번호 입력 후 개인키 복사

account입력 후 deploy 눌러 클레이튼 baobab network에 배포

남색 버튼 - 값을 읽어옴

주황색 버튼 - 클레이를 사용해서 블록체인의 값을 변경

메뉴가 안 뜬다면 설정 - 개인정보 및 보안 - 인터넷 사용기록 삭제 - 캐시, 쿠키 삭제 후 klaytn ide를 껐다가 다시 시작

 

 

 

댓글