BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

a16z: 분산형 체인에서 신뢰할 수 있는 설정 의식의 실행 가능성에 대해 자세히 논의

Foresight News
特邀专栏作者
2022-09-08 08:00
이 기사는 약 5469자로, 전체를 읽는 데 약 8분이 소요됩니다
암호화된 프로젝트 탈중앙화 체인 신뢰 설정식에 대한 자세한 기술 설명
AI 요약
펼치기
암호화된 프로젝트 탈중앙화 체인 신뢰 설정식에 대한 자세한 기술 설명

편집 원본: Amber, Foresight News

편집 원본: Amber, Foresight News

Trusted Setup Ceremony는 항상 암호화 커뮤니티에 도전했지만 확실히 암호화 커뮤니티를 가장 흥분시키는 부분입니다. 행사의 목표는 암호화 지갑, 블록체인 프로토콜 또는 영지식 증명 시스템을 보호하는 데 사용할 수 있는 신뢰할 수 있는 암호화 키를 생성하는 것입니다. 이러한 절차는 프로젝트의 보안을 위한 신뢰의 근원이므로 완벽한 운영을 보장하고 신뢰할 수 있는 설정 의식을 수행하는 것이 중요합니다.

현재 블록체인 프로젝트에는 토치, 방사성 먼지, 비행기 등을 포함하되 이에 국한되지 않는 다양한 형태의 신뢰할 수 있는 설정 의식이 있으며 이러한 형태에는 한 가지 공통점이 있습니다. 즉, 모두 중앙 집중식 조정에 의존한다는 것입니다. 장치. 이 기사는 중앙 집중식 코디네이터를 스마트 계약으로 대체하여 프로세스를 분산시키는 방법을 보여 주며 동시에 누구나 이더리움에서 실행할 수 있는 라이브러리(KZG) 또는 "powers-of-tau" 의식을 오픈 소스로 제공할 것입니다.

우리의 분산형 접근 방식에는 한계가 있지만 여전히 유용합니다. 현재 온체인 데이터 제한으로 인해 암호화된 매개변수의 크기는 64KB 이하로 유지되어야 합니다. 그러나 참가자 수에는 상한선이 없으며 누구나 언제든지 기여할 수 있습니다. 이러한 짧은 매개변수의 적용에는 작은 영지식 SNARK, 데이터 가용성 샘플링, Verkle 트리 등이 포함됩니다.

신뢰할 수 있는 설치 의식의 역사와 메커니즘

일반적인 신뢰할 수 있는 설정 행사에서는 참가자 그룹이 협력하여 일련의 암호화 매개변수를 생성합니다. 각 당사자는 로컬에서 생성된 암호화된 정보를 사용하여 이러한 매개변수를 생성하는 데 도움이 되는 데이터를 생성합니다. 적절한 설정을 통해 암호화된 정보가 유출되지 않고, 암호화된 정보는 계약에 따라서만 사용할 수 있으며, 이러한 암호화된 정보는 행사 종료 시 완전히 파기됩니다. 의식에서 적어도 한 당사자가 정직하고 암호화된 메시지를 파기하는 한(의식 후) 전체 프로세스는 안전한 것으로 간주될 수 있습니다. (물론 코드에 오류가 없다는 전제)

가장 눈에 띄는 행사 중 일부는 개인 정보 보호 지향 블록체인 프로젝트인 Zcash에 의해 시작되었습니다. 이 의식의 참가자는 Zcash 사용자가 개인 암호화 트랜잭션을 구성하고 확인할 수 있도록 설계된 공개 매개변수를 생성합니다. 6명의 참가자가 2016년 첫 번째 Zcash 시상식 Sprout을 주최했습니다. 2년 후, 현재 Aztec의 수석 과학자인 암호화 연구원 Ariel Gabizon은 근본적인 연구 논문에서 물려받은 의식 설계에서 엄청난 오류를 발견했습니다. 이 취약점으로 인해 공격자는 감지되지 않고 무한한 Zcash 코인을 생성할 수 있었습니다. Zcash 팀은 90명의 참가자가 참여한 시스템 업그레이드 Sapling이 문제를 해결할 때까지 7개월 동안 버그를 비밀로 유지했습니다. 보안 위반에 기반한 공격은 사용자 거래의 개인 정보 보호에 영향을 미치지 않지만 무한 위조 가능성은 Zcash의 보안 전제를 약화시킵니다. (이론적으로는 공격이 발생했는지 알 수 없습니다.)

신뢰할 수 있는 설정의 또 다른 주목할만한 예는 Ethereum에서 익명 신호에 사용되는 개인 정보 보호 기술인 Semaphore를 위해 주로 설계된 영구적인 "tau-power-of-tau" 행사입니다. 이 설정은 BN254 타원 곡선을 사용하며 지금까지 71명의 참가자가 있습니다. 다른 주목할만한 프로젝트는 나중에 Tornado.Cash, Hermez 네트워크 및 Loopring을 포함하여 자체 행사를 진행하기 위해 이 설정을 사용했습니다. Aztec은 영지식 롤업을 사용하는 "레이어 2" 이더리움 스케일링 솔루션인 zkSync를 위해 176명의 참가자와 함께 BLS12_381 타원 곡선에서 유사한 행사를 가졌습니다. 탈중앙화 데이터 저장 프로토콜인 Filecoin은 1단계와 2단계에서 각각 19명과 33명의 참가자와 함께 원래 저장소를 분기했습니다. 레이어 1 블록체인인 Celo도 가벼운 클라이언트인 Plumo를 위한 행사를 주최했습니다.

상설 예식은 참가자 수에 제한이 없습니다. 즉, 다른 사람이 신뢰할 수 있는 설치 행사를 실행하도록 신뢰하지 않고 누구나 모든 수준의 보안으로 참여할 수 있습니다. 신뢰할 수 있는 행위자는 모든 결과 매개변수의 보안을 보장하며 체인은 가장 강력한 링크만큼 강력합니다. 이름에서 알 수 있듯이 영구 의식은 원래 타우 파워 의식의 전제와 마찬가지로 영원히 수행될 수 있습니다. 즉, 프로젝트는 생성된 매개변수를 지속적으로 업데이트하는 것에 대해 걱정하지 않고 프로토콜에 포함할 수 있도록 의식의 특정 시작 및 종료 시간을 결정하는 경우가 많습니다.

이더리움은 다가오는 ProtoDankSharding 및 DankSharding 업그레이드를 위해 더 작은 신뢰할 수 있는 설정 행사를 실행할 계획입니다. 이 두 가지 업그레이드는 이더리움 체인이 고객에게 저장을 위해 제공하는 데이터의 양을 증가시킵니다. 이 데이터는 권장되는 30~60일 동안 유효합니다. 행사는 활발히 진행 중이며 내년 초 약 6주간 진행될 예정입니다. (자세한 내용은 kzg-ceremony-specs 참조) 그리고 현재까지 가장 큰 블록체인 신뢰할 수 있는 설치 행사가 될 것입니다.

편집증은 "미덕"이며, 특히 믿을 수 있는 설정 의식에 관해서는 그렇습니다. 기계의 하드웨어나 소프트웨어가 손상되면 그것이 생성하는 비밀의 보안이 손상될 수 있습니다. 비밀을 누설하는 교활한 부채널 공격도 배제하기 어렵습니다. 예를 들어 휴대폰은 CPU 진동의 음파를 녹음하여 컴퓨터의 작동을 모니터링할 수 있습니다. 실제로 발견되거나 공개되지 않은 공격을 포함하여 가능한 모든 부채널 공격을 제거하는 것은 매우 어렵기 때문에 기계를 우주로 날아가 의식을 수행하는 것이 제안되었습니다.

현재 엄격한 의식 참가자를 위한 대본은 대개 다음과 같습니다. 새 기계(오염되지 않은 하드웨어)를 구입하십시오. 모든 네트워크 카드를 제거하여 위험 격리(로컬 비밀 유출 방지). 패러데이 케이지의 공개되지 않은 원격 위치에서 기계를 실행합니다(스누퍼가 될 가능성을 차단하기 위해). 비디오 파일의 임의 입력 또는 시드(암호화된 메시지를 크랙하기 어렵게 만들기 위해)와 같은 의사 임의 암호화 메시지 생성기에 대해 많은 양의 엔트로피 및 하드 카피 데이터를 설정합니다. 마지막으로, 암호화된 정보와 그 흔적은 모든 것을 불태워 파괴합니다.

신뢰할 수 있는 설정 행사 조정

모든 신뢰할 수 있는 설정 의식은 중앙 집중식 코디네이터에 의존합니다. 코디네이터는 참가자 등록 및 주문, 이전 참가자의 정보를 다음 참가자에게 전달하고 감사 목적으로 모든 통신의 중앙 집중식 로그를 유지함으로써 릴레이 역할을 하는 개인 또는 사설 서버 또는 기타 엔티티입니다. 코디네이터는 일반적으로 로그를 대중에게 영구적으로 제공하는 책임도 있지만 이러한 중앙 집중식 시스템은 관리 부실이나 일부 비인간적 요인으로 인해 정보 손실이 발생하기 쉽다는 점을 인정해야 합니다.

아이러니하게도 탈중앙화가 암호 정신의 핵심 신조일 때 암호 프로젝트는 중앙 집중식의 신뢰할 수 있는 설치 의식에 의존해야 합니다. 따라서 우리는 이더리움 블록체인에서 직접 영속적인 타우의 힘을 위한 작은 행사를 여는 가능성을 입증하기로 결정했습니다. 이 설정은 완전히 분산되고 허가가 필요 없으며 검열에 강하고 한 참가자가 정직한 한 안전합니다. 현재 가격으로 시상식 참석 비용은 원하는 결과 매개변수의 크기(이 경우 8에서 1024 타우 사이)에 따라 $7에서 $400에 불과합니다.

현재로서는 실험 목적 이외의 목적으로 코드를 사용하지 않는 것이 좋습니다. 누구든지 코드에서 문제를 발견하여 신고해 주시면 감사하겠습니다. 우리는 접근 방식에 대한 피드백과 리뷰를 수집하고 싶습니다.

KZG 또는 "타우의 힘" 의식에 대해 알아보기

KZG 또는 "powers-of-tau" 의식으로 알려진 가장 인기 있고 신뢰할 수 있는 설정 중 하나를 살펴보겠습니다. 신뢰할 수 있는 설정에 대한 블로그 게시물이 이 섹션에서 우리의 생각을 알려준 이더리움 공동 설립자 Vitalik Buterin에게 감사드립니다. 이 설정은 "tau"가 참여자가 생성한 비밀을 나타내는 데 사용되는 변수이기 때문에 이름이 지정된 powers-of-tau 인코딩을 생성합니다.

일부 응용 프로그램(예: Groth16, 2016년 Jens Groth가 고안한 인기 있는 zkSNARK 증명 체계)의 경우 설정의 첫 번째 단계에 이어 특정 SNARK 회로에 대한 매개변수를 생성하기 위한 MPC(다자간 계산) 의식이라는 두 번째 단계가 이어집니다. . 그러나 우리의 작업은 첫 번째 단계에만 집중합니다. tau의 생성 능력인 첫 번째 단계는 이미 PLONK 및 SONIC과 같은 범용 SNARK뿐만 아니라 KZG 약속, Verkle 트리 및 데이터 가용성 샘플링과 같은 기타 암호화 응용 프로그램의 기본 빌딩 블록으로 사용될 수 있습니다. (다스). 일반적으로 범용 SNARK 매개변수는 크고 유용한 회로를 지원할 수 있도록 매우 커야 합니다. 더 많은 게이트를 포함하는 회로는 대규모 계산을 캡처할 수 있기 때문에 일반적으로 더 유용합니다. 따라서 일반적인 설정 크기는 |pp|= ~40GB이며 28개 가스의 ~2개 회로를 지원할 수 있습니다. 이더리움의 현재 제약 조건을 고려할 때 이렇게 큰 매개변수를 온체인에 배치하는 것은 불가능하지만 소규모 SNARK 회로, Verkle 트리 또는 DAS에 유용한 소규모 신뢰할 수 있는 설정 의식은 온체인에서 실행할 수 있습니다.

이더리움 재단은 200KB에서 1.5MB 크기의 powers-of-tau를 위한 여러 소규모 행사를 진행할 계획입니다. 더 큰 행사가 더 좋아 보일 수 있지만 더 큰 매개변수가 더 유용한 SNARK 회로를 생성할 수 있다는 점을 고려하면 실제로는 더 큰 것이 항상 더 좋은 것은 아닙니다. 특정 애플리케이션(예: DAS)에는 특히 더 작은 애플리케이션이 필요합니다! [이유는 매우 기술적인데, 궁금하신 분은 n(in G)1)의 거듭제곱을 가진 설정이 차수 ≤ n의 다항식에 대해서만 KZG 확약을 허용하기 때문입니다. 이는 KZG 확약 하의 다항식이 n 재구성에서 도출된 것은 이 평가에서 중요합니다. 이 속성은 데이터 가용성 샘플링을 지원합니다. 다항식의 무작위 평가가 성공적으로 획득(샘플링)될 때마다 다항식이 확률 t/n으로 완전히 재구성될 수 있음을 보장합니다. DAS에 대해 자세히 알아보려면 Ethereum Research Forum에서 Buterin의 게시물을 확인하십시오.

우리는 신뢰할 수 있는 설정 행사를 실행하기 위해 이더리움 블록체인에 배포할 수 있는 스마트 계약을 설계했습니다. 계약은 공개 매개변수를 전적으로 온체인에 저장하고 사용자의 트랜잭션을 통해 참여를 수집합니다.

새 참가자는 먼저 다음 매개변수를 읽습니다.

그런 다음 무작위 키 τ'를 샘플링하고 업데이트된 매개변수를 계산합니다.

그리고 그것들을 체인에 게시하고 다음 세 가지에 대한 증거를 첨부하십시오.

  • 이산 로그에 대한 지식: 참가자는 τ'를 알고 있습니다. (신뢰할 수 있는 설치 행사에 대한 최신 기여가 모든 이전 참가자의 작업을 기반으로 한다는 증거.

  • pp is well-formed1: 이러한 요소는 증분 능력을 인코딩합니다. (신규 참가자의 행사 기여도가 좋은 형태로 확인되었습니다.

  • 업데이트가 지워지지 않음: τ' ≠ 0. (모든 참가자의 과거 작업을 삭제하여 시스템을 손상시키려는 공격자에 대한 방어.

스마트 계약은 증명을 확인하고 올바른 경우 저장하는 공용 매개변수를 업데이트합니다. 리포지토리에서 수학 및 추론에 대한 자세한 내용을 찾을 수 있습니다.

가스 비용 계산

온체인 설정 실행의 주요 과제는 신뢰할 수 있는 설정 절차를 가능한 한 효율적으로 만드는 것입니다. 이상적으로는 기부금 제출 수수료가 $50를 초과하지 않아야 합니다. (대형 프로젝트는 기부자에게 가스 보조금을 지급할 수 있으며, 이 경우 수백 명의 참가자가 각각 $100를 지출하는 것을 상상하기 더 쉽습니다.) 아래에서 설정의 가장 비싼 부분에 대한 자세한 내용을 제공합니다. 낮은 가스 비용은 기여 비용을 줄이고 더 긴 매개변수(더 많은 tau 전력 및 더 큰 SNARK 회로)를 구축할 수 있게 합니다!

우리의 설정은 타원 곡선 BN254(BN256, BN128 및 alt_bn128이라고도 함)에서 작동하며 Ethereum에서 다음 사전 컴파일된 계약을 지원합니다.

ECADD를 사용하면 두 개의 타원 곡선 점을 추가할 수 있습니다. 즉, [α]1과 [β]1에서 [α+β]1을 계산합니다. 가스 비용 150

ECMULT를 사용하면 타원 곡선 점에 스칼라를 곱할 수 있습니다. 즉, a에서 [a*α]1을 계산하고 [α]1: 가스 비용 6,000

ECPAIR를 사용하면 타원 곡선 쌍의 곱, 즉 e([α1]1, [β1]2) * ... *e([α1]1, [β1]2) = 1 계산, α1* 확인과 동일 β1+ .. + αk*βk= 0 : 가스 비용 34,000 * k + 45,000

Ethereum이 BLS12_381(EIP-2537에서 제안한 대로)을 활성화할 수 있는 경우 설정 계약을 다른 곡선에도 쉽게 사용할 수 있습니다.

설정 업데이트를 추정해 보겠습니다.

증명을 확인하기 위한 가스 비용. 위에서 언급한 대로 각 참가자는 설정을 업데이트하고 세 가지 구성 요소로 증명을 제출합니다. 증명의 구성 요소 1과 3("이산 로그 지식" 및 "업데이트는 지울 수 없음")은 검증 비용이 매우 저렴합니다. 문제는 구성 요소 2, "pp"1"의 우수한 성형성이 온체인인지 확인하는 것입니다. 여기에는 큰 MSM(다중 스칼라 곱셈)과 두 쌍이 필요합니다.

여기서 ρ0,...,𝝆n-1은 유사 무작위로 샘플링된 스칼라입니다. 사전 컴파일된 스마트 계약 측면에서 다음이 필요합니다.

데이터 저장을 위한 가스 비용. 또한 각 참가자는 n * 64 * 68 가스를 차지하는 호출 데이터(바이트당 68 가스)로 온체인 업데이트를 저장합니다. (타원 곡선 암호화에 익숙한 사용자를 위한 참고 사항: n = 256에 대한 측정에서 압축 지점을 저장하면 압축 해제가 전체 비용을 지배하게 됩니다.

예상 가스 비용은 다음과 같습니다.

물론 우리는 여전히 가스 비용을 줄이기 위한 솔루션을 모색하고 있습니다.

오픈 소스 라이브러리: evm-powers-of-tau

github.com/a16z/evm-powers-of-tau에서 EVM 기반 powers-of-tau 의식을 오픈 소스로 제공했습니다. 의식은 우리의 전략을 사용하여 간단하고 투명합니다.

  • 저장소 및 검증 계약 배포(Contracts/KZG.sol)

  • 참가자는 이전 트랜잭션 호출 데이터에서 행사 매개변수를 읽습니다.

  • 참가자는 로컬에서 키를 생성하고 업데이트된 매개변수를 계산합니다.

  • 기여자가 증명을 생성합니다: pi1, pi2

  • 기여자는 KZG.potUpdate()를 통해 퍼블릭 블록체인에 배포된 스마트 계약에 업데이트된 매개변수를 제출합니다.

  • 스마트 계약은 잘못된 커밋의 경우 되돌려 업데이트의 유효성을 확인합니다.

  • 여러 참여자가 2-5단계를 지속할 수 있으며 각 단계는 의식의 보안을 강화합니다.

  • 개발자는 제출물의 양과 품질에 확신이 있을 때마다 현재 매개변수에 대해 블록체인을 쿼리하고 해당 값을 암호화 키로 사용할 수 있습니다.

우리 리포지토리는 arkworks-rs를 사용하여 2단계와 3단계를 계산하지만(rust 계산은 src/pot_update.rs에서 찾을 수 있음) 사용자가 직접 작성할 수 있습니다. 업데이트 제출의 전체 종단 간 흐름은 tests/integration_test.rs의 통합 테스트에서 찾을 수 있습니다.

우리는 calldata를 사용하여 업데이트된 power-of-tau 매개변수를 저장하는 것보다 훨씬 저렴하기 때문에 온체인에 저장하기로 했습니다. 이 데이터에 대한 ethers-rs 기반 쿼리는 src/query.rs에서 찾을 수 있습니다.

마지막으로 기술 보고서(techreport/main.pdf)에서 증명 및 자세한 공식을 확인할 수 있습니다.

향후 작업 계획

프로덕션 환경에서 이 신뢰할 수 있는 설정 방식을 사용하기 전에 먼저 수학적 증명 및 예제 구현을 철저히 검토하는 것이 좋습니다.

구현된 대로 업데이트 식의 트랜잭션 비용은 설정된 크기에 따라 선형적으로 증가합니다. 대부분의 애플리케이션(SNARK, DAS)의 경우 n >= 256으로 설정하려고 하며 현재 업데이트당 $73의 비용이 듭니다.

효율적으로 업데이트된 STARK 계산 증명 및 업데이트된 값에 대한 벡터 약속을 통해 하위 선형 검증 비용 증가를 달성할 수 있습니다. 이 구조는 또한 Ethereum L1 BN254 사전 컴파일에 대한 종속성을 제거하여 더 많이 사용되는 BLS12-381 곡선을 사용할 수 있게 합니다.

원본 링크

원본 링크

a16z
Odaily 공식 커뮤니티에 가입하세요