출처| https://academy.binance.com/en/courses/track/beginner-track/blockchain-fundamentals
▶︎ 블록체인이란?
→ 대표적인 분산 원장 기술(distributed ledger technology)
→ 그 중에서도 정보를 저장하고 있는 데이터베이스
→ 정보 추가 가능, 수정 불가능, 각 데이터는 이전 데이터를 가리킴
→ 블록체인에 새 블록이 연결되면서 데이터가 추가됨
⇒ 새 블록의 데이터는 바로 이전 블록의 데이터를 참조한다.
↓ How?
▶︎ Hashing
데이터를 입력하고 고정된 길이의 데이터를 출력
→ 해시값의 길이는 사용하는 해싱 알고리즘에 따라 달라짐
→ 모든 블록에는 블록을 식별할 수 있는 각각의 고유한 해시값이 있음
⇒ 새롭게 연결되는 블록의 해시값은 직전 블록의 해시값을 기반으로 생성됨
⇒ 따라서, 블록체인의 블록은 해시값으로 연결된다.
만약, 서로 다른 입력값으로 동일한 출력값이 나온다면 → 해시 충돌
→ 보안성, 불변성, 투명성
⇒ 모두가 신뢰할 수 있는 데이터베이스
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)
⇒ 비트코인 외에도, 다른 산업에 사용됨
서로 신뢰할 수 없는 네트워크 이용자들이 어떻게 같은 데이터베이스를 사용할 수 있을까?
► 비대칭 암호화
▶︎ 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와 같은 합의 알고리즘이 존재한다.
▪︎ 블록체인에서 노드(node)란 블록체인 네트워크 참여자들이 사용하는 기계를 의미한다.
풀노드(full node) : 블록체인에서 이뤄진 모든 거래 정보를 보유한 노드
→ 스스로 거래를 검증할 수 있다는 장점. 하지만 그만큼 많은 저장 공간을 필요로 한다.
라이트 노드(light node) : 블록헤더의 데이터만 가지고 있는 노드
→ 핵심 데이터만 보유하고 있기 때문에 검증 시에는 풀노드와 대조해야 하기 때문에 시간이 걸리지만, 데이터 저장 공간이 많이 필요하지 않음.
채굴노드(mining node) : 채굴만을 위한 노드
→ 작업 증명 방식(PoS)에서 채택한 블록체인에서 사용됨
→ 채굴 경쟁을 위해서는 게이밍 GPU와 같은 특별한 기계가 사용된다.
▪︎ 탈중앙화 네트워크에서도 수정이나 변경을 위한 포크(fork)라는 개념이 있다. 새로운 규칙이나 신규 기능, 시스템 업데이트 등을 실행하는 것을 의미한다.
하드 포크(hard fork) :
이전 블록체인과 호환되지 않으며 수정되면 별개의 체인으로 분리되는 특성
→ 주로 새로운 기능이 추가될 때 하드 포크를 이용한다.
소프트 포크(soft fork) : 기존의 블록체인 시스템에서 부분적인 수정이 이뤄지는 것
→ 참여 노드들의 합의 불필요.
업데이트를 한다고 해도 이전의 블록과 호환이 가능하기 때문에 소프트 포크로 인한 업데이트는 각 노드들의 선택 사항이다.
▪︎ 블록체인 기술이 적용 가능한 분야
DeFi : 더 개방적이고, 더 포용적이고, 탈중앙화된 투명한 금융 시스템
사용자로 하여금 자신의 자산을 직접적으로 관리할 수 있게 하고, 금융의 P2P 거래를 가능하게 한다.
공유가능한 db : 데이터를 저장하는 데 매우 안정적. 많은 참여자들이 동일한 db를 공유 가능하다.
⇒ 블록체이 기술은 비즈니스 간의 상호 작용을 보다 원활하게 하고 효율적으로 만들 수 있다.
개인키 :
사용자가 개인키를 잃어버리는 경우 데이터의 접근이 불가능해지고 해결 방안이 없다.
환경 오염:
특히 비트코인이 환경 오염에 관련해서 많은 비판을 받는다.
저장:
블록체인의 규모가 커지면서 드라이브 크기를 넘어서는 경우에 대한 문제
51% 어택:
거래 정보를 조작하여 과반수 이상이 인정하도록 해서 다른 노드들이 위변조된 데이터가 포함된 블록을 채택하도록 하는 악의적인 공격이다.