블록체인에 대한 개념
누군가와 거래를 했다는 행위와 동시에 이를 데이터로 남긴 것을 트랜잭션이라는 말을 사용합니다. 여러개의 트랜잭션이 발생되면 이를 담을 블록 하나를 준비합니다. 블록에 어느 정도 트랜잭션이 담기면 뚜껑을 닫고 저장을 합니다. 이를 수백만개가 되며 저장을 하되 이를 생성된 순서대로 연결을 시킵니다.
혹시 홀스 라는 사탕을 먹어보신적 있으신가요? 중간의 있는 사탕을 까먹으려면 양끝에서 부터 사탕을 꺼내야 합니다.
블록체인도 "호올스" 상태와 같습니다. 블록들이 1차원적으로 직선을 그리며 연결되어 있으며 저장되는 방식은 FIFO 형식이 되는 것이죠.
블록체인의 저장방식
블록체인은 하나의 거대한 데이터베이스와 같습니다.대신 기록되는 모든 데이터가 공개되었으며 접속한 모든 사용자가 데이터들을 동일하게 들고 있습니다. 그렇기 때문에 저장된 데이터는 모두 공개될 만한 데이터이고 이를 수정해도 프로그램에서 이를 쉽게 알아낼 수 있으며 쫓아내거나 연결을 끊어버리는 것은 각 플랫폼에서 결정하게됩니다.
다시 말해, 모두에게 공개되어 있으며 수정할 수 없는 데이터베이스 입니다.
블록체인은 쉽다.
Masterin Bitcoin 이라는 책을 다 읽고 덮은 다음에 이런 생각이 들었습니다. '난 지금 뭘 배운것인가?' 초보개발자가 아니더라도 이런 마음이 쉽게 들었을 것입니다. 왜냐하면 그 안에 들어가는 기술들 자체가 원래 어렵기 때문입니다. 제로 영지식같은 암호화 모듈, 그리고 노드간 통신 방법등이 혼합해 있기 때문이죠. 그럼에도 블록체인은 매우 단순합니다.
블록을 생성해서 연결한다.
아주 단순한 개념이지만 블록체인 전부를 관통하는 완벽한 개념입니다. 간단히 생각해 보겠습니다. 블록을 생성해서 연결하기 때문에 중간의 데이터를 수정하려면 1000년 넘게 걸리는 연산을 해야 하는데 성공하기엔 거의 불가능합니다. 블록을 생성해서 연결하기 때문에 사용자가 데이터를 받으려면 순차적으로 전달받아야 합니다. 블록체인에서 사용되는 알고리즘등은 모두 블록이 연결되었기 때문에 이에 맞춰 개발된 것입니다.
블록체인은 장점도 많지만 단점도 있다.
코인시장에 거품이 끼게되면서 자연스럽게 블록체인에 대한 관심도 많아졌습니다. 그러다 보니 이 기술에 대해 희망적으로 기사가 나기도 하고 미래 산업이 될 것이다라고 전망하는 사람도 많이 나타나게 됩니다. 정부에서 이런 상황을 긍정적으로 받아들였는지 모르겠지만 많은 돈을 투자하여 기술력을 키우겠다는 발표도 있었습니다. 저도 이런 사람들 중에 한명이었고 블록체인 개발자가 되었지만 Critical Thinking의 사고는 반드시 필요합니다.
블록체인은 모두에게 공개되어 공개될 수 있는 데이터가 입력됩니다. 그리고 이 데이터들은 전부 수정할 수 없습니다. 조금만 데이터가 잘 못 올라가거나 공개될 만한 데이터가 아닌데도 올라가게 되면 전부 기록으로 남게됩니다. 이럴때는 수정할 수 있는 데이터베이스가 더 나을 수 있겠죠. 그렇기 때문에 기록할 데이터가 어떤 데이터인지 정확히 알아야 할 것입니다. 반대로 이러한 특성이 좋다고 볼 수 있습니다. 특히 신용이 중요한 금융거래에선 더 그렇겠죠.
세계 모든 사람들이 현금대신 동일한코인을 사용하고 거래하게 될 시대가 오게 될까요?