백만 명이 사용할 수 있는 이더리움 DApp: 애플리케이션별 사이드체인에 대한 소개

이 글은 Georgios Konstantopoulos가 쓴 Million-User DApps on Ethereum: An Introduction to Application-Specific Sidechains를 번역한 글입니다. 오역이 있으면 Private Note 기능으로 알려주세요!

최초로 인기를 끌었던 이더리움 DApp(이전 포스팅에서 분석설명했듯이 해당 DApp의 탈중앙화 여부는 의심스럽지만)은 이더리움 네트워크를 완전히 마비시켰습니다.

보류 중인 트랜잭션 수가 사상 최고에 달했고, 트랜잭션 수수료도 터무니없이 높아져서 한 사용자는(실수였지만) 수수료로 11,000달러를 내기도 했죠.

12월 5일부터 보류되어 있는 이더리움 트랜잭션 수 (최고치 >30.000)
컨펌을 받으려면 40Gwei 이상의 가스를 지불해야 합니다.

트랜잭션 수수료와 누적 트랜잭션 수가 증가하면서 확장 솔루션에 대한 필요성이 나날이 커지고 있습니다.

Devcon3에서는 전부는 아니지만, 대부분의 확장(scaling) 이슈를 해결할 수 있는 잠재적인 솔루션에 대해 집중 조명했습니다. 그러나 이러한 솔루션들(uRaiden은 제외하고)은 현재 연구 단계에 머물러 있으며, 메인 네트워크로 활용하기에는 아직 부족하죠. 일부는 블록 가스 제한치를 높이는 것(비트코인에서 블록 크기를 늘리는 것과 유사하게)을 제안했으나, 그것 역시 나름의 문제가 존재합니다.

한편, 이더리움 네트워크를 완전히 뒤엎지 않고도 현재 탈중앙화 애플리케이션이 가진 문제를 해결하기 위해, 많은 사람들이 당장 적용할 수 있는 확장 솔루션을 필요로 합니다. 크립토키티와 같이 사소한 것이 이더리움을 사용할 수 없게 만든다면, 수백만 사용자가 있는 스타크래프트의 규모에서는 어떻게 감당할까요?

“여러분은 스타크래프트를 블록체인에서 실행할 수 있습니다. 이런 건 실제로 가능한 것들이죠. 높은 수준의 보안과 확장성은 모든 다양한 다른 것들이 이를 기반으로 만들어질 수 있도록 합니다. 이더리움은 너무 많은 특징을 가지지 않은 안전한 기본 계층입니다.” — Vitalik Buterin

이 글을 통해 애플리케이션별 사이드체인(Application-specific sidechain)을 사용함으로써 어떻게 이더리움에서 확장(scaling)이 가능해지는지 설명하려 합니다. 사이드체인을 사용하면 더 맞춤화된 “규칙들(ruleset)”을 적용할 수 있고, 동시에 이더리움 메인체인의 안전성을 유지할 수 있지요.

사이드체인을 통한 확장

사이드체인이란 무엇인가?

“사이드체인”이라는 용어는 2014년경 Adam Back 등이 저술한 “고정된 사이드체인으로 블록체인 혁신 구현(Enabling Blockchain Innovations with Pegged Sidechains)” 논문에서 처음 언급되었습니다. 이 논문에서 “양방향 고정 사이드체인(two-way pegged sidechains)”에 대해 설명했는데, 이는 이전에 여러분이 소유하고 있던 코인 일부를 “잠금 처리”했다는 사실을 증명하여 다른 코인들을 사이드체인 내에서 이동할 수 있도록 하는 메커니즘입니다.

여기서 오해를 하나 풀어보도록 하죠.

사이드체인은 규모를 늘릴 수 있으나 이것이 확장성을 의미하지는 않습니다. 사이드체인 자체는 확장성을 제공하기보다는 블록 크기를 늘려서 규모를 늘립니다. 사이드체인은 확장성이 더 좋을 수도 있는, 다른 기술에 기반한 네트워크를 구성할 수 있도록 실험을 할 수 있게 해준다는 것에 의미가 있습니다.

사이드체인은 혁신을 가능케 한다.

사이드체인은 맞춤형 “규칙들”로 정의되며, 또 다른 체인이 발생시키는 연산 부담을 줄이는 데 사용될 수 있습니다. 개별 사이드체인은 메인 체인의 여러 규칙 집합을 따를 수 있는데, 이는 최고 수준의 보안이 필요한 문제에 대해서는 메인 체인에 의존하면서도 매우 빠른 속도나 많은 연산이 필요한 애플리케이션에 최적화될 수 있음을 의미합니다.

출처: https://blockgeeks.com/guides/blockchain-wiki/

애플리케이션별 사이드체인(Application-Specific Sidechains)

사이드체인을 정의하는 규칙을 통해 개인정보 보호 기능을 추가하거나, 정보 처리량을 늘리기 위해 보안과 탈중심화 정도를 조절할 수도 있습니다. 이 부분에서 실험해봐야 할 부분이 많고, 개별 애플리케이션의 요구사항에 기반하여 최적의 성능을 낼 수 있도록 균형을 맞춰야 하지요.

또한 데이터가 중요한 애플리케이션의 경우, 금융 애플리케이션과는 가치 구조가 다릅니다. 악의적 공격자에게 금융 블록체인은 수억 달러를 들여 51% 공격을 하고 지불 거래를 되돌릴 만한 가치가 있겠지만, 마이크로블로깅 플랫폼에서 트윗 하나를 되돌리기 위해 그런 돈을 들이는 것은 말이 되지 않겠죠? 이런 이유로로, 애플리케이션은 보다 유연한 위협 모델을 선정하여 성능을 최적화할 필요가 있습니다.

검열이 불가하고 , 투명하며, 높은 성능을 제공하는 정지하지 않는 애플리케이션에 대한 수요가 크다.

이를 염두에 둘 때, 블록체인 상에서 운영되는 트위터 스타일의 탈중앙화 애플리케이션에서 보안 수준을 조절하여, 메인 체인에 “체크 포인트”를 전달하고 데이터의 최종 상태를 알리면서 처리량을 늘릴 수 있습니다.

지금까지 DApp을 확장할 수 있는 방법에 대해 알아보았습니다. 그렇다면 잠재적으로 느슨한 보안 모델로 인해 어떤 한 개체가 너무 큰 힘을 갖게 되어 사이드체인을 장악할 수 있을 정도가 되면 어떻게 될까요?

하드 포크를 통한 독립성 획득

서브레딧(subreddit)과 같은 중앙화된 커뮤니티에서는, 가끔 악성 운영자가 등장하여 자신의 기준에 따라 메시지를 검열하고 결국에는 해당 커뮤니티를 산산조각 내버리곤 합니다.

월드 오브 워크래프트와 같은 멀티플레이어 게임에서는, 가끔 커뮤니티가 원하지 않는 대량의 변화를 만들곤 하는데, 유저들은 이를 거부할 수도 없죠 — 그저 받아들이거나 게임을 그만둘 수밖에 없습니다. 심지어 비탈릭 부테린조차 이에 대해 진저리를 쳤지요.

저는 2007년부터 2010년까지 월드 오브 워크래프트를 신나게 플레이 했습니다. 하지만 어느 날 블리자드 사가 제가 아끼는 워록의 사이폰 라이프 주문에서 데미지 옵션을 없애버렸어요. 이 일로 인해서 저는 울다가 잠들었습니다. 그 날, 전 중앙화된 서비스가 어떤 공포를 몰고 올 수 있는지 깨달았죠. 얼마 지나지 않아 저는 게임을 접었습니다.”

조직화된 커뮤니티들은 그들이 불공정하다고 생각하는 상황에서 벗어나 그들 모두가 동의하는 대안을 선택할 수 있어야 한다.

이를 위한 핵심이 바로 사이드체인 하드 포크입니다.

최대한 간결히 말하자면, 포크란 프로토콜 업그레이드 메커니즘입니다. 비탈릭의 블로그에 종류별 포크에 대한 비교가 잘 제시되어 있지요..

종류별 포크 밴 다이어그램. 출처: vitalik.ca/general/2017/03/14/forks_and_markets.html

하드 포크는 이전 버전의 블록체인에서 영구적으로 벗어나는 것입니다. 이전 버전을 실행하는 노드는 최신 버전에서 더 이상 받아들여지지 않지요. ¹

그런 방식으로 어떻게 독립성을 얻는가?

커뮤니티의 합의와 반대되는 일이 일어나는 경우, 커뮤니티는 그와 관련한 분쟁이 발생하기 전에 갈라져 나와 사이드체인의 상태를 택합니다.

커뮤니티가 원하지 않는 변화 제안은 무시될 수 있고, 커뮤니티는 기존 체인을 계속 유지할 수 있습니다.

이 경우 많은 의문점이 생길 수 있겠죠. 게임의 예를 들면:

  1. 주도적 역할을 하는 “악의적” 개발자 대부분이 기존 체인에 머물러 있기로 작정하면 어떨까요?
  2. 새로운 체인은 개발이 정체될까요? 아니면 개발자들이 타협하고 적용할까요?

모든 의문 사항에 대해서 답을 가지고 있지는 않으나, 자유 시장이 이러한 사항에 대해 대처할 것이며, 자율 규제 애플리케이션이 만들어짐에 따라서 최적의 해결책들이 나타날 것이라 믿습니다.

적어도 이 경우엔 커뮤니티가 선택권을 갖지요.

Loom 네트워크는 커뮤니티가 그들의 소프트웨어를 사이드체인에서 실행할 수 있는 플랫폼이 되고자 합니다. 플랫폼 상에서 커뮤니티가 확정적인 권리를 가지는, 공정하고 투명할 뿐만 아니라 보안 수준을 필요에 따라 조절할 수 있는 플랫폼이 되고자 하는 것입니다.

유저가 자신만의 노드를 운영하고 네트워크를 안전하게 할 수 있는 블록체인 상에서 커뮤니티가 구축될 수 있을 겁니다. 그러한 커뮤니티에는 스팀잇, 서브레딧, 포럼, 페이스북 그룹, 스택오버플로우 식의 질의응답 사이트 등 사람들이 공통의 관심사에 대해 이야기를 나눌 수 있는 곳이거나, 모두가 공정한 게임에 대한 관심을 가진 대규모 다중 사용자(MMO) 게임이 있죠. 커뮤니티 합의로부터 벗어나는 순간, 유저는 반드시 그 커뮤니티를 분리할 수 있어야 합니다.

개발자들이 이러한 플랫폼을 웹 2.0 애플리케이션을 만들어 내는 것처럼 쉽게 구현해낼 수 있을 때야 말로 블록체인 혁명이 진정으로 시작되는 때일 것입니다.


Loom Network는 대규모 게임과 소셜 앱과 함께 이더리움에 확장성이 뛰어난 DPoS 사이드체인 만들기 위한 플랫폼입니다.

Loom Network를 처음 접하시나요? 여기서 시작하세요.

LOOM 토큰을 스테이킹해서 PlasmaChain을 보호하는 데 참여하고 싶으신가요? 여기서 그 방법을 알아보세요.

우리가 계속 전달하는 모든 업데이트를 계속 받아보고 싶으시다면, 어서 우리의 프라이빗 메일링 리스트에 가입하세요.

Loom Network Korean

Loom Network는 대규모 게임 및 소셜 앱과 함께 이더리움에 확장성이 뛰어난 DPoS 사이드체인을 만들기 위한 플랫폼입니다. CryptoZombies(https://cryptozombies.io/ko/)를 통해 솔리디티를 배우고 DApp을 만들어볼 수 있으며, 개발자들에게 편리한 개발 환경을 제공해주는 Loom SDK도 운영하고 있습니다. 또한, 세계 최초의 PC & 모바일 카드 게임인 릴렌트리스(https://loom.games/ko/)를 만들었으며, 현재 운영 중입니다.

Loom Network Korean

Written by

Loom Network 한국 미디엄 계정입니다.

Loom Network Korean

Loom Network는 대규모 게임 및 소셜 앱과 함께 이더리움에 확장성이 뛰어난 DPoS 사이드체인을 만들기 위한 플랫폼입니다. CryptoZombies(https://cryptozombies.io/ko/)를 통해 솔리디티를 배우고 DApp을 만들어볼 수 있으며, 개발자들에게 편리한 개발 환경을 제공해주는 Loom SDK도 운영하고 있습니다. 또한, 세계 최초의 PC & 모바일 카드 게임인 릴렌트리스(https://loom.games/ko/)를 만들었으며, 현재 운영 중입니다.