계정 추상 지갑의 사용자 경험과 보안
서문:EIP-4337은 스마트 계약 지갑 및 관련 인프라를 표준화하여 공통 표준을 창출했습니다. 사용자 경험을 향상시키는 데 있어, 계정 추상화 지갑은 고급 가상 트랜잭션과 단계적 처리를 도입하여 더 유연하고 프로그래밍 가능한 기능을 제공합니다. 이는 지갑이 이더리움 핵심 프로토콜을 업데이트하지 않고도 업그레이드할 수 있도록 하며, 더 많은 사용자 정의 옵션을 제공합니다. 전반적으로 이더리움의 계정 추상화 지갑 솔루션은 사용자 경험과 기능 확장 측면에서 더 큰 잠재력을 가지고 있지만, 보안성 측면에서는 지속적인 개선이 필요합니다.
계정 추상화는 현재 초기 단계에 있으며, 채택률이 낮고, 많은 Layer 2가 계정 추상화를 지원하지 않아 이러한 제한이 사용자 학습 비용과 사용 비용을 증가시킵니다.
계정 추상화 지갑은 프록시 메커니즘을 도입하여 개인 지갑의 접근 장벽을 약화시키고, 더 간단하고 사용하기 쉬운 계정 시스템을 제공합니다. 이는 스마트 계약을 지갑의 매개체로 사용하고, 사용자와 스마트 계약 사이에 프록시를 추가하여 사용자가 블록체인과의 상호작용 과정을 완료하도록 돕습니다. 이렇게 하면 사용자는 전통적인 계정 시스템(예: 이메일, 휴대폰 등)을 사용하여 작업할 수 있으며, 복잡한 개념인 개인 키 및 니모닉 문구에 직접 접촉할 필요가 없습니다.
필자는 계정 추상화에서 보안성이 매우 중요하다고 생각합니다. 블록체인 거래의 불가역성과 변조 불가능한 특성으로 인해, 사용자의 계정이 공격받으면 회복할 수 없는 손실이 발생할 수 있습니다. 따라서 계정 추상화 지갑을 설계할 때는 계정 관리 및 사용, 개인 키 저장 및 보호, 거래 확인 및 승인 등 보안성의 모든 측면을 고려해야 합니다.
이번 Bing Ventures 연구는 계정 추상화 지갑 프로젝트의 보안 논리와 취약점을 분석하여 사용자 경험과 보안 간의 균형을 탐구하고, 지갑 추상화 솔루션의 미래 발전 방향을 고민하는 것을 목표로 합니다.
계정 추상화 지갑의 보안 논리
이더리움의 계정 추상화 분야에는 EIP-4337과 같은 여러 기술 개선 및 표준화 이니셔티브가 존재합니다. 이러한 제안은 계정 추상화 지갑 프로젝트의 발전과 통합을 촉진하여 사용자에게 더 일관되고 신뢰할 수 있는 사용 경험을 제공합니다. 계정 추상화의 발전 주선은 ERC-4337을 통해 합의 계층 프로토콜 변경이 필요 없는 방법을 제공하여 최상위 이더리움 거래가 계약에 의해 외부 소유 계정(EOA) 대신 시작될 수 있도록 하는 기능을 실현하는 것입니다. 이는 더 높은 계층의 시스템에서 거래 메모리 풀의 기능을 복제하여 사용자 작업의 검증 및 패키징을 수행하고, "번들 거래"로 이더리움 블록에 포함됩니다.
ERC-4337의 목표는 지갑의 유연성과 업그레이드 가능성을 실현하는 것으로, 다중 서명 및 사회적 복구와 같은 기능과 더 효율적이고 단순화된 서명 알고리즘 및 후량자 보안 서명 알고리즘을 포함합니다. 계정 추상화 지갑의 발전 주선은 또한 지갑 검증 논리의 유연성을 포함하여, 임의의 서명 및 nonce 검증 논리를 추가할 수 있으며, 지갑의 업그레이드를 지원합니다. 구체적인 보안 논리는 다음과 같습니다:
- 검증 논리:계정 추상화 지갑은 검증 논리(예: 서명 및 비세슘 비교 알고리즘)를 통해 사용자 작업의 합법성과 보안성을 보장합니다.
- 진입점 제어:지갑을 공격으로부터 보호하기 위해, 계정 추상화 지갑은 복잡한 스마트 계약 기술을 진입점 계약에 배치하고, 신뢰할 수 있는 진입점만이 지갑의 작업 및 비용 지불을 트리거할 수 있도록 제한합니다.
- 독립적인 검증 및 실행 계층:계정 추상화 지갑의 검증 및 실행은 두 개의 함수로 나뉘어, 각각 사용자 작업의 검증 및 실행 단계를 처리하여 보안성과 유연성을 높입니다.
- 시뮬레이션 실행 및 검증:사용자 작업의 검증은 시뮬레이션 실행을 통해 합법성을 확인할 수 있으며, 실제로 블록에 추가될 때 동일한 효과를 보장하여 잠재적인 DoS 공격을 방지합니다.
계정 추상화 지갑이 보안성과 탈중앙화에 대한 중요성을 강조하는 것은 매우 긍정적입니다. 다중 서명, 개인 키 저장 및 보호와 같은 기술 수단을 채택함으로써, 이러한 지갑 애플리케이션은 사용자 자산의 안전과 거래의 신뢰성을 보장하는 데 전념하고 있습니다. 그러나 이러한 보안 조치는 완전히 공격과 취약성에 면역이 아니므로 지속적인 연구와 개선이 필요합니다. 현재 시장의 초점은 여전히 기술 패러다임 자체에 있으며, 사용자 경험의 진정한 요구는 아닙니다.
추상 지갑의 보안 위험
개인 키 저장은 가장 일반적인 보안 취약점 중 하나입니다. 계정 추상화 지갑은 사용자의 개인 키가 안전한 장소에 저장되도록 보장하고, 무단 접근으로부터 개인 키를 보호하기 위한 적절한 조치를 취해야 합니다. 동시에, 네트워크 공격도 지갑 추상화에서 또 다른 주요 문제입니다. 공격자는 피싱, 악성 소프트웨어 또는 기타 수단을 이용하여 사용자의 개인 키를 획득하여 사용자의 디지털 자산을 탈취할 수 있습니다.
지갑은 계약을 통해 메모리 풀을 복제하여 거래를 처리하며, 사용자는 더 이상 직접 거래를 수행하지 않습니다. 사용자는 지갑을 통해 UserOperations를 더 높은 수준의 메모리 풀로 전송하며, 광부 또는 번들러가 이를 패키징하고 Entry Point 계약으로 전송하며, 지갑 CA의 실행을 조정하여 적절한 거래 비용 보상을 보장합니다. 이러한 솔루션은 특정 게이트웨이(Entry Point)에서 시작된 거래만 신뢰하도록 제한하여 지갑의 보안을 보장하며, 계약 내의 지시를 실행하고, 가스를 지불하며, nonce를 증가시키는 등의 작업을 통해 지갑의 작업을 완료합니다. 신뢰할 수 있는 Entry Point에서 시작하여, 계약 지갑은 다양한 지시 작업 및 가스 지불 등의 작업을 수행할 수 있어 더 높은 수준의 프로그래밍 가능성을 제공합니다.
이 방법은 전통적인 직접 거래 방식에 비해 거래 과정을 여러 단계로 나누어 추가적인 복잡성과 비용을 도입합니다. 합의 계층 프로토콜 변경 제안(예: EIP-2938, EIP-3074)과 비교하여, EIP-4337은 기본 프로토콜 및 거래 유형을 수정하지 않고도 상당한 수준의 계정 추상화를 실현했습니다. 그러나 이는 더 많은 가스 소비와 잠재적인 보안 취약점을 초래하기도 합니다. 또한 기존 지갑 프로토콜 작업 흐름과의 비호환성도 채택을 제한할 수 있습니다.
위의 보안 문제에 대해, 지갑 추상화 솔루션은 보안을 높이면서도 좋은 사용자 경험을 유지하기 위해 다양한 조치를 취할 수 있습니다. 예를 들어, 일부 솔루션은 거래의 안전성을 보장하기 위해 다중 서명을 채택합니다. 다중 서명은 거래를 완료하기 위해 여러 사용자의 확인이 필요하므로 공격자가 성공적으로 공격할 가능성을 크게 줄입니다. 또한 일부 솔루션은 사용자의 개인 키를 저장하기 위해 하드웨어 지갑을 사용하여 보안을 강화합니다. 하드웨어 지갑은 일반적으로 물리적으로 격리된 방식으로 개인 키를 보호하여 개인 키가 탈취되는 것을 방지합니다.
사용자 경험과 보안성 간의 균형
계정 추상화 지갑 설계에서 보안성은 최우선 고려 사항으로 여겨져야 합니다. 좋은 사용자 경험을 제공하는 것이 중요하지만, 보안에 결함이 있다면 사용자의 자산이 위협받을 수 있습니다. 따라서 지갑 개발자는 보안을 매우 중요하게 여기고, 사용자의 개인 키와 자산이 공격받지 않도록 엄격한 암호화 및 인증 조치를 취해야 합니다. 그렇다면 보안성과 사용자 경험 간의 균형을 어떻게 이룰 수 있을까요? 필자는 최소한 다음 몇 가지를 고려해야 한다고 생각합니다:
- 개인 키 관리:계정 추상화 지갑은 사용자의 개인 키를 안전하게 관리하여 사용자의 자산을 잠재적인 공격으로부터 보호해야 합니다. 이는 암호화 알고리즘, 하드웨어 지갑 및 다중 인증과 같은 보안 조치를 통해 실현할 수 있습니다. 그러나 지나치게 엄격한 보안 조치는 사용자 경험을 저하시킬 수 있으며, 예를 들어 빈번한 인증 단계를 요구할 수 있습니다. 이 점에서 지갑은 개인 키의 보안성을 보장하면서도 간편한 인증 방식을 제공하여 사용자가 자산에 쉽게 접근할 수 있도록 균형을 찾아야 합니다.
- 거래 확인 및 속도:계정 추상화 지갑은 적시의 거래 확인과 빠른 거래 처리를 제공하여 좋은 사용자 경험을 제공해야 합니다. 그러나 거래 속도를 보장하는 동시에 이중 지불 및 기타 사기 행위를 방지해야 합니다. 지갑은 기술적 조치를 채택하여, 예를 들어 제로 확인 거래 및 AI 자동 위험 평가를 통해 보안성과 거래 속도 간의 관계를 균형 있게 유지하여 사용자의 자산을 안전하게 보호하고 빠른 거래 경험을 제공할 수 있습니다.
- 다중 체인 지원:현재의 추세는 다중 체인으로 발전하는 것입니다. 계정 추상화를 채택할 때, 다양한 생태계에서 AA의 채택 상황과 존재할 수 있는 차이를 고려해야 하며, 이는 서로 다른 체인과 가상 머신의 AA 구현에 불확실성을 초래할 수 있습니다. 만약 당신이 애플리케이션 개발자이고 AA를 채택할 것을 고려하고 있다면, 다중 체인 간의 상호 운용성을 구현하는 데 필요한 작업량을 고려해야 합니다. 미래의 계정 추상화 지갑은 사용자가 다양한 체인에서 요구를 충족할 수 있도록 여러 블록체인을 지원해야 합니다. 그러나 각 블록체인은 고유한 보안 특성과 사용자 경험 요구 사항을 가지고 있습니다. 보안성과 사용자 경험 간의 균형을 맞추기 위해, 지갑은 각 체인의 보안 요구 사항을 적절히 충족하면서도 일관되고 직관적인 사용자 인터페이스를 제공하여 사용자가 다양한 체인에서 자산을 쉽게 관리하고 상호작용할 수 있도록 해야 합니다.
- 비용:체인 상 거래 비용은 애플리케이션 개발의 중요한 제한 요소입니다. 대부분의 거래가 2층에서 발생하고 비용이 보조될 것이라고 가정하더라도, 대규모 배포 및 업그레이드는 여전히 비쌀 수 있습니다. 특히, 지갑을 업그레이드하려면 기본 스마트 계약을 업그레이드해야 하며, 이는 새로운 취약점을 도입하고 높은 비용을 초래할 수 있습니다.
계정 추상화 솔루션의 미래
사용자 경험과 보안성 요소를 종합적으로 고려할 때, 이더리움의 계정 추상화 지갑 솔루션은 현재의 발전과 추세에서 더 큰 잠재력을 가지고 있습니다. 이더리움 생태계 내의 계정 추상화 솔루션인 zkSync, Fuse Network 및 zkSafe 등은 유연하고 안전하며 사용하기 쉬운 설계와 구현을 통해 더 나은 사용자 경험을 제공합니다. 그러나 이더리움 계정 추상화 지갑 솔루션에는 스마트 계약의 보안 위험 및 높은 거래 부하에 직면했을 때의 확장성 문제와 같은 보안 도전과제가 존재합니다. 계정 추상화 시장은 여전히 초기 단계에 있으며, 채택률이 낮기 때문에 시장의 성숙과 보급을 촉진하기 위한 혁신과 발전이 필요합니다.
단기 및 중기적으로, 계정 추상화 지갑은 허가가 필요 없는 Bundler, Paymaster 및 Signature Aggregator 공공 엔드포인트를 도입하여 개방 시장을 구축하고, 사용자가 최소 비용으로 고품질 서비스를 받을 수 있도록 합니다. Bundler, Paymaster 및 Signature Aggregator를 신속하고 맞춤화하여 배포할 수 있는 능력이 지갑 인프라 서비스 제공자의 능력을 시험할 것입니다. 이러한 경쟁은 혁신을 촉진하고 보안성과 사용자 경험을 향상시킬 것입니다.
동시에, 제3자 인프라 제공업체(예: Stackup)는 모듈화된 Bundler 및 Paymaster를 개발하고 점진적으로 허가가 필요 없는 형태로 실현할 것입니다. 또한, 빠른 프론트엔드 배포를 위한 스캐폴딩 도구 개발이 시급하며, 이를 통해 개발자가 비즈니스 논리 개발에 집중할 수 있도록 하여, 계정 추상화 기능을 지원하는 ether.js와 유사한 dApp 개발 표준 라이브러리를 생성하고, Web2 소셜 미디어 계정 및 이메일을 통한 지갑 생성, UserOperations의 생성, 서명, 전송 및 이벤트 리스닝, Paymaster 및 Signature Aggregator의 빠른 배포 등을 포함한 기능을 캡슐화할 수 있습니다. 이러한 도구는 개발자가 다양한 지갑과 통합하는 과정을 간소화할 수 있습니다.
중장기적으로, 새로운 계정 표준이 반드시 등장할 것이며, 심지어 계정과 스마트 계약 지갑을 분리할 가능성도 있습니다. 이는 미래에 계정 추상화 지갑 시장에서의 경쟁이 더욱 치열해지고, 기능의 동질화가 심화되며 기술 장벽이 낮아질 것임을 의미합니다. 미래의 계정 추상화 지갑은 허가가 필요 없는 모듈화된 인프라, 기존 서비스와의 통합, dApp SDK 및 독립 계정 계층 등을 포함한 더 과감한 혁신이 필요하여 더 큰 유연성과 사용자 편의성을 실현해야 합니다.