EOS.IO 소프트웨어를 사용할 때 드는 블록체인의 저장비용에 대해서 (번역: Storage Costs on Blockchains using EOS.IO Software)
인텔의 3D XPoint wafer
EOS.IO 기술 백서에서는 수정되지 않은 소프트웨어를 채택한 블록체인의 기능들에 대해서 설명했습니다. 이 백서에서 저희는 1% 토큰을 소유한 사람에게 1%의 블록체인 저장공간을 할당해 주는 자원 분배 방식에 대해 설명 했습니다. 예를들어, 만약 10억개의 토큰이 있고 1 테라바이트 (TB)의 저장공간이 있다면 1킬로바이트 (1,024바이츠)의 저장공간은 약 1토큰의 값어치를 하게 됩니다. 그렇다면 약 30억달러의 마켓캡 (시총)은 1킬로바이트당 약 3달러의 값어치가 생기게 됩니다. 만약 EOS 토큰의 마켓캡이 이더리움과 동등해진다면 1킬로바이트당 30달러, 또는 1바이트 (byte) 당 약 3센트의 값어치가 될 수 있습니다.
또한 EOS.IO 소프트웨어를 통해 생성된 모든 계정들은 사용권한, 잔액확인 및 다른 부수적인 오버헤드를 파악하기 위해 약 1,000 바이트 (byte) 의 데이터가 필요하게 됩니다. 즉, 한개의 계정당 약 30달러의 비용이 든다는 말인데 이 가격은 너무 비싼 가격입니다.
성능 향상을 통한 가격 인하 (Increasing Capacity to Reduce Costs)
토큰 가격이 높아졌을 때 가격을 낮추기 위해서는 용량을 높여야 합니다. 한 계좌당의 비용을 약 0.01달러로 낮추기 위해서는 3000 TB 의 저장소가 필요하게 됩니다. SSD를 사용할 수 있다면 이정도의 저장공간은 약 1백만달러 정도의 비용이 들게 됩니다. 만약 EOS.IO 기반의 블록체인이 약 300억달러 가치에 다다르게 된다면, 연간 15억 달러를 할당할 수 있는 블록체인에 대한 1백만달러의 비용은 부담스럽지 않을 수도 있습니다. (5% 인플레이션 고려)
안타깝게도 SSD 는 RAM 보다 약 2500배 느릴뿐만 아니라 운영 시스템을 SSD 로 “전환”하게 되면 Steem 이 체인베이스로 업그레이드 했을때 많은 사람들이 봤듯이 심각한 성능 저하가 일어날 수 있습니다.
이것은 3000 TB 어치의 Ram-스피드 저장소가 필요하다는 상황입니다. 매우 특이한 일은 아닙니다. 구글은 모든 데이터를 RAM으로 가지고 있으니까요. 주목할 것은 새로운 플랫폼을 위해 그렇게 많은 RAM이 필요하다는 사실입니다.
새로운 저장소 기술들 (New Storage Technologies)
인텔에서는 최근들어 새로나온 3D XPoint 기술에 의 의존한 Optane SSD를 배송하기 시작했습니다. 기존의 RAM보다 조금 느리고 기존의 SSDs 보다는 현저히 빠른 이 신규 SSD는 RAM으로 설정하여 사용될 수 있는 최초의 SSD입니다. 인텔에서는 1.5TB의 저장공간을 내장한 이 드라이브들을 올해 말부터 출시할 예정입니다.
저희는 이러한 새로운 기술들로 인해 고성능 메모리의 가격은 급격하게 낮아지고 블록 생산자들은 메모리의 스케일업을 통해 가격저하를 시킬 수 있을 거라고 생각하고 있습니다. 토큰의 시장 가치가 높아질수록 블록 생산자들은 더 많은 메모리를 가질 수 있을 것입니다.
이 도전이 어려운 이유 (The True Nature of the Challenge)
EOS.IO 소프트웨어를 통해 RAM 저장공간을 토큰화시키는것은 저장공간의 가치 외에도 금전적 가치를 얻게 합니다. 이렇게 금전적 가치가 더해진 저장공간은, 금전적가치가 더해지지 않은 저장공간에 비해 사용료가 비싸집니다. 금이 상용화되지 않은 이유가 상용화될 수 있는 가치보다 금전적 가치가 더 비싸기 때문인것과 같은 이치입니다. EOS.IO소프트웨어를 사용하여 만들어진 토큰은 POP (proof-of-performance) 방식을 요구함으로써 RAM 저장공간을 금전화시킬 수 있습니다.
은행에서 금을 보유할 때를 보면 거의 저축의 형태로 가만히 냅두고 절대 사용하지 않습니다. 마찬가지로 블록 생산자들도 실제로는 1000분의 1인 3TB의 저장공간만 있음에도 불구하고 “3000TB를 수용할 수 있는” 저장공간이 있다고 광고할 수 있습니다. 이러한 모델을 도용하면 저장비용은 “금을 기준으로 한 신용”의 가치가 지급준비제도 방식에 속해있는것과 같은 방식으로 축소될 것입니다. 이 모델은 뱅크런 (저장소 대량출금사태, run on the bank) 현상과 같이 어느날 누군가가 갑자기 통화의 1%를 구매하기로 결정하고 실제로는 3TB의 저장공간만이 있는 곳에서 30TB의 데이터를 저장하려고 할 때 문제가 발생합니다.
저장소 대량출금사태 (뱅크런) 방지방법 (Preventing a Run on the Memory Bank)
베를린, Bankenkrach
대다수의 사람들이 자신이 부여받은 저장공간을 실제로 사용하려고 하지 않는 한 네트워크는 1토큰당 “저렴한 저장소” 로 운영될 수 있습니다. 제공가능한 저장공간이 줄어들수록 가격은 상승할 것입니다. 누군가가 사용가능한 저장소를 100% 사용하려고 시도할 때마다 100%의 유동화된 토큰을 지불해야 할 것입니다. 하지만 만약 누군가가 사용가능한 저장소의 1%를 사용하려고 한다면 그 사람은 유동화된 토큰의 0.01%만을 지불하면 됩니다. 정확한 수치를 계산하기 위해서는 약간의 모델링과 어림짐작이 필요하겠지만 1 바이트의 저장소의 최초 가격을 전체 저장소를 사용하려고 할 때의 가격보다 1000배 더 저렴하게 만들 수 있을 것입니다.
간단하게 생각하면 최초 비율을 1000배율로 만들고 실제 메모리가 사용되감에 따라 비율적으로 1배까지 가도록 설계하는 방법도 있습니다. 예를들어 만약 당신이 1TB 의 실제 RAM이 있다면 1000TB어치의 가상 RAM (1000배) 을 가지고 시작하게 되는 것입니다. 당신이 가지고 있는 용량 중 100GB (10%) 를 소비하게 된다면 당신의 저장비율은 100배까지로 떨어지게 되어 100TB에 해당하는 가상 RAM 공간으로 바뀌게 됩니다. 만약 당신이 500GB (50%) 의 용량을 사용하게 된다면 저장비율은 20배까지로 떨어지게 되어 20TB 에 해당하는 가상 RAM 을 가지게 됩니다. 가상 RAM 이 떨어진다면, 한개의 토큰당의 가상RAM도 자동으로 떨어지게 되어 각 저장소의 가격을 높이게 되는 것입니다.
변할 수 있는 가격의 의미 (Implications of Variable Pricing)
시장은 수요와 공급이 끊임없이 변화하는 시장가격에의해 균형이 잡힐 때까지 자원을 소비할 것입니다. 만약 최초 저장소의 가격이 너무 저렴하다면, 그 가격이 귀중한 데이터만을 저장할 때까지 급격하게 소비될 것입니다. 이렇게 된다면 블록 생산자들은 생산능력을 올리던지 아니면 가격을 낮추기 위해서 저장 비율을 최대화 시키게 됩니다. 토큰 소지자들은 최소한의 비용으로 가장 높은 생산능력을 줄 수 있는 생산자들을 고르게 될 것이고 토큰의 가치가 오르게 된다면 생산자들은 추가로 생산능력을 줄 수 있게 될 것입니다.
가변가격의 또다른 요소는 메모리가 사용되고 있지 않을때 메모리를 방출하게 하는 경제적 동기부여가 있다는 점입니다. 토큰의 가치가 오를수록 그 토큰들을 사용하여 저장공간을 확보하려는 기회비용도 오르게 됩니다. 똑똑한 개발자들은 메모리 사용을 최소화할 수 있게 애플리케이션을 디자인 할 것이고, 메모리를 다시 확보하기 위해서 최대한의 기회를 엿보게 될 것입니다.
메모리 스쿼팅 공격 (Memory Squatting Attack)
이 알고리즘의 부작용은 많은 메모리를 소비하려고하는 사람이 처음으로 메모리를 소비하는데 경제적인 동기부여를 준다는데 있습니다. 소비를 해버리고 나면 계약서상 합당하기만 하다면 다른 용도로 메모리를 재사용할 수 있게 됩니다. 그런 사람들은 자기가 돈이 필요할 때 메모리를 방출할 수 있습니다. 메모리를 “처음”으로 확보하게 되면 추측수요와 실제수요간의 균형을 이룰 수 있는 가격으로 가격이 금방 올라가게 됩니다.
다행히도 저장된 메모리는 “전송불가” 상태이고 초기 메모리 구입비용은 실제로 RAM을 구입하는 것보다 약 100배가량 더 비싸기 때문에 이러한 공격이 많이 완화되는 편입니다. 네트워크에서 사용되는 각 바이트 (byte)의 메모리들은 100개가 넘는 노드 (nodes) 와 종종 여러개의 부분 노드들에 복사됩니다. 그러기 때문에 100개의 노드에 분산된 RAM 카피들은 1 바이트 (byte) 기준으로 중앙집중화된RAM보다 항상 100배 더 비싸게 됩니다. 블록 생산자들은 바이트 당 비용이 네트워크에서 사용되는 실제 메모리의 비용보다 낮아지지 않도록 저장 비율을 유지할 수 있도록 주의해야 합니다.
결론 (Summary)
시장은 결국 너무 당연하고 자연스럽게 EOS.IO 소프트웨어를 사용하여 만들어진 토큰들의 자본적 속성을 받아들일 것입니다. 실제 애플리케이션의 개발비용을 실용적으로 유지하기 위하여 한 유닛의 메모리를 더 소비하는 가격을 결정하는데 있어, 가격 변동성을 적용하는게 꼭 필요해질 것입니다. 이러한 방식은 새롭게 나오는 메모리 기술들과 더붙어 EOS.IO 를 기반으로 한 블록체인에 데이터를 저장하는 가격을 분산된 애플리케이션 개발자들에게 합리적으로 제공할 것입니다.
EOS.io Korea는 혁신적인 플랫폼 블록체인인 EOS에 대한 소식과 정보들을 한국의 개발자/투자자 커뮤니티에 소개하고 있습니다. EOS에 관심 많은 개발자와 투자자 분들의 많은 참여 부탁드립니다.
https://www.facebook.com/eos.io.korea/
https://steemit.com/@eos.io-korea/
https://twitter.com/eosio_korea
https://t.me/EOSIOKorea
https://open.kakao.com/o/g03w1kx
(텔레그램 채널에는 EOS 소프트웨어 개발사인 block.one 팀이 직접 참여하고 있습니다)