탈중앙화 신원 최후의 전투
*원문 저자: 협객장, * 불확실한 사고
web3 인증 현재 존재하는 문제
첫 번째로 StepN을 사용할 때, 사용자는 이메일 계정으로 등록해야 합니다. 등록을 완료한 후, 암호화 지갑을 가져오거나 새로 만들어야 하며, 기존의 니모닉 문구(자산이 있는 지갑을 사용한 경우)를 가져올 경우, 니모닉 문구가 인터넷에 노출되는 보안 문제에 대해 걱정하게 됩니다.
새로운 지갑을 만들 경우에도, 핫 지갑 백업이 부적절할 경우의 보안 우려가 있습니다. 이는 암호화된 오래된 사용자들의 걱정이며, web3 초보자에게는 니모닉 문구가 무엇인지, 어떻게 안전하게 보관하는지에 대한 개념이 전혀 없기 때문에 자산 손실로 이어지기 쉽습니다.
Mirror를 사용하여 기사를 게시할 때, 지갑을 연결하여 서명 인증을 해야 하며, 한 번 서명한 후 일정 기간(약 일주일) 동안 다시 서명할 필요가 없는 비교적 친숙한 "remember me" 기능을 제공합니다. 이는 사용자에게 어느 정도 편리함을 제공하지만, 매달 업데이트를 하는 저에게는 매번 하드웨어 지갑을 연결하여 서명해야 하므로 매우 번거롭게 느껴집니다. 단지 기사를 게시하는 것일 뿐입니다.
더 극단적인 예로, 현재 일부 소셜 web3 애플리케이션에서는 사람을 팔로우하거나 댓글을 달 때 서명 인증이 필요합니다. 많은 사람들을 위해 편리함을 위해 핫 지갑을 따로 만드는 경우가 많습니다(안전 의식이 있는 경우).
하지만 일부 애플리케이션은 역사적 행동의 주석 및 에어드랍과 같은 유혹이 포함되어 있어, 어쩔 수 없이 오래된 주소를 사용하여 서명 검증을 해야 합니다. 이러한 주소에는 종종 많은 자산이 포함되어 있으며, 서명 시 주의하지 않으면 권한이 과도하게 부여되어 불필요한 자산 손실로 이어질 수 있습니다.
DeFi에 대규모 자산이 참여하는 경우, 종종 멀티 서명, 하드웨어 지갑 등 상대적으로 안전한 인프라를 사용합니다. 이러한 주소는 NFT 거래에도 사용될 수 있으며, NFT 거래는 많은 경우 서명 권한이 필요합니다. 현재의 애플리케이션 서명 정보는 직관적이지 않으며, 사용자는 대부분 서명의 구체적인 내용을 잘 이해하지 못해 서명 권한이 과도하게 부여되어 해킹당하기 쉽습니다.
이러한 몇 가지 전형적인 상황을 요약하면, 현재 web3 신원 인증에는 사용하기 어렵고, 불편하며, 안전하지 않은 등의 문제가 존재합니다.
이러한 문제의 본질적인 원인은 대부분 신원과 계정이 명확하게 정의되지 않았기 때문입니다. 대부분의 경우 지갑은 계정으로 간주되며, 사용자 신원으로도 간주됩니다.
탈중앙화 비관리형 지갑의 발전은 실제로 현재 web3 발전 속도에 적합하지 않습니다. DeFi가 등장했을 때, 우리는 이러한 모델을 사용해도 큰 문제를 느끼지 못했습니다. 그러나 점점 더 많은 비금융 탈중앙화 애플리케이션이 등장함에 따라 이러한 인증 방식은 많은 문제를 드러내게 됩니다.
web2에서 일반적으로 사용되는 인증 장면
초기 웹 페이지 기반 web2 애플리케이션을 사용할 때, 대부분 계정 + 비밀번호 인증 방식을 사용했습니다. 편리함을 위해 많은 웹사이트가 동일한 비밀번호를 설정했습니다(이는 매우 안전하지 않습니다).
모바일 애플리케이션의 보급과 함께, 우리는 점차 전화번호 + 인증 코드 인증 방식에 익숙해졌습니다. 웹 페이지에서도 점차 이러한 인증 방식을 지원하게 되었습니다.
더욱 편리하게 하기 위해, 많은 애플리케이션이 WeChat/전화번호 기반의 원클릭 인증 등의 인증 모델을 사용하고 있으며, 비밀번호는 거의 사용되지 않게 되었습니다.
생체 인식 기술의 발전과 함께, 현재 많은 장치가 얼굴 인식, 지문 인증 등의 인증 방식을 채택하고 있으며, 인증 코드도 계속해서 업데이트되고 대체되고 있습니다.
web2의 신원 인증은 안전하고 편리한 무비밀번호 인증 방향으로 발전하고 있습니다.
무비밀번호 인증은 계정 + 비밀번호 방식보다 훨씬 안전합니다. 계정 + 비밀번호 방식은 약한 비밀번호 문제와 대량의 유출된 데이터가 존재하기 때문에, 해커는 대량 데이터 + 크래킹 등의 방법으로 이를 해킹할 수 있습니다.
좋은 보안 습관이 있다면, 현재의 모바일 애플리케이션은 대부분 도난당하기 어렵습니다. 1password와 같은 애플리케이션을 함께 사용하면(하나의 애플리케이션에 하나의 비밀번호), 비밀번호를 설정해야 하는 애플리케이션도 상대적으로 안전합니다.
금융 애플리케이션의 인증 발전을 살펴보면, 초기 인터넷 뱅킹은 매우 불편했으며, 비밀번호 카드를 사용하여 송금해야 했습니다. 이후 USB 키 인증 방식으로 발전했습니다.
개인 사용자에게는 현재 모바일 인터넷 뱅킹이 다른 비금융 애플리케이션과 거의 동일한 경험을 제공합니다. 전화번호 + 얼굴 인식 인증, 얼굴 인식/인증 코드 송금 등 매우 편리합니다.
이것은 일정한 보안 위험이 있습니다. 만약 휴대폰이 해킹당하면, 휴대폰에 있는 은행 계좌가 도난당할 위험이 있습니다.
기업 사용자에게는 현재 USB 키(디지털 인증서) 인증 방식이 여전히 유지되고 있습니다. 은행 간 통신은 대부분 점대점 암호화 방식을 사용합니다.
많은 처음 web3 애플리케이션을 사용하는 사용자는 "왜 이 애플리케이션이 이렇게 어렵게 느껴지나요?"라는 질문을 하게 됩니다. 가장 직관적인 이유는 대부분 웹 페이지에서 접근하며, 사용자 인증이 일반적으로 친숙하지 않기 때문입니다.
web2에서 널리 사용되는 친숙하고 안전한 인증 방식이 web3에 적용될 수 없을까요?
여기서 우리는 web3와 web2의 가장 중요한 차이점인 사용자 자산의 자율적 통제(소유 가능성)에 대해 이야기해야 합니다.
web2에서는 데이터와 자산이 중앙화 플랫폼에 존재하여, 실제로 사용자가 자율성을 갖기 어렵습니다.
반면 web3에서는 탈중앙화 속성이 사용자가 암호학적 관점에서 자율성을 갖게 해줍니다. your keys, your coins!
이것이 바로 web3 애플리케이션의 인증 방식이 사용자가 자율적으로 서명하도록 하는 이유입니다. 이러한 정보는 오직 사용자만이 소유하고 있습니다.
web3 신원은 어떤 서비스와 능력을 제공해야 하는가
1. 스스로 키 변경
우리가 자주 사용하는 web2 애플리케이션은 일정 기간마다 비밀번호를 재설정하여 보안을 유지하고, 비밀번호 분실로 인한 정보 유출을 방지할 수 있습니다.
계정이 도난당한 경우, 우리는 즉시 비밀번호를 변경하거나, 이의 제기 등의 방법으로 계정을 찾을 수 있습니다.
이런 경우, 우리의 계정은 여전히 계속 사용할 수 있으며, 계정과 연결된 다른 콘텐츠, 데이터 및 애플리케이션은 다시 권한 부여나 연결을 할 필요가 없습니다.
그러나 탈중앙화 지갑의 경우, 니모닉 문구/개인 키가 분실되면 이 지갑은 더 이상 사용할 수 없습니다. 누군가 이 니모닉 문구/개인 키를 알게 되면, 내부 자산을 조작할 수 있으며, 다양한 애플리케이션을 검증할 수 있습니다.
web2에서는 계정이 도난당한 경우, 한편으로는 이의 제기를 통해 찾을 수 있으며, 다른 한편으로는 다양한 비활성화 작업을 쉽게 수행할 수 있습니다. 충분한 증거가 있으면, 잠재적 위험에 대해 중앙화된 방식으로 처리할 수 있습니다. 예를 들어, 다양한 플랫폼에 이의 제기를 하거나, 블랙리스트에 추가하는 등의 작업이 가능합니다.
그러나 web3에서는 현재 도난당한 계정에 대한 효과적인 예방 조치가 없습니다. 개인 키가 분실되면, 이 계정은 더 이상 사용할 수 없습니다. 그러나 점점 더 많은 애플리케이션이 신원 행동에 대한 중요성을 인식함에 따라, 우리의 많은 체인 상 행동은 계정 주소와 관련이 있습니다. 오랫동안 사용해온 주소는 아마도 상당한 자산일 수 있습니다. 이를 사용하지 않으면 매우 아쉽습니다.
어떤 방법이 있을까요? web2에서 비밀번호를 변경하는 것처럼, 계정(공개 키 주소)을 변경하지 않고 web3 지갑의 니모닉 문구/개인 키를 스스로 변경할 수 있는 방법이 있을까요?
2. 다중 계정 분리, 신원 집합
현재 국내에는 개인 사용자를 위한 다중 계정 분리/신원 집합의 애플리케이션 장면이 많이 있습니다.
예를 들어, 공유 자전거를 사용할 때, 때때로 알리페이로 QR 코드를 스캔하여 잠금을 해제하고, 때때로 위챗으로 QR 코드를 스캔하여 잠금을 해제합니다. 자주 자신도 인식하지 못하지만, 모두 잠금을 해제할 수 있습니다.
다양한 공유 상품은 위에 코드가 있으면, 우리는 무의식적으로 위챗/알리페이를 사용하여 스캔합니다. 충전기, 전기 자전거, 우산 등을 빌리는 등입니다.
이러한 애플리케이션은 매우 편리하게 사용할 수 있으며, 우리는 어떤 계정도 등록할 필요가 없고, 많은 개인 정보를 제공할 필요도 없으며, 단 한 번의 권한 부여만으로 가능합니다.
이러한 장면에서, 다양한 장비를 대여할 때, 실제로 우리가 사용하는 것은 이러한 애플리케이션 자체의 계정이며, 이 계정은 신원 권한 부여를 통해 생성됩니다.
우리의 많은 신원 정보와 행동은 "지마신용"/"위챗페이 점수"라는 시스템에 집합되어 있으며, 이는 우리가 인터넷 세계에서의 집합 신원입니다.
이는 신용 평가 시스템으로, 우리의 다양한 신원 데이터와 신용 평가를 포함하고 있습니다. 다양한 애플리케이션은 이를 통합하여 권한을 요청하고, 우리의 신원을 읽고, 임시 계정을 생성할 수 있습니다.
우리의 신용이 이러한 애플리케이션의 설계 요구를 충족하면, 우리는 매끄럽게 사용할 수 있습니다.
기업급 애플리케이션의 경우, 한 직원은 종종 수십 개의 다양한 시스템을 사용하며, 각 시스템에 독립적인 계정이 있다면 기억하기 매우 불편합니다. 대부분의 직원은 동일한 비밀번호를 사용하는 데 익숙해져 있어, 이는 매우 안전하지 않습니다.
이 문제를 해결하기 위해, 기업급 신원 관리에 특화된 IAM 솔루션이 있습니다. 이는 편리하고 안전한 단일 로그인 및 통합 계정 비밀번호 시스템을 제공하여, 보안 문제를 해결하고 직원들이 시스템을 더 쉽게 사용할 수 있도록 합니다.
위와 같은 사용 경험은 web3에서도 필요합니다. 우리는 게임을 하거나, 소셜 애플리케이션을 경험하거나, DeFi 채굴에 참여할 때, 서로 다른 계정을 가지고 있지만, 모두 편리한 방법으로 통합된 안전한 관리를 할 수 있기를 바랍니다.
자산을 서로 다른 계정에서 격리할 수 있을 뿐만 아니라, 서로 다른 계정 간의 신원을 상호 연결할 수 있습니다. 우리는 외부에 어떤 신원을 나타낼지 결정할 수 있으며, 어떤 신원이 명시적이고 어떤 신원이 비공식적인지, 그리고 그들 간의 행동 관계를 제어할 수 있습니다.
3. 유연한 키 관리
대부분의 인터넷 사용자는 비밀번호 관리에 대한 보안 의식이 부족하여, 종종 동일한 비밀번호를 사용합니다. 가장 많이 사용되는 보안 보호 조치는 사용하지 않는 것입니다. 예를 들어 인터넷 뱅킹을 사용하지 않는 것입니다.
모바일 애플리케이션 인증 기술의 발전은 한편으로는 플랫폼 애플리케이션이 더 큰 네트워크 효용을 갖도록 하고, 다른 한편으로는 사용자 사용의 안전성과 편리성을 실질적으로 향상시키기 위한 것입니다. 예를 들어 인증 코드 + 얼굴 인식 + 리스크 관리 등의 방식은 일반적인 비밀번호 유출이 심각한 영향을 미치기 어렵게 만듭니다.
web3 애플리케이션은 신원 주권을 사용자에게 되돌려주며, 각 개인은 키 관리 방법에 대한 지식과 기술에서 매우 큰 차이를 보입니다.
심지어 일부 오래된 사용자들도 종종 개인 키를 잃어버리는 실수를 저지르며, 실수로 피싱에 걸리거나 컴퓨터가 해킹당해 핫 지갑이 도난당하는 경우가 많습니다.
하드웨어 지갑, 콜드 지갑, 멀티 서명 지갑을 사용하는 것은 더 높은 진입 장벽이 있으며, 일반적으로 기술적 배경이 없는 사용자에게는 이러한 지갑의 안전한 사용 방법을 실제로 습득하기 어렵습니다. 부주의로 인해 오히려 키를 잃어버릴 수 있습니다.
web3의 이러한 비우호적이고 안전하지 않은 키 관리 방식은 많은 사람들이 web3 애플리케이션에 참여하는 것을 실질적으로 방해하고 있습니다.
web2에서는 1password, 구글 비밀번호 관리 등의 프로그램을 통해 키 관리를 도와줄 수 있습니다. 그러나
니모닉 문구와 개인 키의 사용은 대부분 오프라인 백업을 강조하며, 하드웨어 지갑에 저장하거나 더 안전한 멀티 서명 등의 기술을 사용합니다. 이는 전문 사용자에게는 괜찮지만, web3 사용자에게는 다소 어려움이 있습니다.
우리는 web2처럼 키를 보관할 수 있을까요? 메모할 필요도 없고, 하드웨어도 필요 없는 방법으로? 안전하면서도 빠르게 복구할 수 있는 방법이 있을까요?
다양한 사용 요구에 따라 다양한 키 관리 전략을 가질 수 있으며, 대규모 자산은 전문적인 안전 솔루션을 사용할 수 있습니다. 소셜 애플리케이션은 편리한 방법을 사용할 수 있으며, 이러한 역할 권한 분리는 우리가 다양한 애플리케이션을 사용할 때 보안 및 개인 정보 문제에 대해 과도하게 걱정하지 않도록 해줍니다.
web3 인증이 web2와 같은 경험을 갖도록 하려면
앞서 언급한 많은 문제와 그에 대한 해결책을 보면, 현재 일부 web3 프로젝트가 이를 해결하려고 시도하고 있습니다.
web3의 사용 경험을 web2와 유사하게 만들고 싶다면, 개인적으로는 계약 지갑의 광범위한 사용이 필요하다고 생각합니다. 이는 현재 많은 것이 실현되지 않는 경험을 가능하게 할 것입니다. 예를 들어 키 복구, 수수료 없는 거래, 다중 계정 리스크 격리 등이 있습니다.
1. ERC 4337 이더리움 계정 추상화
ERC4337은 이더리움의 계정 추상화에 대한 제안입니다. 이 제안의 주요 목적은 합의 계층 프로토콜을 변경하지 않고 사용자 계정을 계약 계정으로 업그레이드하는 것입니다. 이렇게 하면 많은 이점이 생깁니다.
현재 이더리움의 계정 유형은 외부 계정(EOA)과 계약 계정으로 나뉩니다. ERC4337의 계정 추상화 솔루션은 두 가지 계정 유형을 하나로 줄여 계약 계정만 유지하는 것을 제안합니다.
ERC4337이 구현하는 계정 추상화 솔루션은 사용자에게 다음과 같은 경험 향상을 제공합니다:
소셜 복구 지원: 이 솔루션은 사용자가 지갑 계정에 여러 보호자를 설정할 수 있도록 지원하며, 키를 잃어버린 경우 지갑 키를 복구하는 데 도움을 줄 수 있습니다. 보호자는 사용자가 소유한 다른 안전한 지갑, 가족 또는 친구, 심지어 제3자 기관이 될 수 있습니다.
이 기능은 사용자의 지갑 계정을 더욱 안전하게 만들어 주며, 니모닉 문구/개인 키 원리를 이해하지 못하거나 보관이 부실하여 발생하는 우발적인 손실을 피할 수 있습니다. web2처럼 애플리케이션의 계정을 관리할 수 있으며, 불안전한 요소를 발견하거나 키를 잃어버린 경우 지갑 계정의 키를 찾고 재설정할 수 있습니다.
대행 계정/수수료 대납 지원: 이 기능은 애플리케이션이 사용자가 계정을 생성하는 데 필요한 가스 비용을 지불하도록 도와줄 수 있으며, 거래 수수료를 대납할 수 있도록 도와줄 수 있습니다. 심지어 임의의 ERC20 토큰으로 거래 수수료를 지불할 수 있습니다. 간단히 말해 사용자는 자금을 입금하지 않고도 web3 애플리케이션을 완전히 경험할 수 있습니다.
이는 일반 사용자에게 매우 효과적입니다. 그들은 계정을 생성하는 비용을 지불할 필요가 없으며, 일부 거래도 비용을 지불할 필요가 없습니다. 이는 0문턱 사용자 유입을 실현하고, 사용자에게 안전한 web3 지갑을 구축할 수 있습니다. 게임 및 소셜 애플리케이션에 특히 유용합니다.
계정 업그레이드 지원: 계정 추상화 지갑은 스마트 계약에 의해 제어되므로 계약 기능을 업그레이드할 수 있으며, 사용자에게 높은 수준의 사용자 정의 기능을 제공할 수 있습니다. 예를 들어 서명 알고리즘을 단순화/개인화하는 등의 기능이 가능합니다.
ERC4337의 구현에 대해 Vitalik은 로드맵을 제시했으며, 여기에는 다음이 포함됩니다:
단기:
- ERC-4337을 생산에 투입하여 EOA를 스마트 계약 계정으로 업그레이드 지원
- ERC4337 계정의 사용이 용이한 브라우저 플러그인 지갑 지원
- Layer2 친화적인 기능 구현, 단기적으로 Layer2에서 ERC4337 애플리케이션을 홍보
중기:
- Verkle 트리 구현, 가스 비용 절감
- 선택적 EOA에서 ERC4337으로의 변환 추가
- crList 논리 추가
장기:
- EOA 변환을 강제 시행하고 단일 ERC4337 계정으로 전환 고려
2. web3auth
Web3Auth는 web2와 유사한 소셜 인증 방법을 제공하여 web3 인증이 web2와 일관된 사용 경험을 유지하도록 합니다.
Web3Auth는 B2B 애플리케이션으로, 애플리케이션이 자율적으로 통합 및 구성한 후에야 사용자가 해당 인증 경험을 체험할 수 있습니다. 여기에는 다음이 포함됩니다:
주요 소셜 계정 로그인 및 무비밀번호 인증: 사용자는 Google, Twitter, GitHub 및 기타 OAuth 제공자를 통해 등록할 수 있습니다. 사용자는 이메일을 통해 무비밀번호 설정의 등록 프로세스를 진행할 수도 있습니다.
Web3 지갑 및 키 관리 지원: 사용자가 자율적으로 선택한 지갑이나 키 관리를 사용할 수 있도록 권한을 부여할 수 있습니다. 예를 들어 사용자는 기존 지갑으로 로그인하거나 키 관리를 선택(니모닉 문구 가져오기)하여 애플리케이션에 직접 연결할 수 있습니다.
web3auth는 사용자가 제3자 소셜 인증을 통해 등록 및 인증 경험을 완료할 수 있도록 web2와 유사한 경험을 제공합니다.
동시에 web3auth는 비관리형 공개 키 기반 구조(SSS 2/3 Shamir's Secret Sharing)를 지원하여, 키 관리에 익숙하지 않은 사용자에게 큰 편리함을 제공하며, 사용자가 자산을 완전히 자율적으로 관리할 수 있도록 하면서도 키를 스스로 보관할 필요가 없습니다.
이러한 비관리형 방식이 충분히 안전하지 않다고 느끼는 경우, 사용자는 Ledger, Phantom 등과 같은 자신이 자주 사용하는 지갑을 통해 연결 로그인할 수 있습니다. 브라우저 플러그인 지갑 Keplr는 web3auth를 확장하여 사용자가 직접 경험할 수 있습니다.
3. unipass
UniPass는 다중 체인 통합 암호화 신원 애플리케이션으로, 이메일 기반의 비관리형 소셜 복구 지갑 솔루션을 제공합니다. 사용자의 암호화 신원을 무비밀번호 방식으로 제어할 수 있습니다. 또한 암호화 방식으로 다중 체인 주소 및 심지어 소셜 계정을 검증할 수 있습니다.
프론트엔드 기능에서 unipass는 web3auth와 유사하며, 소셜 인증, 소셜 복구 지갑 등의 기능을 제공합니다. 이미 구현된 기능에 비해 unipass의 2022년 제품 계획에서 언급된 능력은 본문에서 기대하는 탈중앙화 신원 진화와 많은 일치점을 가지고 있으며, 여기에는 다음이 포함됩니다:
web3 신원 집합: 암호학을 기반으로 다중 체인 다중 계정의 집합을 구현합니다. 이러한 집합 방식을 통해 사용자가 서로 다른 체인에서 서로 다른 주소의 행동을 하나의 신원 ID로 집합하여 신뢰를 전달할 수 있습니다. 간단히 말해 사용자의 체인 상 행동 점수를 최대한 높일 수 있습니다.
web2 신원 검증: 스마트 계약에서 이메일 주소, Twitter 계정, Discord 계정의 검증 능력을 제공하여 web3에서 본질적으로 web2 신원 정보를 제공합니다.
단일 로그인 및 접근 포털: unipass ID를 사용하여 여러 애플리케이션의 통합 로그인을 수행하고, 사용자에게 통합된 web3 포털 내비게이션을 제공합니다.
4. 계정 명명
신원 식별은 신원 인식에 매우 중요하며, web3에서 각 계정은 긴 문자열의 무작위 문자 + 숫자로 되어 있어 기억하고 인식하기 어렵습니다.
5. ENS
ENS는 이더리움 블록체인을 기반으로 한 분산형, 개방형 및 확장 가능한 명명 시스템입니다. 출시된 xxx.eth 서비스는 읽을 수 있는 이름을 0x123xxx…의 식별자로 매핑하여 이러한 인식의 어려움을 어느 정도 완화합니다.
6. Nametag
Nametag의 목표는 블록체인에 기반한 범용 명명 서비스가 되는 것입니다. 사용자는 고유하게 명명된 NFT를 주조, 저장, 거래 및 사용하여 범용 사용자 이름으로 사용할 수 있습니다.
7. LENS
Lens는 Polygon에서의 Web3 소셜 그래프 프로토콜입니다. 그 목표는 완전히 조합 가능한 사용자 소유의 소셜 그래프를 형성하는 것입니다. 이 프로토콜은 처음부터 모듈화된 설계를 채택하여 제3자가 프로토콜을 기반으로 새로운 기능을 개발할 수 있도록 하며, 동시에 사용자가 소유한 콘텐츠와 소셜 관계가 불변하도록 보장합니다.
그 중 ENS와 Nametag는 다른 애플리케이션이 참조하고 적응할 수 있는 기본 명명 서비스가 되고자 하며, Lens는 소셜 인프라를 구축하고 xxx.lens와 같은 이름을 제공합니다. 최종적으로 어떤 방식이 web3에서 더 인기를 끌지는 시간이 검증할 것입니다.
8. Gnosis Safe
web3 사용자에게는 web2보다 더 중요한 요구 사항이 자율적인 안전성입니다. 모든 신원은 자율적으로 통제 가능한 안전 기반 위에 구축되어야 합니다.
단순한 니모닉 문구 가져오기로 이루어진 메타마스크 핫 지갑보다 하드웨어 지갑이 더 안전합니다. 이는 니모닉 문구가 해킹당하거나 피싱당하는 등의 위험을 피할 수 있습니다.
하드웨어 지갑 위에는 더 안전한 다중 서명 솔루션이 있으며, 이는 주로 조직/커뮤니티/대규모 자산 관리 요구를 위해 설계되었습니다.
일반 개인에게는 하드웨어 지갑이 이미 상대적으로 안전합니다. 그러나 조직의 경우, 단일 위험, 악의적 위험, 권한 부여 위험 등을 고려해야 하므로 다중 서명이 대규모 자산 안전 관리의 필요에 더 부합합니다.
Gnosis Safe는 다중 체인에서 실행할 수 있는 스마트 계약 지갑으로, 거래를 실행하기 위해 최소한의 승인이 필요합니다(M-of-N).
Safe는 스마트 계약 계정으로, 제공하는 기능에는 다중 서명, 송금 금액 제한, 화이트리스트 송금, 번들 거래, 긴급 계정 동결/복구, 사전 조건 트리거 작업 등이 포함됩니다.
이상적인 탈중앙화 신원 인증 구조
위의 많은 준비는 사용자가 web3 애플리케이션에 더 잘 접근할 수 있도록 돕고, 더 큰 안전성과 더 나은 경험을 얻을 수 있도록 하기 위한 것입니다.
web3에서 지갑, 계정, 신원의 개념은 다소 모호하며, 명확하게 구분되지 않아 종종 지갑이 계정으로 간주되고, 계정이 신원으로 간주됩니다.
실제 신원은 집합이며, 계정은 우리가 애플리케이션을 사용하는 구체적인 매개체로 신원의 외연입니다. 암호화 지갑은 우리의 계정의 한 형태와 검증 방법입니다.
탈중앙화 신원은 세 가지 수준으로 나눌 수 있습니다: 외부 신원, 대리 신원 및 주권 신원.
1. 대리 신원
대리 신원은 소셜 계정, 게임 계정, 거래 계정, DeFi 계정, 익명 계정 등과 같은 일련의 전용 기능을 가진 계정입니다.
이 모델에서 모든 대리 계정은 주권 계정이 제어하는 계약 계정이 될 수 있으며, 위험이 발생할 경우 주권 계정을 사용하여 키를 재설정하여 자산 손실을 방지할 수 있습니다. 동시에 다양한 행동 프로필을 지속할 수 있습니다.
이러한 대리 계정은 사용자의 다양한 신원 역할을 대리하며, 이전에는 독립적인 용도와 보안 경계가 있었습니다. 하나의 계정으로 모든 것을 처리하는 것을 피하고, 안전한 기반 위에서 편리한 경험을 제공할 수 있습니다.
예를 들어, 소셜 계정에는 자산이 없으며, 다양한 애플리케이션에 로그인하는 데 전용으로 사용됩니다. 게임 계정은 체인 상 게임을 하는 데 전용이며, NFT 계정과 공유하거나 분리할 수 있습니다. NFT 계정은 특정한 피우 계정으로, 구매만 하고 판매하지 않으며, 판매할 때만 임시로 권한을 부여하여 주문을 걸 수 있습니다.
왜 이러한 역할 분리 계정 설정을 채택해야 할까요?
실제로 web2 애플리케이션을 사용할 때, 대부분의 경우 각 애플리케이션이 서로 다른 계정을 사용하며, 이들 간에 통일된 연결이 없습니다. 계정 이름이 동일하더라도 이는 우리의 주관적인 선택입니다.
소셜 로그인이 유행한 이후, 우리는 대부분 WeChat, Gmail 등의 인증 방식을 사용하게 되었으며, 이는 실제로 애플리케이션 내에서 새로운 계정 매핑을 구축하는 권한 부여입니다. 직접적으로 Gmail 등을 계정 주체로 사용하지 않는 것입니다.
이 모델에서 WeChat과 Gmail은 우리의 주권 신원과 더 유사하며, 이들은 우리가 다양한 애플리케이션에서 잊어버린 계정을 복구하거나 이러한 계정의 비밀번호를 재설정하는 데 도움을 줄 수 있습니다.
역할 분리의 장점은 위험을 격리할 수 있으며, 다양한 애플리케이션을 사용할 때의 경험을 향상시킬 수 있습니다. 우리는 매번 사람을 팔로우할 때마다 하드웨어 지갑을 열어 권한을 부여할 필요가 없습니다. 자산을 조작해야 할 때는 더 복잡한 전략 권한 부여를 할 수 있어, 부주의하거나 악의적으로 도난당하는 것을 피할 수 있습니다.
대리 계좌를 사용할 때, 우리는 대리 계좌에서 발생하는 행동이 공유되지 않을까 걱정하게 되며, 이는 특정 장면에서 우리의 평가를 낮출 수 있습니다. 이 문제는 실제로 외부 신원 설정을 통해 해결할 수 있습니다.
2. 외부 신원
외부 신원은 증명서, 식별자, 행동, 관계, 평판의 집합입니다.
우리는 외부 신원을 신원 태그로 간단히 이해할 수 있으며, 주로 외부 관계가 우리의 신원을 식별하는 데 편리함을 제공합니다.
예를 들어 ENS, Lens 등은 신원의 외부 신원으로, 이들의 역할은 소셜 관계에서 신원을 더 읽기 쉽게 만드는 것입니다.
POAP는 행동 경로의 외부 신원으로, 우리가 어떤 활동에 참여했는지를 표시하는 데 주로 사용됩니다. 유사한 것으로는 Galaxy, RabbitHole 등이 있습니다.
Vitalik의 SBT 논문에서는 영혼 결속 토큰의 많은 용도를 언급하며, 이는 실제로 외부 신원의 능력 범위입니다. 예를 들어 우리의 소셜 관계, 신뢰도, 학위 증명서 등을 SBT 방식으로 우리의 신원과 결합할 수 있습니다.
실제 애플리케이션 측면에서 외부 신원은 대리 신원과 통합될 수 있으며, 이들은 동일한 계정 주소일 수 있지만, 논리적 측면에서 구분하여 사용자에게 더 나은 서비스를 제공하거나 애플리케이션의 설계 및 경험 향상을 용이하게 할 수 있습니다.
예를 들어 일부 사용자는 보안과 개인 정보 보호를 더 중시할 수 있으며, 이 경우 외부 신원은 독립적인 계정으로, 외부에 대한 전시 및 관계 구축을 위해 전용으로 사용될 수 있습니다.
대리 신원의 행동 매핑은 완전히 프라이버시 계산을 통해 완료될 수 있으며, 우리의 신원을 더 전체적으로 보이게 하면서도 사용자가 외부에 어떤 신원 특성을 나타낼지를 유연하게 제어할 수 있습니다. 더 나아가, 우리는 여러 외부 신원을 유연하게 구축할 수 있으며, 더 현실적인 신원도 만들 수 있고, 더 익명적인 신원도 만들 수 있습니다. 이렇게 하면 사용자가 사용하는 심리적 장벽이 낮아질 것입니다.
기술적 측면에서 이러한 설계를 실현하기 위해 현재의 방법은 체인 상 대리 모델을 채택하여, 체인 상에서 권한을 서명하고 대리 신원과 외부 신원의 권한 관계를 기록하는 것입니다. 외부 신원에 문제가 생기면, 권한을 다시 서명하여 업데이트하거나 신원 행동의 권한을 비활성화할 수 있습니다. Orange Paper의 DID 관련 팟캐스트에서 Unipass가 이러한 체인 상 권한 모델을 채택했다고 언급했습니다.
더 프라이버시한 방식으로는 계약 계정 + 제로 지식 증명을 사용하는 방법이 있습니다. 이는 외부에서 직접적인 관계를 얻을 수 없지만, 사용자의 신원이 위조되지 않았음을 증명하는 방법으로 이러한 신원 속성의 연관성과 외부 신원을 실현할 수 있습니다.
이러한 외부 신원과 대리 신원을 분리하는 설계 방식을 채택하면, 직관적인 장점은 사용자의 WeChat 계정과 은행 계정을 분리할 수 있다는 것입니다. 다른 사람이 당신의 WeChat 번호를 알게 되면, 당신의 은행 자산을 직접 볼 수 있는 것이 아니라, 당신의 돈이 어디서 벌어졌는지, 어떻게 손실되었는지를 볼 수 없게 됩니다.
3. 주권 신원
Not Your Keys, Not Your Coins.
이는 web3에서 가장 중요한 기반이며, 개인 자산의 신성한 불가침을 보장합니다.
키의 안전한 관리는 암호화 게임에 참여하는 데 있어 가장 중요한 교훈이며, 많은 사람들이 보관이 부실하여 자산을 잃게 됩니다.
안전하게 키를 보관하는 방법은 상대적으로 전문적인 일이기도 하며, 신규 사용자는 짧은 시간 내에 이를 습득하기 어렵고, 많은 실습과 심리적 장벽을 극복해야만 비관리형 지갑으로 자산을 안전하게 관리할 수 있습니다.
키는 우리의 주권 신원이며, 모든 것이 스스로 통제 가능하다는 것을 선언합니다. web2처럼 사용이 금지되면 금지되는 것이 아닙니다.
키의 안전한 관리는 반드시 탈중앙화 비관리형 방식으로 이루어져야 합니다. 이는 우리가 언제든지 자신의 계정을 통제할 수 있게 해줍니다.
개인이 사용하는 경우, 하드웨어 지갑 수준에서 이미 상대적으로 안전합니다. 조직/커뮤니티가 사용하는 경우, 다중 서명 방식을 사용할 수 있습니다.
미래의 구조에서 이 신원은 우리가 가장 자주 사용하지 않는 신원이 될 수 있습니다. 대리 신원을 생성할 때 이를 권한 부여하는 데 사용할 수 있습니다. 대리 신원에 위험이 존재할 경우, 이를 사용하여 대리 신원의 키를 충전하여 모든 자산이 최종적으로 통제 가능한 범위 내에 있도록 할 수 있습니다.
web3 초보자에게 이러한 주권 신원은 실제로 제3자 서비스를 통해 구현할 수 있습니다. 이는 탈중앙화 비관리형 솔루션을 기반으로 하며, 예를 들어 web3auth의 SSS 솔루션과 같은 것입니다. 이는 신규 사용자가 키를 사용하는 장벽을 낮추는 데 도움이 됩니다.
위에서 언급한 세 가지 신원 수준은 실제로 변증법적으로 통합된 전체로, 극단적인 경우 이들은 단순히 하나의 주소일 뿐이며, 모든 신원이 하나의 공개 키 주소로 집결됩니다. 현재 많은 사용자도 이렇게 사용하고 있습니다.
그러나 이러한 애플리케이션 방식은 충분히 안전하지 않으며, 많은 사람들이 자산을 잃게 됩니다. 많은 심리적 장애로 인해 다양한 계정을 잘 조합하지 못하게 되어, 본래 긍정적으로 구축하고자 하는 사용자가 체인 상 평가에서 좋지 않은 결과를 얻는 경우가 많습니다.
현재의 신원 계정 시스템은 web2처럼 사용자에게 더 나은 서비스를 제공하지 못하고 있습니다. web3에서 가장 중요한 것은 자산 소유권 문제이며, 사용자와 체인 상 자산의 관계는 신원을 통해 연결됩니다.
신원 관계를 잘 처리해야만 사용자가 체인 상 자산을 더 잘 사용하고, 다양한 web3 애플리케이션을 사용할 수 있습니다.
탈중앙화 신원을 계층적으로 설계함으로써, 한편으로는 전문가는 전문적인 일을 하고, 각 프로젝트가 큰 공감대 방향으로 진행된다면, 더 빠르고 더 나은 고도로 조합 가능한 신원 제품 매트릭스를 실현하여 사용자에게 실질적인 혜택을 제공할 수 있습니다.
다른 한편으로는 사용자가 web3의 신원 계정 개념을 더 잘 이해할 수 있도록 하기 위해, 선진적인 접근을 통해 더 많은 사용을 통해 신원의 안전한 관리를 점차 이해하고 익숙해질 수 있도록 해야 합니다.
web3의 신원은 개인에게 속하므로, 우리는 자신의 신원 자산에 대해 스스로 책임을 져야 합니다.
결국, 우리가 실제로 소유하는 것은 신원 집합(지갑 계정 집합)입니다.
위의 예시에서 많은 신원 개념이 복잡해 보일 수 있습니다. 그러나 실제로 이러한 애플리케이션이 있다면, 이러한 요소를 하나의 애플리케이션에 집결시켜 사용자가 이러한 복잡한 개념을 인식하지 않고도 단순히 사용할 수 있도록 할 수 있습니다.
미래 발전
이 이상적인 구조를 달성하기 위해 우리는 어떤 일을 해야 할까요:
- 전문화된 web3 신원 인증 서비스 제공업체
- B2B 선행, 각 DAPP이 web3 신원 인증 구성 요소를 채택
- 인증 서비스, 인터페이스 및 프로세스 표준화
- 사용자 등록 및 인증 프로세스의 용이성 제공
- 대리 계정 기능 제공, 계정 간 신원 권한 부여(체인 상)
- 브라우저 플러그인 지원 계약 지갑
- web3의 모바일 애플리케이션에서 소셜 인증을 직접 사용하는 것을 지원
- 대량의 web3 애플리케이션이 계약 계정을 지원하고 안전한 키 관리를 제공
- 개인 사용자를 위한 원스톱 종합 서비스 제공
- ERC4337의 구현, 계정 추상화 실현
- 안전한 다중 서명 및 하드웨어 지갑의 보급
- 탈중앙화 비관리형 키 인프라
개인 사용자에게 우리는 무엇을 할 수 있을까요:
- 현재 조건을 기반으로 자신의 계정 역할을 구분
- 다양한 역할의 계정을 사용하여 다양한 유형의 애플리케이션에 참여하고, 리스크를 격리
- 니모닉 문구/개인 키를 안전하게 보관하고, 관련 지식을 학습
- 새로운 web3 인증 기반 애플리케이션 사용 시도
전문 신원 인증, DID, 소셜 등의 애플리케이션에 대해 우리는 무엇을 할 수 있을까요:
- 더 안전한 계약 계정 기능 제공
- 등록, 거래 수수료 등의 대납 기능 제공 시도
- web2에 인증 능력을 침투하거나 심지어 대체하는 것을 시도