블록체인(Blockchain)이란?
“블록체인은 자료를 저장하는 방식의 일종이다”
블록체인은 현대적인 기술로 구현한 장부(Ledge)의 한 형태라고 할 수 있는데, 좀 더 손에 잡히는 방식으로 설명하자면,
“블록체인을 종이 장부에 비유해서 보면, 장부를 복사해서 여러 사람이 나누어 가지고 있는 형식(분산식)의 장부라고 하겠다.”
이때 거래는 블록에 기록되고, 블록은 타임스탬프와 해시로 체인처럼 연결된다.또, 같은 내용의 장부를 여러 사람이 나누어 가지고 있는 것은 인터넷에 연결된 여러대의 컴퓨터에 저장되어있고, 이 컴퓨터의 전산자원으로 가짜 블록의 생성을 무력화 시키는 합의 알고리듬이 구동된다.
왜 그렇게 복잡하게 찢어 놓냐고요? 한 사람한테 맡겨 놓으면 믿을 수가 없기 때문입니다.
기존의 가장 보편적인 자료 저장방식은 데이타베이스 시스템이다.
블록체인은 데이타 저장 방식에 있어서 기존의 데이타베이스와 다른 점이 있다. 즉 데이타를 블록에 저장한다는 점이다. 저장해야 할 새로운 데이타가 생기면 새로운 블록을 생성하여 저장한 다음, 그것을 암호화하여 기존의 블록체인에 연결한다.
또 다른 점 한가지는 데이타베이스의 경우는 자료를 수정하는 기능이 있는데 블록체인은 자료를 수정할 수가 없다. 블록체인은 장부이기 때문에 모든 거래를 기록한다. 기존 데이터를 직접 수정하지 않고 거래 자체를 기록한다. 회계장부를 기장하는 것을 예로 들자면 고쳐야할 거래가 있으면 해당 거래에 대해 수정분개를 해서 기장하는 방식을 사용하는 것이다.
이렇게 거래 자체를 빠짐없이 기록하여 참여자 모두가 열람할 수 있도록 함으로써 투명성을 보장하는 것이 바로 블록체인의 특징이다.
데이타베이스는 자료를 저장하고 검색하는데 효율적인 시스템으로 다양한 기술적 방식이 존재한다. 가장 많이 사용되는 DBMS(Database Management System)는 대표적으로 SQL과 noSQL로 나뉘고, 실례로 mySQL, mongoDB가 있다. 그런데 데이타베이스의 공통점은 자료를 한 곳에 저장한다는 것이다. 물론 대규모 자료의 경우 기술적으로 분산 저장방식을 사용하기도 하지만 개념적으로는 한 곳에 저장 관리되는데, 블록체인을 하는 사람들은 이를 중앙집중식(Centralized)이라고도 한다. 블록체인이 생겨난 배경이 탈중앙화(Decentralized)이므로 이렇게 이분법적인 호칭이 생긴 것이다.
블록체인이 데이타베이스시스템과 다른 점은 자료를 블록단위로 잘라서 클라우드에 저장하고 이 블록들을 해시함수로 연결해 놓은 점이다.
즉 거래자료가 약 1M바이트 정도의 블록 단위로 기록된 다음, 타임스탬프와 해시값으로 연결하여 체인으로 만들어 수많은 컴퓨터 노드에 복제하여 저장되는 것이다.
이러한 방식이라야만 한곳에 저장되어있는 자료의 취약점을 극복할 수 있기 때문이다.
자료가 한곳에 저장되어있다면, 악당들의 먹이감이 되기 쉽다. 관리자가 쉽게 고칠 수도 있고, 해킹될 수도 있으며, 사고로 지워지기도 쉬운 약점이 있는데, 잘게 나누어 여러 곳에 저장하면 이러한 약점들을 극복할 수 있는 것이다.
모든 사안이 장점이 있으면 단점도 있기 마련인데, 자료를 분산저장해 놓으면 검색과 수정에 불리한 점이 있다. 블록체인 기술은 자료의 검색과 수정을 어떻게 처리하는가를 생각해보지 않을 수 없다.