
확인 수와 체인 재구성: 최종은 얼마나 최종인가
당신의 거래가 확인되었습니다. 체크 표시도 보았습니다. 돈은 정산되었습니다 — 다만 "정산되었다"는 것이 하나의 상태가 아니라 하나의 스펙트럼임이 드러나고, 그 스펙트럼의 어디에 서 있는지는 체인과 금액, 그리고 누군가 그것을 되돌리는 데 얼마가 드는지에 달려 있습니다.
여기는 블록체인 작동 원리 가운데 세부가 실제로 당신이 무엇을 해야 하는지를 바꿔 놓는 몇 안 되는 대목이므로, 이십 분쯤 주의를 기울일 값어치가 있습니다.
확인이 실제로 세는 것
확인은 누군가가 찍어 주는 승인 도장이 아닙니다. 깊이의 측정입니다.
거래가 어떤 블록에 담기면 그 블록은 체인의 어느 높이에 앉습니다. 그 위로 채굴되는 블록 하나마다 그것을 한 겹씩 더 묻습니다. 확인 수란 그저 당신의 블록 위로 몇 개가 쌓였는지, 그 블록 자신을 포함해서 센 것입니다.
SSP는 이를 표준 방식으로 계산합니다. tipHeight - blockheight + 1. 그 +1은 하나 어긋난 오류가 아닙니다 — 가장 새로운 블록에 담긴 거래의 확인 수는 하나이지 영이 아닙니다. 영 확인이란 아직 멤풀에 있다는 뜻입니다. 퍼뜨려지긴 했지만 어디에도 담기지 않은 것이죠.
깊이가 무언가를 뜻하는 까닭은, 당신의 거래를 되돌리려면 그것을 담은 블록과 그 위에 쌓인 모든 블록을 갈아치워야 하기 때문입니다. 블록이 하나 늘 때마다 그 일은 더 어려워집니다. 작업 증명 체인에서 무언가를 되돌리는 일이 불가능해지는 법은 없습니다. 다만 꾸준히 비싸질 뿐이고, 어느 깊이에 이르면 그 비용이 누구든 얻을 수 있는 이득을 넘어섭니다.
재구성은 정상이지 공격이 아니다
여기가 사람들을 공연히 놀라게 하는 대목입니다. 짧은 체인 재구성은 일상적으로 일어나고, 그중 악의적인 것은 거의 없습니다.
지구 반대편의 두 채굴자가 몇 초 차이로 같은 높이의 블록을 풀 수 있습니다. 한순간 네트워크는 어느 블록이 꼭대기인지를 두고 정말로 갈라집니다. 그러다 다음 블록이 둘 중 하나 위에 내려앉고, 그 가지가 더 길어지고, 다른 블록은 고아가 됩니다. 고아가 된 블록에만 들어 있던 거래는 멤풀로 돌아가 곧 다시 채굴됩니다.
이것은 프로토콜이 설계된 그대로 작동하는 모습입니다. 그리고 한 번의 확인이 보기보다 약한 까닭도 바로 이것입니다 — 깊이 1의 거래는 아직 동전 던지기에서 질 수 있는 블록에 살고 있습니다.
깊은 재구성은 다른 종류의 짐승입니다. 어마어마한 해시 파워를 요구하거나, 이따금 더 기묘한 무언가를 요구합니다. Ravencoin의 합의 결함은 여느 평범한 재구성보다 훨씬 깊은 다시 쓰기를 강제했습니다. 누군가 공격해서가 아니라, 노드들이 규칙이 무엇인지를 두고 갈라섰기 때문이었죠. 드문 일입니다. 또한 "체인은 바뀔 수 없다"가 물리 법칙이 아니라 줄임말이라는 사실을 일깨워 줍니다.
여섯 확인은 어디서 왔는가
여섯 확인이라는 관행은 마법의 숫자가 아니고, 보편 법칙으로 의도된 적도 없습니다.
그것은 비트코인 백서 자체의 확률 계산에서 나옵니다. 해시 파워의 일정 비율을 쥔 공격자가 주어진 블록 수 뒤에 뒤에서 따라잡을 가능성은 얼마인가? 답은 깊이에 따라 지수적으로 떨어집니다. 여섯 블록은 성공 확률을 무시해도 좋은 영역으로 밀어냅니다 — 비트코인만큼 큰 체인에서 해시 파워의 소박한 소수를 쥔 공격자에 대해서는.
그 기울임꼴 단서의 모든 부분이 중요하고, 사람들이 어긋나는 지점이 바로 여기입니다. 비트코인에서의 여섯 확인은 지구상에서 가장 값비싼 연산의 대략 한 시간어치를 뜻합니다. 작은 작업 증명 체인에서의 여섯 확인은 누군가 오후 한나절 빌릴 수 있는 정도의 해시 파워를 뜻할 수도 있습니다.
이는 가정이 아닙니다. 더 작은 작업 증명 체인들 — 이더리움 클래식과 비트코인 골드가 그중에 있습니다 — 은 거래소를 겨냥한 진짜 이중 지불을 동반한 실제 51퍼센트 공격을 겪었습니다. 업계의 대응은 그 체인들을 버리는 것이 아니라 확인 요구치를 급격히 올리는 것이었습니다. 때로는 수천까지요. 그 비대칭이 교훈의 전부입니다. 확인 깊이는 그 체인이 블록 하나당 실제로 얼마만큼의 보안을 사들이는지에 견주어야만 의미를 가집니다.
지분 증명은 질문 자체를 바꾼다
명시적 최종성을 가진 체인에서는 모형이 정도가 아니라 종류에서 다릅니다.
이더리움의 검증자들은 주기적으로 투표해 체크포인트를 최종화합니다. 체크포인트가 한 번 최종화되면 — 대략 두 에포크, 열세 분 남짓 걸립니다 — 그것을 뒤집는 일은 누군가를 연산으로 앞지르는 문제가 아니게 됩니다. 예치된 전체 이더의 아주 큰 몫이 서로 모순되는 체크포인트에 투표했어야 하고, 그것은 탐지 가능하며 그 예치금은 파괴됩니다. 보장은 "이걸 되돌리려면 비쌀 것이다"가 아니라 "이걸 되돌리는 자는 증명 가능하게 막대한 돈을 잃는다"입니다.
이는 확률적 깊이보다 진정으로 더 강한 진술이고, 그래서 이더리움에서 최종성을 기다리는 일은 비트코인에서 블록을 세는 일과는 다른 종류의 기다림입니다. 솔라나도 낙관적으로 확인된 거래와 완전히 뿌리내린 거래 사이에 비슷한 선을 긋습니다.
실무적으로는, 작업 증명 체인에서는 깊이를 셉니다. 지분 증명 체인에서는 내 거래를 담은 블록이 최종화되었는지를 알고 싶어 하는데, 그것은 누적되는 총계가 아니라 예 또는 아니요의 물음입니다.
아무도 말하지 않는 비대칭
확인 수는 받을 때 중요합니다. 보낼 때는 거의 중요하지 않습니다.
누군가에게 돈을 보냈다면, 재구성으로 거래가 되돌려지는 것은 가벼운 불편입니다 — 멤풀로 돌아갔다가 다시 확인되고, 받는 쪽이 조금 더 기다릴 뿐입니다. 당신은 아무것도 잃지 않았습니다.
하지만 누군가 당신에게 돈을 보냈고, 얕은 확인만 믿고 물건을 건네거나 자금을 풀거나 상품을 부쳤다면, 재구성은 이제 존재하지 않는 지불의 대가로 무언가를 내준 것을 뜻합니다. 지금껏 의미 있었던 모든 이중 지불 공격이 이런 식으로 작동했습니다. 들어오는 돈에 너무 일찍 반응한 쪽을 노린 것이죠.
그러니 정직한 규칙은 단순합니다. 쓸 때는 한 번의 확인이 거래가 진짜임을 알려 주니 걱정을 접어도 됩니다. 낯선 이에게서 가치를 받을 때는, 요구하는 깊이가 걸린 금액에 따라 커져야 하고, 블록을 싸게 만들 수 있는 바로 그 체인들에서 당신의 신뢰는 줄어들어야 합니다.
SSP가 보여 주는 것, 보여 주지 않는 것
SSP의 활동 목록은 이진 표식을 줍니다. 확인됨 또는 미확인. 이는 의도된 것입니다. 압도적 다수의 일상 사용에서는 그 이진값이 답의 전부이기 때문입니다. 거래 줄을 펼치면 현재 체인 꼭대기에 견주어 계산된, 실시간 확인 수와 블록 높이를 얻습니다.
이제 정직한 한계입니다. SSP에서 확인 깊이를 조건으로 삼는 것은 아무것도 없습니다. 지갑은 방금 받은 금액에 비해 세 번의 확인이 얕다고 경고하지 않고, "충분함"이라는 개념 자체가 없습니다 — 숫자를 알려 주고 판단은 당신에게 남깁니다. 어떤 지갑도 실은 달리 할 수 없습니다. "충분함"은 그 돈으로 무엇을 하려는지에 달려 있고, 그것은 지갑이 알 수 없으니까요. 그러나 그것은 해석이 당신의 몫이라는 뜻이고, 초록색 체크 표시가 "되돌릴 수 없음"과 같은 주장이 아니라는 뜻이기도 합니다.
또 하나 기억해 둘 값어치가 있는 것은, 당신이 읽고 있는 확인 수가 당신의 지갑이 대화하고 있는 그 노드에서 온다는 점입니다. 깊이가 가장 중요해지는 바로 그런 종류의 사건 — 다툼이 있는 분기, 합의 결함, 체인 분열 — 이 벌어지는 동안이야말로 단일한 출처가 가장 미덥지 못한 때입니다.
지니고 있을 값어치가 있는 어림 규칙
영 확인은 지불이 아닙니다. 지불하겠다는 의사의 공표입니다. 얼굴을 맞댄 소액의 낮은 위험이라면 괜찮을 수 있습니다. 그 밖의 무엇에도 그것은 정산된 거래가 아닙니다.
한 번의 확인은 진짜이지만 얕습니다. 쓰는 데는 충분합니다. 믿지 못할 상대에게서 의미 있는 무언가를 받기에는 얇습니다.
여섯은 비트코인 규모의 관행이지 보편 상수가 아닙니다. 해시 파워를 싸게 빌릴 수 있는 체인에서 여섯 확인은 아주 적은 값어치일 수 있고, 옳은 숫자는 몇 자릿수 더 클 수도 있습니다.
지분 증명 체인에서는 세는 대신 최종성을 물으십시오. 최종화되었다는 말은 깊다는 말보다 범주적으로 더 강합니다.
깊이를 값어치에 맞추십시오. 삼십 초의 인내는 쌉니다. 되돌릴 수 없는 실수는 그렇지 않습니다.
바탕에 깔린 생각은 일단 이해되고 나면 조용히 마음을 놓이게 합니다. 암호화폐에서 수학적 증명이 최종적인 그런 방식으로 최종적인 것은 없습니다. 대신 당신이 얻는 것은 시간이 갈수록 가파르게 오르는 되돌림 비용, 그리고 행동하기 전에 그 비용이 얼마나 높아야 하는지를 스스로 정할 수 있는 능력입니다. 그것은 대부분의 사람이 자기에게 있다고 여기는 보장보다 약하고 — 몇 달 뒤에도 여전히 회수될 수 있는 지불에 대해 어떤 은행이 당신에게 해 줄 말보다 훨씬 정직합니다.


