비탈릭 부테린: 암호화 결제에 대한 나의 개인적인 경험과 작은 조언
작성자:Vitalik Buterin
편집:Katie 구,Odaily 별자리 일보
2013년, 나는 샌프란시스코의 인터넷 아카이브 옆에 있는 스시 가게에 갔는데, 그곳에서 비트코인 결제를 받는다고 들어서 시도해 보려고 했다. 결제할 때 비트코인으로 결제해 달라고 요청했다. QR 코드를 스캔하고 "전송"을 클릭했다. 놀랍게도 이 거래는 성공하지 않았다. 거래는 이미 전송된 것 같았지만, 식당에서는 받지 못했다. 다시 시도했지만 여전히 아무런 결과가 없었다. 나는 곧 내 모바일 인터넷이 잘 작동하지 않는다는 문제를 발견했다. 나는 50미터 이상 걸어가서 근처의 인터넷 아카이브에 가서 그곳의 Wifi를 사용해 거래를 전송할 수 있었다.
교훈: 인터넷은 100% 신뢰할 수 없다. 우리는 고객이 거래 데이터를 상점에 직접 전송할 수 있도록 하는 현장 결제 시스템과 같은 더 나은 방송 방법이 필요하다(NFC 및 고객이 QR 코드를 표시하는 기능 등).
2021년, 나는 아르헨티나의 한 카페에서 나와 친구들에게 음료를 사주었다. 그들은 의도적으로 내가 암호화폐로 결제하길 원하지 않았다고 설명했다. 카페 주인이 나를 알아보고 암호화폐 거래의 한 계정을 보여주었기 때문에 나는 ETH로 결제하자고 제안했다(암호화폐 거래소 계정을 지갑으로 사용하는 것은 라틴 아메리카의 현장 결제의 표준 방식이다). 불행히도, 내 첫 번째 0.003 ETH 거래는 거래소의 최소 예치금인 0.01 ETH보다 낮아서 수락되지 않았다. 나는 0.007 ETH를 다시 보냈다. 곧 양측의 거래가 확인되었다(나는 3배의 돈을 더 지불하는 것에 개의치 않았다, 그냥 팁으로 생각했다).
2022년, 나는 다른 곳에서 차를 사려고 했다. 첫 번째 거래는 실패했는데, 내 모바일 지갑의 기본 거래가 21000 Gas만 전송했기 때문이고, 수신 계좌는 추가 Gas가 필요한 계약이었다. 두 번째 거래를 시도했지만, 내 모바일 지갑 UI가 고장 나서 Gas 제한 필드를 아래로 스크롤하고 편집할 수 없었다.
교훈: 화려하고 세련된 사용자 인터페이스보다 간단하고 안정적인 사용자 인터페이스가 더 좋다. 하지만 동시에 대부분의 사용자들은 Gas 제한이 무엇인지조차 모르기 때문에 우리는 정말로 더 나은 기본 설정이 필요하다.
많은 경우, 내 거래가 블록체인에서 수락되고 서비스가 거래를 확인하는 사이에 놀라울 정도로 긴 지연이 발생한다. 어떤 경우에는 그들의 결제 시스템에 문제가 있는지 걱정하기도 했다.
많은 경우, 거래를 전송하고 해당 거래가 블록에 수락되는 사이에 길고 예측할 수 없는 시간 지연이 발생한다. 때로는 거래가 몇 초 안에 수락될 수 있지만, 다른 경우에는 몇 분 또는 몇 시간이 걸릴 수 있다. 최근 EIP-1559는 이를 크게 개선하여 대부분의 거래가 다음 블록에서 수락되도록 보장했으며, 최근의 Merge(합병)는 블록 시간을 안정화하여 이를 더욱 개선했다.
이 보고서의 차트는 Yinhong(William) Zhao와 Kartik Nayak이 작성했다.
그러나 이상치는 여전히 존재한다. 만약 많은 사람들이 거래를 전송하는 동시에 거래를 전송하고 기본 수수료가 급등한다면, 기본 수수료가 너무 높아 거래가 수락되지 않을 가능성이 있다. 더 나쁜 것은, 지갑의 사용자 인터페이스가 이를 잘 표시하지 못한다는 것이다. 명확한 빨간 경고도 없고, 이 문제를 해결하기 위해 무엇을 해야 하는지에 대한 명확한 지시도 거의 없다. 전문가조차도 이러한 상황에서 더 높은 "최대 기본 수수료"(max-basefee)를 가진 새로운 거래를 발행하여 거래를 "가속화"해야 한다는 것을 알고 있지만, 일반적으로 이를 수행할 수 있는 버튼이 어디에 있는지 사용자들은 잘 모른다.
교훈: 거래 설계에 대한 사용자 경험(UX)은 개선이 필요하다. 현재 간단한 수정이 가능하다. Brave 지갑 팀이 이 문제에 대한 내 제안을 진지하게 고려해 주어 감사하며, 먼저 최대 기본 수수료 한도를 12.5%에서 33%로 높였고, 최근에는 "블록 거래"의 알림을 사용자 인터페이스에서 더 명확하게 만드는 방법을 탐색하고 있다.
2019년, 나는 사회적 복구 지갑(social recovery wallet)의 초기 시도를 테스트하고 있었다. 이 지갑은 높은 수준의 보안성과 더 나은 사용성을 제공하는 업데이트된 스마트 계약 지갑이다. 내가 좋아하는 스마트 계약 기반 접근 방식과는 달리, 그들의 접근 방식은 Shamir의 비밀 공유를 사용하여 계정의 개인 키를 다섯 개의 부분으로 나누는 것이었다. 이렇게 하면 세 개의 부분만으로도 개인 키를 복구할 수 있다. 사용자는 5명의 친구(현대 용어로는 "보호자")를 선택하고, 그들에게 별도의 모바일 애플리케이션을 다운로드하도록 설득하고, Firebase를 통해 사용자의 지갑과 친구의 애플리케이션 간에 암호화된 연결을 생성하기 위한 확인 코드를 제공해야 했다.
이 방법은 곧 내 지갑에 문제를 일으켰다. 몇 달 후, 내 지갑에 문제가 생겼고 복구 프로그램을 사용해야 했다. 나는 친구들이 그들의 애플리케이션을 통해 나와 함께 복구 과정을 완료하도록 했지만, 일이 계획대로 진행되지 않았다. 그 중 두 명은 개인 키 조각(key shard)을 잃어버렸고, 이는 그들이 휴대폰을 바꾸고 복구 애플리케이션을 이동하는 것을 잊어버렸기 때문이다. 세 번째 이유는 Firebase 연결 메커니즘이 오랫동안 작동하지 않았기 때문이다. 결국 우리는 문제를 해결할 방법을 찾았고 개인 키를 복구했다. 그러나 몇 달 후, 지갑에 다시 문제가 생겼다. 이번에는 일반 소프트웨어 업데이트가 실수로 애플리케이션의 저장소를 초기화하고 개인 키를 삭제했다. 하지만 나는 복구 프로그램에 참여할 파트너를 충분히 추가하지 않았고, Firebase 연결 메커니즘이 너무 나빠서 성공적으로 할 수 없었다. 나는 결국 소량의 비트코인과 ETH를 잃게 되었다.
교훈: 개인 정보 공유와 관련된 오프체인 사회적 복구는 정말로 취약하며, 다른 선택지가 없을 때만 선택해야 하는 나쁜 아이디어이다. 복구 프로그램에 참여하는 친구(보호자)는 별도의 애플리케이션을 다운로드할 필요가 없으며, 만약 애플리케이션이 이러한 특별한 상황을 위한 복구에만 사용된다면 쉽게 잊어버리고 잃어버릴 수 있다. 또한 독립적인 중앙화된 통신 채널이 다양한 문제를 일으킬 수 있다. 반대로, 복구 프로그램에 참여하는 보호자의 방식은 그들의 ETH 주소를 제공하도록 하고, 복구는 스마트 계약을 통해 ERC-4337 계정 추상화 지갑을 사용하여 완료되어야 한다. 이렇게 하면 보호자는 자신의 이더리움 지갑을 잃지 않는 것만으로도 충분하다.
2021년, 나는 Tornado Cash를 사용할 때 비용을 절감하기 위해 "자기 중계"(self-relay) 옵션을 사용하려고 했다. Tornado Cash는 "중계"(reply) 메커니즘을 사용하여 제3자가 거래를 블록체인에 푸시한다. 왜냐하면 출금할 때 출금 주소에 토큰이 없기 때문에, 예치 주소로 거래 수수료를 지불하고 싶지 않기 때문이다. 이는 두 주소 간에 공개 링크를 생성하게 되며, 이는 Tornado Cash가 방지하고자 하는 문제이다. 문제는 중계 메커니즘이 일반적으로 비쌌고, 중계는 거래의 실제 Gas 비용보다 훨씬 높은 비율의 수수료를 부과할 수 있다는 것이다.
비용을 절감하기 위해, 나는 첫 번째 소액 출금 시 중계 메커니즘을 사용하여 수수료가 낮았고, 그 후 두 번째 더 큰 출금을 위해 Tornado Cash의 "자기 중계" 기능을 사용하여 중계를 사용하지 않았다. 문제는 내가 실수로 예치 주소에 로그인할 때 잘못된 조작을 해서 예치 주소가 수수료를 지불하게 되었고, 출금 주소가 아니라는 것이다. 이로 인해 두 주소 간에 공개 링크가 생성되었다.
교훈: 지갑 개발자는 개인 정보 문제를 더 명확하게 고려하기 시작해야 한다. 또한 우리는 중앙화된 또는 심지어 "연합 중계"의 필요성을 없애고 중계 역할을 상품화할 수 있는 더 나은 계정 추상화 형태가 필요하다.
다른 문제들
많은 애플리케이션이 여전히 Brave 지갑이나 Status 브라우저에서 작동하지 않는다. 이는 그들이 제대로 조사하지 않고 metamask 특정 API에 의존하기 때문이다. Gnosis Safe조차도 오랫동안 이러한 지갑과 함께 작동하지 않아, 나는 확인을 위해 나만의 미니 Javascript Dapp을 작성해야 했다. 다행히 최신 사용자 인터페이스가 이 문제를 해결했다.
ERC 20의 Etherscan에서의 거래 전송 페이지는 예를 들어 https://etherscan.io/address/0xd8da6bf26964af9d7eed9e03e53415d37aa96045#tokentxns와 같은 웹사이트에서 사기 정보를 쉽게 전송할 수 있다. 누구나 새로운 ERC 20 토큰을 생성할 수 있으며, 이는 내가 다른 사람에게 토큰을 보냈다고 주장하는 로그를 발행할 수 있다. 이는 때때로 사람들이 내가 어떤 사기 토큰을 지지한다고 믿게 만들기 위해 사용되며, 나는 실제로 그것에 대해 들어본 적이 없다.
Uniswap은 토큰을 교환하고 출력을 다른 주소로 보낼 수 있는 매우 편리한 기능을 제공했다. 내가 USDC로 누군가에게 지불해야 하지만, USDC가 없을 때 이 기능은 정말 편리했다. 지금은 이 인터페이스가 이 기능을 제공하지 않아서, 나는 변환한 후 별도의 거래를 보내야 하며, 이는 불편하고 더 많은 Gas를 낭비하게 된다. 나는 나중에 Cowswap과 Paraswap이 이 기능을 제공한다는 것을 알게 되었지만, 현재 Paraswap은 Brave 지갑과 함께 작동하지 않는 것 같다.
이더리움 로그인을 사용하는 것은 좋은 선택이지만, 여러 장치에서 로그인하려고 할 때 이더리움 지갑이 한 장치에서만 사용 가능하다면 여전히 사용하기 어렵다.
요약
좋은 사용자 경험은 매우 중요하다. 겉보기에는 깔끔하고 정돈된 사용자 인터페이스가 0.723%의 시간 동안 이상하고 설명할 수 없는 일을 한다면, 이는 사용자에게 더 많은 실제 존재하는 세부 사항 문제를 노출하는 사용자 인터페이스보다 더 큰 문제를 초래할 것이다. 문제를 직접 노출하는 것은 적어도 사용자가 무슨 일이 일어나고 있는지 이해하기 쉽게 해주고, 문제의 원인을 알고 해결할 수 있게 해준다.
높은 거래 수수료라는 가장 중요한 문제 외에도, 사용자 경험은 많은 이더리움 사용자(특히 남반구 사용자)가 종종 블록체인 기반의 분산 대안 대신 중앙화된 솔루션을 선택하는 주요 이유이며, 블록체인 기반의 분산 대안은 권력을 사용자와 그들의 친구 및 가족 또는 지역 사회에 맡긴다. 수년 동안 사용자 경험은 큰 발전을 이루었다. 특히 EIP-1559 이전의 평균 거래가 완료되기까지 몇 분이 걸리던 것이 EIP-1559와 합병 이후 평균 거래가 몇 초로 줄어들어 이더리움을 사용하는 것이 매우 즐거워졌다. 그러나 이 길을 개발하는 데는 여전히 많은 장애물이 있다.