PoS 지분증명에서 'nothing at stake'의 의미

in #kr7 years ago (edited)

PoS, 즉 지분 증명에 대한 이야기 중에 가끔씩 nothing at stake라는 용어가 등장을 한다.

이 용어의 의미가 무엇인지 살펴보자.

'at stake'는 '위험에 처한'이라는 의미를 가진다.
http://dic.daum.net/search.do?q=at%20stake

따라서 'nothing at stake'의 의미는 '전혀 위험하지 않은 것'으로 해석할 수 있다.

이것은 블럭체인이 포크가 될 때의 문제로서, 포크가 발생하여 노드가 투표를 할 때 두 블럭체인에 모두 투표를 해도 이 노드가 전혀 손해보는 것이 없는 것을 말하는 것이다.

즉, PoS에서는 포크 상황에서 두 블럭에 모두 투표를 해도 노드가 전혀 손해를 보지 않기 때문에 포크 문제를 해결하기가 어렵다는 것을 nothing at stake라고 표현을 하는 것이다.

블럭체인은 포크가 발생하지 않으면, 원장(ledger)인 블럭체인이 하나만 존재하므로 이중지출이 생길 수 없다.
따라서, 합의 알고리즘은 1)포크를 발생시키지 않거나, 2) 포크 관리를 잘 해서 바로 해결되도록 하고 방법을 사용하고 있다.


PoS는 지분증명이라서 지분의 확률적 비율로 블럭을 만든다.
공격자가 몰래 다른 블럭을 만들고, 공격자 자신이 블럭을 만들 순서가 되었을 때 몰래 만든 블럭체인에 새 블럭을 만들어 전파해버리면, 이때 포크가 발생한다.
이때는 투표를 해야 한다.. 이때 두 체인에 모두 투표를 해도 이 노드에게 전혀 불리한 것이 없기 때문에 두곳에 다 투표를 해서 포크 상황이 쉽게 해결되지 않는 것을 ' nothing at stake'라고 말하는 것이다.
이것은 노드가 나쁜 행위를 해도 이를 제제할 방법이 없기 때문이다. 따라서 경제적인 원리에 따라 포크를 만들면 공격자에게 손해를 입히기 위한 예치금 방법을 많이 사용한다.
이것은 포크을 만드는 등의 나쁜 행위를 하면 예치금의 일부를 빼앗는 방법이다.

반면, PoW는 일(Work)로 경쟁을 한다. 따라서 모두 타켓(target)보다 작은 블럭 해시값을 찾기 위해서 노드가 최대한으로 해시 찾는 일을 하고 이를 찾으면 바로 찾은 블럭을 네트워크에 전파한다. 기본적으로 해시 능력 경쟁이라서 가장 긴 블럭이 바로 생기게 되어 있다. 비트코인에서 일반적으로 포크가 1블럭에서 생기는 것은 흔하지만 2블럭이 유지되는 것은 며칠에 한번 생기고, 3블럭까지 포크가 유지되는 것은 거의 없다. 이때문에 대부분의 거래소는 3컨펌이 되면
입력된 비코를 쓸 수 있게 한다. 따라서 PoW는 가장 긴 블럭이 이기는 게임이다.

Sort:  

아직도 애매했던 개념인데 잘 이해되네요 감사합니다 :)

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.030
BTC 62339.62
ETH 2444.37
USDT 1.00
SBD 2.62