작업증명과 지분증명 (Proof of Work and Proof of Stake)

in #blockchain7 years ago (edited)

Proof of Work

DDOS같은 공격을 단념시키기 위해 탄생한 아이디어. 비트코인 전에도 존재했던 아이디어임.
이 아이디어가 비트코인 탄생의 가장 중요한 단초가 됨. 왜냐하면 데이터를 분산시키고 분산된 데이터를 해킹하려고 할때 작업증명 방식을 적용한다면 해커가 노력 대비 얻을수 있는 성과가 없기 때문임. 결과적으로 데이터를 중앙 관리하는 제3자를 신뢰하지 않아도 되게 됨.

Proof of work and mining

Proof of work은 mining이라 불리우는 고비용의 전산 계산을 정의하기 위한 요건.

mining의 목적

거래 증명 혹은 이중 출금 방지
코인을 생성(거래 증명을 해준 대가로 miner에게 보상을 하면서)

mining의 과정

거래들이 한 블록을 이룸
miner들은 PoW인 mining을 통해서 거래를 증명하려함.
첫 mining 성공자에게 보상이 주어짐
증명된 거래는 블록체인에 저장됨.

Proof of Stake

목적은 PoW와 같음. (분산원장을 통해 해킹을 어렵게 함 혹은 분산원장의 아이디어를 실현하기 위한 방법) 그러나 목적을 이루기 위한 방법론이 Proof of work와 다름.

블록의 생성자를 지분율에 의거해서 선출함. 하지만 보상은 없음. 이 경우 코인은 초기에 모두 생성된 상황이며 코인의 양은 바뀌지 않음. 지분율에 의해 선출된 생성자는 거래수수료를 보상으로 가져감. 이렇게에 블록을 생성한 사람은 miner로 불리지 않고 forger (구축자)로 불리움.

비탈릭 부테린이 이더리움을 하드포크해서 PoS로 전환하려는 계획임

지분증명은 컴퓨팅 파워 낭비가 아닌 자신이 가진 돈 (stake)을 통해 블록을 생성. 자신이 가지고 있는 지분(Stake)과 지분이 생성된 날짜에 의해 결정. 한번 블록 생성을 위해 사용된 지분의 날짜는 초기화. 블록을 생성하기 위해 지분을 담보로 잡아야하기 때문에 Dumping을 방지할 수 있음.
만약 A가 50번째 블록을 만들었는데 알고리즘에 의해 계산된 가중치가 60이고 B가 50번째 블록을 동시에 만들고 알고리즘에 의해 계산된 가중치가 80이라면 네트워크의 노드들은 가중치가 더 높은 B의 블록을 선택. 이를 통해 블록이 동시에 많이 생성되어도 많은 노드에 의해 특정 블록이 선택되는 합의 알고리즘을 만들었음.

자, 그럼 왜 PoS를 쓰려고 할까?

이유는 블록 생성에 너무 많은 전기 에너지가 소요되기 때문임. 이 에너지는 fiat 화폐로 결제되기 때문에 전자화폐의 가치에 계속 안좋은 영향을 준다. (2020년에는 덴마크 국가 소비 전력량만큼 비트코인 거래들이 소비한다고 함)

또한 PoW 방식은 잠재적으로 채굴자가 채굴하는 전자화폐를 아무것도 소유못하는 상황이 발생함. (그에 반면 PoS는 forger가 항상 새로 생긴 블록을 소유하게 됨.)

그러다보니 개발자들이 블록을 채굴하는 그 힘든 과정. 꼭 수학문제를 풀어서 해야할까? 라는 질문을 하게 되고 해결책으로 그 과정을 은행예금처럼 지갑에 일정량의 지분을 넣어놓는것으로 대체함. 지갑에 보관을 많이 할수록 블록을 채굴할 가능성이 올라감. 자연스럽게 자연친화적이고 경제적인 블록 생석 방식인 PoS 방식이 제시됨.

PoS가 PoW 대비 빈익빈 부익부를 초래한다고 하지만 사실 그렇지 않음. 아래와 같은 셈을 해보면 PoW와 PoS 모두 같은 원리이고 비슷한 리소스 내지 자금이 투입됨.

구매한 채굴기의 총 연산 속도 = 내가 가진 지분의 양 (코인 개수)
PoW 채굴기를 구매하는데 들어가는 총 자금 = PoS 채굴을 위해 구매하는 총 지분 (코인 개수)
PoW 채굴기의 가격 = PoS 기반 코인의 가격
PoW 채굴기를 PoS 기반 코인으로 대체 가능 => 전력 낭비 방지

Forger들은 어떻게 선택될까?

새로운 PoS 프로토콜인Casper가 적용된다면, Validator Pool 이 존재하게 됨. 사용자들은 forger가 되기 위해 이 pool 에 들어갈 수 있음. 이러한 절차는 Casper 계약을 호출하는 기능 과 함께 Ether를 보냄 (담보)으로서 가능해짐.

Vitalic Buterin의 생각은 아래와 같음

You automatically get inducted after some time. There is no priority scheme for getting inducted into the validator pool itself; anyone can join in any round they want, irrespective of the number of other joiners

각각 Validator는 2-15% 의 보상을 얻게 된다. 하지만 확실하지는 않다. 이자와 같은 방식으로 코인이 지급. 활동하는 validator들이나 forger들 수의 제한은 없지만, 너무 많으면 interest rate이 줄어들 것이고 적으면 늘어날 것임.

PoS가 과연 더 안전한 시스템인가?

PoW에서는 나쁜 의도를 가진 사용자는 존재할수 없다. 해킹을 하려다 기술적 경제적으로 손해를 보기 때문이다. 반면 PoS는 공격행위에 따른 손해가 없다. 그렇기 때문에 Buterin은 Casper protocol을 만들어서 나쁜 validator가 그들의 deposit을 잃을 수 있는 상황이 생기도록 하였다. 그는 이렇게 얘기한다.

Economic finality is accomplished in Casper by requiring validators to submit deposits to participate, and taking away their deposits if the protocol determines that they acted in some way that violates some set of rules.

PoS로 전환시 장점

에너지 절약: 해킹에 더 비용이 들어감으로서 네트워크가 안전해짐. if a hacker would like to buy 51% of the total number of coins, the market reacts by fast price appreciation.

PoW에서 51%의 해시파워를 가지는 비용 = 약 2500억원
PoS에서 전 세계 자산의 51% = 약 25조원

Casper는 경제 컨센서스 시스템에 의존하는 시큐리티 데포짓 프로토콜이 될것이다. Validator는 새로운 블록 생성에 참여하기 위해서는 데포짓을 지불해야함. Casper 프로토콜은 데포짓과 보상의 정도를 정함.

만약 Validator가 블럭 하나를 가짜로 생성할 경우 시큐리티 디파짓과 네트워크에서의 지위를 상실함.

쉽게 얘기해서 Casper 보안 시스템은 베팅같은 것에 기반한 시스템. PoS 기반의 시스템에서는 validator가 베팅한 각각의 chain에 따른 금전적 보상을 하는 셈

단점은 지분이 많은 고래들이 권력을 독점할 가능성이 존재.

Delegated Proof of Stake

모든 노드가 투표로 선출한 상위 노드에게 권한을 위임. 미국 대선의 대의원 제도 같은 간접 선거 방식과 유사. 댄 라리머는 DPOS 컨센서스를 사용하는 Graphene 엔진을 토대로 스팀과 빗쉐어를 만들고 이에 대한 성능을 검증. DPOS는 합의에 참여하는 노드의 수가 한정되어 있기 때문에 매우 빠른 성능과 확장성을 보이고 있지만, 완전히 탈중앙화된 블록체인이 아니라는 비판받음.

장점

  • POS에 비해 많은 트랜잭션을 빠르게 처리가능.
  • POW에 비해 비용이 낮음.
  • 하드포크의 위험이 낮음.
  • 증인들이 투표에 참여할 인센티브가 분명함.

단점

  • 증인끼리 손쉽게 담합할 위험이 있음.
  • 공개된 소수의 증인에 대한 디도스(ddos) 공격 위험 존재.
Sort:  

잘읽었습니다.

Congratulations @coolmate! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

You made your First Comment

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @coolmate! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!