시빌 공격(Attack on Sybil)

Baryon
Baryon_Humanode
Published in
27 min readNov 11, 2021

시빌 저항 유형 및 Humanode 접근 방식에 대한 간략한 개요

시빌 저항(Sybil-Resistance)의 선구자

강력한 탈중앙화 시스템을 구축하기 위해 가장 복잡한 주제 중 하나는 시빌 저항입니다. 이번 기사에서는 클론 공격이 발생하지 않도록 하고 이를 방지하기 위해 역사적으로 다양한 회사와 사람들이 구현한 접근 방식을 살펴보고 Humanode의 접근 방식을 확인해 보도록 하겠습니다.

그렇다면 시빌 공격이란 무엇일까요? 간단히 말하면 공격자가 다수의 가명 ID를 생성하여 네트워크 서비스를 파괴하고 불균형적으로 많은 영향력을 가지려고 하는 것이라고 할 수 있습니다. 예를 들어 보겠습니다. Reddit에는 Karma라는 평판 시스템이 있습니다. Reddit의 사용자가 제출한 게시물과 댓글에 더 많은 Upvote(좋아요)를 받으면 더 많은 Karma 포인트를 얻습니다. 이러한 시스템의 전제는 콘텐츠 품질을 개선하고 봇의 스팸 기능을 제한하는 것입니다. 이를 통해 Subreddit에 게시하거나 댓글을 달기 위해 일정의 Karma 포인트를 요구할 수 있습니다. 하지만 생성된 모든 계정은 콘텐츠에 투표할 수 있는 기능이 있으므로 공격자는 수많은 계정을 손쉽게 생성하여 자신의 콘텐츠에 투표하여 이러한 평판 시스템을 무시할 수 있습니다. 탈중앙화 원장 기술도 마찬가지입니다. 의미 없는 기사나 NSFW 게시물을 잘못된 곳에서 보는 것보다 탈중앙화 원장 기술은 더 많은 문제를 일으킬 수 있습니다.

먼저 DAO 및 DLT를 다룰 때 시빌 저항을 유지하는 것이 왜 중요한지 살펴보겠습니다. 시빌 공격은 공개 및 무허가 시스템을 대상으로 할 때 정말 강력합니다. 왜냐하면 대부분의 경우 이러한 시스템은 합의에 도달하지 않고는 아무것도 결정할 수 없기 때문입니다. 검증의 합의 메커니즘은 네트워크마다 다르지만 기본 원칙은 매우 간단합니다. 시스템은 대부분의 검증 권한이 이끄는 곳으로 이동합니다. 예를 들어, Proof-of-Work(PoW) 시스템에서 검증 권한은 보유하고 있는 채굴 장비의 성능을 기반으로 네트워크 참여자에게 분배됩니다. 프로토콜은 사용자의 수가 아니라 각 사용자가 소유한 해싱(Hashing) 능력을 보기 때문에 많은 계정을 생성하는 것은 쓸모가 없습니다. 51%의 해싱 파워를 가진 사용자가 있다면 그의 결정은 수천 명의 사용자를 능가합니다. 이 방식은 악의적인 사용자가 자신이 원하는 방식대로 시스템을 변경하기 위해 51% 이상 얻을 수 있는 충분한 채굴 장비를 구입하기 위해 많은 시간/노력/돈을 소비해야 하므로 잠재적인 비용이 매우 많이 듭니다. Proof-of-Stake(PoS) 기반 시스템도 마찬가지지만 PoS는 마이닝 파워 대신 스테이킹된 자산의 양에 따라 검증을 할당합니다. 악의적인 행위자는 공격을 수행하기 위해 엄청난 양의 자산을 구매해야 합니다. 이 두 가지 방식 모두 반복 비용(Recurring Cost) 유형의 시빌 방어에 해당하지만 이에 대해서는 추후에 설명하도록 하겠습니다.

시스템이 스테이킹 또는 채굴에 관계없이 모든 사용자에게 동일한 검증 권한을 부여했다고 가정해 봅시다 (Humanode처럼). 이는 잠재적인 시빌 공격으로써 불균형적으로 수많은 사용자를 생성할 수 있으며 적절한 방어가 없으면 가해자가 많은 가짜 ID를 만들어 네트워크의 정직한 참가자를 쉽게 지배할 수 있음을 의미합니다. PoW 및 PoS에서 소수의 손에 권력이 집중되는 것과 달리 노드 간의 균등한 권력 분배는 공정하고 합리적으로 보이지만 반복적인 비용에 대한 방어가 부족하여 악의적인 사용자가 시스템을 지배하기 위해 부담해야 하는 장벽을 만들어야 합니다.

전통적인 시빌 방어

사용자 간에 검증 권한의 균등한 분배를 유지하면서 클론 공격에 저항할 수 있는 방법은 무엇일까요? 이 질문에 올바르게 답하기 위해서는 먼저 존재하는 시빌 방어의 유형을 살펴보고 이에 대한 장점과 단점을 살펴봐야 합니다. 기존의 방식은 크게 6가지로 나눌 수 있습니다.

그림1. 전통적인 시빌 방어 종류

시빌 방어의 궁극적인 목표는 시빌 신원을 탐지, 격리 및 처벌하는 것입니다. 시빌 방어를 완벽하게 보장할 수 있는 유일한 방법은 인증 기관을 사용하는 것입니다. 다른 모든 방법은 확률을 사용하며 일부 시빌 노드를 허용하는 거짓긍정 또는 거짓부정에 크게 의존합니다. 따라서 탈중앙화 시스템에서 설정할 수 있는 현실적인 목표는 가능한 최대로 거짓부정을 최소화하는 것입니다.

신뢰할 수 있는 인증

신뢰할 수 있는 인증은 가장 널리 사용되는 접근 방식이며 다양한 시뮬레이션 및 테스트를 통해 효과를 입증하였습니다. 제3의 제공자 또는 중앙 집중식 기관은 이러한 고유성이 입증된 절차를 인증하여 ID가 고유한지 확인합니다. 이 인증은 명명된 주체를 통해 공개 키의 소유권을 증명합니다. 인증 기관은 신뢰할 수 있는 제3자의 형태를 취합니다. 이는 인증서 소유자와 제2자가 모두 신뢰될 수 있기 때문에 ID가 사실인지를 확인해야 하므로 인증에 크게 의존합니다. 인증 유형은 HTTPS에 사용되는 인증 서명부터 국가 기관에서 발급하는 신분증에 이르기까지 다양합니다.

그림2. 신뢰할 수 있는 인증

신뢰할 수 있는 장치

신뢰할 수 있는 장치 또는 모듈은 중앙 집중식 기관에서 사용자에게 할당한 인증서, 키 또는 인증 문자열을 저장합니다. 신뢰할 수 있는 장치의 가장 일반적인 예 중 하나는 디지털 메시지 또는 문서의 진위 여부를 확인하기 위해 정부에서 발행한 디지털 서명입니다. 전제 조건이 충족되는 디지털 서명은 메시지가 믿을 수 있는 사람(인증)에 의해 생성되었으며 전송 중에 변경되지 않았다고 믿을 수 있는 강력한 증거가 됩니다.

암호 기본 요소(Cryptographic Primitives)

암호 기본 요소를 사용하는 동안 합법적인 사용자만 오버레이(Overlay)에 참여할 수 있습니다. 핵심적인 인프라는 사용자의 정직함을 보장하기 위해 일종의 접근 요소를 보유하는 방식으로 만들어집니다. 비밀 공유(Secret Sharing) 또는 임계값 서명(Threshold Signature)은 정직한 사용자 간의 협업을 보장하며 사용자를 인증하기 위해 사용됩니다. 즉, 암호 기본 요소를 소유한 노드가 새 노드에 대해 합법적이라고 선언을 하면 이는 합법적이라고 간주됩니다. 일부 접근 방식은 해당 기본 요소를 새로 배포된 노드에 부여하는 임계값을 사용하여 네트워크의 다른 사용자가 정직한 것으로 간주하게 만듭니다.

리소스 테스트

리소스 테스트 접근 방식을 Sybil 방어로 사용하는 기본 원칙은 서로 다른 사용자가 있는 ID 집합이 ID 수와 일치하는 충분한 리소스를 소유하고 있는지 확인하는 것입니다. 테스트 가능한 리소스는 다양합니다. 계산력, 대역폭, 메모리, IP 주소, 신뢰 자격, 하드웨어 사양, 채굴 능력 및 스테이킹 된 자산의 양이 포함됩니다. 마지막 2개 외에 나머지는 모두 리소스를 에뮬레이트(Emulate) 하는 방식으로 인해 효과가 없는 것으로 판명되었지만 일반적인 수준의 공격자로부터 보호하기 위한 방어의 기준선이라고 볼 수 있습니다.

IP 테스트

이 접근 방식은 네트워크에서 사용자의 지리적 위치를 확인하고 이를 활동과 매칭하여 확인합니다. 동일한 영역에서 생성되는 활동의 양이 IP 주소와 불균형한다면 이러한 활동 중 일부가 시빌 ID로 인한 것일 가능성이 높습니다. 안타깝게도 이 접근 방식은 정확성이 떨어지고 봇넷 사용으로 인해 구식이며 비효율적입니다.

반복 비용

이미 언급했듯이 인공적인 진입 장벽으로 비용을 부과하면 시빌 공격을 더 비싸게 만들 수 있습니다. PoW의 예를 보면 사용자는 암호화 퍼즐을 풀기 위해 일정량의 계산 노력을 들였다는 것을 증명해야 합니다. 비트코인 및 무허가(Permissionless) 암호화폐에서 채굴자는 블록체인에 블록을 추가하고 주어진 기간 동안 투자한 노력의 양에 대략적으로 비례하여 보상을 받기 위해 경쟁합니다. 기존 암호화폐에 대한 저장 또는 스테이킹과 같은 다른 자원에 대한 투자는 경제적 비용을 부과하기 위해 유사하게 사용될 수 있습니다.

소셜 그래프

탈중앙화 방식으로 시빌과 싸우기 위해 존재하는 모든 방법 중에서 소셜 그래프의 사용은 시빌 노드가 네트워크에 미치는 영향을 최대한 최소화할 수 있습니다. 소셜 그래프 접근 방식은 중앙 권한 없이 작동되도록 설계되었습니다. 소셜 그래프의 사용은 시스템 내부에 잘 얽힌 정직한 노드가 어느 정도는 있음을 의미합니다. 소셜 그래프의 노드는 서로 연결되어 있으며 네트워크의 영역은 다른 영역과 연결되는 에지(Edge)가 있습니다.

새 노드가 추가되면 시스템의 다른 노드에 걸쳐 “랜덤 워크(Random Walk)”가 수행되며 이는 일반적으로 10–15 ”단계(Steps)”입니다. 단계는 무작위로 밟는 노드의 공개 키를 기록하는 것입니다.

그림 3. 랜덤 워크

진행 중인 각 노드는 증인이 되어 워커(Walker)의 공개 키를 기록합니다. 경로가 끝나면 창설자(Originator)는 자신이 밟은 모든 증인의 목록을 받습니다. 창설자를 확인할 시간이 되면 이는 의심(Suspect) 노드로 간주됩니다. 이후 의심자(Suspect)는 수집한 공개 주소를 검증인 노드(소셜 그래프에 대한 접근 방식은 다양하므로 이 위치는 다를 수 있지만 대부분의 경우 정직한 노드 중 하나를 선택합니다)로 보내고 증인 목록을 자신의 목록과 비교합니다. 그 후에 세 가지 일이 발생할 수 있습니다.

1. 두 세트 사이에 교차 지점이 없다면 검증인은 중단하고 의심자를 거부합니다.

그렇지 않다면 검증인은 교차 지점에 있는 노드에 의심자가 등록된 공개 키를 갖고 있는지 확인하도록 요청합니다. 그다음에,

1. 교차 노드에 의해 의심자가 검증되면 검증인은 의심자를 새 노드로 수락합니다.

2. 교차 노드에 의심자가 확인되지 않으면 검증인은 이를 시빌 노드로 표시합니다.

이 모든 것이 꽤 복잡해 보일 수 있지만 주요 목표는 노드의 시빌 클러스터와 정직한 클러스터의 양을 제한하는 것입니다. 악의적인 사용자가 시빌 ID를 많이 생성하면 동일한 에지(Edge)를 통해 정직한 영역에 연결된 노드의 불균형한 양이 많아져 그래프가 매우 이상해집니다. 소셜 그래프의 목적은 에지 공격을 제한하고 공격자가 정직한 영역에 공격을 하도록 하는 것입니다.

그림4. 소셜 그래프의 공격 에지

이러한 유형의 방어는 효과적이라고 입증되었지만 이미 기존에 신뢰할 수 있는 노드가 있다는 것을 전제로 합니다. 이는 서로를 신뢰할 수 있는 그룹이 있음을 의미합니다. 독창적인 연구에 따르면 그들은 친구 관계이며 실제로 아는 관계일 것이라고 합니다. 이는 모든 노드가 정직한 지역에 전파됨, 다른 말로 풀이하면 “Proof-of-Authority”-기반 시스템을 만드는 서로를 신뢰하는 사람들의 엔클레이브(Enclave)에 전파됨을 의미합니다. 또 다른 점은 공격자가 소셜 그래프에서 정직한 노드 사이의 몇 가지 링크만 집합적으로 제어한다고 가정을 할 때 시빌 노드를 식별하는 능력이 보장된다는 것입니다. 만약 악의적인 공격자가 엔클레이브 내부의 사람들을 속이고 그의 노드가 정직한 지역의 일부가 되도록 하면 게임 오버입니다. 당연히 소수의 사람을 해킹하거나 디도스 공격하는 것은 쉽습니다. 소셜 그래프에도 결함이 있지만 반복 비용 없이 시빌 공격으로부터 시스템을 보호하기 위한 가장 적절한 방법입니다.

개인 증명(Proof-of-Personhood)

마침내 PoP 차례가 왔습니다. 수년 동안 연구자들은 각각의 고유한 참가자가 동일한 투표 및 검증 권한을 얻고 무허가 합의를 통해 강력한 탈중앙화 시스템을 도입하기 위해 고심해 왔습니다. 2014년에 Vitalik Buterin은 각 사용자에게 하나의 Anti-시빌 참여 토큰을 제공하는 암호화에 대한 “고유한 ID 시스템”을 만드는 문제를 맥락과 관련지었습니다. Proof-of-Personhood라는 용어를 사용하여 처음으로 출판된 작업은 Maria Borge에 의해 2017년에 출판되었으며 익명의 접근 방식을 제안했습니다.

그 이후로 이 문제를 해결하기 위한 다양한 접근 방식이 생겨났습니다.

익명 당사자

이 방식은 Borge에 의해 제안된 접근 방식입니다. 이 방식은 사람들이 서로의 존재를 확인하기 위해 실제로 만나는 일종의 대면 이벤트를 의미합니다. 이 만남은 무작위로 정해진 장소에서 동시다발적으로 진행됩니다. 이 방식에는 두 가지 단점이 있습니다. 첫째, 일부 클러스터는 악의적인 의도로 존재하지 않는 다른 사람을 존재하는 사람이라고 할 수 있습니다. 둘째, 사용자가 이벤트 당시 다른 업무를 해야 할 수도 있기 때문에 사용자의 불편함이 있습니다.

온라인 튜링 테스트

일부 솔루션은 고유한 인간의 존재를 확인하기 위해 튜링 테스트를 구현하려고 했습니다. 그러나 AI와 딥페이크 기술의 발전으로 인해 이러한 접근 방식은 무용지물이 되었습니다. 또한, 공격자는 자신의 가짜 사이트에서 확장된 CAPTCHA 솔루션을 풀게 하여 이를 재송신하여 검증을 속이고 존재하지 않는 신원을 있게 보이도록 할 수 있습니다.

소셜 네트워크 그래프

이는 기본적으로 소셜 그래프이지만 노드가 고유한 인간 ID인 경우입니다. 랜덤 워크, 의심자 및 증인 등이 포함됩니다. 소셜 그래프와 동일한 문제가 여기서도 발생합니다.

강력한 신원

이 접근 방식은 중앙 집중식 인증을 의미하며 참여자들은 확인된 신원이 있어야 합니다. 일반적으로 제3의 제공자가 개인의 KYC 또는 생체 인식 정보를 수집하여 해당 데이터를 보안 데이터베이스에 저장하여 추후에 접속 시 이를 확인하며 하나의 노드 이상을 만들 수 없도록 합니다. 검증 후 신원은 익명화됩니다(여기에는 많은 접근 방식이 있습니다). 정부에서 발행한 문서를 기반으로 하여 가명을 생성하자는 제안도 있었습니다. 하지만 이러한 접근 방식에는 명백한 단점이 있습니다. 첫째, 검증된 ID의 데이터베이스는 결정적인 실패 지점입니다. 이 정보가 유출되어 악의적인 공격자에게 넘어간다면 심각한 문제가 발생할 수 있습니다. 둘째, 개인 정보 보호 문제를 우려하여 본인 확인을 꺼려 하거나 생체 인식 오류로 인해 일부 사용자가 제외될 위험이 있습니다. 셋째, 회사 제공자는 검증된 모든 참가자가 신뢰해야 하는 매우 강력한 신뢰 계층이 되기 때문에 일종의 권위 증명(Proof-of-Authority)이 됩니다.

Humanode의 접근

Humanode는 <한 사람=한 개의 노드>의 시스템을 만들고 모든 노드가 검증 및 투표 권한에 있어 동일한 시스템을 만들려고 합니다. 시빌 공격은 잠재적인 공격자가 수많은 노드를 생성하는 것을 막기 위해 큰 반복 비용이 들지 않기 때문에 매우 위험합니다. 이를 방지하기 위해 Humanode 팀은 활성 감지 인증을 신뢰할 수 있는 장치와 반복 비용 메커니즘을 결합하되 중앙 집중화는 낮추고 더 안전하며 비공개로 만드는 업그레이드를 진행하는 방법을 생각해 냈습니다.

솔루션을 읽기 전에 이 접근 방식은 휴먼 노드(검증인)에게만 합리적인 방법이라는 것을 명심해야 합니다. 왜냐하면 악의적인 행위자가 검증 노드를 속이는 것을 방지할 수 있어야 하기 때문입니다. 일반 사용자를 위한 UX는 훨씬 간단합니다.

활성 감지 기능이 있는 개인 생체 인식 ID

이 접근 방식은 완전 동형 암호화(Fully Homomorphic Encryption) 생체 인식 처리와 활성 감지(Liveness Detection) 인증을 결합합니다.

FHEd 내장형 템플릿

이 부분은 Humanode를 간단하게 다룬 다른 글에서 빌려왔습니다. 그 글은 여기에서 확인할 수 있습니다.

얼굴 인식을 사용할 때 발생하는 몇 가지 생체 인식 101에 대하여 살펴보겠습니다. 장치에서 생체 인식을 사용하면 카메라는 얼굴 사진을 여러 장 찍고 가장 좋은 이미지를 선택하여 얼굴에 부동 소수점(Floating Points)을 부여합니다. (눈썹, 코, 입, 턱과 같은 인간의 고유한 특성 주위의 작은 점. 일반적으로 약 70개의 점을 통해 얼굴을 캡처합니다.)

사진1. 얼굴 매핑. 출처: apidapi.com

일란성 쌍둥이를 제외한 모든 사람은 각각 고유의 얼굴 특성을 가지고 있기 때문에 모든 부동 소수점의 얼굴 지도는 모두 다릅니다. 부동 소수점은 이미지를 자르고 정규화 하는데 사용되며 이는 심층 신경망(DNN)에 삽입됩니다.

사진2. 다층의 DNN. 출처: Facebook AI Research

DNN은 얼굴을 128차원 벡터 공간의 좌표로 나타내는 128개의 숫자로 얼굴을 변환합니다. 이를 내장형 템플릿(Embedded Template)이라고 하며 앱 등에 로그인하기 위한 개인 키로 사용됩니다. 내장형 템플릿이 준비되면 원본 사진과 부동 소수점 지도는 삭제됩니다.

내장형 템플릿이 해킹되는 경우 원래 얼굴 특징을 복구하도록 설계된 다른 신경망에 제공될 수 있습니다. 즉, 일부 악의적인 행위자가 이 템플릿에 접근을 할 수 있다면 원래 얼굴과 매우 유사한 이미지를 만들 수 있습니다.

암호를 잃어버리는 것은 손쉽게 변경을 할 수 있지만 내 얼굴을 잃어버린다는 것은 무서운 일입니다. 바로 여기에서 완전 동형 암호화(Fully Homomorphic Encryption)가 필요하게 됩니다. 템플릿을 얻은 직후에 추가 단계를 추가합니다. Humanode는 많은 암호화 알고리즘 중 하나를 사용하여 내장형 템플릿을 암호화한 후 다른 모든 것과 함께 지우고 “암호문(Ciphertext)”으로 작업(등록/로그인/거래/서명 등)을 진행합니다.

악의적인 행위자가 어떻게든 자료를 되찾는다 해도 원본과 비슷하게 복원할 수는 없습니다. 그뿐만 아니라 암호문을 작동하는 시스템은 당신이 누구인지 알 수가 없습니다. FHE는 생체 인식을 비공개로 하며 전적으로 당신에게만 속할 수 있는 수단을 제공하는 동시에 얼굴을 통해 승인을 할 수 있게 합니다.

이 접근 방식은 2020년 Engelsma의 “HERS: Homomorphically Encrypted Representation Search”라는 논문에서 광범위하게 테스트되고 실제로 구현 및 테스트되었습니다. 또한 2018년에는 Bodetti가 이를 이론적으로 제시하고 테스트하였습니다.

활성 감지(Liveness Detection)

생체 인식에서 활성 감지는 인공 지능 컴퓨터 시스템이 생명이 없는 가짜가 아닌 물리적으로 존재하는 사람과 인터페이스하고 있는지 판단하는 능력입니다.

약 70년 전에 Alan Turing은 인간처럼 행동하는 컴퓨터의 능력을 측정하는 테스트를 개발했습니다. 활성 감지는 컴퓨터가 살아있는 사람과 상호 작용하고 있는지 판단하는 인공 지능입니다. 합의 메커니즘(Consensus Mechanism)을 다루는 사람들은 이를 생체 인식을 통한 Proof-of-Personhood라고 부릅니다.

사진3. 활성 감지

인간의 특성을 나타내는 살아있지 않은 물체를 “인공물(Artifact)”라고 합니다. 이 인공물의 목표는 생체 인식 센서가 실제 인간과 상호 작용하고 있다고 믿도록 속이는 것입니다. 인공물이 생체 인식 센서를 속이고 우회하려고 하는 행위를 “스푸핑(Spoof)”이라고 합니다. 센서를 우회하는 방법 중 다른 방법은 이미 캡처된 데이터를 카메라 상호 작용 없이 시스템에 직접 입력하는 것입니다. 이를 “바이패스(Bypass)”라고 합니다.

생체 인증 과정에서 활성 정보는 일정 시간(최대 몇 분) 동안만 유효하며 이후 삭제됩니다. 이 데이터는 저장되지 않기 때문에 해당 인공물로 활성 감지를 스푸핑 하여 시스템을 우회하는 데 사용할 수 없습니다.

활성 감지의 보안은 실제로 감지할 수 있는 데이터의 크기에 따라 상이합니다. 이 때문에 저해상도 카메라는 결코 안전할 수 없습니다. 예를 들어 저해상도 카메라를 놓고 그 앞에 4K 모니터를 놓으면 고개 돌리기, 눈 깜빡임, 미소 짓기, 임의의 단어 말하기 등과 같은 약한 활성 감지를 쉽게 모방하여 시스템을 속일 수 있습니다.

2017년 ISO(International Organization of Standardization)에서 발표한 프레젠테이션 공격에 대한 ISO/IEC 30107–3:2017 표준은 고해상도 사진, 시중에서 판매되는 실물 인형, 실리콘 3D 마스크 등과 같은 인공물이 스푸핑 하는 것을 막는 방법을 확인했습니다. 그 이후로 생체 인증 솔루션에 대한 승인 PAD 테스트가 만들어졌으며 모든 새로운 솔루션은 시장에 출시되기 전에 지정된 요구 사항을 충족해야 합니다. 이 테스트 중 가장 유명한 것은 iBeta PAD Test입니다. 이는 생체 인식 처리 솔루션이 가장 강력한 프레젠테이션 공격을 견딜 수 있는지에 대한 여부를 판단하기 위한 엄격하고 철저한 평가입니다. 이 테스트가 출시된 지 4년이란 시간이 흘렀고 이 표준은 해당 분야의 많은 전문가들에 의해 구식이라고 말해지고 있으며 iBeta Pad Test는 현대의 정교한 스푸핑 수법으로 점차 통과하기 쉬워지고 있습니다.

활성 감지 분야의 선두 기업 중 하나인 FaceTec은 30107–3:2017 표준에 명시된 것을 넘어 공격을 5가지 범주로 분류하고 실제 위협을 훨씬 정확하게 나타냅니다.

표1. FaceTec의 시빌 공격 레벨 분류. 출처: Liveness.com

Humanode의 목표는 위에서 언급한 모든 수준의 시빌을 완화하고 보안 요구 사항을 충족하는 솔루션을 구현하는 것입니다. 최신 표준 문제에서 언급한 것 이상으로 현실 세계에 존재하는 위협을 훨씬 더 현실적으로 표현하려고 하고 있습니다.

먼저 Humanode는 인간과 인공물을 구별하고 참여자가 “스푸핑”이 아닌 실제 인간임을 인증할 수 있는 이미 작동하고 있는 솔루션을 구현하는 것입니다. 하지만 최종 목표는 보안 요구 사항을 충족하고 소유권 측면에 있어 탈중앙화 된 활성 감지 프로토콜을 만드는 것입니다. 이는 네트워크의 모든 검증인에게 동등할 것입니다. 이 방법을 통해 시간이 지나면서 활성 인증 측면에서 중앙 집중화되는 것을 극복할 수 있을 것입니다. 현재로서는 시빌 공격으로부터 네트워크를 보호하는 모든 솔루션이 제대로 작동하고 강력한 시빌 저항 시스템을 생성할 수 있는 기능을 제공해야 합니다.

신뢰할 수 있는 장치

활성 감지 프로토콜은 시빌 저항을 위한 가장 강력한 도구이지만 항상 옆에 있는 장치에 의해 제한이 될 수 있습니다. 앞서 언급한 바와 같이 실행하는 장치의 해상도가 낮으면 최첨단 활성이라 할지라도 레벨 2–3 프레젠테이션 공격에 속아 넘어갈 수 있습니다. 시빌 저항을 강화하기 위해서는 활성 감지 프로토콜이 포함된 신뢰할 수 있는 장치가 배포되어야 합니다. 두 개의 고해상도 카메라와 추가 IR(적외선) 센서를 포함한 맞춤형 생체 인식 장치는 생체 인식 과정 처리 측면에서 훨씬 더 광범위하게 사용될 수 있을 뿐만 아니라 최적의 효율을 위해 생체 인식 프로토콜에 대한 품질을 향상시킬 수 있습니다. 더 나아가 개인 키를 다른 디지털카메라와 같이 맞춤형 장치에 주입하면 장치에서 나오는 스냅샷에 서명할 수 있을 것입니다. 장치를 해킹하고 시스템에 가짜 데이터를 입력하여 센서를 우회하려고 한다 해도 그러한 장치에서 생성되는 ID의 양을 제한할 수 있기 때문에 이는 무용지물이 될 것입니다. 저희는 생성될 수 있는 ID의 양을 하나에서 두 개 정도로 생각하고 있습니다. 또한 소프트웨어가 가상 기계에서 실행되고 있는지 실제 컴퓨터에서 실행되고 있는지를 알 수 없기 때문에 이러한 특수 장치 없이는 생성되는 ID 양을 제한할 수 없습니다. 이러한 장치는 처음에 $200 보다 낮은 금액일 것이며, 하드웨어 및 생산 방법을 지속적으로 최적화하면 점차적으로 금액을 낮춰 전 세계의 더 많은 사람들이 접근을 할 수 있을 것입니다.

반복 비용

생체 인식 외에도 Humanode는 반복 비용을 활용하여 시빌을 방지합니다. 잠재적인 공격의 반복 비용을 나타내는 매우 쉬운 방정식이 있습니다. 네트워크에 10,000명의 검증인이 있다고 가정을 해 봅시다. 네트워크를 중지하려면 공격자는 존재하는 모든 ID의 33%+1인 10,000개 중 3,334개의 ID를 수집해야 합니다.

방정식 용어 설명:

Liveness FAR — 활성 오수락률(Liveness False Acceptance Rate)은 실제 사람이 아닌 인공물을 허용하는 활성 감지 프로토콜의 확률을 의미합니다.

PSC 시작(PSC Initiation) — 탈중앙화 키 관리를 위한 개인 스마트 컨트랙트 개시 비용, 생체 인식 점수 해독. Humanode는 비밀 스마트 컨트랙트 레이어를 사용하기 때문에 개인 스마트 컨트랙트를 활용하는데 드는 비용입니다.

FHE 매칭(FHE Matching) — 완전 동형 암호화 검색 및 매칭 작업은 IPFS의 암호화된 데이터베이스에서 실행됩니다.

LivDet — 활성 감지 인증 비용

테스트넷 검증(Testnet Validation) — 메인넷에 승인되기 전 2주 동안 검증인이 실행하는 비용

생체 인식 장치 비용(Biometric Device Price) — 검증인이 되기 위해 적절한 생체 인식 처리를 위한 장치 비용

검증인의 수(Number of Validators) — 시스템의 검증 노드 개수

저희는 다른 기술 분야의 진화와 함께 오수락률(False Acceptance Rate)과 비용이 크게 감소할 것이라고 예측합니다. 휴먼 노드가 많을수록 잠재적인 악의 행위자가 시스템을 중단시키기 위해 스푸핑 하는 비용이 더 많이 들며 시스템을 점거하기 위해서는 66%+1을 수집해야 합니다.

휴먼 노드 승인 프로토콜

이 부문을 완전히 이해하려면 Humanode 백서에 있는 Vortex 부분을 읽는 것이 좋습니다.

이 방법은 적절한 시빌 방어가 아닐 수 있지만 잠재적인 악의 행위자들을 더욱 힘들게 만드는 방법입니다. Humanode에는 두 가지 유형의 노드가 있습니다: 검증인 & 릴레이(Validator & Relay). 검증인 노드는 네트워크의 전체 상태를 저장하고 필요한 모든 계산을 수행합니다. 검증인 노드의 수는 DAO에 의해 정의되며 기술적으로 Epoch-CRDT 사양에 의해 제한됩니다. 저희는 먼저 10,000개의 검증인 노드로 시작할 예정이며 시스템이 성장하고 더 안전해짐에 따라 점차적으로 그 수를 늘릴 계획입니다. 릴레이 노드는 브로드캐스트를 릴레이하고 상태의 일부를 유지하며 네트워크 속도를 높일 수 있는 데이터를 보유합니다. 생성될 수 있는 릴레이 노드의 수는 제한이 없지만 이러한 노드는 실제로 합의에 참여하지는 않습니다.

검증 노드가 되는 사람에 영향을 미치는 몇 가지 특성이 있으며 이 특성은 Vortex라고 부르는 Humanode DAO에서 활용되는 PoT(Proof-of-Time) 및 PoD(Proof-of-Devotion)를 기반으로 합니다. 가장 적합한 노드는 다른 노드보다 더 많은 시간(Time)을 투자하고 네트워크에 대한 헌신(Devotion)을 더 많이 입증한 노드입니다. 헌신을 증명하는 방법은 두 가지가 있습니다. 첫 번째는 Formation 생태계의 프로젝트 중 하나에 참여하거나 Vortex에 제안한 내용이 승인되는 것입니다. 예를 들어 헌신을 여러 번 입증하고 오랫동안 관리하고 실행해 온 노드는 다른 어떤 노드보다 검증 노드가 될 자격이 훨씬 많습니다. 만약 악의적인 행위자가 어떻게든 일부 노드를 스푸핑 할 수 있다해도 그는 자신보다 더 오래 그곳에 있었고 검증인이 되기 위해 더 많은 헌신을 입증한 모든 노드를 기다려야 할 것입니다. 저희의 PoD 및 PoT 시스템에서는 PoD가 우선시됩니다. 예를 들어 2년 동안 실행한 노드가 PoD가 없다면 1년 동안 실행되었지만 PoD가 있는 노드가 더 적합할 것입니다. 또한 검증 노드의 수는 일괄적으로 증가합니다. 노드 개수가 많고 헌신 증명을 통과하는 검증인이 많아질수록 악의적인 행위자는 공격을 수행하기 위해 더 많은 신원을 스푸핑 해야 하며 반복 비용 또한 증가합니다.

존재 증명(Proof-of-Existence)

개인 증명(Proof-of-Personhood)은 고유성 증명(Proof-of-Uniqueness)과 존재 증명(Proof-of-Existence)으로 나눌 수 있습니다. 하나는 누군가가 고유한 인간임을 증명하는 것이고 다른 하나는 누군가가 존재한다는 것을 증명하는 것입니다. PoE는 매월 휴먼 노드가 생체 인식 처리를 거치도록 합니다. 휴먼 노드가 생체 인식을 통해 자신의 존재를 증명하지 못한다면 해당 노드는 다시 존재를 증명하기 전까지 제외되고 네트워크에서 분리됩니다. 따라서 악의적인 행위자는 매달 업데이트되고 진화하는 활성 감지 프로토콜을 따라가야 합니다. PoE와 휴먼 노드 승인 프로토콜의 결합을 통해 잠재적인 시빌에 대한 추가 방어 계층이 생성되며 존재하지 않는 ID를 스푸핑 하더라도 영향력을 제한할 수 있습니다.

시빌 방어

시빌 저항은 언제나 경쟁입니다. 악의적인 행위자는 날이 갈수록 정교해지고 방어자는 복잡한 방어 체계를 구축하기 위해 끊임없이 경계해야 합니다. Humanode는 최첨단 활성 감지 프로토콜, FHEd 다중 생체 인식, 지속적인 존재 증명, 특수 검증인 승인 프로토콜, 신뢰할 수 있는 장치 및 반복 비용을 결합하여 악의적인 행위자로부터 시스템을 보호하는 강력한 시빌 저항을 만들었습니다. 시빌 방어의 큰 부분은 휴먼 노드의 손에 달려있습니다. 더 많은 휴먼 노드가 적극적으로 참여하고 관리하면 시빌 공격자가 검증인 노드가 될 자격이 줄어들기 때문에 저항력은 더욱 강력해집니다. 시빌 저항은 Humanode 네트워크의 존재에 있어 중요한 역할을 하므로 Humanode Core는 방어력 업그레이드를 위해 끊임없이 연구 개발을 하고 있습니다. 이 기사를 통해 Humanode가 시빌 노드에 어떻게 대응할지에 대한 약간의 힌트가 되었기를 바랍니다. 읽어주셔서 감사합니다.

남은 하루도 시빌 공격 없이 순조롭게 보내시길 바랍니다!

출처:

  • The Sybil Attacks and Defenses: A Survey by David Mohaisen and Joongheon Kim, 2013
  • DeepFace: Closing the Gap to Human-Level Performance in Face Verification by Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato and Lior Wolf, Facebook AI Research, 2014
  • ZoOm® 3D Face Matching Self-Certification Report by Josh Rose, John Bernard and Jase Kurasz, 2019
  • Secure Face Matching Using Fully Homomorphic Encryption by Vishnu Naresh Boddeti, 2018
  • HERS: Homomorphically Encrypted Representation Search by Joshua J. Engelsma, Anil K. Jain, and Vishnu Naresh Boddeti, 2020
  • Homomorphic string search with constant multiplicative depth by Charlotte Bonte and Ilia Iliashenko, 2020
  • Secure Search via Multi-Ring Fully Homomorphic Encryption, Adi Akavia, Dan Feldman, and Hayim Shaul, 2018
  • Why I Love Biometrics It’s “liveness,” not secrecy, that counts, by Dorothy E. Denning
  • SybilGuard: defending against sybil attacks via social networks by Haifeng Yu, Michael Kaminsky, Phillip B. Gibbons and Abraham D. Flaxman, 2006
  • Proof-of-Personhood: Redemocratizing Permissionless Cryptocurrencies by Maria Borge, Eleftherios Kokoris-Kogias, Philipp Jovanovic, Linus Gasser, Nicolas Gailly, Bryan Ford, 2017
  • Who Watches the Watchmen? A Review of Subjective Approaches for Sybil-resistance in Proof of Personhood Protocols by Divya Siddarth, Sergey Ivliev, Santiago Siri, Paula Berman, 2020
  • ISO/IEC 30107–3:2017 standard by International Organization for Standardization, 2017
  • https://dev.facetec.com/
  • https://liveness.com/

원문 출처: https://blog.humanode.io/attack-on-sybil/

--

--