블록체인 및 합의알고리즘

in #cryptocurrency6 years ago (edited)

20180625_220626.jpg
합의 알고르즘에 대해 공부하고 있습니다. 더 많은 정보를 알고 계신분 공유 부탁 드립니다..

블록체인은 트랜잭션 정보를 기록한 일종의 분산 장부로서 각 노드가 각각 자신의 장부를 가지고 있고, 각 장부의 내용은 합의 알고리즘에 의해 동일하게 유지된다. 장부에 기록되는 하나의 엔트리는 트랜잭션으로 표현될 수 있으며, 장부에 기록을 원하는 사용자가 트랜잭션을 생성하여 P2P 네트워크에 전달하면 블록체인 처리 노드들이 이를 모아 블록을 생성한다. 블록이 서로 체인으로 연결되어 있기 때문에, 트랜잭션의 순서화된 기록이 가능하게 된다. 이렇게 연결된 블록체인의 인스턴스는 하나의 분산 장부를 표현하게 된다.

분산 장부의 일관성 혹은 동일성은 결국 각 노드가 가지고 있는 블록체인 이미지의 동일성에서 비롯하게 된다고 할 수 있다. 블록체인 이미지의 동일성은 만약 중앙의 한 노드가 블록을 전담하여 생성한다고 하면, 자연스럽게 유지될 수 있을 것이다. 그러나, 블록체인 기술의 핵심은 특정 노드를 신뢰하지 않으면서 신뢰를 제공한다는 것이기 때문에, 중앙집중적 방식이 아닌 개별 노드들이 자율적으로 블록을 생성하되 일종의 합의 과정을 거쳐 결국에는 모든 노드가 같은 블록체인 이미지를 가지도록 하는 방식을 사용한다.

  1. PoW: Proof of Work
    작업 증명은 Satoshi Nakamoto의 논문 ‘Bitcoin: A Peer-to-Peer Electronic System’에 처음 소개된 메커니즘..
    블록 생성을 하고자 하는 노드들이 특정한 해시(hash) 값을 찾는 연산을 수행하여 특정한 난이도의 작업을 수행했음을 증명하는 것이다. 마이너들은 해시 값을 찾기 위해 경쟁을 하고, 특정 마이너가 목표 값에 해당하는 해시 값을 찾는 데 성공하면 블록이 생성된다.

  2. PoS: Proof of Stake
    지분 증명 방식은 작업 증명 방식의 과도한 에너지 소비 문제 해결을 위한 대안으로 제시..
    참여자의 소유 지분이 블록 생성권 지분에 반영이 되는 합의 알고리즘..
    PoS에서는 마이너가 보유하고 있는 화폐의 양에 비례하여 블록을 생성하게 된다.
    PoS 방식은 블록 생성 주기를 단축시킬 수 있고 컴퓨팅 파워 낭비를 줄일 수 있어 리소스 관점에서는 효율적이나, 초기 코인 분배 문제(Initial Distribution Problem)와 Nothing at Stake 문제가 발생할 수 있다. 초기 코인 분배 문제는 PoS 방식에서 블록 생성 지분이 소유 지분을 기반으로 하기 때문에 초기에 코인을 많이 보유한 참여자가 블록 생성에 유리하다는 점에 의한 공정성에 대한 문제이며, Nothing at Stake는 유효한 블록체인이 두 개 이상 존재하는 fork 상황에서 참여자들이 보상받을 확률을 높이기 위해 두 개 이상의 블록체인 상에서 블록을 생성함으로써, 하나의 블록체인으로 수렴해 가는 것을 어렵게 하는 것을 말한다. 이러한 상황에 공격자가 뇌물을 주고 유효한 블록체인을 임의로 바꿀 수 있으며, 유효한 블록체인에 대한 합의를 빨리 이루지 못하는 문제가 있다.

  3. DPoS: Delegated proof of stake
    위임된 지분증명(DPos)은 지분 보유자들이 지분에 비례한 투표로 대표자를 선출하고, 대표자들에게 블록 생성과 검증에 대한 권한을 부여하여 합의에 대한 권리를 위임한다. 투표에 의해 선출된 대표자들이 블록을 생성하기 때문에 합의에 걸리는 시간과 비용이 적게 소요되고, 작업 증명과 지분 증명에 비해 상대적으로 단위 시간 동안 생성되는 블록의 개수도 많다. DPoS 방식은 Tendermint, Slasher, BitShares, Ethereum Casper 등에서 사용하고 있다

  4. PoR : Proof of Relevance
    관련성에 의한 증명(proof of relevance)은 인접 블록 간에 각 블록의 소유정보(proprietary information)로부터 구해진 관련성(relevance)에 의해 다음 블록이 정해지는 블록체인 합의 알고리즘(blockchain consensus algorithm)..
    관련성, 역방향 관련성, 인증블록 생성을 위한 임계값 등의 특성들과 함께 이중체인의 사용으로 인해 원장에 대한 인증은 결정적(deterministic)으로 이루어집니다. 원장에 대한 인증이 결정적으로 이루어지므로 이중지불(double spending)과 피니어택(finney attack) 등이 발생하지 않습니다.

이외에도 Bitcoin-NG, BFT 계열, 경과 시간 증명(PoET: Proof of Elapsed Time), Sharding 기법, 등등이 있는데 혹시 더 많은 합의알고리즘을 알고 계신분은 댓글 달아주시길 바랍니다.

참고자료 : https://ettrends.etri.re.kr/ettrends/169/0905169005/
https://github.com/ninanoo/PoR---Korean-Version or https://github.com/ninanoo/PoR

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.034
BTC 99331.95
ETH 3298.98
USDT 1.00
SBD 3.05