[번역] 비탈릭 부테린: 지갑에서 보고 싶은 기능들
Liraz Siri, Yoav Weiss, 그리고 ImToken, Metamask, OKX 개발자분들의 피드백과 검토에 특별히 감사드립니다.
지갑은 이더리움 인프라 스택에서 매우 중요한 계층임에도 핵심 L1 연구자들과 개발자들에게 종종 과소평가받고 있습니다. 지갑은 사용자와 이더리움 세계를 연결하는 관문이며, 사용자들은 지갑이 가진 특성의 범위 내에서만 이더리움과 그 애플리케이션이 제공하는 탈중앙화, 검열 저항성, 보안, 프라이버시 등의 이점을 누릴 수 있습니다.
최근 이더리움 지갑은 사용자 경험, 보안성, 기능성 측면에서 큰 발전을 이루었습니다. 이 글에서는 이상적인 이더리움 지갑이 갖춰야 할 특성들에 대한 제 의견을 나누고자 합니다. 물론 여기서 제시하는 특성들이 전부는 아닙니다.
제 사이퍼펑크적 성향을 반영하여 보안과 프라이버시에 중점을 두었기에, 사용자 경험 측면에서는 부족한 점이 있을 것입니다. 하지만 사용자 경험을 개선하는 데는 위시리스트보다 실제 배포 후 받은 피드백을 바탕으로 반복적으로 개선하는 것이 더 효과적이라고 생각합니다. 그래서 저는 보안과 프라이버시에 초점을 맞추는 것이 더 의미 있다고 판단했습니다.
L2 간 거래의 사용자 경험
L2 간 사용자 경험 개선을 위한 로드맵이 점점 더 구체적인 모습을 갖추어가고 있습니다. 이 로드맵은 단기와 장기 계획으로 구분되는데, 여기서는 오늘날에도 실제로 구현 가능한 단기적인 아이디어들을 살펴보겠습니다.
핵심이 되는 아이디어는 두 가지입니다. 하나는 L2 간 송금 기능을 지갑에 내장하는 것이고, 다른 하나는 체인별 주소와 결제 요청 시스템을 구축하는 것입니다. 지갑은 ERC 초안에서 제시한 형식을 따라 다음과 같은 주소를 제공할 수 있어야 합니다:
0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045@optimism.eth
이런 형식의 주소를 누군가 혹은 어떤 애플리케이션이 제공하면, 사용자는 이를 지갑의 "수신인" 필드에 붙여넣고 "보내기"를 클릭하기만 하면 됩니다. 그러면 지갑이 가능한 방법을 통해 자동으로 송금을 처리하게 됩니다.
- 목적지 체인에 필요한 종류의 코인이 충분히 있는 경우에는 직접 코인을 전송합니다
- 다른 체인이나 여러 체인에 필요한 종류의 코인이 있다면, ERC-7683과 같은 크로스체인 DEX 프로토콜을 사용해 코인을 전송합니다
- 같은 체인이나 다른 체인에 다른 종류의 코인이 있는 경우, 탈중앙화 거래소를 통해 해당 체인에서 필요한 종류의 코인으로 바꾸어 전송합니다. 이 경우에는 반드시 사용자의 승인이 필요하며, 사용자는 자신이 지불할 금액과 수신자가 받게 될 금액을 미리 확인할 수 있어야 합니다.
이는 사용자가 누군가에게 송금을 받기 위해 주소나 ENS(예: vitalik.eth@optimism.eth)를 복사해서 붙여넣는 경우에 대한 설명입니다. 한편 폴리마켓 사례처럼 디앱이 입금을 요청하는 경우, 가장 이상적인 방법은 web3 API를 확장하여 디앱이 체인별로 결제를 요청할 수 있도록 하는 것입니다.
이를 통해 지갑은 필요한 방식으로 해당 요청을 처리할 수 있게 됩니다. 원활한 사용자 경험을 위해서는 getAvailableBalance 요청을 표준화해야 하며, 지갑은 보안성과 전송의 편의성을 최대한 높이기 위해 사용자 자산을 어느 체인에 저장할지 신중히 결정해야 합니다.