딥리딩 해석 롤업에 왜 안전 위원회가 필요한가?
원문 저자: PATRICK MCCORRY
원문 번역: Luffy, Foresight News
암호 자산과 상호작용하는 데이터베이스는 언젠가 Rollup을 기술 스택으로 선택하게 될 것입니다. 개발자들이 이러한 결정을 내리는 데는 여러 가지 충분한 이유가 있습니다:
실시간 감사
기본적인 지급 능력 증명
사용자 자금의 관리가 선택적임
정직한 일방 참여자가 전체 시스템을 보호할 수 있음
가장 중요한 것은 Rollup의 모든 설계 및 구현 작업이 사용자, 그들의 자금 및 모든 상호작용을 잠재적으로 알려지지 않은 강력한 시스템 운영자로부터 보호하는 데 집중되어 있다는 것입니다.
전체 시스템이 오프라인 상태일지라도 사용자는 혼자 힘으로 자금을 회수할 수 있습니다.
Rollup이 기술 스택으로 널리 배포될 수 있다면, 우리는 신뢰 장벽을 허물고 전 세계 커뮤니티의 누구나 재정적 상호작용을 할 수 있는 능력을 가질 수 있으며, 이를 통해 글로벌 전자 상거래, 원격 채용 및 무마찰 서비스 제공의 새로운 시대에 진입할 수 있습니다.
Rollup이 올바르게 실행되기 위해서는 많은 노력이 필요합니다.
다중 서명은 어떤가요?
좋아 보이지만, 전체 시스템은 결국 다중 서명에 의해 제어됩니다. 서명자가 손상되거나 악의적인 의도를 가지게 된다면, 그들은 모든 자금을 쉽게 훔칠 수 있습니다.
그렇다면 누가 Rollup에 관심을 가질까요? CT의 어딘가에서.
실제로 현재 모든 Rollup은 다중 서명을 가지고 있으며, 기본 스마트 계약을 업그레이드할 권한을 가지고 있지만, 우리가 곧 보게 될 것처럼, 이는 사용자 자금을 보호하기 위한 보수적 메커니즘이며 더 넓은 시스템 아키텍처의 일부입니다.
안전 위원회의 책임
다중 서명은 여러 서명자가 특정 작업을 승인해야 하는 시스템을 의미하는 기술 용어입니다. 예를 들어, N명의 서명자 중 K명이 디지털 서명을 완료해야 거래가 허용됩니다.
Rollup의 맥락에서 다중 서명은 일반적으로 안전 위원회라고 불리며, 서명자는 모든 관련 스마트 계약을 업그레이드할 권한을 부여받습니다.
우리가 Arbitrum의 안전 위원회를 살펴보면(나는 그것에 대해 매우 잘 알고 있습니다), 이 조직이 맡을 수 있는 책임의 유형을 이해할 수 있습니다:
거부권. 안전 위원회가 Arbitrum DAO가 통과시킨 제안이 Arbitrum 헌장을 위반하고 Arbitrum 생태계에 해를 끼칠 수 있다고 판단할 경우, 해당 제안을 취소할 수 있습니다. 예를 들어, 거버넌스 공격으로 인해 통과된 제안을 취소할 수 있습니다.
유지 관리. Arbitrum 스마트 계약 세트를 미세하게 변경하기 위해 업그레이드하며, 이러한 변경은 작고 Arbitrum DAO의 참여가 필요하지 않습니다.
긴급 상황. 긴급 상황에서 신속하게 대응하며, 사용자 자금이 임박한 위험에 처해 있다고 판단할 경우 스마트 계약을 긴급하게 업그레이드할 수 있습니다.
물론 가장 중요한 것은 안전 위원회의 주요 책임이 긴급 상황에 대응하고 사용자 자금을 보호하기 위해 신속하게 조치를 취하는 것입니다.
안전 위원회의 구성원은 매우 신뢰할 수 있는 인물이어야 합니다.
사람들은 서명자가 긴급 상황 발생 시 신속하게 반응하고 스마트 계약을 업그레이드할 수 있으며, 그들이 자금을 안전하게 보호하기 위해 최선을 다할 것이라고 믿습니다.
올바른 다중 서명 임계값 선택
안전 위원회를 설립할 때 고려해야 할 두 가지 중요한 요소가 있습니다:
총 서명자는 몇 명인가요?
행동을 승인하기 위해 최소 몇 명의 서명자가 필요한가요?
이것은 두 개의 숫자에 불과한 사소한 문제처럼 보이지만, 균형 잡힌 행동을 고려해야 합니다:
안전 위반: K명의 구성원이 공모하여 스마트 계약을 변경하고 사용자 자금을 훔칠 수 있습니다.
활성 위반: N-K+1명의 구성원이 공모하여 스마트 계약에 대한 모든 변경을 차단할 수 있으며, 심각한 취약점이 발견되면 문제가 더욱 심각해집니다.
어려운 점은 평화로운 시기에 자금의 안전을 유지하면서 긴급 상황에서 사용자 자금이 위협받을 때 신속하게 조치를 취할 수 있는 임계값을 결정하는 것입니다.
구체적인 예를 고려해 보겠습니다. 임계값이 9/10으로 설정되어 있다고 가정해 보겠습니다. 이 경우 9명의 서명자가 함께 메시지에 서명해야 합니다. 이는 매우 엄격한 보안 임계값입니다. 왜냐하면 9명의 서명자가 공모해야만 자금을 훔칠 수 있기 때문입니다. 그러나 단점은 두 명의 서명자가 긴급 상황에서 어떤 조치도 차단할 수 있다는 것입니다. 예를 들어, 두 명의 서명자가 대서양을 가로지르는 비행기를 타고 멀리 여행 중이라면 안전 위원회는 그들의 책임을 다할 수 없습니다.
물론, 안전 임계값이 낮다면, 예를 들어 2/10이라면, 임의의 두 서명자가 공모하거나 개인 키가 유출되기만 하면 사용자 자금이 도난당할 수 있습니다.
한 사람의 신뢰성에 대한 평가는 시간이 지남에 따라 변할 수 있습니다.
적절한 임계값을 선택하는 것은 기술적 문제라기보다는 사회적 문제이며, 이는 과학보다는 예술에 가깝다고 생각합니다. 안전성은 개인 서명자의 신뢰성에 크게 의존합니다. 우리가 곧 보게 될 것처럼, 다중 서명에 대한 신뢰를 줄이는 방법이 있지만, 이는 일련의 절충을 가져옵니다.
안전 위원회 구성원
주요 Rollup이 모든 스마트 계약을 즉시 업그레이드하는 데 필요한 다중 서명 임계값
대부분의 Rollup은 안전 위원회에 익명의 서명자 그룹을 두고 있습니다. 우리는 이것이 다음과 같은 이유 때문일 것이라고 의심합니다:
Rollup의 개발 단계,
구성원의 신변 보호,
익명이 사용자 자금을 보호하는 최선의 선택이라고 생각함.
반면에, 세 개의 Rollup 프로젝트는 안전 위원회 구성원을 공개적으로 발표했습니다:
Arbitrum: 서명자는 공개 선거를 통해 선출되며, 현재 명단은 Tally에서 확인할 수 있습니다. 현재 Arbitrum 프로젝트와 관련된 서명자는 세 명뿐입니다(두 명은 Offchain Labs 출신, 한 명은 Arbitrum 재단 출신).
Base: 2/2 다중 서명, 하나는 Base가 제어하고, 다른 하나는 Optimism이 제어합니다.
Polygon zkEVM: 아직 시행되지 않았지만, 그들은 다중 서명을 10/13으로 업그레이드할 것이라고 발표했으며, 여기에는 Polygon Labs의 두 명의 구성원과 Polygon Labs의 한 명의 고문이 포함됩니다.
zkSync Lite: zkSync Lite는 zkSync Era와 구별되어야 하며, 그들의 안전 위원회는 공개적으로 발표되었으며 Rollup 프로젝트의 직접적인 부속 기관(zkSync의 투자자를 제외하고)은 포함되지 않습니다.
Arbitrum 및 곧 있을 Polygon에서는 Rollup 프로젝트와 직접 관련된 서명자가 소수이며, 부속 기관이 안전 위원회의 조치를 차단할 수 없도록 충분히 적은 수입니다. zkSync Lite에서는 zkSync의 투자자를 제외하고 프로젝트와 독립적인 서명자를 임명했습니다.
모든 경우에 Rollup은 프로젝트와 직접적인 관계가 없는 서명자를 매우 중요하게 생각합니다.
그러나 좋은 다중 서명을 구성하는 방법에 대한 합의가 부족한 것 같아 여러 가지 설계 문제를 야기합니다:
익명의 구성원을 허용해야 할까요?
구성원은 서로 다른 지역에서 와야 할까요?
구성원은 개인이어야 할까요, 아니면 회사여야 할까요?
구성원은 임명되어야 할까요, 아니면 선거를 통해 선출되어야 할까요?
동일한 회사(또는 국가)에서 몇 명의 구성원이 허용되어야 할까요?
적절하다고 여겨지는 최소 규모와 임계값이 존재할까요?
일반적인 경험 법칙은 시스템의 안전성에 대한 대중의 신뢰를 보장하기 위해 높은 신뢰성을 가진 구성원을 선택하는 것입니다. 적어도, 나는 대부분의 프로젝트가 그렇게 할 것이라고 믿습니다. 비록 그것이 항상 공개적으로 검증될 수는 없지만 말입니다.
주목: Arbitrum 안전 위원회의 여섯 명의 구성원은 현재 미리 임명되었지만, 그들은 3월의 선거에서 교체될 것입니다.
위원회의 권한 약화
지금까지 우리는 스마트 계약을 즉시 업그레이드할 권한이 있는 위원회에 대해서만 고려했지만, 위원회의 권한을 제한할 수 있는 몇 가지 방법이 있습니다:
시간 지연(Time delay). 위원회가 승인한 모든 작업은 시간 T가 경과한 후에만 실행되고 효력을 발생합니다.
일시 중지 전용(Pause-only). 원주율 크로스 체인 브리지가 보유한 모든 자산은 위원회에 의해 동결될 수 있습니다. 이는 다음 기능을 일시 중지할 수 있습니다:
L2에서 L1으로 메시지를 전달(즉, 인출),
보류 중인 거래의 정렬 완료,
새로운 체크포인트/증명 완료,
새로운 Rollup 데이터 수신(즉, 보류 중인 거래).
위원회 우회(Removed). 위원회를 포기하고 DAO와 같은 다른 거버넌스 메커니즘에 의존하여 업그레이드를 승인합니다.
물론, 이는 위원회가 신속하게 조치를 취할 수 있는 능력과 사용자 자금을 위협하는 긴급 상황에 효과적으로 대응할 수 있는 능력을 제한합니다.
취약점이 위원회에 비공식적으로 공개되었지만 해커가 이를 이용하지 않은 경우, 안전 위원회는 스마트 계약을 업그레이드하고 버그를 수정할 수 있습니다. 업그레이드에 시간 지연을 추가하면 공격자가 공개적으로 공개된 업그레이드를 연구하고 취약점을 찾아 이를 이용할 위험이 증가합니다.
예를 들어, 비트코인에서 CVE-2018-17144는 처음에 DDoS 취약점으로 홍보되었으며, 더 심각한 토큰 인플레이션 취약점을 숨기려는 시도가 있었습니다. 업그레이드 속도는 이를 이용하는 것을 방지하는 데 매우 중요합니다.
일시 중지 메커니즘의 방어 능력 평가
공격자가 취약점을 적극적으로 이용하는 잠재적 시나리오를 고려해 보겠습니다:
악의적인 L2 → L1 메시지. 공격자는 Rollup의 스마트 계약에서 유래한 임의의 메시지를 생성하고 이를 원주율 크로스 체인 브리지를 통해 이더리움의 스마트 계약으로 전달할 수 있습니다.
무효 상태 전환. 공격자는 Rollup에서 상태 전환 함수 규칙을 위반하는 거래를 실행할 수 있으며, 이는 일반적으로 무효로 간주되어야 합니다.
인출 취약점. 공격자는 이더리움(1층)에서 거래를 발행하기만 하면 원주율 크로스 체인 브리지에서 자금을 인출할 수 있습니다.
이 세 가지 경우에서 시간 지연은 공격자가 자금을 계속 훔칠 수 있는 시간을 더 많이 제공할 뿐이며, 위원회가 시스템을 방어할 기회를 줄입니다. 지연 기능은 적극적인 공격을 방어할 수 없으며, 일상적인 유지 관리 및 긴급하지 않은 작업에만 사용할 수 있습니다.
우리는 일시 중지 시스템의 능력과 시스템이 일시 중지될 수 있는 정도만 평가할 것입니다.
악의적인 L2 → L1 메시지의 경우, 일시 중지 기능은 거래 활동에 방해가 되지 않으면서 공격을 완화할 수 있습니다. 위원회는 메시지 전달 및/또는 새로운 체크포인트의 최종화 기능을 일시 중지해야 합니다. L2 → L1 메시지가 실행되기 전에 시간 지연이 있어야 한다는 의견이 있으며, 이는 위원회가 오류를 감지하고 긴급 상황에 대응할 시간을 제공하기 위함입니다.
무효 상태 전환을 방어하는 것은 더욱 까다롭습니다. 왜냐하면 거래의 최종성이 Rollup에서 다른 층을 가지기 때문입니다. Rollup 거래만 고려하고 부작용을 고려하지 않는다면, 안전 위원회의 최선의 방어는 체크포인트 최종화 능력을 중단하는 것이지만 거래 정렬은 계속 허용하는 것입니다. 이는 오류를 수정하고 체크포인트 완료를 재활성화하며 무효 거래를 단순히 무시할 시간을 남길 수 있습니다.
그러나 Rollup의 거래 활동을 중단하지 않으면 사용자 경험이 매우 혼란스러워질 것이며, Rollup은 클라이언트 소프트웨어가 업그레이드될 때까지 심각하게 손상된 상태가 될 수 있습니다.
이것은 다음 시나리오로 이어집니다. Rollup의 무효 거래가 다른 시스템에 어떻게 영향을 미칠 수 있는지 고려할 때, 위원회는 어떻게 반응해야 할까요? 최선의 방어선은 원주율 크로스 체인 브리지의 거래 정렬 최종화 능력을 동결하거나 정렬기를 완전히 중단하는 것입니다.
이는 자금을 하나의 Rollup에서 다른 Rollup으로 전송하는 빠른 크로스 체인 브리지와 같은 특정 시스템이 Rollup의 거래(무효 거래 포함)가 정렬되었다고 판단할 경우 자금 전송을 승인할 수 있기 때문입니다. 이 예에서 공격자는 Rollup의 DeFi 프로토콜을 이용하고, 빠른 크로스 체인 브리지를 통해 다른 Rollup으로 자금을 신속하게 전송할 수 있습니다.
위원회가 취약점을 수정하고 무효 거래를 복구할 때, 피해는 이미 발생했을 수 있습니다. DeFi 프로토콜이나 크로스 체인 브리지의 LP는 공격으로 인한 손실을 감당해야 할 수 있습니다.
마지막으로, 해당 취약점이 공격자가 원주율 크로스 체인 브리지에서 직접 자금을 인출할 수 있게 허용한다면, Nomad Hack과 유사하게 안전 위원회는 이를 막을 수 없을 것입니다.
일시 중지 메커니즘에는 궁극적인 전반적인 문제가 존재합니다. 우리는 Rollup을 업그레이드하고 재활성화할 수 있는 더 넓은 거버넌스 시스템이 존재한다고 가정해야 합니다. 만약 거버넌스 시스템이 Rollup에서 운영되는 온체인 투표 시스템을 갖춘 DAO라면, 구현상의 까다로운 문제가 발생합니다.
예를 들어, L2→L1 메시지 크로스 체인 브리지가 일시 중지되면, DAO의 투표 결과가 Rollup에서 이더리움의 원주율 크로스 체인 브리지로 전달될 수 없으며, DAO가 승인 정보를 보내고 업그레이드를 실행할 수 있는 대체 방법이 필요합니다.
안전 위원회 점진적 해체
커뮤니티 내에서는 안전 위원회를 점진적으로 해체해야 한다고 주장하는 사람들이 있지만, 제 생각에는 두 가지 문제가 발생합니다:
잘못된 안전 감각. 취약점을 이용할 공격자는 안전 위원회가 점진적으로 해체된 후 공격을 실행할 것입니다. 시간이 지남에 따라 이는 시스템 안전성에 대한 신뢰를 약화시킬 것입니다.
복구 옵션이 제한됨. 안전 위원회가 없다면, 커뮤니티는 공격자에 맞서 반격할 수 없습니다. 유일한 선택은 평행한 화이트 해커 공격을 수행하고 일부 자금을 되찾기를 희망하는 것입니다.
저는 안전 위원회가 항상 필요하다고 생각하지만, 그들에게 부여된 권한은 점진적으로 축소되어야 한다고 믿습니다.
이를 염두에 두고, 설계 문제는 다음과 같아야 합니다:
사용자에게 미치는 영향을 최소화하면서 안전 위원회가 시스템을 일시 중지할 수 있도록 하면서, 더 넓은 커뮤니티가 오류를 수정하고 시스템을 재활성화하는 방법을 결정하는 데 참여할 수 있도록 하려면 어떻게 해야 할까요?
다시 말해, 우리는 커뮤니티가 개입하고 시스템을 복구할 수 있도록 진정으로 허용하는 계획이 필요하며, 그 후에 안전 위원회의 일시 중지 권한을 제한해야 합니다.
Layer 1 블록체인 분야에서는 커뮤니티가 사용자 활성화 분기를 사용하여 직접 합의에 도달할 수 있지만, 이 방법은 Rollup과 같은 이더리움의 스마트 계약에는 적용되지 않습니다. 왜냐하면 전체 이더리움을 분기할 필요가 없기 때문입니다. 특정 경우에 이더리움 커뮤니티는 Rollup을 보존하기로 집단적으로 결정할 수 있지만, 2016년 TheDAO와 같이 Rollup은 이러한 결과에 의존하거나 기대해서는 안 됩니다.
이러한 생각을 바탕으로 또 다른 흥미로운 아이디어는 이더리움 대법원을 구현하여 스마트 계약 업그레이드를 결정하고 사용자 활성화 분기와 유사한 기능을 활성화하는 것입니다.
앞서 언급했듯이, Rollup이 그 안전성을 DAO에 위임한다면, DAO가 이더리움에서 직접 투표할 수 있도록 하는 구현이 있어야 합니다. 이는 특히 투표 프로토콜이 Rollup에 존재할 경우 매우 까다롭습니다.
마지막으로, 안전 위원회가 반응해야 할 수 있는 상황 유형에 대한 포괄적인 검토가 필요하다고 생각하며, 이는 그 필요성에 대한 논의를 돕는 데 기여할 것입니다.
다중 서명이 있다면 왜 Rollup을 걱정해야 할까요?
우리는 안전 위원회의 책임, 설계 및 요구 사항을 이해하는 데 상당한 시간을 보냈지만, 중요한 것은 본문의 처음 질문으로 돌아가는 것입니다:
Rollup은 단순히 다중 서명인가요?
답은 아닙니다.
이해를 돕기 위해 한 걸음 물러서서 블록체인 시스템이 실제로 무엇을 하고자 하는지를 이해하는 것이 좋습니다.
블록체인 프로토콜은 사용자가 데이터베이스의 복사본을 계산하고, 그들이 다른 사람들과 동일한 데이터베이스를 가지고 있다는 것을 확신할 수 있도록 하는 도구입니다.
이 점을 고려할 때, 모든 블록체인 시스템은 두 가지 구성 요소를 가지고 있습니다:
블록체인 프로토콜. 소프트웨어, 암호학 및 분산 시스템의 조합으로, 누구나 데이터베이스의 무결성에 대해 확신할 수 있게 합니다.
거버넌스 시스템. 모든 이해관계자가 협력하여 블록체인 프로토콜을 변경하는 데 동의할 수 있는 조정 메커니즘입니다.
모든 블록체인 시스템(롤업 포함)의 목표는 블록체인 프로토콜이 항상 99.9999%의 극도로 신뢰할 수 있는 가동 시간을 유지하도록 하는 것입니다. 신뢰할 수 있는 시스템 운영자는 시스템의 일상적인 운영에 거의 간섭하지 않아야 합니다. 사용자 잔액, 스마트 계약 코드 및 상태를 보호하는 최종 책임은 소프트웨어, 암호학 및 분산 시스템에 있어야 합니다.
때때로 블록체인 프로토콜을 변경하여 사용자에게 이익을 주어야 할 필요가 있습니다. 커뮤니티는 구성 문제를 수정하거나 새로운 기능을 추가하거나 시스템 무결성을 위협하는 주요 취약점에 대응하고자 할 수 있습니다. 이는 인위적인 개입이 필요하며, 0.0001%의 시간 내에만 호출될 수 있습니다.
거버넌스 시스템은 인위적인 개입을 구현하는 책임이 있으며, 수년 동안 여러 가지 방법이 등장했습니다:
중앙집권적 정당: 단독으로 시스템을 업그레이드하는 방법을 결정할 수 있습니다(비트코인을 포함한 많은 프로젝트가 이러한 방식으로 시작되었습니다).
대략적인 합의: 대부분의 참여자가 업그레이드를 배포할 준비가 되었음을 나타내고, 기준일을 정한 다음 그 날에 업그레이드를 실행합니다(비트코인/이더리움).
투표 프로토콜: 각 당사자가 선거에 참여하고 업그레이드를 승인할지 여부를 명확히 투표합니다.
간섭할 수 없음: 스마트 계약은 불변할 수 있으며, 시스템은 영원히 변경될 수 없습니다.
위의 내용 외에도, 커뮤니티는 긴급 상황에서 신속하게 조치를 취하기 위해 거버넌스의 보완 옵션으로 안전 위원회를 임명할 수 있습니다.
안전 위원회는 공격을 방지하지 않습니다. 이는 수동적인 메커니즘으로, 블록체인 프로토콜의 사용자 자금이나 시스템의 신뢰성/성능이 공격받을 때 거버넌스와 함께 작동합니다.
마지막으로
블록체인 프로토콜, 거버넌스 및 안전 위원회에 대한 모든 논의는 매우 중요합니다. 이러한 논의의 존재는 암호화폐를 특별하게 만듭니다.
이는 신뢰 공학의 훌륭한 예입니다: 시스템 내 신뢰 요소를 식별, 측정 및 줄이거나 제거하는 데 초점을 맞춘 공학 분야입니다.
암호화폐에서 우리는 사용자들을 강력한 시스템 운영자로부터 보호할 수 있을 뿐만 아니라, 가장 불리한 조건에서도 시스템이 신뢰할 수 있게(안전하게) 작동할 수 있도록 하는 시스템을 구축하는 데 집중하고 있습니다.
따라서 커뮤니티 구성원이 안전 위원회의 역할에 대해 회의적인 태도를 유지하는 것은 건강한 일이지만, 그들은 긴급 상황 동안 사용자 자금을 수동적으로 보호하기 위해 더 나은 해결책을 제시할 책임이 있습니다.
이 글이 안전 위원회가 유용한 이유와 오늘날 그들이 필요한 이유를 명확히 설명할 수 있기를 바랍니다. 그러나 그들은 또한 스마트 계약 시스템의 더 넓은 아키텍처의 일부분일 뿐입니다.