플라즈마 캐시? Plasma Cash?

in #coinkorea7 years ago (edited)

 스케일링 솔루션 시리즈물을 올리는 와중에 재미있는 이슈들이 계속 쏟아져나오고 있습니다. 채널방식의 진화부터, 사이드체인인 플라즈마의 오프체인화(플라즈마 캐시) 등이 그것입니다. 완벽한 탈중앙화, 높은 보안을 위한 느린 속도와 같은 전통적인 암호화폐에 대한 고정관념들이 조금씩 완화되면서 '실생활에 쓸수 있는' 수준의 블록체인(tps, 보안, 편의성 등)을 완성하기 위함으로 보입니다. 2017년의 경우에는 전방시장의 확대가 투자의 주류를 차지했다면, 2018년의 암호화폐 시장의 컨셉은 도입의 현실화를 위한 '발전'인듯 합니다. 

이번에 이야기하려하는 것은 플라즈마의 발전, 플라즈마 캐시에 대한 이야기입니다. 얼마전에 비탈릭 부테린의 ETHCC 프레젠테이션에서 발전방안들이 발표되면서 투자자들 사이에 알려졌으나, 실제로는 4일정도 먼저 ETH Research에 먼저 언급되었습니다. 

이번 내용은 위에서 언급한 Youtube, ETH Research 기반의 기술적인 내용들이 주를 이룹니다. 당연한 것이지만, 지금의 투자와도 딱히 관계는 없고, 굳이 지금 공부할 이유도 없습니다. 수개월의 시간이 지나면 지금은 그저 개론에 불과한 플라즈마 캐시가 Plasma MVP처럼 정형화된 백서가 시장에 등장하고, 개발자와 사용자 사이에서 쉬운 설명으로 연결고리 역활을 해주는 수많은 사람들이 생겨날 것입니다. 다만 새로운 기술에 대해서 미리 공부를 할 수 있다면, 좀 더 폭 넓은 시야에서 블록체인의 미래에 대해서 고민해 볼 수 있는 기회가 생겨나지 않을까 생각합니다. 

그리고 해당 내용중에 잘못된 부분들이 있다면 답글을 남겨주세요. 수정을 하도록하겠습니다.

플라즈마도 겨우 이해했는데....

플라즈마 캐시는 플라즈마의 기본적인 구성에 몇가지 수정만을 가한 버전입니다. 기본적인 특성은 앞서 이야기한 Plasma 포스팅 같습니다. 레이어를 오버레이 해서 다층 구조를 만들어낸다는 점, 그리고 루트체인에서 패런츠, 차일드 체인으로 연결되는 고리, 거래내역이 아닌 결과 값만을 전송하는 이러한 행동을 모두 동일합니다. ETH Research의 자료에 의하면 수정된 내역은 단 3가지입니다. 이 3가지를 2가지로 줄여서 이야기해보고자 합니다.

1. 플라즈마 네트워크 예치되는 코인의 유니크한 ID와 대응됩니다. - Data Usage, 전송의 편의성

이더리움이나 ERC 코인들이 플라즈마 체인상에서 사용되고자 할때, 플라즈마 네트워크 상에서만 사용될 수 있는 플라즈마 캐시를 발행합니다. 그리고 이 플라즈마 캐시에는 각각 유니크한 ID가 배정됩니다. 쉽게 말해 이러한 유니크한 ID의 배정을 통해 내가 가지고 있는 이더리움과, 친구가 가지고 있는 이더리움이 다른 코인이 된다고 보면 이해가 쉽습니다. 이를 통해 네트워크에 들어오고 사용되는 기록들, 그리고 플라즈마 체인에서 나오는 모든 과정(Path)들을 유니크 ID의 추적만을 통해서도 확인할 수 있습니다. 

 이를 통해 플라즈마의 참여자가 해당 플라즈마 체인의 모든 데이터를 받아가지 않아도 자신이 보유하고 있는 플라즈마 캐시가 Valid한지 아닌지에 대한 판단을 손쉽게 할 수 있게 됩니다. 플라즈마 네트워크의 참여자가 자신의 코인에 대한 '소유 인증'을 편리하게 할 수 있다는 것입니다.  

예를 한번 들어볼까요?


참고 : karl.tech, 이미 소유권이 이전됬다는 것이 남아있는 상황에서, 이전의 전송 상태를 기반으로한 인출은 불가능함. 유니크 ID의 전송 이력에는 이미 위에서 이야기하는 전송 (4)까지 진행되었기 때문. 

참고 : karl.tech, 이중지출도 불가능. 유니크ID를 보유한 플라즈마 캐시의 소유권 이전에 대한 기록이 1->2->3, 각각의 블록에 포함되었음. 여기서 소유권 이전 기록되지 않은 2->4로의 이전에 대한 내역을 기반으로 인출 요청을 포함하려고 할때, 이미 2->3으로의 전송내역이 존재하기에 해당 인출은 성립하지 않음


참고 : karl.tech, 2->3의 전송이 Valid하지 않음. Valid하지 않은 5번의 기록을 가지고 인출요청을 해도 2->3의 전송내역이 없기에 인출은 성립하지 않음. 결국 모든 전송에 대한 내역을 보유하여 제출하지 않는 이상 인출을 불가능하게 됨.


제가 가지고 있는 플라즈마 캐시의 소유권이 이전되는 일련의 과정을 파악할 수 있다면, 위의 3개의 케이스과 같이 이중지출이 이루어지지 않았다는, 또는 부정적인 사용이 이루어지지 않았다는 확인을 편리하게 할 수 있다는 것입니다. 모든 새로운 전송을 차일드체인에 기록하기 위해서는(패런츠체인->루트체인으로 전달) 이전 전송에 대한 증명이 필요하기 때문이죠. 

기존에 플라즈마와 비교해보면 어떤 차이점이 있을까요? 기존 플라즈마 MVP에서 보더라도 블록이 만들어지게 되면 플라즈마 참여자(BOB, ALICE)는 네트워크의 변화를 확인할 수 있게 됩니다. 블록의 데이터를 모두 동일하게 받고 있기 때문인데, 이는 블록의 데이터를 저장함에 따른 Data Usage의 문제를 일으킵니다. 이러한 데이터 저장에 대한 문제는 플라즈마가 차일드체인과 패런츠체인을 무한히 만들어내, Tps의 극대화를 이루는데 있어서 장애요인으로 작용하게 됩니다. 4번정도의 트랜치가 플라즈마의 한계라고 보는 이유가 여기에 있습니다.

참고 : 기존에 플라즈마의 참여자는 모든 블록을 받아야만 했음

참고 : 이제는 필요한 내용만 저장하면 자신의 유니크 ID를 보유한 코인에 대한 소유권을 입증할 수 있음. 모든 블록을 다받지 않아도, 자신의 유니크ID가 포함된 블록만 소유하면 부정행위에 대한 감시가 가능함.

만약 플라즈마 캐시라는 고유의 ID를 보유한 코인을 통해서 거래를 하면 어떻게 될까요. 자신의 거래를 검증(부정과 같은)하기 위해서 모든 블록의 데이터를 받을 이유가 없습니다. 자신의 거래 기록을 기록한 블록만을 보유하게 된다면 자신의 코인에 대한 소유 권한을 이야기하고, 부정적인 접근이 없었다는 것을 확인할 수 있다는 것이죠. 해당 코인에는 유니크한 ID가 부여되어 있으니까요. 하지만 유니크한 ID의 보유를 통해서 가능한 것이 이러한 단순한 사용자 용량 문제의 해결 만일까요?

인증하는 방식의 단순화를 통해서 NFC를 통한 거래도 진행할 수 도 있습니다. 반대로 상대방의 유니크한 ID의 거래 기록(path)을 제가 받아오게 된다면 해당 코인의 소유권은 저에게 올 수 있는 것이구요.(물론 거래의 확정은 루트체인에 기록되어야 할 것입니다, 해당 부분에 대해서 유튜브에서는 명확하게 이야기를 하지 않았습니다) 

이외에도 플라즈마 캐시라는 가상의 '캐시'를 만들어 냄에 따라 보안적인 부분도 강화되게 됩니다. 오미세고가 런칭하고자 하는 탈중앙화 거래소(DEX)의 경우를 예로 들어 보겠습니다. 해당 거래소가 플라즈마 캐시를 통해서 완벽하게 구축이 된다면, 오미세고는 단순히 플라즈마 캐시를 통해 유니크한 ID를 가진 코인들의 거래 기록들이 기입되는 플랫폼이 되어버립니다. 기존에 대부분의 암호화폐 거래소의 해킹이 UXTO의 수정 또는 월렛의 데이터 유출에 기반했다면, 플라즈마 캐시가 도입된 거래소에는 해킹을 할 만한 자산이 존재하지 않게 됩니다. 이를 통해 암호화폐 거래소의 안정성을 더욱 높일 수가 있을 것으로 기대됩니다. 비탈릭이 유튜브에서 DEX에 대한 이야기를 지속적으로 반복을 하는 것보니 실제로 해당 목적을 가지고 만들어진 기술인 듯 합니다. 


2. 분할이나 병합이 될 수 없습니다. = 유니크한 ID를 가진 특성인듯 합니다.

- 크립토키티를 보신분들이라면 이해하기 쉬울듯합니다. 크립토키티의 고양이가 분할될 수 있을까요? EIP 721표준으로 만들어져 크립토키티는 기존의 ERC-20토큰과는 다르게 Non-fungible 한 특성을 가지고 있습니다. 고유한 가치와 의미를 지닌 다는 것입니다.  


" EIP가 뭔지 모르시겠다구요? 2017년 8월에 비트코인의 포크와 관련해서 BIP라는 단어를 수없이 보셨으리라 생각합니다. EIP는 이더리움 네트워크의 '제안'과 같은 역활을 하게 됩니다. "

EIP 721가 적용된 크립토키티에서는 각각의 고양이는 서로 다른 가치를 지닙니다. 플라즈마 캐시와 어딘지 모르게 비슷하지 않나요? 플라즈마 캐시도 각각의 코인에 대해서 유니크한 ID를 배정하게 됩니다. 크립토키티의 고유한 고양이와 마찬가지로 말입니다. 

참고 : 고양이를 반마리만 파는걸 보신적이 있으신가요?

크립토키티의 고양이를 쪼갤수가 있을까요? 플라즈마의 플라즈마 캐시도 마찬가지입니다. 고유한 가치의 배정은 해당 코인을 분할하거나 병합하기 어렵게 만듭니다. 플라즈마 캐시의 도입을 통해 소유권 이전의 편의성은 높아질 수 있으나, 실용적인 의미적으로 제한 될 수 있다는 것이죠. 

플라즈마 캐시를 통해서 만들어진 거래소를 다시 한번 가정해보겠습니다. 특정 이더리움을 플라즈마 블록체인으로 넘기게 되면, 해당 이더리움과 대응되는 유니크 ID를 보유한 플라즈마 캐시가 만들어지게 됩니다. 그런데 이 플라즈마 캐시는 Non-fungible한 특성으로 인해 분할이 되지 않습니다. 자신이 보유한 모든 물량을 팔 사람도 있겠지만, 아닌 사람은 어떻게 할까요? 유니크 ID가 배정된 특성상 분할이 안되어, 일부분의 매도를 진행할 수가 없게 됩니다. 

유니크ID의 도입을 통해서 거래의 편의성과 안정성을 얻었지만, 분할과 병합이 안되는 문제점이 생겨나 버립니다. 해당 문제는 어떻게 해결될 수 있을까요? 아쉽게도 ETH Research나 유튜브에서는 답을 알려주지는 않고 있습니다.

ETH Research에서는 플라즈마 캐시의 도입을 통해서 빠른 거래(단순히 유니크 ID가 배정된 코인의 역사를 상대방에게 제공하는 것만으로)와 소액결제가 가능하다고 보고 있습니다. 개인적으로는 2번째 소액결제에 대해서는 의문이 있습니다. 분할이 안되는 유니크 ID코인이 소액결제를 할 수가 있을까요? 이에 대해서 karl.tech에선 유니크 ID를 보유한 토큰도 분할을 하면된다고 이야기하고 있으나, 아직까지 먼이야기로 보입니다.

플라즈마의 문제점은 그대로, 장점만이 더 생겨났다

플라즈마를 DEX에 도입함에 있어서 오퍼레이터는 여전히 관리자의 입장에서 모든 플라즈마에 대한 체크가 필요하고, 차일드체인에서 이루어지는 거래를 잔고에 확정하기 위해 루트체인에 기입하는 과정은 여전히 필요해보입니다. 자유선택권에 대한 문제조차도 해결되지는 않았습니다.

다만 DEX의 안정성은 높아졌고, 플라즈마의 차일드체인 내의 거래의 편의성도 높아졌습니다. 문제점은 그대로 남았고, 장점은 더 많이 생겨났습니다. 문제점의 해결은 언제쯤 진행이 될 수 있을까요?


과연 사람들이 이러한 기술을 보편적으로 사용할 수 있을까? 점점 복잡해지는것 같은데....

고도화 되는 기술은 항상 발전을 가져옵니다. 다만 고도화된 기술이 도입을 이끌 수 있을지는 모르겠습니다. 우리가 익히 알고 있는 일반 기업들의 보안의 구조가 고도화된 기술의 예가 될 수 있습니다. DRM보안, 서버보안, 백신보안 등등. 보안을 보다 완벽하게 완성하기 위해서 SW베이스의 보안을 덕지덕지 바른 결과입니다. 이것이 과연 올바른 보안의 방향일지는 모르겠습니다.

플라즈마라는 기술이 완성되기 위해서는 앞으로도 수많은 개선방안들이 제시될 것이고, 코드의 길이는 점점 길어질 것입니다. 기술의 완성도와 비례하여 사용의 편의성은 감소하게 될 수 있어 보입니다. 블록체인이 수년전에 몇몇 Geeks들의 전유물이 였다면, 지금은 제가 이렇게 포스팅을 하는 플랫폼인 스팀잇과 같이 보편화 되는 과정에 있습니다.  기술의 고도화가 보편화 되지 않는다면, 또는 편의성을 동반하지 않는다면, 지금의 방향성과는 다르게 블록체인이라는 기술은 다시 Geeks의 전유물이 될 가능성이 있지 않나 생각합니다. 

플라즈마와 같은 기술의 발전은 반길만 하고, 반겨야만 하는 이슈 입니다. 다만 일반적인 사용자들이 도입하기 위한 편의성적인 측면에서의 발전은 지금까지와는 다른식으로 이루어져야하지 않나 생각합니다. 혹은 저처럼 기술에 대해서 잘모르는 사람이 "일반적인 사용자"가 되지 않을 수도 있을 수도 있겠지만요.

현재 플라즈마 캐시에 대해서 오픈되어있는 정보는 위에서 이야기한바와 한정적인 상황입니다. 향후 추가로 내용이 업데이트 된다면, 다른 포스팅을 다시 한번 이야기를 할 수 있을 듯합니다. 

도움이 되셨다면 리스팀 부탁드립니다. 감사합니다.

Sort:  

SPEC과 관련해서 자세히 정리한 내용이 해외쪽에서 나왔네요. 현재 포스팅에 추가할 예정입니다~

수정완료 했습니다

감사합니다