
거래소에서 비트코인을 출금하고 입금 완료 표시를 기다릴 때마다 같은 생각을 한다. 화면의 숫자는 바로 바뀌는데, 내 거래가 되돌리기 어려운 상태가 되기까지는 시간이 더 걸린다. 7년간 거래소 잔고와 온체인 기록을 함께 보면서 배운 건 이 둘을 구분해야 한다는 점이다. 블록체인 원리도 그 차이에서 시작하면 이해하기 쉽다.
1. 서명은 누가 보낼 권한이 있는지 증명한다
비트코인을 보낸다는 건 파일 하나를 상대 지갑으로 옮기는 일이 아니다. 이전 거래에서 내가 받은 비트코인 중 어떤 것을 쓸지 지정하고, 받을 주소와 금액을 적은 새 거래를 네트워크에 알리는 과정이다. 내게 0.5 BTC로 기록된 거래 출력이 있고 그중 0.2 BTC를 보낸다면, 수수료를 제외한 나머지는 보통 내 거스름돈 주소로 돌아온다.
여기서 개인키로 만든 디지털 서명이 필요하다. 네트워크의 참여자는 공개된 정보로 서명이 유효한지 확인한다. 동시에 이미 쓴 비트코인을 다시 쓰려는 거래인지도 검사한다. 거래소 앱에 출금 요청을 넣었다고 이 검사가 끝난 것은 아니다. 거래소 내부의 출금 승인, 네트워크 전파, 블록 기록은 서로 다른 단계다.
2. 블록은 거래를 묶고 이전 기록에 연결한다
유효한 거래들은 블록에 묶인다. 비트코인 블록에는 거래 목록을 대표하는 값과 직전 블록의 해시가 들어간다. 해시는 입력 데이터로부터 계산한 짧은 지문 같은 값이다. 과거 거래 하나를 바꾸면 그 거래를 담은 블록의 값이 달라지고, 이어지는 블록과의 연결도 어긋난다.
그렇다고 기록 수정이 수학적으로 불가능하다는 뜻은 아니다. 비트코인처럼 작업증명을 쓰는 체인에서는 바꾼 블록부터 필요한 계산을 다시 하고, 그 사이 늘어난 정상 체인까지 따라잡아야 한다. 뒤에 블록이 많이 쌓일수록 공격에 필요한 계산량이 커진다. 그래서 거래소가 입금을 확인할 때도 ‘거래가 보인다’와 ‘몇 개 블록이 뒤따랐다’를 구분한다.
비트코인의 블록 생성 간격은 평균 약 10분을 목표로 한다. 확인이 6번 쌓이는 시간을 흔히 약 1시간으로 잡지만, 매 블록이 정확히 10분마다 나오는 것은 아니다. 6회 확인도 절대적인 보증서가 아니라 거래를 되돌릴 비용과 난도를 판단할 때 쓰는 기준이다.
3. 합의 규칙이 같은 장부를 유지한다
여러 컴퓨터가 장부 사본을 갖고 있으면 서로 다른 블록을 동시에 받을 수 있다. 이때 모두가 같은 거래 검증 규칙과 체인 선택 규칙을 적용한다. 비트코인에서는 채굴자가 계산 작업을 통해 블록을 제안하고, 다른 참여자는 그 블록의 거래와 작업증명이 규칙에 맞는지 확인한다. 계산을 많이 했다는 이유만으로 잘못된 거래를 받아들이지는 않는다.
‘해시파워 51%면 무엇이든 가능하다’는 설명도 그래서 부정확하다. 과반의 계산력을 확보한 공격자는 자신이 보낸 거래의 기록을 뒤집거나 특정 거래를 막을 가능성이 커진다. 하지만 남의 개인키를 알아내거나 공급량 규칙을 멋대로 바꿔, 검증하는 참여자에게 승인받을 수 있는 것은 아니다. 합의가 지키는 범위와 개인키가 지키는 범위를 따로 봐야 한다.
수수료 역시 이 과정과 연결된다. 비트코인 거래가 200가상바이트이고 수수료율을 가상바이트당 20사토시로 정했다면 수수료는 4,000사토시, 즉 0.00004 BTC다. 수수료율은 고정값이 아니다. 블록에 들어가려는 거래가 몰리면 높은 수수료를 낸 거래가 먼저 선택될 수 있고, 낮게 설정한 거래는 더 오래 기다릴 수 있다.
4. 온체인 숫자는 거래의 맥락까지 말해주지 않는다
장부가 공개돼 있다는 건 강력한 장점이다. 특정 주소의 이동 기록, 거래량, 거래소로 향한 입금 규모를 직접 확인할 수 있다. 다만 기록이 정확하다는 것과 그 기록의 의미를 정확히 해석했다는 것은 별개다. 활성 주소 10만 개가 곧 사용자 10만 명을 뜻하지는 않는다. 한 사람이 여러 주소를 쓸 수 있고, 거래소 한 곳이 많은 사람의 거래를 묶어 처리할 수도 있다.
거래소 주소로 1,000 BTC가 들어왔다는 수치도 마찬가지다. 매도를 준비하는 입금일 수 있지만, 거래소의 내부 지갑 이동이나 수탁 업무와 관련된 이동일 수도 있다. 나는 이런 숫자를 보면 주소 분류가 맞는지, 같은 시각 현물 거래량과 호가가 어떻게 움직였는지, 자금이 다시 빠져나갔는지를 함께 본다. 입금량 하나만으로 매도 압력을 확정하면 해석이 거래보다 앞서간다.
블록체인은 거래가 어떤 규칙으로 기록되고 이어졌는지 보여준다. 대신 참여자가 왜 자금을 옮겼는지까지 적어두지는 않는다. 시세가 급하게 움직이는 날일수록 확인 횟수와 실제 거래량을 먼저 보고, 온체인 지표에는 한 박자 늦게 의미를 붙이는 편이 내게는 더 안전했다.
