블라스트에서 레이어2 다중 서명 백도어: 기술과 사회적 합의 중 어느 것이 더 중요한가?

극한 웹3
2023-11-26 20:32:50
수집
기술이 물론 중요하지만, 사회적 합의가 Web3의 기초입니다. 단순히 기술이 뛰어난지 여부만을 추구하는 것은 본말이 전도된 것입니다.

撰文:Faust,극객 Web3

导语:Blast가 Polygon zkEVM과 같은 정통 Layer2에 직면했을 때의 잠재적 메시지는 아마도 "왕후장상, 능유종乎?"일 것입니다. 모두가 충분히 탈중앙화되지 않았고, 본질적으로 사회적 합의에 의해 안전이 보장되는데, 왜 Blast의 Layer2 농도가 충분하지 않다고 비난해야 할까요? "서로를 너무 급하게 비난하지 말자"는 것이죠.

확실히, Blast가 3/5 다중 서명을 통해 충전 주소를 제어하는 것은 널리 비판받고 있지만, 대부분의 Layer2도 다중 서명을 통해 계약을 관리합니다. 이전에 Optimism은 단 하나의 EOA 주소로 계약 업그레이드 권한을 제어하기도 했습니다. 현재 주류 Layer2에서 다중 서명 등 보안 취약점이 존재하는 상황에서, Blast가 충분히 안전하지 않다고 비난하는 것은 기술 엘리트들이 금전적 프로젝트에 대해 "경시"하는 것처럼 보입니다.

하지만 위의 두 가지 중 어느 것이 더 우수한지를 떠나, 블록체인의 존재 의미는 사회적 합의/민주적 거버넌스에서 정보 불투명 문제를 해결하는 데 더 있습니다. 기술 우선주의를 주장할 때, 우리는 사회적 합의가 기술보다 더 중요하다는 것을 인정해야 합니다. 왜냐하면 그것이 모든 Web3 프로젝트의 효과적인 운영을 보장하는 기초이기 때문입니다. 결국, 기술은 사회적 합의를 위해 존재하며, 대다수 사람들이 인정하지 않는 프로젝트는 기술이 아무리 우수하더라도 본질적으로는 화려한 맹장에 불과합니다.

正文:최근 Blur 창립자가 출시한 새로운 프로젝트 Blast가 전 세계적으로 큰 인기를 끌고 있습니다. Layer2라는 깃발을 내건 이 "자산 생식" 프로토콜은 ETH 체인에 충전 주소를 설정하여, 사용자가 자금을 Blast 주소에 입금하면 이 자금은 ETH 네트워크의 원주질을 위한 스테이킹, MakerDAO에 넣어 이자를 얻는 데 사용되며, 얻은 이익은 사용자에게 반환됩니다.

창립자의 개인적인 매력과 매력적인 게임 방식 덕분에, Blast는 Paradigm을 비롯한 투자자들로부터 2000만 달러의 자금을 유치했으며, 수많은 소액 투자자들의 참여를 끌어냈습니다. 출시된 지 5일도 안 되어 Blast의 충전 주소가 유치한 TVL은 4억 달러를 초과했습니다. 과장하지 않고 말하자면, Blast는 긴 겨울의 시장에서 사람들의 열정을 즉각적으로 불러일으킨 강력한 약과도 같습니다.

하지만 Blast는 단계적인 성공을 거두는 동시에 많은 전문가들의 의문을 불러일으켰습니다. 예를 들어, L2BEAT와 Polygon 엔지니어는 현재의 Blast가 단지 이더리움에 충전을 받기 위한 Deposit 계약을 배포했을 뿐이라고 지적했습니다. 이 계약은 3/5 다중 서명의 통제 하에 업그레이드될 수 있으며, 다시 말해 계약의 코드 논리가 변경될 수 있어, 원한다면 Rug를 할 수 있습니다. 동시에, Blast는 Rollup 구조를 구현하겠다고 자칭하지만, 현재의 Blast는 단지 빈 껍데기에 불과하며, 출금 기능조차 내년 2월까지 기다려야 합니다.

Blast는 또한 대다수 Rollup이 다중 서명 관리 계약을 통해 업그레이드 권한을 부여받고 있다는 점을 강조하며, 다른 Layer2가 "Blast는 다중 서명을 사용한다"고 비난하는 것은 그저 오십보백보에 불과하다고 주장했습니다.

Layer2 다중 서명은 오랜 문제

사실, Layer2 계약의 다중 서명은 오랜 문제입니다. 올해 7월, L2BEAT는 Rollup 계약의 업그레이드 가능성에 대한 특별 조사를 진행했습니다. 이른바 "업그레이드 가능성"이란, 프록시 계약이 지시하는 논리 계약 주소를 변경하여 계약 논리를 변경하는 효과를 얻는 것입니다. 만약 변경된 새로운 계약에 악의적인 논리가 포함된다면, Layer2 공식은 사용자의 자산을 도둑질할 수 있습니다.

출처: wtf academy

L2BEAT의 데이터에 따르면, 현재 Arbitrum, Optimism, Loopring, ZKSync Lite, ZkSync Era, Starknet, Polygon ZKEVM 등 주요 Rollup은 모두 다중 서명 권한을 가진 업그레이드 가능한 계약을 채택하고 있으며, 시간 잠금 제한을 우회하여 즉시 업그레이드할 수 있습니다. (극객 web3의 이전 기사도 읽어보세요: 신뢰의 게임: 다중 서명과 위원회에 의해 조작되는 Rollup들

놀라운 것은, Optimism은 과거에 단 하나의 EOA 주소로 계약 업그레이드를 관리했으며, 다중 서명은 올해 10월에 추가되었습니다. Blast에 대한 비난을 펼친 Polygon zkEVM도 6/8 다중 서명 권한 하에 Rollup 계약을 "긴급 인수"할 수 있으며, Layer2의 계약 거버넌스를 "노골적인 인위적 통치"로 전환할 수 있습니다. 흥미롭게도, 위에서 Blast를 비판한 Polygon 엔지니어도 이 점을 언급했지만, 모호하게 표현했습니다.

그렇다면 이러한 "긴급 모드"의 존재 의미는 무엇일까요? 왜 대부분의 Rollup은 자신에게 긴급 버튼이나 뒷문을 남겨두어야 할까요? Vitalik의 이전 발언에 따르면, Rollup은 ETH에 배포된 계약을 자주 업데이트해야 하며, 프록시 계약 등 업그레이드 수단을 도입하지 않으면 효율적인 반복이 어렵습니다.

또한, 많은 자산을 보유한 스마트 계약은 쉽게 발견되지 않는 버그가 존재할 수 있으며, Layer2 개발 팀은 불가피하게 소홀해질 수 있습니다. 만약 어떤 취약점이 해커에 의해 악용된다면, 대량의 자산이 도난당할 수 있습니다. 따라서 Layer2든 DeFi 프로토콜이든, 종종 긴급 버튼을 설정하여 필요할 때 "위원회 구성원"이 개입하여 악성 사건이 발생하는 것을 방지합니다.

물론, Layer2가 설정한 위원회는 종종 시간 잠금 제한을 우회하여 즉시 계약 코드를 업그레이드할 수 있습니다. 어떤 관점에서 보면, 그들은 해커와 같은 외부 요인보다 더 두려운 존재인 것 같습니다. 또는, 어떤 경우든 대량의 자산을 보유한 스마트 계약은 어느 정도의 "신뢰 가정"에서 벗어날 수 없습니다. 즉, 계약 뒤에 있는 다중 서명 제어자가 악의적이지 않다고 가정하는 것입니다. 계약이 업그레이드 불가능하도록 설계되지 않고, 사용자 자산 안전을 위협할 수 있는 버그가 존재하지 않는 한 말이죠.

실제 상황은 현재의 주류 Layer2가 자신이 설정한 위원회가 즉시 계약을 업데이트하도록 허용하거나, 비교적 짧은 시간 잠금 제한을 도입하고 있다는 것입니다(예: dYdX 계약을 업그레이드하려면 최소 48시간의 지연이 필요합니다). 사람들이 위원회가 새로운 계약 코드에 자산을 도둑질할 악의적인 논리를 섞으려 한다는 것을 발견하면, 이론적으로 사용자에게는 Layer1에서 자산을 긴급히 철수할 충분한 반응 시간이 있습니다.

(강제 출금 및 탈출 기능에 대한 자세한 내용은 이전 기사 "Layer2에 대해, 강제 출금 및 탈출 기능이 얼마나 중요한가?"를 읽어보세요.)

(시간 잠금은 일정 시간 지연 후 특정 작업을 수행할 수 있도록 허용하는 것입니다.)

하지만 문제의 핵심은 많은 Layer2가 Sequencer 정렬기를 우회할 수 있는 강제 출금 기능조차 설정하지 않았다는 것입니다. 이러한 Layer2 공식이 악의적 행동을 하려면, 먼저 정렬기가 모든 사람의 출금 요청을 거부하게 하고, 이후 사용자의 자산을 Layer2 공식이 제어하는 L2 계좌로 전환할 수 있습니다. 그 후 공식은 자신의 필요에 따라 Rollup 계약을 업데이트하고, 시간 잠금 지연이 끝난 후 사용자 자산을 모두 ETH 체인으로 전송할 수 있습니다.

물론, 실제 상황은 제가 말한 것보다 더 나쁠 수 있습니다. 왜냐하면 대부분의 Rollup 공식은 시간 잠금 제한 없이 계약을 업그레이드할 수 있기 때문입니다. 즉, 수억 달러의 Rug를 순식간에 완료할 수 있습니다.

진정한 탈중앙화 Layer2는 계약 업그레이드 지연이 강제 출금 지연보다 길어야 한다

사실, Layer2의 탈중앙화/안전 문제를 해결하기 위해서는 다음과 같은 몇 가지 일을 해야 합니다:

Layer1에 검열 저항 출금 출구를 설정하여, 사용자가 정렬기 허가 없이 직접 Layer2에서 ETH 체인으로 자산을 이동할 수 있도록 해야 합니다. 강제 출금의 지연은 너무 길지 않아야 하며, 이를 통해 사용자의 자산이 빠르게 L2에서 철수될 수 있도록 해야 합니다.

누구든지 Layer2 계약을 업그레이드하려면 시간 잠금 지연 제한을 받아야 하며, 계약 업그레이드는 강제 출금이 발효된 후에 이루어져야 합니다. 예를 들어, 현재 dYdX의 계약 업그레이드는 최소 48시간의 지연이 필요하므로, 강제 출금/탈출 모드의 발효 지연은 48시간 이내로 낮춰야 합니다. 이렇게 하면 사용자가 dYdX 프로젝트 측이 새로운 계약에 악의적인 코드를 섞으려 한다는 것을 발견하면, 계약 업데이트 전에 자산을 Layer2에서 철수할 수 있습니다.

현재 대부분의 강제 출금/탈출 모드를 도입한 Rollup은 위의 조건을 충족하지 않습니다. 예를 들어, dYdX의 강제 출금/탈출 모드는 최대 7일의 지연이 있지만, dYdX 위원회의 계약 업그레이드 지연은 단 48시간입니다. 즉, 위원회는 사용자의 강제 출금이 발효되기 전에 새로운 계약을 배포할 수 있으며, 사용자가 도망치기 전에 자산을 도둑질할 수 있습니다.

이 관점에서 보면, Fuel, ZKSpace, DeGate 외의 다른 Rollup은 계약 업그레이드 전에 사용자의 강제 출금을 처리할 수 없으며, 높은 수준의 신뢰 가정을 가지고 있습니다.

많은 Validium 솔루션(DA가 이더리움 체인 외부에서 구현됨)을 채택한 프로젝트는 긴 계약 업그레이드 지연(예: 8일 이상)을 가지고 있지만, Validium은 종종 체인 외부의 DAC 노드에 최신 데이터를 게시하는 데 의존합니다. DAC는 데이터 억제 공격을 감행할 수 있어 강제 출금 기능이 무효화될 수 있으므로, 위에서 논의한 안전 모델에 부합하지 않습니다. (과거 기사 "Validium 해고? Danksharding 제안자의 시각에서 Layer2 재해석하기"를 읽어보세요.)

여기까지 오면, 우리는 간단명료하게 결론을 내릴 수 있을 것 같습니다: Fuel, ZKSpace, DeGate 외의 Layer2 솔루션은 탈중앙화가 아닙니다. 사용자는 Layer2 프로젝트 측이나 그들이 설정한 안전 위원회가 악의적이지 않다고 믿거나, 체인 외부의 DAC 노드가 공모하지 않는다고 믿거나, 정렬기가 당신의 거래를 검열하지 않을 것이라고 믿어야 합니다(당신의 요청을 거부하지 않을 것). 진정으로 안전하고 검열 저항적이며 탈중앙화된 Layer2는 현재 위의 3개뿐입니다.

안전은 기술적 구현만으로 이루어지지 않으며, 사회적 합의를 도입해야 한다

사실, 오늘 우리가 논의하는 주제는 새롭지 않습니다. 본문에서 지적한 Layer2가 본질적으로 프로젝트 측의 신뢰에 의존한다는 것은 이미 수많은 사람들이 지적해왔습니다. 예를 들어, Avalanche와 Solana의 창립자들은 이에 대해 강력히 비판한 바 있습니다. 하지만 문제는 Layer2에 존재하는 이러한 신뢰 가정이 Layer1 및 모든 블록체인 프로젝트에도 똑같이 존재한다는 것입니다.

예를 들어, 우리는 Solana 네트워크에서 2/3의 스테이킹 권한을 가진 Validator 노드가 공모하지 않는다고 가정해야 하며, 비트코인의 대부분의 해시 파워를 차지하는 두 개의 주요 채굴 풀이 결합하여 51% 공격을 감행해 가장 긴 체인을 롤백하지 않을 것이라고 가정해야 합니다. 이러한 가정은 쉽게 깨지기 어렵지만, "어렵다"는 것이 "불가능하다"는 것을 의미하지는 않습니다.

전통적인 Layer1 공공 블록체인에서 대량의 사용자 자산이 손실되는 악의적인 행동이 발생하면, 마지막에는 사회적 합의의 방식으로 문제가 있는 체인을 폐기하고 새로운 체인을 포크하는 경우가 많습니다(2016년 The DAO 사건으로 이더리움이 ETH와 ETC로 포크된 것을 참조). 누군가 악의적으로 포크를 시도하면, 사람들은 사회적 합의를 통해 어떤 "더 신뢰할 수 있는" 포크를 따를지를 선택해야 합니다(예: 대부분의 사람들은 ETHW 프로젝트 측을 따르지 않았습니다).

사회적 합의는 블록체인 프로젝트와 그들이 지탱하는 DeFi 프로토콜이 질서 있게 운영될 수 있도록 보장하는 근본적인 요소입니다. 계약 코드 감사, 커뮤니티 구성원이 특정 프로젝트의 문제를 공개하는 등의 오류 수정 메커니즘도 사회적 합의의 일환입니다. 단순히 기술에 의존하여 탈중앙화를 이루려는 것은 종종 최대의 효과를 발휘하지 못하며, 많은 경우 이론적 수준에 머물러 있습니다.

실제로 중요한 순간에 작용하는 것은 기술과는 무관한 사회적 합의이며, 학술 논문과는 무관한 여론 감시, 기술 서사와는 무관한 대중의 인정입니다.

우리는 다음과 같은 상황을 상상해볼 수 있습니다: 몇백 명만이 들어본 POW 공공 블록체인이 일시적으로 고도로 탈중앙화된 상태에 있습니다. 왜냐하면 아직 독점적인 상황이 발생하지 않았기 때문입니다. 하지만 어떤 채굴기 기업이 갑자기 자신의 해시 파워를 모두 해당 POW 체인에 투입하면, 그 한 사람의 해시 파워가 다른 모든 채굴자의 해시 파워보다 훨씬 높아지게 됩니다. 이때 이 POW 체인의 탈중앙화는 즉시 무너질 것입니다. 만약 그 채굴기 기업이 악의적 행동을 하려 한다면, 사람들은 사회적 합의를 통해 오류를 수정해야만 합니다.

반면에, 소위 Layer2는 그 메커니즘 설계가 아무리 정교하더라도 사회적 합의의 고리를 피할 수 없습니다. 심지어 Fuel, DeGate, ZKSpace와 같은 공식적으로 거의 악의적 행동을 할 수 없는 L2조차도 그들이 의존하는 Layer1- 이더리움 자체가 사회적 합의/커뮤니티-여론 감시를 고도로 의존하고 있습니다.

더욱이 우리가 생각하는 계약의 불가 업그레이드는 계약 감사 기관 및 L2BEAT의 주장을 믿는 것입니다. 하지만 이러한 기관은 소홀할 수 있거나 거짓말을 할 가능성이 있습니다. 비록 이러한 확률이 극히 낮지만, 우리는 여전히 그들에게 미세한 신뢰 가정을 도입하고 있다는 것을 인정해야 합니다.

하지만 블록체인 자체의 데이터 오픈 속성은 누구나, 심지어 해커도 계약에 악의적인 논리가 포함되어 있는지를 검사할 수 있게 하여, 사실상 신뢰 가정을 최소화했습니다. 이는 사회적 합의의 비용을 크게 줄였습니다. 이러한 비용이 충분히 낮아지면, 우리는 이를 "탈중앙화"로 간주할 수 있습니다.

물론, 위에서 언급한 세 곳 외의 다른 Layer2는 사실상 탈중앙화가 없으며, 진정으로 중요한 순간에 안전성을 보장하는 것은 여전히 사회적 합의입니다. 기술 요소는 많은 경우 사람들이 사회적 합의를 감시하는 데 편리할 뿐입니다. 만약 어떤 프로젝트의 기술이 매우 우수하지만, 광범위한 인정을 받지 못하고 대규모 커뮤니티를 끌어들이지 못한다면, 그 프로젝트의 탈중앙화 거버넌스와 사회적 합의도 효과적으로 전개되기 어렵습니다.

기술은 확실히 중요하지만, 더 많은 경우 광범위한 인정을 받을 수 있는지, 강력한 커뮤니티 문화를 발전시킬 수 있는지가 기술보다 더 중요하고, 더 가치 있으며, 프로젝트 발전에 더 유리한 요소입니다.

우리는 zkRollup을 예로 들어볼 수 있습니다. 현재 많은 zkRollup은 유효성 증명 시스템과 DA 데이터를 체인에 올리는 것만 구현하고 있습니다. 이는 외부에 대해 자신이 처리한 사용자 거래와 모든 전송이 유효하다는 것을 증명할 수 있으며, 정렬기가 위조한 것이 아님을 보장합니다. "상태 전환"에 있어서는 악의적이지 않지만, Layer2 공식이나 정렬기가 악의적 행동을 할 수 있는 상황은 이 하나뿐만이 아닙니다.

우리는 ZK 증명 시스템이 본질적으로 사람들이 Layer2를 감시하는 비용을 극대화로 줄였다고 근사적으로 생각할 수 있지만, 많은 문제는 기술 자체로 해결할 수 없으며, 반드시 인위적 통치나 사회적 합의의 개입이 필요합니다.

만약 L2 공식이 강제 출금 등 검열 저항 출구를 설정하지 않거나, 공식이 계약을 업그레이드하려고 하면서 사용자 자산을 도둑질할 수 있는 논리를 섞으려 한다면, 커뮤니티 구성원은 사회적 합의와 여론의 발효에 의존하여 오류를 수정해야 합니다. 이 순간, 기술의 우수성이 더 이상 가장 중요한 것이 아닌 것 같습니다. 안전을 위해 기술이 중요한지 여부보다, 사람들이 사회적 합의를 전개할 수 있는 메커니즘 설계 자체가 더 중요하다는 것입니다. 이것이 사실 Layer2와 블록체인의 진정한 의미입니다.

사회적 합의에 의존하는 Blast를 통해 우리는 사회적 합의와 기술적 구현 간의 관계를 보다 직접적으로 바라봐야 하며, 단순히 "어느 L2가 Vitalik이 말한 Layer2에 더 가까운가"에 따라 프로젝트의 우열을 판단해서는 안 됩니다. 어떤 프로젝트가 수백만 명의 인정을 받고 주목을 받게 되면, 사회적 합의는 이미 형성된 것입니다. 마케팅이나 기술 서사와는 무관하게, 결과 자체가 과정보다 더 중요하기 때문입니다.

확실히, 사회적 합제는 민주 정치의 연장선이며, 현실 세계는 민주적 거버넌스의 결점을 증명해왔습니다. 하지만 블록체인이 본래 가지고 있는 오픈 소스와 데이터 투명성은 사회적 합제의 비용을 크게 줄였습니다. 따라서 Web3의 "인위적 통치"와 현실 주권 국가의 "인위적 통치"는 본질적으로 다릅니다.

우리가 블록체인을 정보 투명성 문제를 개선하기 위한 기술적 수단으로 보고, 단순히 영원히 도달할 수 없는 "코드만으로 구현된 신뢰"를 추구하지 않는다면, 모든 것이 훨씬 더 낙관적이고 명확해질 것입니다. 기술 엘리트들이 고착화한 오만과 편견에서 벗어나, 더 넓은 청중을 포용해야만 이더리움 Layer2 시스템이 진정으로 대중 채택의 세계적 금융 인프라가 될 수 있습니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축