Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

게이트코리아

[ 스팀잇 ] 자꾸 멈추는 블록체인 어플리케이션 왜그럴까? 본문

GATE 블록체인 뉴스

[ 스팀잇 ] 자꾸 멈추는 블록체인 어플리케이션 왜그럴까?

게이트아이오 2018. 12. 28. 17:22

스팀잇에서는 게시물의 인기가 높으면 콘텐츠 제작자가 암호화폐로 수익을 올릴 수 있는데, 적어도 스팀 블록체인의 세 가지 자체 암호화폐가 스팀잇의 보상 수단으로 쓰인다. 



버니샌더스 이야기


버니샌더스는 블록체인 기반 블로그 플랫폼 스팀잇(Steemit)상의 계정이다. 최근 와플 레시피, 로맨틱 소설, 암호화폐 전문 게시물들이 인기가 많은 가운데 버니샌더스도 자칭 “쓸데없는 엉망진창 게시물”을 통해 안정적인 수익을 올리고 있다. 



버니샌더스의 최근 게시물로는 “당신은 즐거운가? 나는 즐겁다.” (60달러), “나는 보트를 타고 있다!” (31달러), “당신의 신발을 보여주세요.” (30달러), “엉망인 글이 댓글을 몇 개나 받을 수 있을까?” (263달러, 319개의 댓글) 등이 있다.



그런데 지난 몇 시간 동안 스팀잇에서는 버니샌더스의 재치 있는 글을 찾아볼 수 없었다. 그날 스팀 블록체인이 정지되어 새로운 블록이 추가되지 못하면서 스팀잇도 이용할 수 없었기 때문이다. 스팀 블록체인은 물론 블록체인상의 애플리케이션이 모두 가동을 멈췄다.


회사의 입장 


회사는 스팀의 시스템 정지가 예정된 하드포크 업데이트와 관련이 있다고 했다. 블록체인 내 몇몇 노드가 우연히 네트워크를 일찍 하드포크해 버리면서 포크 후에 가동돼야 할 코드가 해당 노드에서 돌아가기 시작했고, 새로운 코드와 기존의 코드가 동시에 돌아가면서 블록이 일치하지 않게 됐으며, 안전장치도 제 기능을 못 하고 가동을 멈췄다. 즉, 양립 불가능한 체인이 동시에 돌아간 것이다.



스팀잇의 창립자 CEO 네드 스콧은 “블록체인이 정지되자 블록체인상에서 개발된 모든 앱에 도미노처럼 효과가 미쳤다.”라고 말했다. 스콧은 스팀 블록체인상에서 약 400개 애플리케이션이 운영된다고 덧붙였다.



사용자들은 자기가 가장 좋아하는 블록체인 기반 툴과 애플리케이션이 갑자기 호환되지 않는 이유를 궁금해하며 혼란스러워하거나 걱정하고, 때로는 짜증을 내기도 했다. 스팀잇 네트워크가 다시 정상적으로 기능하기 시작하자 버니샌더스는 게시물에 “testingshitsteem (스팀 테스팅 최악이네),” “amateurshitdevs (아마추어 개발자는 각성하라),” “deadchain (체인은 죽었다)” 같은 태그를 달았다.



조금 심한 말인지도 모르겠다. 실제로 모든 사용자가 이 정도로 비판적이지도 않았다. 와플 레시피를 올린 장본인이기도 한 “alphasteem”이라는 닉네임의 스팀잇 사용자는 새로운 기술은 원래 처음엔 대개 이런 법이라고 말했다.



블록체인, 멈추는 문제 왜 그럴까? 


문제는 새로운 기술에서는 이런 일이 일어나서는 안 된다는 데 있다. 블록체인 네트워크의 장점으로 자주 인용되는 것 중 하나가 시스템 정지가 전혀 없거나 거의 없다는 것이다.



비트코인이 2009년 1월에 출시된 뒤 멈추지 않고 가동된 시간을 뜻하는 업타임(uptime)을 추적해온 한 웹사이트를 보면, 기사를 소개하는 현재 비트코인의 업타임은 99.992585147%다. 극히 일부를 제외하고는 좀처럼 비트코인 블록체인이 가동을 멈추지 않았다는 뜻이다. 이더리움 재단도 네트워크의 애플리케이션이 “다운타임, 검열, 사기, 제삼자의 개입이 전혀 없도록 정확하게 프로그래밍돼” 운영된다고 설명했다. 그러나 최근 몇 달간 주요 블록체인 네트워크가 잇달아 정지됐고, 사람들은 도대체 무슨 일이 일어나고 있는지 궁금해하기 시작했다.


 


자꾸 정지되는 블록체인


스팀 네트워크에서 일어난 사고는 최근 블록체인 시스템 정지 사례 중 하나일 뿐이다. 게다가 스팀 블록체인이 정지된 것도 최근 몇 달 사이에 이번이 처음이 아니다.



지난 3월에는 네오의 블록체인이 일시적으로 정지됐다. 프로젝트의 선임 연구개발 매니저인 말콤 레리더는 “합의 노드가 합의 과정 도중 연결이 끊어질 때” 네트워크 정지가 발생한다고 설명했다. 네오 네트워크상의 합의 노드 일곱 개 가운데 하나만 정지되어도 체인이 오프라인이 된다면 네오는 사실 매우 취약하다는 비판에 대해 레리더는 네오는 합의 노드가 하나 손실돼도 체인은 문제없이 운영될 수 있지만, 사고가 일어난 상황은 더 복잡했다고 설명했다.



몇 달 후 EOS 블록체인에도 약 다섯 시간 동안 새로운 블록 생산이 중지되는 비슷한 사고가 일어났다. 당시 EOS 프로토콜을 운영하던 블록원 재단의 제품 부사장 토마스 콕스는 “연기된 거래가 정확하게 확인되지 않으면서 이상이 발생해 추가로 블록이 생성되지 못했다.”라고 말했다. 이 사고는 6월 EOS 네트워크가 출범한 지 불과 며칠 뒤에 일어났고, 콕스는 이후 회사를 떠났다.


결합과 위임 프로토콜


이러한 일이 자꾸 일어나면 자연히 왜 이런 일이 발생하는가에 대한 질문이 나오기 마련이다. 블록체인이 탄생한 지 10년이 다 되어가는 지금, 절대로 다운될 일이 없다는 이른바 ‘제로 다운타임’의 약속에 금이 가고 있다.



새로운 합의 방식이 태동한 데에 질문의 답에 관한 실마리가 숨어있을 수 있다. 합의 방식이란 블록체인 시스템 내의 모든 참여자가 네트워크의 상태에 동의하는 절차다.



비트코인과 현재 이더리움 및 기타 작업증명(PoW) 시스템에서는 네트워크가 정지될 확률이 극히 낮은 방식으로 네트워크상의 합의가 이루어진다. 많은 노드가 정지되더라도 네트워크는 문제없이 굴러가는 것이다. 



또 다른 작업증명 암호화폐인 모네로의 프로젝트 책임자 리카르도 스파그니는 코인데스크에 이렇게 말했다.



“작업증명 방식에서는 네트워크를 분할해 필요한 작업을 처리한 뒤 일정 시간 뒤에 다시 이를 되돌릴 수 있다. 사실 이런 작업은 비일비재하게 일어난다.”



반면 네오와 EOS, 스팀은 모두 일련의 특정 노드들이 블록 생성을 비롯한 네트워크의 상태를 결정하는 새로운 합의 방식을 채택했다. 이 노드들은 “채굴”보다 더 빠르고 에너지 소비가 덜한 절차를 거쳐 합의를 이루고 비트코인이나 이더리움보다 더 빠르고 저렴하게 거래를 활성화한다.


이 시스템들은 대개 연합(federated protocol)이나 위임 프로토콜(delegated protocol)로 잘 알려져 있는데, 정확히 사용 중인 암호화폐 방식에 따라 더 구체적인 이름이 붙는다. 네오는 위임된 비잔틴 장애 허용(delegated Byzantine Fault Tolerance, dBFT) 방식을, EOS와 스팀은 위임지분증명(delegated proof-of-stake, DPoS) 방식을 사용한다.



네오의 레리더는 소위 연합 프로토콜 블록체인에서 시스템 정지가 오히려 더 잘 일어난다는 지적에 반박했다.



“연합 체인에서 각각 다른 합의 알고리듬이 쓰였을 수도 있다. 어떤 것이 정지될 가능성이 있는지 확인하려면 구체적으로 네트워크가 어떻게 가동되고 시행됐는지 먼저 살펴보아야 한다.”



더 넓게 보면 위임된 합의 방식이 암호화폐에 새로운 것을 제시하기도 했다. 바로 예전에는 권한을 집중한 중앙에서만 처리할 수 있던 이용 사례를 적용할 수 있을 만큼의 확장성이 높아진 점이다. 예를 들어 웹사이트 블록티비티(Block’tivity)에 따르면 스팀과 EOS는 하루에 수백만 건의 거래를 지원할 수 있다.



그러나 동시에 이 새로운 프로토콜들은 블록체인 세상에 중앙화된 제공자들의 약점을 다시 드러냈다. 바로 다운타임이다. 연합 시스템 내의 핵심 노드들이 정지되거나 싱크에서 떨어져 나가면 전체 네트워크가 정지될 위험에 노출된 것이다.



접근성이냐 통일성이냐


그렇다고 이 시스템들이 전통적인 작업증명보다 열등하다는 것은 아니다.



스웨덴의 핀테크 기업 시노버(Cinnober)에서 블록체인과 암호화폐를 담당하고 있는 에릭 월은 현재 중요한 전환이 일어나고 있다고 말했다.



“모든 분산된 시스템은 근본적으로 CAP 정리에 의한 제약이 따른다.”



블록체인 네트워크 논의에서 자주 인용되는 CAP 정리란 주어진 하나의 시스템은 세 가지 특성 중 두 가지만 최적화할 수 있는데, 그 세 가지는 통일성, 이용가능성, 분할 허용이다. (consistency, availability, partition tolerance, 줄여서 CAP이라고 부른다)




그러나 현실에서는 선택의 범위가 더 좁다. 월은 분할 허용을 예로 들었다. 인터넷처럼 메시지를 일부 분실한 상태에서도 블록체인 네트워크를 운영할 수 있는 능력을 뜻하는 분할 허용은 현실에서는 반드시 구현해야 하는 기능이라는 것이다. 따라서 엔지니어들은 분할 허용을 반드시 구현하면서 나머지 두 가지 가운데 하나, 즉 비트코인이나 이더리움처럼 접근성을 택하거나 EOS나 스팀, 네오처럼 통일성을 택해야 한다.



“많은 연합 시스템들은 비상 상황에서 바로 정지할 것이다. 다시 네트워크를 운영하기 위해서는 수동으로 개입해야 한다. 반면 비트코인은 정지하지 않겠지만, 한 달에도 몇 번씩 잠깐 두 개의 블록체인으로 포크된다.”



월의 설명이다. 달리 말하면 사용자 관점에서 비트코인 네트워크가 정지하는 일은 없을지 몰라도 원래 기본 체인을 유지하기 위해 잠깐씩 분할되는 체인에 (자기도 모르는 사이에) 들었다 나왔다 할 수도 있는 것이다.



월은 이어 대부분은 비트코인의 통일성 부족이 큰 문제를 일으키지는 않는다고 말했다.



“포크가 진행되어도 이내 여러 노드가 알아서 문제를 해결한다는 측면에서 비트코인 네트워크는 궁극적인 통일성을 지니기 때문이다. 그래서 비트코인은 진정한 CAP 시스템이 아니지만, 실질적으로 CAP만큼 좋은 시스템이라고 할 수 있다.”



그러나 통일성보다 이용 가능성을 택했다가 블록체인에서 문제가 일어날 때도 있다. 네드 스콧은 2013년 3월의 사고를 예로 들었다. 비트코인은 당시 저널리스트였던 비탈릭 부테린이 “지난 4년간 우리가 목격한 것 중 가장 심각하다”고 말했던 문제에 대처해 포크를 진행했다.



월은 이러한 사고들이 통일성을 택하는 “CP” 시스템이 접근성을 택하는 “AP” 시스템보다 더 낫다고 주장하는 근거가 될 수 있다고 말했다.



“네트워크 하나가 정지되는 것보다 둘로 갈라진 네트워크가 서로 충돌하는 상황이 네트워크에는 훨씬 더 위험하다.”



장애물과 상처


그러나 여기서 주목할 만한 것은 따로 있다. 즉, 비트코인은 2013년 이래 비슷한 사고를 전혀 겪지 않았지만, 신생 네트워크에는 잊을 만하면 시스템이 정지되는 사고가 난다는 점이다.



월은 “버그들이 작업증명 방식보다 결합 네트워크에 더 자주 출몰하는 이유는 바로 비트코인의 코드베이스가 실전에서 더 많이 시험되었고 더 철저하게 검증되어 연합 시스템들보다 질적으로 낫기 때문”이라고 진단했다.



실제로 위임 지분증명 방식을 택한 첫 블록체인인 비트셰어(Bitshares)가 2015년에 출범했을 때 비트코인은 이미 6년 동안 실전 경험을 축적한 뒤였다. 그러나 젊은 네트워크들도 곧 비트코인을 따라잡을 수 있다. 스콧은 최근의 잇따른 정지 이후 스팀은 이제 실전에서 단련된 블록체인이 되었다고 말했다.



“되돌아보면 모든 것이 순탄대로만은 아니었다. 우리가 겪었던 장애물과 상처들이 우리의 힘과 끈기, 그리고 혁신에 대한 의지를 잘 보여준다.”



스팀은  20번째 하드 포크 업데이트를 예정대로 진행했다.



또 한 가지 주목할 만한 사실은 이제 노장 반열에 오른 비트코인이 지난달 중순 네트워크의 상당 부분을 정지시킬 수도 있었던 위험한 버그를 가까스로지만 상대적으로 낮은 비용에 피했다는 점이다.



제트캐시의 창립자이자 CEO인 주코 윌콕스는 이 사건을 언급하며 결국, 완전히 안전한 네트워크는 없다고 말했다.



#게이트아이오 공식채널 


<Official Support>


게이트코리아 텔레그램방(Telegram) : https://t.me/gateiokr


게이트코리아 네이버카페(Naver Cafe) : https://cafe.naver.com/gateiokorea


게이트코리아 카카오 오픈채팅방(Kakao) : https://open.kakao.com/o/gzDw9BG


게이트코리아 카카오플러스(Kakao Plus) : http://pf.kakao.com/_xnDmGC



<Official Page>


게이트코리아 공식 네이버블로그(Naver Blog) : https://blog.naver.com/gateiokorea


게이트코리아 공식 다음블로그(Daum Blog) : http://blog.daum.net/gateiokorea


게이트코리아 공식 스팀잇(Steemit) : https://steemit.com/@gateioexchange


게이트아이오 공식 트위터(Twitter) : https://twitter.com/gate_io


게이트아이오 공식 페이스북(Facebook) : https://www.facebook.com/OfficialGateio


게이트아이오 공식 인스타그램(Instagram) : https://www.instagram.com/gate.io/



<Official Tech>


게이트아이오 공식 미디엄(Medium) : https://medium.com/@gateio


게이트아이오 공식 깃허브(Github) : https://github.com/gateio


게이트아이오 공식 홈페이지(Homepage): http://gate.io



Comments