Casper PEPoW: 레이어2를 위한 캐스퍼 솔루션

레이어 2를 위한 우선순위에 따른 지수적 작업증명을 사용하는 캐스퍼 솔루션입니다.

Casper PEPoW

요약

캐스퍼 PEPoW란 레이어 2를 위해 지분증명과 작업증명이 결합된 형태의 캐스퍼 솔루션으로 데이터 가용성(Data availability) 문제를 완화시키고 메인넷에 트랜잭션을 발생시키는 것에 대한 경제적 인센티브를 제공해줍니다. 이 알고리즘은 레이어2에서 체크포인트를 생성하고 이 체크포인트를 메인넷에 제출하는 형태에 적합합니다. 지분증명(PoS)을 완료하면 체크포인트 생성에 대해 무작위로 달라지는 우선순위를 배정받습니다. 그리고 우선순위에 지수적으로 증가하는 난이도를 가진 작업증명(PEPoW, Priority Exponential Proof of Work)을 함께 제출해야 합니다. 더불어 검증인들은 제출된 체크포인트에 대해 캐스퍼FFG와 마찬가지로 투표를 통해 완결성을 만들어내는데, 투표에 대한 보상은 투표한 체크포인트의 우선순위에 지수적으로 증가합니다. 즉, 우선순위가 높은 계정은 블록을 가장 빠르게 만들어내고 이 블록에 투표할 경우 가장 높은 보상을 획득할 수 있게 됩니다. 이로 인해 높은 해쉬파워를 사용해 우선순위가 낮음에도 불구하고 새치기를 하려고 하더라도 검증인들이 선택하지 않게 되고 이로 인해 우리는 작업증명 시스템을 낮은 수준의 표준 해쉬파워를 이용한 시스템으로 구동시킬 수 있습니다. 결과적으로 이를 통해 루트체인에 트랜잭션을 발생시키는 것에 대한 인센티브를 제공하고 데이터가용성 문제를 완화할 수 있습니다.

용어

  • 검증된(justified): 검증인(validator)들로부터 2/3 이상 보팅을 획득한 상태의 블록을 말합니다.
  • 완결된(finalized): 더이상 바뀌지 않는 블록입니다. 특정한 로직에 따라 완결되고 나면 더이상 뒤바뀌지 않습니다.
  • 시큐리티(security): 한글로 어떻게 표현하죠?? 한글로 표현하기 제일 어려운 단어인 듯 합니다. 의견을 부탁드립니다.
  • 데이터 가용성(Data availability): 플라즈마 운영자가 혹은 다른 노드들이 검증 등에 필요한 데이터를 제공해야 하지만 네트워크 문제로 인해서 혹은 악의적 의도에 의해 데이터를 제공하지 않았을 때의 문제 상황.
  • 다이너스티(Dynasty): 완결된 체크포인트의 개수

레이어 2를 위한 캐스퍼

레이어 2를 위한 캐스퍼는 캐스퍼 FFG나 ETH2.0에서의 캐스퍼와 달리 보상을 토큰으로 지급하는 형태입니다. 따라서 발행될 수 있는 토큰을 사용하는 DApp들에게 유효한 모델이며, 특히 해당 DApp이 프로그램을 플라즈마를 통해 동작시킬 때 더욱 적합합니다.

지분 증명을 통해 운영자 그룹에 참가하기

캐스퍼 PEPoW는 레이어 2에서의 데이터를 메인넷에 올리기 위해 사용됩니다. 대표적인 예시로 플라즈마가 있습니다. 즉 지분증명을 통해 플라즈마 체인을 같이 운영할 수 있는 권한을 얻을 수 있게 됩니다. 이 것은 모두 스마트 컨트랙스 상에 구현되는 것으로 상황에 따라 허가형, 혹은 비허가형으로 진행될 수 있습니다. 캐스퍼 PEPoW에서는 비허가형으로 운영되는 상황에 집중합니다.

지분증명을 통해 운영자 그룹에 참가하면 캐스퍼 FFG에서와 마찬가지로 다이너스티가 2 증가된 이후부터 운영에 참가할 수 있습니다. 여기서 다이너스티란 완결된 체크포인트의 개수를 의미합니다. 운영자 그룹에 참가한 뒤, 다이너스티가 2 이상 증가하여 운영에 참가할 수 있게 된 이후부터는 적극적으로 레이어2 운영에 참가해야 합니다. 그렇지 않을 경우 추후 의무 불이행으로 예탁금을 몰수당할 수 있습니다.

체크포인트 제출하기

레이어2 운영에 참가하면서 할 수 있는 첫 번째는 체크포인트를 생성하고 제출한 뒤 보상을 받는 것입니다. 체크포인트란, 플라즈마 체인에서 일어난 일을 기록된 블록이라고 생각할 수 있습니다. 따라서 플라즈마 체인의 상태 트리의 루트 해쉬값과 체크포인트 생성자의 값이 담긴 블록입니다.

캐스퍼 PEPoW가 독특한 점은 이 체크포인트에 작업 증명 논스값을 담겨 있다는 점입니다. 모든 운영자들은 체크포인트를 생성할 수 있으나 각자 모두 다른 우선순위를 가지고 있으며 이는 체크포인트에 포함될 부모 체크포인트의 해쉬값에 따라 무작위적으로 변경됩니다. 그리고 체크포인트에 포함되는 작업 증명값의 난이도는 우선순위에 지수적으로 증가하도록 설계되어 있습니다. 따라서 우선순위가 높다면 체크포인트를 가장 빠르게 발견하고 제출할 수 있게 됩니다.

검증과 보상

검증인들은 제출된 체크포인트에 대해 투표를 진행하고 캐스퍼 FFG와 마찬가지로 전체 지분의 2/3 이상이 투표한 체크포인트는 검증된(justified) 상태를 가지게 됩니다. 그리고 연달아 검증될 경우 완결된(finalized) 체크포인트로 변경되게 됩니다. 이 때 검증인들은 투표 보상을 받게 되는데 여기서 중요한 점은 투표 보상 또한 해당 체크포인트의 우선순위에 지수적으로 비례한다는 점입니다. 즉, 우선순위가 높은 제안자가 제출한 체크포인트는 가장 빠르게 제출될 뿐더러 투표에 대한 보상도 가장 많이 제공합니다.

이 것은 한 번에 여러개의 블록에 제출되었을 경우 표가 분산되어 캐스퍼 선택이 늦어지는 것을 방지할 뿐더러, 누군가가 높은 해쉬파워를 사용해 우선순위가 낮음에도 불구하고 새치기를 하려고 하더라도 검증인들이 선택하지 않게 만들 수 있습니다.

챌린지 시스템

더불어, 캐스퍼 PEPoW에서는 레이어 2 솔루션에 메인넷 수준의 시큐리티를 보장하기 위해서 캐스퍼 FFG와는 다르게 검증된(justified) 블록이 챌린지를 통해 취소되는 것이 가능합니다. 검증되었지만 아직 완결되지 않은 모든 체크포인트는 챌린지를 받을 수 있는 대상입니다. 만약 챌린지가 성공한다면 해당 체크포인트에 투표한 모든 검증인들은 예탁금을 몰수당합니다. 이 예탁금 몰수로 원래 선택 불가능한 형제 가지에 존재하던 다른 체크포인트(conflicting fork)가 캐스퍼 검증이 가능한 상태로 변경될 수 있습니다. 또한 체크포인트가 챌린지 당한 상태라면 자식 체크포인트들은 완결될 수 없습니다.

Mechanism

  • Fig 1)
    • 가장 첫 체크포인트는 검증되고 완결된 것으로 간주합니다.
    • 체크포인트 c2-1은 우선순위가 가장 높으므로 가장 쉬운 난이도의 작업증명을 수행하였고 이로 인해 제일 먼저 제출되었습니다.
    • 체크포인트 c2-1은 우선순위가 높아 가장 큰 보상을 제공해주므로 검증인들에 의해 투표 받아 검증(justified)되었습니다. 예를 들면 검증인들은 체크포인트 c2-1에 투표했을 경우 64개의 토큰을 지급받을 수 있지만, c2-2에 투표할 경우 16개의 토큰밖에 지급받지 못합니다.
  • Fig 2)
    • 체크포인트 c3-1은 데이터 가용성에 문제가 있습니다. 즉 해당 체크포인트를 생성한 노드가 다른 노드들에게 충분한 데이터를 제공하지 않는 상황입니다. 곧이어 두 번째 우선순위를 가진 노드가 작업증명을 완료하고 체크포인트를 제출합니다.
    • 검증인들은 c3-1이 데이터 가용성 문제를 가지고 있으므로 다른 체크포인트 생성자가 만들어낸 c3-2에 투표하여 검증을 완료합니다.
    • 체크포인트 c3-2이 검증되면서 캐스퍼는 체크포인트 c2-1을 완결짓습니다. 그리고 다이너스티(dynasty)가 2로 증가합니다.
  • Fig 3)
    • 체크포인트 c4-1이 제출되고 검증까지 완료되었지만 사실 상태 변경이 잘못된 체크포인트인 상황입니다.

  • Fig 4)
    • 지분증명으로 참가하고 있는 노드들 중 한 노드가 체크포인트 c4-1에 대해 추가적인 본드를 걸고 챌린지를 신청했습니다. 이 챌린지로 인해 해당 체크포인트 제출자는 상태 변경을 메인넷 상에서 검증하는 일을 진행해야 합니다.
    • 체크포인트 c4-1이 검증됨으로 인해 체크포인트 c4-2는 충돌되는 포크에 존재하므로 캐스퍼 법칙에 따라 검증이 불가능한 상황입니다.
  • Fig 5)
    • 챌린지가 성공하면 체크포인트 c4-1에 대한 검증은 취소됩니다.
    • 그리고 검증이 취소되면서 체크포인트 c4-1의 제안자 및 검증자들은 모두 예탁 지분을 몰수당하게 됩니다.
    • 악의적인 노드가 예탁금 몰수를 당하면서, 체크포인트 c4-2는 다시 검증 가능한 상태로 변경됩니다.
  • Fig 6)
    • 모든 완결되지 않은 체크포인트는 챌린지를 당할 수 있습니다.

  • Fig 7)

    • 캐스퍼 FFG에서는 검증인들이 검증된 체크포인트의 직계 자식 체크포인트에 검증을 진행하면 바로 완결되어지만, 캐스퍼 PEPoW에서는 해당 브랜치에 분쟁중인 체크포인트가 없을 때에만 완결됩니다.
    • 따라서 체크포인트 c5-2가 분쟁중이 아니라면 체크포인트 c6-1은 완결되어야만 합니다.
  • Fig 8)

    • 챌린지의 방어에 성공했을 때 이미 제출된 체크포인트들이 바로 완결되지는 않습니다.
  • Fig 9)

    • 체크포인트 c7-2는 체크포인트 c8-1이 검증되어 완결됩니다.
    • 지연된 완결들이 동시에 일어나고 다이너스티가 7로 상승합니다.

캐스퍼 PEPoW가 중요한 이유들

우선순위에 따른 지수적 작업증명 알고리즘은 네트워크가 작은 양의 해쉬파워만 가지고도 더욱 분산화되어 움직일수 있도록 도와줍니다. 그리고 작업 증명이 여전히 포크를 완화시키고 네트워크 다운 시의 문제를 해결할 수 있도록 해줍니다. 예를 들어 한 체크포인트 생성자가 해쉬파워를 활용해서 새치기를 하더라도 해당 체크포인트는 낮은 우선순위로 인해 보상을 조금밖에 제공하지 못하기 때문에 검증인들에게 선택되지 않을 가능성이 큽니다. 따라서 많은 해쉬파워를 가지는 것을 의미없게 만들고 이로 인해 많은 노드들은 자연스럽게 일정 수준의 표준 해쉬 파워를 사용해 동작할 수 있습니다.

캐스퍼FFG의 알고리즘을 레이어 2에 적용함으로써 우리는 레이어2의 운영자들이 경제적 인센티브를 받을 수 있도록 할 수 있고 많은 노드들이 검증인으로 참여할 수 있도록 합니다. 이에 따라 특정 체크포인트가 다른 사람들에게 충분한 데이터를 제공하지 않는다면 검증인들은 다른 체크포인트를 선택할 가능성이 크기 때문에 데이터 가용성 문제를 한층 완화시킬 수 있습니다.

기타

이드리서치 포럼 원문: https://ethresear.ch/t/merklux-plasma-plant/4050/11
작업중인 구현체: https://github.com/wanseob/casper-pepow-token
제출한 EIP: https://github.com/ethereum/EIPs/issues/1913

References

1 Like