펑크폴 USER 인증 방법

펑크폴 USER 인증 방법
Punkpoll Social Graph

펑크폴의 모든 사용자는 인증 절차를 거친 사용자로 구성되어 있습니다. 전 세계 사용자는 가입과 인증 과정을 완료함으로써 '펑크폴 시민'의 지위를 획득하고, 이후 투표와 여론조사에 참여하기 위한 'zk-PUNK(nft)'(표)를 부여받습니다. 이 'zk-PUNK'는 영지식증명을 기반으로 하여, 사용자의 프라이버시를 보장하면서도 실명 인증이 필요한 서비스에서 중요한 역할을 하게 됩니다.

펑크폴은 두 가지 주요 인증 방식을 사용합니다.

  • 첫째, 메신저 기반의 투표 및 여론조사 서비스에서는 사용자들이 서로의 신원을 인증하는 '소셜 그래프 인증(Social Graph Authentication)'방식을 사용합니다.
  • 둘째, 투표 서비스에서는 주최자에 의한 유권자 확인 절차를 통해 '실명 인증'을 하게 됩니다.(투표는 대부분 지방 정부, 중앙 정부에서 처리하는 일이기 때문에 지방 정부나 중앙 정부에서 주최자의 유권자 확인 시스템으로 '유권자'를 확인하게 됩니다.)  

소셜 그래프 인증

펑크폴은 '소셜 그래프 인증(Social Graph Authentication)' 방식으로 가입 인증1 합니다. 이 방법은 일상에서 사용하는 메신저 애플리케이션을 활용하여, 사용자들이 서로의 실제 존재를 확인하고 인증하는 'Web of Trust' 메커니즘2에 기반합니다. 전통적인 서류 기반의 인증 방식과 달리, 이 방법은 실제 인간 관계를 기반으로 한 신원 확인을 가능하게 하며, 탈중앙화를 지향하는 펑크폴 가입 절차의 핵심 부분입니다.

사용자는 자신이 일상에서 주로 사용하는 메신저 계정을 사용하여 펑크폴에 가입합니다. 가입 후, '나를 인증해줘'라는 메시지를 친구들에게 보내 인증 과정을 시작합니다. 이때, 친구가 사용자를 인증하면, 동시에 그 친구도 사용자로부터 인증을 받는 상호 인증 방식이 이루어집니다. 이러한 방식은 이미 친구인 사람들을 통해 연결되며, 이를 통해 신뢰할 수 있는 네트워크가 형성됩니다.

또한, 펑크폴 Wallet에서 개인키를 잊어버렸을 경우,3명 이상의 인증을 통해 개인키를 찾을 수 있도록 개발할 예정입니다3. 이는 사용자들이 서로 연결된 관계를 통해 서로의 정체성을 확인하고 신뢰를 구축하는 방식으로, 중앙 집중식 인증 기관에 의존하지 않고 실제 생활에서 형성된 신뢰 관계를 디지털 신원 확인의 근거로 삼습니다. 사용자들은 각자의 신원을 상호 인증함으로써 펑크폴 플랫폼 내에서 신뢰성 있는 네트워크를 구축하며, 이는 신원 검증에 대한 강력한 사회적 증거의 역할을 합니다. 이러한 접근법은 펑크폴이 추구하는 탈중앙화 원칙에 부합하며, 온라인 상호작용에서 개인의 진정성을 확인하는 데 중요한 역할을 합니다.

이 Social Graph에 대한 이야기
  • Peter는 자신이 자주 사용하는 메신저를 통해 친구 Jegwon, Lyu, Harry, Xavier에에게 자신이 실재하는 인물임을 인증해 달라고 요청합니다. Jegwon은 메시지를 받고 펑크폴에 가입하여 Peter를 인증합니다. Peter는 메신저를 통해 Jegwon에게서 인증을 받았다는 알림을 받고, 둘은 상호 인증된 상태가 됩니다.
  • Lyu와 Harry 역시 메시지를 받고 펑크폴에 가입한 뒤 Peter를 인증합니다. 이로써 Peter는 세 명의 친구에게 인증을 받게 되며 펑크폴의 정식 시민이 됩니다.
  • 남아프리카 여행 중인 Xavier에는 아직 Peter가 보낸 메시지를 읽지 않았고, 인증 과정이 진행되지 않았습니다.
  • Jegwon과 Lyu는 각각 자신의 친구들에게 인증을 요청하는 메시지를 보내고, 각각 두 명 이상의 친구로부터 인증을 받습니다. Peter와의 상호 인증을 포함해 총 세 명의 인증을 받음으로써, 이제 그들도 펑크폴의 정식 시민이 됩니다.
  • Harry의 친구 Tom은 아직 다른 친구에게 인증 요청을 보내지 않았으며, 마지막 한 명으로부터 인증을 받지 못해 인증 조건을 충족시키지 못했습니다. 그래서 Tom은 아직 펑크폴의 시민이 되지 못하고 영주권 상태를 유지하고 있습니다.

소셜 그래프 인증과 보상 구조

'소셜 그래프 인증' 시스템은 다음과 같은 보상 메커니즘을 가집니다.
update 24.2.5

  1. 가입 보상: 사용자가 펑크폴에 가입하면 초기에 10개의 PUNK TOKEN을 받습니다. 하지만, 이 토큰들은 3명이상 소셜 그래프 인증 조건을 충족시킬 때까지 사용할 수 없는 'Lock-up' 상태로 제공됩니다.
  2. 인증에 따른 보상 Lock-up 해제: 사용자가 3명 이상으로부터 인증을 받게 되면, 앞서 지급된 10개의 PUNK TOKEN의 Lock-up이 해제됩니다. 이때부터 사용자는 토큰을 사용할 수 있게 됩니다. *24.2.5일 현재 평균 11.18명 상호 인증
  3. 추가 인증에 따른 추가 보상: 3명이상 상호 인증 후에는 +1명이 추가 될 때마다 0.1 PUNK를 보상으로 받게 됩니다. *위에 표를 참고하세요
  4. 보상의 한계: 1인당 상호 인증은 10명까지만 가능하면, 그 이상을 PUNK TOKEN만 보상으로 받게 됩니다.

이러한 보상 구조는 사용자들이 펑크폴 네트워크 내에서 활발히 상호 작용하고 신뢰를 구축하도록 장려하는 동시에, 플랫폼의 활성화를 촉진하는 역할을 합니다.

소셜 그래프 인증 메커니즘

가입자는 일상적으로 가장 많이 사용하는 'Messenger'로 펑크폴에 가입합니다. 업무에 사용하는 메신저보다 가족이나 친구들과 같이 사용하는 메신저로 가입하는 것이 좋습니다. 그래야 편안하게 자신의 존재를 인증 받기 쉬울 것입니다. 

인증은 다음과 같은  단계로 진행됩니다:

  1. 인증 요청 공유: 가입 후, 사용자는 가족 혹은 친구들에게 펑크폴에 가입해서 자신 존재를 인증 해달라고 요청합니다.
  2. 상호 인증 메커니즘: 가족이나 친구들이 사용자를 인증하고, 동시에 그들 역시 상호 인증을 받습니다. 이 과정은 최소 3명 이상의 가족이나 친구가 필요합니다.
  3. 인증의 순환: 사용자에게 인증을 해준 사람들은 다른 사람들로부터도 인증을 받을 수 있습니다. 이런 방식으로 네트워크 전체의 신뢰성이 강화됩니다
  4. 플랫폼 상의 신뢰 구축: 상호 인증을 통해 형성된 신뢰 그래프는 플랫폼 전체의 신뢰도를 높이는 데 기여합니다.
  5. 인증 효과의 확산: 사용자가 신뢰할 수 있는 사람들에 의해 인증을 받으면, 해당 사용자의 신뢰도는 플랫폼 내에서 강화되고 다양한(투표 및 여론조사등) 활동에 참여할 수 있습니다. 
  6. 프라이버시 보호: 친숙한 도구(메신저 등)를 사용하여 진행되는 인증은 개인정보 보호를 유지하며4, 탈중앙화된 접근 방식을 촉진합니다.
  7. 사용 편의성: 메신저와 같은 일상적이고 친숙한 도구를 사용함으로써, 사용자는 복잡한 절차 없이 간단하고 실용적인 방법으로 인증을 완료할 수 있습니다.

이 방법은 사용자들 사이의 자연스러운 연결과 신뢰를 기반으로 하며, 결과적으로 플랫폼은 강력한 신뢰 기반을 구축하고 사용자들은 효율적으로 자신의 실체를 증명할 수 있게 됩니다.

1 펑크폴의 인증 방법은 소셜 그래프 인증 방법을 기본으로 하며, 투표 등에서는 주최자가 정한 방법으로 인증하면 기본적으로는 유권자 확인을 위한 KYC 및 국가 공인 인증으로 인증합니다.

2 'Web of Trust(WoT)' 메커니즘은 공개 키와 소유자 간의 바인딩의 신뢰성을 설정하기 위해 PGP(Pretty Good Privacy), GnuPG 및 기타 OpenPGP 호환 시스템과 같은 시스템에서 주로 사용되는 개념입니다. 이는 CA(인증 기관)에 의존하는 PKI(공개 키 인프라)의 중앙 집중식 신뢰 모델에 대한 대안인 분산형 신뢰 모델을 기반으로 합니다. 
Web of Trust 시스템에서 신뢰는 중앙 기관이 아닌 개별 사용자를 통해 설정됩니다. 사용자가 새 키 쌍을 생성하는 과정의 일환으로 새 인증서를 만들면 충분한 보증을 받을 때까지 다른 사용자가 즉시 신뢰하지 않습니다. 이 인증은 다른 사용자가 키 소유자의 ID를 확인하고 인증서에 디지털 방식으로 서명하는 키 서명을 통해 이루어집니다. 그러나 보증인의 인증서도 새 것이거나 보증이 거의 없는 경우 신뢰 구축에 대한 가중치가 제한됩니다. 전반적으로 Web of Trust는 보다 중앙 집중화되고 권한 의존적인 PKI 시스템과 달리 디지털 신뢰 및 신원 확인에 대한 보다 분산되고 사용자 중심적인 접근 방식으로의 펑크폴의 탈중앙화 철학과도 맥을 같이 합니다. Wikipedia  web-of-trust-101
3펑크폴 지갑에서 개인키를 잊어버렸을 경우, 사용자는 영지식증명(Zero-Knowledge Proof, ZKP)을 통해 개인키를 복구할 수 있는 메커니즘을 사용합니다. 특히, 비대화적 영지식증명(Non-Interactive Zero-Knowledge Proofs, NIZKP) 방식을 활용하여, 사용자는 실제로 개인키나 민감한 정보를 공개하지 않고도 해당 키의 적법한 소유자임을 증명할 수 있습니다. ZKP에서는 사용자(증명자)가 자신이 개인키의 합법적인 소유자라는 증거를 제시하고, 이 증거는 검증자(여기서는 Punkpoll System)가 사용자와 추가적인 상호 작용 없이 독립적으로 검증할 수 있도록 구성됩니다. 이 접근 방식은 증명자와 검증자 간의 상호 작용을 제거함으로써 효율성을 높입니다. 이러한 펑크폴의 접근법은 사용자가 개인키를 잊어도 높은 수준의 보안과 개인정보 보호를 유지하면서 지갑에 다시 접근할 수 있게 해줍니다. ZKP의 이러한 사용은 중앙 기관에 의존하지 않고 사용자의 자율성을 강조하는 펑크폴의 탈중앙화와 사용자 중심의 원칙과 일치합니다.  ZKP in Blockchain Explained ZKP-Everything You Need to Know
4 Mina의 영지식 증명 기술을 통합하여 개인 정보 보호를 더욱 강화됩니다.
Mina is building the privacy and security layer for web3 with zero knowledge proofs.

투표 유권자 인증

펑크폴 투표시스템은 모든 과정이 탈중앙화된 스마트컨트랙트 구조에서 운영하지만, 유권자 확인과 인증 과정, 인증 후 표 발행은 투표 주최 기관이 담당하는 경우가 대부분입니다. 이 경우 펑크폴 투표 스마트컨트랙트에 기반하여 다음과 같은 과정을 거치게 됩니다.

투표 유권자 인증용 스마트 컨트랙트('ERC-1155'를 쓴 경우)의 Process는 다음과 같습니다. (off-chain에서 투표 주최자 시스템과 연동되어 이뤄지는 Process)

① 알림: 'A 투표 스마트컨트랙트'의 유권자 확인용 스마트컨트랙트에서 유권자에게 유권자 확인용 알림을 보낸다. ② 확인요청:유권자는 'A 선거관리위원회'에서 유권자 확인을 요청한다.③ 인증: 'A 투표 선과관리위원회'는 유권자를 실명확인하고 ④ 표 발행: 'zk-A vote-nft(표)를 발행한다. ⑤ 투표: 유권자는 'A선거관리위원회'가 발급해 준 'zk-A vote-nft(표)'로 투표 한다.

펑크폴에서의 인증 절차는 사용자가 펑크폴 시민이 되어 투표와 여론 조사에 참여할 수 있는 자격을 확보하는 것을 의미합니다. 이는 친구들에 의해 이루어지는 탈중앙화된 소셜 인증 방식을 통해 이루어지며, 공식적인 인증 절차와 결합될 때 완전한 인증이 이루어집니다. 즉, 개인이 실제 인물임을 증명하는 인간 관계 기반의 인증과 공식 문서를 통한 인증이 통합되어 완전한 인증이 완성됩니다.