반응형

https://brunch.co.kr/@delight412/558

 

이더리움 레이어2 거버넌스 토큰들의 가치를 묻다

학습 차원에서 틈틈이 해외 전문가들이 블로그나 미디어 그리고 책에서 쓴 글을 번역 또는 요약 정리하고 있습니다. 이번 포스팅도 그중 하나고요. 거칠고 오역된 부분이 있을 수 있습니다. 제

brunch.co.kr

아비트럼의 ARB 출시로 가장 큰 두 이더리움 레이어2 토큰 시장 가치는 모두 합쳐 20억 달러 이상이 됐다. 이제 일부 투자자들은 당연해 보이는 질문을 제기하고 있다.: 이 토큰 용도는 무엇일까?? 답은 그렇게 간단치 않아 보인다.

현재 ARB와 옵티미즘 OP 토큰의 유일한 기능은 거버넌스다. 이는 프로젝트가 어떤 방향으로 나아갈지 투표할 수 있는 기능이다. 그리고 새로 설립된 아비트럼 재단을 둘러싼 잡음으로 인해 투표 기능조차 분명치 않은 상태다.

거버넌스는 많은 암호화폐 토큰들에서 핵심 가치 제안으로 종종 언급된다. 탈중앙화 금융(디파이)에서 가장 가치가 있는 토큰인 UNI는 유니스왑 거래소 거버넌스 결정에 투표하는 데 사용된다는 것이 유일한 가치임에도 47억 달러 가치를 갖는다. ARB는 이제 10억 달러 규모 거버넌스 토큰 대열에 합류했지만 많은 이더리움 확장 솔루션들이 출시될 예정이어서 투자자들은 이러한 토큰 가치가 정당한지 의문을 갖기 시작했다.

거버넌스가 롤업 토큰에서 주요 사용 사례인 가운데, 벤처 투자 회사인 멀티코인 캐피털의 파운딩 파트너인 투샤르 자인은 인터뷰에서 "정확히 무엇을 거버넌스하고, 그 거버넌스는 어떻게 작동하며, 왜 수십억 달러 가치가 있는가?"라고 물었다.

ARB와 OP는 옵티미스틱 롤업으로 알려진 암호 기술에 기반한 이더리움 확장성 플랫폼들이 발행한 디지털 자산들이다. 이들 솔루션은 각 플랫폼에 예치된 가치로 측정했을 때 이더리움에서 거래를 빠르게 저렴하게 할 수 있도록 해주는 주요 수단들이다.

ARB 시가총액은 16억 달러이며, OP는 7억4000만 달러다. 완전 희석 평가(fully-diluted valuation, FDV: 코인의 최대 공급량과 가격을 곱한 지표) 200억 달러가 넘는 토큰들이다.

롤업 토큰 사용 사례들

롤업 토큰은 확장성 솔루션 네트워크를 보호하지도, 사용자가 이들 토큰으로 표시된 거래 수수료를 지급하는 것도 아니다. 멀티코인 캐피털의 자인은 이것들은 블록체인 네트워크와 관련된 토큰들이 갖는 가장 큰 두 가지 사용 사례라고 말했다.

그러나 롤업들에선 이더리움 네이티브 토큰인 ETH가 이 두 가지 역할을 모두 수행한다는 게 그의 설명이다.

자인은 롤업 토큰들의 세 번째 잠재적 용도는 검증자 역할을 하는 대가로 토큰을 스테이킹하는 것이지만, 이는 아직 가능하지 않다고 덧붙였다. 검증자는 블록체인 시스템에서 트랜잭션 검증을 담당한다.

토큰은 필요 없다

전반적으로 자인은 레이어 2 토큰들에 반드시 반대하는 것은 아니지만 현재 가치에 대해서는 회의적이다.

테조스 블록체인의 공동 설립자 아서 브라이트먼은 토큰이 아예 존재하지 않아야 한다고 생각한다. 더블록의 뉴스 디렉터 프랭크 차파로가 트위터에서 "레이어 2에 토큰이 필요한 이유가 무엇이냐"고 묻자, 브레이트먼은 "필요하지 않다"고 답했다. 테조스는 3월 29일 개발자들이 블록체인 롤업을 테조스에서 자유롭게 배포할 수 있는 뭄바이(Mumbai)라는 업데이트를 공개했다.

그는 디파이언트를 통해 "롤업은 특별한 토큰이나 제한적인 라이선스 없이 무료로 사용할 수 있으며, 검증자 승인을 받을 필요도 없다. 완전히 개방돼 있다"고 말했다. 각 롤업 배후에 있는 아비트럼 재단과 옵티미즘 재단은 토큰 가치에 대한 논평 요청에 즉시 응답하지 않았다.

수익성 있는 프로토콜들

롤업들은 대한 수요가 전혀 없다는 것은 분명 아니다. 데이터 제공업체인 L2BEAT에 따르면 레이어 2 트랜잭션은 작년 한 해 동안 이더리움 트랜잭션을 훌쩍 뛰어넘은 것으로 나타났다.

롤업은 유용성을 제공할 뿐만 아니라 이미 수익을 창출하고 있을 수 있다.  벤처 투자 회사인 원컨포메이션(1confirmation)  파트너 출신인 코피(Kofi)가 개발한 대시보드에는 7월 이후 확장성 솔루션 수익성이 점점 더 높아지고 있는 것으로 나타나고 있다.

중요한 것은 토큰이 잠재적 수익에 어떻게 접근하는지는 아직 명확하지 않다. 롤업 수익을 구성하는 온체인 비용 요소는 레이어 2에서 발생한 트랜잭션을 게시하기 위해 이더리움 블록체인에 비용을 지급하는 것에서 비롯된다.

코피는 인터뷰에서 대시보드에는 블록체인에 포착되지 않은 비용이 포함되지 않는다고 말했다. 이러한 오프체인 비용에 따라 롤업은 전체적으로 수익성 있는 벤처가 될 수도 있고 그렇지 않을 수도 있다.

데이터 플랫폼 크립토스탯츠를 개발하는 엔지니어인 데이비드 미할은 디파이언트와의 인터뷰에서 수익 구성 요소는 '시퀀서'(sequencer)라는 소프트웨어 구성 요소에 의해 포착되는 두 가지 소스들에서 나온다고 말했다.

시퀀서는 사용자 트랜잭션을 롤업해 이더리움 메인넷에 제출하는 역할을 담당한다. 두 가지 수익원은 "가스비"라고 하는 사용자 거래 비용과 블록체인 공간에서 복잡한 하위 분야인 최대 추출 가치(Maximal Extractable Value, MEV)로, 검증자, 이 경우에는 시퀀서가 처리 대기 중인 트랜잭션을 재주문하거나 리믹스하는 것이다. 미할은 "MEV 뒤에는 많은 돈이 있다"라고 말했다.

시퀀서 탈중앙화

각 프로젝트 문서에 따르면 현재 아비트럼과 옵티미즘 시퀀서들은 솔루션을 개발한 회사에서 제어하고 있다. 다시 말해, 중앙 집중식이다. 시퀀서를 잠재적으로 탈중앙화하는 것은 아마도 롤업 토큰이 가질 수 있는 매출과 관련해 가장 가능성이 높은 것일 것이다.

롤업 대시보드 이코노미 개발자인 코피는 롤업이 시퀀서를 탈중앙화할 수 있다면 ARB나 OP와 같은 토큰이 추가적인 효용을 얻을 수 있다고 말했다. 탈중앙화된 시퀀서는 사용자가 롤업 토큰을 '스테이킹'함으로써 운영에 참여할 수 있는 기능을 제공할 것이다. 이는 롤업 거래 수수료와 MEV에서 발생하는 수익 일부를 토큰 보유자에게 제공할 수 있다.

아비트럼과 옵티미즘은 문서에서 각 솔루션 시퀀서를 탈중앙화할 계획이라고 밝혔다. 자인은 두 롤업이 탈중앙화 시퀀서 없이 출시된 주된 이유는 "기술적으로 정말 어렵기 때문"이라고 말했다. 시퀀서를 탈중앙화하려고 하면 레이어 1을 확장할 때와 동일한 문제에 부딪히게 된다는 게 그의 설명이다.

규제 리스크 보호

부정적으로 보는 사람들은 레이어 2들이 지금 거버넌스 토큰을 출시하는 또 다른 이유를 찾을 수 있다: 2023년 암호화폐는 극도로 적대적인 규제 환경에 진입했다. 가치를 창출할 수 있는 확실한 수단이 있는 토큰은 규제 당국의 관심을 끌 가능성이 더 높다. 암호화폐 분야 저명한 연구자인 폴리냐는 롤업 토큰이 필수적인 것은 아닐 수 있지만  최소한 유용하다고 말했다.

그는 "반드시 토큰이 필요한 것은 아니지만 거버넌스, 소유권, 업그레이드를 더 쉽게 탈중앙화할 수 있게 해준다. 따라서 대부분 레이어2들이 토큰을 보유할 것으로 보고 있다. 재단은 토큰을 보조금 및 기타 인센티브에 사용할 수 있을 뿐만 아니라 레이어2들이 시퀀서를 탈중앙화할 수 있도록 지원할 수 있다"고 말했다.

자인은 앞으로는 롤업이 현재 확장성 솔루션들이 이들 네트워크 보안을 책임지고 있는 블록체인인 이더리움에서 본질적으로 분리되는 세상이 올 것으로 보고 있다. 그는 프로젝트 자체 토큰 보유자들이 디지털 자산을 통해 더 많은 가치를 창출하려고 노력하면서 이러한 변화가 일어날 것이다. 내 추측으로 그 싸움은 1~2년 안에 벌어질 것 같다. 식민지가 충분히 커지면 그들은 독립과 같은 것을 원하기 시작한다"고 말했다.

반응형
반응형

SSO(Single Sign-On) 구현을 위한 토큰(Token)의 활용

 


ID/PW 로그인
AccessToken / RefreshToken 생성
AccessToken 소멸하면 RefreshToken으로 인증서버에 AccessToken 재요청
RefreshToken 소멸시 재로그인
 * JWT(JSON Web Token)
 * Token은 Base64 Encoding으로 한다. 토큰에 서명(signiture)부분을 추가해서 서명에 비밀키를 사용. 

 

====================================================================

 

SSO(Single Sign-On)는 무엇인가?

SSO(Single Sign-On)은 한 번의(Single) 로그인 인증(Sign-On)으로 여러 개의 서비스를 추가적인 인증 없이 사용할 수 있는 기술이다. 인증은 하나의 시스템(인증 서버)에서 수행하고, 그 인증 서버가 서비스를 각각 담당하는 서버에 인증 정보를 알려주는 방식이다.




주로 다양한 서비스를 유사한 도메인 혹은 동일한 탑 레벨 도메인(TLD:Top Level Domain)을 서비스하는 엔터프라이즈 서비스 제공자들이 사용자에게 간편한 로그인을 제공하기 위해 사용한다.

예를 들면, 이런 흐름이다.
① www.samsung.com에서 로그인을 하면, 인증 서버 account.samsung.com으로 이동한다.
② account.samsung.com에서 로그인을 성공하면 다시 www.samsung.com으로 돌아온다.
③ 삼성의 다른 서비스에 접속하면, 별도의 추가 로그인 없이 이미 로그인된 상태로 서비스를 즐긴다.

같은 맥락으로 Gmail에 Google 계정으로 로그인을 하면, YouTube나 Google Drive는 별도 로그인 없이 Gmail 로그인에 사용한 구글 계정을 동일하게 사용하는 것도 SSO 기술이다.

SSO를 구현하기 위한 기술 요소는?

SSO를 구현하려 한다면 인증 서버를 준비하고, 이를 다양한 서비스들과 어떻게 인증 관련으로 연계할지 설계해야 한다. 인증 서버에서 인증을 성공적으로 마쳤다는 '증거'를 다른 서비스들이 어떻게 믿게 만들 것인지에 대한 기술적 고민도 필요하다.

기업 내 솔루션에서 SSO는 전통적으로는 모든 사용자(직원)의 인증 정보를 담고 있는 AD(Active Directory)이나 LDAP(Lightweight Directory Access Protocol)을 적용한 솔루션들을 많이 사용해왔다.

SSO의 직접적인 구현을 위해서 여러 가지 방법이 있겠지만 이 글은 인증 토큰(authentication token)을 사용한 SSO 방식에 대한 글이다. 여기서 토큰이란, 최초 인증이 성공한 사용자에게 일종의 증표로 인증 서버가 발급하는 정보다.

예전의 웹 개발에서는 로그인에 성공한 사용자는 웹 서버와 Session을 맺고, SessionID 정보를 쿠키로 받아, 그 쿠키를 로그인의 증표로 사용하였다. 모든 요청 헤더에 SessionID 쿠키를 넣고 웹 서버에 접속을 하면, 웹 서버는 서버에 보관한 Session 정보와 비교하여 유효하게 로그인한 사용자임을 확인하고 콘텐츠를 제공하는 방식이었다. 매번 요청마다 서버가 Session 정보를 확인해야 하는 부담, 서버가 Session 정보를 어디엔가(DB 혹은 Redis) 저장해야 하는 번거로움과 복잡한 구현 방식이 단점이라 할 수 있다.

이에 반해 토큰 방식은 Session 방식과 다르게 서버가 각각 로그인한 사용자의 세션 정보를 따로 보관하지 않는다. 한번 인증 토큰이 클라이언트에게 발급하면, 클라이언트는 추후 요청부터는 그 토큰을 포함하고, 서버는 클라이언트 요청에 포함된 토큰을 그때그때 확인할 뿐이다. 현재 Facebook, YouTube를 비롯한 소셜미디어, 포탈, 이커머스 서비스처럼 가입자 기반의 로그인 인증이 필요한 서비스들이 토큰 인증 방식을 많이 사용하고 있다.

초기에는 SSO가 저변화되면서 많은 서비스들이 SSO 상용 서비스에서 제공하는 SAML(Security Assertion Markup Language) 방식을 사용하였다. SAML은 XML 형태의 마크업으로, 간단한 정보 전달을 위해 많은 태그가 사용되는 비효율성이 있다. 그 이후부터는 SSO에서도 토큰을 사용하고 있다.


토큰을 사용한 SSO 서비스 다이어그램 

SSO에서 세션과 토큰을 어떻게 사용하는지 아래 다이어그램으로 이해해보자.



① 사용자는 Service1에 접속하여 로그인 버튼을 클릭한다.
② Service1은 인증 서비스(idP: Identity provider)로 해당 요청을 Redirect 한다.
③ 인증 서비스는 사용자에게 로그인 화면을 제공한다.
④ 사용자는 ID/PW (혹은 OAUTH2.0)을 입력한다.
⑤ 인증 서비스는 회원 DB와 비교하여 ID/PW가 올바르면 인증 토큰을 발급하며 Service1으로 돌려보낸다.
⑥ Service1은 발급된 토큰을 확인하고, 올바른 토큰이라면 사용자의 로그인 처리를 해준다.
⑦ 사용자는 Service2에 접속한다.
⑧ Service2는 이 사용자의 세션이 아직 유효한지 확인하고 유효하다면, Service2 용도의 토큰을 발급한다.
⑨ Service1은 발급된 토큰을 확인하고, 올바른 토큰이라면 사용자의 로그인 처리를 해준다.


여전히 세션이 필요한 이유는 한번 발급된 토큰만 믿을 수없기도 하고, 일반적으로 토큰은 짧은 유효 시간을 갖는데 비해, 서버에는 세션 정보를 오랫동안 보관하고 그 기간 내에 재접속한 사용자를 지원할 수 있기 때문이다.


유효 시간이 만료된 토큰 사용자가 다시 로그인하는 것은 불편하니, 다음과 같은 방법을 사용한다.

- 인증 서버는 ID/PW를 DB에서 확인하고, 정상 로그인이면 AccessToken과 RefreshToken을 발행한다.
- AccessToken은 exp가 짧다. 만료되면 RefreshToken으로 인증 서버에게 AccessToken를 재요청한다.
- RefreshToken은 exp가 상대적으로 길고, 인증 서버의 세션 정보를 포함한다.
- AccessToken 재요청을 받은 인증 서버는 RefreshToken과 세션 정보를 비교 후 재발급해준다.
- RefreshToken 마저 유효 시간이 지나면, 사용자는 다시 ID/PW 로그인을 해야 한다.

한번 로그인했던 Facebook이나 YouTube의 로그인이 상당 기간 필요 없는 것은 위의 방법을 사용하기 때문이다. 브라우저의 쿠키와 temporary internet folder를 삭제하면 모든 토큰은 삭제된다. 때에 따라 AccessToken을 cookie에 저장하고, cookie는 브라우저가 닫히면 삭제되도록 설정할 수도 있다.


토큰에는 어떤 정보가 있고 어떻게 확인하나?

여기에서의 핵심은 토큰이 어떤 정보를 가지고 있고, 각 Service1과 Service2가 유효한 토큰임을 어떻게 확인할 것인지에 대한 디자인이다. 토큰의 종류는 여러 가지이지만 예제에선 JWT(JSON Web Token)을 사용하였다.



① 인증 서버(idP)와 각 Service 서버들은 사전에 비밀키(private key)를 공유한다.
② ID/PW로 정상적인 인증이 확인되면, 인증 서버는 토큰에 이메일, 이름, 유효 시간 등을 입력하여 발급한다.
③ 토큰을 Base64 Encoding 한다. 암호화가 아닌 인코딩이기 때문에 내용은 누구나 알 수 있다.
④ 토큰에 서명(signature) 부분을 추가하여 위 변조를 방지한다. 서명에 비밀키를 사용한다.
⑤ HTTPS 보안 채널로 토큰 확인을 요청한다. 토큰이 유실되더라도 비밀키가 없는 해커는 내용을 변조할 수 없다.
⑥ Service 서버는 비밀키로 토큰 변조 여부를 확인하고, email 등의 사용자 정보 확인 후, 인증 처리를 해준다.

이 방식의 장점은 가벼운 토큰을 사용하여 인증 처리 작업을 하는 서비스들이 부담을 갖지 않는 구조이고, 비밀키 없이는 토큰을 변조하지 못한다는 보안성이다.

단점은 아무리 HTTPS로 토큰을 보낸다고 하더라도, 중간자 공격 등으로 토큰을 훔친 해커는 토큰을 변조하지 않고 그대로 사용한다면, 로그인한 사용자와 동일하게 보일 수 있다는 보안 취약점이다. 그래서 User-Agent 혹은 IP 주소를 확인한다거나, 추가적인 여러 가지 보완책을 마련해야 한다. Naver 서비스의 경우, AccessToken이 유효하더라도 사용자의 IP 주소가 바뀌면 다시 로그인을 하도록 하는 것도 이런 이유 때문이다.


SSO(Single Sign-On) 구현을 위한 토큰(Token)의 활용 : https://brunch.co.kr/@sangjinkang/36

반응형

+ Recent posts