[블록체인 분야 융합보안 교육과정] 3일차(完)

오젼·2022년 4월 28일
0

3일차

Hash값

  • 변조를 알아채기 쉽다

Distributed vs Decentralized

  • Distributed: 열 명한테 한 문제씩 나눠서 풀게 한 다음 다시 모아 채점
  • Decentralized: 열 명이 한 문제를 풀고 제일 먼저 푼 사람 걸 다른 사람이 검증
  • resource의 낭비 - 모든 사람이 똑같은 문제를 다 같이 풀어야 함
  • 장점: 중앙화된 서버가 없음

서버가 없는 것이 아니라 서버가 연결되어 있는 것

  • 중앙 서버가 없는 것.

transaction

  • 내 자산의 이동
  • 상태의 변경

합의 알고리즘

  • 맞다고 인정하자
  • 동의를 받은 것을 옳다고 인정

smart contract

  • 만들어서 블록체인에 태워 놓는다.
  • 조건에 맞기만 하면 실행이 됨
  • ex) 내가 누군가한테 100원 받으면 1000원 줘야 한다. 이렇게 계약이 돼있으면 조건이 맞으면 아묻따 실행된다. 뭐 900원 손핸데? 이런 생각 해도 그냥 무조건 실행됨

Turing Complete

  • 지금 solidity 같은 언어들이 turing complete이라고 생각하면 됨

블록체인의 클라이언트와 서버

  • geth, Parity등 이더리움 프로토콜 이더리움 클라이언트.
  • 그럼 서버도 있지 않느냐? No. 노드가 곧 서버. 네트워크에 참여한 모든 노드가 서버가 된다. 즉 클라이언트가 서버가 된다는 것

Light node vs Full node

  • Light node: 블록의 헤더만 가지고 있다. 필요한 계약 내역이 있으면 서버에서 찾아서 가져옴
  • Full node: 모든 블록 기록을 다 가지고 있음. 채굴업자들도 풀노드. 노드를 만드는 사람들은 과거 블록을 다 가지고 있어야 새 블록을 만들 수 있음. == 채굴

coin vs token

  • coin: 블록체인 자체에서 발행되는 것.
  • token: smart contract에서 발생되는 것. 토큰 자체는 블록체인에 있는 게 아니라 스마트 컨트랙트 안에 있음. 그 안에서만 효력이 있는 것.
  • 용어를 분리해서 써야 한다.

ethereum 2.0

  • PoS로 바뀔 것.
  • eWASM으로 바뀔 것.
  • shard Chains: 샤드 개수 x 각 샤드의 tps --> 속도가 엄청 빨라진다. 거래 fee가 낮아진다.

difficulty bomb

  • mining 조건을 말도 안 되게 어렵게 바꿔서 채굴을 못 하게 하는 것. (ex. 0으로 설정해버리면 ㄷㄷ)
  • 이더리움 2.0 만들어지고 나면 옮겨야 하니까 못 쓰게 만들어버릴 것

nonce

  • 이더리움에서 nonce는 두 가지가 있음
    1. 블록 생성시 해시 만들 때 사용하는 nonce
    2. 누군가 transaction을 몇 번 보냈는지
  • 두 가지를 혼동하지 말아야 함

Transaction Finality

  • 블록이 변경 가능성이 없다고 판단할 때까지 시간이 걸림(몇 개의 블록이 연결될 때까지 기다려야 함)

Hard forks vs Soft Forks

  • 하위호환성이 있: soft fork
  • 하위호환성이 없: hard fork

accounts

  • 이더리움에는 두 개의 accounts가 있음
    1. EOAs: 사람이 가진 account
    2. contract account: 스마트 컨트랙이 가진 어카운트. 스마트 컨트랙이 배포된 주소.

goerli testnet

실습

Out of Gas

  • 다이나믹한 상황을 피하는 코딩을 해야 함
  • gas fee가 떨어지면 contract는 종료. 원래 어느 정도 contract에 발생하는 fee를 먼저 계산할 수 있는데 어떤 때 넘어서는 일이 발생할 수 있을까? --> 동적인 상황 발생했을 때. (ex. malloc, if 등 동적인 상황 최대한 피해야 함)
  • cohesion(응집력), decoupling 중요

기타

0개의 댓글