합의 알고리즘으로 가장 많이 사용되는 것은 작업증명(POW, proof of work)와 지분증명(POS, proof of stake)입니다.
이름에서 유추할 수 있듯이, 작업증명은 지정된 작업을 해서 일등하는 마이너(채굴기)가 코블럭을 만들고 보상으로인을 보상으로 받습니다.
지분 증명은, coinage를 이용하고 지갑에 충전된 코인양 * 지갑 자신이 만든 블럭 이후의 경과시간을 곱하고, 이를 특정 시간마다 네트워크에 알려줍니다.
이때 coinage가 가장 큰 지갑이 블럭을 만들고, 보상으로 이자를 받습니다.
이때 문제가 되는 것이 coinage에 의한 블럭의 생성 순서를 해커가 다수의 지갑의 coinage를 거의 비슷하게 만들면 해커의 지갑이 연속으로 블럭을 생성하여서 이체를 확정하기 위한 필요 컨펌을 만족할 경우 해킹이 성공한다는 단점이 있었습니다.
이 문제를 해결하기 위해서, 본인이 만든 pos 합의 알고리즘은 다음과 같습니다.
1) 지갑을 사적 지갑과 공적 지갑으로 분리를 합니다.
2) 공적 지갑은 소스코드에 지갑주소를 상수로 만드는 방법 등의 방법(구현 방법은 여러가지가 있을 수 있음)으로 이때 몇십개의 공적 지갑을 만듭니다.
(지갑이 죽을 수도 있기 때문에 분산하여 다수이 공적지갑을 실행하도록 합니다.)
3) 사적지갑은 기존의 pos 지갑하고 같습니다.
4) 블럭생성을 공적지갑 - 사적지갑이 반복하면서 블럭을 생성합니다.
( 이것은 무한히 공적지갑 다음에 사적지갑이, 사적지갑 다음에는 공적지갑이 블럭을 생성하도록 하는 것입니다.)
5) 사적지갑의 블럭생성 권한은 기존의 coinage로 정합니다.
6) 공적지갑이 블럭을 생성할 때는 이자를 지급하지 않습니다.
이러면, 이체를 위한 필요 컨펌이 2개 이상이고, 공적지갑이 모두 죽지만 않는다면 코인이 해킹당할 가능성이 적어집니다.
물론 대부분의 pos 코인의 필요 컨펌은 보통 수 백개가 넘습니다.
그렇기 때문에 최근 몇년간 PoS 쪽에서도 많은 고민과 새로운 문제 해결방식등이 등장했습니다. loum 님의 생각을 좀 더 객관화하고 더 발전시키기 위한 하나의 방법론으로 기존에 나온 PoS 방식 (특히 이더리움의 캐스퍼나 텐더민트의 pos) 들에 대한 심층적인 분석과 그에 대비한 loum 님 방식의 장점들을 보여주시는 것이 어떨까 생각합니다. 사실 많은 사람들이 기본적인 컨셉정도만 들어 보았지 실제 캐스퍼가 어떻게 작동하는지, 어떤 장점과 위험성이 있는지 정확히 알지 못하는 것이 사실입니다. 막연한 두려움과 반감이 있는 것도 사실입니다.