어떻게 하지?
프로토콜 신규 유저의 2차 인증을 돕기 위해서는 유저의 NEAR 계정을 생성해주어야 한다. NEAR 계정으로 DID를 등록하고 VC를 발급받기 위함이다. 그래서 크롬 익스텐션 기반의 Wallet(클라이언트)에서 유저의 계정 생성 절차를 간편하게 수행할 생각이었다. 그런데 니어코리아 스탶과 질의응답하며 몇가지 결론을 얻었다.
- NEAR에서 Named Account(kimcookieya.near)를 생성하기 위해서는 먼저 Implicit Account(64자리 바이트코드)를 생성한 후, 타계정에서 Implicit Account에 일정 near를 주어야 Named Account로 전환할 수 있다.
- testnet에서는 어차피 무료 near를 주기 때문에 implicit account를 생성할 필요없이 바로 Named Account를 생성할 수 있다. 생성하면 일정 near를 지급받는다.
- 클라이언트에서 계정을 생성하는 것은 가능하다.
- testnet 기준, near를 보유한 기존 계정(CreatorAccount, kimcookieya.testnet)의 Full Access Key로 신규 계정(NewAccount, kimcookieya2.testnet 또는 a.kimcookieya.testnet)을 생성할 수 있다.
- 동일 도메인 또는 1-depth 하위 도메인 계정을 생성할 수 있다.
- 단, 생성할 때 NewAccount에 줄 near를 지정해야 한다.
- mainnet 기준, 앞서 말했던 대로 implicit account를 생성한 후 타계정에서 일정 near를 전송하고 named account로 전환하거나, 처음부터 named account를 생성할 때 CreatorAccount의 near를 주는 방법이 있다.
- testnet 기준, near를 보유한 기존 계정(CreatorAccount, kimcookieya.testnet)의 Full Access Key로 신규 계정(NewAccount, kimcookieya2.testnet 또는 a.kimcookieya.testnet)을 생성할 수 있다.
- 우선 클라이언트에서 New Account를 생성하는 것의 문제점이 있다.
- CreatorAccount의 Full Access Key를 로컬에서 가지고 있어야 한다.]
- 당연하게도 이것은 CreatorAccount의 전권을 가진 키의 유출이기 때문에 해서는 안 된다!
- 니어코리아 스탶에게 물어보니, 서버에서 생성해서 내려주는 편을 권장하더라.
- 그러면 유저가 생성하고 싶은 New Account ID(<new-account-id>.testnet)를 입력하고 계정 생성을 요청하면 서버에서 생성해서 내려주면 되는 것 아니냐? 하지만
- 우선 Named Account 생성에 있어서 반드시 일정 near가 요구된다는 점이 문제이다.
- testnet에서 개발할 때는 near를 지급받기 때문에 문제가 없겠지만, 졸업과제 심사에서 서비스적인 측면으로 볼 때 게정 생성에 소요되는 near는 무시될 수 없는 리소스인게 분명하다.
- 그러면 차라리 제로 트랜잭션 기능이 있는 fastauth를 사용하는 건 어떨까?
- 튜토리얼 테스트 도중 터져서 확실치는 않지만, fastauth는 BOS에서만 사용가능한 것 같다.
- 공식문서 또는 공식블로그에서 "BOS의 신 기능, FastAuth"로 적은 것 땜에 BOS를 안 쓰면 fastauth도 못 쓰는 것 같다.
결론
그래서 일단 내가 내린 결론은 2가지이다.
- Named Account(kimcookieya.testnet)를 버리고, Implicit Account(공개키/개인키)만을 생성해서 유저의 계정을 생성한다.
- NEAR의 장점을 활용하지 못하는 것 같아 아쉽지만, 제일 확실한 방법이다.
- 그냥 testnet에서 개발할거니까 수수료같은거 신경 안 쓰기로 하고, Named Account로 생성한다.
- 기능적인 측면에선 전혀 문제가 없지만, testnet에서만 가능한 방법이다.
사실 유저가 near 계정을 갖고있으면 문제가 없지만, 우리는 웹2 유저에게 웹2와 유사한 UX를 제공하기 위해 고민하는 중이다.
'프로젝트 > 졸업과제' 카테고리의 다른 글
[졸과] 20240228 모각코 (1) | 2024.02.29 |
---|---|
[졸과][NEAR] 계정 생성 어떻게 할까? (0) | 2024.02.16 |
[졸과][NEAR] near-cli로 createAccount (0) | 2024.02.14 |
[졸과][NEAR] Account, State, Smart Contract (1) | 2024.02.08 |
[졸과][NEAR] 왜 NEAR인가 (0) | 2024.02.08 |