악의적인 사람이 존재할 때 다수가 합의해 같은 결정을 내리는 알고리즘.
모든 노드가 동일한 원장을 가지는 것이다.
목표값 이하의 해시값을 찾는 것을 무수히 반복함으로써, 해당 작업에 참여했음을 증명하는 방식
A -> B -> C -> D -> E 순서로 메시지가 이동할 때, 어떻게 하면 악의적인 사람이 메시지를 위조하지 못하고 모두가 동일한 메시지를 가질 수 있을까?
이 문제는 PoW로 해결할 수 있다. 한 사람이 다른 사람에게 메시지를 보낼 때 10분 동안 특정 작업을 하고 작업 결과를 메시지와 함께 보내야 한다는 규칙이 있다고 가정해보자. 그러면 A가 9:00부터 작업을 시작하면 B는 9:10에 메시지를 받을 수 있다. 똑같이 B가 C에게 메시지를 보내면 C는 A,B가 작업한 것이랑 메시지를 받게 된다. C가 D에게 메시지를 위조해서 보내려고 한다면 10분 안에 A,B가 작업한 것을 위조해야 하는데 사실상 불가능하다. 따라서 악의적인 사람이 메시지를 위조할 수 없다.
이러한 단점을 극복하기 위해 나온 것이 PoS이다.
해당 코인을 많이 가지고 있는 만큼 블록에 대한 유효성을 검증할 확률이 높아지는 알고리즘.
만약 같은 위치에 대한 서로 다른 블록이 발생했을 때 자신의 재산 증명을 블록에 추가해서 더 많은 재산 증명이 있는 블록이 진실된 블록이 되는 것이다.
예를 들어, a블록 다음으로 b 또는 c 블록이 올 수 있다고 가정해보자. 그러면 사람들은 자신의 재산 증명을 b 또는 c 블록에 이어서 붙일 것이다. 만약 b 블록에 추가된 재산이 c블록에 추가된 재산보다 많다면 c블록은 무시되고 b 블록을 체인에 연결될 것이다. 그리고 c블록에 재산 증명을 추가했던 사람은 보상을 받게 된다.
이러한 원리가 성립되는 이유는 네트워크 상에 사용자가 많아지면 코인의 가치가 올라가기 때문이다. 코인이 많은 사람은 코인의 가치가 올라가는 것을 원하는데 코인의 가치를 올리는 방법은 네트워크를 진실되게 만들어 사용자를 많이 오게 하는 것이다.