테크레시피

블록체인은 무엇인가

데이터 변경에 강한 거래 대장 기술인 블록체인은 암호 자산 등장으로 널리 세상에 알려지게 됐다.

블록체인에서 블록이란 디지털 정보 기록을 말한다. 암호 자산이면 누가 누구에게 송금한 걸 얼마나 송금했는지 등 기록에 해당한다. 새로운 기록, 블록이 태어날 때마다 이전 기록에 점점 추가되어 나가는 일련의 기록을 담은 시계열 정보가 완성된다. 이게 바로 블록체인이다.

이런 블록체인 중간 기록을 바꾸거나 제거할 수 없기 때문에 무엇이 얼마나 누구에게 이동했는지 언제든 확실한 정보로 확인할 수 있다. 또 블록체인은 누구나 새로 만들 수 있기 때문에 암호 자산 뿐 아니라 온갖 분야에서 활용될 수 있다.

누군가가 블록체인을 만들 때 작성자는 먼저 제네시스 블록이라는 걸 만든다. 제네시스 블록은 기록에 닿지 않는 아무 것도 지시하지 않은 빈 블록이다. 이를 새로운 암호 자산을 위해 사용해도 좋고 기른 상추를 추적하는데 사용하는 것도 좋고 무엇이든 활용할 수 있다.

블록체인에선 기록이 네트워크에 연결된 개인 컴퓨터를 통해 통신하고 공유된다. 노드라는 각 컴퓨터는 기록 유지 뿐 아니라 기록이 변조되지 않았는지 확인하는 역할을 한다. 누군가가 새로운 블록을 작성한 경우에는 작성자 이외 노드가 유효한 블록임을 확인한 뒤 해당 블록을 네트워크에 추가하는 형태를 취한다.

노드가 어떻게 변조 유무를 확인하는 방법에 대해 이해하기 위해선 해시에 대해 이해할 필요가 있다. 블록체인에 해시는 각 데이터를 구분하는 특정 문자열을 말한다. 각 블록은 특정 해시가 포함되어 있고 블록에 새로운 블록이 이어진 경우 이전 블록 해시를 읽고 자신의 블록에 기록한다.

누군가가 새로운 블록을 추가하려고 했을 때 이 해시가 일반 블록쳉인에 기록되어 있는 것과 동일한지 여부를 확인한다. 정규 블록체인은 가장 많은 거래가 이뤄지는 블록체인을 가리키는 암호 자산에 대해선 가장 블록이 많은 체인을 말한다.

해시 오류 정정 알고리즘을 사용해 확인을 한다. 예를 들어 해시를 생성하는 알고리즘에 블록체인을 입력하면 ef7797이라는 문자열을 생성한 블록체인을 입력하면 8e809e라는 문자열을 생성한다고 가정한다. 이 때 누가 해도 블록체인이라는 문자열에서 ef7797이라는 문자열을 생성할 수 있지만 반대로 ef7797 문자열에서 블록체인이라는 문자열을 역방향으로 하는 건 어렵다.

또 각 블록에는 이전 블록 해시가 포함되어 있다. 만일 블록이 바뀌면 블록체인이 끊어진다. 따라서 새롭게 체인에 추가된 블록을 선택하면 이 블록을 포함한 지금까지의 거래가 변경되지 않았다는 걸 알 수 있는 구조로 되어 있다. 또 블록체인이 사용하는 해시를 생성하는 암호화 기술이 사용되고 있다. 이는 블록체인을 이용한 비트코인이 암호화 자산에서 유래된 이유 중 하나다.

블록체인에 거래 기록이 모두 포함되어 있지만 이름이나 주소 등 개인 정보는 일절 포함되어 있지 않다. 대신에 존재하는 정보는 앞서 거래 기록에 더해 특정 문자열만 담는다. 이 문자열은 특정인을 보여주지만 그게 누구인지를 특정하는 건 불가능하다.

블록체인은 어디까지나 기록이 정확한 걸 가리키는 것 뿐이다. 예를 들어 누군가가 단순한 자갈을 달의 돌로 판매하고 블록체인에서 기록을 추적했다고 가정한다. 자갈이 다른 사람 손에 넘어간 경우에도 블록체인은 거래 기록이 정확한 것을 증명하는 것만으로 진짜 월석이라는 걸 증명하는 건 아니다. 블록체인은 선거 투표 등 다양한 분야에서 활용할 수 있다. 물론 사람들에게 받아들여질지 여부와는 별개지만. 관련 내용은 이곳에서 확인할 수 있다.