티스토리 뷰

💜 Polygon ID?

 

 Polygon ID는 자기주권신원(Self-Sovereign Identity) 및 개인정보 보호 원칙에 따라  사용자의 개인 정보를 안전하게 보호하면서도, 앱과 사용자 사이의 신뢰할 수 있는 신원 검증 절차를 제공하기 위해 사용할 수 있는 프레임워크입니다.

 

 Polygon ID를 통해 생성된 신원은 DID(Decentralized Identity)라고 불리며, 신원에 기반한 부가적인 정보들은 VCs(Verifiable Credentials)라고 불립니다. VCs에는 나이나 학위 같은 간단한 정보부터 특정 DAO에서 발행된 멤버십 증명과 같이 다양한 정보들을 담을 수 있습니다.

 

 Polygon ID는 DID에 기반해 VCs를 발행하고 검증하는 프로세스를 제공하며, 이는 다음과 같이 세 가지의 모듈로 구성되어 있습니다.

 

  1. 신원 보유자(Identity Holder) : 발행자로부터 발행된 VC를 지갑에 보유하고 있는 개체를 이릅니다. 신원 보유자는 발행된 VCs에 대한 영지식 증명(zero-knowledge proof)을 생성하고 이를 검증자에게 제시합니다. 검증자는 제시된 증명이 진짜인지, 그리고 특정 기준과 일치하는지 확인합니다.
  2. 발행자(Issuer) : 신원 보유자에게 VCs를 발행해 주는 개인, 조직 또는 물건 등을 이릅니다. VCs는 발행자에 의해 암호학적으로 서명되며, 모든 VCs는 발행자로부터 발행됩니다.
  3. 검증자(Verifier) : 신원 보유자로부터 제시된 증명을 검증하는 주체를 이릅니다. 검증이 이루어지는 동안 검증자는 VC가 특정 발행자에 의해 서명되었는지, VC가 검증자에 의해 제시된 기준과 일치하는지 등을 체크합니다. 검증 프로세스는 온체인 또는 오프체인으로 진행됩니다.

 

 이 구조에서 핵심 개념은 검증자와 발행자 사이의 신뢰가 존재해야 한다는 것입니다. VC가 암호학적으로 증명이 가능하다고 해서 VC에 담긴 정보 그 자체가 진실이라는 것이 보장되지는 않습니다. 따라서 발행자는 반드시 신뢰할 수 있고 평판이 있는 개체여야 하며, 검증자가 해당 발행자로부터 발행된 VCs를 소비하는 데 문제가 없어야 합니다.


📓 사용한 템플릿

 

GitHub - oceans404/fullstack-polygon-id-vc-gated-dapp

Contribute to oceans404/fullstack-polygon-id-vc-gated-dapp development by creating an account on GitHub.

github.com


🎮 변경 및 추가 사항

1. node.js로 작성된 서버를 go로 재작성

 기존의 자료를 그대로 사용해도 좋지만, node.js보다는 go를 주력으로 다루고 있기 때문에 가능한 한  코드를 go로 작성하고 구현해 보는 것이 목표입니다. 그래서 go로 재작성했습니다.

2. 이벤트 처리를 socket.io에서 Websocket으로

 socket.io에 대해서 잘 모르는 한 편, socket.io의 최신 버전은 4.x인데 go로 작성된 socket.io 패키지의 대부분이 지원하는 버전이 1.x..? 버전 매칭이 안 되는 점에서부터 문제가 복잡해지기 때문에 처음부터 socket.io의 대안으로 Websocket을 사용하기로 결정했습니다.

3. Polygon ID를 사용한 기본적인 로그인 로직 추가

 VC를 통한 신원 인증에 더해 Polygon ID를 통해 생성된 DID를 사용한 기본적인 로그인 로직을 추가했습니다.


🐱‍👤 전체 코드

 

GitHub - piatoss3612/polygon-id-template

Contribute to piatoss3612/polygon-id-template development by creating an account on GitHub.

github.com


📖 참고 자료

 

Polygon ID Documentation

There is a mobile application available for Polygon ID, but no public browser extension. However, we do have a sample browser wallet extension built on our JS SDK. Read more on https://devs.polygonid.com/docs/js-sdk/js-sdk-browser-wallet-demo/. You can als

devs.polygonid.com

 

GitHub - 0xPolygonID/tutorial-examples

Contribute to 0xPolygonID/tutorial-examples development by creating an account on GitHub.

github.com

 

최근에 올라온 글
최근에 달린 댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday
글 보관함