[Binance Academy] 1. 블록체인 기초

DoDodo·2023년 2월 28일
0

Web3

목록 보기
1/3
post-thumbnail

1. 블록체인 개요

블록체인이란?

특별한 유형의 데이터베이스, 분산 원장 기술(Distributed Ledge Technology)이라고도 함. 블록체인에는 데이터를 추가할 수 있는 방법에 대한 규칙이 있고, 데이터가 일단 저장되면 수정이나 삭제가 사실상 불가능하다.

데이터는 블록이라는 구조에 추가된다.
각 블록은 마지막 블록 위에 구축되며 이전 블록으로 다시 연결되는 정보를 포함한다.
(가장 최신 블록을 보면 마지막 블록 이후에 생성되었음을 확인 가능)
체인을 끝까지 따라가면 맨 첫 번째 블록 제네시스 블록 에 도달한다.

마지막 블록은 이전에 오는 모든 정보의 산물이 된다.

블록체인은 해시로 연결되어있다

해싱은 블록을 하나로 묶는 접착제 개념.
모든 크기의 데이터를 가져와 함수를 통해 항상 동일한 길이의 출력(해시)를 생성한다.

해시값이 같을 확률은 천문학적으로 낮다 , 입력 데이터를 약간만 수정해도 완전히 다른값을 도출한다.

비트코인에서 사용되는 해싱함수 SHA256
각 블록에 이전 블록의 지문이 남아있는 개념.


2. 블록체인 기술의 역사

1991

Stuart Haber와 W. Scott Stornetta는 날짜를 소급하거나 변조할 수 없도록 타임스탬프 디지털 문서를 위한 실용적인 솔루션을 도입하면서 블록체인 아이디어 설명

  • 타임스탬프 문서를 저장하기 위한 암호로 보호된 블록체인 사용
  • 여러 문서를 하나의 블록으로 수집함(효율up) but 특허 소멸

2004

Hal Finney(Harold Thomas Finney II)는 재사용 가능한 작업 증명인 RPoW라는 시스템을 도입 (초기 프로토타입)

교환 불가능하거나 대체 불가능한 hashcash 기반 작업 증명 토큰을 받는 방식으로 작동 - 대가로 사람 간 전송 가능한 RSA 서명 토큰 생성

RSA : 공개키 암호 시스템 중 하나, 암호화 / 전자서명이 가능한 최초의 알고리즘

RPoW는 전세계 사용자가 실시간으로 정확성과 무결성 확인할 수 있도록 설계된 서버에 등록된 토큰 소유권을 유지하면서 이중 지출 문제 해결

2008

Satoshi Nakamoto가 Bitcoin이라는 분산형 P2P 전자 현금 시스템 소개

RPoW와 같은 하드웨어 신뢰할 수 있는 컴퓨팅 기능을 사용하는 대신,
개별 채굴자가 작업 증명 메커니즘을 사용해서 보상을 위해 비트코인을 채굴한 다음 네트워크의 분산된 노드에서 증명함.

2009

최초의 비트코인 블록을 채굴하면서 50 비트코인 보상을 받은 Satoshi Nakamoto로부터 비트코인 탄생
비트코인을 처음 받은 사람은 Hal Finney - Satoshi Nakamoto로부터 10비트코인 받음

2013

Vitalik Buterin이 Bitcoin이 분산형 애플리케이션을 구축하기 위한 스크립팅 언어가 필요하다고 함.이는 커뮤니티의 동의를 받지 못했고, 스마트 컨트랙트라는 스크립팅 기능을 갖춘 새로운 블록체인 기반 분산 컴퓨팅 플랫폼인 Ethereum 개발을 시작함

스마트 계약 : 이더리움 블록체인에서 배포 및 실행되는 프로그램 or 스크립트, 특정 조건이 충족되면 거래를 수행하는데 사용할 수 있다. 이더리움 가상 머신(EVM)이라는 분산형 튜링 완전 가상 머신이 읽고 실행할 수 있음

DApp : 이더리움 블록체인 내에서 실행되는 애플리케이션. 소셜 미디어 플랫폼, 도박 응용 프로그램 및 금융 거래소를 포함하여 Ethereum 블록체인에서 실행되는 수백 개의 DApp 존재

이더리움의 암호화폐는 이더(Ether), 계정 간 전송이 가능하고, 스마트 계약을 실행할 때 사용되는 계산에 대한 수수료GAS를 지불하는데 사용

3. 블록체인은 어떻게 작동하는가?

게임이론

게임 이론은 합리적인 의사 결정을 기반으로 인간 행동을 연구하는 데 사용되는 응용 수학 방법. 게임은 상호 작용 환경으로 설계되어 있어서 플레이어는 게임 규칙이나 다른 플레이어의 영향에 대응할 때 합리적으로 행동하는 경향이 있다.

죄수의 딜레마 : 게임이론 모델의 대표 예시, 죄수 A(또는 B)에게 가장 좋은 시나리오는 배신하고 석방되는 것이지만, 그렇게 하려면 상대방이 조용히 있어야 하며 상대방이 어떤 결정을 내릴지 예측할 방법이 없다.

게임이론은 합리적인 의사 결정 프로세스를 기반으로 인간의 행동과 가능한 결과를 조사하는 아이디어

게임이론과 암호화폐

암호화폐의 맥락에서 게임이론은 '블록체인 프로토콜의 경제학과 이러한 프로토콜의 설계가 참가자 행동의 결과로 나타날 수 있는 잠재적 결과에 대한 연구'인 암호경제학의 개념을 탄생시켰다.

암호경제학은 가장 합리적이고 가능성 있는 결정을 고려하여 프로토콜이 제공하는 인센티브를 기반으로 네트워크 노드의 행동을 조사한다. 비트코인 블록체인은 서로 다른 위치에 많은 노드가 분산된 분산 시스템으로 설계되었기 때문에 트랜잭션 및 블록 의 유효성 검사와 관련하여 이러한 노드의 동의에 의존해야 하지만 노드간 신뢰성을 보장할 수 없다.

그렇다면 어떻게 방지할까? 작업 증명 합의 알고리즘

4. 블록체인 합의 알고리즘 : POW, POS

채굴(작업증명 POW)

가장 일반적으로 사용되는 합의 알고리즘. 채굴에는 작업증명 알고리즘이 사용되고, 프로토콜에서 설정한 퍼즐(사용자가 블록에 포함된 트랜잭션 및 기타 정보를 해시해야 하는 것)을 풀기 위해 컴퓨팅 성능을 희생해야한다.

특정 숫자 아래로 떨어지는 유효한 해시를 찾기 위해 데이터를 약간씩 수정하면서 솔루션을 찾을 때까지 계속 해싱해야함. 컴퓨팅 비용이 많이 들고, 지분은 채굴 컴퓨터에 투자된 돈과 컴퓨터에 공급되는 전력. 채굴자는 블록 보상을 얻기 위해 열심히 채굴한다.

채굴 : 암호화폐 트랜잭션이 블록체인이라는 디지털 분산 원장에 수집되고 증명되고 기록되는 프로세스. 채굴자의 임무는 메모리 풀에서 확인되지 않은 트랜잭션을 수집해서 검증을 시도할 후보 블록으로 구성하는 것이다.

블록 보상 : 채굴자가 새로운 블록을 성공적으로 검증했을 때 보상되는 암호화폐. 블록 보조금 + 거래 수수료. 비트코인의 블록 보조금은 2012년 25 BTC, 2016년 12.5 BTC, 2020년 6.25 BTC로 줄어들었다.

채굴자가 네트워크의 나머지 부분에 새 블록을 보내면 다른 모든 노드는 이를 해시 함수의 입력으로 사용한다. 블록체인 규칙에 따라 블록이 유효한지 확인하기 위해 한 번만 실행하면 되고, 유효하지 않을 경우 채굴자는 보상을 받지 못하고 헛되이 전기를 낭비하게 된다.

POW의 장점

  • 누구나 채굴 경쟁에 참여하고 검증 노드를 실행할 수 있다.
  • 채굴자들은 블록 생산을 위해 서로 경쟁하고, 통제되지 않는 탈중앙화의 성격을 띈다.

POW의 단점

  • 채굴은 엄청난 양의 전기를 낭비한다.나를 정직하게 행동하도록 장려하는 것은 채굴 컴퓨터와 전기에 대해 지불한 돈
  • 채굴자가 많아질 수록 채굴 퍼즐의 난이도가 점점 높아진다. 더 높은 경쟁력을 위해 더 나은 장비를 구입해야함.
  • 51% 공격을 받을 수 있음. 한 명의 채굴자가 대부분의 해시 파워를 가질 가능성이 있기 때문. 이론적으로 트랜젝션을 취소하고 블록체인 보안을 약화시킬 수 있음.

비트코인 용어 설명
넓은 의미에서 많은 사람들은 종종 비트코인이라는 단어를 디지털 통화, 분산된 공공 원장, 프로토콜 또는 단순히 이 모든 것을 포함하는 큰 생태계와 같은 몇 가지 다른 것을 지칭하기 위해 사용한다.

1. 비트코인은 P2P(Peer-to-Peer) 디지털 통화의 이름, 간단히 BTC라고도 함
비트코인은 암호 화폐 즉, 암호화 기술로 보호되는 디지털 통화이다. 최초의 암호화폐이기도 하고, 제네시스 블록 (또는 블록 0)으로 알려진 최초의 비트코인 블록은 2009년 1월 3일에 채굴되었다.

2. 비트코인 분산 공개 장부를 블록체인이라고 부름
블록체인은 비트코인 트랜잭션이 신뢰할 수 없고 안전한 방식으로 방송되고 기록될 수 있도록 하는 전체 구조를 유지하는데 사용된다. 따라서 비트코인 블록체인은 확인된 모든 BTC 트랜잭션을 공개적으로 나열하는 분산형 디지털 원장으로 작동한다.

3. 비트코인이라는 용어는 오픈 소스 소프트웨어로 지속적으로 개발되고 있는 프로토콜을 가리키는 데에도 사용
더이상 오해를 피하기 위해 '비트코인 코어'로 리브랜딩

비트코인의 아이디어는 은행이나 정부와 같은 중재자 없이 국경 없는 금융 거래를 허용하는 고유한 디지털 결제 시스템을 만드는 것이었다. 암호화 기술과 함께 블록체인 기술이 제공하는 분산 아키텍처는 비트코인이 공격과 사기에 강해지도록 한다.

스테이킹(지분증명 POS)

POS 알고리즘은 유사 무작위 선거 프로세스를 사용해서 노드 그룹에서 검증자를 선택한다. 이 시스템에서 블록은 채굴되는 것이 아닌 '위조'된다. 위조 과정에 참여하는 사용자는 트랜잭션을 검증하기 위해 컴퓨팅 성능이 아닌, 자신의 지분으로 네트워크에 코인을 스테이킹해야 한다. 지분의 크기는 노드가 다음 유효성 검증자로 선택될 기회를 결정한다. 지분이 클수록 기회가 커짐

네트워크에서 가장 부유한 노드 뿐만 아니라 다른 선택 프로세스도 있음

  • Randomized Block Selection
    가장 낮은 해시 값과 가장 높은 지분이 조합된 노드를 찾아 검증자를 선택한다. 지분의 크기가 공개되어 있기 때문에 일반적으로 다음 위조자는 다른 노드에서 예측할 수 있다.
  • Coin Age Selection
    코인 나이 선택 방법은 토큰이 스테이킹된 기간에 따라 노드를 선택한다. 코인 나이는 코인이 스테이킹된 일수에 스테이킹된 코인 수를 곱하여 계산된다.

노드가 블록을 위조하면 코인 나이가 0으로 재설정되고, 다른 블록을 위조할 수 있으려면 일정 기간을 기다려야 한다. 이는 대규모 스테이크 노드가 블록체인을 지배하는 것을 방지한다.

POS를 사용하는 블록체인
- BNB체인, BNB스마트 체인
- Solana
- Avalache
- Polkadot

노드가 다음 블록을 위조하도록 선택되면 블록의 트랜잭션이 유효한지 확인한다. 그런 다음 블록에 서명하고 블록체인에 추가한다. 보상으로 노드는 블록에서 거래 수수료를 받고 일부 블록체인에서는 코인 보상을 받기도 한다.

노드가 위조 행위를 중단하고 싶다면 일정 기간이 지났을때 지분과 획득한 보상이 해제되어 노드가 블록체인에 추가한 사기성 블록이 없는지 네트워크가 확인할 수 있는 시간이 주어진다.

POW 장점

  • 에너지 효율적
  • 검증자가 사기 거래를 처리하지 않도록 재정적 동기를 부여함
  • 51%공격을 위해서는 순환 공급량의 51%의 지분을 획득해야 하므로 네트워크를 제어하는것이 거의 불가능

POW 단점

  • 많은 지분을 가진 검증자가 더 많은 보상을 얻는 경향이 있기 때문에 PoS가 "부자가 더 부자가 되는" 생태계를 장려한다는 우려 존재
  • 토큰의 가격이 폭락하거나 블록체인의 시가총액이 낮을 경우 이론적으로 저렴하게 토큰의 50% 이상을 구매하고 네트워크를 제어할 수 있게 됨..

5. 블록체인 네트워크 구조: 노드와 포크

Node

  1. 풀 노드(Full Node)

비트코인에 저장되는 모든 거래 내역, 즉 블록체인의 전부를 저장하고 있는 노드들을 의미한다. 풀 노드는 블록체인의 데이터를 모두 로컬로 저장하기 때문에 네트워크에 접근이 없어도 데이터에 빠르게 접근할 수 있다는 장점이 잇다. 대부분의 거래소들이 풀 노드 운영.

네트워크에 직접적인 영향을 미치는 존재는 아니지만 힘이 없진 않음. 궁극적으로 풀 노드의 과반이 받아들이는 것이 업그레이드의 성공을 결정한다.

  1. 라이트 노드(Light Node)

풀 노드에 연결하여 거래 내역을 보내고 검증한다. 간단한 애플리케이션이나 비트코인 지갑 메타마스크 등을 사용하는 유저들을 라이트 노드라고 볼 수 있다.

라이트 노드는 비트코인 사용자들의 거의 대부분이다.

Fork

  1. 소프트 포크(Soft Fork)

이전 버전과 호환되는 변경 사항으로 코드가 업데이트 되는 것. 기존 버전과 변형된 버전이 같은 네트워크에서 운영될 수 있다. ex) Segwit

  1. 하드 포크(Hard Fork)

일단 구현되면 새 규칙은 이전 규칙과 호환되지 않음. 커뮤니티 내의 합의가 이루어지지 않을 때, 또는 심각한 버그로 수정이 불가피할때 진행된다. ex) Ethereum

하드 포크로 인해 블록체인은 둘로 나뉘게 되고, 두 개의 다른 프로토콜을 병렬로 실행하는 서로 다른 네트워크가 된다. 포크 시점에 블록체인 고유 단위의 잔액이 이전 네트워크에서 복제되기 때문에 포크 당시 기존 체인에 잔액이 있으면 새 체인에도 잔액 존재.


0개의 댓글