Binance Academy Beginner Track Course1: Blockchain Fundamentals

지슈·2023년 2월 18일
0

Blockchain

목록 보기
1/9

출처| https://academy.binance.com/en/courses/track/beginner-track/blockchain-fundamentals

Module 1: Introduction to blockchain technology

▶︎ 블록체인이란?

→ 대표적인 분산 원장 기술(distributed ledger technology)

→ 그 중에서도 정보를 저장하고 있는 데이터베이스

→ 정보 추가 가능, 수정 불가능, 각 데이터는 이전 데이터를 가리킴

→ 블록체인에 새 블록이 연결되면서 데이터가 추가됨

⇒ 새 블록의 데이터는 바로 이전 블록의 데이터를 참조한다.

↓ How?

▶︎ Hashing

데이터를 입력하고 고정된 길이의 데이터를 출력

→ 해시값의 길이는 사용하는 해싱 알고리즘에 따라 달라짐

→ 모든 블록에는 블록을 식별할 수 있는 각각의 고유한 해시값이 있음

⇒ 새롭게 연결되는 블록의 해시값은 직전 블록의 해시값을 기반으로 생성됨

⇒ 따라서, 블록체인의 블록은 해시값으로 연결된다.

만약, 서로 다른 입력값으로 동일한 출력값이 나온다면 → 해시 충돌

  • 각 블록이 고유한 해시값을 가지는 블록체인 → 변조 불가능
  • 중앙화되지 않아 블록체인 구조에만 의지하는 시스템
  • 블록체인 네트워크 유저들은 모든 블록의 사본을 보관 → 중앙시스템이 관리X

→ 보안성, 불변성, 투명성

⇒ 모두가 신뢰할 수 있는 데이터베이스

Module 2: Brief history of blockchain technology

1991 / W.Scott Stornetta & Stuart Haber

→ 수정 불가능, 변조 불가능한 디지털 문서를 제안

→ 암호로 보호되는 블록 체인에 저장됨

1992 / Merkle Trees

→ 여러 데이터가 분류되어 한 블록에 저장될 수 있음

→ 하지만 사용되지 않음

2004 / Hal Finney

→ RPoW: Reusable Proof of Work

→ 이중 스패닝 문제 해결: 암호화폐가 두 번 이상 거래되는 문제

→ 토큰을 신뢰할 수 있는 서버에 등록하여 문제 해결

2008 / White Paper

→ 비트코인 제안

→ P2P 프로토콜로 이중 스패닝 문제를 해결

→ RPoW을 이용하여 채굴됨

→ 탈 중앙화된 노드로 확인됨


2009.1.3 / 사토시 나카모토에 의해 첫 비트코인 채굴

2009.1.12 / 전 세계 처음으로 비트코인 거래 이뤄짐

2013 / Vitalik Buterin

→ DApp을 위한 별도 언어의 필요성을 제기함

→ 블록체인 기반의 플랫폼: Ethereum 개발

→ 스마트 컨트랙트(smart contract)

⇒ 비트코인 외에도, 다른 산업에 사용됨

Module 3: How does blockchain work

서로 신뢰할 수 없는 네트워크 이용자들이 어떻게 같은 데이터베이스를 사용할 수 있을까?


► 비대칭 암호화

  • 공개키(public key): plain task → cipher task (암호화)
  • 공개키는 공유 가능
  • 개인키(private key): cipher task → plain task (암호 해독)
  • 개인키는 공유하지 않음
  • 개인키를 통해 공개키 유추 가능하지만 공개키를 통해 개인키를 유추할 수 없음
  • 개인키 소유자가 디지털 서명으로 메세지를 작성하면 공개키와 디지털 서명을 비교하여 안전하게 가정할 수 있음
  • 개인키는 절대 공유하면 안됨


    이렇게 거래가 이뤄지고 새로운 블록에 관련 데이터가 저장되면 네트워크 이용자들은 공개키와 디지털 서명이 매치되는지 확인 → 맞다면 인정, 다르다면 무시

Module 4: Blockchain consensus mechanisms: PoW and PoS

▶︎ Byzantine Generals Problem (비잔틴 장군 문제)

  • 블록체인 사용자들은 서로 의사소통해서 하나의 사실에 모두 동의해야 한다.
  • 블록체인의 사용자, 즉 ‘노드’들은 서로를 신뢰할 수 없고 어떤 노드가 악의적인 노드인지 알 수 없다.

→ 따라서 참여자가 안심하고 블록체인의 가상자산을 사용할 수 있도록 합의 알고리즘을 적용한다.

Proof of Work (작업 증명)

유효한 블록을 생산하기 위한 합의 알고리즘의 한 종류

▶︎ 해시 값

모든 블록은 특정한 해시 값이 있는데, 이전의 해시 값을 참조해야 하며 한 블록의 해시 값을 찾기는 매우 어렵다.

▶︎ 검증

  • 해시 값을 찾고 난 후, 다른 노드들의 검증을 받는다.
  • 다른 모든 노드는 블록 내의 정보와 해시 값 등의 데이터를 확인한다.
  • 유효한 블록임을 확인하면 그 블록은 원본으로 인정받음

→ 어려운 생산, 쉬운 검증

▶︎ 채굴

: 블록을 생산하기 위해 ‘작업 증명’을 사용하는 과정

→ 블록을 채굴하는 노드 : 채굴자

채굴에 성공한 채굴자들은 보상을 받음

Proof of Stake (지분 증명)

작업 증명 알고리즘의 대안으로 2011년 제안된 합의 알고리즘

⇒ 더 많은 지분(stake), 즉 디지털 자산을 가지고 있을수록 블록에 기록할 권한을 더 많이 부여하는 방식

PoS는 디지털 자산을 소유한 노드만 검증자로 참여할 수 있기 때문에 PoW에 있었던 채굴 경쟁을 낮출 수 있고 탄소배출량을 저감할 수 있다.

→ 그러니까 과거에 더 많이 참여한 노드일수록, 신뢰할 만한 노드라는 논리


Proof of Work, Proof of Stake 외에도 Delegated Proof of State, Hybrid PoW/PoS와 같은 합의 알고리즘이 존재한다.

Module 5: Blockchain network structure: nodes and forks

▪︎ 블록체인에서 노드(node)란 블록체인 네트워크 참여자들이 사용하는 기계를 의미한다.

풀노드(full node) : 블록체인에서 이뤄진 모든 거래 정보를 보유한 노드

→ 스스로 거래를 검증할 수 있다는 장점. 하지만 그만큼 많은 저장 공간을 필요로 한다.

라이트 노드(light node) : 블록헤더의 데이터만 가지고 있는 노드

→ 핵심 데이터만 보유하고 있기 때문에 검증 시에는 풀노드와 대조해야 하기 때문에 시간이 걸리지만, 데이터 저장 공간이 많이 필요하지 않음.

채굴노드(mining node) : 채굴만을 위한 노드

→ 작업 증명 방식(PoS)에서 채택한 블록체인에서 사용됨

→ 채굴 경쟁을 위해서는 게이밍 GPU와 같은 특별한 기계가 사용된다.


▪︎ 탈중앙화 네트워크에서도 수정이나 변경을 위한 포크(fork)라는 개념이 있다. 새로운 규칙이나 신규 기능, 시스템 업데이트 등을 실행하는 것을 의미한다.

하드 포크(hard fork) :

이전 블록체인과 호환되지 않으며 수정되면 별개의 체인으로 분리되는 특성

→ 주로 새로운 기능이 추가될 때 하드 포크를 이용한다.

소프트 포크(soft fork) : 기존의 블록체인 시스템에서 부분적인 수정이 이뤄지는 것

→ 참여 노드들의 합의 불필요.

업데이트를 한다고 해도 이전의 블록과 호환이 가능하기 때문에 소프트 포크로 인한 업데이트는 각 노드들의 선택 사항이다.

Module 6: Blockchain use cases and limitations

▪︎ 블록체인 기술이 적용 가능한 분야

DeFi : 더 개방적이고, 더 포용적이고, 탈중앙화된 투명한 금융 시스템

사용자로 하여금 자신의 자산을 직접적으로 관리할 수 있게 하고, 금융의 P2P 거래를 가능하게 한다.

공유가능한 db : 데이터를 저장하는 데 매우 안정적. 많은 참여자들이 동일한 db를 공유 가능하다.

⇒ 블록체이 기술은 비즈니스 간의 상호 작용을 보다 원활하게 하고 효율적으로 만들 수 있다.

  • 디지털 의료 기록 시스템
  • 그 밖에 게임, 자선 단체, 환경 에너지 등의 분야에 활용 가능


    ▪︎ 한계

개인키 :

사용자가 개인키를 잃어버리는 경우 데이터의 접근이 불가능해지고 해결 방안이 없다.

환경 오염:

특히 비트코인이 환경 오염에 관련해서 많은 비판을 받는다.

저장:

블록체인의 규모가 커지면서 드라이브 크기를 넘어서는 경우에 대한 문제

51% 어택:

거래 정보를 조작하여 과반수 이상이 인정하도록 해서 다른 노드들이 위변조된 데이터가 포함된 블록을 채택하도록 하는 악의적인 공격이다.

profile
공댕이😎_블체

0개의 댓글