블록체인
Block Chain
블록체인(Block Chain)은 ① 일정 시간 동안 발생한 모든 거래정보를 블록(block) 단위로 기록하여 ② 모든 구성원들에게 전송하고 ③ 블록의 유효성이 확보될 경우 새 블록을 ④ 기존의 블록에 추가 연결(chain)하여 보관하는 방식의 알고리즘이다. 각 블록은 이전 블록에 대한 연결자인 해시포인터(a hash pointer, 위변조 점검 수단), 시간표시 및 거래데이터를 포함한다.
블록체인은 효율적이고 검증 가능한 방식으로 거래를 기록할 수 있는 개방된 분산원장 즉, 데이터베이스 역할을 한다. 이는 참여자간 공유(peer-to-peer) 네트워크가 집단적으로 새 블록을 검증하는 프로토콜에 따라 관리된다.
그래서 만약 누군가 거래기록을 조작하려면 참여자간 연결된 모든 블록을 새 블록 생성 이전에 조작해야한다. 즉 일정 시간 안에 수많은 블록을 모두 조작해야 하는데, 이는 사실상 불가능하므로 보안성이 높은 것이다.
이 블록체인 덕분에 새로운 단위 가치의 거래가 오직 한 번만 이뤄짐으로써, 이중 지급(double spending) 같은 문제를 해결할 수 있게 되었다. 또한 블록체인에서는 ‘제3의 기관’이 필요 없는 탈중앙화와 중개 기관을 거치지 않는 탈중개화가 이뤄지기 때문에 거래비용이 획기적으로 낮아진다.
그래서 블록체인은 비트코인·이더리움(Ethereum) 등 가상자산 운용의 기반이 될 뿐만 아니라 스마트계약, 증권 발행 및 거래, 해외송금 및 자금이체, 무역금융, 부동산 등기, 고가품(예: 다이아몬드)의 정품 인증, 디지털 ID 관리, 전자투표, 개인건강기록 관리 등 여러 분야에서 무한한 혁신 잠재력을 지니고 있다.
원문 바로잡기
오류“참여자간 연결된 모든 블록을 새 블록 생성 이전에 조작해야한다”
조작하려면 모든 블록이 아니라 고치려는 블록과 그 뒤에 이어진 블록들을 다시 만들어, 다른 참여자들이 새 블록을 붙이는 속도를 앞지르면 됩니다. 그래서 네트워크 계산 능력의 과반을 쥐면 조작할 수 있으며(51% 공격), 참여자가 적은 작은 블록체인에서는 실제로 일어난 적이 있습니다.
쉽게 이해하기
블록체인은 거래 기록을 한 기관의 서버가 아니라 참여자 모두가 똑같이 나눠 가지는 장부입니다. 일정 시간 동안의 거래를 한 묶음(블록)으로 기록해 모든 참여자에게 보내고, 참여자들이 함께 검증해 유효하다고 인정하면 그 블록을 앞선 블록들 뒤에 사슬(체인)처럼 이어 붙입니다.
왜 이렇게 할까요? 보통의 계좌이체는 은행 같은 믿을 만한 제3자가 장부를 관리하기 때문에 성립합니다. 블록체인은 모두가 장부를 나눠 들고 함께 검증하므로, 그런 중앙 기관이나 중개 기관 없이도 기록을 믿을 수 있게 하고 그만큼 거래비용을 크게 줄입니다. 디지털 돈의 고질적 문제인 이중 지급, 곧 같은 돈을 두 번 쓰는 일도 막습니다. 디지털 파일은 쉽게 복사되므로, 누가 이미 무엇을 썼는지 모두가 확인할 장부가 없으면 같은 돈을 두 사람에게 보낼 수 있기 때문입니다.
위조가 어려운 이유는 블록을 잇는 방식에 있습니다. 각 블록에는 거래 내용과 시각, 그리고 바로 앞 블록의 내용을 짧은 값으로 요약한 해시가 담깁니다. 앞 블록이 한 글자만 바뀌어도 이 값이 달라지므로, 과거 기록 하나를 고치려면 그 뒤에 이어진 블록까지 모두 고쳐야 합니다. 그것을 다음 새 블록이 만들어지기 전에 해내야 하니 현실적으로 매우 어렵고, 그래서 보안성이 높다고 합니다.
쓰임새의 공통점은 서로 잘 모르는 여러 당사자가 같은 기록을 믿어야 한다는 점입니다. 비트코인·이더리움 같은 가상자산은 은행 없이 누가 얼마를 가졌는지를, 해외송금은 여러 중개은행이 각자 장부를 맞춰 보던 수고를, 부동산 등기나 다이아몬드 정품 인증은 기록이 몰래 바뀌지 않는다는 믿음을 블록체인에 맡깁니다. 거꾸로 모두가 믿는 한 기관이 장부를 맡아도 되는 일이라면 블록체인을 쓸 이유가 그만큼 줄어듭니다.
예를 들면
참여자 1,000명이 같은 장부를 나눠 가진 블록체인에서 100번째 블록에 'A가 B에게 1코인'이 기록돼 있고, 장부는 105번째 블록까지 이어졌습니다. A가 이 기록을 '0코인'으로 몰래 고치면 100번째 블록의 해시가 바뀌어 101번째 블록에 담긴 값과 맞지 않게 되고, 다른 참여자 999명의 장부와도 어긋나 바로 드러납니다. 들키지 않으려면 101~105번째 블록을 모두 다시 만들어 106번째 블록이 생기기 전에 네트워크가 받아들이게 해야 합니다.