
디파이에 소액을 넣어봤을 때 가장 오래 망설인 건 수익률보다 지갑에 뜬 ‘승인’ 버튼이었다. 코인은 이미 샀는데, 어떤 계약에 내 토큰을 쓸 권한까지 줘야 한다니 처음엔 감이 잘 안 왔다. 그때부터 스마트 컨트랙트 코인을 볼 때는 가격표보다 그 코인이 어디에서, 어떤 권한으로 쓰이는지 먼저 확인한다.
코인과 스마트 컨트랙트의 관계부터 구분한다
스마트 컨트랙트는 블록체인에 올려둔 프로그램이다. 정해진 조건에 따라 송금이나 교환 같은 동작을 실행한다. ‘스마트 컨트랙트 코인’이라는 말은 범위가 넓다. 이더리움의 ETH처럼 네트워크 수수료를 내는 자산을 가리키기도 하고, 그 네트워크의 스마트 컨트랙트가 발행한 토큰을 뜻하기도 한다. 둘은 가격이 움직이는 이유와 확인할 위험이 다르다.
예를 들어 이더리움에서 발행된 ERC-20 토큰을 거래할 때는 토큰 자체와 별개로 수수료를 낼 ETH가 필요하다. 또 토큰이 어떤 서비스의 이용권처럼 쓰인다고 해서 서비스 이용량이 곧바로 토큰 가격 상승으로 이어지는 것도 아니다. 수수료가 누구에게 돌아가는지, 이용자가 반드시 그 토큰을 사야 하는지, 새 토큰이 계속 풀리는지를 따로 봐야 한다.
사기 전에 주소와 공급량을 맞춰 본다
2017년 불장 끝물에는 이름이 익숙하다는 이유만으로 매수 버튼을 누른 적이 있다. 지금은 같은 이름의 토큰이 여러 네트워크에 있을 수 있다는 점부터 경계한다. 프로젝트가 공식적으로 안내한 계약 주소와 거래소의 입출금 네트워크, 블록 탐색기에 표시된 주소가 일치하는지 확인한다. 이름이나 로고만 같아서는 같은 자산이라고 보기 어렵다.
그다음에는 유통량과 앞으로 풀릴 물량을 본다. 현재 유통량이 1억 개이고 향후 1년 동안 5천만 개가 추가로 풀린다면, 수요가 그대로일 때 기존 보유자에게 부담이 될 수 있다. 이 숫자는 가상의 예시지만 확인 방식은 같다. 프로젝트의 발행 일정과 블록 탐색기의 실제 공급량을 대조하고, 큰 지갑 몇 개에 물량이 몰렸는지도 살핀다. 거래소 지갑이나 보관 지갑이 큰 보유자로 잡힐 수 있으니 상위 지갑 비율 하나만 보고 단정하지는 않는다.
코드보다 먼저 권한과 거래 조건을 확인한다
초보자가 계약 코드를 전부 읽기는 어렵다. 그래도 블록 탐색기에서 소스 코드가 공개·검증돼 있는지, 운영자가 발행량을 늘리거나 거래를 중단할 권한이 있는지, 계약을 업그레이드할 수 있는지는 확인할 만하다. 업그레이드 기능은 오류를 고치는 데 쓰일 수 있지만, 운영 권한이 소수에게 집중돼 있다면 그만큼 신뢰해야 할 사람도 생긴다. 감사 보고서가 있더라도 검사한 계약 주소와 버전이 현재 쓰는 것과 같은지 봐야 한다. 감사는 위험을 줄이는 자료이지 손실을 막아주는 보증서는 아니다.
매수할 때는 거래량뿐 아니라 실제로 팔 수 있는지도 중요하다. 호가가 얇으면 표시 가격과 체결 가격이 크게 달라질 수 있다. 탈중앙화 거래소라면 거래 예상 화면에서 가격 영향과 최소 수령량을 읽어본다. 낯선 소형 토큰에 들어갈 때는 적은 금액으로 매수와 매도가 모두 되는지 확인하는 편이 낫다. 시험 거래에도 수수료가 들고, 정상적으로 한 번 팔렸다고 이후 거래까지 보장되는 것은 아니다.
지갑을 연결했다면 승인 범위를 남겨두지 않는다
스테이킹을 시험하면서 배운 건 ‘지갑 연결’과 ‘토큰 사용 승인’이 다르다는 점이다. 서비스를 이용하려고 승인한 금액이 무제한이면, 계약에 문제가 생겼을 때 위험에 노출되는 범위도 커질 수 있다. 승인 화면에서 대상 계약과 허용 금액을 읽고, 필요 금액만 허용할 수 있는 지갑이라면 범위를 좁힌다. 사용이 끝난 뒤에는 지갑이나 블록 탐색기의 승인 내역에서 남은 권한을 확인해 철회한다. 연결을 끊는 것만으로 사용 승인이 사라지지는 않는다.
나는 새 스마트 컨트랙트 코인을 볼 때 ‘얼마나 오를까’보다 먼저 ‘틀렸을 때 얼마나 잃을 수 있나’를 적어둔다. 주소를 확인해도 운영 권한이나 유동성 위험까지 없어지는 건 아니다. 이해하지 못한 기능에 큰돈을 넣지 않는 것, 그 단순한 기준이 상승장에서도 꽤 오래 도움이 됐다.
