원작: 류촨체인
꽃 한 송이 날리는데 바람은 만 리를 떠돌아 슬프구나. 내 눈에도 꽃이 보이고, 내 입술에도 술이 보이고 싶다.
5월 암호화폐 시장, 6만 칼에 비트코인(BTC)이 비틀거리고 봄꽃은 붉게 떨어진다. 매우 활기찬 것은 없지만 호수 주변을 돌아 다니며 푸른 물과 산을 바라보며 마음은 조용하고 위치는 멀리 떨어져 있습니다.
BTC는 암호화폐 산업의 뿌리입니다. 총 2,100만 개라는 상한선은 BTC의 뿌리입니다. 이 마법의 숫자에서 모든 것이 펼쳐집니다. 그런데 왜 그런 숫자일까요?
2020년 12월 5일자 기사 "왜 최대 2100만 비트코인이 존재할까요?"에서 티칭 체인은 이 숫자를 계산하는 방법을 설명합니다. '라는 기사에서 이 숫자의 계산을 설명했습니다. 짧은 버전은 다음과 같습니다:
1. 블록당 50 BTC
2. 21만 블록마다 수익률이 절반으로 감소
사용하면 등가급수 합계를 사용하면 총 최종 BTC 생산량은 (50 + 25 + 12.5 + 6.25 + 3.125 + ...)라는 것을 쉽게 계산할 수 있습니다. x 210,000 = 2,100만 개.
또한 '채굴' 난이도를 조정하여 대략 10분마다 새로운 블록이 생성되도록, 즉 시간당 6개의 새로운 블록이 생성되도록 하면 21만 개의 블록은 지구상에서 약 4년에 해당하는 양이 됩니다.
이것이 비트코인의 4년 반감기의 유래입니다.
그러나 이는 확립된 사실에 대한 설명일 뿐입니다. 우선, 세부 사항에 대한 조사가 부족하고, 비트코인 발명가인 사토시 나카모토가 왜 그런 숫자를 선택하고 설계했는지에 대한 설명이 부족합니다.
첫째, 세부 사항입니다.
먼저, 2100만 개는 2100만 개가 아니라 2,099,999,997,690,000개이고, 그 뒤에 오는 숫자는 2100만 개보다 1억 배 큰 약 210억 개입니다. 비트코인 시스템 내부에서는 이 1조 달러 규모의 정수가 전부입니다.
BTC를 소수점 이하 8자리까지 정수로 '표시'하면 2,0,99 9,99 9.97 690,000이 됩니다. 여기서 저는 공백을 사용해 위의 천분위를 정수로 암시했습니다. 사토시 나카모토가 소수점 이하 8자리를 선택한 것이 사실 조금 이상하다는 것을 한눈에 알 수 있는데, 소수점 이하 8자리를 가진 BTC의 정수 부분의 쉼표 분할점이 시스템에서 실제 정수의 쉼표 분할점과 일치하지 않게 되기 때문입니다.
소수점 이하 8자리, 즉 1억분의 1은 서양식 소수점 이하입니다. 우리 모두 알다시피 영어에서는 숫자를 수천 단위로 나누기 때문에 계산 단위는 수천, 수백만, 수십억, 수조입니다. 영어에는 "십억"과 같은 단위가 없습니다. 중국어 계산 방법은 약간 다르며 4자리, 즉 1만 분의 1로 나뉘며 만, 억, 조가 있습니다.
2100만 억을 조 단위로 나누면 2099 9999 9769 0000, 소수점이 8자리인 2100만은 2099 9999.9769 0000과 같이 각각 4자리씩 4개의 하위 섹션이 있어 혼동할 염려가 없습니다. 소수점 이하 8자리, 1억 분의 1처럼 보이는데, 이는 매우 동양적입니다.
위의 등비급수(50 + 25 + 12.5 + 6.25 + 3.125 + ...)는 실제로 무한한 수열이 아닙니다. 는 실제로 무한급수가 아니라 0.0000 0001로 줄어든 다음 반으로 줄어들면 0이 됩니다. 따라서 이것은 잘린 무한급수이며, 그 합은 무한급수의 합인 100보다 작으므로 210,000을 곱하면 최종 결과도 2100만보다 약간 작아집니다.
셋째, 내러티브의 첫 번째 포인트인 소수점 이하 8자리와 소수점은 '표시' 수준의 디자인일 뿐이라는 점에 유의하세요. 시스템 내부에는 수조 개의 정수만 존재합니다.
'표시'에 불과하기 때문에 소수점은 실제로 이동할 수 있습니다. 지금은 소수점 이하 8자리를 가리키고 나중에는 소수점 이하 5자리 또는 4자리를 가리킬 수 있습니다. 예를 들어 20,999,999,976.90000(소수점 이하 5자리) 또는 2099 9999 9769.0000(소수점 이하 4자리)을 입력할 수 있습니다.
그러면 소수점 8자리에서 1 비트코인은 소수점 5자리로 이동하면 1,000으로 표시되고 소수점 4자리로 이동하면 10,000으로 표시됩니다. 따라서 0.001 또는 0.0001 BTC였던 것이 이제 1로 표시됩니다.
이 시프트에 대한 아이디어는 티칭 체인이 조작한 것이 아니라 사토시 나카모토의 실제 아이디어입니다. 2009년 4월 12일에 마이크 헌에게 보낸 사토시 나카모토의 답장에서[1] 그는 다음과 같이 썼습니다."코인 수와 분배 일정에 대한 저의 선택은 교육받은 추측이었습니다. 네트워크가 일단 시작되면 고정되어 있고 우리는 그것에 갇혀 있기 때문에 어려운 선택이었습니다. 가격을 기존 통화와 비슷하게 만들 수 있는 것을 고르고 싶었지만 미래를 모르는 상황에서 그것은 매우 어렵습니다. 비트코인이 작은 틈새시장으로 남는다면 기존 통화보다 단위당 가치가 떨어질 것이고, 비트코인이 세계 상거래의 일부에 사용된다고 상상하면 전 세계 상거래에 사용된다고 가정하면 전 세계에 2,100만 개의 코인만 존재할 것이므로 단위당 가치가 훨씬 더 높아질 것입니다. 값은 64 비트 정수입니다. 소수점 이하 8자리로 표시되므로 1코인은 내부적으로 100000000 로 표시됩니다. 일반적인 가격이 작아지면 세분화할 수 있습니다. 예를 들어 0.001의 가치가 1유로인 경우 소수점 표시 위치를 변경하는 것이 더 쉬울 수 있으므로 1비트코인이 있다면 이제 1000으로 표시되고 0.001은 1000으로 표시되며 0.001은 1유로로 표시됩니다. 0.001은 1로 표시됩니다."
"코인 수와 발행 일정에 대한 저의 선택은 신중한 결정이었습니다. 네트워크가 일단 가동되고 나면 고정되어 꼼짝할 수 없기 때문에 어려운 선택이었죠. 기존 통화와 가격이 비슷한 (숫자를) 선택하고 싶었지만, 미래를 알 수 없는 상황에서 그렇게 하기는 어렵습니다. 결국 저는 중앙값을 선택했습니다. 비트코인이 틈새 화폐로 남는다면 그 단위 가치는 기존 화폐보다 낮아질 것입니다. 비트코인이 세계 상거래의 일부에 사용된다고 상상해보면 전 세계에 비트코인이 2,100만 개밖에 없으므로 단위 가치는 더 높아질 것입니다. 코인의 가치는 소수점 이하 8자리 64비트 정수로 1코인은 내부적으로 100,000,000으로 표현되며, 일반적인 (애플리케이션 시나리오의) 가격이 작아지면 충분히 세분화할 수 있습니다. 예를 들어 0.001의 가치가 1유로인 경우 소수점 표시 위치를 변경하는 것이 (보기와 사용이) 더 쉬울 수 있으므로 1비트코인이 있다면 1000으로 표시하고 0.001은 1로 표시합니다."
일부 사람들은 널리 보급된 64 비트 컴퓨터에서 64비트 이진수를 사용하여 정수와 소수(일명 부동 소수점 숫자)를 모두 표현하는 경우 부동 소수점 숫자의 정수 부분으로 표현할 수 있는 것의 상한으로 정수를 제한하는 것이 가장 안전하다고 말합니다.
컴퓨터 원리에 대해 조금이라도 아는 사람이라면 컴퓨터 내부에는 소수점이 없고 0과 1이 전부라는 것을 알고 있습니다. 소위 64비트 정수는 64개의 0 또는 1로 구성된 이진 정수입니다. 십진수로 환산하면 2^64 = 18446744073709551616. 이 숫자는 2100조보다 훨씬 큽니다. 그러나 컴퓨터가 부동 소수점 숫자를 처리하려면 64비트 중 일부를 분할하여 분수 부분을 표현하고 더하기 또는 빼기 기호를 위해 1비트를 남겨야 합니다. 이것이 부동소수점 숫자 인코딩을 위한 IEEE 754 표준이 되었습니다. 이 표준은 배정밀도 부동소수점 숫자를 다음과 같이 64비트 2진수로 인코딩하도록 정의합니다.
이러한 방식으로 정수 부분에는 53 비트 만 사용할 수 있습니다. 즉 최대 2^53 = 9007199254740992. 그리고 결과가 정수인지 쉽게 테스트하려면 2^51 = 2251799813685248. 이런 식으로 22 (수백억 단위)를 선택할 수 있지만 22는 그렇지 않습니다. "삼각형 숫자"가 아니므로 사토시 나카모토는 21(백만억)을 선택했습니다.
따라서 많은 사람들은 사토시 나카모토가 선택한 2,100조는 조, 비트코인 수와 관련된 계산을 처리하는 다양한 프로그래밍 언어를 크게 용이하게 합니다.
그러나 사토시 나카모토의 이메일을 읽은 후 티치체인은 사토시 나카모토가 그렇게 복잡한 생각을 하지 않았을지도 모른다고 생각합니다. 아니면 생각은 했지만 전체 이야기를 다 말하지 않았을 수도 있습니다. 그는 42조와 같은 다른 수치도 고려했지만 너무 크다고 느껴서 21조로 타협했다고만 말했습니다. 2011년 1월 10일 마이크 헌의 이메일[2]에 대한 사토시 나카모토의 답장에서 그는 다음과 같이 썼습니다."블록당 10분으로 균등하게 계산됩니다:
21000000 / (50 BTC * 24시간 * 365일 * 4년 * 2) = 5.99 블록/시간
"나는 그것을 364.58333 일/년으로 퍼지했다. 50 BTC에서 25 BTC로 반감되는 것은 210000 블록 또는 약 3.9954년 후이며, 이는 리타겟팅 메커니즘의 최선책에 따라 대략적인 수치입니다.
"100 BTC와 4,200만 개 정도를 생각했지만 4,200만 개는 높은 것 같았습니다.
"일반적인 금액이 익숙한 곳에 있기를 원했습니다. 일반적인 금액이 익숙한 범위에 있기를 원했습니다. 100,000 단위를 던지면 부족하다고 느끼지 않습니다. 뇌는 더 잘할 수 있습니다. 0.01에서 1000까지의 숫자를 다룰 수 있습니다.
"정말 커지면 십진수가 두 자리를 이동하고 센트가 새로운 동전이 될 수 있습니다."
"정말 커지면 십진수가 두 자리를 이동하고 센트가 새로운 동전이 될 수 있습니다."
"정말 커지면 십진수가 두 자리를 이동할 수 있습니다. 정말 커지면 십진수가 두 자리를 이동할 수 있고 센트가 새로운 코인이 됩니다."
사토시 나카모토는 타이밍의 매개변수를 먼저 설정한 다음 블록 수율과 총량을 조정하고 어느 정도의 숫자가 적절한지 고민한 것으로 보입니다.
사토시 나카모토가 보기에 대부분의 사람들이 손에 쥐고 있는 BTC의 수는 0.01에서 1,000개 사이여야 하며, 매번 6자리 또는 7자리 코인을 받는 것은 희소성이 부족하기 때문에 바람직하지 않다고 생각했습니다.
이것은 총 2,100만 개라는 수치의 세부적인 내용입니다.