작업 증명(PoW)
작업 증명은 블록을 만들려면 비용이 드는 실제 연산이 필요하게 해서 블록체인을 보호합니다. 네트워크는 가장 많은 작업이 쌓인 기록을 신뢰하므로, 과거를 고쳐 쓰는 데 엄청난 비용이 듭니다.
이 아이디어는 암호화폐보다 오래되었습니다. 1993년에 스팸 메일을 보내는 데 비용이 들게 하는 방법으로 처음 제안되었습니다. 1997년에는 Hashcash라는 시스템이 같은 아이디어를 이메일에 썼습니다. 2009년에 시작된 비트코인이 이를 공개 장부에 적용했습니다.
작동 방식은 이렇습니다. 채굴자는 거래를 모아 후보 블록을 만들고, nonce라는 바꿀 수 있는 숫자를 더합니다. 블록을 해시하면 무작위처럼 보이는 숫자가 나옵니다. 그 숫자가 네트워크의 목표값보다 낮으면 블록은 유효합니다. 그렇지 않으면 채굴자는 nonce를 바꿔 다시 시도하며, 이를 초당 수십억 번 합니다.
유효한 해시를 찾기는 어렵지만, 확인은 순식간입니다. 누구나 블록을 한 번 해시해 목표를 만족하는지 확인할 수 있습니다. 덕분에 수천 대의 컴퓨터가 서로를 믿지 않고도 체인에 합의할 수 있습니다.
이는 과거를 바꾸는 데도 큰 비용이 들게 합니다. 오래된 블록을 다시 쓰려면 공격자는 그 블록과 그 뒤 모든 블록의 작업을 네트워크의 나머지보다 빠르게 다시 해야 합니다. 거래가 깊이 묻힐수록 더 안전합니다.
이것이 채굴자가 하는 일입니다. 연산 능력을 써서 블록을 추가할 권리를 얻고 보상을 받습니다. 코인마다 자체 알고리즘을 고르며, 알고리즘이 CPU, GPU, ASIC 중 무엇이 그 일을 가장 잘하는지 정합니다. 일부 새로운 설계는 영지식 증명으로 증명하는 실제 행렬 연산처럼, 작업 자체를 쓸모 있게 만들려고 합니다.
흔한 오해는 그 작업이 기발한 문제를 푸는 것이라는 생각입니다. 오히려 복권에 가깝습니다. 해시 하나가 복권 한 장이고, 해시레이트가 높을수록 복권을 더 많이 삽니다. 주요 대안은 지분 증명(PoS)입니다. 연산 대신 묶어 둔 코인으로 체인을 지키며, 채굴이 없습니다.