더 그래프(The Graph)가 가져올 블록체인의 검색 혁명(2)

Kevin Lee
bsp-asset
Published in
13 min readOct 16, 2021

본 글은 단순 정보 제공을 목적으로 하고 있으며 투자 권유를 목적으로 한 것이 아닙니다. 본 글의 내용에 대해서는 보증을 하지 않습니다. 실제로 투자를 진행할 때에는 본 글에 전면적으로 의거하여 투자 판단을 내리는 것을 삼가하여 주시기 바랍니다. 투자에 관한 결정은 본인의 판단에 달려 있습니다.

<더 그래프 로고>

더 그래프(The Graph)에 대한 글은 총 3편으로 이루어집니다.

  1. 더 그래프 프로젝트 소개
  2. 더 그래프의 토크노믹스 & 참여자
  3. 더 그래프에 대한 의견

이 중 2편은 상당히 길고, 더 그래프의 컨셉을 이해하는 데는 불필요할 수 있습니다. 1, 3편만 봐도 더 그래프에 대해 이해하는 데 충분하고, 저의 견해를 참고하실 수 있습니다 :)

더 그래프 생태계의 참여자

더 그래프에서는 4가지 방식으로 생태계에 기여할 수 있다.

<더 그래프의 생태계 참여자. 출처 : 더 그래프>

각각의 생태계 참여자가 어떤 방식으로 더 그래프에 기여하는지 알아보도록 하자.

  • 이전까지는 이해를 돕기 위해서 API라는 용어를 사용했지만, 실제로 더 그래프에서 API를 지칭하는 용어는 서브그래프(Subgraph)이다. 이제부터는 이 용어를 API 대신 사용하겠다.

Developer(개발자)

개발자는 블록체인 내부 데이터를 가져오는 서브그래프(Subgraph, API)를 개발한 후 더 그래프 위에 올리는 유저이다. 사실 더 그래프 위에 올라간 서브그래프가 없다면 더 그래프는 있으나 마나한 것이니, 개발자의 역할이 상당히 중요하다고 볼 수 있겠다.

<더 그래프 위의 수많은 서브그래프 중 일부. 출처 : 더 그래프 익스플로러>

Indexer(인덱서, 노드 운영자)

인덱서는 그래프 노드 운영을 담당한다. 앞의 글에 나와있듯, 노드는 여러 가지 일을 해야 한다. 블록을 스캔하며 필요한 데이터가 있는지 확인하고, 필요한 데이터가 있으면 바로 그 데이터를 가져와서 API가 사용하기 쉽게 데이터를 쌓고, 누군가가 데이터가 필요해 호출하면 데이터를 제공해주는 역할을 한다.

인덱서는 뒤에서 설명할 큐레이터의 시그널을 바탕으로, 관리할 API(서브그래프, Subgraph)를 선택한다. 인덱서는 선택한 서브그래프 위에 자신의 그래프 토큰을 할당하고, 그 서브그래프를 관리한다.

<protofire.eth라는 인덱서가 그래프 토큰을 할당한 서브그래프. 출처 : 더 그래프 익스플로러>

위 사진은 protofire.eth라는 인덱서가 관리하고 있는 서브그래프 목록이다. protofire.eth는 총 14개의 서브그래프를 관리하고 있다.

인덱서는 한마디로 더 그래프의 운영을 담당한다. 그렇기 때문에 인덱서의 악의적인 행동을 막을 토큰 이코노미가 구현되어 있어야 한다. 인덱서가 되기 위해선 그래프 토큰(GRT)를 프로토콜에 예치해야 하고, 이것은 일정 기간 이상 묶여있어야 한다. 만약 인덱서가 악의적으로 잘못된 데이터를 제공하는 경우 이 예치된 토큰 중 일부가 삭감된다. 인덱서가 되기 위해서는 최소 10만 개의 그래프 토큰을 예치해야 하는데, 이것은 현재 날짜 기준으로 8,000만 원 수준이다. 자신의 토큰이 담보로 잡혀있기 때문에, 인덱서는 악의적인 선택을 할 가능성이 낮아진다.

<상위권 인덱서의 그래프 토큰 예치 수량. 1,000만개(80억 원) 이상이다>

인덱서가 스스로 악의적인 행동을 하지 않도록 하는 것뿐만 아니라, 악의적인 행동을 할 때 이것을 발견할 방법 또한 필요하다. 보통 다른 프로젝트들은 Fisherman이라고 해서 악의적인 행동을 계속해서 감시하는 참여자가 따로 있는데, 이와 다르게 더 그래프는 인덱서나 서브그래프 사용자가 이 역할을 함께 한다.

인덱서들은 POI라는 것을 만드는데, 일종의 처리한 데이터의 요약본이라고 생각하면 편하다. 같은 서브그래프를 관리하는 인덱서들은 데이터가 다 동일하기 때문에 요약본인 POI도 같을 것이고, 이것을 통해 자신의 POI와 비교해 진위를 파악할 수 있다. 서브그래프 이용자들은 한 서브그래프 요청에 대해 서로 다른 인덱서가 만든 두 개의 데이터를 받아 비교한 후 진위를 파악할 수 있다.

당연히 인덱서 역할을 무보수로 하는 유저는 없을 것이기 때문에, 더 그래프는 인덱서들에게 돌아가는 보상을 설계했다. 인덱서는 두 가지 종류의 보상을 받을 수 있다. 첫 번째는 그래프 노드 운영에 따른 인덱싱 보상(Indexing reward), 두 번째는 서브그래프 요청에 따른 수수료(Query fee)이다.

<인덱서가 필요한 컴퓨팅 파워. 무료봉사할 유저는 없을 것>

인덱싱 보상(Indexing reward)은 현재 연간 3%의 인플레이션으로 설정되어 있다. 전체 그래프 토큰 발행량의 3%가 추가적으로 발행되면서 인덱서들에게 지급된다.

그런데, 만약 인덱서가 별로 사용량이 없는 서브그래프만 관리한다면 네트워크 전체적으로 큰 손실일 것이다. 중요한 서브그래프일수록 많은 인덱서가 붙어 데이터가 정확한지 증명을 해 줘야 하기 때문이다. 그렇기 때문에 이 인덱싱 보상은 서브그래프의 큐레이션 시그널(Curation signal)에 기반해 서브그래프마다 보상이 할당된다. 예를 들어, 서브그래프 A, B, C의 큐레이션 시그널이 각각 1, 2, 3이라고 하자. 그러면 인덱싱 보상은 각각의 서브그래프에 1 : 2 : 3의 비율로 분할되어 할당된다. 그 후, 각각의 서브그래프를 관리하는 인덱서들에게 분할 지급된다.

인덱서는 최대한의 보상을 받기 위해 행동할 것이고, 당연히 보상이 많은 서브그래프에 자신의 토큰을 할당할 것이다. 이 과정은 너무 많은 인덱서가 한 서브그래프에 모여서 수익성이 줄 때까지 계속될 것이고, 자연스럽게 중요한 서브그래프부터 덜 중요한 서브그래프 순으로 토큰이 할당될 것이다. 이를 통해 더 그래프는 서브그래프의 데이터 정확성을 컨트롤할 수 있다.

서브그래프 수수료(Query fee)는 사용자가 서브그래프를 사용하고 내는 그래프 토큰을 말한다. 더 그래프 위의 API를 사용하는 유저가 늘면 늘수록 이 수수료가 차지하는 비중은 굉장히 커질 것이다. 이 수수료는 모든 금액이 인덱서들에게 동일하게 지급되는 것이 아니라, 자신이 맡은 서브그래프가 받은 수수료에 비례해 지급된다.

<각각의 인덱서가 관리하는 서브그래프 수. 1개에서 30개 이상까지 다양하다>

3. Delegator(델리게이터, 위임자)

그래프 토큰은 많이 보유하고 있고, 생태계에 기여해 보상은 받고 싶지만 인덱서는 하기 어려운 참여자들이 있다. 인덱서를 하기 위해서는 그에 맞는 수준의 장비가 필요하고, 이를 계속해서 유지보수를 해 줘야 하기 때문이다. 이러한 참여자들은 델리게이터로써 자신의 그래프 토큰을 예치한 후, 특정 인덱서에게 위임할 수 있다. 즉, 자신의 그래프 토큰만큼의 권한을 빌려주는 것이다.

이것을 통해 델리게이터는 보상을 받을 수 있다. 이것은 델리게이터의 경제적인 목적에도 부합하고, 더 그래프 생태계 전체의 안정에도 도움이 된다. 델리게이터가 보상을 위해 그래프 토큰을 더 그래프 내에 예치하게 되면 그만큼 시중에 유통되는 물량이 적어져 생태계가 더욱 안정적으로 유지되기 때문이다.

델리게이터가 그래프 토큰을 예치할 때에는 deposit tax로 0.5%의 수수료를 내고 토큰 권한 위임을 한다. 이것이 있는 이유는 델리게이터가 자발적으로 더 그래프 생태계에 이익이 되는 선택을 하게 만들기 위해서이다.

만약, deposit tax가 없다면 어떻게 될까? 델리게이터는 아무 인덱서에게나 자신의 그래프 토큰을 맡길 것이다. 악의적인 행동을 하는 인덱서한테 토큰을 맡긴다 하더라도 자신에게 직접적으로 오는 피해는 없기 때문이다. 하지만 0.5%의 예치 수수료가 있다면 델리게이터는 인덱서를 선택할 때 신중하게 선택할 것이다. 만약 자신이 선택한 인덱서가 악의적인 인덱서라면 델리게이터는 추후에 인덱서를 새로 골라야 할 것이고, 그러면 0.5%의 수수료를 추가로 더 납부해야 한다. 0.5%의 수수료는 상당히 크다. 인덱서는 연 3%의 보상을 받게 되지만 델리게이터는 그 정도 수준의 보상을 받지 못한다. 0.5%의 수수료라는 것은 델리게이터의 예상 수익의 3~4개월 분이라는 것이다.

또한 델리게이터가 자신의 토큰 위임을 취소하고 싶으면 28일간의 기간이 걸린다. 그 동안은 토큰을 유동화시키지도 못하고, 수익을 내지도 못한다. 이는 델리게이터가 더 신중하게 인덱서를 선택하도록 유도한다.

게다가, 델리게이터는 인덱서의 인덱싱 보상만 나눠서 받는 것이 아니라, 서브그래프 수수료(Query fee)도 나눠서 받게 된다. 이 서브그래프 수수료는 인덱서가 어떤 서브그래프를 관리했는가에 따라 달라진다. 따라서, 델리게이터가 인덱서를 잘 고르면 더 많은 수익을 얻을 수 있다. 이러한 이유들로 인해 델리게이터는 자연스럽게 더 그래프 생태계에 도움이 되는 방향으로 인덱서를 선택하게 된다.

더 그래프는 인덱서가 델리게이터한테서 일정 수준 수수료를 받을 수 있게 한다. 인덱서는 델리게이터에게 그래프 토큰을 위임받기 전에, 어느 정도 수수료를 받을지 알린다. 델리게이터에게 가는 보상을 식으로 나타내면 다음과 같다.

<델리게이터 수수료 체계. 출처 : 더 그래프>

이 수수료 체계를 이해하기 위해서 아래의 예시를 보자.

델리게이터 보상을 계산하기 위해서는, 먼저 인덱서한테 가는 보상을 계산해야 한다.

예를 들어, 인덱서와 델리게이터가 각각 100만 개의 그래프 토큰을 가지고 있다고 가정하자. 그리고 노드 운영을 통해 나오는 보상이 그래프 토큰 1만 개라고 하자.

Reward cut이 100%라면 인덱서는 전체 보상 중 100%를 자신이 갖게 된다. 그래서 인덱서의 보상은 10000개, 델리게이터의 보상은 0이다.

Reward cut이 50%라면 인덱서는 전체 보상 중 50%를 자신이 갖게 된다. 그리고 델리게이터는 그 남은 양을 가지게 된다. 따라서, 인덱서의 보상은 10000 * 0.5 = 5000개, 델리게이터의 보상은 10000–5000 = 5000개가 된다.

그렇다면, 이제는 Reward cut은 같지만 인덱서와 델리게이터가 예치한 그래프 토큰 양이 다를 때를 가정해보자.

인덱서가 그래프 토큰을 10만 개 예치하고, 델리게이터가 100만 개를 위임했다고 하자. 그렇다면 전체 스테이킹은 110만 개고, 이에 따라 보상은 200만개 스테이킹 때보다 감소해 55000개가 나온다. 인덱서는 55000개 중 50%를 가지게 되니 27500개를 가져가고, 델리게이터는 나머지인 27500개를 가져가게 된다.

다른 케이스로 인덱서가 그래프 토큰을 200만개 예치하고, 델리게이터가 100만 개를 위임했다고 하자. 전체 스테이킹은 300만 개고, 보상은 15만 개가 나올 것이다. 이 중 인덱서는 50%인 75000개를 가져가고, 델리게이터는 나머지인 75000개를 가져간다.

즉, 인덱서가 얼마나 자신의 그래프 토큰을 예치하는가에 따라서 Reward cut이 동일하더라도 델리게이터의 수익이 크게 차이날 수 있다. 이 덕분에 더 그래프 생태계에서는 한 인덱서에게 델리게이터가 몰리지 않고 적절히 분배되어 있는 것을 확인할 수 있다.

<델리게이터들이 적절히 토큰을 분배하는 것을 확인할 수 있다. 출처 : reward.suntzu.me>

또한 더 그래프는 인덱서가 자신의 지분 없이 위임만 받는 것을 방지하기 위해 위임 용량(Delegation capacity)를 정해놓고 있다. 현재의 위임 비율은 16으로, 만약 인덱서가 1,000,000개의 그래프 토큰을 예치했다면 그 16배인 16,000,000개의 그래프 토큰까지만 위임받아 이용할 수 있다. 그 이상의 그래프 토큰은 위임받는다 하더라도 사용할 수 없다. 인덱서가 보다 많은 수익을 내기 위해서는 많은 그래프 토큰 위임을 받아야 하고, 이것은 인덱서의 추가적인 그래프 토큰 보유를 유도한다. 그리고 이를 통해 인덱서는 악의적인 행동을 더욱 할 수 없게 된다.

4. Curator(큐레이터)

큐레이터는 인기 있는 서프그래프를 인덱서에게 알려주는 역할을 한다. 선의로 알려주는 건 아니고, 경제적인 보상이 있다.

큐레이터는 여러 서브그래프들을 보다가, 유저들이 많이 쓸 것 같은 서브그래프인데 여전히 알려져 있지 않은 것을 발견하면 시그널(Signal)을 인덱서에게 보낸다. 이 시그널을 보내는 방법은 자신의 그래프 토큰을 그 서브그래프에 예치하는 것이다. 큐레이터는 서브그래프에 그래프 토큰을 예치했을 때 서브그래프에 대한 지분(Shares)을 받을 수 있다. 지분을 가지고 있다면, 그 비율에 따라 서브그래프에서 나오는 수수료의 일부를 받을 수 있다.

지분 가격은 항상 정해져 있는 것이 아니라 이미 발행된 지분 수에 따라 달라진다.

<발행된 지분에 따라 지불해야 하는 그래프 토큰 개수. 출처 : 더 그래프>

아무도 지분을 가지고 있지 않을 때엔 1주당 0원이다. 하지만, 현재 이미 2000주가 발행되었다면, 2500 그래프 토큰을 내야 1주를 살 수 있다 .

< 발행된 지분에 따라 서브그래프에 예치된 총 그래프 토큰 개수. 출처 : 더 그래프>

예시를 하나 더 들어보자. 위 그래프는 만약 아무도 이 서브그래프의 지분을 가지고 있지 않은데 내가 2,000개의 지분을 가지기 위해서는 120,000개의 그래프 토큰을 예치하면 된다.

그런데, 이미 2,000개의 지분이 발행된 상태에서 2,000개의 지분을 가지고 싶다면? 총 4,000개 지분이 발행되는데 480,000개의 그래프 토큰이 필요하므로 앞서 120,000개를 제외한 360,000개를 예치해야 한다.

이런 식으로, 이미 다른 큐레이터들이 지분을 가지고 있을 때에는 같은 그래프 토큰을 예치하더라도 더 적은 지분을 받게 된다. 즉, 비싸게 주고 지분을 사야 하는 것이다.

이 지분은 언제든지 네트워크에서 소각한 후, 그 양만큼의 그래프 토큰을 받을 수 있다. 지분을 소각하게 되면 그만큼 서브그래프 지분의 가격은 내려가게 된다.

모든 큐레이터들은 수익을 내고 싶어하고, 수익을 내는 길은 저평가된 서브그래프를 찾아서 미리 싸게 지분을 가져오는 것이다. 따라서 큐레이터들을 열심히 서브그래프들을 리서치하게 되고 저평가된 서브그래프에 토큰을 예치하게 된다. 이는 결국 많이 사용되는 서브그래프일수록 큐레이터들이 더 많이 서브그래프에 그래프 토큰을 예치하는 결과를 가져온다. 앞서 말했듯이 그래프 토큰을 서브그래프에 예치하게 되면 이것이 시그널로서 인덱서들에게 전달이 되고, 인덱서는 이에 따라 자신이 관리하는 서브그래프를 조절하는 선순환 구조가 만들어진다.

큐레이터는 단기 시세차익을 얻기 위해 그래프토큰을 예치해서는 안된다. 그래서 더 그래프에선 큐레이션을 할 때마다 2.5%의 tax를 부과한다. 즉, 한 번 선택할 때 신중하게 선택하고, 장기적으로 서브그래프에 투자하라는 것이다.

--

--

Kevin Lee
bsp-asset

Prev. a41 Researcher | Korea Univ. | Blockchain Valley