brunch

You can make anything
by writing

C.S.Lewis

by Amang Kim Jul 31. 2018

32. 블록체인 점령게임 (2/2)

BGG, 블록체인 Goverance, 게임이론, 확률모델 그리고, 경제성

[작가주] 이글은 최근에 arXiv.org에 기고 했던 논문[1807.5581] 블록체인 점령게임(Blockchain Governance Game)대한 한글 백서(White Paper) 입니다. 이렇게 기고문을 이렇게 해설을 하게 된 이유는:

1. 본 논문에 제안하는 이론이 실제로 적용될 수 있는 기회를 찾기 때문으로,

2. 이에 실제 구현 경험이 있는 고수 분(혹은 스타트업)들과 함께 합동 프로젝트를 진행, 

3. 학문적 연구에 있어 집단 지성의 실제 적용사례를 만들었으면 하는 바램과

4 그리고, 무엇보다 이쪽 분야에 관심이 있으신 분들과 교류를 했으면 하는 마음 때문입니다.


아무쪼록, 본 글에 대한 관심이 있으신 분들이나 해당 이론의 적용에 관심이 있는 스타트업 기업들의 많은 관심을 부탁드립니다. 간단한 내용은 댓글로 남겨 주시고, 필요하시면 메일로 연락드리겠습니다 (연락처 남겨주세요).


그럼, 시작하겠습니다.

-= Amang =-

PS: 참고로, 해당 백서의 원문은 arXiv.org에서 다운 받으실수 있습니다.

      https://arxiv.org/abs/1807.05581


5. 게임의 법칙 (전략의 선택)

지난 이야기에 이어, 이번에는 실전적인 운용(Operations)방법에 대해서 이야기를 해볼까 한다. 앞에서 이야기 했듯이, 방어자(혹은 관리자)자가 공격자 실질적인 공격에 대해서 고려를 해야 할 시기는 바로. tau_(nu-1)일 때 이다. 즉, 그 다음에 관찰 했을 때, 공격자가 과반의 노드를 점령할 시점(tau_nu)의 바로 전 시점 말이다. 그리고, 이전에 언급했듯이 바로 이 시점은 확률적으로 다음과 같이 계산이 가능하다(2.31):

이 때, 공격자(플레이어 A)의 전략에 따른 방어자(플레이어 H)의 전략을 게임이론의 Payoff Matrix(엄밀하게는 Cost Matrix)로 표현 하면 아래와 같다(Table 1):

위의 그림에도 보이듯이, 방어자의 입장에서의 전략은 방어를 위한 Action을 취하거나, 아니면 아무런 action을 취하지 않거나(Do Nothing) 하는 것이고, 공격자 입장에서의 전략은 불손한 원장으로 과반수 이상의 노드들을 점령하느냐(Burst), 실패(Not Burst)하느냐가 된다. 그리고, 가운데 문자들(c, B등)은 양플레이어가 해당 전략을 택했을 때의 소요비용이다. 게임이론을 공부한 이들은 쉽게 이해 되겠지만, 예를 들자면 이런거다. 만약, 방어자가 전략결정 시점에서 "Do Nothing"전략을 취했는데, 공격자가 블록체인 점령에 실패(Not Burst) 했다면, 소요비용은 0(zero)가 된다. 만약, 아무런 조치를 하지 않은 상태(Do Nothing)에서 공격자가 블록체인 점령을 성공(Burst)했다면, 자산가치(B)만큼 비용이 든다. 만약, 방어자가 Action을 취하고, (그 action으로 인해) 방어에 성공했다면(즉, 공격자가 블록체인 네트워크 점령에 실패), action을 수행하는데 드는 비용(C_alpha)만큼의 비용이 소요 된다. 그리고, 공격자가 블록체인 네트워크를 점령할 가능성 q(s_H)은 다음과 같이 정의 할 수 있다(3.2):

위의 수식을 정확하게 설명하기 위해서는 방어자가 실질적으로 취할 수 있는 전략에 대해서 이해할 필요가 있다. 앞서 잠시 언급했듯이, 관리자가 블록체인망을 위해 취하는 통제는 순수한 노드 수를 늘려서, 공격자로 부터 블록체인을 점령당할 가능성을 낮추는데 있다. 식(3.2)에서 보듯이, 방어자가 결정시점에서 공정한 원장을 가진 노드수를 늘렸을 때, 공격자에게 점령당할 가능성은 두번째식의 가능성을 가진다. 물론, 방어자는 아무런 action을 취하지 않을 수도 있다. 이 경우 블록체인이 공격자에게 점령을 당할 가능성은 첫번째식(3.2)의 가능성을 가진다.


위와같이, 공격자의 점령 가능성이 정해 질 경우, 방어자의 전략에 따라 예상되는 비용은 다음과 같이 계산할 수 있을 것이다.

여기서 한가지 중요한 점은 공격자의 블록체인 점령을 방어하기 위한 action을 취한다고 하더라도, 여전히 공격자가 블록체인을 점령할 가능성은 여전히 존재 한다는 점이다. 다시 한번 말하지만, 보안을 강화한다는 것은 공격당할 가능성을 줄이는 것이지, 아예  없애는 것이 아니다.


6. 보안적용을 위한 의사결정

블록체인 망뿐만 아니라, 망을 구성 할때 보안을 강화할 경우 추가 비용이 발생할 수 밖에 없다. 누구나 보안의 필요성을 이야기하면서도 막상 구현을 할때 보안 비용을 아까워하는 것 또한 사실이다. 사실, 과연 보안을 위한 투자를 해야 할 것인가에 관한 문제는 "경제성"의 문제이다. 만약, 보안을 적용하는데 소요되는 비용이, 보안을 하지 않았고 공격을 당했을 때 발생하는 비용이 크다면, 보안에 대한 투자를 하는 것이 타당하고, 만약 그 반대라면 투자를 하지 않는 것이 타당하다. 만약, 보안에 대한 투자를 결정한 상태라면, "보안을 위해 투자할 수 있는 비용은 보안 투자를 하지 않고 잃을 수 있는 손해보다 크지 않다." 그리고, 이를 수식으로 표현하면:

이 된다. 그리고, 해당 비용은 특정 조건에 따라 달라질 수 있다. 특히, 보안 투자에 대한 비용은 보안을 위해 Reserve할 순수한 노드수의 비율(Alpha)에 따라 달라진다. 사실상, 보안 투자에 대한 비용은 보안이 뚫렸을 때의 지출비용에 의해 결정 된다.


보안에 대한 구현은 되었다고 가정하고, Action을 취할 시점에 대한 이야기를 해보자. 위에서도 언급했지만, Action을 취할 시기는 공격자가 (확률적으로) 점령하기 한 시점 전(tau_(nu-1))이다. 그리고, 이 때 action을 취할 수 있는 경우는 이 시점까지 블록체인 공격자에게 공격을 당하지 않아야지만, action을 취할수 있댜. 만약, 의사결정을 할 시점에 이미 공격을 당했다면 이미 게임은 마친 상황이 된다. 따라서, 이에 대한 전체 최종 소요비용은 조건부확률을 따르게 되는데, 다음 같이 표현이 가능하다:

그리고, 소요비용 계산을 위한 의사결정 시점에서의 공격자의 점령 가능성(A_(nu-1))은 식(2.28)에서 계산이 가능하다.


7. 블록체인 점령게임

위의 이론을 바탕으로 실질적으로 블록체인 점령게임을 해보자. 물론, 점령게임을 어떻게 사용하는지를 보여주는 예제일 뿐이고, 살제로는 해당되는 수식을 사용할 수 있는 값들을 가지고 있어야 한다. 실제적용을 위해 결정해야할 변수들은 실측 데이터를 기반으로 추출을 해야한다. 이에 대한 내용은 이 글의 마지막에 다루도록 하겠다. 본 예제는 블록체인 점령 게임을 어떻게 적용할 수 있는지를 보여주기 위한 예제임을 다시 밝혀둔다. 그리고, 언급된 값을 또한 예제를 위하여 임의로 만들어졌음 밝힌다. 예제와 관련하여 다음과 같이 셋업을 하도록 한다:

위의 Table들이 블록체인 점령게임을 셋업하기 위해 계산을 하거나, 데이터를 통해 미리 확정이 되어야 하는 값들이다. Table 2의 값들은 실측 데이터 및 자료들을 바탕으로 정해져야 할 항목들이고, Table 3는 본 논문에서 분석된 수식을 통해, 계산 되어져야 할 값들이다. 위의 값들이 결정(Initial condition)되면, 최적화(Optimization)를 위한 모델링(Linear Programming)이 가능하다:

위의 내용을 이해를 위해 조금만 설명 하자면, 본 게임의 목적은 블록체인 점령을 위해 소요되는 비용을 최소화(3.10)하고자 한다. 이 때, Cost function은 의사결정시점(tau_(nu-1))에서 추가할 순수한 노드수의 portion(alpha)에 따른 함수 이다. 단, alpha의 조건은 방어를 위한 비용이, 방어없이  공격을 당했을 때의 손실보다 크지 않다(3.11). 이를 바탕으로 cost function을 alpha에 따라 ploting을 해보면,

그림 1. BGG cost changes based on the additional node portion 

와 같이 된다. 물론, 이 그래프는 초기 조건(Table 1&2)에 따라 달라질수 있다. 위의 그래프에서 보면, 순수한 노드의 portion이 13.1%일 때(즉, alpah=0.1314) 소요되는 비용이 최소화 된다. 예를 들어, 블록체인 기반의 서비스의 유저(혹은 노드)를 100,000이라고 하고, 최초 공격자의 블록체인 점령가능성을 1.9%라고 했을 때(Table 1참조), 131,400개의 추가 노드들을 Reserve(혹은 통제)해야 한다는 의미이다.


8. 앞으로 할 일

위에서도 언급했지만, Table 2의 값들은 임의로 정하는 것이 아니라, 수학적인 계산을 통해서 계산해야 할 내용들이다. 지난 회에 언급했던 수식들(2.27)-(2.31)을 통해서 말이다. 다만, 관찰 프로세스(Observation Process)에 따라 계산이 까다로워 질 수 있다. 하지만, 컴퓨터를 사용한다면 최종 수식만 알고 있다면 쉽게 구현이 가능하다. 실제 구현을 위해서 필요한 것은:


    1. 데이터분석에 따른 실제비용 산정 (Table 2)

    2. 블록체인 기반 서비스 계획에 따른 조건 확정 (Table 3)

    3. 실제 네트워크와 수학 공식 상의 계수(coefficient)의 Mapping

    4. 블록체인 점령 게임을 적용한 서비스의 실제 동작 여부 확인(및 비교)


정도가 되겠다. 물론, 그것보다 중요한 것은 이제까지 내가 한 이야기가 독자들에게 이해가 되었는지가 더 중요하지만 말이다.



[작가주] 처음에도 언급했듯이, 이 글은 블록체인기반의 서비스를 개발하거나, 계획하고 있는 이들에게 알기쉽게(?) 설명해 주고 실무자들로부터 다양한 의견들을 공유하고 싶어서 입니다. 나름데로 쉽게 적을려고 최선을 다하긴 했지만, 아직도 부족한 점이 많습니다. 많은 의견들 부탁드리고, 혹시라도 질문이 있으면 댓글 남겨주세요. 부탁드리겠습니다.



 

 


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari