검증자 증명: 이더리움 확장 과정에서 중요한 보안 퍼즐

심조TechFlow
2023-08-25 10:23:34
수집
성능과 안전은 이더리움의 최우선 사항입니다. 전자는 상한선을 결정하고, 후자는 하한선을 결정합니다.

작성자: 심조 TechFlow

오늘, 이더리움 연구 포럼에서 새로운 개념인 Proof of Validator가 조용히 탄생했습니다.

이 프로토콜 메커니즘은 네트워크 노드가 이더리움 검증자임을 증명할 수 있도록 하며, 그들의 구체적인 신원을 공개할 필요가 없습니다.

이것이 우리와 무슨 관계가 있을까요?

일반적으로 시장은 이더리움에서 특정 기술 혁신이 가져오는 표면적인 서사에 더 쉽게 주목하며, 기술 자체에 대해 사전에 깊이 연구하는 경우는 드뭅니다. 예를 들어 이더리움의 상하이 업그레이드, 병합, PoW에서 PoS로의 전환 및 확장, 시장은 LSD, LSDFi 및 재질의 서사만 기억합니다.

하지만 성능과 안전은 이더리움의 가장 중요한 요소라는 것을 잊지 말아야 합니다. 전자는 상한을 결정하고, 후자는 하한을 결정합니다.

명확히 볼 수 있는 것은, 한편으로 이더리움이 성능을 향상시키기 위해 다양한 확장 솔루션을 적극적으로 추진하고 있다는 것입니다. 그러나 다른 한편으로, 확장 과정에서 외부 공격을 방지하기 위해 내부 역량을 강화해야 합니다.

예를 들어, 검증 노드가 공격을 받아 데이터가 사용할 수 없게 된다면, 이더리움의 질의 논리에 기반한 모든 서사와 확장 솔루션이 연쇄적으로 영향을 받을 수 있습니다. 이러한 영향과 위험은 뒷면에 숨겨져 있어 최종 사용자와 투기자들이 인식하기 어렵고, 때로는 관심조차 두지 않습니다.

이 글에서 다룰 Proof of Validator는 이더리움 확장 과정에서 중요한 안전 퍼즐 조각이 될 수 있습니다.

확장이 불가피하다면, 확장 과정에서 내포된 위험을 줄이는 방법은 피할 수 없는 안전 주제이며, 이는 우리 각자와 밀접한 관련이 있습니다.

따라서 새롭게 제안된 Proof of Validator의 전모를 이해할 필요가 있습니다. 그러나 기술 포럼의 전체 내용은 너무 단편적이고 하드코어하며, 확장과 관련된 여러 솔루션과 개념이 얽혀 있기 때문에, 심조 연구소는 원문을 통합하고 필요한 관련 정보를 정리하여 Proof of Validator의 배경, 필요성 및 가능한 영향을 해석했습니다.

데이터 샘플링 (Data Availability Sampling): 확장의 돌파구

서두르지 마세요. Proof of Validator를 공식적으로 소개하기 전에, 현재 이더리움 확장의 논리를 이해하고 그 안에 내포된 위험을 파악할 필요가 있습니다.

이더리움 커뮤니티는 여러 확장 계획을 적극적으로 추진하고 있습니다. 그 중 데이터 가용성 샘플링(약칭 DAS)은 가장 중요한 기술로 여겨집니다.

그 원리는 전체 블록 데이터를 여러 "샘플(sample)"로 분할하고, 네트워크의 노드는 자신과 관련된 소수의 샘플만 가져와 전체 블록을 검증할 수 있도록 하는 것입니다.

이것은 각 노드의 저장 및 계산량을 크게 줄입니다. 이해하기 쉬운 예로, 이는 우리가 샘플 조사를 통해 다양한 사람들을 방문하여 전체 인구의 일반적인 상태를 요약하는 것과 유사합니다.

구체적으로, DAS의 구현 방식은 다음과 같이 요약됩니다:

  • 블록 생산자는 블록 데이터를 여러 샘플로 분할합니다.
  • 각 네트워크 노드는 전체 블록 데이터가 아닌 자신이 관심 있는 소수의 샘플만 가져옵니다.
  • 네트워크 노드는 다양한 샘플을 통해 전체 블록 데이터의 가용성을 무작위로 샘플링하여 검증할 수 있습니다.

이러한 샘플링을 통해, 각 노드가 소량의 데이터만 처리하더라도, 함께 모여 전체 블록체인의 데이터 가용성을 완전하게 검증할 수 있습니다. 이는 블록 크기를 대폭 증가시켜 빠른 확장을 가능하게 합니다.

하지만 이 샘플링 솔루션에는 하나의 핵심 문제가 있습니다: 방대한 샘플은 어디에 저장될까요? 이를 지원하기 위해서는 전체적인 분산 네트워크가 필요합니다.

분산 해시 테이블(Distributed Hashed Table): 샘플의 집

이것은 분산 해시 테이블(DHT)에게 기회를 제공합니다.

DHT는 거대한 분산 데이터베이스로 볼 수 있으며, 해시 함수를 사용하여 데이터를 주소 공간에 매핑하고, 서로 다른 노드가 서로 다른 주소 범위의 데이터를 저장하고 검색하는 역할을 합니다. 이는 방대한 노드에서 샘플을 빠르게 찾고 저장하는 데 사용될 수 있습니다.

구체적으로, DAS는 블록 데이터를 여러 샘플로 분할한 후, 이러한 샘플을 네트워크의 서로 다른 노드에 저장해야 합니다. DHT는 이러한 샘플을 저장하고 검색하는 분산 방법을 제공할 수 있으며, 기본 아이디어는 다음과 같습니다:

  • 일관된 해시 함수를 사용하여 샘플을 거대한 주소 공간에 매핑합니다.
  • 네트워크의 각 노드는 특정 주소 범위 내의 데이터 샘플을 저장하고 제공합니다.
  • 특정 샘플이 필요할 때, 해시를 통해 해당 주소를 찾고, 네트워크에서 그 주소 범위를 담당하는 노드를 찾아 샘플을 가져옵니다.

예를 들어, 특정 규칙에 따라 각 샘플을 해시하여 주소로 만들고, 노드 A는 0-1000번 주소를 담당하고, 노드 B는 1001-2000번 주소를 담당한다고 가정해 보겠습니다.

그렇다면 주소가 599인 샘플은 노드 A에 저장됩니다. 이 샘플이 필요할 때, 동일한 해시를 통해 주소 599를 찾고, 네트워크에서 해당 주소를 담당하는 노드 A를 찾아 그곳에서 샘플을 가져옵니다.

이러한 방식은 중앙 집중식 저장의 한계를 극복하고, 내결함성과 확장성을 크게 향상시킵니다. 이는 DAS 샘플 저장에 필요한 네트워크 인프라입니다.

중앙 집중식 저장 및 검색과 비교할 때, DHT는 내결함성을 높이고 단일 실패 지점을 피할 수 있으며, 네트워크의 확장성을 강화할 수 있습니다. 또한, DHT는 DAS에서 언급된 "샘플 숨기기"와 같은 공격에 저항하는 데 도움을 줄 수 있습니다.

DHT의 문제점: 마녀 공격

하지만 DHT는 Sybil 공격의 위협이라는 치명적인 약점을 가지고 있습니다. 공격자는 네트워크에서 많은 가짜 노드를 생성할 수 있으며, 주변의 실제 노드는 이러한 가짜 노드에 의해 "잠식"될 수 있습니다.

비유하자면, 정직한 상인이 가짜 상품들로 둘러싸여 있으면, 사용자는 진품을 찾기 어려워집니다. 이렇게 공격자는 DHT 네트워크를 제어하여 샘플을 사용할 수 없게 만들 수 있습니다.

예를 들어, 주소 1000의 샘플을 얻으려면 이 주소를 담당하는 노드를 찾아야 합니다. 그러나 공격자가 만든 수천 개의 가짜 노드에 의해 둘러싸이면, 요청은 계속해서 가짜 노드로 유도되어 실제로 이 주소를 담당하는 노드에 도달할 수 없습니다. 결과적으로 샘플을 얻을 수 없고, 저장 및 검증이 실패하게 됩니다.

이 문제를 해결하기 위해서는 DHT 위에 신뢰할 수 있는 네트워크 계층을 구축해야 하며, 이는 검증자 노드만 참여해야 합니다. 그러나 DHT 네트워크 자체는 노드가 검증자인지 여부를 식별할 수 없습니다.

이는 DAS와 이더리움 확장을 심각하게 저해합니다. 이러한 위협을 방지하고 네트워크의 신뢰성을 보장할 수 있는 방법이 있을까요?

Proof of Validator: 확장 안전성을 지키는 ZK 솔루션

이제, 이 글의 핵심인 Proof of Validator로 돌아가 보겠습니다.

이더리움 기술 포럼에서 오늘 George Kadianakis, Mary Maller, Andrija Novakovic, Suphanat Chunhapanya 4명이 이 솔루션을 공동으로 제안했습니다.

그의 전체적인 구상은, 우리가 DHT의 확장 솔루션에서 정직한 검증자만 참여하도록 하는 방법을 생각해 낸다면, 마녀 공격을 시도하는 악의적인 자들은 많은 ETH를 스테이킹해야 하며, 경제적으로 악행의 비용을 상당히 높일 수 있다는 것입니다.

이 구상을 우리가 더 잘 아는 말로 바꾸면, "당신의 신원을 모르는 상태에서 당신이 좋은 사람이라는 것을 알고, 나쁜 사람을 식별할 수 있기를 원한다"는 것입니다.

이러한 제한된 정보의 증명 시나리오에서, 제로 지식 증명은 분명히 유용하게 사용될 수 있습니다.

따라서 Proof of Validator(약칭 PoV)는 정직한 검증 노드로만 구성된 높은 신뢰의 DHT 네트워크를 구축하는 데 사용될 수 있으며, 마녀 공격에 효과적으로 저항할 수 있습니다.

그 기본 아이디어는 각 검증 노드가 블록체인에 공개 키를 등록하고, 제로 지식 증명 기술을 사용하여 이 공개 키에 해당하는 개인 키를 알고 있음을 증명하는 것입니다. 이는 마치 자신의 신분증을 제시하여 자신이 검증자임을 증명하는 것과 같습니다.

또한, 검증 노드의 DoS(서비스 거부) 공격에 대한 저항을 위해 PoV는 네트워크 계층에서 검증자의 신원을 숨기는 것을 목표로 합니다. 즉, 이 프로토콜은 공격자가 어떤 DHT 노드가 어떤 검증자 노드에 해당하는지를 식별할 수 없기를 원합니다.

그렇다면 구체적으로 어떻게 해야 할까요? 원문은 많은 수학 공식과 유도 과정을 사용했으므로 여기서는 생략하고, 간단한 버전을 제시하겠습니다:

구체적인 구현에서는 머클 트리 또는 룩업 테이블을 사용합니다. 예를 들어 머클 트리를 사용하여 등록된 공개 키가 공개 키 목록의 이 머클 트리에 존재함을 증명한 다음, 이 공개 키에서 파생된 네트워크 통신 공개 키가 일치함을 증명합니다. 전체 과정은 제로 지식 증명을 통해 이루어지며, 실제 신원을 누출하지 않습니다.

이러한 기술적 세부 사항을 건너뛰고, PoV가 최종적으로 구현하는 효과는:

신원 확인을 통과한 노드만 DHT 네트워크에 가입할 수 있으며, 그 안전성이 크게 증가하고 Sybil 공격에 효과적으로 저항할 수 있으며, 샘플이 의도적으로 숨겨지거나 수정되는 것을 방지합니다. PoV는 DAS에 신뢰할 수 있는 기반 네트워크를 제공하여 이더리움의 빠른 확장을 간접적으로 도와줍니다.

하지만 현재 PoV는 이론 연구 단계에 있으며, 실제 적용 가능성은 불확실합니다.

그러나 이 글의 연구자들은 이미 소규모 실험을 진행했으며, 결과는 PoV가 제로 지식 증명의 효율성과 검증자가 증명을 수신하는 효율성이 괜찮다는 것을 보여주었습니다. 주목할 점은 그들의 실험 장비가 단지 한 대의 노트북이며, 그 안에는 5년 전의 Intel i7 프로세서만 장착되어 있다는 것입니다.

마지막으로, 현재 PoV는 이론 연구 단계에 있으며, 실제 적용 가능성은 불확실합니다. 그러나 어쨌든, 이는 블록체인이 더 높은 확장성으로 나아가는 중요한 단계를 나타냅니다. 이더리움 확장 로드맵의 핵심 구성 요소로서, 이는 전체 산업이 지속적으로 주목할 가치가 있습니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
banner
체인캐처 혁신가들과 함께하는 Web3 세상 구축