[Makers Basic 11] 블록체인의 문제점과 대안1

장경재
BlockMakers Powered by DAIOS
6 min readOct 6, 2018

본 자료는 해시넷 블로그의 글을 조금 더 이해하기 쉽게 재 가공하였습니다.

체인 알고리즘의 문제점과 대안

체인(chain)이란 이전 블록의 해시가 다음 블록과 한 구성요소가 되어 연결되는 것을 말한다. 체인 알고리즘은 다수의 거래기록을 해시화하여 체인처럼 연결, 탈중앙 방식을 통해서 데이터 위변조를 방지하는 블록체인의 가장 대표적인 알고리즘이다.

다만 트랜잭션 처리 속도가 느리고 블록의 사이즈가 작아 확장성이 없다는 점, 다른 블록체인과 연결이 어렵다는 단점을 지닌다.

느린처리속도

하나의 거래가 발생시 이를 즉시 처리하지 못하고 다수의 거래내역이 모여 하나의 블록을 형성할때 까지 기다려야 하기에 처리속도가 느리다. 블록을 형성한 이후에도 다른 노드들에게 이를 검증받아야 하기에 오랜시간이 소요된다.

블록체인을 이용한 암호화폐의 경우 ‘화폐’의 역할을 하려면 신속해야 하는 데 이런 점 때문에 실생활에서 결제수단으로서 이용하기 어렵다.

확장성문제

블록체인을 구성하는 하나의 블록은 최대 크기가 정해져 있다. 초기 사용자수가 많지 않았을 때는 문제가 되지 않았지만, 사용자수가 증가함에 따라 하나의 블록안의 담을 수 있는 데이터의 최대 한도를 초과하는 경우가 발생하여 확장성 문제를 야기한다.

비트코인의 경우 블록 하나의 크기가 1MB로 제한되어 있었기 때문에, 하나의 블록당 2천건 정도의 트랜잭션을 기록하면 공간 부족 문제가 생긴다.

공간이 부족하면 기록되지 못하고 뒤로 밀리게 된다. 더 높은 수수료를 지급하면 순서에 상관없이 맨앞으로 이동하여 블록에 기록될 수 있으나 수수료 인플레이션 문제가 발생할 수 있다. 블록 하나의 크기를 증가시킬 수 도 있으나, 미사용 공간이 커지고 전체 블록체인의 사이즈가 커저 느려지는 문제가 생길 수 있다.

비트코인의 경우 2017년 8월1일자로 사용자의 디지털 서명부분을 블록에 기록하지 않고 제외하여 한 블록당 더 많은 데이터를 저장할 수 있도록 세그윗(SegWit)이라는 일시적 조치를 하였지만, 근본적 문제는 해결되지 않았다.

해결방안

느린처리속도와 확장성 문제를 해결하기 위한 다양한 알고리즘이 등장하고 있다.

출처 : steemit

그 중 하나는 라이트닝 네트워크(lightning network)라는 알고리즘은 개별 거래를 다른 채널에서 처리하여 결과만 체인에 기록하는 방식으로 속도 문제를 해결한 알고리즘이다.

이와 유사하게 모든 거래내역을 메인 체인에서 처리하지않고 별도의 차일드체인(child chain)에서 처리하여 결과만 메인체인에 전달하는 방식인 플라즈마(plasma)알고리즘이 개발되었다.

이를 또 개량한 플라즈마캐시 알고리즘이 개발되었다. 이는 모든 사용자가 모든 블록을 다운로드해서 검증하는 것이 아닌 개별 사용자가 관심을 가진 특정 코인이 포함된 블록만 추적하여 속도를 증가시킨 알고리즘이다.

이와 같이 다양한 장점을 가진 블록체인이지만 한계 또한 가지고 있다. 이를 극복하기 위하여 알고리즘 기반으로 일부 기능을 개선했지만 여전히 한계를 지니고 있다. 그렇기에 이를 근본적으로 해결하기 위하여 블록체인 자체의 구조를 바꾸려는 시도가 생기고 있다.

블록체인의 속도가 느린 것은 거래내역이 발생한 즉시 처리하지 않고 블록을 구성할 때까지 기다리기 때문인데, 블록을 구성하지 않아야 근본적인 속도 개선이 가능하다.

이에 따라 블록이 없는 데이터 처리 알고리즘으로 탱글(tangle)과 해시그래프(hashgraph) 알고리즘이 나타났다. 탱글은 새로 발생한 거래가 이전에 발생한 2개의 거래를 확인해주는 방식이고, 해시그래프는 하나의 노드가 다른 불특정 노드에게 가십(gossip)을 전달하는 방식으로 작동하는 알고리즘이다. 이런 알고리즘은 블록이 존재하지 않지만, 기존 블록체인의 장점인 탈중앙화와 데이터 위변조 방지가 가능하면서도 속도 또한 빠르다.

해시그래프 관련 링크 : https://steemit.com/kr/@kim066/hashgraph

오라클 문제

블록체인에서 오라클 문제(oracle problem)란 블록체인 밖에 있는 데이터를 안으로 가져올 때 발생하는 문제를 말한다. 데이터를 블록체인 안에 넣어주는 사람이나 장치 있어야 하는데 이때 이런 중간 역할을 하는 사람이나 장치를 어떻게 신뢰할 수 있을 것인가 하는 문제이다. 블록체인 기술은 탈중앙 분산화를 추구하기에 권위를 가진 중앙이 존재하지 않기에, 데이터를 입력하는 중간자를 신뢰할 수 잇는 특별한 방법이 있어야 한다.

예시를 통해 알아보면 A와 B의 선택지에서 A가 선택될 경우 C에게 코인이 지급되고, B가 선택될 경우 D에게 코인이 지급되는 스마트 계약이 있다고 가정해보자. 실제로 A가 선택 되었더라도 데이터를 입력하는 중간에서 B가 선택되었다고 임의 혹은 실수하는 상황이 발생할 수 있다. 이 때 스마트 계약에 의해서 D에게 코인이 지급되므로 블록체인 상에서는 데이터 위변조가 일어나지 않은 것이지만 현실 데이터를 등록하는 과정에서 문제가 발생하는 데 이것이 오라클 문제이다.

해결방안

이러한 오라클 문제를 해결하기 위한 방법으로 암호화폐 소유자들이 투표를 통해 결정하거나 데이터의 중간값을 선택하거나 신뢰할 수 있는 데이터를 제공해주는 중간자를 두는 방법등이 시도되고 있으나 확실한 해결책은 존재하지 않는다.

  • 투표 : 암호화폐 소유자들이 지분증명이나 위임지분증명등의 방법으로 투표를 통해 의사결정을 하는 방법이다. 다만 이 방법은 암호화폐 소유자들이 투표 시 진실성에 기초하여 의사결정과정에 참여 하리라고 가정한다. 만약 허위로 투표할 경우에 피해는 암호화폐 소유자들에게 돌아가므로 진실하게 투표 하리라는 가정이다. 하지만 어디에서나 그렇지 않은 사람들이 존재하기 때문에 허위 투표를 할 가능성이 존재한다는 점을 가지고 있다.
  • 중앙값 : 현실 세계에 존재하는 다양한 데이터 가운데 중앙값(median)을 선택하는 방안이다. 예를 들어 서로 다른 종류의 암호화폐를 직접 거래하려고 할때 수집한 가격들 중에서 중앙값을 선택하는 등에 대한 방법이다.
  • 중간자(middleware) : 신뢰할 수 있는 데이터를 제공해주는 중간자를 두는 방법으로서, 조직이나 소프트웨어가 데이터를 체계적으로 제공한다. 이러한 중간자의 예로 오라클라이즈(Oraclize), 체인링크(Chainlink), 아이캐시(iCash)등이 있다. 이러한 중간자는 네트워크에 중간에 존재하면서, 신뢰할 수 있는 데이터를 안정적이고 쳬계적으로 제공하여 오라클 문제를 해결할 수 있다. 하지만 탈중앙화를 지향하는 블록체인에서 중간자 역할을 하는 조직이나 소프트웨어가 새로운 형태의 중앙이 될 가능성이 존재한다.

--

--