zkLogin
zkLogin은 두 항목을 공개적으로 연결하지 않고 OAuth credential을 사용하여 Sui address에서 transaction을 전송할 수 있게 해주는 Sui primitive 기능이다.
zkLogin은 다음과 같은 목표로 설계되었다:
- Streamlined onboarding: zkLogin은 암호 키를 다루거나 니모닉을 기억할 필요를 제거하여, 익숙한 OAuth 로그인 흐름을 사용해 Sui에서 거래할 수 있게 한다.
- Self-custody: zkLogin transaction은 표준 OAuth 로그인 프로세스를 통한 사용자 승인이 필요하다. OAuth 제공자는 사용자를 대신하여 거래할 수 없다.
- Security: zkLogin은 2요소 인증 방식이다. Transaction을 전송하려면 최근 OAuth 로그인에서 발급된 credential과 OAuth 제공자가 관리하지 않는 salt 모두 필요하다. OAuth 계정을 탈취한 공격자라도 salt까지 탈취하지 않는 한 사용자의 Sui address에서 거래할 수 없다.
- Privacy: 영지식 증명은 제3자가 Sui address를 그 주소에 대응하는 OAuth 식별자와 연결하는 것을 방지한다.
- Optional verified identity: 사용자는 특정 Sui address를 도출하는 데 사용된 OAuth 식별자를 검증하도록 선택할 수 있다. 이는 검증 가능한 온체인 신원 레이어의 기반을 마련한다.
- Accessibility: zkLogin은 Sui’s cryptography agility 덕분에 여러 네이티브 Sui 서명 방식 중 하나이다. 이는 sponsored transactions와 multisig 같은 다른 Sui primitive 기능과 통합된다.
- Rigor: zkLogin의 코드는 영지식에 특화된 두 업체에 의해 독립적으로 audited되었다. Common reference string 생성을 위한 공개 zkLogin ceremony에는 100명 이상이 기여했다.
애플리케이션이나 지갑에 zkLogin을 통합하려는 빌더라면 zkLogin integration guide를 참고한다.
영지식 증명이 생성되는 방식과 Sui가 zkLogin transaction을 검증하는 방법을 포함하여 zkLogin이 어떻게 동작하는지 알아보려면 how zkLogin works를 참고한다.
zkLogin의 보안 모델과 프라이버시 고려 사항에 대한 정보는 security and privacy를 참고한다.
자주 묻는 질문은 FAQ section을 참고한다.