[NEAR 시리즈] NEAR의 FastAuth, 블록체인 매스어답션을 위한 게임 체인저

user-image
남민우(Bvbv)
Researcher/
CURG
2023.06.29

[Xangle Digest]

※해당 컨텐츠는 6월 16일 외부에서 기발간 된 컨텐츠입니다. 컨텐츠에 대한 추가적인 주의사항은 본문 하단에서 확인해주세요.

니어 FastAuth, FastAuth 키 복구, 니어 월렛, 웹3 UX, 메타 트랜잭션이란

 

목차

현재 Web3 시장의 문제점 
UX를 개선하기 위한 다양한 서비스
NEAR의 블록체인 매스어답션을 위한 게임 체인저, FastAuth
NEAR WALLET & WALLET KEY
소셜 로그인, 회원가입
FastAuth의 키 복구 단계
수수료 없이 (Non Gasfee)서비스 이용을 가능하게 하는 기술들 
AA(Account Abstraction)와 FastAuth의 비교 
FastAuth의 Next Action
마치며

 

 

 

 

2023 5월, NEAR Protocol에서 FastAuth라는 기술이 새롭게 출시되었습니다. 
본 아티클에서는 NEAR FastAuth에 대해 자세히 살펴보겠습니다.

 

현재 Web3 시장의 문제점

현재 Web3 시장은 기존 사용자만 지속해서 사용하게 되는 불편한 UX 때문에 점점 더 고착화되고 있습니다. 한마디로 쓰기 “어렵다” 입니다.

어려운 이유 중 하나는 지갑을 생성하는 것입니다.

기존의 Web2 사용자들은 이메일과 비밀번호만으로도 손쉽게 로그인할 수 있었지만, Web3 서비스를 이용하려면 지갑 익스텐션을 설치하고 12개의 니모닉 키를 외워야 합니다. 12자리의 단어를 일일이 입력하고 그 이후에 비밀번호를 입력해 지갑을 만들 수 있습니다.

현재 로그인과 회원가입의 측면에서 Web3 온보딩의 문제점들을 간략하게 정리하면 다음과 같습니다.

  • 메타마스크를 만드는 것에서부터 진입 장벽이 존재합니다.
  • 메타마스크의 지갑 주소는 0xasdasfasd123121…. 같은 32자리의 해시값으로 이루어져 있어 외우는 것이 불가능합니다.
  • 메타마스크를 생성할 때 얻은 니모닉 키를 외우기도 힘들며 개인 키 또한, 0xasdasfasd123121….로 이루어져 있습니다.
  • 니모닉 키와 개인 키를 잃어버리면 해당 자산을 복구하는 것이 불가능합니다.

그리고 서비스를 이용하기 위해서는 플랫폼이 아닌 유저가 수수료를 지불해야만 합니다.

 

UX를 개선하기 위한 다양한 서비스

블록체인 시장에서는 위와 같은 문제점들을 해결하고 UX를 개선하기 위한 다양한 서비스들이 등장하고 있습니다.

니어 FastAuth, 웹3 UX 개선 서비스, 웹3 진입장벽

출처: NEAR Protocol

Bioconomy, 웹3 UX 개선 서비스, 웹3 진입장벽

출처: Biconomy

Biconomy,Safe, 웹3 UX 개선 서비스, 웹3 진입장벽

출처:Safe

니어 프로토콜에서는 FastAuth를 이더리움시장에서는 Biconomy Safe를 대표적으로 뽑아 볼 수 있겠습니다.

 

NEAR의 블록체인 매스어답션을 위한 게임 체인저 FastAuth

FastAuth란?

NEAR에서 만든 FastAuth는 블록체인 세계에서 사용자 경험을 더 쉽게 만들어주는 프로토콜입니다. 이 프로토콜은 Web2와 유사한 온보딩 과정과 계정 복구 프로세스를 제공하여 사용자들이 디앱을 조작하기 더욱 간편하게 만들어 줍니다. 또한, 이 프로토콜은 NEAR 프로토콜을 기반으로 만들어졌습니다. 좋은 소식은 이 프로토콜이 오픈소스로 공개될 예정이어서 개발자들은 이를 자신의 디앱에 통합할 수 있습니다.

FastAuth는 이더리움 개선 제안(EIP) 중 ERC-4337 표준을 기반으로 하는 새로운 유형의 트랜잭션, 메타 트랜잭션을 도입했습니다. 이 트랜잭션은 제3자가 가스 수수료를 대신 지불해줄 수 있도록 하여 블록체인 세계에서 신규 사용자들이 겪는 중요한 문제 중 하나를 해결해 줍니다.

FastAuth의 특징

FastAuth는 다음과 같은 특징을 가지고 있습니다.

  • 소셜 로그인(이메일 가입 , 지문, 페이스 아이디 등으로 로그인가능)
  • 기존에 비밀번호 복구 방식과 동일한 프로세스로 지갑을 복구 할 수 있습니다.
  • Relayer를 통한 논가스비로 디앱을 이용할 수 있습니다.
  • 익스텐션을 설치할 필요 없이 바로 로그인, 회원가입이 가능합니다.

그렇기 때문에 FastAuth의 계정 추상화를 통해 유저는 이메일로 로그인할 수 있으며, 개인 키 관리나 거래 비용 지불에 대해 걱정할 필요가 없습니다.

각 특징에 대해서 기술적으로 알아보겠습니다.

NEAR WALLET

니어 프로토콜 지갑의 키 관리는 이더리움의 지갑과 완전히 다릅니다.

니어 FastAuth, 니어 월렛, 니어 프로토콜 지갑 키 관리, 니어 월렛 키 구조

Implicit Accounts

암시적 계정은 기존 비트코인/이더리움 계정과 유사합니다. 이 계정은 64자 주소로 정의되며, 이는 고유한 ED25519 키 쌍에 해당합니다.

ED25519 키 쌍으로 만든 계정과, 암시적 계정을 참조했을 때의 계정을 예시로 들 수 있습니다.

  • The public key base58: BGCCDDHfysuuVnaNVtEhhqeT4k9Muyem3Kpgq2U1m9HX
  • Refers to the implicit account: 98793cd91a3f870fb126f66285808c7e094afcfc4eda8a970f6648cdf0dbd6de

Named Accounts

짧은 최상위 계정(32자 미만)을 만들 수 있습니다.

  • 긴(32자 이상) 최상위 계정은 누구나 만들 수 있습니다.
  • 한 계정은 자신의 바로 아래 하위 계정만 만들 수 있습니다.
  • 누구나 긴 최상위 계정(예: 매우 긴 계정 이름 32자)을 만들 수 있습니다.

e.g) alice.near , alice.bob.near

 

NEAR WALLET KEY

니어의 키는 Full Access Keys Function Call keys 이루어져 있습니다.

니어 FastAuth, 니어 월렛, 니어 프로토콜 지갑 키 관리, 니어 월렛 키 구조

Full Access Keys

Full Access Keys는 개인 키와 공개 키로 구성된 새 ED25519 키 쌍으로 생성됩니다. 개인 키는 임의의 32바이트 숫자이며, 공개 키는 계산하기 쉽지만 되돌리기 어려운 단방향 함수인 타원 곡선 곱셈을 사용하여 개인 키에서 파생됩니다. 개인 키는 비밀로 유지되며 트랜잭션에 서명하는 데 사용되는 반면, 공개 키는 공개적으로 공유되며 다른 사람들이 서명을 확인하는 데 사용됩니다. 간단하게 말해서 이더리움에서의 Private Key Public Key 합쳐진 형태라고 생각하시면 됩니다.

Private Key + Public Key = Full Access Key

권한 : 운영 체제에서 관리자 권한을 갖는 것과 유사하게 계정에 대한 모든 권한을 갖습니다.

기능

  1. 서브 계정 생성
  2. 계정 삭제 (서브 계정은 각각 고유한 키를 가지고 있으므로 삭제 불가)
  3. Access Keys를 추가하거나 삭제
  4. 계정 내 스마트 컨트랙트 배포
  5. 어떤 컨트랙트든 메소드 호출
  6. NEAR Ⓝ 전송

 

Function Call Keys

Function Call Keys는 ED25519 키 쌍이지만, 사용을 제한하는 추가 메타데이터와 연결되어 있습니다. 이 메타데이터에는 컨트랙트 ID, 메소드 이름, 허용량이 포함됩니다.

Function Call Keys는 목적에 따른 서명 Key를 발급해, 특정 기능에 대한 서명만 수행합니다. Key로 서명 가능한 기능과 권한이 제한되어 있어 자산 탈취 리스크를 최소화하며, 이를 이용해 지갑 없이 유저가 트랙잭션을 발생시키고 서명하는 것도 가능합니다. 
간단하게 말해서 Full Access Keys + Metadata(특정 함수에만 액세스 할 수 있게 하는 데이터) 만들어진 키입니다.

권한 : NEAR Ⓝ 사용을 필요로 하지 않고 특정 기능을 호출할 수 있는 권한을 갖습니다.

Metadata:

  1. receiver_id: 키가 호출을 허용하는 계약입니다 . 이 키를 사용하여 다른 계약을 호출할 수 없습니다.(키가 호출할 수 있는 컨트랙트의 계정 ID)
  2. method_names: 해당 키로 부를 계약 내 기능의 이름입니다. 생략할 시 모든 기능이 호출됩니다. (키가 호출할 수 있는 특정 기능)
  3. allowance: NEARⓃ을 첨부하지 않고 호출하게 되면 키는 볼 수 있는 기능의 호출만 허용됩니다. (키가 가스비로 사용할 수 있는 최대 NEAR 토큰 금액)


지금까지 NEAR가 키를 어떻게 관리하는지 알아보았다면, 다음은 이 키로 로그인과 회원가입 방법을 알아봅시다.

 

소셜 로그인, 회원가입

소셜 로그인이 가능한 니어 FastAuth , FastAuth 키 복구, 니어 월렛, 웹3 UX

출처: NEAR Protocol Youtube / Create a Web3 Account in Seconds with Fast Auth

소셜 로그인이 가능한 니어 FastAuth , FastAuth 키 복구, 니어 월렛, 웹3 UX

출처: https://wiki.near.org/overview/BOS/fast-auth

 

Detail

  1. 유저가 FastAuth를 통해 키 생성 요청을 보냅니다.
  2. FastAuth에 해당하는 SDK에서 지갑 생성 코드를 실행합니다.
  3. 이제 유저는 이메일과 이름.near에 쓰이는 계정의 이름을 입력합니다.
  4. 추가로 지문, 페이스 아이디, 다른 추가 비밀번호 등으로 인증합니다.
  5. 유저의 검증이 완료되고 위에서 보았던 개인 키를 디바이스에 저장합니다.(Full Access Keys가 아닙니다.)
  6. 지갑이 생성되고 생성 시 입력했던 이메일로 검증 메세지가 날아갑니다.
  7. 이메일에서 검증 후 이때 Full Access Keys + 디바이스에 저장된 Private Key를 같이 만듭니다.
  8. 지갑을 생성했습니다.

보통 서명을 할때 Private Key 서명을 하는 경우가 빈번하지만, FastAuth 서명의 경우 유저 디바이스의 Pass key(Private Key) 니어 서버측의 MPC(다자간연산) 연산되어 서명을 수행합니다.

* 개인키는 분산되어 저장됩니다. 

위에서 설명한 흐름을 좀 더 명확하고 간단하게 알아보겠습니다.

 

실제 지갑 생성 과정 

니어 지갑 생성 단계, 소셜 로그인이 가능한 니어 FastAuth , FastAuth 키 복구, 니어 월렛, 웹3 UX

사실 계정 생성은 세 가지로 간단하게 정의해도 별문제가 없습니다. FastAuth는 심리스한 UX로, Web2의 계정 생성방식과 매우 유사하기 때문입니다.

  1. 이메일과 비밀번호를 입력 = 이메일과 어카운트 이름 입력 (약간 다르죠?)
  2. 디바이스에 저장된 인증수단 입력 (동일)
  3. 이메일 전송 후 검증 (동일)

비밀번호가 어카운트 이름이 된 것을 빼면 똑같은 걸 볼 수 있습니다.

  • 아래 사이트에서 회원가입을 시도해볼 수 있습니다.
    https://near.org/

위에서 메타마스크에서 개인 키를 잃어버리면 복구가 불가능하다고 했습니다. 반면 NEAR의 FastAuth는 이메일 인증으로 손쉽게 복구가 가능합니다.

 

FastAuth의 키 복구 단계

니어 지갑 생성 단계, 소셜 로그인이 가능한 니어 FastAuth , FastAuth 키 복구, 니어 월렛, 웹3 UX

출처: NEAR Protocol Youtube / Account Recovery with NEAR's Fast Auth

니어 지갑 생성 단계, 소셜 로그인이 가능한 니어 FastAuth , FastAuth 키 복구, 니어 월렛, 웹3 UX

 

FastAuth의 키 복구 단계는 다음과 같습니다.

  1. 유저가 키를 분실
  2. 계정 생성 시 등록했던 이메일로 FastAuth 관련 인증 코드 전송
  3. 키 복구
  4. 복구된 키로 암호화 된 키 해독
  5. 키 전달
  6. 복구된 키가 보이게 되고
  7. 키를 초기화하여 해당 키를 바꿀 수 있습니다.


마찬가지로 Web2와 비교해보겠습니다.

  1. 이메일 인증
  2. 비밀번호 초기화 = 키 초기화
  3. 비밀번호 재입력 = 키 재입력


다음은 가스비 없이도 디앱을 이용할 수 있게 해주는 Relayer에 대해서 알아보겠습니다.

 

수수료 없이(Non Gasfee) 서비스 이용을 가능하게 하는 기술들

FastAuth의 경우, 두 가지 기술을 통해서 유저는 가스비 없이 트랜잭션(요청)을 보낼 수 있게 됩니다.

  • FuntionCall Key
  • Meta Transaction(Relayer)

Function Call keys를 이용해 대납을 해주는 프로세스를 살펴보겠습니다.

니어 지갑 생성 단계, 니어 FastAuth , FastAuth 키 복구, 니어 월렛, 웹3 UX

위에서 언급했던 것처럼 대납계정이 Function Call Keys를 유저에게 줌으로써 유저는 해당 액션에 해당하는 디앱의 서비스를 가스비 없이 이용할 수 있습니다.

프로세스는 다음과 같습니다.

  1. DApp의 가스비를 후원해주는 Account1(대납계정)이 Function Call Keys를 유저에게 부여
  2. 유저가 Function Call Keys에 해당하는 액션을 수행
  3. DApp측에서 블록체인 네트워크에 유저 액션에 해당하는 트랜잭션 전송
    * 이때 Gas-Fee를 DApp 측에서 납부

이제 Meta Transaction Relayer 통한 대납 프로세스에 대하여 자세히 알아보겠습니다.

Meta Transaction과 Relayer를 통한 대납 프로세스

Meta Transaction은 간단하게 오프체인에서 대신 서명해줄 수 있도록 트랜잭션 내에 실질적인 트랜잭션 정보를 넣은 형태입니다.

먼저 각 플레이어들에 대해 정의를 내리고 시작하겠습니다.

  • 유저(앨리스) = 요청 보내는 사람
  • Relayer = 제3자 돈을 내주는 친구
  • DelegateAction = 돈을 내주는 친구가 알아볼 수 있는 메타 코드
  • 다른 친구 = 요청을 받는 사람
  1. 유저(앨리스)는 어떤 작업을 수행할지 누가 서명하는지에 대한 정보를 Delegate Action에 넣어 생성 후 서명합니다.
  2. 그 후 유저는 서명된 Delegate Action 을 Relayer라고 하는 제3자에게 보냅니다. 이 작업은 오프체인에서 수행됩니다.
  3. Relayer가 트랜잭션에 Delegate Action을 래핑하여 블록체인에 제출합니다. Relayer 는 이 트랜잭션의 서명자이며 따라서 가스 비용을 지불합니다. 내부 액션에 토큰 잔액이 첨부된 경우, 이 역시 Relayer가 지불합니다.
  4. 블록체인에서 트랜잭션 내부의 서명된 Delegate Action은 Relayer의 샤드에서 동일한 서명된 Delegate Action 을 가진 액션 영수증으로 변환됩니다.
  5. 이 영수증은 유저(앨리스) 로부터 다른 친구에게 전달 됩니다.
  6. 이 친구는 서명된 Delegate Action 의 압축을 풀고 유효한 논스 등을 사용하여 유저가 서명 했는지 확인합니다.
  7. 모든 확인이 성공하면 내부 액션이 본문으로 포함된 새 액션 영수증이 수신자에게 전송되고 액션이 실행됩니다. 

이렇게 하면 유저는 가스비를 지불하지 않고 트랜잭션을 실행할 수 있습니다. 가스비는 Relayer가 부담합니다. Relayer는 서비스를 무료로 제공하거나 다른 수단을 통해 사용자에게 요금을 부과할 수 있습니다.

Relayer의 한계점

  • CostRelayer는 릴레이 하는 트랜잭션에 대해 가스비를 지불해야 합니다. 이 비용은 사용자에게 요금을 부과하거나, 디앱이 부담하거나, 다른 방법으로 충당해야 합니다.
  • Central : 릴레이 모델은 탈중앙화된 방식으로 구현할 수 있지만, 소수의 릴레이어가 시장을 지배할 경우 중앙화될 위험이 있습니다. 이는 잠재적으로 검열이나 기타 문제로 이어질 수 있습니다.
  • Complexity: 릴레이 모델을 구현하면 시스템에 복잡성이 더해집니다. 추가 인프라와 관리가 필요하며 추가적인 장애 지점이 발생할 수 있습니다.
  • Security : 타사 서비스와 마찬가지로 악의적이거나 손상된 Relayer가 트랜잭션을 검열하거나 사용자 데이터 도용을 시도하는 등 유해한 방식으로 행동할 수 있는 위험이 있습니다.
  • 자세한 내용은 아래 링크에서 확인해 있습니다.
    [NEP-366](https://github.com/near/NEPs/pull/366)

 

 

AA(Account Abstraction)와 FastAuth의 비교

현 AA도 물론 소셜 로그인 서비스를 제공하고 가스비도 대납해주지만 차이점이 있습니다. 현재 대표적으로 NEAR의 FastAuth, Biconomy, Safe를 간단하게 비교해 보겠습니다.

대납 솔루션, 개인 키 복구 서비스, 소셜 로그인 ,멀티체인을 지원하는가에 대한 관점으로 봤을 때

대납 솔루션:

  • FastAuth는 Function Call Keys, Relayer를 통해 지원합니다.
  • Safe는 Relayer를 통해 지원합니다.
  • Biconomy는 좀 더 탈중앙화된 서비스인 Paymaster를 통해 대납을 지원합니다.

개인 키 복구 서비스:

  • FastAuth는 이메일을 통한 복구 서비스를 지원합니다
  • Safe는 MultiSig 즉, 여러개의 계정을 통해 복구 서비스를 지원합니다.
  • Biconomy는 Web3Auth를 통해 개인 키 복구를 지원합니다.

소셜 로그인:

  • FastAuth는 이메일로 로그인 합니다.
  • SafeBiconomy는 Web3Auth를 통해 소셜 로그인 서비스를 지원합니다.

멀티체인 서비스: 현재 FastAuth는 NEAR만 지원을 하고있으며 Biconomy와 Safe는 EVM 기반 토큰들을 지원하고 있습니다.

아래 표를 통해 한번에 확인해 보실 수 있습니다.

 

FastAuth의 Next Action

  • Relayer와 FastAuth를 near.org를 넘어 추가 게이트웨이로 확장하는 기능
  • 추가 MPC 탈중앙화 (FastAuth를 통해 개인 키 MPC 적용 중)
  • 멀티체인 호환성
  • 이중 인증

 

마치며

기존의 Web3 유저 외에도 Web2 유저의 진입 장벽을 해결하기 위해 NEAR에서 나온 FastAuth에 대해 살펴보았습니다.

문제점을 해결하기 위해 많은 플레이어가 UX 개선 서비스를 선보이고 있는 가운데, 현재 이더리움에서는 Paymaster Contract를 등록하거나 마찬가지로 Relayer를 통해 가스비를 대납해주는 대납 솔루션들이 있습니다.

NEAR 자체의 지갑 구조와 Relayer를 통해 두 가지 모두 지원하며 앞으로 DApp의 UX 개선하려는 노력이 돋보입니다. 더불어 소셜 로그인, 개인 키 복구까지 해결하고 있습니다. 다만 앞에서 언급했던 Relayer의 중앙화 이슈와 비용 문제 ,복잡성, 보안 문제는 여전히 남아있습니다.

Next Action이 어떻게 이루어지는지에 따라, 현재 UX 개선을 위해 나온 플레이어들 중에서 잘 선택하면 좋을 것 같습니다.

또한, 기존 DApp의 UX 개선을 원하는 개발자는 기존의 간단한 이더리움 지갑 구조에서 NEAR 지갑 구조의 장벽을 넘는다면 더 원활한 개발을 시도해 볼 수 있을 것 같습니다. NEAR가 멀티체인 호환성을 더 높이는 것을 기대해봅니다. 

 

-> '[NEAR 시리즈] NEAR의 FastAuth, 블록체인 매스어답션을 위한 게임 체인저' 원문 보러가기

 

※ 참고자료

주의사항
본 글에 기재된 내용들은 작성자 본인의 의견을 정확하게 반영하고 있으며 외부의 부당한 압력이나 간섭 없이 작성되었음을 확인합니다. 작성된 내용은 작성자 본인의 견해이며, (주)크로스앵글의 공식 입장이나 의견을 대변하지 않습니다. 본 글은 정보 제공을 목적으로 배포되는 자료입니다. 본 글은 투자 자문이나 투자권유에 해당하지 않습니다. 별도로 명시되지 않은 경우, 투자 및 투자전략, 또는 기타 상품이나 서비스 사용에 대한 결정 및 책임은 사용자에게 있으며 투자 목적, 개인적 상황, 재정적 상황을 고려하여 투자 결정은 사용자 본인이 직접 해야 합니다. 보다 자세한 내용은 금융관련 전문가를 통해 확인하십시오. 과거 수익률이나 전망이 반드시 미래의 수익률을 보장하지 않습니다.
본 제작 자료 및 콘텐츠에 대한 저작권은 자사 또는 제휴 파트너에게 있으며, 저작권에 위배되는 편집이나 무단 복제 및 무단 전재, 재배포 시 사전 경고 없이 형사고발 조치됨을 알려드립니다.