비트코인은 과연 해킹당할 수 있을까(feat. 도박꾼의 파산,gambler’s ruin) 1편
*** 이 글은 기본적인 비트코인과 블록체인에 대한 기본적인 이해가 있다는 가정하에 쓰여졌습니다 ***
현재 비트코인을 해킹 하기 위해서는, 엄밀히 말해 장부를 조작하기 위해서는 여러 난관들이 있습니다.
정직한 노드들과의 경쟁에서 이겨야 함은 물론이고
그 작업을 위한 컴퓨팅 파워를 해커들이 가지기는 물리적으로 쉽지 않기 때문입니다 .
노드는 유효하지 않은 거래를 결제로 받아들이지 않으며,
정직한 노드는 그걸 포함하는 블록을 절대 받아들이지 않습니다.
오늘 제가 얘기 하고 싶은 부분은 사토시가 쓴 논문 마지막 문단인 [ 11. 계산] 입니다.
.
.
.
.
.
<<< 과연 비트코인은 과연 해킹을 당할 수 있을까? >>>
우선 비트코인 장부를 공격 하려는 공격자가 있다고 가정을 해봅시다.
여기에서의 공격은 장부를 조작하여 이중지불과의 문제를 일으키는 것입니다.
내가 받지 않은 돈을 받았다고 장부에 적어 사람들에게
이것이 옳은 것 처럼 장부를 돌리는 것이죠.
공격자가 소유한 적도 없는 돈을 얻게 만드는 식으로 시스템을 무단 변경하는 것입니다.
우선 공격자가 정직한 사슬보다 더 빨리 가짜 사슬을 만들어 내려고 한다고 가정합시다.
정직한 노드는 정직한 사슬의 lead를 +1 만큼 늘리는 블록 하나를 연장 작업을 합니다.
그리고 공격자의 사슬은 그 격차를 -1 좁히는 방향으로 블록 하나를 연장 하게 됩니다.
.
.
.
.
이때 공격자가 주어진 열세, 즉 그 격차를 따라 잡을 확률은 도박꾼의 파산(Gambler's Ruin) 문제와 유사점을 가집니다.
*** 여기서 부터는 수학적인 내용이 많이 들어가므로 조금 각색하여 쉽게 설명하겠습니다 ***
두 도박꾼이 각각 일정량의 초기 자산, n1 와 n2 를 가진다고 합시다.
이들이 일련의 도박을 하여 패자가 승자에게 자산 1만큼을 준다고 하면
각 도박꾼이 이길 확률을 p1 과 p2 로 둘 수 있습니다.
- 이 경우 공평한 도박 게임( p1 = p2 일때) 에서의 각각의 플레이어가 이길 확률은 아래의 식과 같습니다.
즉 각자가 가진 자본 만큼 이길 확률이 높아 진다는 말입니다.
- 만약 불공평한 도박이어서 각 도박꾼이 이길 확률이 p1 ≠ p2 일때의 식은 아래와 같습니다.
이때 P1 + P2 = 1이 됩니다.
- 만약 n2의 자산이 무한이라고 가정하면
이런 식이 됩니다.
따라서, n1 자본금의 도박꾼은 p1 > 1/2 인 경우에는 파산할 확률이 유한하고, p1 <= 1/2 인 경우에는 거의 확실하게 파산하게 됩니다.
도박꾼은 심지어 도박이 공평한 경우(p1 = p2 일때) 에도 거의 확실하게 파산하게 됩니다.
.
.
제가 왜 이런 식들을 나열 했는지 의문이 드실수도 있다고 생각합니다.
이유는 바로 비트코인 공격자의 공격 성공 확률 계산이 위의 식 형태와 비슷해서 입니다.
위에서는 자본이 많은 만큼, 게임에서 이길 수 있다고 계산 되었습니다.
비트코인에서는 자본이 곧 계산 해야할 블럭의 수랑 연계됩니다.
공격자는 자신이 따라잡아야 할 블럭의 수가 많으면 많을 수록 게임에서 불리해지고
이미 정직한 노드의 계산은 저 멀리 가있겠죠 .
아래의 식에서는 따라잡아야 할 블럭의 수를 z라고 둡니다.
즉 z의 값이 커질수록 공격자가 게임에서 이길 확률이 0으로 수렴하게 되는 것이죠.
2018년 현재 비트코인 블럭의 수는 몇 십만개를 넘어 서고 있는 상황에서 풀노드(모든 블럭, 즉 모든 장부를 가진 노드)를 속일려면 z 값이 어마어마 할 텐데 과연 해킹이 가능할까요....
위의 식들과 비슷한 형태로 비트코인 공격자의 해킹 확률을 계산해 볼 수 있습니다.
.
.
.
.
.
우리는 도박꾼이 점차 손익분기에 도달할 확률,
다시말해 비트코인 공격자가 정직한 사슬을 따라잡을 확률을 다음과 같이 계산할 수 있습니다.
p > q 라 가정하면, 공격자가 따라잡아야 하는 블록 수가 늘어날수록 그럴 수 있는 확률은 지수적으로 감소합니다.
그에게 주어진 조건상, 만일 그가 초기에 운좋게 앞으로 치고나가지 못한다면, 그의 기회는 그가 뒤쳐질수록 보이지 않을만큼 작아지게 됩니다.
우선 1편은 여기 까지만 설명하고 2편에서 계속해서 얘기 하도록 하겠습니다.
.
.
.
.
.
ps. 쉽게 설명 해보려했는데 힘드네요 ㅠㅠㅠ 이해가 안되시거나 궁금한 점이 있으면 답글 달아주시면 설명 해드리겠습니다!!
https://steemit.com/video/@a-0-0/by-kent-hovind-are-you-going-to-heaven