네트워크 효율성과 지속 가능성을 향상시키기 위해 이더 프로토콜을 더욱 최적화할 계획입니다. 기술적인 병목 현상을 극복할 수 있을 뿐만 아니라 블록체인 보안 및 개인 정보 보호에 혁명을 일으킬 것으로 예상됩니다.
원문: 이더리움 프로토콜의 가능한 미래, 6부: Splurge (vitalik.eth)
작성자: Vitalik.eth
편집자: Yewlne, LXDAO
표지: 갤럭시
번역가의 서문
오늘날 블록체인 기술의 급속한 발전으로 인해 시스템 아키텍처의 복잡성이 점차 증가하고 있으며 개발자와 사용자 모두에게 새로운 과제를 안겨주고 있습니다. "The Splurge" 계획은 기존 프로토콜의 세부 사항을 최적화하고 개선하여 네트워크의 효율성과 지속 가능성을 향상시키는 것을 강조합니다. 이러한 최첨단 기술의 탐구는 현재의 기술적 병목 현상을 해결할 뿐만 아니라 블록체인의 보안 및 개인정보 보호 메커니즘을 완전히 변화시켜 이상적인 "신뢰할 수 없는" 상태에 더 가까워질 수 있을 것으로 예상됩니다. 나는 이 번역이 더 많은 중국 독자들이 이더 프로토콜의 최신 개발을 이해하고 중요하지만 종종 간과되는 주제에 대한 모든 사람의 관심을 자극하는 데 도움이 되기를 바랍니다.
이 기사의 개요
이 기사는 총 10,000 단어 정도이며, 5개 부분으로 구성되어 있습니다. 이 기사를 다 읽는 데는 55분 정도 소요될 것으로 예상됩니다.
- EVM 개선
- 계정 추상화
- EIP-1559 개선
- 검증 가능한 지연 함수(VDF)
- 난독화 및 일회성 서명: 암호화의 미래
텍스트 내용
"이더 프로토콜의 가능한 미래(6): 과시"
피드백과 리뷰를 주신 Justin Drake와 Tim Beiko에게 특별히 감사드립니다.
어떤 것들은 하나의 범주에 넣기가 어렵습니다. 이더 프로토콜 설계에는 이더 의 성공에 중요하지만 더 큰 하위 범주로 깔끔하게 분류하기 어려운 "작은 세부 사항"이 많이 있습니다. 실제로 그 중 약 절반은 다양한 형태의 EVM 개선을 다루고 나머지는 다양한 틈새 주제를 다룹니다. 이것이 "Splurge" 업그레이드의 목표입니다.
과시: 주요 목표
- EVM을 성능이 뛰어나고 안정적인 "최종 상태"로 부팅합니다.
- 프로토콜 계층에 계정 추상화를 도입하면 모든 사용자가 더 안전하고 편리한 계정의 혜택을 누릴 수 있습니다.
- 확장성을 개선하는 동시에 리스크 줄이기 위해 거래 수수료 경제 모델을 최적화합니다.
- 장기적으로 이더 더 좋게 만들 수 있는 고급 암호화 기술을 살펴보세요.
이 장의 내용 :
- EVM 개선
- 계정 추상화
- EIP-1559 개선
- 검증 가능한 지연 함수(VDF)
- 난독화 및 일회성 서명: 암호화의 미래
EVM 개선
어떤 문제가 해결되나요?
현재 EVM은 정적 분석을 수행하기 어렵기 때문에 효율적인 배포, 코드의 형식적 검증 및 후속 확장이 어렵습니다. 또한 비효율성으로 인해 사전 컴파일을 통해 명시적으로 지원되지 않는 한 많은 고급 암호화 작업을 구현하기가 어렵습니다.
그것은 무엇이며 어떻게 작동합니까?
현재 EVM 개선 로드맵의 첫 번째 단계는 다음 하드 포크 에 도입될 예정인 EVM 객체 형식(EOF)입니다. EOF에는 다음과 같은 주요 기능을 갖춘 EVM용 코드 형식의 새로운 버전을 정의하는 일련의 EIP 제안이 포함되어 있습니다.
- 코드 (실행 가능하지만 EVM에서 읽을 수 없음)와 데이터 (읽을 수 있지만 실행할 수 없음)의 분리를 달성했습니다.
- 동적 점프 메커니즘을 비활성화 하고 정적 점프만 유지합니다.
- EVM 코드는 가스 관련 정보를 얻을 수 없습니다.
- 명시적인 서브루틴 호출 메커니즘을 추가했습니다.
이전 버전의 계약은 계속 사용되고 생성이 허용되지만, 이전 버전의 계약은 향후 단계적으로 폐지될 수 있습니다(EOF 형식으로 강제 변환될 수도 있음). 새 버전의 계약은 EOF가 가져온 효율성 향상을 누릴 수 있습니다. 한편으로는 서브루틴 기능을 통해 바이트코드 크기를 약간 줄일 수 있고, 다른 한편으로는 EOF의 고유한 새로운 기능과 낮은 가스의 이점도 누릴 수 있습니다. 소비. .
EOF를 도입하면 후속 업그레이드가 더 쉬워집니다. 현재 가장 성숙한 것은 EVM 모듈 Arithmetic Extension(EVM-MAX)입니다. EVM-MAX는 특히 모듈식 산술을 위한 새로운 산술 연산 세트를 설계하고 이를 다른 명령어에서 액세스할 수 없는 새로운 메모리 공간에 배치합니다. 이를 통해 시스템은 Montgomery 곱셈과 같은 최적화 알고리즘을 사용할 수 있습니다.
새로운 아이디어는 EVM-MAX를 SIMD(Single Instruction Multiple Data) 기능과 결합하는 것입니다. SIMD의 아이디어는 Greg Colvin이 제안한 EIP-616으로 거슬러 올라가 이더 커뮤니티에서 오랫동안 존재해 왔습니다. SIMD를 사용하면 해시 함수, 다양한 32비트 STARK 및 격자 기반 암호화를 포함한 다양한 암호화 계산 속도를 높일 수 있습니다. 이러한 두 가지 SIMD 확장과 결합된 EVM-MAX는 EVM의 성능 향상 요구 사항을 잘 충족할 수 있습니다.
이 결합된 EIP의 예비 설계는 EIP-6690을 기반으로 하며 다음과 같은 확장이 포함됩니다.
- 다음 유형의 모듈러스가 지원됩니다: (i) 임의의 홀수 또는 (ii) 2의 768승 이하.
- 각 EVMMAX 명령어(add, sub, mul)에 대한 새 버전을 추가합니다. 3개의 직접 변수 x, y, z를 받는 대신 이 버전은 7개의 직접 변수 x_start, x_skip, y_start, y_skip, z_start, z_skip, count를 받습니다.
Python 코드로 표현된 이 지침은 다음과 동일합니다.
for i in range(count):
mem[z_start + z_skip * count] = op( mem[x_start + x_skip * count], mem[y_start + y_skip * count] )
실제 구현을 제외하고는 병렬로 처리됩니다.
- 모듈러스가 2의 거듭제곱인 경우 XOR, AND, OR, NOT, SHIFT(루프 및 비루프 지원) 등의 연산 명령어를 추가할 예정이다. 또한 작업 결과를 EVM 메인 스택에 푸시하기 위해 ISZERO 명령이 추가됩니다.
이러한 기능은 타원 곡선 암호화, 소규모 필드 암호화(예: 포세이돈, 원 STARK), 기존 해시 함수(예: SHA256, KECCAK, BLAKE) 및 격자 기반 암호화(격자 기반 암호화)의 구현을 지원하는 데 충분합니다.
다른 EVM 업그레이드 솔루션도 가능하지만 현재는 큰 주목을 받지 못하고 있습니다.
현재 연구와 어떤 관련이 있나요?
- EOF: https://evmobjectformat.org/
- EVM-MAX: https://eips.ethereum.org/EIPS/eip-6690
- SIMD: https://eips.ethereum.org/EIPS/eip-616
그 밖에 해야 할 일은 무엇이며, 절충점은 무엇입니까?
현재 다음 하드 포크 에서 EOF를 도입할 계획이 있습니다. 기능을 제거하는 것은 여전히 가능하지만(하드 포크 이전에 마지막 기능이 제거됨) 많은 저항에 직면하게 됩니다. EOF가 제거되면 이후의 모든 EVM 업그레이드는 EOF 없이 수행되어야 함을 의미하며, 이는 가능하지만 더 많은 기술적 문제를 야기합니다.
EVM의 주요 절충점은 L1 복잡성과 인프라 복잡성 간의 균형입니다. EOF는 EVM 구현에 상당한 양의 코드를 추가하며 정적 코드 검사도 매우 복잡합니다. 그 대가로 우리는 고급 언어의 단순화, EVM 구현의 단순화 및 기타 이점을 얻습니다. 이더 L1의 지속적인 개선을 우선시하는 로드맵에는 EOF가 포함되고 이를 기반으로 구축되어야 한다고 말할 수 있습니다.
중요한 작업 중 하나는 SIMD와 결합된 EVM-MAX와 유사한 기능을 구현하고 다양한 암호화 작업에 대한 가스 소비 벤치마크를 수행하는 것입니다.
로드맵의 다른 부분과 어떻게 상호 작용합니까?
EVM에 대한 L1의 조정은 L2가 해당 변경을 수행하도록 유도할 수 있습니다. 한 레이어를 독립적으로 조정하고 다른 레이어는 변경하지 않으면 일부 호환성 문제가 발생하여 다른 부정적인 영향을 미칠 수 있습니다. 또한 SIMD 기능과 결합된 EVM-MAX는 다양한 증명 시스템의 가스 비용을 절감하여 L2 계층의 실행 효율성을 향상시킬 수 있습니다. 또한 사전 컴파일된 모듈 더 쉽게 제거할 수 있습니다. 이러한 모듈 기본적으로 효율성에 큰 영향을 주지 않고 EVM 코드로 대체될 수 있기 때문입니다.
계정 추상화
어떤 문제가 해결되었나요?
현재 거래는 ECDSA 서명이라는 한 가지 확인 방법만 지원합니다. 처음에 계정 추상화는 이러한 제한을 극복하여 임의의 EVM 코드를 사용하여 계정 확인 로직을 구현할 수 있도록 설계되었습니다. 이는 다양한 애플리케이션 시나리오를 지원합니다.
- 양자 저항 암호화로 마이그레이션
- 이전 키 순환(이것은 일반적으로 허용되는 보안 관행입니다)
- 다중 서명 지갑과 사회 회복 지갑.
- 낮은 가치의 작업에는 단일 키를 사용하고 높은 가치의 작업에는 다른 키(또는 키 그룹)를 사용합니다.
- 중계기가 없는 개인 정보 보호 프로토콜을 구현하여 시스템 복잡성을 크게 줄이고 핵심 종속성을 제거합니다.
2015년 계정 추상화 개념이 제안된 이후 목표 범위가 확장되어 ETH가 없지만 특정 ERC20 토큰을 보유한 계정에서 해당 ERC20 토큰을 직접 사용하여 가스 요금을 지불하도록 허용하는 등 "편의적 목표"가 많이 추가되었습니다. . 다음 다이어그램은 이러한 목표를 요약합니다.
여기서 MPC는 다자간 계산 을 의미합니다. 여러 장치의 샤드에 키를 저장하고 암호화 방법을 사용하여 키를 직접 병합하지 않고 키를 병합하는 40년 된 기술입니다.
EIP-7702는 다음 하드 포크 에 도입될 예정인 제안이다. EIP-7702는 단기적으로 모든 사람의 사용자 경험을 향상시키고 생태계가 두 개의 독립적인 시스템으로 분할되는 것을 피하기 위해서는 EOA 사용자를 포함한 모든 사용자에게 계정 추상화의 편의 기능을 제공해야 한다는 인식이 커지면서 탄생했습니다. 이 작업은 EIP-3074로 시작되어 EIP-7702로 마무리되었습니다. EIP-7702는 EOA( 외부 소유 계정 , 즉 ECDSA 서명으로 제어되는 계정)를 포함한 모든 사용자가 즉시 사용할 수 있는 계정 추상화의 "편의 기능"을 제공합니다.
차트에서 볼 수 있듯이 일부 과제(특히 "편의성" 문제)는 다자간 계산 프로토콜이나 EIP-7702와 같은 진보적인 기술로 해결될 수 있지만, 원래 계정 추상화 제안을 추진한 대부분의 보안 목표는 이것뿐입니다. 스마트 계약 코드가 거래 확인 프로세스를 직접 제어하도록 허용하는 문제를 다시 해결하면 달성할 수 있습니다. 그러나 아직 달성되지 않은 이유는 이 기능을 안전하게 구현하는 것 자체가 어렵기 때문입니다.
그것은 무엇이며 어떻게 작동합니까?
계정 추상화의 핵심은 간단합니다. 외부 소유 계정(EOA)뿐만 아니라 스마트 계약을 통해 거래를 시작할 수 있도록 허용하는 것입니다. 모든 복잡성은 탈중앙화 형 네트워크를 유지하는 동시에 서비스 거부(DoS) 공격으로부터 보호하는 방식으로 이를 수행하는 방법에서 비롯됩니다.
이 핵심 과제를 보여주는 전형적인 예는 다중 무효화 문제입니다.
검증 기능이 모두 공유 값 S에 의존하는 계정이 1,000개 있고, 현재 S 값 아래에서 메모리 풀에 유효한 트랜잭션이 많이 있는 경우, S 값을 변경하는 트랜잭션으로 인해 메모리 풀의 모든 트랜잭션이 발생할 수 있습니다. 실패하면 다른 거래가 유효하지 않습니다. 이를 통해 공격자는 네트워크 노드의 리소스를 점유하면서 매우 저렴한 비용으로 스팸 트랜잭션을 mempool에 보낼 수 있습니다.
서비스 거부(DoS) 공격의 리스크 제한하면서 기능을 확장하기 위해 수년에 걸쳐 대량 노력을 기울인 끝에 마침내 "이상적인 계정 추상화"를 달성하는 방법에 대한 합의를 이끌어내는 솔루션인 ERC-4337이 나왔습니다.
ERC-4337은 사용자 작업 처리를 검증 과 실행의 두 단계로 나누어 작동합니다. 모든 유효성 검사가 먼저 처리된 다음 모든 실행이 처리됩니다. mempool에서는 유효성 검사 단계에 자체 계정만 포함되고 환경 변수를 읽지 않는 경우에만 사용자 작업이 허용됩니다. 이를 통해 다중 무력화 공격을 방지할 수 있습니다. 동시에 검증 단계에서는 엄격한 가스 제한도 설정됩니다.
ERC-4337은 원래 ERC(추가 프로토콜 표준)로 설계되었습니다. 당시 이더 클라이언트 개발자는 "The Merge" 업그레이드에 집중하고 다른 기능을 개발할 추가 에너지가 없었기 때문입니다. 이것이 ERC-4337이 일반 트랜잭션 대신 사용자 작업이라는 사용자 정의 개체를 사용하는 이유입니다. 그러나 최근 우리는 그 일부를 프로토콜에 통합할 필요가 있다는 것을 깨달았습니다. 두 가지 주요 이유가 있습니다:
- EntryPoint에는 계약으로서 본질적인 비효율성이 있습니다. 각 번들 작업에는 약 100,000개의 추가 가스가 필요하고, 각 사용자 작업에는 수천 개의 추가 가스가 필요합니다.
- 포함 목록에서 제공하는 포함 보장과 같은 이더 기능이 계정 추상 사용자에게 작동하는지 확인할 필요가 있습니다.
또한 ERC-4337은 두 가지 기능을 확장합니다.
- Paymasters : 이 기능을 사용하면 한 계정이 다른 계정을 대신하여 수수료를 지불할 수 있습니다. 이는 확인 단계에서 보내는 계정 자체에만 액세스할 수 있다는 규칙을 위반하므로 지불 주체 메커니즘을 지원하고 보안을 보장하기 위해 특별한 처리 메커니즘이 도입됩니다.
- Aggregators : 이 기능은 BLS 집계 또는 SNARK 기반 집계와 같은 서명 집계를 지원합니다. 이는 롤업에서 최고 수준의 데이터 효율성을 달성하는 데 필수적입니다.
어떤 기존 연구 정보를 이용할 수 있나요?
- 계정 추상화의 역사적 발전에 관한 강의: https://www.youtube.com/watch?v=iLf8qpOmxQc
- ERC-4337: https://eips.ethereum.org/EIPS/eip-4337
- EIP-7702: https://eips.ethereum.org/EIPS/eip-7702
- BLSWallet 코드(집계 기능): https://github.com/getwax/bls-wallet
- EIP-7562(프로토콜에 작성된 계정 추상화): https://eips.ethereum.org/EIPS/eip-7562
- EIP-7701(EOF 기반 쓰기 프로토콜 계정 추상화): https://eips.ethereum.org/EIPS/eip-7701
그 밖에 무엇을 해야 하며, 그에 따른 절충점은 무엇입니까?
남은 주요 문제는 계정 추상화를 프로토콜에 완전히 통합하는 방법을 결정하는 것입니다. 최근 많은 주목을 받고 있는 계정 추상화 작성 프로토콜에 대한 제안으로는 EOF 기반의 계정 추상화를 구현한 EIP-7701이 있다. 계정은 독립적인 인증 코드 섹션을 가질 수 있습니다. 계정이 해당 코드 섹션을 설정하면 해당 계정이 시작한 거래의 인증 단계에서 코드가 실행됩니다.
흥미롭게도 이 접근 방식은 기본 계정 추상화의 두 가지 동등한 구현을 명확하게 보여줍니다.
- EIP-4337을 프로토콜에 통합
- EVM 코드로 서명 알고리즘을 실행하는 새로운 형태의 EOA
처음부터 검증 프로세스 중에 실행 코드의 복잡성에 대해 엄격한 제한을 설정하면(외부 상태에 대한 액세스를 허용하지 않거나 초기에 가스 제한을 너무 낮게 설정하여 양자 저항 또는 개인 정보 보호 애플리케이션에 유용하지 않은 경우) 이 접근 방식의 효과 보안은 매우 명확합니다. ECDSA 검증을 비슷한 시간이 소요되는 EVM 코드 실행으로 대체할 뿐입니다. 그러나 시간이 지남에 따라 개인 정보 보호 애플리케이션이 중계기 없이 작동하고 양자 저항을 달성하도록 허용하는 것이 중요하므로 이러한 제약을 완화해야 합니다 . 이를 위해서는 극도로 단순화된 확인 단계를 요구하기보다는 서비스 거부(DoS) 리스크 처리할 수 있는 보다 유연한 방법을 찾아야 합니다.
주요 절충점은 덜 만족스러운 솔루션을 더 일찍 계약에 작성할 것인지, 아니면 더 오래 기다렸다가 잠재적으로 더 이상적인 솔루션을 얻을 것인지 여부인 것으로 보입니다. 이상적인 접근 방식은 일종의 하이브리드 접근 방식일 수 있습니다. 하이브리드 접근 방식은 특정 사용 사례를 프로토콜에 더 빠르게 적용하여 다른 문제를 해결하는 데 더 많은 시간을 할애하는 것입니다. 또 다른 접근 방식은 먼저 L2에 보다 급진적인 계정 추상화 버전을 배포하는 것입니다. 그러나 문제는 L2 팀이 제안을 기꺼이 채택하려면 L1과 다른 L2가 향후 호환 가능한 솔루션을 채택할 것이라는 확신이 있어야 한다는 것입니다.
명시적으로 고려해야 할 또 다른 애플리케이션은 L1 또는 전용 L2에 계정 관련 상태를 저장하지만 L1 및 호환되는 모든 L2에서 사용할 수 있는 키 저장소 계정입니다. 이를 효과적으로 달성하려면 L2에서 L1SLOAD 또는 REMOTESTATICCALL과 같은 명령을 지원해야 할 수 있지만 이를 위해서는 L2의 계정 추상화 구현에서도 이를 지원할 수 있어야 합니다.
로드맵의 다른 부분과 어떻게 상호 작용합니까?
포함 목록은 계정 추상 트랜잭션을 지원해야 합니다. 실제로 격리 목록과 탈중앙화 멤풀의 요구 사항은 매우 유사하지만 격리 목록에는 더 많은 유연성이 있습니다. 또한 이상적으로는 L1 및 L2의 계정 추상화 구현이 최대한 일관되어야 합니다. 대부분의 사용자가 향후에 키 저장소 롤업을 사용할 것으로 예상된다면 계정 추상화 설계에서 이를 고려해야 합니다.
EIP-1559 개선
어떤 문제가 해결되나요?
EIP-1559는 2021년 이더 에 구현되어 평균 블록 포함 시간이 크게 향상되었습니다.
그러나 현재 EIP-1559 구현에는 몇 가지 결함이 있습니다.
- 공식에는 약간의 결함이 있습니다. 블록의 50%가 아닌 약 50-53%(분산에 따라 다름)를 채우는 것을 목표로 합니다(이는 수학자들이 "산술-기하 평균 불평등"이라고 부르는 것과 관련이 있습니다).
- 극단적인 경우에는 조정 속도가 충분히 빠르지 않습니다.
blob에 대한 최신 공식(EIP-4844)은 첫 번째 문제를 해결하기 위해 명시적으로 설계되었으며 전체적으로 더 간단합니다. EIP-1559 자체나 EIP-4844 모두 두 번째 문제를 해결하려고 시도하지 않습니다. 따라서 현재 상황은 두 가지 서로 다른 메커니즘을 포함하는 혼란스러운 과도기 상태이며, 시간이 지남에 따라 두 메커니즘을 모두 개선해야 한다고 믿을 만한 이유도 있습니다.
또한 이더 의 리소스 가격 책정에는 EIP-1559와 다른 몇 가지 다른 약점이 있지만 이러한 문제는 EIP-1559를 조정하면 해결할 수 있습니다. 주요 문제 중 하나는 평균 사례와 최악 사례의 차이 입니다. 이더 의 리소스 가격은 최악의 경우를 처리하도록 설정되어야 하지만(즉, 블록의 모든 가스 소비는 하나의 리소스를 차지합니다), 평균 사용량은 멀습니다. 그보다 적으면 비효율성이 발생합니다.
그것은 무엇이며 어떻게 작동합니까?
이러한 비효율성에 대한 해결책은 다차원적 가스입니다. 즉, 다양한 리소스에 대해 독립적인 가격과 제한을 설정하는 것입니다. 기술적으로 이 개념은 EIP-1559와 독립적이지만 EIP-1559를 사용하면 구현이 더 쉬워집니다. EIP-1559가 없으면 여러 리소스 제약 대면 직면하여 블록을 최적으로 패키징하는 것은 복잡한 문제입니다. EIP-1559를 사용하면 대부분의 블록은 어떤 리소스에서도 전체 용량을 사용할 수 없으므로 간단한 "충분한 수수료를 지불하는 모든 거래를 수락"하는 알고리즘이면 충분합니다.
이제 실행 및 blob을 위한 다차원 가스가 있습니다. 원칙적으로 calldata , 상태 읽기 및 쓰기 , 상태 크기 확장 등 더 많은 차원을 추가할 수 있습니다.
EIP-7706은 데이터 호출에 새로운 가스 차원을 도입합니다. 동시에 세 가지 유형의 가스가 모두 (EIP-4844 스타일) 프레임 따르도록 하여 다차원 가스 메커니즘을 단순화하여 EIP-1559의 수학적 결함도 해결합니다.
EIP-7623은 평균 사례 및 최악 사례 리소스 문제를 처리하기 위한 보다 세부적인 솔루션입니다. 완전히 새로운 차원을 도입하지 않고도 최대 통화 데이터를 더욱 엄격하게 제한합니다.
추가 방향은 업데이트 속도 문제를 해결하고 EIP-4844 메커니즘에 의해 도입된 주요 불변성을 유지하면서 더 빠른 기본 수수료 알고리즘을 찾는 것입니다(즉, 장기적으로 평균 사용량은 목표 값에 더 정확하게 근접하게 됩니다).
어떤 기존 연구 정보를 이용할 수 있나요?
- EIP-1559 FAQ: https://notes.ethereum.org/@vbuterin/eip-1559-faq
- EIP-1559 실증적 분석: https://dl.acm.org/doi/10.1145/3548606.3559341
- 신속한 조정을 위한 개선 제안: https://kclpure.kcl.ac.uk/ws/portalfiles/portal/180741021/Transaction_Fees_on_a_Honeymoon_Ethereums_EIP_1559_One_Month_Later.pdf
- EIP-4844 FAQ, 기본 수수료 메커니즘 섹션: https://notes.ethereum.org/@vbuterin/proto_danksharding_faq#How-does-the-exponential-EIP-1559-blob-fee-adjustment-mechanism-work
- EIP-7706: https://eips.ethereum.org/EIPS/eip-7706
- EIP-7623: https://eips.ethereum.org/EIPS/eip-7623
- 다차원 가스: https://vitalik.eth.limo/general/2024/05/09/multidim.html
그 밖에 무엇을 해야 하며, 그에 따른 절충점은 무엇입니까?
다차원 가스에는 두 가지 주요 절충점이 있습니다.
- 프로토콜 복잡성 증가
- 블록 용량을 채우는 데 필요한 최적의 알고리즘의 복잡성 증가
호출 데이터의 경우 프로토콜 복잡성은 상대적으로 사소한 문제이지만 EVM 내부에 있는 가스 차원(예: 저장소 읽기 및 쓰기)의 경우 문제가 더 심각합니다. 문제는 가스 한도를 설정하는 사람이 사용자뿐만이 아니라는 것입니다. 계약이 다른 계약을 호출할 때 그들도 한도를 설정합니다. 현재로서는 한계를 설정하는 방식이 여전히 1차원적입니다.
이 문제를 해결하는 간단한 방법은 EOF 내부에 다차원 가스만 제공하는 것입니다. EOF에서는 계약이 다른 계약을 호출할 때 가스 제한을 설정하는 것을 허용하지 않기 때문입니다. 비EOF 계약은 저장 작업을 수행할 때 모든 유형의 가스에 대해 수수료를 지불해야 합니다(예를 들어 SLOAD 작업이 블록 저장소 액세스 가스 한도의 0.03%를 소비하는 경우 비EOF 사용자에게도 실행 가스의 0.03%가 청구됩니다) 한계) ).
다차원 가스에 대한 더 많은 연구는 이러한 상충관계를 이해하고 이상적인 균형을 찾는 데 매우 도움이 될 것입니다.
로드맵의 다른 부분과 어떻게 상호 작용합니까?
다차원 가스를 성공적으로 구현하면 일부 "최악의 경우" 리소스 사용량을 크게 줄일 수 있으므로 STARK 기반 해시 트리 등을 지원하기 위한 성능 최적화에 대한 부담이 완화됩니다. 상태 규모 증가에 대한 명확한 목표를 설정하면 클라이언트 개발자가 향후 요구 사항을 더 쉽게 계획하고 예측할 수 있습니다.
위에서 언급한 바와 같이 EOF는 가스를 관찰할 수 없는 특성을 가지므로 보다 발전된 버전의 다차원 가스를 구현하기가 더 쉽습니다.
검증 가능한 지연 함수(VDF)
어떤 문제가 해결되나요?
현재 이더 제안자를 선택하기 위해 RANDAO 기반 난수를 사용합니다. RANDAO nonce는 각 제안자에게 사전 커밋된 비밀을 공개하도록 요구하고 공개된 각 비밀을 임의의 숫자로 혼합하는 방식으로 작동합니다. 따라서 각 제안자는 "1비트의 조작 권한"을 갖습니다. 즉, 블록을 생성하지 않고도 nonce를 변경할 수 있습니다(비용 발생). 두 개의 새로운 제안 기회를 얻기 위해 하나의 기회를 포기하는 경우는 매우 드뭅니다. 그러나 난수가 필요한 온체인 애플리케이션의 경우 이는 허용되지 않습니다. 이상적으로는 보다 강력한 난수 소스를 찾아야 합니다.
그것은 무엇이며 어떻게 작동합니까?
VDF(검증 가능한 지연 함수)는 순차적으로만 계산할 수 있고 병렬화를 통해 가속화할 수 없는 함수입니다. 간단한 예는 해시 계산을 반복하는 것입니다: 범위(10**9)에서 i에 대해 수행: x = hash(x). 출력은 정확성에 대한 SNARK 증명과 함께 임의의 값으로 사용될 수 있습니다. 아이디어는 입력이 시간 T에서 사용 가능한 정보를 기반으로 선택되는 반면 출력은 시간 T에서 아직 알려지지 않았다는 것입니다. 누군가가 계산을 완전히 실행한 후에만 사용할 수 있습니다. 이 계산은 누구나 실행할 수 있으므로 결과를 보류할 수 없고 조작할 수도 없습니다.
검증 가능한 지연 함수의 주요 리스크우발적인 최적화 입니다. 누군가가 예상보다 훨씬 빠르게 함수를 실행하는 방법을 찾아 미래 출력을 기반으로 시간 T에서 공개하는 정보를 조작할 수 있습니다. 예기치 않은 최적화는 두 가지 방법으로 발생할 수 있습니다.
- 하드웨어 가속 : 누군가 기존 하드웨어보다 더 빠르게 계산 루프를 실행할 수 있는 ASIC을 구축했습니다.
- 우연한 병렬화 : 누군가 병렬화를 통해 함수를 더 빠르게 실행하는 방법을 찾았습니다. 그렇게 하면 100배 이상의 리소스가 소모됩니다.
성공적인 VDF를 만드는 작업은 위의 두 가지 문제를 피하는 동시에 실용적일 만큼 효율적인지 확인하는 것입니다(예를 들어 해시 기반 방법에는 실시간으로 해시에 대한 SNARK 증명이 극도로 높은 하드웨어 요구 사항을 요구하는 문제가 있습니다). . 하드웨어 가속 문제는 일반적으로 공공재 참여자가 거의 최적에 가까운 VDF 관련 ASIC을 직접 만들고 배포하도록 함으로써 해결됩니다.
어떤 기존 연구 정보를 이용할 수 있나요?
- VDF 연구 웹사이트: https://vdfresearch.org/
- 이더 에서 사용되는 VDF에 대한 공격에 대한 생각, 2018: https://ethresear.ch/t/verifying-delay-functions-and-attacks/2365
- MinRoot(제안된 VDF)에 대한 공격 연구: https://inria.hal.science/hal-04320126/file/minrootanalytic2023.pdf
그 밖에 무엇을 해야 하며, 그에 따른 절충점은 무엇입니까?
현재 모든 측면에서 이더 연구자의 요구 사항을 완벽하게 충족하는 VDF 구성은 없습니다. 그러한 기능을 찾으려면 더 많은 작업이 필요합니다. 그러한 기능이 있는 경우 주요 트레이드오프는 이를 프로토콜에 포함할지 여부입니다. 이는 기능과 프로토콜 복잡성 및 보안 리스크 간의 간단한 트레이드오프입니다. VDF가 안전하다고 생각했지만 안전하지 않은 것으로 판명되면 구현 방법에 따라 보안이 RANDAO 가정(공격자당 조작 능력 1비트)으로 저하되거나 약간 더 나빠집니다. 따라서 VDF에 결함이 있더라도 프로토콜 자체는 손상되지 않습니다. 하지만 VDF에 크게 의존하는 응용 프로그램이나 새로운 프로토콜 기능은 손상될 수 있습니다.
로드맵의 다른 부분과 어떻게 상호 작용합니까?
VDF는 이더 프로토콜의 상대적으로 독립적인 구성 요소이며 제안자 선택의 보안을 향상시키는 것 외에도 (i) 난수에 의존하는 온체인 애플리케이션 및 잠재적으로 (ii) 암호화 메모리 풀에 사용될 수 있습니다. 그러나 VDF 기반 암호화 메모리 풀의 구현은 아직 구현되지 않은 다른 암호화 기술에 의존하고 있습니다.
하드웨어의 불확실성으로 인해 VDF 출력이 생성되는 시간과 필요한 시간 사이에 약간의 "지연"이 있을 수 있다는 점에 유의하는 것이 중요합니다. 이는 정보가 여러 블록 전에 미리 제공될 수 있음을 의미합니다. 이는 지불할 수 있는 대가일 수 있지만 최종성 또는 위원회 선정과 같은 메커니즘을 설계할 때 고려해야 합니다.
난독화 및 일회성 서명: 암호화의 미래
어떤 문제가 해결되나요?
Nick Szabo의 가장 유명한 기사 중 하나는 1997년 "The God Agreement"에 관한 기사입니다. 이 기사에서 그는 다자간 애플리케이션이 상호 작용을 관리하기 위해 "신뢰할 수 있는 제3자"에 의존하는 경우가 많다는 점을 지적합니다. 그의 견해에 따르면 암호화의 역할은 특정 참가자를 실제로 신뢰하지 않고도 동일한 작업을 수행하는 신뢰할 수 있는 시뮬레이션된 제3자를 만드는 것입니다.
지금까지 우리는 이 이상에 부분적으로만 접근했습니다. 우리에게 필요한 것은 데이터와 계산을 끄거나, 검열하거나, 변조할 수 없는 투명한 가상 컴퓨터이고 개인 정보 보호가 목표가 아닌 경우, 제한된 확장성에도 불구하고 블록체인을 통해 이를 달성할 수 있습니다. 개인 정보 보호가 실제로 목표라면 최근까지 특정 응용 프로그램에 대해 몇 가지 특수 프로토콜만 만들 수 있었습니다. 기본 인증을 위한 디지털 서명, 원시 형태의 익명성을 위한 링 서명 및 연결 가능한 링 서명, 보다 편리한 암호화를 가능하게 하는 신원 기반 암호화 이용자의 가정, Chaumian 전자화폐에 대한 블라인드 서명 등 이 접근 방식을 사용하려면 새로운 애플리케이션마다 대량 작업이 필요합니다.
2010년대에 우리는 프로그래밍 가능한 암호화를 기반으로 한 새롭고 더욱 강력한 접근 방식을 처음으로 보았습니다. 새로운 애플리케이션마다 전용 프로토콜을 개발하는 대신 새롭고 강력한 프로토콜, 특히 ZK-SNARK를 사용하여 모든 프로그램에 암호화 보장을 추가할 수 있습니다. ZK-SNARK를 사용하면 사용자는 자신이 보유한 데이터에 대한 임의의 진술을 증명할 수 있으며, 이 증명은 (i) 쉽게 확인할 수 있고 (ii) 진술 자체 이외의 데이터는 공개하지 않습니다. 이는 개인 정보 보호와 확장성 측면에서 획기적인 발전이며, 인공 지능 분야에서 Transformer가 미치는 영향에 비유합니다. 수천 년 동안 특정 애플리케이션 작업에 바쳐진 인간의 노력은 갑자기 플러그 앤 플레이를 통해 예상치 못한 대량 문제를 해결할 수 있는 범용 솔루션으로 대체되었습니다.
그러나 ZK-SNARK는 세 가지 초강력 범용 기본 프로토콜 중 하나일 뿐입니다. 이 프로토콜은 너무 강력해서 유기오(Yu-Gi-Oh)가 생각납니다. Yu-Gi-Oh는 제가 어린 시절 플레이하고 보곤 했던 카드 게임인 이집트 신 카드(Egyptian God Cards)입니다. 이집트 신 카드(Egyptian God Cards)는 전설에 따르면 그 존재가 치명적일 수 있으며 결투에서 사용이 금지될 정도로 강력하다는 세 가지 매우 강력한 카드입니다. 마찬가지로 암호화에는 세 가지 이집트 신 프로토콜이 있습니다.
그것은 무엇이며 어떻게 작동합니까?
ZK-SNARK는 상당히 성숙하게 개발된 세 가지 주요 프로토콜 중 하나입니다. 지난 5년 동안 ZK-SNARK는 증명 생성 속도와 개발자 친화성이 크게 향상되면서 확장성과 개인 정보 보호를 위한 이더 의 기반 기술이 되었습니다. 그러나 ZK-SNARK에는 중요한 제한 사항이 있습니다. 즉, 증거를 생성하려면 데이터를 마스터해야 합니다. ZK-SNARK 애플리케이션에서 각 상태 데이터에는 고유한 "소유자"가 있어야 하며 모든 읽기 및 쓰기 작업에는 소유자의 존재와 승인이 필요합니다.
두 번째 프로토콜은 이러한 제한을 극복한 완전 동형 암호화 ( FHE )입니다. FHE는 원본 데이터에 접근하지 않고도 암호화된 데이터에 대해 임의의 계산을 수행 할 수 있습니다. 이를 통해 당사는 데이터와 알고리즘의 개인정보를 보호하면서 사용자를 위해 데이터를 처리할 수 있습니다. 또한 MACI와 같은 투표 시스템을 향상시켜 거의 완벽한 보안 및 개인 정보 보호를 보장할 수 있습니다. FHE는 오랫동안 실용화하기에는 너무 비효율적이라고 여겨졌으나 이제 효율성이 실용 수준에 도달했으며 관련 응용 분야가 등장하기 시작했습니다.
그러나 FHE에는 한계도 있습니다. FHE를 기반으로 하는 모든 기술에는 여전히 암호 해독 키를 보유할 특정 주체가 필요합니다. M-of-N 다자간 샤딩 솔루션을 채택하거나 TEE(신뢰할 수 있는 실행 환경)를 두 번째 보호 계층으로 사용할 수도 있지만 이는 여전히 본질적인 제한 사항입니다.
이는 처음 두 프로토콜을 결합한 것보다 더 강력한 세 번째 프로토콜인 구별 불가능 난독화로 이어집니다. 아직 실용화에는 거리가 있지만, 2020년 표준 보안 가정을 바탕으로 이론적으로 실현 가능한 프로토콜을 구축하고 최근 구현에 착수했습니다. 구별 불가능한 난독화를 사용하면 내부 구현 세부 정보를 완전히 숨기면서 임의의 계산을 수행할 수 있는 "암호화 프로그램"을 만들 수 있습니다 . 간단한 예로, 개인 키를 난독화된 프로그램에 넣어 소수 서명에만 사용할 수 있도록 한 다음 해당 프로그램을 다른 사람에게 배포할 수 있습니다. 사용자는 이 프로그램을 사용하여 소수에 서명할 수 있지만 개인 키는 클레임 할 수 없습니다. 그러나 이는 그 기능의 빙산의 일각에 불과합니다. 해시 함수와 결합하면 다른 암호화 기본 요소를 구현할 수 있고 더 고급 기능을 지원할 수 있습니다.
난독화된 프로그램의 유일한 한계는 프로그램 자체가 복사되는 것을 방지할 수 없다는 것입니다. 그러나 이 분야에서 더욱 강력한 기술이 등장했지만 이를 위해서는 모든 참가자가 양자 컴퓨터, 즉 Quantum One-Shot Signatures를 보유해야 합니다.
난독화 기술과 일회성 서명을 결합하여 거의 완벽한 무신뢰 제3자 시스템을 구축할 수 있습니다. 블록체인에 의존하고 암호화만으로는 달성할 수 없는 유일한 것은 검열 저항입니다. 이러한 기술은 이더 자체의 보안을 강화할 뿐만 아니라 더욱 강력한 상위 계층 애플리케이션 구축을 지원할 수 있습니다.
이러한 기본 프로토콜 각각이 시스템 성능을 어떻게 향상시키는지 이해하기 위해 일반적인 사례인 투표 시스템을 살펴보겠습니다. 투표는 특히 검증 가능성과 개인 정보 보호 측면에서 복잡한 보안 속성을 많이 충족해야 하기 때문에 매우 어려운 문제입니다. 보안 투표 프로토콜은 수십 년 동안 존재해 왔지만 더 높은 목표를 세우겠습니다. 2차 투표, 페어링 제한 2차 융자, 클러스터 매칭 2차 융자 등을 포함하여 임의의 투표 프로토콜을 지원할 수 있는 시스템을 설계해 보겠습니다. 즉, "투표 계산" 링크가 임의의 프로그램 논리를 지원할 것으로 기대합니다.
- 먼저, 블록체인 에 투표 데이터를 기록한다고 가정합니다. 이를 통해 공개 검증 (투표 집계 규칙, 투표 자격 규칙 등 최종 결과의 정확성을 누구나 확인할 수 있음)과 검열 저항 (사용자의 투표 참여를 막을 수 없음)이 가능하지만 개인 정보 보호가 부족합니다.
- 그럼, ZK-SNARKs 기술을 소개합니다. 이를 통해 개인 정보 보호가 이루어집니다. 모든 투표는 익명으로 이루어지며 승인된 사용자만 투표할 수 있고 각 사용자는 한 번만 투표할 수 있습니다.
- 다음으로 MACI 메커니즘을 소개합니다. 투표 내용은 암호화되어 복호화 키를 통해 중앙 서버로 전송됩니다. 중앙 서버는 중복 투표 필터링, 결과의 정확성을 증명하는 ZK-SNARK 발행 등 투표 집계 프로세스를 실행하는 역할을 담당합니다. 이는 앞서 언급한 보장을 유지할 뿐만 아니라(서버가 부정 행위를 하는 경우에도!) 서버가 정직한 경우 강제 방지 보호 도 제공합니다. 즉, 사용자가 적극적으로 원하더라도 투표 선택을 증명할 수 없습니다. 이는 사용자가 투표를 증명할 수는 있지만 이전 투표를 상쇄하기 위해 다른 투표를 하지 않았다는 것을 증명할 수 없기 때문입니다. 이는 투표 매수 및 기타 공격을 효과적으로 방지합니다.
- 우리는 완전 동형 암호화 (FHE) 환경에서 투표 계산을 수행하고 N/2-of-N 임계값 암호 해독 방식을 통해 암호를 해독합니다. 이는 강제 방지 보호 메커니즘을 단일 지점 신뢰 에서 N/2 임계값 신뢰 로 업그레이드합니다.
- 우리는 투표 집계 프로그램의 코드를 난독화 하고 승인된 경우에만 결과를 출력할 수 있도록 난독화된 프로그램을 설계합니다. 이는 블록체인 합의 증명, 작업량 증명 또는 이 둘의 조합이 될 수 있습니다. 이는 강제 방지 보호 메커니즘을 거의 완벽하게 만듭니다 . 블록체인 합의 모드에서는 전체 네트워크가 공모하더라도 다른 사용자의 계산을 실행하여 작업량 증명 모드에서 검증 노드의 51%가 공모하여 크랙해야 합니다. 하위 집합 단일 사용자의 투표 동작을 복원하는 데도 많은 비용이 듭니다. 또한 개별 사용자 투표 행위의 은폐를 더욱 향상시키기 위해 최종 통계 결과에 작은 무작위 교란을 도입할 수도 있습니다.
- 특정 유형의 메시지에 서명하는 데 서명을 한 번만 사용할 수 있도록 보장하는 양자 컴퓨팅 기반 기본 프로토콜인 일회성 서명 메커니즘을 소개합니다. 이를 통해 스트레스로부터 완벽한 보호를 얻을 수 있습니다 .
구별할 수 없는 난독화는 다른 강력한 애플리케이션 시나리오도 지원할 수 있습니다. 예를 들어:
- 내부 암호화 상태에 따라 DAO, 온체인 경매 및 기타 애플리케이션을 지원합니다 .
- 완전히 일반적인 신뢰할 수 있는 설정 : 개발자는 해시(키, 프로그램)를 입력 매개 변수로 사용하여 임의의 프로그램을 실행하고 결과를 출력할 수 있는 키가 포함된 난독화된 프로그램을 만들 수 있습니다. 누구든지 이 프로그램을 얻은 후에는 프로그램을 자신에게 내장하고 프로그램의 원래 키를 자신의 키와 병합하여 초기화 범위를 확장할 수 있습니다. 이는 임의의 프로토콜에 대해 1-of-N 신뢰할 수 있는 초기화를 생성하는 데 사용될 수 있습니다.
- 서명 확인만 필요한 ZK-SNARK . 구현은 간단합니다. 신뢰할 수 있는 초기화를 사용하여 ZK-SNARK가 유효한지 확인할 때만 키로 서명하는 난독화된 프로그램을 만듭니다. .
- 암호화폐 거래 멤풀 . 이는 거래 암호화 프로세스를 크게 단순화합니다. 거래는 향후 특정 온체인 이벤트가 발생할 때만 해독됩니다. 여기에는 VDF(검증 가능한 지연 기능)의 성공적인 실행도 포함될 수 있습니다.
일회성 서명 메커니즘을 사용하면 최종성을 파괴하는 51% 공격으로부터 블록체인을 면역시킬 수 있지만 여전히 검열 공격에 직면할 수 있습니다. 일회성 서명과 같은 기본 프로토콜은 양자 통화를 지원하고 블록체인에 의존하지 않고도 이중 지출 문제를 해결할 수 있지만 더 복잡한 애플리케이션 시나리오에는 여전히 블록체인 지원이 필요합니다. 이러한 기본 프로토콜이 충분한 성능 수준을 달성할 수 있다면 전 세계 대부분의 애플리케이션은 탈중앙화 가능성이 있습니다. 주요 병목 현상은 구현의 정확성을 확인하는 방법입니다.
어떤 기존 연구 정보를 이용할 수 있나요?
- 2021 구별 불가능한 난독화 프로토콜 연구: https://eprint.iacr.org/2021/1334.pdf
- 난독화가 이더 어떻게 도움이 되는지 : https://ethresear.ch/t/how-obfuscation-can-help-ethereum/7380
- 최초의 일회성 서명 구성 체계: https://eprint.iacr.org/2020/107.pdf
- 난독화 기술 구현 탐색(1): https://mediatum.ub.tum.de/doc/1246288/1246288.pdf
- 난독화 기술 구현 탐구(2): https://github.com/SoraSuegami/iOMaker/tree/main
그 밖에 무엇을 해야 하며, 그에 따른 절충점은 무엇입니까?
아직 기술적인 과제가 많이 남아있습니다 . 구별할 수 없는 난독화 기술은 아직 매우 미성숙하고 기존 건설 솔루션은 수백만 배(또는 그 이상) 느리게 실행되며 실제 응용 프로그램에 사용할 수 없습니다. 이 기술은 "이론적으로" 다항식 실행 시간으로 널리 알려져 있지만 실제로는 우주의 수명보다 더 오래 걸립니다. 최근 프로토콜이 극단적인 시간 오버헤드를 줄였음에도 불구하고 일상적인 애플리케이션에서는 성능 저하가 여전히 너무 높습니다. 한 개발자의 추정에 따르면 단일 실행에는 1년이 걸릴 것으로 예상됩니다.
현재 양자 컴퓨터는 아직 실현되지 않았습니다. 지금까지 온라인에서 본 모든 아이디어는 4비트 작업만 처리할 수 있는 프로토타입 시스템이거나 실제 양자 컴퓨터가 아닙니다. 양자 구성 요소가 포함되어 있을 수 있지만 실제 수행할 수는 없습니다. Shor의 알고리즘이나 Grover의 알고리즘과 같은 효과적인 양자 알고리즘. 최근에는 "진짜" 양자 컴퓨터가 더 이상 그리 멀지 않다는 징후가 나타났습니다. 그러나 "진짜" 양자 컴퓨터가 곧 출시되더라도 일반 사람들이 노트북이나 휴대폰에서 양자 컴퓨터에 액세스할 수 있는 날은 대규모 기관이 타원 곡선 암호화를 해독할 수 있는 양자 컴퓨터에 액세스하기까지 수십 년이 걸릴 수 있습니다.
구별 불가능한 난독화 기술의 핵심 절충안은 보안 가정입니다. 틀에 얽매이지 않는 가정을 사용하는 일부 급진적인 솔루션은 보다 실용적인 실행 효율성을 제공하지만 이러한 틀에 얽매이지 않는 가정은 종종 위반될 리스크 있습니다. 격자 암호화에 대한 이론적 이해가 향상됨에 따라 결국 깨지지 않는 가설을 수립할 수 있게 될 것입니다. 그러나 이 길은 리스크 하다. 상대적으로 보수적인 방법은 "표준 가정"으로 입증할 수 있는 프로토콜을 고수하는 것이지만, 이는 충분한 실행 효율성을 갖춘 프로토콜을 달성하는 데 더 오랜 시간이 걸린다는 것을 의미합니다.
로드맵의 다른 부분과 어떻게 상호 작용합니까?
강력한 암호화가 판도를 바꿀 수 있습니다. 예를 들어:
- ZK-SNARK 검증이 서명만큼 간단하다면 더 이상 집계 프로토콜이 필요하지 않고 온체인 에서 직접 검증을 완료할 수 있습니다.
- 일회성 서명은 보다 안전한 지분 증명 프로토콜을 의미할 수 있습니다.
- 수많은 복잡한 개인 정보 보호 프로토콜은 개인 정보 보호를 '만' 지원하는 EVM으로 대체될 수 있습니다.
- 암호화폐 거래 멤풀 구현이 더욱 쉬워졌습니다.
이더 L1은 본질적으로 보수적인 보안 가정을 요구하기 때문에 처음에는 이러한 혁신적인 이점이 애플리케이션 계층에서 느껴질 것입니다. 그러나 애플리케이션 계층에서의 채택만으로도 ZK-SNARK의 출현과 비교할 수 있는 혁신적인 혁신을 가져올 수도 있습니다.
면책조항: 블록체인 정보 플랫폼으로서 이 사이트에 게시된 기사는 작성자와 게스트 관점 만을 나타낼 뿐이며 Web3Caff의 입장과는 아무런 관련이 없습니다. 기사에 포함된 정보는 참고용일 뿐이며 투자 조언이나 제안을 구성하지 않습니다. 귀하가 위치한 국가 또는 지역의 관련 법률 및 규정을 준수하십시오.