본문으로 건너뛰기
Change page

경량 클라이언트

풀 노드를 실행하는 것은 이더리움과 상호작용하는 가장 무신뢰, 프라이빗, 탈중앙화된, 그리고 검열 저항적인 방법입니다. 풀 노드를 사용하면 즉시 쿼리할 수 있는 블록체인의 자체 사본을 유지하고 이더리움의 피어 투 피어 네트워크에 직접 접근할 수 있습니다. 하지만 풀 노드를 실행하려면 상당한 양의 메모리, 저장 공간 및 CPU가 필요합니다. 이는 모든 사람이 자신의 노드를 실행하는 것이 현실적으로 불가능함을 의미합니다. 이더리움 로드맵에는 무상태성을 포함하여 이에 대한 몇 가지 해결책이 있지만, 구현되기까지는 아직 몇 년이 더 걸릴 것입니다. 단기적인 해결책은 풀 노드 실행의 이점 중 일부를 포기하는 대신, 매우 낮은 하드웨어 요구 사항으로도 노드를 실행할 수 있도록 큰 성능 향상을 얻는 것입니다. 이러한 절충안을 선택한 노드를 라이트 노드라고 합니다.

경량 클라이언트란 무엇인가요?

라이트 노드는 경량 클라이언트 소프트웨어를 실행하는 노드입니다. 블록체인 데이터의 로컬 사본을 유지하고 모든 변경 사항을 독립적으로 검증하는 대신, 필요한 데이터를 제공자에게 요청합니다. 제공자는 풀 노드에 직접 연결되거나 중앙화된 RPC 서버를 통할 수 있습니다. 그런 다음 데이터는 라이트 노드에 의해 검증되어 체인의 헤드를 따라갈 수 있게 합니다. 라이트 노드는 블록 헤더만 처리하며, 실제 블록 내용은 가끔씩만 다운로드합니다. 노드는 실행하는 경량 및 풀 클라이언트 소프트웨어의 조합에 따라 경량화 정도가 다를 수 있습니다. 예를 들어, 가장 가벼운 구성은 경량 실행 클라이언트와 경량 합의 클라이언트를 실행하는 것입니다. 또한 많은 노드가 풀 실행 클라이언트와 함께 경량 합의 클라이언트를 실행하거나 그 반대로 실행하는 것을 선택할 가능성도 높습니다.

경량 클라이언트는 어떻게 작동하나요?

이더리움이 지분 증명(PoS) 기반 합의 메커니즘을 사용하기 시작했을 때, 경량 클라이언트를 특별히 지원하기 위한 새로운 인프라가 도입되었습니다. 작동 방식은 1.1일마다 512명의 검증자 하위 집합을 무작위로 선택하여 동기화 위원회 역할을 하도록 하는 것입니다. 동기화 위원회는 최근 블록의 헤더에 서명합니다. 각 블록 헤더에는 동기화 위원회에 속한 검증자들의 집계된 서명과 어떤 검증자가 서명했고 어떤 검증자가 서명하지 않았는지를 보여주는 "비트필드(bitfield)"가 포함되어 있습니다. 또한 각 헤더에는 다음 블록 서명에 참여할 것으로 예상되는 검증자 목록이 포함되어 있습니다. 이는 경량 클라이언트가 수신한 데이터에 동기화 위원회가 서명했음을 빠르게 확인할 수 있으며, 이전 블록에서 예상하도록 안내받은 위원회와 수신한 위원회를 비교하여 해당 동기화 위원회가 진짜인지 확인할 수 있음을 의미합니다. 이러한 방식으로 경량 클라이언트는 블록 자체를 다운로드하지 않고 요약 정보가 포함된 헤더만으로 최신 이더리움 블록에 대한 지식을 계속 업데이트할 수 있습니다.

실행 계층에는 경량 실행 클라이언트에 대한 단일 사양이 없습니다. 경량 실행 클라이언트의 범위는 풀 노드의 모든 EVM 및 네트워킹 기능을 갖추고 있지만 관련 데이터를 다운로드하지 않고 블록 헤더만 검증하는 풀 실행 클라이언트의 "라이트 모드"부터, 이더리움과 상호작용하기 위해 RPC 제공자에게 요청을 전달하는 데 크게 의존하는 더 축소된 클라이언트까지 다양할 수 있습니다.

경량 클라이언트가 중요한 이유는 무엇인가요?

경량 클라이언트가 중요한 이유는 풀 노드의 컴퓨팅 리소스 중 아주 작은 부분만 사용하면서도, 사용자가 데이터 제공자가 정확하고 정직하다고 맹목적으로 신뢰하는 대신 수신되는 데이터를 직접 검증할 수 있게 해주기 때문입니다. 경량 클라이언트가 수신하는 데이터는 512명의 무작위 이더리움 검증자 세트 중 최소 3분의 2 이상이 서명한 것으로 알려진 블록 헤더와 대조하여 확인할 수 있습니다. 이는 데이터가 정확하다는 매우 강력한 증거입니다.

경량 클라이언트는 아주 적은 양의 컴퓨팅 파워, 메모리 및 저장 공간만 사용하므로 휴대폰에서 실행하거나 앱에 내장하거나 브라우저의 일부로 실행할 수 있습니다. 경량 클라이언트는 제3자 제공자를 신뢰하는 것만큼이나 마찰 없이 이더리움에 대한 신뢰 최소화 접근을 가능하게 하는 방법입니다.

간단한 예를 들어보겠습니다. 계정 잔액을 확인하고 싶다고 가정해 보겠습니다. 이를 위해서는 이더리움 노드에 요청을 보내야 합니다. 해당 노드는 이더리움 상태의 로컬 사본에서 잔액을 확인하고 그 결과를 반환합니다. 노드에 직접 접근할 수 없는 경우, 이 데이터를 서비스로 제공하는 중앙화된 운영자가 있습니다. 그들에게 요청을 보내면, 그들은 자신의 노드를 확인하고 결과를 다시 보내줍니다. 이 방식의 문제는 제공자가 올바른 정보를 제공하고 있다고 신뢰해야 한다는 것입니다. 스스로 검증할 수 없다면 정보가 정확한지 결코 확신할 수 없습니다.

경량 클라이언트는 이 문제를 해결합니다. 여전히 외부 제공자에게 데이터를 요청하지만, 데이터를 돌려받을 때 라이트 노드가 블록 헤더에서 수신한 정보와 대조하여 확인할 수 있는 증명이 함께 제공됩니다. 이는 신뢰할 수 있는 운영자 대신 이더리움이 데이터의 정확성을 검증하고 있음을 의미합니다.

경량 클라이언트는 어떤 혁신을 가능하게 하나요?

경량 클라이언트의 주요 이점은 무시할 수 있을 정도의 하드웨어 요구 사항과 제3자에 대한 최소한의 의존성으로 더 많은 사람들이 독립적으로 이더리움에 접근할 수 있게 해준다는 것입니다. 이는 사용자가 자신의 데이터를 검증할 수 있어 사용자에게 좋고, 체인을 검증하는 노드의 수와 다양성을 증가시키므로 네트워크에도 좋습니다.

매우 적은 저장 공간, 메모리 및 처리 능력을 가진 기기에서 이더리움 노드를 실행할 수 있는 능력은 경량 클라이언트가 열어준 주요 혁신 분야 중 하나입니다. 오늘날 이더리움 노드는 많은 컴퓨팅 리소스를 필요로 하지만, 경량 클라이언트는 브라우저에 내장되거나 휴대폰에서 실행될 수 있으며, 스마트워치와 같은 더 작은 기기에서도 실행될 수 있습니다. 이는 클라이언트가 내장된 이더리움 지갑이 휴대폰에서 실행될 수 있음을 의미합니다. 이는 모바일 지갑이 데이터를 위해 중앙화된 데이터 제공자를 신뢰할 필요가 없으므로 훨씬 더 탈중앙화될 수 있음을 의미합니다.

이것의 연장선은 사물 인터넷(IoT) 기기를 활성화하는 것입니다. 경량 클라이언트는 동기화 위원회가 제공하는 모든 보안 보장과 함께 특정 토큰 잔액이나 NFT의 소유권을 빠르게 증명하여 IoT 네트워크에서 어떤 작업을 트리거하는 데 사용될 수 있습니다. 내장된 경량 클라이언트가 있는 앱을 사용하여 대여 서비스의 NFT를 소유하고 있는지 빠르게 확인하고, 그렇다면 자전거의 잠금을 해제하여 타고 갈 수 있게 해주는 자전거 대여 서비스 (opens in a new tab)를 상상해 보세요!

이더리움 롤업 또한 경량 클라이언트의 이점을 누릴 수 있습니다. 롤업의 큰 문제 중 하나는 이더리움 메인넷에서 롤업으로 자금을 전송할 수 있게 해주는 브릿지를 표적으로 삼는 해킹이었습니다. 한 가지 취약점은 사용자가 브릿지에 입금했음을 감지하기 위해 롤업이 사용하는 오라클입니다. 오라클이 잘못된 데이터를 제공하면, 롤업이 브릿지에 입금이 있었다고 착각하게 만들어 자금을 잘못 방출하도록 속일 수 있습니다. 롤업에 내장된 경량 클라이언트는 손상된 오라클로부터 보호하는 데 사용될 수 있습니다. 브릿지로의 입금 시 토큰을 방출하기 전에 롤업이 검증할 수 있는 증명이 함께 제공될 수 있기 때문입니다. 동일한 개념이 다른 인터체인 브릿지에도 적용될 수 있습니다.

경량 클라이언트는 이더리움 지갑을 업그레이드하는 데에도 사용될 수 있습니다. RPC 제공자가 제공하는 데이터를 신뢰하는 대신, 지갑은 내장된 경량 클라이언트를 사용하여 사용자에게 제시되는 데이터를 직접 검증할 수 있습니다. 이는 지갑에 보안을 더해줄 것입니다. RPC 제공자가 정직하지 않아 잘못된 데이터를 제공했다면, 내장된 경량 클라이언트가 이를 알려줄 수 있습니다!

경량 클라이언트 개발의 현재 상태는 어떤가요?

실행, 합의 및 실행/합의 결합 경량 클라이언트를 포함하여 여러 경량 클라이언트가 개발 중입니다. 이 페이지를 작성하는 시점에 알려진 경량 클라이언트 구현체는 다음과 같습니다.

우리가 아는 한, 이들 중 아직 프로덕션 준비가 완료된 것으로 간주되는 것은 없습니다.

경량 클라이언트가 이더리움 데이터에 접근하는 방식을 개선하기 위한 많은 작업도 진행 중입니다. 현재 경량 클라이언트는 클라이언트/서버 모델을 사용하여 풀 노드에 대한 RPC 요청에 의존하지만, 미래에는 피어 투 피어 가십 프로토콜을 사용하여 경량 클라이언트에 데이터를 제공할 수 있는 포털 네트워크 (opens in a new tab)와 같은 전용 네트워크를 사용하여 보다 탈중앙화된 방식으로 데이터를 요청할 수 있습니다.

버클 트리무상태성과 같은 다른 로드맵 항목들은 궁극적으로 경량 클라이언트의 보안 보장을 풀 클라이언트와 동일한 수준으로 끌어올릴 것입니다.

더 읽어보기