안녕하세요. Planetarium 에서 블록체인 디비전의 Libplanet 팀으로 근무하고 있는 이수호라고 합니다. 오늘은 Libplanet이 PBFT로 전환하게 된 계기와 그 과정에 대해 설명하는 글의 첫 번째 에피소드를 이야기하고자 합니다. 이 블로그 글에서는 Libplanet 블록체인의 합의 변경 과정, 변경 이유, 구체적인 변경 내용 및 새로운 합의 알고리즘의 이점에 대해 논의하겠습니다.
소개
블록체인 기술은 혁신을 이루고 있으며, Libplanet은 주요 블록체인 엔진 중 하나입니다. Libplanet
은 .NET 플랫폼으로 구축된 고도로 확장 가능하고 탈중앙화된 오픈소스 플랫폼입니다. 이 플랫폼은 독특한 합의 알고리즘을 사용하여 네트워크 무결성을 보장하며, 높은 효율성과 안정성을 갖추고 있습니다.
Nine Chronicles에 대해 이야기해 보겠습니다.
2020년 이후 Nine Chronicles의 블록 생성 진화에 대한 이야기를 먼저 해 보고자 합니다. 처음에는 참여자들이 문제를 해결하는 “작업 증명(PoW)” 방법을 사용했었는데, 해결한 문제가 가장 어려우면서 짧은 시간 내에 해결한 블록이 선택되는 방식이었습니다. 그러나 이 방식에는 두 가지 큰 문제점이 있었습니다.
- 가장 어려운 문제를 해결한 개인이 전체 커뮤니티에 이익이 되는 결정을 내릴 것임을 보장할 수 없었습니다. 경우에 따라 데이터가 포함되지 않은 블록이 생성되었으며, 문제가 더 어려울 경우 그것을 수용해야 했습니다.
- 더 어려운 문제가 해결되고 총 난이도가 높은 블록이 생성되면, 이전 데이터가 변경될 수 있으므로 이상적이지 않았습니다.
이러한 문제로 인해 블록에 데이터가 없는 경우와 게임 진행의 롤백 등 게임 경험에 부정적인 영향을 미쳤습니다. 이에 따라, 2021년에는 Planetarium에서 Nine Chronicles의 Canonical chain 이 되기 위한 블록으로써 우리 자신이 만든 블록만 인정하기로 결정했습니다.
그러나 우리는 Nine Chronicles에서 블록을 결정하는 유일한 권한을 가지고 싶지는 않았습니다. 우리의 초기 제안인 NCIP-10은 여러 가지 이유로 결코 실현되지 않았습니다. 하지만 우리는 포기하지 않고 NCIP-13을 제시하고 이를 확립했습니다. 2023년부터 PBFT 및 미래의 개발은 NCIP-13에 기반하여 이루어지며, 블록 생성 및 관리에 대한 더 강력하고 효과적인 접근 방식을 보장합니다.
블록체인 게임에서 작업 증명의 문제점
Libplanet 팀으로서, 블록체인 게임에서 네트워크 보안과 효율성을 보장하는 것이 중요하다는 것을 이해하고 있습니다. PoW를 합의 알고리즘으로 계속 사용하는 것이 최종성 및 체인 전환과 관련된 문제로 인해 내 외부에서 많은 걱정을 만들어 왔다는 것을 알고 있습니다.
PoW의 종국성(Finality) 부족은 네트워크에서 거래가 즉시 확인되지 않을 수 있으며, 포크 가능성이 항상 존재하므로 체인 재구성(Re-organization)이 발생할 수 있습니다. 이로 인해 이전에 확인된 거래가 확인되지 않게 되어 체인을 보는 다양한 서비스에 문제가 발생할 수 있습니다.
특히 작은 체인에서 체인 전환은 PoW의 또 다른 중요한 문제입니다. 작은 체인에서는 손쉽게 더 어려운 문제를 풀어 체인을 원하는 대로 재구성 할 수 있었으며 이는 게임 플레이의 지연 및 사용자 경험에 부정적인 영향을 미칠 수 있습니다.
Libplanet 팀에서는 이러한 우려를 심각하게 받아들이고 있으며, 더 나은 사용자 경험을 제공하기 위해 보다 효율적이고 안전한 합의 알고리즘, 특히 위임형 작업 증명(DPoS) 합의 알고리즘으로 전환하는 작업을 진행하고 있습니다.
DPoS를 채택함으로써 우리는 더 나은 최종성 보장을 제공하고 체인 전환 관련 문제를 피할 수 있습니다. DPoS는 이해관계자들이 대리인을 선출하여 그들을 대신해 거래를 검증하는 합의 알고리즘입니다. 이 시스템은 PoW보다 효율적이며, 채굴자가 복잡한 수학적 문제를 해결해야 하거나 여러 노드가 동일한 거래를 검증해야 하는 필요성을 피합니다. 대신 이해관계자들은 대리인을 선출하여 그들이 거래를 검증할 책임을 지게 됩니다.
하지만 바로 DPoS로 전환하는 것은 많은 수고가 듭니다. 단순히 합의 알고리즘만을 변경하는 것이 아니라, PoW에서는 신경쓰지 않아도 되었던 요금 징수 체계나 위임자 분배 알고리즘 등을 구현해야 하기 때문입니다.
따라서 저희는, Practical Byzantine Fault Tolerance (PBFT)를 거쳐 DPoS로 전환하기로 결정하였습니다.
실용적인 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, PBFT)
PBFT는 일부 노드가 실패하거나 악의적으로 동작하는 경우에도 네트워크가 합의에 도달할 수 있는 비잔틴 장애 허용 합의 알고리즘입니다. PoW와는 다르게, Validator를 선정하고 그들 사이에서 블록 생성과 투표 과정을 거쳐 체인이 진행됩니다.
하지만, PBFT만을 가지고는 퍼블릭 블록체인을 달성할 수는 없습니다. 이 Validator 들을 관리할 수 있는 개인 혹은 단체가 존재해야 하고, 이는 곧 체인의 중앙화로 이어지기 때문입니다.
따라서 이 Validator 를 규칙에 맞게 선출하고, 더 많은 기여를 한 개인 혹은 단체가 체인 합의에 더 많은 영향을 끼칠 수 있는 알고리즘이 바로 Delegated Proof of Stake(DPoS) 입니다.
위임형 작업 증명(Delegated Proof of Stake, DPoS)
위임형 작업 증명(DPoS) 합의 알고리즘은 체인에 참여하는 사용자들이 대리인(Delegator)을 선출하여 그들을 대신해 거래를 검증하고, 대리인은 그 보상을 받아가는 방식으로, PBFT가 가진 중앙화 문제를 피할 수 있습니다.
이를 달성하게 되면 Libplanet 블록체인의 합의 변경 과정은 민주적이며, 커뮤니티가 합의 알고리즘 선택 과정에 참여할 수 있도록 보장합니다. 이것은 네트워크가 계속 발전하도록 보장하기 위해 플랫폼을 지속적으로 개선함으로써 더욱 더 미래 지향적이게 만듭니다.
Libplanet 블록체인 합의 변경 과정의 이점
Libplanet 블록체인 합의 변경 과정에는 여러 가지 이점이 있습니다.
첫째, 네트워크 보안과 효율성을 보장합니다. 더 효율적이고 안전한 합의 알고리즘으로 전환함으로써 Libplanet 팀은 네트워크가 더 많은 거래를 처리하고 안전하게 유지될 수 있도록 보장합니다.
둘째, 민주적입니다. 커뮤니티는 합의 알고리즘 선택 과정에 참여할 수 있으며, DPoS를 채택함으로써 네트워크는 사용하는 사람들에 의해 통치됩니다. 중앙 집중적인 권위가 아니라 사용자들이 통치하는 시스템입니다.
마지막으로, 합의 변경 과정은 Libplanet 블록체인이 계속해서 관련성을 유지할 수 있도록 보장합니다. 플랫폼을 지속적으로 개선함으로써 Libplanet 팀은 계속 변화하는 블록체인 환경에서 경쟁력을 유지합니다.
결론
Libplanet 팀은 모든 사용자들에게 더 나은 블록체인 게임 경험을 제공하기 위해 노력하고 있습니다. Delegated Proof of Stake (DPoS) 합의 알고리즘으로 전환함으로써 더 나은 최종성 보장을 제공하고 체인 전환 관련 문제를 피할 수 있습니다. DPoS는 이해관계자들이 검증 과정에 참여할 수 있도록 하여 PoW나 Practical Byzantine Fault Tolerance (PBFT)보다 더 민주적인 시스템입니다. 하지만 바로 DPoS로 합의 알고리즘을 변경하기에는 여러 고려할 점이 많으므로 PBFT로의 전환을 우선하기로 결정하였습니다.
다음 이야기
PoW -> PBFT를 전환하면서 고려해야 했던 것들에 대해 이야기하도록 하겠습니다.