출처: Golden Finance
2024 홍콩 웹3 카니발에서 이더리움의 공동 창립자인 비탈릭 부테린은 '한계에 도달하다. 프로토콜 설계의 한계에 도달하다"라는 제목으로 연설했습니다. 골든 파이낸스는 독자들을 위해 아래 연설 내용을 정리했습니다.
블록체인과 ZK-SNARKS
프로토콜 구축에 사용하는 기술 유형은 지난 10년 동안 많은 변화를 겪었습니다. 2009년에 비트코인이 처음 만들어졌을 때는 사실 매우 단순한 형태의 암호화를 사용했었죠? 비트코인 프로토콜에서 볼 수 있는 유일한 종류의 암호화는 해시, 타원 곡선 ECDSA 서명, 작업 증명뿐입니다. 작업 증명은 해시를 사용하는 또 다른 방법일 뿐이며, 2000년에 프로토콜을 구축하는 데 사용된 기술을 살펴보면 10년 전에 나온 훨씬 더 정교한 기술 세트를 볼 수 있습니다.
이러한 기능 중 상당수는 확실히 오래전부터 존재해 왔습니다. 엄밀히 따지면 수십 년 전 PCP 정리가 탄생한 이래로 ZK- SNARKS는 존재해 왔습니다. 따라서 이론적으로는 오랫동안 사용되어 온 기술이지만, 실제로는 학술 논문에서 할 수 있는 것과 실제 애플리케이션에서 할 수 있는 것 사이에는 큰 효율성의 장벽이 존재합니다.
사실, 블록체인 자체가 이러한 기술의 채택을 촉진하고 실제로 실용화하고 있기 때문에 블록체인 자체에 대해 할 말이 많다고 생각합니다.
오늘날의 상황은 지난 10년 동안 변화해왔으며 큰 진전을 이루었습니다. 여기에는 다양한 것들이 포함됩니다. 오늘날 우리가 사용하는 프로토콜은 이러한 모든 기술에 점점 더 의존하고 있습니다. 2000년에 구축된 프로토콜을 살펴보면, 이 모든 것들이 처음부터 핵심 구성 요소로 간주되었습니다. 가장 먼저 등장한 것이 ZK-SNARKS였죠? ZK-SNARKS는 기술입니다. 증명을 더 빠르게 검증한 다음 직접 계산을 실행할 수 있는 방법입니다. 또한 원본 입력에서 많은 정보를 숨기지 않고도 증명을 검증할 수 있습니다. 따라서 ZK-SNARKS를 찾는 것은 프라이버시 측면에서 매우 유용하고 확장성 측면에서도 매우 유용합니다.
자, 블록체인은 어떤 역할을 할까요? 블록체인은 개방성, 글로벌 검증 가능성 등 많은 이점을 제공합니다. 하지만 이 모든 것에는 두 가지 큰 희생이 따릅니다. 하나는 프라이버시이고 다른 하나는 보안입니다. ZK-SNARKS는 프라이버시를 되찾고 보안을 강화합니다. 2016년에 저희는 지캐시 프로토콜을 보았습니다. 그리고 생태계 이론에서 점점 더 많은 것을 보기 시작했습니다. 오늘날 거의 모든 것이 ZK를 기반으로 구축되기 시작했고, 다자간 연산과 완전한 동형 암호화가 시작되었습니다. 하지만 ZK-SNARKS로는 할 수 없는 일들도 있습니다. 개인 정보 보호, 계산, 사람들의 개인 데이터에서 실행되는 것 등이 바로 그것입니다. 투표는 실제로 어느 정도의 이점을 얻을 수 있는 중요한 사용 사례입니다. 따라서 ZK-SNARKS로 투표를 하되, 정말 최고의 속성을 얻으려면 MPC와 FHE를 사용해야 합니다.
많은 암호화폐, AI 앱에서도 지난 10년간 효율성이 빠르게 개선된 기본 요소인 MPC와 FHE를 사용하게 될 것입니다.
BLS 키 집계는 기본적으로 여러 참가자(잠재적으로 수만 명)의 서명을 모두 취한 다음 하나의 서명을 검증하는 것처럼 최대한 빨리 결합된 서명을 검증할 수 있는 흥미로운 기법입니다.
이것은 강력합니다. BLS 키 집계는 실제로 현대 상태 합의 증명 이론의 핵심에 있는 기술입니다.
BLS 키 집계 이전에 구축된 상태 합의 증명을 살펴보면, 알고리즘은 일반적으로 12초마다 약 3만 개의 서명을 제출하는 정리와 같이 수백 개의 검증만 지원할 수 있는 경우가 많았습니다. 이는 이 새로운 형태의 암호화가 지난 5~10년 동안에야 겨우 최적화되었기 때문에 가능한 일입니다.
효율성, 보안, 확장성
이렇게 새로운 기술에서 많은 것들이 나왔습니다. 이들은 매우 빠르게 강해졌습니다. 오늘날의 프로토콜은 이러한 기술을 모두 활용하고 있습니다. 특수 목적 암호화에서 범용 암호화로 큰 변화를 겪었는데, 새로운 프로토콜을 만들려면 암호화가 어떻게 작동하는지 직접 이해해야 합니다. 특수 목적 애플리케이션을 위한 특수 목적 알고리즘을 보다 일반적인 목적으로 만들어야 합니다. 이 세상에서는 지난 5분 동안 제가 이야기한 것을 사용하는 애플리케이션을 만들기 위해 암호학자가 될 필요도 없습니다. 코드를 작성하고 이를 승인 및 유효성 검사기로 컴파일하면 기록을 찾는 앱을 만들 수 있습니다.
그렇다면 여기에는 어떤 과제가 있을까요? 현재 가장 큰 두 가지 과제는 효율성과 보안이라고 생각합니다. 이제 세 번째 과제가 있는데, 말하자면 기능을 확장하는 것입니다. 저는 현재 우리가 가지고 있는 것의 효율성과 보안을 개선하는 것이 더 중요하다고 생각합니다.
효율성에 대해 이야기해 보겠습니다. 블록체인 이론의 구체적인 예를 들어보겠습니다. 이론적으로 한 블록에서 벗어나는 데 걸리는 시간이 12초라면, 한 블록과 다음 블록 사이의 평균 시간은 12초라는 뜻입니다. 일반적인 블록 검증 시간입니다. 이는 다음 레벨 노드가 블록을 검증하는 데 걸리는 시간으로, 약 400밀리초입니다. 트랩을 찾아 평균 이론을 증명하고 블록을 생성하는 데 걸리는 시간은 현재 약 20분입니다. 하지만 2년 전만 해도 이 시간은 빠르게 개선되고 있었습니다. 그 전에는 5시간을 기다려야 했습니다. 지금은 평균 20분 정도 걸립니다. 2년 전과 비교하면 여전히 많은 진전이 있었습니다.
이제는 어떻게 하나요? 실시간 증명을 하는 것이 목표입니다. 블록이 생성되면 다음 블록이 생성되기 전에 증명을 받을 수 있고, 실시간 증명을 구현하면 전 세계의 모든 사용자가 쉽게 프로토콜의 완전한 검증 사용자가 될 수 있다는 것이 목표입니다. 브라우저 지갑, 모바일 지갑, 다른 체인의 스마트 컨트랙트 지갑을 포함한 모든 이더 지갑이 실제로 합의 규칙의 이론을 완전히 검증하는 세상에 도달할 수 있다면 말입니다.
따라서 그들은 실제로 규칙을 직접 검증하고 블록이 올바른지 직접 확인하기 때문에 지분 검증을 선호한다고 생각하지도 않습니다. 이를 위해 어떻게 히스토리를 사용할 수 있을까요? 이것이 실제로 작동하려면 ZK-SNARKS 증명이 실시간으로 이루어져야 하지만, 5초 이내에 이론과 블록을 증명할 수 있는 방법이 있어야 합니다. 문제는 이를 달성할 수 있을까요? MPC와 FHE도 비슷한 문제를 안고 있습니다. 앞서 언급했듯이, MPC와 FHE의 강력한 사용 사례는 바로 투표입니다. 실제로 그런 사례가 등장하기 시작했습니다.
현재 MPC의 문제점은 일부 보안 속성을 중앙 서버에 의존한다는 점입니다. 탈중앙화할 수 있나요? 가능하지만 더 효율적인 프로토콜이 필요합니다. 이러한 프로토콜은 비용이 많이 듭니다.
이러한 요구를 어떻게 충족시킬 수 있을까요? ZK-SNARKS의 경우 크게 세 가지 범주에서 효율성이 향상되는 것을 볼 수 있습니다. 그 중 하나는 병렬화 및 집계로, 블록에 대한 이론에서 한 번의 유효성 검사에 최대 약 천만 개의 계산 단계가 필요하다고 상상해 보세요. 각 계산 단계를 수행하고 이를 개별적으로 증명합니다. 그런 다음 증명 통합을 수행합니다.
위 단계를 약 20회 반복하면 표현된 전체 블록의 정확성에 대한 상당한 증명을 확보할 수 있습니다. 이는 오늘날 기존 기술을 사용하여 수행할 수 있는 작업입니다. 그리고 5초 이내에 열등한 블록을 증명할 수 있습니다. 많은 병렬 계산이 필요한데, 이를 최적화할 수 있을까요? 합산 증명을 최적화할 수 있을까요? 정답은 '예'입니다. 이를 수행하는 방법에 대한 이론적 아이디어는 많지만, 이를 실용적인 것으로 전환해야 합니다.
ASIC은 동일한 하드웨어 비용과 동일한 전력 비용으로 GPU보다 약 100배 더 빠르게 해시를 처리할 수 있습니다. 문제는 엄격한 증명을 통해 정확히 동일한 이점을 얻을 수 있느냐는 것입니다. 제 생각에는 가능하다고 생각합니다. 실제로 ZK-SNARKS를 증명하기 위해 특별히 제품을 만들기 시작한 회사들이 많지만, 사실 이는 매우 일반적인 문제일 것입니다. 20분을 5초로 줄여서 더 효율적으로 만들 수 있을까요?
그래서 우리는 GKR 프로토콜, 64비트, ZK-SNARKS 등 다양한 아이디어를 가지고 있습니다. 알고리즘의 효율성을 더 개선할 수 있을까요? 친숙한 해시 함수, 친숙한 서명 알고리즘인 ZK-SNARKS를 더 많이 만들 수 있을까요? 여기에는 많은 아이디어가 있으며, 저는 사람들이 이러한 아이디어에 대해 더 많은 작업을 하기를 강력히 권장합니다. 이렇게 놀라운 형태의 암호화가 있지만 사람들이 이를 신뢰할 수 있을까요? 사람들이 ZK-SNARKS나 7,000줄의 코드인 zkevm Circuits에 결함이 있는 것은 아닌지 걱정한다면요. 매우 효율적으로 수행한다면요. 이론적으로 코드 1,000줄당 평균 15~50개의 버그가 있습니다. 저희는 열심히 노력합니다. 천 줄당 15개 미만이지만 0개보다는 많죠. 수십억 달러의 자산을 보관하는 시스템 중 하나에 오류가 발생하면 아무리 고급 암호화를 사용하더라도 그 돈은 손실됩니다.
문제는 기존 암호화를 실제로 채택하고 오류의 수를 줄이기 위해 무엇을 할 수 있을까요?
이제는 한 그룹에서 75% 이상인 12명 중 9명이 오류가 있다고 동의하면 증명 시스템이 뭐라고 말하든 반증할 수 있다고 생각합니다. 따라서 상당히 중앙 집중화되어 있습니다. 가까운 시일 내에 다중 증명 시스템이 도입될 예정입니다. 이론적으로는 그중 일부에서 오류가 발생할 위험을 줄일 수 있습니다. 세 가지 증명 시스템이 있습니다. 그중 하나에서 오류가 발생하더라도 다른 두 개는 정확히 같은 위치에 있지 않기를 바랍니다.
AI 도구를 사용한 형식적 검증
마지막으로, 미래의 가치를 위해 흥미로운 것을 생각해 볼 수 있습니다. 한 가지 흥미로운 점은 AI 도구를 사용한 공식 검증입니다. 실제로 ZK-EVM과 같은 것이 잘못되지 않았다는 것을 수학적으로 증명하는 것은 가능합니다. 하지만 예를 들어 ZK-EVM 구현이 Gas의 정리 구현과 정확히 동일한 기능을 검증하고 있다는 것을 실제로 증명할 수 있을까요? 예를 들어, 가능한 모든 입력에 대해 하나의 출력만 있다는 것을 증명할 수 있나요?
2019년 현재, 인공지능이 정말 멋진 그림을 만들 수 있다고 생각하는 사람은 아무도 없습니다. 우리는 많은 진전을 이뤘고 AI가 그것을 해내는 것을 보았습니다.
문제는 비슷한 도구를 비슷한 작업에 적용할 수 있느냐는 것입니다. 예를 들어 수천 줄의 코드에 걸쳐 있는 프로그램의 복잡한 문장에 대한 수학적 증명을 자동으로 생성하는 것이 그 예입니다. 이는 서명 집계의 효율성을 이해할 수 있는 흥미로운 공개 과제라고 생각합니다. 현재 이더리움의 검증자가 30,000명이라면 노드 하나를 운영하는 데 꽤 많은 노력이 필요하겠죠? 저는 노트북에서 노드 이론을 실행하고 있지만, 노트북이 저렴하지는 않습니다. 그리고 하드 드라이브도 직접 업그레이드해야 합니다. 원하는 목표는 이론적인 것이며, 가능한 한 많은 증명을 지원하고자 합니다. 저희는 사람들이 어떤 규모의 검증이든 직접 참여할 수 있도록 관심 증명이 가능한 한 민주화되기를 바랍니다. 저희는 노드 이론을 실행하기 위한 요구사항이 매우 낮고 사용하기 매우 쉬웠으면 합니다. 저희는 이론과 프로토콜이 가능한 한 단순하기를 바랍니다.
그렇다면 여기에는 어떤 제한이 있을까요? 서명에 참여한 사람과 참여하지 않은 사람에 대한 정보를 브로드캐스트해야 하기 때문에 슬롯당 참가자당 1비트씩 모든 데이터가 필요하다는 제한이 있습니다. 이것이 가장 기본적인 제한 사항입니다. 이 경우 다른 제한은 없습니다. 계산에는 하한이 없습니다. 증명 집계를 수행할 수 있습니다. 서명뿐만 아니라 각 트리에서 재귀를 수행할 수 있습니다. 모든 종류의 서명 집계를 수행할 수 있습니다. 32비트 SNARKS를 사용할 수 있는 것처럼 암호화를 사용할 수 있고, 모든 종류의 다른 기술을 사용할 수 있습니다.
피투피 네트워크에 대한 생각
문제는 서명 집계, 즉 피어 투 피어 보안을 어느 정도까지 최적화할 수 있는가 하는 것입니다. 사람들은 피어 투 피어 네트워크에 대해 충분히 생각하지 않습니다. 제가 정말 강조하고 싶은 것은 바로 이 점입니다. 암호화폐에서는 보통 P2P 네트워크 위에 이색적인 구조를 만든 다음 P2P 네트워크가 작동할 것이라고 가정하는 경향이 너무 많다고 생각합니다. 여기에는 숨겨진 악마들이 많이 있죠? 비트코인에서 P2P 네트워크가 작동하는 방식과 마찬가지로 이러한 악마들은 훨씬 더 복잡해질 것이라고 생각합니다.
마녀 공격, 서비스 거부 공격 등 모든 종류의 공격이 있습니다. 하지만 네트워크가 매우 단순하고 네트워크의 유일한 임무가 모든 사람이 모든 것을 얻을 수 있도록 하는 것이라면 문제는 매우 간단합니다. 문제는 규모 이론으로 인해 P2P 네트워크가 점점 더 복잡해지고 있다는 것입니다. 오늘날의 이더넷 P2P 네트워크는 하나의 서명 집계를 위해 30,000개의 서명을 처리하기 위해 64개의 슬라이스를 가지고 있습니다.
우선, 현재와 같이 64개의 서로 다른 테셀레이션으로 분할된 P2P 네트워크가 있고 각 노드는 하나 이상의 네트워크의 일부에 불과합니다. 따라서 두 개의 프로젝트를 레이어링하고 롤업을 허용하는 데 드는 비용이 매우 낮으며, 확장성이 뛰어난 솔루션입니다. 이는 또한 더 복잡한 피어 투 피어 아키텍처에 의존합니다. 각 노드는 전체 데이터의 1/8만 다운로드하나요? 이러한 네트워크를 정말 안전하게 만들 수 있을까요? 데이터를 어떻게 보존할 수 있을까요? 피어 투 피어 네트워크의 보안을 어떻게 개선할 수 있을까요?
결론
따라서 우리는 프로토콜의 암호화 제한을 구현하는 암호화 제한을 구현하는 프로토콜을 고려해야 합니다. 우리의 암호화는 이미 수십 년 전보다 훨씬 강력해졌지만 더 강력해질 수 있으며, 이제 우리는 천장이 무엇인지, 실제로 어떻게 거기에 도달할 수 있는지에 대해 생각하기 시작해야 한다고 생각합니다.
여기에는 똑같이 중요한 두 가지 방향이 있습니다.
그 중 하나는 다음과 같은 것입니다. 효율성을 지속적으로 개선하는 것입니다, 우리는 모든 것을 실시간으로 증명하고자 합니다. 탈중앙화 프로토콜의 블록에서 전달되는 모든 메시지에 기본적으로 ZK-SNARKS가 첨부되어 메시지와 메시지가 의존하는 모든 것이 프로토콜의 규칙을 따르고 있음을 증명하는 세상을 보고 싶습니다. 이를 달성하기 위해 어떻게 효율성을 개선할 수 있을까요? 두 번째는 보안을 강화하는 것입니다. 문제 발생 가능성을 근본적으로 줄이면 프로토콜의 실제 기술이 매우 견고하고 신뢰할 수 있는 세상으로 나아갈 수 있습니다.
그러나 여러 번 살펴본 것처럼 다중 서명은 해킹될 수 있습니다. 많은 경우, 이러한 레이어 2 프로젝트의 토큰은 실제로 다중 서명에 의해 제어됩니다. 9개 중 5개가 동시에 해킹당하면 많은 돈을 잃을 수 있습니다. 이러한 문제를 방지하려면 시스템 보안을 위해 소수의 사람들을 신뢰하기보다는 기술을 사용하고 암호화된 방식으로 규칙 준수를 강제할 수 있는 신뢰가 필요합니다.
그러나 실제로 이런 일이 일어나려면 코드가 신뢰할 수 있어야 합니다. 문제는 코드를 신뢰할 수 있게 만들 수 있을까요? 네트워크를 신뢰할 수 있게 만들 수 있을까요? 이러한 프로토콜을 위한 제품의 경제성을 신뢰할 수 있게 만들 수 있을까요? 저는 이것이 핵심 과제라고 생각하며, 계속해서 함께 노력하여 개선해 나갈 수 있기를 바랍니다. 감사합니다.