전세계의 컴퓨터는 복잡한 암호화 문제를 해결하기 위해 서로 경쟁하면서 비트코인을 '채굴'합니다. 사람들이 비트코인 블록체인에서 끊임없이 거래를 하는 데, 모든 거래는 공개 원장에 기록되어야 합니다. 중앙 집중식 시스템에는 모든 거래를 추적하는 단 하나의 권위있는 실체가 있습니다. 원장의 책임자가 오프라인 상태가 되거나 해킹되면 전체 시스템이 정지됩니다. 비트코인 블록체인이라는 비트코인 원장은 전 세계 수많은 독립적인 기관에 의해 배포되고 관리됩니다. 비트코인은 중앙 집중식 원장과 비교하여 비할 데 없는 탄력성과 검열 내구성을 보장합니다.
비트코인에는 단일 권위자가 없기 때문에 독립적인 거래 프로세서는 공통 원장에 동의해야 합니다. 비트코인 블록체인에서는 새로 발생한 거래를 블록이라는 목록으로 수집함으로써 이를 관리합니다. 신규 거래 블록이 생성될 때마다 비트코인 블록체인에 추가되어, 비트코인 네트워크에서 처음부터 발생했던 모든 거래의 목록을 더욱 더 길게 만듭니다. 생성된 블록을 확인하고 암호화 문제를 해결하여 블록 콘텐츠를 보호하는 것은 채굴자의 직무입니다. 문제가 해결되면 블록이 모든 기록된 거래를 담는 공개 원장에 추가됩니다. 이 블록은 비트코인 네트워크를 통해 일시에 전파되므로 모든 참가자가 원장의 로컬 복사본을 업데이트할 수 있습니다.
비트코인 블록체인이 함부로 변경되지 않았음을 어떻게 확신할 수 있나요? 이것은 채굴자들이 들어오는 곳입니다.
거래 블록이 생성되면 채굴자는 암호화 문제를 해결하여 비트코인 블록체인에 블록이 추가되도록 하기 위해 노력합니다. 이를 위해 채굴자들은 블록에서 정보를 가져 와서 여기에 수학 공식을 적용합니다. 이 공식은 블록의 정보를 짧은 임의의 숫자 및 문자 배열로 전환시킵니다. 이는 암호화 해시로 알려져 있습니다. 각 블록의 해시는 다음 제약 조건을 충족해야 합니다. 즉, 큰 정수(Big Integer)로 처리되는 해시값은 현재의 네트워크 난이도 목표보다 작거나 같아야 합니다. 목표는 활발하게 변경되어 유효한 블록을 찾으려면 평균 10분이 소요됩니다.
해시에는 몇가지 흥미로운 속성이 있습니다. 비트코인 블록과 같은 데이터 컬렉션에서 해시값을 쉽게 생성할 수 있지만, 그 해시값을 보고 그 데이터가 무엇이었는지 계산해내는 것은 사실상 불가능합니다. 일부 데이터의 해시값을 갖고 있더라도, 일의 순서를 거슬러 작업하여 원래 데이터가 무엇이었는지를 찾는 것은 일반적으로 불가능합니다.
대용량 데이터에서 해시를 생성하는 것은 매우 쉽지만 각각의 해시값은 고유합니다. 거래 블록에서 한 글자만 바꾸면 블록의 해시값은 완전히 예측할 수 없게 바뀝니다. 이 속성 때문에 유효한 해시가 있는 블록을 생성하는 것은 어렵습니다. 가장 좋은 방법은 블록의 콘텐츠를 반복적으로 바꾸고 그 해시값이 유효성 기준과 일치하는지 확인하는 것입니다. 매우 집중적인 계산이 필요한 작업이어서, 2016년 초 현재 기준으로 유효한 비트코인 블록을 생성하려면 평균 10²º회 이상 반복해야 합니다. 비트코인 채굴이 더 이상 개인용 컴퓨터에서 수행되지 않는다는 사실은 놀라운 일이 아닙니다. 그 대신, 채굴자는 전문화된 하드웨어를 사용합니다.
블록을 해싱할 때 채굴자는 거래를 바로 작업하지 않습니다. 또한 비트코인 블록체인에서 마지막으로 확인된 블록의 해시를 사용합니다. 즉, 각 블록은 이전 블록을 참조합니다. 각 블록의 해시는 이전 블록의 해시를 사용하여 생성되기 때문에 밀랍 봉인(Wax Seal)한 디지털 버전이 됩니다. 그것은 이 블록과 그 이전의 모든 블록이 합법적임을 확인합니다. 각각의 블록이 특정 거래 블록 위에 차곡차곡 쌓여지면 블록에 대한 신뢰도가 높아집니다.
불량한 채굴자가 비트코인 블록체인에 이미 저장된 블록을 변경하여 거래를 위조하려고 하면 해당 블록의 해시값이 변경됩니다. 누군가 해시 함수를 실행하여 블록의 진위를 확인한 경우 해시값이 다음 블록에서 조회한 해시값과 다른 것으로 나타납니다. 공격자는 수정하려는 블록 다음에 배열되는 모든 블록을 변경해야 합니다. 또한 네트워크가 공격자의 변경 사항을 수락하기 위해서는 다른 모든 채굴자보다 더 긴 새로운 블록 체인을 생성해야 합니다. 이를 위해 수천만 달러의 경비 지출이 요구됩니다.
비트코인을 얻기 위해, 채굴자들은 비트코인 프로토콜에 맞는 블록 해시 문제를 제일 먼저 푸는 당사자가 되기 위해 작업합니다. 누군가가 문제를 풀 때마다, 새로 생성된 비트코인과 블록에 포함된 거래 수수료의 두 부분으로 구성되는 보상을 받게 됩니다. 2016년 초 현재 각 블록은 25개의 신규 비트코인을 생성하며, 거래 수수료는 약 0.5비트코인입니다.