본문 바로가기
D.evelop/BlockChian \ NFT

[NFT] 2주차(1) Solidity - 블록체인 마켓 앱 만들기 with 그라운드X

by Danne 2022. 8. 3.

블록체인에서는 “개인키, 개인키 기반의 주소”로 상호 작용을 한다.

 

블록체인은 두 가지 기반의 account가 있다.

👉 Account 

Smart Contract account 개인키 기반 account
  • Address
    • (스마트 컨트랙트에게 뭔가를 실행시킬 때, 스마트 컨트렉트 주소로 찾아감)
  • Balance
  • Code(개인키 기반의 account와 다른 점. 나는 ~~기능을 할 수 있어. 예 count.sol 의 코드를 컴퓨터가 이해가능한 글자로 바꾼 것.)
  • Address
    • 0x....
  • Balance
Smart Contract에도 토큰 보관 가능  

 

👉 Transaction이란?

  • 블록체인에서의 모든 거래
  • 코드에서 돈을 보낼 수 있음
  • 코드를 실행하는데 돈이 든다.
    • Gas Price x Gas Used = TX Fee
      수수료 = Gas + Gas Price

 


📍실습

 

Klaytn Wallet : https://wallet.klaytn.foundation (개인키 생성을 쉽게 도와줌)

 

1. TEST환경 : Baobab

  • baobab.wallet.klaytn 설정
  • > Creat Account [Account(계좌), Address(주소), Privite key (개인키)] 
    • Privite key
      • 가장 먼저 생성 (필수)
      • 절대 공개하면 안됨
      • 개인키를 사용해 블록체인 활동을 하게 되는 것. 즉, 개인키에 토큰, NFT 등을 보관 하는 것이다.
      • 비밀번호+계좌번호와 같은 것
    • Account(계좌)
    • Address(주소)
      • 개인키로부터 공개키를 생성 → 이 공개키를 인코딩하여 주소를 생성 (단방향)
      • 공개가능한 주소 (계좌번호 같은 개념)
      • 주소를 통해 토큰을 주고 받고, smart contract도 수행
// Address 
0x40.....

// Private Key : 다른 사람한테 공개하면 안됨
0x66...

//Klaytn Wallet Key
0x66...

 

  • ✅ KLAY Faucet - 테스트 KLAY를 받을 수 있음
  • ✅ Klaytn scope - 내 주소를 검색하면 보유하고 있는 확인할 수 있음 

 

// ../contracts/count.sol

pragma solidity >=0.4.24 <=0.5.6;

contract Count {
    uint256 public count = 0;
    function getBlockNumber() public view returns (uint256) {
        return block.number;
    }

function setCount(uint256 _count) public {
    count = _count;
    }
}

컨트랙트 배포(Deploy)
컨트랙트 기능 실행

getBlockNum : 현재의 블록 넘버

 


  • Klaytn Scope에서 Smart Contract 주소를 검색하면 해당 Contract의 정보를 조회 할 수 있다.

  • TO가 빈 칸이면 "블록체인"으로 보낸 것

 

Original Value : count.sol (내가 입력한) 코드가 블록체인이 다루는 코드로 변환 된 것

 

 

 

 

 

반응형

댓글