Zebra 5.0.0, 긴급 소프트포크와 NU6.2
Orchard 회로 결함에 대응해 4.5.3은 Orchard를 임시 비활성화하는 소프트포크를, 5.0.0은 수정된 회로로 Orchard를 복구하는 NU6.2를 구현했습니다.
Zcash Foundation이 Orchard Action 회로의 치명적 버그에 대응한 Zebra 4.5.3과 5.0.0을 공개했다. 4.5.3은 수정안이 준비되는 동안 Orchard action을 일시 비활성화하는 긴급 소프트포크를 구현했고, 5.0.0은 수정된 회로로 Orchard를 다시 켜는 NU6.2를 활성화한다. 재단은 가능한 한 빨리 5.0.0으로, NU6.2 활성화 높이 전에 올리기 어렵다면 4.5.3으로 업그레이드하라고 강하게 권고한다.
5월 29일 금요일 Shielded Labs를 위해 프로토콜 감사를 해 온 독립 보안 연구자 Taylor Hornby가 Orchard 영지식 증명 회로의 치명적 건전성 취약점을 발견해 그날 저녁 ZODL 핵심 엔지니어에게 책임 있게 알렸다. ZODL 엔지니어들이 몇 시간 안에 문제를 확인했고, 세부 사항을 비공개로 유지한 채 조율된 업그레이드를 준비했다. 5월 31일 저녁 채굴자와 거래소와의 비공개 조율이 시작됐고, 첫 소프트포크 시도가 배포 과정의 어려움을 겪은 뒤 높이 3,363,426을 겨냥한 두 번째 패치가 6월 2일 02:00 UTC경 활성화됐다.
6월 3일 00:05 EDT에 NU6.2 하드포크가 활성화되어 수정된 회로로 Orchard가 다시 켜졌다. 이는 Zcash 출시 이후 두 번째 보안 목적의 프로토콜 업그레이드다. 알려진 악용 사례는 없었고 불법적인 가치 생성의 증거도 없었다. 총 ZEC 잔액을 추적하는 turnstile이 공급량이 온전하다는 점을 확인했고 사용자 프라이버시는 영향받지 않았다. Sapling과 투명 거래는 줄곧 정상 작동했다.
버그는 halo2_gadgets crate의 Orchard 회로 구현에 있던 건전성 결함이다. 악용되면 Orchard 풀이 잘못된 상태 전이를 받아들여 Orchard 안에서 이중 지불이 가능했을 수 있지만 turnstile 때문에 총공급량을 부풀릴 수는 없다. 영향 범위는 halo2_gadgets 0.5.0 미만, orchard 0.14.0 미만, zcash_primitives 0.28.0 미만, zcashd v5.0.0~v6.12.3, zebrad 4.5.1 미만이다. 직접 패치는 결함의 성격을 너무 드러낼 수 있어 먼저 Orchard를 비활성화하는 방식을 택했다.
NU6.2는 Mainnet 높이 3,364,600, Testnet 4,052,000에서 활성화된다. 증명 회로 버그를 고치려면 고정된 검증 키를 바꿔야 해서 노드 패치만으로는 안 되고 하드포크가 필요했다. 5.0.0은 크기가 비표준인 Orchard 증명을 거부하는 합의 규칙도 추가한다. 활성화 높이가 지났는데 노드가 포크를 따라갔다면 처음부터 또는 활성화 이전 백업에서 동기화해야 한다. 재단은 Taylor Hornby, Shielded Labs, ZODL 엔지니어, Arya Solhi와 신속히 채택한 생태계 참여자들에게 감사를 전했다.
한국어 요약은 원문을 바탕으로 정리한 것으로, 정확한 내용은 원문을 확인하세요.