NU6.2
NU6.2는 Zcash 메인넷의 블록 3,364,600에서 2026년 6월 3일(UTC)에 활성화되었습니다.
핵심 내용: NU6.2가 무엇을 수정했는지, Zcash가 왜 약 하루 동안 실드 트랜잭션을 일시 중단했는지, 그리고 자금 손실 없이 네트워크가 어떻게 이 취약점을 막았는지 알아봅니다.
NU6.2는 긴급 일시 중단 후 Orchard 실드 프로토콜을 다시 활성화한 Zcash 네트워크 업그레이드이며, ZIP 257에 공식적으로 정의되어 있습니다. 이는 Orchard의 영지식 회로에 있던 건전성 버그를 수정하고 실드 트랜잭션을 복구했습니다. 이를 Orchard 버그 이야기의 긴급 복구 장으로 생각해 보세요. 후속 업그레이드인 Ironwood(NU6.3)는 이후 새 풀과 기존 풀에 대한 공개 감사를 추가했습니다.
이것이 중요한 이유입니다. Orchard는 대부분의 비공개 Zcash 결제가 이루어지는 곳입니다. 이 풀의 무결성을 보장하는 수학에서 결함이 발견되자, 네트워크는 어려운 선택에 직면했습니다. 알려진 위험을 안고 실드 트랜잭션을 계속 실행할 것인가, 아니면 수정이 준비될 때까지 이를 중단할 것인가입니다. NU6.2는 Zcash가 안전을 우선시하면서도 하루 안에 프라이버시를 복구한 방식입니다.

무슨 일이 있었나요
계기는 모든 실드 트랜잭션이 규칙을 준수함을 증명해야 하는 수학인 Orchard의 Action 회로에서 발견된 건전성 버그였습니다. 독립 연구자 Taylor Hornby는 Shielded Labs 감사 중 이 버그를 발견했으며, 2026년 5월 말 책임감 있게 공개했습니다. 이 버그는 Orchard가 2022년에 출시된 이후 발견되지 않은 채 존재했고, 이론적으로는 무효한 트랜잭션이 유효한 것처럼 통과하게 하여 Orchard 풀 내 자금 도난이나 이중 지출을 허용할 수 있었습니다. Zcash의 회전문 회계는 Orchard에서 빠져나갈 수 있는 가치의 양을 계속 제한했으므로 전체 ZEC 공급량 자체가 부풀려질 수는 없었습니다. 하지만 실드 자금의 무결성을 지키는 수학의 결함은 심각하므로 네트워크는 며칠 안에 조치했습니다. Ironwood 페이지에서 버그와 이것이 어떻게 가치를 생성할 수 있었는지를 자세히 설명합니다.
긴급 일시 중단
2026년 6월 2일, 긴급 소프트 포크가 모든 Orchard 트랜잭션을 일시적으로 비활성화했습니다. 이 조치는 zcashd v6.12.5 및 zebra v4.5.3의 핫픽스로 배포되었습니다.
- 실드 Orchard 송수신이 중단되어 새 Orchard 증명을 생성하거나 수락할 수 없었습니다.
- 투명 트랜잭션과 Sapling 트랜잭션은 정상적으로 계속 작동했습니다.
- 이동, 동결 또는 손실된 자금은 없었습니다. 실제 수정이 완료되는 동안 일시 중단은 새 Orchard 활동만 멈췄습니다.

NU6.2가 변경한 사항
다음 날인 2026년 6월 3일, NU6.2 하드 포크가 블록 3,364,600에서 활성화되어 수정된 회로에서 Orchard를 다시 활성화했습니다.

- 누락된 제약 조건을 추가하여 Action 회로의 변수 기반 스칼라 곱셈 가젯을 수정했습니다.
- 이로 인해 새로운 검증 키가 생성되었으므로, 기존의 결함 있는 회로에서 생성된 증명은 더 이상 검증되지 않으며 모든 새 증명은 수정된 회로를 사용해야 합니다.
- 정확한 증명 길이를 합의 규칙으로 만들어 이전에는 강제되지 않았던 공백을 막았습니다.
수정된 코드는 halo2_gadgets v0.5.0 및 orchard crate v0.14.0을 기반으로 zcashd v6.20.0 및 zebra v5.0.0에 배포되었습니다.
NU6.2가 하지 않은 사항
NU6.2는 모든 새 트랜잭션의 회로를 보호했지만, 이전 규칙에서 생성된 가치는 여전히 Orchard 풀에 남아 있었습니다. 이 가치를 감사하고 깨끗한 풀로 옮기는 일은 별도의 작업이며, 그것이 Ironwood(NU6.3)가 새 풀과 회전문으로 처리하는 일입니다.
무엇인가 손실되었나요
아니요. 이 버그가 악용되었다는 증거는 없으며, 무단 가치 생성도 없었고 사용자 자금에 미친 영향도 없습니다. Zcash의 회전문 회계는 전체 공급량이 이 사건 내내 온전히 유지되었음을 확인했습니다.
용어집
| 용어 | 쉬운 의미 |
|---|
| Shielded pool | 영지식 암호학으로 금액과 소유자가 숨겨진 자금의 집합 |
| Orchard | NU5가 도입한 실드 프로토콜입니다. NU6.2 당시 Zcash의 주요 실드 풀이었으며, Ironwood가 NU6.3에서 이를 대체했고 Orchard는 이제 지출 전용입니다 |
| Soundness bug | 무효한 트랜잭션이 유효한 것처럼 증명 검사를 통과하게 하는 결함 |
| Verifying key | 네트워크가 증명이 유효한지 확인하는 데 사용하는 공개 값입니다. 회로를 수정하면서 이 값도 변경되었습니다 |
| Soft fork | 네트워크를 분리하지 않고 Orchard를 일시 중단한 하위 호환 규칙 변경 |
| Hard fork | 모든 노드가 업그레이드해야 하는 조정된 규칙 변경으로, 지정된 블록에서 활성화됩니다 |
FAQ
내 ZEC에 대한 접근 권한을 잃었나요? 아니요. 약 하루 동안 실드 Orchard 트랜잭션은 중단되었지만 자금이 손실되거나 위험에 처하지 않았으며, 투명 트랜잭션과 Sapling 트랜잭션은 계속 작동했습니다.
조용히 패치하지 않고 왜 중단했나요? 건전성 버그는 Orchard 풀 내 자금 도난이나 이중 지출을 허용할 수 있으므로, 수정된 회로가 활성화될 때까지 새 Orchard 트랜잭션을 중단하는 것이 안전한 조치였습니다.
기존 실드 증명은 여전히 작동하나요? 기존 회로에서 생성된 증명은 NU6.2 이후 더 이상 검증되지 않습니다. 지원되는 릴리스의 지갑은 수정된 회로를 자동으로 사용합니다.
버그가 실제로 사용된 적이 있나요? 그랬다는 증거는 없습니다. 보안 연구를 통해 발견되었고 알려진 피해가 발생하기 전에 수정되었습니다.
NU6.2는 Ironwood와 어떻게 다른가요? NU6.2는 회로를 수정하고 Orchard를 다시 활성화했습니다. 이후 Ironwood(NU6.3)는 기존 풀의 가치를 감사하고 옮기기 위한 새 풀과 공개 회전문을 추가했습니다.
이해도 확인
수정 작업이 진행되는 동안 계속 실행하는 대신, Zcash는 왜 Orchard 트랜잭션을 하루 동안 중단했나요?
답변
결함이 건전성 버그였기 때문입니다. 즉, 무효한 트랜잭션이 유효한 것처럼 통과할 수 있었습니다. Orchard를 열어 두었다면 풀 내부에서 도난과 이중 지출로 이어지는 문을 계속 열어 두는 셈이었습니다. 새 Orchard 트랜잭션을 중단함으로써 수정된 회로가 NU6.2에서 활성화될 때까지 그 문을 닫았습니다.
자료
ZIP 257: Orchard 임시 취약점 완화 및 NU6.2 네트워크 업그레이드 배포
Zcash Foundation: Zebra 긴급 소프트 포크 및 NU6.2 활성화
함께 보기
Ironwood(NU6.3)
Zcash 네트워크 업그레이드
실드 풀
Halo
Shielded Labs
ZEC란 무엇이며 Zcash
시리즈: 네트워크 업그레이드 색인 · 이전: NU6.1 · 다음: Ironwood