[스팀잇 이야기] HF20의 주인공 리소스크레딧(RC)은 무엇일까?
너무나도 예쁜 대문을 선물해주신 @designkoi님께 감사드립니다.
안녕하세요, 디온(@donekim)입니다. 최근에 올라오는 포스팅들을 보니 HF20 이후에 가장 화두가 되고 있는 것은 역시나 리소스 크레딧(RC; Resource Credits)인 것 같습니다. 아직까지 저도 리소스 크레딧의 구체적인 로직 등에 대해서 자세히 이해하지는 못했지만, @steemitblog에서 설명한 내용을 기준으로 리소스 크레딧이 무엇이며 왜 도입하게 되었는지에 대해서 간략하게 살펴보도록 하겠습니다.
원문 출처 : Blockchain Update 2: HF20 Progress & Bandwidth Changes
3개월 전 @steemitblog의 상기 포스팅 내용에 따르면 이번 HF20에서 가장 중요한 변경사항 중 하나는 "스팀 블록체인의 대역폭 공식(Bandwidth Formula)이 변경"된다는 것이었습니다. 아주 단순하게 설명하자면 "기존에 우리가 알고 있었던 대역폭(Bandwidth) 시스템이 RC라고 불리는 리소스 크레딧(Resource Credits) 시스템으로 바뀌게 되는 것"입니다.
눈치가 빠르신 분들은 이미 보셨겠지만, Steemd에서 계정 정보를 확인해보면 기존에 Voting Power 게이지바 하단에 있었던 Bandwidth가 Resource Credits으로 변경되고, 그 아래에 Resource Credits과 Voting Manabar라는 메뉴가 새롭게 추가된 것을 확인할 수 있습니다.
리소스 크레딧이 무엇인지에 대해서 살펴보기 전에 우리가 먼저 알아야 할 것은 바로 스팀 블록체인의 가격 전략(Pricing Strategy) 입니다. 왜냐하면 이 가격 전략은 DPoS합의 알고리즘을 채택하고 있는 스팀의 특성과 밀접한 관련성을 가지며 리소스 크레딧을 도입할 수 밖에 없는 이유이기 때문입니다.
이미지 출처 : 위키피디아
스팀 블록체인은 현존하는 블록체인들 중에서 Freemium모델로 운영되고 있는 소수의 블록체인 중 하나입니다. 여기서 Freemium은 프리(Free)와 프리미엄(Premium)의 합성어로 기본 서비스는 무료로 이용할 수 있도록 하고, 부가서비스나 고급서비스는 유료화하는 가격전략(Pricing Strategy)을 말합니다.
예를 들어, 이더리움의 경우에는 이더리움 블록체인을 이용하기 위한 사용자가 트랜잭션을 발생시킬 때마다 GAS수수료를 지불해야만 하지만, 스팀 블록체인의 경우에는 계정 소유자가 충분한 양의 스팀(Steem)을 보유하고 있는 경우 트랜잭션을 발생시키기 위해 별도의 수수료를 지불할 필요 없이 무료로 스팀 블록체인을 이용할 수 있는 것입니다.
프리미엄(Freemium)모델로 운영되지 않는 이더리움 블록체인과는 달리 스팀 블록체인에서는 블록체인 리소스를 사용자들에게 할당하는 방식의 중요성이 굉장히 높습니다. 현재 PoW합의 알고리즘을 채택하고 있는 이더리움에서는 모든 트랜잭션에 사용자가 수수료를 지불하면 되기 때문에 급하게 송금하고 싶은 사용자는 더 많은 수수료를 지불하기만 하면 됩니다. 하지만 스팀의 경우에는 트랜잭션당 수수료를 지불할 필요가 없는 대신에 일정 수준 이상의 스팀을 스테이킹 시켜놓아야 합니다.
여기서 스테이킹(Staking)은 스팀(Steem)을 스팀파워(SP; Steem Power)로 변환시켜 놓는 것을 의미합니다.
이더리움이나 스팀 블록체인을 원룸으로 비유했을 때, 이더리움은 원룸에서 살기 위한(트랜잭션 발생) 비용을 월세로 지불하는 개념이라면, 스팀은 원룸에서 살기 위한(트랜잭션 발생) 비용을 전세로 지불하는 개념인 것입니다. 난 이만큼의 스팀을 구매해서 스팀 블록체인에 보증금으로 지불(SP) 했으므로 일정 수준 이상의 트랜잭션에 대한 권리를 가지게 되는 것이라고 생각하시면 됩니다.
그동안에는 스팀이라는 원룸이 있는 동네가 그다지 핫한 플레이스가 아니라서 낮은 보증금(SP)으로도 넓은 방을 얻어서 넉넉한 대역폭을 사용할 수 있었으나, 이제는 상황이 조금 달라지게 되었습니다. 앞으로 스팀 커뮤니티스, SMTs 등 핫한 랜드마크가 건설이 될 예정이라 우리들이 거주하고 있는 스팀 원룸도 가격이 엄청나게 뛸 수 있기 때문이죠.
그동안 우리는 스팀 블록체인 네트워크를 이용할 수 있는 권리(Bandwidth)보다는 보팅파워(Voting Power)에만 집중하고 있었는데, 이제는 스팀이 활동량을 제대로 계산하겠다고 나섰습니다. 예전에는 300SP가 있든 1,000SP가 있든 20,000SP가 있든 사용자가 체감하는 것은 보팅파워일 뿐, 다른 무언가에서 체감하는 것은 없었습니다. 스팀 블록체인에서 대충 300SP만 가지고 있어도 여러 개의 포스팅을 쓰고, 스팀 코인 전송하고, 저자 보상을 클레임하고, 댓글을 달고, 리스팀하는 모든 활동이 충분하게끔 네트워크 이용권을 마구 뿌려줬기 때문입니다. 하지만 이제부터 300SP는 정확히 300SP만큼의 활동을 해야하고, 20,000SP는 정확히 20,000SP만큼의 활동을 해야합니다.
방금 위에서 잠깐 언급했지만, 이번 HF20은 앞으로 등장한 스팀 커뮤니티스, SMTs 등의 도입을 준비하기 위한 전초전으로 보입니다. 사실 현재 스팀 블록체인은 네트워크 이용권을 마구 뿌렸던 것을 다시 자세히 계산해야 할 만큼 북적되는 상황은 아닙니다. 그럼에도 불구하고 네트워크 이용권리를 자세히 계산하여 지급하겠다는 것은 다양한 프로젝트들이 스팀 블록체인에 등장하면서 포스팅, 댓글, 리스팀, SMT 토큰 생성 및 전송, 보상 클레임 등등 다양한 트랜잭션들이 발생한다면 각 계정들이 자신들이 스테이킹하고 있는 만큼의 권리를 주장하여야만 프리미엄 블록체인(Freemium Blockchain)으로서의 스팀이 효율적으로 작동할 수 있기 때문입니다.
요약하자면 스팀 블록체인이 점점 더 많은 사용자들이 이용할 수 있도록 확장시키면서 모든 사용자에게 블록체인 리소스 사용을 할당하는데 사용하는 대역폭 계산방법이 점차 중요한 이슈가 될 것이기에, 기존의 단순한 방식의 대역폭(Bandwidth)에서 보다 업그레이된 리소스크레딧 도입을 통해 이에 대한 대비책을 마련한 것이라고 생각하시면 되겠습니다.
리소스 크레딧이라는 시스템을 도입하는 스팀의 설계 목표는 다음과 같이 3가지로 요약할 수 있습니다. ①블록체인 리소스의 효율적인 할당, ②정확한 거래비용의 측정, ③예측가능한 UX
① 블록체인 리소스의 효율적인 할당 : 블록체인 자원을 효율적으로 할당하는 것은 블록체인을 스케일링하는 중요한 요소입니다. 스팸 활동이나 악의를 가지고 있는 특정 사용자의 과도한 리소스 소비를 방지하고, 선의를 가지고 활동을 하는 사용자들의 일상을 유지하기 위해서는 리소스의 효율적인 할당이 매우 중요합니다.
② 정확한 거래비용의 측정 : 현재의 대역폭(Bandwidth) 알고리즘은 기본적으로 모든 리소스가 "트랜잭션 크기"라는 하나의 리소스 유형과 상관관계를 가진다고 가정을 하고 있습니다. 그러나 리소스 크레딧에서는 "블록체인 히스토리 사이즈, 리인덱싱 타임, RAM사용량, 네트워크 대역폭" 등 다양한 요소들과의 상관관계를 고려하게 됩니다. (복잡하지만 정교한 측정방법을 도입한다는 의미 정도로 이해하면 될 것 같습니다)
③ 예측가능한 사용자경험(UX) : 현재의 대역폭(Bandwidth) 시스템 하에서 사용자들은 그들이 보유하고 있는 스팀파워(SP)에 기초하여 특정한 바이트(bytes)를 지정받게 됩니다. 말 그대로 대역폭이 스팀파워에 일정하게 고정이 되어 있는 형태가 되는 것입니다. 그러나 사실 내가 보유하고 있는 스팀파워에 비례하여 받아야 하는 대역폭은 네트워크의 활동 수준에 따라 시시각각 유동적으로 변하기 마련입니다. 예를 들어 여자친구와 20,000원을 내고 식사를 할 때 식당이 한가하다면 둘이서 6인석 자리에 앉아서 여유롭게 식사를 해도 되지만, 식당이 엄청나게 붐비는 경우에는 같은 20,000원을 내고 원하든 원하지 않든 비좁은 2인석에서 식사를 해야하는 상황이 발생할 수 있는 것과 동일합니다. 리소스 크레딧을 통해 개발자들은 스팀 블록체인의 네트워크가 얼마나 붐비는지를 예측하고 이에 따라 필요한 스팀파워를 동적으로 계산하는 것이 가능해집니다.
이미지 출처 : Blockchain Update 4: Resource Credit Implementation Details
리소스크레딧은 기존 사용자들에게는 굉장히 복잡하게 느껴질 수 밖에 없는 방식입니다. 어찌보면 보다 디테일하게 블록체인 리소스를 배분하는 개념이기 때문입니다. (계산방법까지 우리들이 자세히 알아야 할 필요는 없지만, 이제부터는 보팅파워뿐 아니라 리소스에 대해서도 신경을 쓸 필요는 생겼네요 ㅎㅎㅎ ㅠㅠ)
지금까지 어느 정도 이상의 스팀파워를 보유하고 있었던 분들의 대부분이 보팅파워에만 신경을 썼지, 대역폭(Bandwidth)에 신경을 쓰는 경우는 거의 없으셨을 것 같은데, 어찌보면 이와 같은 기존의 상황은 그만큼 저렴한 가격으로 대역폭을 할당받고 있었던 것이기도 하고, 스팀 블록체인 자원이 효율적으로 배분되지 않고 있었음을 의미하기도 합니다.
이제는 블록체인의 크기, 상태 크기, 계산 부하 등 블록체인 네트워크 상태에 따라 리소스크레딧이 변화무쌍하게 움직이지 않을까 싶습니다. 특히나 스팀 블록체인을 기반으로 많은 댑(DApp)들이 올라오기 시작하고 이 댑들을 사용하는 사람들이 많아진다면 그 출렁임은 더욱 심해질지도 모릅니다.
개인적으로, 출렁임이 심해진다는 것은 스팀 블록체인의 생태계에서 다양한 트랜잭션들이 활발하게 일어난다는 뜻이기 때문에 얼마든지 환영합니다!! :D 다만, 트랜잭션 과부하가 일어나며 스팀 블록체인이 붐비는 것과 관계없이 쾌적하게 스팀잇 포스팅을 하려면 스파업을 더 해야겠네요. ㅠㅠ
H O P E F O R T H E B E S T ,
P L A N F O R T H E W O R S T
https://steemit.com/@dONekim
좋은 글이네요!
@purplusnow님 말씀 감사해요!
정독해도 모르겠네요.
다시 읽어봐야겠어요
제가 글을 잘 못썼나봅니다 ㅠㅠㅠ @wonsama님의 포스팅을 참고해보시는 것도 좋을 것 같아요 :)
원사마님에 이은
자세한 설명 고맙습니다.
아름다운 철학자님 들러주셔서 감사합니다 :)
설명감사해요 디온님^^
게이지가 바닥인관계로 보팅은 나중에....^^
말씀 감사합니다 마르쓰님 ^^
공정하게만 계산되다면야, 스팸성 댓글도 줄어들고 이점이 있다고 생각되네요. 주어진 RC로 상식적인 선에서 좀 더 생산적인 활동을 하라고 유도하는 듯 하네요.
각 활동별로 리소스를 어떻게 분배해야만 신규 가입자들의 활동에 제약이 생기지는 않으면서도 스팸활동을 줄일 수 있을지 그 메커니즘에 대한 스팀잇의 치열한 고민이 필요하지 않을까 싶습니다 ㅎㅎㅎ
스테이킹(Staking)의 의미를 몰랐었는데 '스팀(Steem)을 스팀파워(SP; Steem Power)로 변환시켜 놓는 것을 의미'한다는 것을 여기서 알게 되었네요. 고마워요. ^-^
파워업, 스테이킹, 베스팅 등 스팀을 스팀파워로 변환하는 것을 표현하는 단어가 다양하다 보니 가끔 혼란 스러울 수가 있는 것 같습니다 ㅎㅎㅎ 감사합니다 :)
댓글 고마워요.
못보고 지나칠뻔했군요
@nhj12311님 찾아주셔서 감사합니다 ^^
블록체인에 과부하를 주는 쓸데없는 활동을 걸러내고, 자원을 효율적으로 사용하는데 필요해 보여요. HF19때처럼 넉넉하게 주면 스팸 활동이 기승을 부리겠죠. 균형을 잡기 어려운 것 같아요.
스패머들의 활동은 제약하되, 가벼운 마음으로 사람들이 쉽게 진입해서 활동할 수 있는 SNS 플랫폼이 되어야 한다는 건 참 어려운 숙제기는 한 것 같습니다. ㅠㅠ