이 글은, 블록체인 기술에 대해 알고 싶은 입문자들을 위한 글입니다. 근사한 글을 작성하기 보다, 제가 이해한 것을 토대로 작성을 하는 것이니 오류가 있다면 지적해주시길 희망합니다.
1900년대 NASA의 분산화 컴퓨팅 프로젝트 혹은 다른 예시에서 적은 수치들은 실제와 약간의 차이가 있을 수 있습니다.
분산화 컴퓨팅
블록체인을 알기 전, 우리는 분산화 컴퓨팅에 대해서 알아 둘 필요가 있다.
분산화 컴퓨팅이란, 인터넷에 연결된 여러 컴퓨터들의 연산 능력을 이용하여, 거대한 연산을 처리하는 시스템이다. 쉽게 생각하여 '개인들의 컴퓨터를 모아 슈퍼컴퓨터를 만든다.' 정도로만 생각하자.
분산화 컴퓨팅의 기술이 사용 될 수 있는 분야는 다양하다. AI, 암호학 등 연산이 필요한 곳 어디든.
1900년대 후반 NASA에서 분산화 컴퓨팅 프로젝트를 시도 한 적이 있다고 알고 있다. 실제 민간인 n만명이 참가 의사를 표했다.
슈퍼컴퓨터를 만드는 것에 대한 비용은 천차만별 이지만, 우리 모두는 이러한 분산화 컴퓨팅을 이용하는 비용이 슈펌컴퓨터를 만들고, 유지하는 비용 보다 저렴하다는 것을 추측 할 수 있다.
하지만 결국 이 프로젝트는 수포로 돌아갔다. 1+1 = 2 라는 연산을 보내줘야하는 컴퓨터들이 옳지 않는 연산을 보내주었고, 이와 같은 작은 연산의 오류는 신뢰성의 문제와 연결 되었다.
이러한 문제들로 1982년 레슬리 렘포트 등 3명의 컴퓨터 공하작들은 '비잔티움 장군의 딜레마'라는 신뢰와 합의의 문제를 함축한 이야기를 발표하게 된다.
비잔티움 장군의 딜레마
위 딜레마는 이미 많은 곳에 자료들이 있기 때문에, 간단하게만 풀어보겠습니다.
-조건 1. 5명의 장군은 각각 100명의 병력을 가지고 있다.
-조건 2. 류짱의 성은 300명의 병력이 있어 장군 4명 이상이 동시에 공격해야한다.
-조건 3. 각 장군은 지리적으로 떨어져 있어, 자신의 가장 오른쪽에 있는 장군에게만 소식을 전할 수 있다.
- 조건 4. 장군들 중에는 배신자가 있어, 서로를 신뢰 할 수 없다.
장군 1 : 장군 2에게 오후 6시 공격 메시지 전달
장군 2: 장군 3에게 오후 6시 공격 메시지 전달
장군 3 : 장군 4에게 오후 6시 공격 메시지 전달
장군 4 (배신자) : 장군 5에게 오후 9시 공격 메시지 전달
장군 5 : 오후 9시 공격 인지
오후 6시 공격 - 장군 1 , 장군 2, 장군 3
오후 9시 공격 - 장군 4, 장군 5
결국, 4번 장군이 배신자이기 때문에 '류짱의 성' 공격에 실패하게 된다. 이러한 문제를 해결하기 위해서 장군들이 어떻게 소통해야하는가. 에 대한 문제는 해결되지 않은채. 시간은 흘러갔다.
딜레마를 해결한, 블록체인 기술을 담은 비트코인의 탄생
2008년 10월 사토시 나카모토라는 가명을 쓰는 프로그래머가 비트코인 이라는 프로그램을 개발하였고, 2009년 1월 프로그램 소스를 배포했다. P2P기반 분산 데이터베이스에 의해 거래가 이루어지는 가상화폐 였지만, 이 속에 담겨있던 POW 방식은 위 '비잔티움 장군의 딜레마'를 해결 하는 답이 되었다.
(기술적인 내용은 추후 포스팅에 담도록 하겠습니다.) 또한, 아래의 예시는 이해를 돕고자 든 예시이기 때문에 작업증명방식이 깜지라는 고정관념을 갖지 않으시길 바랍니다.
Step 1. 1번 장군은 10분동안 깜지(종이안에 글씨를 빽빽하게 적는 일)를 작성한다.
Step2. 10분이 지나면, 자신의 깜지를 2번 장군에게 건낸다.
Step3. 2번 장군은 1번장군의 깜지 아래에 10분동안, 깜지를 진행한다.
Step4. 10분이 지나면, 자신의 깜지를 3번 장군에게 건낸다.
Step5. 3번 장군은 1번,2번 장군의 깜지 아래에 10분 동안, 깜지를 진행한다.
Step6. 10분이 지나면, 자신의 깜지를 4번 장군에게 건낸다.
4번 장군의 배신자 였다고 가정한다면, 주어진 10분 이내
1번,2번,3번 장군의 깜지를 조작한 후, 자신의 작업 또한 끝마쳐야합니다.
1,2,3번 장군의 작업 (총 30분) + 4번 장군의 작업(총 10분) = 총 40분
4번 장군에게 주어진 10분을 가지고, 40분의 효율을 내어야 한다.
4번 장군은 배신을 포기하거나, 10분동안 40분 분량의 깜지를 조작해야한다.
초창기 비트코인 블록체인은 분명 이 공격에 취약했다. 성능 좋은 컴퓨터로 데이터를 변경 할 수 있었기 때문이다.
하지만, 약 9년 이상 진행 된 현재 비트코인 블록체인을 공격하기 위해 슈퍼컴퓨터 1~50위가 힘을 합쳐도 불가능한 상태가 왔고, 채굴자가 증가됨에 따라 또, 블록이 많아 질때마다, 현실적으로 공격이 불가능한 상태가 되기 때문에 이 기술이 주목을 받는 것이다.
분산화 컴퓨팅이란, 미래에 꼭 필요한 기술이였고, 이 기술의 오류를 해결하기 위하여 블록체인이 등장했으며,
위와 같은 10분의 작업을 위해 채굴자가 등장했고, 그들에게 보상을 주기위해 비트코인이 탄생되었다.
'암호화 화폐와 블록체인은 떼어낼 수 없는 관계'의 대한 설명이 될지도 모른다.
블록체인을 처음 접하는 분들에게 좋은 글이네요. 저도 개발자의 길을 걸을 생각인데, 뉴비로 만나게 뵈어 반갑습니다 :)
암호화 화폐와 블록체인은 퍼블릭 블록체인에서 떼어낼 수 없는 관계로 지속될 것이라고 생각합니다. 프로그래밍 관련 글도 많이 기대하겠습니다.
보팅/팔로잉으로 응원하고 갑니다! 조심스럽게 맞팔 신청드리고 가겠습니다. 추운데 건강 조심하세요. :)
감사합니다. 소통하면서 지내요~
환영합니다~팔로우 하겠습니다 ^^ 스팀잇 가입과 알아 두셔야 할점들 간단하게^^
일단 1.팔로우먼저50-100명한다2.그리고 글을쓴다(이전에 글 써봐야 잘 노출이 안된다)3.보팅은하루에10~15 회정도만보팅 80%유지 4.다른사람 보팅 할때는 30분이상 지난 글에 보팅을 한다( 바로하면 보팅수익없음)5.제목 오른쪽에 온천 표시 안 나오도록, 1스팀이 1USD 이상일 때 보상은 50:50으로 설정6.댓글소통을 많이하라 스팀잇을누벼라~!!
감사합니다. 스팀달러, 스팀파워 50:50 유지하는 이유를 알 수 있을까요?
이전까지는 그렇게 받아서, 스팀달러를 파워로 변환시켰었는데.
그 일이 번거로워, 100% 스팀파워 보상을 선택했는데..