당첨자가 발표 된 이벤트가 있어요
ColumnistMainnet

6. zkLogin

BenftBenft2023-11-20 22:53

(덕상이 형 원문 보러가기)


코인을 받고 전송할 수 있는 지갑이 다양해지고 있습니다.

다양한 지갑의 종류를 알아보기 전에 이더리움 계정 유형에 대해 알아보도록 하겠습니다.



출처 : 쟁글


이더리움 계정에는 크게 두 가지 종류가 있습니다. EOA지갑은 자체로 트랜잭션을 발생시키고 서명을 할 수 있는 계정이며, CA는 개인키가 단일 혹은 여러 signer에 보유되고 있기에 자체 트랜잭션을 실행할 수 없고 지갑 생성시 EOA 지갑의 서명에 의존해야 합니다.


1. EOA(Externally Owned Account) 지갑

EOA지갑은 바로 니모닉(시드구문) 또는 개인 키 기반의 지갑으로 계정 주소를 통제할 수 있으며 이를 통해 소유자가 트랜잭션 등을 발행하고 서명할 수 있는 지갑입니다. 흔히 non–custodial 비수탁 지갑이라고도 불리우며 지금까지 주로 거래소 외의 경험하셨던 개인 지갑을 의미합니다. 12~24개 니모닉(시드구문)이나 개인키를 개인이 보관하게 되며 도난과 분실이 있다면 계정에 접근이 불가한 지갑들입니다.



EOA 지갑들


지금까지 쓰고 계시는 대부분의 개인 지갑들은 EOA지갑이라 볼 수 있습니다.


2. CA(Contract Account) 기반 Multi-sig 지갑

계약을 기반으로 만들어진 지갑을 의미합니다. 멀티시그를 통해 여러 명의 signer(개인키를 기반으로 한 각 지갑 주인)이 서명을 하여 생성되며 서명 횟수를 다중으로 분산하기에 EOA지갑보다 보안성에서 우수한 지갑입니다. signer 중 1명의 서명이 탈취된다 하더라도 나머지 탈취되지 않은 signer의 서명을 통해 계정의 안전을 보장할 수 있는 지갑입니다.



Gnosis Safe


CA 월렛 생성이 가능한 Gnosis Safe 프로젝트에서 만들어본 멀티시그 CA월렛입니다. 3개의 공개주소로 CA지갑을 만들고 signer 계정은 3개중 2개이상으로 설정해 놓았기에 최소 2개이상의 계정에서 서명이 진행되어야만 컨트랙트 실행 및 전송이 가능합니다.


하지만 위와 같은 mult–sig 기반 지갑의 경우 지원하는 블록체인이 한정적이며 컨트랙트에서 어떤 지갑이 서명했는지에 대한 프라이버시가 모두 노출됩니다. 이는 극단적으로 말하면 multi–sig에 등록된 각각의 지갑에 대한 보안에도 의존적임을 말합니다. 또한 온체인을 기반으로 서명되기에 체인의 속도에 매우 의존적이며 스마트 컨트랙트 지갑이므로 체인에 따라 가스비에 대한 부담도 존재합니다. 마지막으로 지갑 내의 어떠한 변경에 있어 새로운 지갑으로 이동을 해야하는 불편함들도 존재합니다. 따라서 위와 같은 단점들로 인하여 아래와 같은 MPC 지갑이 많이 사용됩니다.


3. CA(Contract Account) 기반 MPC(Multi party Computation) 지갑

multi-sig월렛이 한 컨트랙트에 대해 여러 명의 개인키로 각각 서명을 해야했던 반면 MPC 지갑은 하나의 키를 분할하여 가지고 있는 것을 의미합니다.


이를 통해 개인이 하나의 완전한 키를 소유할 수 없으며 multi–sig보다 훨씬 유연하게 운영할 수 있습니다. 또한 여러 키가 모여 단일키로 서명되고 그러므로 어떠한 키들이 사용됐는지 누가 서명했는지에 대한 정보는 외부로 공개되지 않아 보안성을 유지합니다.



MPC 지갑 구조


하지만 위와 같은 지갑은 Web3 경험과 디지털 자산 관리에 가져다주는 정교한 기능을 갖추지 못하고 있습니다. 즉, Web3 게임이나 경험에 새로운 기능과 통합을 도입하는 능력에 제약이 있을 수 있습니다. 그래서 다음으로 발전한 개념이 AA 지갑입니다.


4.AA(Account Abstraction) 계정 추상화 지갑

EOA지갑과 CA지갑의 장점을 이용한 지갑이라고 볼수 있습니다. 궁극적인 통합버전인 것이죠. AA는 크립토씬에서 세대교체의 분기점이라고 평가되고 있습니다.


네트워크 수수료 대납, 구독시스템, ERC-20자산으로 수수료 지불, Web2를 이용한 소셜복구, 멀티콜등 다양한 활용이 가능할 섹터가 될 것으로 각광받고 있습니다.




이처럼 시간을 거듭하며 블록체인의 셀프 커스터디에 대한 어려움과 Web3 진입의 허들을 극복하고 가상화폐 매스어돕션을 위한 다양한 시도들이 진행되고 있습니다.

각기 다른 방식으로 다양한 로그인 방식, 간편한 사용방법, 강력한 보안을 통해 Web3의 UI/UX를 선도하고 있습니다.


레이어1 수이(Sui) 네트워크 zk로그인



Sui zkLogin


레이어 1 수이(Sui)네트워크는 온체인상으로 유저를 쉽게 온보딩할수 있는 zk로그인을 10월 메인넷에 공개하였습니다.


zk로그인은 유저가 구글, 트위치와 같은 제공업체(소셜 로그인 기반으로부터 기존 Web2 자격증명을 사용하여)의 기존 웹2 자격증명을 사용하여 사용자가 앱에 로그인할 수 있어 유저가 개인키를 기억하거나 기록할 필요가 없어지게 되는 프로토콜입니다.



Sui zkLogin 개발 현황


수이(Sui)네트워크의 독스를 확인해 보면 페북/구글/트위치는 메인넷까지 연동이 된상황이고요. 카카오와 애플은 데브넷까지 개발이 된 상태입니다. 그외 마소와 위챗등 다양한 업체들이 리뷰되고 있는 상황임을 확인할 수 있습니다.


zk로그인이 메인넷에 공개되면서 수이(Sui)네트워크의 대표 지갑인 수이(Sui)월렛이 zk로그인 기준으로 업데이트 되었습니다. 기존에 수이(Sui)월렛을 사용하고 계신분이면 로그인시 당황하실수도 있는데요.


첫 로그인시 기존의 계정을 그대로 사용할수 있으며, zk로그인 계정을 만든다면 두개의 계정을 사용할수 있습니다. 두개의 계정은 서로 독립적인 계정입니다. 기존의 계정과 매칭되지 않으니 이점 참고하시기 바랍니다.


zk로그인 계정생성시 니모닉의 백업에 대한 안내는 없습니다. 소셜로그인과 같은 형태이기에 구글계정과 비밀번호로 생성되게 됩니다. 여기에 표시되는 안내문구는 2FA를 설정하라는 문구인데요.


아래의 I Understand 를 클릭하시기 전, Visit this link 를 눌러 내용을 꼭 확인하시기 바랍니다.




해당 링크는 계정 탈취를 방지하기위해 로그인 시 구글에서 2FA를 설정하라는 내용입니다.


구글 로그인 -> 설정 -> 보안 -> 2단계인증 -> 기기연결, otp설정등을 다 해 놓으시면 됩니다.


제가 로그인 할 때도, 누군가가 로그인 시도할때도 사용자 폰/또는 OTP를 거쳐야 되는거죠.


이 설정을 하지 않는다면 지갑을 사용하는 의미가 없습니다.

반드시 아래와 같은 구글 2FA를 설정하시기 바랍니다.



Sui zkLogin 개발 현황


아래의 스샷은 수이(Sui)월렛의 로그인 화면입니다.


1번 계정이 기존에 사용하던 수이(Sui)월렛의 계정,

2번 계정이 zk로그인으로 생성된 계정입니다.


여러 개의 지갑을 생성한다면 SWITCH TO를 통해서 사용할 지갑을 전환하여 사용할 수 있습니다.




사용시 특이한 점은 계정 로그인 비밀번호가 다르게 설정된다는것입니다. zk로그인계정은 구글로 로그인을 하게되고 기존계정은 기존의 비밀번호로 따로 로그인하셔야 합니다. 독립된 지갑들이 독립된 비밀번호와 체계로 운영되는것이죠. 기존 사용지갑들과는 좀 다릅니다.




1번 항목을 이용해 트위치/렛저등을 사용한 zk로그인 계정을 추가 생성할 수 있으며, 2번 항목을 이용해 시드문구를 따로 생성한 새로운 계정추가, 3번 항목을 이용한 기존 계정의 시드문구나 프라이빗키를 통한 계정을 연동할수도 있습니다.


다양한 방식으로 다양한 지갑들을 추가할 수 있는 것이죠.

단일시드 다중계정이 아닌 다시드 다중계정시스템으로 변모한 수이(Sui)월렛입니다.


사용 중 불편한 점은 바로 로그아웃 기능이었습니다.

지갑에서 로그아웃을 하게되면 기존연동지갑들이 모두 사라지게 됩니다.




물론 다시 설정하면 zk로그인의 기존 계정은 살아납니다. 그러나 시드문구나 프라이빗키로 연동해둔 계정에는 로그인 되지 않습니다. 다시 시드문구나 프라이빗키를 연동시켜야합니다.


타지갑의 언락과는 다른 기능이기에 로그아웃전에는 반드시 니모닉 백업을 확인하시기 바랍니다. 니모닉 백업없이 로그아웃 하시게 되면 기존의 자산을 모두 잃을 수 있으니 꼭 주의하시기 바랍니다.




zk로그인이 타지갑의 소셜로그인과 다른점은 바로 영지식 암호학을 사용하여 프로토콜 수준에서 보안이 보장되며, Web2 인증 제공업체을 제외하고 외부 의존성이 없다는 점입니다. 단순히 소셜계정과 지갑을 연동해 놓은 프로토콜이 아니라는 의미입니다.


zk로그인은 임시 키 페어와 영지식 암호학을 사용하여 Web2 인증 제공업체의 응답을 개개인의 Sui 계정에 연결하며 로그인 활동 시 온체인에 제출되는 유일한 데이터는 영지식 증명과 일시적인 서명이며, 온체인에 어떠한 사용자 정보도 제공되지 않습니다.


영구 공개-개인 키 쌍을 활용하는 기존 블록체인 주소와 달리 zk로그인은 OAuth 로그인 흐름을 통해 정기적으로 재생성이 필요한 임시 키 쌍을 사용합니다. OAuth 공급자가 반환한 페이로드에서 얻은 고유 식별자("키 클레임")는 Sui 주소를 파생하는 데 사용됩니다. 이를 통해 주소는 고정된 상태로 유지하면서 관련 키 쌍을 변경할 수 있으므로 보안과 유연성이 향상됩니다.


또한, Web2 인증(소셜 로그인) 제공업체는 사용자가 블록체인 상에서 이용하고 있다는 사실을 인지하지 못하며 이를 통해서 프라이버시를 보장하게 됩니다.


Sui zkLogin 플로우




블록체인 기술은 디지털 거래를 처리하는 방식에 신선한 충격을 주었습니다. 그러나 일반 사용자가 사용하기에는 어려운 내용들이 많고, UI/UX도 사용자 친화적이지 않은게 사실이었습니다. 이런 불편함을 해결하고 블록체인의 매스어돕션을 위한 다양한 시도가 진행되고 있으며, 특히 블록체인 인프라섹터에서 태동하고 있습니다.


수이(Sui) 네트워크의 zk로그인은 OAuth 자격 증명을 사용하여 로그인 프로세스를 단순화합니다. 다만 사용자가 계정 보안을 우선시하는 것이 가장 중요합니다. 2FA(2단계 인증)를 구현하고 보안 비밀번호 사용등 다양한 2차보안을 통해 셀프커스터디를 커스텀하셔야 합니다.