EIP-2255 지갑 권한 시스템 [TIL / 이더리움]

알락·2022년 11월 22일
0

이더리움

목록 보기
6/16

ethereum banner

배경 및 개요

메타마스크 같이 클라이언트에서 Web3.js API를 제공하는 지갑은 wallet_getPermissionswallet_requestPermissions 함수를 제공하는 것을 권장한다.
이는 기존의 다른 웹서비스, 이를테면 페이스북이나 애플, 그리고 네이버, 카카오톡 같은 유저의 데이터를 갖고 있는 플랫폼 기업들에서 구현하는 권한 인증 API의 역할을 하게 한다.

여기서 타 웹서비스가 제공하는 Auth2.0과의 커다란 차이는 권한의 발생이 서버가 아닌 클라이언트에서 이루어진다는 것이다.

EIP-2255 에서는 실질적으로 지갑(여기서 주로 사용할 메타마스크)에서 사용할 수 있는 web3 API들을 제한하는데에 초점을 둔다. 이를테면 현재 이용하고 있는 웹서비스를 신뢰 여부를 물어보고, 이 웹서비스를 통해 온체인에서 할 수 있는 일들을 화이트리스트 형식으로 정해둔다. 권한이 더 필요하다면 미리 지갑에 해당 계정에서 해당 메소드를 이용 여부를 사용자에게 물어보는 기능도 제공한다.

  • 해당 계정에서 처리할 수 있는 메소드들의 리스트를 가져오는 일은 wallet_getPermissons을 통해서 가능하다.
  • 해당 계정으로 새로운 메소드를 사용할 권한을 얻는 일은 wallet_requestPermissions를 통해서 가능하다.

이용 예시

[계정의 주소값에 대한 접근 요청]

request account address

[접근 가능해진 계정]

approve access address

위를 보면 어떤 주소값에서 어떤 메소드 사용이 허용되는지를 지갑 차원에서 관리하고 있다. 메소드 요청에 대해서 해당 계정이 권한을 부여한 경우가 없다면 사용자에게 승인 여부를 물어보거나 애초에 요청을 거절하게 될 것이다.

어떻게 적용해볼까?

  • EIP-2255를 비롯하여 다음에 EIP-712를 알아볼 것이다.(EIP-721이 NFT) EIP-712까지 살펴보고나면, 새로운 웹서비스의 인증 방법을 고민해볼 수 있을 것 같다.

참고

profile
블록체인 개발 공부 중입니다, 프로그래밍 공부합시다!

0개의 댓글