비트코인이 해킹당할 수 없는 3가지 이유

coin4u
6 min readJun 25, 2018

--

뉴스에서 나오는 해킹소식을 제대로 이해하자👏

안녕하세요! 소블리입니다.

블록체인의 원리를 배우고 뉴스에서 나오는 해킹소식을 제대로 이해하자!

오늘은 비트코인이 어떠한 블록체인의 기술 때문에 해킹당할 수 없는 지를 배워봅시다. 뉴스에서는 분명 해킹을 당했다는데…비트코인은 또 해킹당할 수 없다고하고…도대체 무슨 뜻일까요? 사람들이 말하는 블록체인 기술이 무엇이길래 왜 해킹당할 수 없다고 자신있게 얘기하는 것일까요?

우선은 블록체인이라는 기술이 어떻게 탄생하게 되었는지를 간단히 들여다봅시다.

블록체인 기술의 배경

1991년, 한 연구진들은 디지털 문서에 시간을 기록할 수 있는 기술을 개발하였습니다. 문서에 시간을 기록하여 이 문서가 2000년도 만들어졌는지 2001년도에 만들었는 지를 위조할 수 없도록 하는 것입니다. 이 기술은 마치 공증인이 문서의 유효성을 확인해주는 과정과 비슷하죠?

그러나 이 기술은 2009년 사토시 나카모토가 비트코인을 만들기 전까지는 사용되지 않았습니다.

해킹당 할 수 없는 이유1: 해시값

그렇다면 사토시 나카모토는 블록체인 기술을 비트코인에 어떻게 적용하여 설계했을까요? 비트코인의 블록체인에 연결되어 있는 하나의 블록에 기록되는 정보는 3가지가 있습니다.

1. 거래내역 (보내는 자, 받는 자, 보내는 금액)

2. 해시

3. 이전의 해시

그럼 이 3가지를 하나씩 살펴보겠습니다.

첫번째의 데이터는 블록체인의 종류마다 다르게 들어갈 수 있는 부분입니다. 비트코인에서는 거래내역의 정보가 포함되며, 보내는 자, 받는 자, 보내는 금액의 정보가 들어갑니다.

두번째로 해시값이란 각각의 블록을 구분해줄 수 있는 고유의 값입니다. 하나의 블록이 생성될 때마다 해시값도 나타나게 됩니다. 만약에 블록 안의 정보를 바꾸게 된다면 해시의 고유값도 달라지게 됩니다.

세번째로 이전의 해시값이란, 체인으로 연결된 블록들의 순서를 알기위한 정보입니다. 이전의 해시값을 알아야 그 다음에 오는 블록이 순서를 알 수 있기 때문입니다.

세 개의 블록이 있다고 예를 들어볼게요: 블록1-블록2-블록3

해시 3은 해시2의 정보를 갖고 있고, 해시 2는 해시 1의 정보를 갖고 있는 것입니다. 하지만, 해시 1은 최초로 만들어진 블록이기 때문에 이전의 해시 정보를 갖고 있지 않습니다. 이 최초로 만들어진 블록은 제네시스 블록이라고 불립니다.

만약에 두번째 블록을 위조하려고 한다면, 해시의 고유값, 즉 해시값도 바뀔 것이고 그렇다면 세번째 블록의 해시값은 더 이상 두번째 블록의 이전의 해시값을 갖고있지 않기 때문에 불일치하게 될 것입니다.

정리하자면, 블록 하나의 해시값을 위조하려고 하면, 뒤에 따라오는 모든 블록의 해시값들을 바꿔야 합니다. 즉, 이 말은 위조를 하려면 모든 블록들을 해킹해서 앞뒤의 해시값 모두를 맞춰야함으로 해킹이 힘들어지는 것입니다.

해킹당할 수 없는 이유2: 작업증명

물론 요즘 컴퓨터들은 매우 빠르기 때문에 수천개의 해시들을 몇 초안에 해킹할 수 있으므로 한 개의 블록의 해시값을 조작하고 그 이후의 나머지 해시들도 빠르게 조작하면 해킹이 가능합니다.

하지만, 이것을 방지하기 위해 작업증명이라는 방법을 고안해냈습니다. 이 방법이 생겨나게 된 이유는 블록이 생성되기까지의 시간을 늦추기 위해서 입니다. 비트코인과 같은 경우에 작업증명을 통하여 새로운 블록을 생성하는 시간은 10분이나 걸립니다.

하나의 블록을 위조하기 위해서는 그 하나의 블록 이후에 따라오는 모든 블록들의 작업증명까지 해야합니다. 한 마디로 블록체인의 안전성은 바로 이 해쉬값과 작업증명을 통해서 얻을 수 있는 것입니다.

해킹당할 수 없는 이유3: 분산원장

비트코인의 해킹을 방지하는 나머지 하나의 기술은 바로 분산형 P2P 네트워크에서 합의과정을 거치는 것입니다.

분산원장을 가진다는 것은 단 하나의 중앙의 서버에서 모든 정보를 관리하는 것이 아니라 여러 명의 사람들이 같은 정보를 모두 가지는 것입니다.

예를 들어봅시다.

하나의 블록이 생성되었습니다. 이 블록은 네트워크에 있는 모든 사람들에게 이 블록의 정보를 전달합니다. 각각의 노드(네트워크에 있는 각각의 개인이라고 이해하면 쉽다)는 이 블록이 위조되지 않았는지의 여부를 판단합니다. 그리고 노드들이 모두 합의를 하면 모든 노드들은 이 새로운 블록을 자신의 블록에 추가합니다. 위조가 된 블록들은 합의가 거부되어 블록으로 추가되지 않을 것입니다.

블록체인에서 위조를 성공시키려면 블록체인의 50% 이상의 노드들의 작업증명을 거쳐 합의를 얻어야 합니다. 그리고 모든 블록체인의 작업증명을 통해 합의를 얻어내는 건 불가능한 일이죠.

블록체인 기술을 빼놓고는 4차산업 혁명을 논할 수가 없습니다. 해킹하기 어려워 보안성이 높고 모두에게 공개되는 투명성 때문에 다음 세대 기술로 꼽히고 있습니다.

뉴스에서 흘러나오는 해킹은 블록체인 기술을 이용한 코인을 해킹한 것이 아니라 거래소를 해킹한 것입니다. 거래소에서 비트코인을 지갑으로 옮길 때 발생하는 것입니다.

비트코인을 50%의 노드를 해킹하여 성공하려면 엄청난 전기료와 컴퓨터들이 필요합니다. 차라리 그럴바에야 채굴을 하는 것이 더 큰 이득이 될 것입니다.

이 내용은 참고영상을 제가 이해하기 쉽게 요약하고 정리한 내용입니다. 원본 영상은 https://www.youtube.com/watch?v=SSo_EIwHSd4 링크를 따라가면 보실 수 있습니다.

--

--