본문을 설명한 유튜브 영상도 제공합니다.
Table of Contents
본문은 아래 지식을 전제한다.
평창 올림픽 개막식에서 인텔은 1,000여대의 드론으로 하늘을 수 놓았다. 전국의 드론 소유자 10,000명이 모여 그와 같은 하늘 쇼를 준비한다고 가정하자. 각자의 드론이 정해진 시각에 정해진 루트를 비행하면서, 하늘을 나는 인면조와 같은 다양한 모습을 연출할 수 있을 것이다. 각 드론은 사전에 프로그래밍된 경로를 비행하면 된다.
그런데, 방해꾼 드론이 포함되면 어떻게 될까? 겉모습만 봐서는 누가 훼방꾼인지는 알 수 없다. 훼방꾼이 한 명이라도 섞여 있다면, 연쇄 충돌로 순식간에 아수라장이 되고 상당한 인적 물적 피해로 연결될 것이다. 이를 막는 방법 중 하나가 블록체인 기술이다.
다음 세 가지를 가정한다.
- 드론 소유자 10,000명이 평창에 모였다.
- 훼방꾼이 섞여있다.
- 훼방꾼의 수는 알 수 없다.
일정한 크기의 입체 공간을 지정하고, 공간 내부의 좌표 체계를 구성한다.
구현하려는 형태의 포인트 좌표를 구한다. 이미지: stackoverflow
Motion tracking 기법으로 움직이는 물체에 부착된 다수의 Tracking Point(= TP)의 Timestamp 및 그에 대응하는 공간 좌표를 구한다. 가령, 10초 동안 비행하는 인면조를 드론 10,000대로 구현하는 경우, 1초 간격으로 각 드론의 공간 좌표를 기록할 수 있다. 달리 표현하면, 10,000개의 상호 독립적 Path가 도출되며, 각 드론은 각자의 Path를 따라, 정해진 시각에 비행하게 된다.
지상의 세 지점에 반향기를 설치하고, 공중의 한 지점에서 시그널을 발산한 뒤, 반향기에 부딪혀 되돌아오는 시간을 측정한다. 그로써, 공간 내 좌표(x, y, z)를 특정할 수 있다. 이미지: MDPI
시스템을 해킹하여, 일부 드론의 Path를 변경한다면? 또는, 훼방꾼이 자신의 드론을 조작한다면?
행사 당일에 어떤 드론의 경로도 위변조되지 않았다고 확신할 방법은?
매 초마다, 드론 10,000개 각각의 공간 좌표 데이터를 취합한 뒤, 그로부터 Hash를 생성한다. 10개의 Hash를 상호 연동한다. 따라서, 어느 한 드론의 어느 한 좌표를 위변조할 수 없다. 이렇게 생성된 10만 개의 공간 좌표를 모든 드론이 공유한다. 달리, 각 드론은 자신의 Path 뿐 아니라, 공연에 참여하는 모든 드론들의 Path를 알 수 있다.
실제 공연 중에 드론들은 매 초 단위로 각자의 공간 좌표를 Publish하고(many-to-many), 모든 드론이 다른 모든 드론의 실제 Path가 예정된 Path와 일치하는 지 파악할 수 있다. 그런데, 어느 한 드론이 자신의 진짜 좌표를 숨기고, 거짓 좌표를 발표한다면 어떻게 될까? 훼방꾼이 있음을 기억하자. 어느 한 드론의 거짓 좌표는 즉시 모두에게 알려지게 된다. 어떻게?
실제 공연에서 각 드론이 다른 드론들에게 자신의 공간 좌표를 Publish할 때, Gossip Protocol을 이용할 수 있다.
그런데, 각 드론은 자신의 좌표가 아니라, 자신의 동서남북 및 전후에 위치한 드론들을 관찰하고(초음파 센서), 그들 각각의 위치가 예정된 경로 상의 위치인지 판단한 뒤, 그 결과를 공표한다. 만약, 드론A가 경로 상으로 자신의 앞에 위치해야 할 드론B를 뒤나 옆에서 발견한다면, 이상 감지(abnormal detection)이다. 드론B가 경로를 이탈한 것이다. 그런데, 과연 그럴까? 드론A가 거짓말을 한다면? 따라서, 누가 범인인 지 알 수 없다.
아쉽게도 블록체인 1~2세대 기술은 해결방안을 제시할 수 없다.
블록체인은 다수결이다.
- A는 B가 훼방꾼이라 보고한다.
- B는 A가 훼방꾼이라 보고한다.
- C는?
- D는?
E에 의해 C가 훼방꾼이라 보고된다면? 혹은 D가 그러하다고 보고된다면?
훼방꾼의 숫자는 알 수 없다고 전제하였다. 과연 누가 훼방꾼인지 어떻게 판정할 수 있을까? 50%+ 1개의 드론이 주장하는 바가 참이라 가정한다. 달리 표현하면, 50% 이상이 담합하면, 거짓을 가려낼 수 없다. 그런데, 드론 A에 대해 말할 수 있는 드론은 드론A 주변에 있는 드론들 뿐이다. 참이든 거짓이든 어떤 경우에도 투표수가 50%를 넘어설 수 없다. 그러므로, 블록체인 1~3세대 기술로는 해결책을 제시할 수 없다.
Openhash의 Proof of Credits 투표 시스템은 해결책을 제시한다.