CESS 메커니즘 상세 설명(2): 블록체인 계층과 랜덤 선택 순환 값(R²S) 합의 노드 메커니즘
对于任何一个区块链项目而言,基于区块链的共识层是最重要的底层架构,共识层的设计直接决定了整体网络的效率、安全性、去中心化程度等问题。当下众多新公链的崛起,很大程度上也是因为以太坊在DeFi Summer应用爆发后,链承载能力不足的问题被放大而导致的流量外溢。
相较于单纯的公链,存储公链虽然是一个比较细分的功能性网络,但对于数据处理效率的要求并不亚于一般公链。究其原因,还是由于当下公链为了追求效率,很多时候链上仅仅作为最终状态确认的场所,而将较多的复杂内容放在链下执行。
作为Web3.0底层基础设施,去中心化云存储网络CESS(Cumulus Encrypted Storage System)在设计之初秉持着对去中心化理念的坚持,在"信息上链"层面做到了尽可能的满足,并利用高效的链上处理效率来避免去中心化带来的低效问题,在"分散"和"高效"两个对立面上做到了很好的平衡。
1、랜덤 선택 순환 합의 노드 메커니즘 (R²S)
체인 상의 거래 처리 효율을 높이면서도 노드의 분산화를 실현하기 위해, CESS는 혁신적인 랜덤 선택 순환 합의 노드 메커니즘 (R²S)을 채택하여 블록 패킹 및 기타 체인 상의 거래를 수행합니다. 문자 그대로 볼 때, 이 메커니즘에서 체인 상의 합의를 완료하는 노드는 순환적으로 변경된다는 의미입니다. 한편, 소위 "순환"은 선택 과정에서도 "랜덤"으로 이루어지며, 문자 그대로 해석하면 CESS는 특정 시간 창 내에서 일정 수의 순환 노드가 합의 유지에 책임을 지며, 선택의 랜덤성을 통해 분산화 정도를 보장합니다.
하지만 실제 R²S는 문자 그대로 보이는 것만큼 간단하지 않습니다.
1.1 "랜덤"과 "순환"을 어떻게 구현할 것인가
사실 블록체인의 가장 중요한 점은 합의 문제입니다. 그러나 R²S의 합의 메커니즘을 설명하기 전에, 이 메커니즘에서 노드와 관련된 문제를 먼저 소개해야 합니다.
R²S 메커니즘은 모든 노드 운영자가 되고자 하는 사용자가 자유롭게 후보 노드에 가입할 수 있도록 허용하지만, 매 시간 창 내(예: 매 10,000 블록)에는 11개의 공식 순환 노드만 선택하여 블록 생성에 참여합니다. 블록 생성에 참여하지 않는 후보 노드는 데이터 사전 처리 과정에 참여하여 자신의 작업 능력을 증명할 수 있으며, 이를 통해 다음 라운드의 공식 순환 노드 선택에 참여할 수 있습니다. 이 과정에서 네트워크는 각 노드에 대해 신뢰도 평가를 수행하며, 노드가 작업 과정에서 네트워크 전체 이익에 해를 끼치는 행동을 할 경우 점수를 낮춥니다. 점수가 특정 기준선 이하로 떨어지면 해당 노드는 후보 노드 경쟁에 참여할 수 없습니다.
간단히 설명하자면, CESS는 사용자가 업로드한 데이터가 한 차례 데이터 사전 처리를 거친 후 노드에 저장되도록 합니다. 사전 처리에는 데이터의 분할, 암호화, 중복 등이 포함됩니다. 구체적인 내용은 후속 저장의 구체적인 과정에서 보여드리겠습니다.
메커니즘의 전체 작동 과정을 살펴보면: 먼저, 네트워크는 모든 후보 노드 중에서 랜덤으로 11개의 순환 노드를 선택하여 고정된 시간 창 내에서 블록 생성 등 합의 유지 작업을 수행하고, 후보 노드는 데이터의 사전 처리 과정에 참여하여 자신의 작업 능력을 증명합니다. 순환 노드가 당번으로 있는 동안, 네트워크는 조건을 만족하는 후보 노드 중에서 다시 랜덤으로 11개의 노드를 선택하여 다음 시간 창 내의 공식 순환 노드로 합의 유지를 수행합니다. 이 과정을 반복합니다.
이 과정에서 일부 공식 노드가 고의로 악행을 하거나 네트워크 요구 사항을 충족하지 못하는 문제가 발생하여 강제로 오프라인 될 경우, 네트워크는 후보 노드 중에서 랜덤으로 노드를 선택하여 보충하여 해당 시간 창의 당번을 완료합니다. 따라서 합의 노드 운영자에게는 후보 노드로서라도 네트워크에 지속적으로 기여해야 하며, 이는 수익을 얻을 가능성을 크게 증가시킵니다.
1.2 비잔틴 내결함성과 검증 가능한 랜덤 함수
구체적인 노드의 진입 및 퇴출 메커니즘을 이해한 후, 다음은 블록체인의 핵심 문제입니다: 분산화된 전제 하에 체인 상 데이터의 정확성을 어떻게 보장할 것인가. 이 측면에서 CESS는 더 높은 안전성을 보장하기 위해 비잔틴 내결함성과 검증 가능한 랜덤 함수를 채택하여 합의의 안전성을 확보합니다.
1.2.1 비잔틴 내결함성
CESS는 PBFT 합의 알고리즘을 참고하여 임계 서명 알고리즘과 수집자 역할을 도입하여 높은 가용성을 가진 비잔틴 내결함성 합의 알고리즘을 구현합니다. 이 알고리즘은 네트워크에 악의적인 노드가 존재할 경우에도 체인 상의 합의가 이루어질 수 있도록 보장합니다.
이 알고리즘의 11개 당번 합의 노드는 주 노드와 보조 노드로 나뉘며, 보조 노드는 작업에 따라 전송 노드와 수집 노드 두 가지 역할을 포함합니다. 매 라운드의 합의 과정에서는 주 노드가 있으며, 주 노드는 클라이언트로부터 요청을 받은 후 거래를 패킹하여 블록으로 만들고 모든 보조 노드에 전송합니다. 그런 다음, 전송 노드는 확인 및 서명 메시지를 확인하고 수집 노드에 전달합니다. 수집 노드는 임계 서명 메커니즘을 통해 수집된 모든 메시지를 집계하여 하나의 서명 메시지로 만들고, 이를 다른 모든 노드에 전송합니다. 이후 새로운 라운드의 전송 및 수집 과정을 계속하여 확인 메시지를 클라이언트에 반환합니다. 주목할 점은 두 라운드의 수집 노드가 동일한 노드로 지정될 수 있으며, 서로 다른 노드로 지정될 수도 있다는 것입니다. 이 알고리즘은 안전성과 활성성을 보장하는 전제 조건으로 시스템 내 비잔틴 노드 수가 시스템 총 노드 수의 1/3을 초과하지 않는다고 가정합니다. 노드 총 수가 N일 때, 최대 f개의 비잔틴 결함(배신자) 노드만 수용할 수 있으며, N은 3f + 1 이상이어야 합니다.
1.2.2 검증 가능한 랜덤 함수
대부분의 공공 체인과 달리, CESS의 합의 노드는 랜덤 선택으로 생성되며, 이는 네트워크가 변화에 대응하는 능력에 더 높은 요구를 의미합니다. 이러한 배경 속에서도 가능한 한 안전성을 보장하기 위해, CESS는 "후보 합의 노드 중에서 랜덤으로 몇 개의 합의 노드를 선택한 후, 합의 알고리즘을 통해 협력하여 거래를 패킹하여 블록을 생성하는" 방식을 채택하여 노드 선출의 랜덤성과 예측 불가능성을 증가시키고 블록체인의 안전성을 높입니다.
각 후보 합의 노드는 공개 키와 개인 키 쌍을 보유하고 있으며, 매 라운드의 시간 창에서 당번 합의 노드를 선출할 때, 각 후보 합의 노드는 다음 공식을 통해 해시 랜덤 출력을 계산합니다.
R=VRF_Hash(SK, Seed)
P=VRF_Proof(SK, Seed)
여기서 SK는 노드의 개인 키이고, Seed는 CESS 체인 내 특정 블록의 필드 정보로, 사전에 예측할 수 없습니다. R은 해시 랜덤 출력이며, P는 해시 증명입니다.
위 단계를 통해 검증자는 두 값이 실제로 해당 값을 가진 노드에 의해 생성되었음을 쉽게 검증할 수 있습니다.
R=VRF_P2H(P)
VRF_Verify(PK, Seed, P)
여기서 PK는 검증할 노드의 공개 키입니다.
이때, 해시 랜덤 출력이 가장 작은 11개의 노드를 당번 합의 노드로 선택할 수 있습니다. 선택된 노드가 11개를 초과할 경우, 신뢰도 평가에 따라 필터링됩니다.
1.3 진입 및 퇴출
CESS는 노드의 진입에 대해 지나치게 엄격한 전제 조건을 설정하지 않았지만, 네트워크 운영 조건의 기본 운영 지표, 자원 기여 지표를 충족해야 하며, 일정 수량의 CESS 토큰을 스테이킹하여 참여해야 합니다. 이는 노드의 악행을 방지하기 위한 것입니다. 노드가 CESS 토큰을 스테이킹한 후에는 위의 과정에 참여할 수 있습니다. 노드가 퇴출하고자 할 때, 네트워크는 노드의 운영 과정에서의 평가 점수를 기준으로 스테이킹한 토큰을 전액 환불할지 여부를 판단합니다. 이론적으로 노드가 정상적으로 작업하고 장시간 오프라인 되거나 고의로 악행을 저지르지 않는 한, 네트워크는 스테이킹한 토큰을 전액 환불합니다.
이 진입 메커니즘은 마녀 공격을 예방하고 합의의 안전성을 높입니다.
2、R²S 메커니즘의 장점
메커니즘 설계 관점에서 볼 때, R²S는 다소 복잡하지만, CESS 팀은 이 모델을 설계할 때 저장 공공 체인에 대한 특별한 고려를 했습니다.
2.1 "채굴자 딜레마" 해결 및 독점 방지
"채굴자 딜레마"는 저장 네트워크에서 채굴자가 블록 역사(전체 노드를 구축하기를 원하지 않음)를 저장하기보다는 수익을 창출할 수 있는 데이터를 저장하려는 경향이 있어, 소수의 전체 노드에서 데이터를 요청하여 네트워크 동기화를 보장하거나 채굴 풀에 가입함으로써 전체 노드가 지나치게 중앙집중화되는 문제를 의미합니다. CESS는 R²S를 통해 합의와 저장의 분리를 실현하여 블록 역사 저장의 분산화를 보장하고, 대형 채굴자의 지나친 권력 집중이 네트워크 전체 발전에 불리한 영향을 미치는 것을 방지합니다.
2.2 분산화 프레임워크 하의 효율성 대폭 향상
11개의 노드만으로 합의를 유지할 경우 효율성이 높아지지만, 네트워크는 마치 연합 체인처럼 매우 중앙집중화됩니다. CESS는 이 효율적인 솔루션의 배경 속에서 분산화를 실현하기 위해 매 라운드에 참여하여 합의를 유지하는 메커니즘을 랜덤으로 설정했습니다. 노드 요구 사항을 충족하기만 하면 블록 생성에 참여할 기회를 가지며, 중앙집중화 문제를 잘 해결합니다.
2.3 체인 상 거래 처리 구현
CESS의 체인 상 데이터는 거래 및 계약 확인 외에도 사용자가 업로드한 데이터의 "위치" 정보를 포함합니다. 즉, CESS는 저장된 내용의 메타데이터를 체인 상에 성공적으로 구현했습니다. 현재 많은 프로젝트가 체인 상 효율성을 높이기 위해 일부 데이터를 체인 외부에서 처리하는 경향이 있지만, 이러한 솔루션은 안전성을 보장하기 위한 많은 메커니즘이 필요하며, 체인 처리 효율이 낮기 때문에 어쩔 수 없이 선택된 것입니다. CESS는 체인 상 거래 처리의 효율성 덕분에 메타데이터의 체인 상 구현을 가능하게 하여 데이터 저장의 주소 지정 등을 체인 상 데이터로 직접 구현할 수 있으며, 체인 상은 데이터의 진실성을 보장합니다.
하지만 실제 작업에서는 저장 네트워크의 효율성을 우선시하기 위해 노드는 메타데이터 데이터베이스를 유지하며, 주소 지정은 먼저 해당 데이터베이스에서 시작하고, 찾을 수 없는 경우에만 체인 상에서 데이터를 요청합니다. 이 데이터베이스는 체인 상 정보를 동기화하여 생성되며, 본질적으로 진실성이라는 특성을 해치지 않습니다.
합의 노드가 동일한 데이터를 체인 상과 체인 외부에 동시에 저장해야 하는 이유는 한편으로는 네트워크 수요가 많을 때 체인 상에서 데이터를 요청하는 데 드는 높은 비용을 줄이기 위함이며, 다른 한편으로는 다른 조정자가 사용자 데이터를 더 빠르게 처리할 수 있도록 하기 위함입니다.
3、 요약
전반적으로 CESS는 R²S 메커니즘을 채택하여 한편으로는 합의와 저장의 분리를 실현하고 "채굴자 딜레마"와 독점을 방지하며, 다른 한편으로는 신뢰할 수 있는 실행 환경(TEE) 기술을 통해 합의 노드의 정직성과 조정 기능을 정기적으로 검사하여 노드 간의 공정한 경쟁을 통해 네트워크에 가능한 한 양질의 서비스를 제공하도록 보장합니다. Substrate 오픈 소스 프레임워크를 기반으로 개발된 CESS 분산형 클라우드 저장 네트워크는 WASM을 지원할 뿐만 아니라 향후 EVM 스마트 계약과 호환될 예정입니다. 이는 개발자가 CESS의 원주율 생태계를 구축하는 데 편리함을 제공하고, 데이터 상호작용 수요가 높은 많은 프로젝트가 안착할 수 있는 공간을 마련하며, 많은 응용 프로그램이 CESS로 원활하게 이전할 수 있도록 하여 초기 빠른 발전을 위한 길을 닦습니다.















