비트코인

http://bitcoin.org/

Bitcoin. 분산화되고 익명화된 거래를 지원하는 전자화폐 체계이자 그 화폐 자체. 사토시 나카모토(Satoshi Nakamoto)가 2009년 1월에 발표한 것이 시초이며, 현재는 자원봉사자들로 구성된 오픈 소스 프로젝트로 그 명맥이 이어져 내려 오고 있다. 화폐로 쓰일 때는 흔히 BTC로 줄여 쓴다. (ISO 4217을 염두에 둔 약어이긴 하지만 당연히 공식적이진 않다.)

기술적인 부분을 모두 제껴 놓고 말하면, 비트코인은 세 가지 점에서 통상적인 화폐나 그 이전의 전자화폐들과 확연히 구분된다:

  • 모든 동작이 분산화되어 있다.1) 비트코인을 "망가뜨리고" 싶다면 전체 네트워크의 절반 이상을 점유해야만 하는데, 뒤에 살펴보겠지만 정말, 정말 어렵다.
  • 모든 거래는 공개되어 있지만 그 거래의 주체가 누구인지 알아내는 것은 어렵도록 설계되어 있다. 당장 거래의 주체는 주소(address)라 불리는 일종의 계좌로만 공개되어 있다 보니, 그 주소와 개인 정보를 이을 만한 게 없다면 실질적으로는 익명화되는 것이다. 물론 거래 자체는 공개되어 있으며 거래 당사자들에 의해 생성된 적법한 거래인지 확인하는 건 누구나 할 수 있다.
  • 통화 그 자체는 지속적으로 공급되며, 통화의 공급 방법은 항상 계획적인 디플레이션이 일어나도록 조정되어 있다. (모든 거래는 궁극적으로는 최초 통화의 생성까지 추적할 수 있다.) 이는 초기수용자의 사용을 권장하고, 추후에는 비트코인 네트워크의 동작에 큰 역할을 하는 트랜잭션 처리를 할 만한 동인을 제공하기 위함인데, 물론 당연하지만 경제학적으로 말이 되냐는 거센 비판에 직면했다(…). 여기에 대해서는 후술한다.

비판이야 어쨌건, 발표 이후 비트코인은 기존 화폐의 문제점을 해결할 수 있는 대안으로 상당히 급부상했으며, 아나키즘 진영2)과 기존 화폐의 규제를 피해 가기 위한 블랙마켓 운영자·사용자가 특히 큰 관심을 보이고 있다. 또한 초기 사용자들이 더 큰 이득을 얻는 구조 때문에 매우 실험적인 프로젝트임에도 불구하고 사용량은 제법 많은 편이다. 2012년 8월 현재 유통되고 있는 모든 비트코인의 가치는 대략 1억 $ 안팎에 달하는데—환율이 매우 요동치고 있기 때문에 이 수치 또한 매우 요동치긴 한다—통상의 화폐와 비교하면 수만배 차이나는 가치긴 하지만3) 비트코인이 어떤 준비도 없이 무에서 시작했다는 걸 생각하면 분명히 주목할 만한 일이다.

기술적 개요

비트코인을 사용하는 데 있어서 다음 사항을 알 필요는 없지만, 왜 비트코인이 특정한 방식으로 동작하는지를 이해하려면(예를 들어서 왜 돈을 받고 나서 즉각 쓸 수 없는가? 등등) 좀 더 기술적인 내용을 알 필요가 있다. 따라서 여기서는 실제 구현에 대한 내용을 최대한 배제하고 개념적인 부분을 중심으로 비트코인의 동작을 설명할 것이다. 그렇다고 쉬운 내용인 건 아니고, 적어도 암호학적해시비대칭암호가 어떻게 동작하는지에 대한 기본적인 이해는 있어야 한다.

여기에 있는 내용은 기본적으로 비트코인 위키를 나름대로 요약한 것이며, "현재"라는 말은 편의상 2012년 8월 현재를 가리킨다.

블록과 체인

비트코인은 아주 거시적으로는 분산되어 있는 거래 데이터베이스를 기반으로 움직인다. 거래 데이터베이스는 다시 블록(block)이라 불리는 여러 거래의 묶음으로 구성되어 있으며, 이 블록들은 일명 탄생 블록(genesis block)이라 불리는 최초의 블록을 뿌리로 하는 트리 구조를 이룬다. 고로 뿌리부터 시작해서 최신 블록까지 가는 경로는 여럿이 될 수 있는데, 각 경로를 블록 체인(block chain) 또는 체인(chain)이라 부르고 체인에 포함된 모든 거래들은 서로 모순되지 않는다–예를 들어, 같은 돈을 두 번 사용(double-spending)하지 않아야 한다–는 게 보장된다. 하지만 서로 다른 체인 안의 거래는 서로 모순될 수도 있는 관계로, 하나의 체인을 골라서 해당 체인에 들어 있는 거래만을 공식으로 인정해야 하는데 이 체인을 주 체인(main chain)이라고 부른다.

각 블록들은 한 가지 중요한 특성을 가지는데, 블록의 암호학적해시 값이 블록에 기록된 수치보다 작아야 한다. (물론 블록 안에는 다른 내용을 바꾸지 않고 해시 값을 바꿀 수 있는 nonce 값이 들어 있다.) 암호학적 해시는 기본적으로는 랜덤한 함수와 동일하게 동작하므로, nonce를 바꿔가면서 특정 조건을 만족하는 해시를 찾을 확률은 그 조건에 해당하는 해시의 비율에 비례하게 마련이다.4) 따라서 블록을 "찾는" 행동 자체는 매우 많은 계산랑을 필요로 한다. 이런 형태를 작업증명(proof-of-work) 체계라 하여, 원래는 분산서비스거부공격(DDoS)을 방지하기 위해 만들어진 것이다.

이게 왜 비트코인에서 중요한 개념인가 하면, 주 체인은 가능한 모든 체인 중에서 각 블록을 찾을 확률의 곱이 가장 낮은 체인으로 정의되기 때문이다. 좀 더 엄밀하게 말하면, 블록의 난이도(difficulty)는 대략 블록을 찾을 확률의 역수에 비례하며 난이도의 합이 최대인 체인이 주 체인이 된다. 따라서 확률이 높은 체인을 마구 뿌린다 하더라도 주 체인을 따라잡으려면 비슷한 정도의 계산량을 투입하는 수 밖에 없으며, 네트워크의 전체 계산량 과반을 점유하지 않는 한 주 체인을 조작할 수 없다! 현재 비트코인 네트워크의 해시 속도는 초당 15조회(15Thash/s) 안팎. 주 체인에 들어갈 정도의 블록을 찾을 확률이 50%가 되려면 해시를 900조회 돌려야 한다는 소리다. 당연히 혼자 하기는 어려운 일이고, 실제로 하는 방법에 대해서는 후술.

블록의 난이도는 네트워크가 공유하는 것은 아니고 블록 자신에 기록되는데, 그렇다고 네트워크 전체가 공유하는 난이도 정보가 없는 건 아니다. 블록은 거래를 기록하는 기본적인 단위이기 때문에 블록이 너무 드물게 생성되면 거래가 처리되지 않기 때문이다. (그리고 뒤에서 살펴 보겠지만 너무 자주 생성되어서도 안 된다.) 네트워크 전체 난이도는 최근 2주간의 통계 기준으로 10분에 한 번씩 블록이 생성될 정도로 조정되며, 모든 클라이언트는 2주에 한 번(또는 14×24×6 = 2016블록마다 한 번) 통계를 확인해서 앞으로 생성할 블록의 난이도를 조정해야 한다. 따라서 네트워크에 얼마나 많은 클라이언트가 있고 얼마나 많은 계산이 필요하건간에 블록 생성 속도는 일정하게 유지된다.

덤으로, 주 체인에 속하는 블록이 충분히 오래 되었을 경우 클라이언트가 별도의 확인 없이 특정 해시를 가진 블록을 신뢰하는 게 가능하다. 이를 체크포인팅(checkpointing)이라 하며, 공식 클라이언트의 체크포인트는 대략 반년에 한 번 꼴로 추가되고 있다. 이는 최적화 목적 외에도 아주 옛날에 생성된 블록에다가 가짜 체인을 많이 만들어서 네트워크에 부하를 유발하는 걸 원천 차단하기 위한 목적이기도 하다.

거래

비트코인에서 거래(transaction)는 하나 이상의 입력과 하나 이상의 출력으로 이루어진다. 이 때 입력은 (해당 거래보다 이전에 생성된 블록에 있던) 다른 출력을 가리켜야 하며, 궁극적으로는 비트코인이 "생성"될 때까지 거슬러 올라갈 수 있다. 여기에 대해서는 마이닝을 참조.

비트코인이 생성되는 특별한 경우를 제외하면, 모든 거래의 모든 출력은 다른 입력에 의해 "소비"(spent)되거나 아니면 아직 "사용 가능"(redeemable)해야만 한다. (앞에서 언급했듯 블록을 만들 때는 먼저 이미 소비된 출력을 또 다시 소비하는 입력이 없다는 걸 검증해야 한다.) 새 거래에서 기존의 출력을 소비하려면 그 출력을 소비할 수 있는 권한이 있다는 걸 검증해야 하는데, 놀랍게도 비트코인 자체에는 이 권한에 대한 제한이 없다. 원한다면 아무나 꿀꺽할 수 있는 출력을 만들 수도 있다! 하지만 대부분의 경우 특정한 비밀키를 가지고 있는 사람만 그 출력을 사용할 수 있도록 제약이 걸려 있는데, 이 때문에 생기는 것이 바로 주소(address)이다.

주소는 쉽게 말하면 은행계좌번호와 유사한 개념으로 비트코인을 보낼 수 있는 대상이다. 이 주소라는 것이 사실은 비대칭암호공개키(의 해시)라서, 주소는 아무나 생성할 수 있으며 한 사람이 여러 개의 주소를 가지는 것도 가능하다. 주소는 그 주소로 거래를 할 때에만 비로소 비트코인 네트워크에 소개되기 때문에 주소를 많이 만든다고 네트워크에 부하가 걸리거나 하진 않는다. 일반적인 주소는 13jsMXPNdWYBNsPcYphT6cLJsgyd7JF4SZ5)처럼 생겼다. 좀 많이 기네

이 주소가 어떻게 사용되는가 하면, 거래의 입력과 출력에는 각각 스크립트(script)가 들어 있다. 이 스크립트는 FORTH 비스무리한데 제약 많고 튜링 완전하지 않게 설계된 스크립트언어로 쓰여 있으며, 출력을 가리키는 입력에 있는 스크립트(scriptSig)와 원래 출력에 있는 스크립트(scriptPubKey)를 합쳐서 검증을 통과해야만 해당 거래를 진행할 수 있다. 프로그래밍 언어 덕후들이라면 FORTH 같은 결합형프로그래밍언어의 특징을 잘 활용했다는 걸 바로 눈치챌 것이다 대부분의 스크립트는 다음 둘 중 하나에 속한다.

  1. 비트코인을 다른 주소에 전달할 경우, 입력에는 공개키와 거기에 대응하는 비밀키로 전체 거래를 서명한 값이 들어 가고, 출력에는 그 공개키가 주소와 일치하며 (앞에서 언급했지만 주소 자체는 공개키의 해시이다) 서명이 올바른지 확인하는 코드가 들어 간다. 따라서 해당 주소에 대응되는 공개키·비밀키 쌍을 모두 가진 사람만이 이 거래를 승낙할 수 있다.
  2. 반대로 상대에게 주소를 알려 주지 않은 채 비트코인을 받을 경우, 입력에는 거래의 서명이 들어가 있고 출력은 그 서명을 보내는 주소에 대응하는 공개키를 가지고 검증하는 코드가 들어 간다. 이 경우 보내는 쪽은 먼저 원하는 만큼의 금액을 써서 출력을 만든 뒤, 받는 쪽한테 그 출력을 검증할 수 있는 서명을 보내 준다. 물론 해당 서명을 가지고 있는 사람만이 이 거래를 승낙할 수 있다.

따라서 어떤 주소가 얼마만큼의 비트코인을 가지고 있다는 얘기는 첫번째 형태의 거래로 처리될 수 있는 출력이 그만큼 많이 있다는 소리일 뿐이다. 두번째 형태의 거래를 쓰거나, 아니면 완전히 다른 형태의6) 스크립트를 쓴다면 거래 주체를 추적하기는 훨씬 어려워진다(사실 주소만 써도 이미 어렵긴 하다). 비트코인에서 거래는 공개되어 있지만 거래 주체는 공개되어 있지 않다는 얘기는 여기서 유래한다.

거래의 입력에 들어 있는 비트코인의 합은 거래의 출력의 합보다 작을 수 없다(당연히). 그리고 기존 출력에 있는 비트코인의 일부만을 소비하고자 할 때도 남은 잔돈에 대응하는 출력이 있어야 한다. 대부분의 비트코인 클라이언트는 이 경우 새 공개키·비밀키를 생성해서 그 주소에 잔돈을 보내고, 나중에 그 잔돈이 필요할 때 해당 비밀키를 사용한다. (자기 자신한테 보낼 수도 있지만 이러면 잔돈을 사용한다는 것이 노출되어서 보통 그렇게 안 한다.) 그래서 겉으로 보이는 것과는 달리, 실제로는 생각보다 많은 주소를 동시에 사용할 수도 있다. 사용하고 있는 공개키·비밀키들은 지갑(wallet)이라 불리는 파일에 기록되며, 이 지갑 파일이 사라지면 잔돈의 주소조차 잃어버릴 수 있으니 매우 조심해야 한다.

거래의 입출력 외에도 거래에는 거래가 생성된 시각과, 그 거래가 블록에 실제로 포함될 때까지 기다려야 하는 시간 또는 블록 번호(lock time), 거래를 생성한 뒤에 서명을 바꾸지 않고 거래를 갱신하기 위한7) 순열 번호(sequence number) 등이 함께 있다. 이들은 입출력 스크립트와 함께 다양한 형태의 거래를 구현하는데 쓸 수 있다.

마이닝과 수수료

블록 생성은 비트코인 네트워크를 유지하는 매우 중요한 역할을 함에도 불구하고 그 비용이 매우 크기 때문에 블록을 생성할 만한 이유를 만들 필요가 있다. (선술했듯 비용은 DDoS를 방지하는 역할을 하기 때문에 비용을 줄일 수는 없다.) 이 때문에 등장한 개념이 마이닝(mining)과 수수료(transaction fee)다.

마이닝은 초기에 비트코인을 사용하는 사용자가 많지 않을 때 블록 생성을 권장하기 위한 제도로, 블록을 생성할 때마다 정해진 만큼의 돈, 즉 상금(reward)을 함께 생성한다. 즉, 매 블록에는 입력이 존재하지 않는 출력이 정확히 하나 존재하며, 출력 스크립트는 원하는 대로 설정할 수 있다. 생성할 수 있는 돈은 첫 21만 블록(거의 4년)은 50 BTC, 그 다음 21만 블록은 25 BTC, …식으로 감소하여, 궁극적으로는 비트코인의 총량이 2100만 BTC 이상이 될 수 없도록 설계되어 있다. 이는 비트코인의 자동 디플레이션에 매우 큰 역할을 하며, 특히 비트코인이 잘 정착되면 블록을 초기에 생성했던 사용자들이 이득을 얻을 거라는 기대를 할 수 있기에 초기 수용자의 유입에도 긍정적인 역할을 하게 된다. 물론 이를 폰지사기에 불과하다고 비판하는 사람들도 많이 존재한다. (이 주장 또한 찬반이 팽팽한 관계로 여기에서는 가치판단은 배제하도록 하겠다.)

한편으로 마이닝으로 얻을 수 있는 돈은 어쨌든 점차 줄어가기 때문에, 시간이 지날 수록 마이닝을 할 동인이 떨어지게 된다. 수수료는 마이닝과 더불어 블록 생성을 권장하기 위한 방법으로, 거래의 입력보다 출력이 적을 경우 그 차액을 블록 생성자가 사용할 수 있도록 한다. (이 차액은 새로이 생성된 비트코인과 함께 입력 없는 출력에 포함된다.) 이는 기술적으로는 두 가지 역할을 동시에 수행한다:

  • 블록을 생성하는 쪽에서는 비트코인 네트워크를 통해 전파된, 아직 블록에 들어가지 않은8) 거래 중 원하는 거래만을 생성할 블록에 포함시킬 수 있다. 이 경우 수수료가 높을 수록 블록에 그 거래를 (더 빨리) 넣을 가능성이 커지게 된다.
  • 입출력이 지나치게 많은 거래나 자잘한 돈을 수많은 거래로 나눠서 뿌리는 공격을 억제할 수 있다. 특정 크기 이상이거나 특정 금액 이하의 거래에 일정 이상의 수수료를 필요로 하게 하는 블록 생성자가 많아진다면 공격을 할 이유가 적어질 것이다.

비트코인의 발표 이후 마이닝은 지속적으로 매우 어려워져 왔다. 매우 초창기의 비트코인 클라이언트는 마이닝도 함께 수행하였으나, 2010년 7월에 GPGPU를 사용한 마이닝 기법이 도입되기 시작하면서 마이닝 전용 소프트웨어가 널리 쓰이게 되었고9), 한 사람이서 블록을 생성하는 게 무리가 되자 여러 사람이 함께 마이닝을 수행한 뒤 블록을 생성하면 작업량에 따라 이득을 분배하는 마이닝 풀(mining pool)이 2010년 10월에 등장하는 등 다양한 변화가 있었다. 그럼에도 불구하고 현재 상황은, 아직까지는 마이닝이 수수료보다는 몇십배 정도 더 이득이다. 그러나 2012년 말(예상)에 처음으로 블록 생성 상금이 반토막이 날 예정인지라 앞으로는 좀 더 수수료가 중요해질 것으로 보인다.

확인

비트코인에서 확인(confirmation)은 거래가 얼마나 많은 주 체인 블록에 포함되었는지를 나타낸다. 이 확인이라는 개념은 별 것 아닌 것 같지만 실은 굉장히 중요한 것이, 충분한 확인을 받지 않은 거래에서 유래한 출력은 사용할 수 없기 때문이다. 기본적으로 거래의 종류에 따라 필요한 확인의 숫자와 대응하는 평균적인 시간은 다음과 같다:

  • 일반 거래는 6회(1시간) 이상의 확인을 거쳐야 한다.
  • 블록 생성으로부터 유래한 비트코인은 100회(16시간 20분) 이상의 확인을 거쳐야 한다.

확인이 필요한 이유는 주 체인에 속했던 블록이 주 체인에서 빠지는 게 불가능하지만은 않기 때문이다. 물론 확인을 6회 받았다고 해서 블록이 안 빠진다는 얘기는 아니고, 몇 초 사이로 블록이 두 번 생성되는 통상적인 상황에서는 1시간동안 문제가 없으면 보통 문제가 없다고 가정하는 것이다. 마찬가지로 100회 제한도 다분히 임의적인 것이다.

당연한 얘기지만 확인 절차가 없으면 악의적인 사용자가 돈을 이중으로 소비하고 나서 그 소비가 원상 복구되기 전에 거기에 낚이는 게 가능하다. 하지만 보통의 통화는 이런 식으로 동작하지 않으니까 불편하게 마련인데, 이 때문에 확인 절차를 간소화하기 위한 몇 가지 방법이 논의되고 있다. 예를 들어:

  • 이중 소비를 안 한다고 믿을 수 있는 주소(green address)에 대해서는 거래가 네트워크에 전파되자 마자 확인된 걸로 가정할 수 있다. 예를 들어 수신자는 온라인 지갑 서비스에서 유래한 주소를 믿을 수 있는데, 이는 주소의 주인이 마음대로 거래를 조작하기 힘들다는 가정 때문에 가능하다.
  • 원래대로라면 이중 소비를 확인하려면 전체 데이터베이스가 필요할 수 있다. 하지만 데이터베이스 크기가 커지면 이런 것이 지속적으로 어려워지는데, 이를 방지하기 위해 최근 블록 몇 개에 들어 있는 출력까지만 검증하고 그 이전의 출력은 충분히 신뢰할 만하다고 가정할 수 있다. 이를 SPV(simplified payment verification)라고 하여 일부 클라이언트(BitcoinJ 등)가 시범적으로 지원하고 있다.

곁다리

다음은 비트코인의 기본적인 메커니즘에는 영향을 크게 주지 않지만 여전히 의미가 있는 내용들이다.

해시 알고리즘
블록 해시나 트랜잭션 해시를 구할 때는 SHA-256을 두 번 적용한다. 주소에 사용하는 해시는 (짧아야 하는 관계로) SHA-256을 먼저 적용한 뒤에 RIPEMD-160을 적용한다.
블록을 생성할 때는 블록에 포함된 모든 거래를 해싱하는 게 아니고, 거래들을 머클트리(Merkle tree)를 사용해 해시로 만든 뒤에 그 해시를 포함하는 헤더를 다시 해싱한다. 따라서 블록 생성을 할 때 거래 데이터를 함께 가지고 있을 필요가 없다.
서명 알고리즘
전자 서명에는 타원곡선서명알고리즘(ECDSA)이 사용되었으며, 좀 더 구체적으로는 secp256k1 곡선이 사용되었다. SEC 2에 따르면 대략 3072비트 RSA에 맞먹는다고 한다. 공개키에 사용하는 원 데이터는 물론 곡선 상의 좌표를 식별부호화규칙(DER)으로 표현한 것.
암호화 알고리즘
없다! 비트코인은 어떤 대칭암호비대칭암호(의 암호화·복호화 부분)도 쓰지 않는다. 물론 개별 서비스나 지갑 암호화 같은 거라면 모르겠지만.
네트워크 프로토콜
위에서는 네트워크 프로토콜에 대한 설명은 별로 안 되어 있는데, 이는 이 프로토콜이라는 것이 공통의 데이터베이스를 그다지 복잡하지 않은 전파 알고리즘으로 갱신하는 것에 불과해서 그렇다. 거래나 블록 같은 건 서명이 들어 가서 쉽게 바꾸기 어렵지만, 네트워크 프로토콜은 (심지어 암호화도 되어 있지 않기 때문에) 쉽게 바꿀 수 있다.
"사토시"라는 이름
현재 비트코인 프로토콜에서는 금액의 단위가 10-8 BTC로 설정되어 있다(추후 변경 가능). 그래서 사람들이 원 개발자 이름인 사토시를 따서 1 Satoshi = 10-8 BTC로 정의하고 쓰는 경우가 제법 있다(…).
또한 사토시라는 이름은 비단 화폐 단위 말고도 비트코인에 관련된 이름에도 사용된다. 예를 들어서 SatoshiDICE라거나… 이게 뭐야 무서워
탄생 블록
앞에서 언급되었던 탄생 블록(genesis block)은 비트코인의 원 개발자 사토시 나카모토가 발표 1주 전(생성일 2009-01-03, 발표일 2009-01-10)에 만들었다. 이 블록에는 통상의 출력 외에도 "타임스 2009년 1월 3일: 영국 재무대신이 은행들에 대한 두번째 구제 금융에 직면하다"10)라는 내용이 들어 있다. 이는 이 블록이 발표 직전에 생성되어 개발자가 미리 블록을 생성하여 부당한 이득을 취하기 어렵다는 걸 증명하는 역할을 한다.
그리고 비트코인 클라이언트의 구조상 탄생 블록에서 생성된 50 BTC는 소비할 수 없다. 이 또한 개발자의 부당 이득을 원천 차단하고자 하는 의도일 가능성이 있다.

사토시 나카모토는 누구인가?

비트코인과는 별개로, 원 개발자 사토시 나카모토가 과연 누구인가에 대한 논쟁은 끊이질 않았다. 당장 이 이름에서 어느 부분이 성이고 어느 부분이 이름인지도 알 수 없으며(다만 中本라고 쓰는 나카모토라면 보통은 성으로 쓴다), 이름을 영문으로 써 놓아서 칸지로 어떻게 쓰는지조차 알 수 없다. 게다가 이 사람은 일본 이름을 쓰는 주제에 영어 실력이 네이티브 스피커를 뺨치는 수준이며, 정작 일본어를 쓴 흔적은 하나도 없다(심지어 공식 홈페이지에도 일본어가 없다). 그러다 보니 이 사람이 일본인이 아닌 건 거의 기정사실로 받아들여지고 있다. 그런 관계로 이 문서에서는 편의상 "사토시"를 성인 것처럼 부르고 있다.

이 사람의 행적이 묘연한 가장 큰 이유는 이 "사토시 나카모토"라는 이름 자체가 비트코인 공개만을 위해서 특별하게 만들어진 것 같다는 증거 때문이다. 모든 트래픽은 tor를 통해서 익명화되었고, 메일 주소도 별도로 만들어 썼으며, PGP 키도 발표를 몇 달 앞두고 생성되었다. 비트코인 백서가 처음 발표된 포럼에서도 그의 흔적은 비트코인에 관련된 포스트를 빼고는 찾아 볼 수 없었다. (다만 그가 이 동네 사정에 밝다는 것은 분명하다.) 그리고 2010년 말에 그가 개발에서 손을 놓으면서, 그 또한 온라인에서 영원히 사라졌다. 왜 사라졌는지 또한 정확히는 알 수는 없으나, 마지막 발언에서 위키리크스를 든 것으로 보아 모종의 압력을 느꼈다는 설이 존재한다.

혹자는 사토시 나카모토라는 이름 자체가 매우 다분히 은유적인 이름이라는 주장을 하기도 하는데, 한 가지 가능한 칸지인 "智中本"는 "지혜 속의 근본" 같은 식으로 해석할 수 있기 때문이다. "사토시"가 성 부분이라는 추정 또한 여기서 나온다. 뒤집으면 말이 안 되니까. 그리고 다른 혹자는 이 사람이 포켓몬스터 덕후 아니냐는 얘기를 하기도 한다

정체야 어쨌건, 비트코인 사용자 중 일부가 사토시를 영웅 내지는 (…) 받드듯이 떠받드는 것을 종종 볼 수 있는데 이는 분명히 별로 좋은 현상은 아니다. 왜냐하면 비트코인은 그 어떤 누구도 신뢰하지 않고 코드만을 신뢰하면 되도록 설계되었기 때문이다.

바깥 링크

1) 물론 여기에 수반하는 가정은 피어대피어(P2P) 통신과 동일하다. 즉, 특정 역할을 하는 노드가 하나도 없거나 접근할 수 없다면 안 돌아간다. 하지만 모든 노드는 여러 개 존재할 수 있으며 실시간으로 교체될 수 있다.
2) 구체적으로는 현대암호를 통해 아나키즘을 구현하기 위한 암호 아나키즘(crypto-anarchism)에 속한다.
3) 통화량의 엄밀한 정의에 따라 다르지만, 미국 달러는 동시기에 최소 2조 달러(M1 통화량 기준) 이상 유통되긴 했다. 미국연방준비제도이사회(FRB)의 공식 통계를 참고.
4) 예를 들어서 첫 53비트가 모두 0인 해시를 찾을 확률은 2-53, 즉 대략 1경분의 1 정도이다. 참고로 이게 현재 블록을 찾을 확률과 대강 비슷하다(…).
5) 이는 버전/소프트웨어 아이디 00 + 160비트 공개키 해시 1E0BC157F5F5132020A125CE84767BA3EC5187EF + 앞의 바이트열에 SHA-256을 두 번 적용하고 뒷부분을 잘라낸 32비트 체크섬 E3F24F36을 (혼동을 방지하기 위해 0/O/I/l을 뺀) 58진법 숫자로 나타낸 것에 해당한다. 비트코인 위키의 Base58Check 인코딩 참고.
6) 예를 들어서 받는 쪽과 보내는 쪽이 모두 신뢰하는 제 3자의 서명을 함께 쓰는 에스크로라거나, 수학 문제를 풀어야만 받을 수 있는 출력이라거나(…), 그냥 아무나 받을 수 있는 출력이라거나 어쨌든 스크립트를 잘 짜면 별의별 것을 다 만들 수 있다. 자세한 내용은 비트코인 위키의 스크립트 참고.
7) 거래가 블록에 들어가기 전에 당사자들끼리 협상을 할 수 있게 하려는 것이다. 물론 블록에 들어갈 때는 이 필드는 최대값으로 바뀐다.
8) 이는 주 체인이 아닌 다른 체인에 (간발의 차이로) 들어갔던 거래 또한 포함한다. 원래 주 체인이었는데 모종의 이유(잘못된 블록이 포함되어 버렸다거나 등등)로 주 체인이 아니게 되는 상황에서도 마찬가지.
9) 비트코인 네트워크 그래프를 자세히 보면 2010년 7월을 전후해서 블록 생성의 난이도가 수십배 뛰는 것을 볼 수 있다. 이 기간동안 GPU 마이닝을 처음 도입한 사람(ArtForz)은 전체 비트코인 계산량의 1/4 정도를 점유했다고 한다(…).
10) 원문 "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks". 이 구제 금융은 결국 승인되었다. 혹자는 이 기사를 들어 사토시가 사실은 영국인이고, 은행들에 상당히 뿔이 나 있던 게 아니냐는 추측을 하기도 했다.

도쿠위키DokuWiki-custom(rev 9085d92e02)을 씁니다.
마지막 수정 2012-09-23 05:52 | 작성자 lifthrasiir