PoW와 PoS의 특징과 장단점
먼저 블록체인이 어떻게 작동하는지를 간단하게 설명하며 글을 시작해보려 한다.
블록체인은 블록에 거래내역(트랜잭션)을 기록하고 체인을 만들어 계속 블록과 블록을 연결한다. 모든 블록들이 체인으로 연결되어 있기 때문에 마지막 블록을 조작하려면 체인을 따라서 처음 블록부터 수정해야한다. 그래서 블록체인을 사실상 해킹이나 조작은 거의 불가능한 기술로 보는 것이다.
이러한 기술적인 이점 때문에 은행과 같은 중앙신뢰기구가 없어도 개인간 거래가 가능하다.
그렇다면 블록은 어떻게 만들어질까?
블록은 마이닝(mining 채굴)을 통해 만들어진다. 마이닝은 블록을 만들고 검증하는 과정을 말한다.
이 블록을 만들고 검증하는 방식에서 작업증명방식과 지분증명 방식이 나누어진다.
마이닝이란 임의의 nounce 값을 대입해서 *블록해시(blockhash) 결과 값을 생성하고 블록해시 결과 값이 제시된 Target보다 작은 블록해시값이 되도록 찾는 것이다.
*블록해시
해시는 어떤 문자열을 더 짧은 길이의 값이나 키로 변환하는 것으로 방대한 내용도 짧은 몇개의 문자로 표현이 가능하다. 중요한 점은 내용속에 글자 하나라도 다르면 완전히 다른 해시값을 가지기 때문에 정보의 위 변조를 쉽게 확인할 수 있게 해준다.
블록해시가 처음이라면 자세히 설명한 글 확인!
https://brunch.co.kr/@bommade/27
해시함수의 특징때문에 어떤 nounce값을 대입해야 Target보다 작은 블록해시 정보를 찾을 수 있는지 알 수 없다. 따라서 nounce 값을 0부터 1씩 증가시키면서 제시된 Target보다 작은 결과값이 나올 때까지 무한 반복작업을 수행해야 하며, 이러한 문제를 풀이하는 과정을 1초 안에 몇 번이나 수행할 수 있는지를 해시파워라고 한다. 해시파워가 높은 마이너(채굴자)일 수록 더 많은 문제를 풀 수 있고 더 많은 문제를 풀 수 있는 채굴자가 새로운 블록을 찾을 확률이 높다. 따라서 PoW를 정의할 때 많은 일을 한 채굴자에게 더 많은 보상이 주어지는 방식이라고 표현한다.
채굴난이도는 지속적으로 높아지고 시간마다 채굴 될 수 있는 블록이 한정되어 있기에 이제는 개인이 채굴을 하는 것이 거의 불가능 하고 전문 업체에서 채굴 전용 반도체를 사용한 다량의 컴퓨터(채굴기)를 구동시켜 블록체인을 만들고 있다.
기업들은 더 많은 블록을 채굴하기 위해 해시파워를 유지해야하고 이를 위해 고사양 장비가 필요하다 보니 과도한 전력소모가 발생하게 되었다. 비트코인으로 인한 환경문제가 제기 되는 것도 이러한 채굴을 위한 전력 소모 때문이다. BBC 보도에 따르면 비트코인은 매년 약 121.36Twh를 소모하는데 이는 전세계 29개국을 제외한 나머지 모든 국가의 전력 사용량보다 많은 수치라고 한다. 점점 더 참여자가 많아지고 연산과정이 어려워지면서 고사양의 컴퓨터와 처리능력이 필요하게 되면서 비트코인의 채굴 때문에 대규모 정전사태가 일어나기도 했다.
많은 블록체인 업체에서 작업증명방식에서 지분증명으로 가려고 하는 움직임이 이러한 환경문제 때문만은 아니다. 위에서 설명했듯이 작업증명 방식은 모든 트랜잭션을 다 추적하고 계산해야 하기 때문에 속도가 느리다. 또한 블록체인은 노드(검증자)들이 합의해 51%가 정당하다고 인정해야 블록이 생성되는데 거대한 자본을 가진 기업들이 담합해 연산능력의 51%를 장악하면 블록을 조작할 수 있다.
실제로 디크립트의 2020리포트에 따르면 중국의 비트코인 마이너들이 현재 BTC 네트워크 해시 레이트의 65%를 통제하고 있는 것으로 나타났다. 이는 탈중앙화라는 블록체인 기술에 위배되는 것 뿐 아니라 네트워크를 무너뜨리거나 장악할 수 있는 51%공격을 야기할 수 있다.
지분증명 합의 알고리즘은 2011년 비트코인 토크 포럼에서 제시된 것으로, 오늘날 보편적으로 사용되고 있는 작업증명 알고리즘의 문제점을 해결하기 위해 도입되었다. 작업증명, 지분증명 모두 블록체인 합의를 달성한다는 목표에서는 같지만 이 목표를 달성하는 방법에 대해 차이가 있다.
지분증명방식은 컴퓨팅 자원을 필요로 하지 않고 참여자들이 최소한의 암호화폐를 스테이킹하거나 락업시켜 네트워크에 직접적으로 참여하도록 한다. 지분증명은 자신이 갖고 있는 지분에 비례하여 트랜잭션(거래)를 검증하는데 이를 위해서는 해당 블록체인 네트워크에서 쓰이는 코인을 갖고 있어야 한다.
예를 들어 이더리움 2.0에서 노드(검증자)가 되려면 이더를 보유하고 소유한 지분을 예치해야한다.
지분증명에서는 내가 갖고 있는 코인이 많을 수록 해당 블록체인에서 작업을 검증할 수 있는 권한이 커지게 되고 그만큼의 보상을 획득할 수 있다. 즉 지분의 크기가 다음 블록 검증자 노드로 선택될 확률을 결정한다. 예를 들어 내가 네트워크 지분의 1%를 보유하고 있다면 전체 인플레이션의 1%가량의 보상을 받을 수 있다. 그러나 참여를 통한 보상이 소유한 코인을 기준으로 하기 때문에 빈익빈 부익부현상이 발생할 수 있다. 이러한 부분을 해결하기 위해 이더리움 2.0은 예치하는 이더의 개수를 32개로 제한하여 다수의 참여를 보장하기로 했고, 가장 부유한 노드만이 선택되는 것을 방지하기 위해 '무작위 블록선택(Randomised Block Selection)'과 '코인 나이에 따른 선택(Coin Age Selection)'등 다양한 방법들이 추가되고 있다.
또한 지분증명 방식의 경우에는 거래량이 적어져 유동량이 줄어들 수 있다는 위험도 있다.
이러한 지분증명 방식은 코인을 보유한 검증자만이 참여할 수 있기 때문에 많은 컴퓨터를 동원하여 코인을 차지하려는 경쟁을 막을 수 있어 작업증명 방식에서 문제가 되었던 전력소비에 대한 환경문제를 해결할 수 있고 작업증명에서 수분이 걸리던 블록처리를 빠른속도로 처리할 수 있다.
또한 보안성 측면에서도 공격자가 51% 공격을 시도할 경우 작업증명보다 훨씬 더 많은 비용을 지불해야하기 때문에 사실상 비현실적이라고 볼 수 있다.
즉 지분 증명의 주된 장점은 에너지 효율과 보안이다. 노드를 운영하는 것이 쉽고 저렴해서 많은 유저들이 노드를 운영하려 하고 네트워크를 보다 탈중앙화 시키며 마이닝 풀에서 더이상 블록들을 마이닝 하지 않아도 되게 된다. 또한 보상을 위해 상대적으로 많은 코인을 유통시키지 않아도 되므로 코인이 가격이 보다 안정적으로 유지될 수 있다.
대표적인 코인으로는 에이다, 퀀텀, 네오등이 있다.
정리해보자면
PoW는 '일한만큼 더 보상을 받는다.' PoS는 '가진만큼 더 보상을 받는다.' 이다.
지금은 PoW에서 PoS로 작업증명 방식을 변화하려는 움직임이 많이 일어나고 있고 실제 이더리움도 2분기 내에 (실제로 가능한지는 모르겠으나..하하) 이더리움 2.0을 통해 PoW에서 PoS로 변환하겠다고 발표했다.
하지만 아직 어느 것이 더 좋다라고 말하기엔 각자가 갖고 있는 장단점이 확실히 있고 기술적으로도 다듬어지고 있는 상황이기에 PoW, PoS말고도 더 좋은 방식들이 나올지 아니면 기존의 방식들이 점점 더 고도화 되가면서 가장 최선의 방식을 취하게 될지는 조금더 지켜봐야 할 상황이다.