Skip to content

Instantly share code, notes, and snippets.

@jejuro
Last active February 24, 2018 14:34
Show Gist options
  • Save jejuro/641504b077aba5ee0053ef2947c79627 to your computer and use it in GitHub Desktop.
Save jejuro/641504b077aba5ee0053ef2947c79627 to your computer and use it in GitHub Desktop.

본문을 설명한 유튜브 영상도 제공합니다.

Table of Contents

  1. 입체적 좌표 체계
  2. Motion
  3. Openhash
  4. Abnormal Detection
  5. 블록체인의 Voting Mechanism
  6. Openhash의 Proof of Credits

본문은 아래 지식을 전제한다.

평창 올림픽 개막식에서 인텔은 1,000여대의 드론으로 하늘을 수 놓았다. 전국의 드론 소유자 10,000명이 모여 그와 같은 하늘 쇼를 준비한다고 가정하자. 각자의 드론이 정해진 시각에 정해진 루트를 비행하면서, 하늘을 나는 인면조와 같은 다양한 모습을 연출할 수 있을 것이다. 각 드론은 사전에 프로그래밍된 경로를 비행하면 된다.

그런데, 방해꾼 드론이 포함되면 어떻게 될까? 겉모습만 봐서는 누가 훼방꾼인지는 알 수 없다. 훼방꾼이 한 명이라도 섞여 있다면, 연쇄 충돌로 순식간에 아수라장이 되고 상당한 인적 물적 피해로 연결될 것이다. 이를 막는 방법 중 하나가 블록체인 기술이다.

다음 세 가지를 가정한다.

  • 드론 소유자 10,000명이 평창에 모였다.
  • 훼방꾼이 섞여있다.
  • 훼방꾼의 수는 알 수 없다.

1. 입체적 좌표 체계

일정한 크기의 입체 공간을 지정하고, 공간 내부의 좌표 체계를 구성한다.

구현하려는 형태의 포인트 좌표를 구한다. 이미지: stackoverflow

2. Motion

Motion tracking 기법으로 움직이는 물체에 부착된 다수의 Tracking Point(= TP)의 Timestamp 및 그에 대응하는 공간 좌표를 구한다. 가령, 10초 동안 비행하는 인면조를 드론 10,000대로 구현하는 경우, 1초 간격으로 각 드론의 공간 좌표를 기록할 수 있다. 달리 표현하면, 10,000개의 상호 독립적 Path가 도출되며, 각 드론은 각자의 Path를 따라, 정해진 시각에 비행하게 된다.

이미지: la.wish.org

지상의 세 지점에 반향기를 설치하고, 공중의 한 지점에서 시그널을 발산한 뒤, 반향기에 부딪혀 되돌아오는 시간을 측정한다. 그로써, 공간 내 좌표(x, y, z)를 특정할 수 있다. 이미지: MDPI

시스템을 해킹하여, 일부 드론의 Path를 변경한다면? 또는, 훼방꾼이 자신의 드론을 조작한다면?

행사 당일에 어떤 드론의 경로도 위변조되지 않았다고 확신할 방법은?

3. Openhash

매 초마다, 드론 10,000개 각각의 공간 좌표 데이터를 취합한 뒤, 그로부터 Hash를 생성한다. 10개의 Hash를 상호 연동한다. 따라서, 어느 한 드론의 어느 한 좌표를 위변조할 수 없다. 이렇게 생성된 10만 개의 공간 좌표를 모든 드론이 공유한다. 달리, 각 드론은 자신의 Path 뿐 아니라, 공연에 참여하는 모든 드론들의 Path를 알 수 있다.

실제 공연 중에 드론들은 매 초 단위로 각자의 공간 좌표를 Publish하고(many-to-many), 모든 드론이 다른 모든 드론의 실제 Path가 예정된 Path와 일치하는 지 파악할 수 있다. 그런데, 어느 한 드론이 자신의 진짜 좌표를 숨기고, 거짓 좌표를 발표한다면 어떻게 될까? 훼방꾼이 있음을 기억하자. 어느 한 드론의 거짓 좌표는 즉시 모두에게 알려지게 된다. 어떻게?

4. Abnormal Detection

실제 공연에서 각 드론이 다른 드론들에게 자신의 공간 좌표를 Publish할 때, Gossip Protocol을 이용할 수 있다.

그런데, 각 드론은 자신의 좌표가 아니라, 자신의 동서남북 및 전후에 위치한 드론들을 관찰하고(초음파 센서), 그들 각각의 위치가 예정된 경로 상의 위치인지 판단한 뒤, 그 결과를 공표한다. 만약, 드론A가 경로 상으로 자신의 앞에 위치해야 할 드론B를 뒤나 옆에서 발견한다면, 이상 감지(abnormal detection)이다. 드론B가 경로를 이탈한 것이다. 그런데, 과연 그럴까? 드론A가 거짓말을 한다면? 따라서, 누가 범인인 지 알 수 없다.

아쉽게도 블록체인 1~2세대 기술은 해결방안을 제시할 수 없다.

5. 블록체인의 Voting Mechanism

블록체인은 다수결이다.

  • A는 B가 훼방꾼이라 보고한다.
  • B는 A가 훼방꾼이라 보고한다.
  • C는?
  • D는?

E에 의해 C가 훼방꾼이라 보고된다면? 혹은 D가 그러하다고 보고된다면?

훼방꾼의 숫자는 알 수 없다고 전제하였다. 과연 누가 훼방꾼인지 어떻게 판정할 수 있을까? 50%+ 1개의 드론이 주장하는 바가 참이라 가정한다. 달리 표현하면, 50% 이상이 담합하면, 거짓을 가려낼 수 없다. 그런데, 드론 A에 대해 말할 수 있는 드론은 드론A 주변에 있는 드론들 뿐이다. 참이든 거짓이든 어떤 경우에도 투표수가 50%를 넘어설 수 없다. 그러므로, 블록체인 1~3세대 기술로는 해결책을 제시할 수 없다.

Openhash의 Proof of Credits 투표 시스템은 해결책을 제시한다.

6. Openhash의 Proof of Credits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment