Pow와 pos의 차이가 무엇인가요?

2019. 02. 13. 06:59

두개 차이가 궁금합니다!

공유하고 돈벌기 ♥︎

총 2개의 답변이 있습니다.

질문자 채택 답변

PoW(Proof of Work)

작업증명방식으로 불리는 PoW 방식은 암호화폐(가상화폐)의 시초인 비트코인(Bitcoin)의 채굴 방식으로 가장 먼저 등장했습니다.

마이닝(Mining)에 쓰이는 채굴기의 가장 대표적인 형식으로, 강력한 스펙의 채굴기의 연산능력과 많은 전기 사용량이 특징입니다.

PoW를 초기에는 컴퓨터(CPU)와 그래픽 카드(GPU)를 통해서 채굴했습니다. 하지만 보다 효율적인 채굴을 위해서 ASIC이라는

연산 채굴기가 등장하게 되었고, 집단적인 풀(Pool)을 구성해서 채굴을 하게 되었습니다.

채굴자들이 같은 문제를 해결하여 이 문제를 해결하는 행위자가 블록을 생성하는데, 이는 채굴장비의 연산능력에 따라서

보상이 결정됩니다.

PoS(Proof of Stake)

PoS는 지분증명방식이라고 불립니다. 코인에 대한 지분을 측정하는 방식인데, 소지한 개수에 따라 분배를 받게 됩니다.

은행 이자와 같은 방식이라고 생각하면 좋습니다.

PoW와 비교해서 PoS는 채굴에 들어가는 막대한 에너지를 절약하는 효과를 가지게 됩니다.

대신, 모든 지갑에 일괄적인 %를 지급하는 게 불가능하기 때문에, 노드를 구성하는 방식에 참여할 사람들이 일정한 액수를

가진 지갑을 스테이킹(Staking)하는 방식으로 참여하게 됩니다.

해시를 대체하는 수단으로 볼 수 있습니다.

2019. 02. 13. 07:54
58
보안 쩌리

작업증명(Proof-of-Work) 알고리즘

작업증명 알고리즘은 비트코인의 창시자인 나카모토 사토시(Satoshi Nakamoto)가 비트코인에 대한 이야기를 담은 논문 Bitcoin: A Peer-to-Peer Electronic Cash System에서 처음으로 제안한 비잔틴 합의 알고리즘입니다.

스크린샷 2017-06-01 오전 11.05.03.png비트코인 블록 구조(출처 : mastering bitcoin)

블록 데이터 해시 연결을 위해 블록에는 블록 헤더 데이터를 해시 함수로 계산한 블록 해시가 들어가고 이를 통해 해시 연결성을 검증해 블록체인 데이터가 중간에 위변조가 되지 않았음을 확인합니다.

작업증명 알고리즘을 사용하는 블록체인의 블록 해시는 Difficulty에 따라 선택된 Target 데이터 규격을 만족해야 합니다. 블록해시는 해시 알고리즘에 의해 만들어지기 때문에 Target데이터를 가지고 입력값을 알아낼 수가 없습니다. 즉, 블록체인의 노드는 조건을 만족하기 위해 Nonce라는 임의의 값을 계속 대입합니다. 임의로 대입한 Nonce값이 Target 데이터 조건을 만족하면 블록이 생성되는 것이죠.

이러한 작업증명 알고리즘이 무슨 소용일까 싶을 수 있습니다. 이러한 작업증명 알고리즘의 필요성은 네트워크의 모든 노드가 동시에 블록을 만들 수 없게 하는 것 입니다. 작업증명을 통과해야만 블록을 생성할 수 있고, 이를 위해서는 엄청난 에너지가 소모됩니다. 그리고 작업증명 알고리즘은 Difiiculty 조절 알고리즘을 이용하여 10분당 1~2개의 블록이 생성된다는 것을 보장합니다.

다음 블록 생성자에 의해 블록 분기가 합쳐지는 상황 (출처 : Mastering Bitcoin)

네트워크의 노드들은 다음 블록을 생성하기 위해 A와 B 중 하나의 블록을 선택하여 블록을 생성합니다. 다음 블록을 생성하는 노드는 A와 B중 하나의 블록에 연결한 블록을 생성합니다. 또다시 A를 선택한 노드와 B를 선택한 노드가 동시에 블록을 생성할 확률은 굉장히 낮겠죠. 나카모토 사토시는 확률 증명을 통해 블록 6개가 대립되는 블록이 계속 생성될 확률은 0에 가깝다는 것을 보였습니다.

작업증명 합의 알고리즘은 일시적으로 합의가 깨질 수 있으나 확률적으로 마지막엔 하나의 블록체인을 합의하게 되는 합의의 알고리즘 입니다. 작업증명 알고리즘은 기존 합의 알고리즘이 적은 수의 노드와 대다수는 올바른 행동을 한다는 가정(보통 3f+1 이상이 올바른 일을 해야 정상 운영, f는 잘못된 노드의 수)을 통해 작동하는 알고리즘인 것과 달리 글로벌한 규모의 완전히 오픈된 네트워크에서 운영할 수 있는 알고리즘 입니다.

그러나 작업증명 알고리즘은 느린 속도와, 낭비되는 에너지 문제가 심각합니다. 지금 비트코인 한 블럭을 생성하기 위해서는 위해선 5,000,000 TH/s(1 TH/s = 초당1,000,000,000,000번의 해시연산) 이상의 해시 파워가 필요합니다.

지분증명(Proof-of-Stake) 알고리즘

지분증명 알고리즘인 PeerCoin이라는 가상화폐에서 처음으로 발표한 합의 알고리즘입니다. 기존 작업증명 알고리즘의 에너지 낭비 문제와 Nothing at stake 문제를 해결하기 위해 만들어졌죠.

지분증명은 컴퓨팅 파워 낭비가 아닌 자신이 가진 돈 (stake)을 통해 블록을 생성합니다. 자신이 가지고 있는 지분(Stake)과 지분이 생성된 날짜에 의해 결정됩니다. 한번 블록 생성을 위해 사용된 지분의 날짜는 초기화되죠.

만약 A가 50번째 블록을 만들었는데 알고리즘에 의해 계산된 가중치가 60이고 B가 50번째 블록을 동시에 만들고 알고리즘에 의해 계산된 가중치가 80이라면 네트워크의 노드들은 가중치가 더 높은 B의 블록을 선택합니다. 이를 통해 블록이 동시에 많이 생성되어도 많은 노드에 의해 특정 블록이 선택되는 합의 알고리즘을 만들었습니다.

현재 지분증명 알고리즘은 PeerCoin에서 제안한 방식뿐 아니라 지분을 사용하는 모든 종류의 합의 알고리즘을 지칭합니다. Stake로 영향력을 나타내는 것을 동일하지만 내부 동작 방법은 알고리즘에 따라 굉장히 상이합니다. 예를 들면 Tendermint의 경우 전통적인 비잔틴 합의 알고리즘인 PBFT(Practical Byzantine Fault Tolerance)에 지분 개념을 추가한 합의 알고리즘을 만들었습니다.

이번 포스팅에서는 공개 블록체인에서 많이 채택하는 알고리즘인 작업증명 알고리즘과 지분증명 알고리즘에 대해 설명하였습니다. 이러한 합의 알고리즘을 확률적 합의 알고리즘이라고 합니다. 네트워크 통신 없이 특정 노드에서 생성한 특수한 데이터를 통해 합의 하는 방식이죠. 공개블록체인 뿐 아니라 인텔이 만들고 있는 프라이빗 블록체인 플랫폼인 Sawtooth LAKE의 경우 인텔 CPU에서만 생성할 수 있는 데이터를 가지고 합의하는 확률적 알고리즘인 PoET 합의 알고리즘을 사용합니다.

2019. 02. 13. 13:33
58