검수요청.png검수요청.png

확장성

해시넷
이동: 둘러보기, 검색

확장성(擴張性, scalability)이란 사용자 수의 증대에 유연하게 대응할 수 있는 정도이다. 블록체인에서는 자원(마이닝 노드, 코어 수) 증가에 따라 트랜잭션의 처리속도(TPS)가 증가하지 않는 문제를 말한다. TPS가 고정되어 있기 때문에 무리 없이 전송할 수 있는 능력을 의미한다.

개요[편집]

암호화폐 초기에는 지금처럼 사용자가 많지 않았기 때문에 비트코인 기준으로 10분 내에 한 블록에 모든 거래를 담기에 충분했다. 그러나 암호화폐가 점점 대중화되어 처리해야 할 거래량이 증가하자, 한 블록에 10분 동안 발생한 모든 거래내역을 담을 수 없는 상황이 발생했다. 비트코인의 경우 초당 약 3~7건의 거래를, 이더리움의 경우 초당 약 20건의 거래를 처리한다. 이는 초당 약 200건의 거래를 처리하는 페이팔, 약 2,000건의 거래를 처리하는 비자카드와 대조하면 현저히 느린 속도이다. 암호화폐의 대중화로 사용자가 점점 늘어나는 상황에서 비트코인과 이더리움 뿐만 아니라 대부분의 암호화폐를 포함한다면 실제 서비스로 사용하기엔 무리가 있는 얘기임에는 분명하다.

원인 및 문제점[편집]

블록에 거래가 담길 시[편집]

비트코인 블록의 크기는 1M이다. 그러나 1M 블록의 크기는 비트코인이 처리해야 할 거래량에 비해 턱없이 부족하다. 또한 비트코인으로 거래하기 위해서는 채굴자(Miner)에게 수수료를 제공해야 하는데 이 수수료 값이 적을 경우 거래 속도가 훨씬 지연될 수 있다. 채굴자들은 블록에 거래내역을 담을 때 수수료가 높은 것을 우선으로 하기 때문이다. 이더리움은 비트코인과는 달리 블록의 크기보다 한 블록에 담을 수 있는 가스(gas) 크기의 제한 때문에 속도 지연 문제가 발생한다. 가스란 이더리움 플랫폼에서 발생하는 거래의 수수료 개념이라고 할 수 있는데, 한 개의 이더리움 블록에는 약 670만 가스로 제한되어있다.

노드 간 합의 과정 시[편집]

블록체인은 중앙통제기관이 없는 P2P 네트워크이다. 따라서 거래가 발생하면 노드들은 가십 프로토콜(Gossip Protocol)을 통해서 거래를 전파한다. 새로운 거래가 체결되면 노드들은 가까운 노드에게 새로운 거래내역이 담긴 블록을 전송한다. 전달받은 노드는 또 가까운 노드에게 거래내역을 전송한다. 그리고 노드는 자체적으로 전달받은 거래가 신뢰할 수 있는지 검증하는 과정을 거친다. 이렇기 때문에 노드가 많아질수록 전체 노드에게 새로운 거래가 전달되는 시간, 그리고 각각 노드가 거래를 검증하는 시간이 증가하게 되므로 거래 속도는 점차 느려지게 된다. 이더리움의 경우 약 25000개의 노드가 있다. 이는 비트코인의 노드 수가 약 11200개인 것에 비해 두 배 많은 수치이다. 따라서 이더리움의 경우, 비트코인 보다 노드 간 거래 합의에 도달하기 위해 필요한 시간이 더 많다.

두 가지 원인을 살펴봤을 때, 비트코인과 이더리움이 확장성 문제를 해결하기 위해서는 블록에 더 많은 정보를 담거나 노드들 간의 거래 합의 속도를 향상시켜야 한다.

비트코인의 해결방안[편집]

비트코인은 우선, 블록에 들어가는 정보를 늘리는 방법을 통해 확장성의 문제를 해결하려고 한다. 블록에 들어가는 정보를 늘리기 위해서는 첫 번째로는 블록에 입력되는 정보를 효율적으로 정리하여 더 많은 정보를 담는 방법과 두 번째로는 블록의 크기를 늘리는 방법이 있다. 비트코인에서 첫 번째의 방법은 세그윗(Segwit)을 통해 가능하고, 두 번째의 방법은하드포크(hardfork)를 통해서 가능하다. 다음으로, 비트코인은 모든 거래를 블록에 올려 검증하는 것이 아니라 최종 결과만 블록에 담는 라이트닝 네트워크(Lightning Network)의 방법을 통해 확장성 문제를 해결하려고 한다.

세그윗(Segwit)[편집]

세그윗이란 Segregated Witness의 약자로 블록 내에서 서명 부분을 따로 분리하여 저장하는 것을 의미한다. 서명 부분을 메인 체인이 아닌 사이드 체인에 저장하여 기존 블록의 크기는 1M로 그대로 두는 대신 블록에 담을 수 있는 용량을 평균 2M까지 늘릴 수 있다. 또한 세그윗 업그레이드를 시행할 경우, 비트코인 블록이 거래를 더 많이 처리할 수 있게 될 뿐만 아니라 이중 지불에 대한 보안성 부분도 강화가 된다. [1] 비트코인의 오프 체인(Off-Chain) 솔루션인 라이트닝 네트워크가 실제로 작동하기 위해서는 아직 해결해야 할 문제가 여러 가지 존재한다. 세그윗 도입을 통해 라이트닝 네트워크가 실행된다면, 기존 비트코인의 컨펌 문제와 수수료 문제를 해결하게 된다.[2] 세그윗은 2017년 8월 진행되었다. 그러나 세그윗은 비트코인의 거래량을 약 2배 정도 증가시켜주는 정도이기 때문에 비트코인의 확장성 문제를 완전히 해결해 주었다고 하기 어렵다.

하드포크(hardfork)[편집]

하드포크란 기존 비트코인 네트워크에서 분기되어 블록 사이즈가 1M보다 큰 새로운 블록체인 네트워크를 만드는 것이다. 소프트포크(softfork)는 소프트포크 전 블록과 소프트포크 후의 블록이 서로 호환이 가능하지만 이와 달리 하드포크는 하드포크 전 블록과, 하드포크 후 블록 사이에 호환이 가능하지 않다. 비트코인 세그윗에 반대하는 사람들은 비트코인 블록체인의 하드포크를 통해 블록 자체의 용량을 1M 이상으로 늘리고 자 했다. 그 결과 2017년 8월 1일, 8M까지 블록 사이즈 확장이 가능한 비트코인 캐시가 탄생했다. 비트코인 캐시는 편리하게 결제하고 거래할 수 있는 화폐가 되기 위해 6개월마다 정기적으로 네트워크 업그레이드를 위한 하드포크를 진행한다. 2018년 5월 진행된 하드포크에서는 블록 크기를 32MB로 다시 한번 늘렸고, 확장성안정성을 위해 다수의 옵코드(OPcode)를 도입했다.[3] 그러나 하드포크를 통해 만들어진 비트코인 캐시도 블록 크기를 8M까지 늘렸다고 해도 비트코인과는 다른 새로운 암호화폐이기 때문에 비트코인 캐시가 비트코인의 확장성을 해결해 주었다고 말할 수 없다.

라이트닝 네트워크(Lightning Network)[편집]

비트코인 거래는 체인 상에 장부가 기록되는 온 체인(On-Chain) 방식이다. 거래가 발생할 때마다 거래 장부에 이를 기록하고 검증하고 수수료를 매긴다면 당연히 속도가 느릴 수밖에 없다. 그래서 비트코인의 느린 거래 속도에 따른 확장성 문제와 높은 전송 수수료 문제를 해결하기 위해 등장한 기술이 라이트닝 네트워크(Lightning network)이다.[4] 라이트닝 네트워크는 2015년 조셉 푼(Joseph Poon)과 타데우스 드리야(Thaddeus Dryja)에 의해 최초로 고안된 아이디어이다. 라이트닝 네트워크의 기본 아이디어는 모든 거래내역을 블록체인에 올리는 것이 아니라 별도의 채널을 오픈하여 서로의 사인만으로 트랜잭션을 주고받다가 일정한 주기 또는 필요에 따라 최종 정산된 값만을 블록체인에 올리는 것이다. 오프 체인(Off-Chain)을 활용한 스테이트 채널(State Channel) 또는 네트워크라고 불리는데, 합의 과정은 별도의 채널에서 로컬 컨센서스(Local Consensus)를 통해 이룬다. 소액거래나 일정 시간 자주 발생하는 거래일 경우 모두의 합의를 거쳐 블록체인에 기록하려면 시간이 걸릴 것이다. 이때, 당사자들의 체인에서 따로 합의를 하고 최종 결과만 메인 네트워크에 기록하면 합의 시간이 훨씬 단축될 수 있다.

이더리움의 해결방안[편집]

이더리움은 확장성 문제를 블록 크기를 개선함으로써 해결하는 것이 아니라 노드 간의 전파 속도 향상에 초점을 맞춰서 해결하고자 한다. 이더리움의 해결 방법은 노드 간의 합의 속도를 빠르게 만드는 것이다. 이를 위한 방법은 POS 전환, 샤딩(Sharding), 라이덴 네트워크(RaidenNetwork), 플라즈마(Plasma) 이렇게 4가지가 있다.

POS 전환[편집]

이더리움PoW(Proof of Work) 작업 증명 방식에서 PoS(Proofof Stake) 지분 증명 방식으로 전환을 통해 확장성 문제를 해결하려 한다. 채굴자(miner)가 채굴(mining)을 통해서 블록을 생성했던 PoW 방식과는 다르게 PoS 방식에서는 이더리움을 많이 소유하고 있는 검증자(Validator)가 블록을 생성한다. 이것은 ‘이더리움에 많은 지분을 갖고 있는 소유자는 이더리움 블록체인의 안정성을 손상시키지 않을 것이다’는 전제를 바탕으로 한다. 이더리움의 합의 방식이 PoS로 전환된다면, 검증자(Validator)를 통해 더 빠른 합의가 이루어질 수 있다. 이더리움은 PoS 전환을 위해 캐스퍼 합의 알고리즘(Casperconsensus algorithm)을 도입할 예정이다. 캐스퍼 합의 알고리즘이란 PoW와 PoS의 하이브리드 형식으로 99번째 블록까지는 PoW 방식으로 거래를 증명하고, 100번째 블록마다 PoS 방식으로 거래를 증명하는 방법을 의미한다. 이더리움 하드 포크 최종 단계인 세레너티(Serenety)에서 PoW에서 PoS로의 전환이 될 예정이며, 비탈릭 부테린합의 알고리즘을 POS로 전환하면서 이더리움 네트워크 검증자로 참여할 수 있는 문턱이 크게 낮아졌다는 점을 강조했다.[5]

샤딩(Sharding)[편집]

샤딩(Sharding)은 데이터베이스 또는 검색 엔진에 있는 데이터의 수평 분할을 의미한다. 쉽게 말해서 전체 데이터를 쪼개 모두가 분산해서 보관하는 것이다. 샤딩을 통해서라면 이더리움 노드들은 이더리움 블록체인의 모든 거래내역을 저장하고 있을 필요 없이, 분산된 데이터베이스인 샤드(Shard)만 저장하면 된다. 샤딩의 목표는 모든 거래를 저장하고 있는 풀노드(fullnodes)의 필요성을 줄여 전체 노드들 간의 거래 합의가 빠르게 이루어질 수 있도록 만드는 것이다. 각각의 노드들은 분산된 거래내역을 저장하고, 맡은 부분의 거래내역만 증명하면 된다. 만약 특정 노드가 자신이 저장하고 있지 않는 거래내역까지 함께 증명해야 할 경우, 필요한 정보를 갖고 있는 노드를 찾아 거래를 증명할 수 있다. 하지만 샤딩에는 몇 가지 문제점도 존재한다. 우선 어떤 노드가 어떤 정보를 갖고 있는지 알게 해주는 메커니즘이 필요하다. 또한 PoS로의 전환이 우선되어야 한다. 현재의 PoW 방식에서는 낮은 해시 파워를 갖고 있는 샤드를 공격하여 전체 시스템에 악영향을 끼칠 수 있기 때문이다. 또한 샤드 간의 원활한 소통을 위한 방법이 필요하다. 예를 들어, 하나의 거래가 노드 A와 B에 나눠져 저장될 수 있기 때문에, 이 경우 노드 A와 B가 서로 신뢰할 수 있는 합의 방식이 필요하다. 최근 비탈릭 부테린은 샤딩에 대해 "지금은 네트워크 내 모든 컴퓨터가 모든 거래를 입증해야 하는데 샤딩이 적용되면 일부 검증자가 일부 데이터만 검증하면 된다"라고 설명했다. 또 " 이를 통해 확장성을 아주 크게 증가시킬 수 있다"라고 강조했다.[5]

라이덴 네트워크(Raiden Network)[편집]

라이덴 네트워크(Raiden Network)는 비트코인라이트닝 네트워크와 같은 개념으로 이해하면 된다. 이더리움ERC20토큰을 위한 오프 체인(Off-chain) 전송 네트워크로, 빠르고 즉각적인 거래를 가능하게 만들어준다. 라이덴 네트워크의 방식은 거래내역을 바로 블록체인에 올리는 것이 아니라 별도의 채널인 오프 체인(Off-chain)을 통해 트랜잭션을 주고받다가 최종 정산된 값만을 블록체인에 올리는 것으로 비트코인의 라이트닝 네트워크와 동일하다. 즉, A와 B가 토큰 전송을 원하면 특정 이더리움 스마트 컨트랙트에 예치하게 되고, 이후에는 둘 사이에 거래치널을 개설한 뒤 오프체인상 거래가 가능하다. 라이덴 네트워크는 오픈소스 방식으로 개발이 진행 중이다. 이더리움뿐만 아니라 모바일 거래, IoT(사물인터넷) 시스템 등에서 토큰 거래를 활성화하는 게 목표이다.[6]

플라즈마(Plasma)[편집]

플라즈마는 확장성 부족 문제에 대한 해결책으로, 이더리움 메인 체인에서 일어나는 거래량을 차일드 체인(Child Chain)으로 분산하는 시스템이다. 각각의 플라즈마 블록체인은 메인 블록체인과 지속적으로 소통을 통해 중요한 사항을 메인 블록체인에 전송한다. 메인 체인에는 모든 거래량이 아닌, 요약된 거래 기록만 담는다. 다만 메인 체인만 쓰는 것에 비해 기능적 제약이 있다. 기존 플라즈마에선 토큰 전송 등 거래 처리는 가능했지만, 이더리움 메인 체인처럼 디앱을 구동할 순 없었다. 이 같은 한계에 대한 해결책은 국내 블록체인 기업에서 나왔다. 정순형 온더 대표는 5월 27일 서울 강남구 코엑스 그랜드볼룸에서 열린 ‘이드콘 코리아 2019’에서 앱 구동이 가능한 플라즈마 ‘토카막 네트워크(Tokamak Network)’를 개발하게 된 과정을 설명했다. 정 대표는 "토카막 플라즈마는 이더리움 메인 체인과 플라즈마 체인의 스펙을 동일하게 만들어 전통의 장점을 살리고 단점을 개선하고자 했다”라고 밝혔다. 토카막 플라즈마는 이더리움 메인 체인과 달리 특정 디앱에 맞춰 커스터마이징(customizing)이 가능하다. 기존에 발행한 ERC-20 기반 토큰을 활용하면서도 다양한 수수료 구조를 채택할 수 있고 동시에 이더리움 커뮤니티의 파워도 빌려올 수 있다.[7]

트루빗(Trubit)[편집]

트루빗(Trubit)은 이더리움 스마트계약 확장성 솔루션으로 위의 솔루션 프로젝트들과 비교하면 많이 알려져 있지 않은 프로젝트다. 다른 솔루션들은 이더리움 블록체인의 '전송(transaction)'절차에 집중하고 있는 것에 반해 트루빗은 전송을 포함해 이더리움 블록체인의 '연산(computation)'증가에 초점을 맞추고 있다. 이더리움 블록체인은 평균적으로 15초마다 한 개의 블록을 생성하며 각 블록에는 약 100여개의 거래 내역이 기록된다. 그리고 동시에 블록을 증명하기 위해 얼마나 많은 연산 능력이 필요한지 측정이 이루어진다. 왜냐하면 코드가 복잡할 수록 그에 따른 수수료가 증가하기 때문이다. 또한 일정 수수료 이상으로 제한되어 있어 사실상 연산 처리에 대한 한계도 존재한다. 수수료 제한을 높일 수도 있지만 그렇게 되면 보상을 받지 못하는 이전 블록 증명에 대해 채굴자들은 증명을 할지 말지에 대한 딜레마(Verifier’s Dilemma)에 빠지는 경우도 있다. 트루빗은 해당 문제에 대한 해결책으로 오프체인을 통한 연산 및 증명의 방법을 제안한다.[8]

특정 DApp을 사용하는 유저가 복잡한 코드에 대한 실행을 원한다고 가정했을 때, 해당 코드를 이더리움 위에서 실행하지 않고 트루빗 프로토콜로 넘긴다. 넘기는 방법은 매우 간단하다. 공개된 API의 명령 함수에 따라 트루빗 스마트계약에 ‘실행하고 싶은 코드(Program)’와 ‘실행에 필요한 입력 값(Input)’, 그리고 ‘실행 결과에 따른 보상(Reward)’ 이 3가지의 값만 전달하면 된다. 그러면 트루빗 네트워크를 통해 해당 의뢰에 대하여 누구나 참여할 수 있는 일종의 마켓이 열리게 된다. 그럼 보상을 받고 싶은 누군가는 ‘Truebit WebAssembly VM’을 이용하여 문제를 풀고 그에 대한 결과물을 ‘해결사’의 자격으로 제출하게 된다. 이때 결과물에 대한 책임으로 예치금을 걸어야 하며, 동시에 ‘도전자’ 타이머가 시작된다. 타이머가 끝날 때까지 새로운 도전자가 나타나지 않으면 해당 결과물은 정답으로 간주되고 DApp 유저에게 전달된다. 그런데 만약 새로운 도전자가 나타나 다른 결과물과 함께 예치금을 걸어 놓으면 ‘증명 게임(Verification Game)’이 시작된다.

증명 게임(Verification Game)

증명 게임은 매우 간단한 형식으로 진행된다. 의뢰가 들어온 코드를 실행하는데 있어 총 14단계가 있다고 한다면 처음과 마지막 단계를 비교하고(결과물이 다르기 때문에 마지막 단계는 다른 값이 나올 수 밖에 없다.) 그 다음에는 7단계를 비교하는 식으로 점점 범위를 좁혀 나간다. 최종적으로 해결사와 도전자 간의 불일치하는 지점을 찾게 되면 해당 지점에 대한 코드를 트루빗 스마트계약 상에서 실행하여 누구의 값이 맞는지 판단이 이루어진다. 이때 올바른 결과물을 입력한 사람은 보상과 함께 예치금을 돌려 받으며 잘못된 결과물을 입력한 사람은 예치금을 돌려받지 못한다.

트루빗은 최근 위의 메커니즘을 이용하여 도지코인을 이더리움 테스트넷에 전송하는 ‘도지더리움 브릿지’(Dogethereum Bridge) 실험을 성공적으로 마쳤으며, 이는 트루빗 기술이 처음 적용된 사례다. 물론 해당 실험에는 특별한 인센티브 없이 선의적 기부에 의존하였다는 점에서 아직까지 트루빗 경제 구조에 대한 유효성이 입증된 것은 아니다. 다만 트루빗 개발자들은 지속적으로 연산력을 사고 팔 수 있는 장터를 설계하고 있으며, 이는 이더리움 플랫폼을 통해 동영상 처리나 머신러닝과 같은 연산 수행이 가능해질 것으로 보고있다. [9]

평가 및 전망[편집]

최근 조셉 루빈(Joseph Lubin) 이더리움(ETH) 공동 창업자가 "이더리움은 이미 상당한 확장성을 이뤘다"며, 몇 개월 내 이더리움 2.0 테스트넷를 출시할 예정이라고 밝혔다. 이더리움은 트랜잭션 처리속도를 높이기 위한 확장 솔루션인 플라즈마(Plasma)와 영지식 증명 기술(Zero-Knowledge Proof)인 zk-SNARKs 등을 통해 이더리움의 확장성과 보안이 향상됐다. 또한 '이더리움 1.0'에서 '이더리움 2.0'으로 이전될 것이며 빠른 시일 내에 비콘체인(Beacon Chain)을 사용할 수 있는 방법이 나올 것으로 전망된다.[10] 또한 비트코인라이트닝 네트워크를 채택한 이후로 비트코인의 가격이 오르고 있다. 그만큼 라이트닝 네트워크가 비트코인의 확장성 문제를 해결하는 것에 큰 기여를 했다. 최근 비트코인이 상승 모멘텀을 지속하면서 전문가들의 긍정적인 전망이 이어지고 있다.[11] 확장성 문제는 암호화폐가 살아남기 위해 반드시 해결해야 하는 문제이다. 아직 완벽하게 확장성 문제를 해결한 암호화폐는 없으며, 위의 두 암호화폐를 제외한 다른 암호화폐들 또한 확장성 문제를 해결하기 위해 노력하고 있다.

각주[편집]

  1. 블록체인, 〈비트코인이 또 나눠질 뻔했다?! 세그윗이 뭐길래?〉, 《네이버 블로그》, 2019-04-08
  2. 빗썸, 〈비트코인 세그윗(SegWit)〉, 《네이버 블로그》, 2017-12-16
  3. 민서연 기자, 〈끝나지 않은 하드포크 전쟁 '비트코인 캐시'〉, 《디센터》, 2018-11-14
  4. 이우찬 기자, 〈비트코인 확장성 문제 해결 위한 '라이트닝 네트워크' 〉, 《뉴스토마토》, 2019-04-24
  5. 5.0 5.1 임유경 기자, 〈"이더리움, 6초만에 거래완료...신용카드처럼 사용"〉, 《지디넷코리아》, 2019-04-05
  6. 이우찬 기자, 〈이더리움 토큰 전송 위한 확장 솔루션 ' 라이덴 네트워크'〉, 《뉴스토마토》, 2019-05-15
  7. 박현영 기자, 〈정순형 온더 대표 "플라즈마에서도 이더리움 메인 체인처럼 앱 구동할 수 있다"〉, 《디센터》, 2019-05-28
  8. Geon-gi Mun , 〈블록체인 확장성 솔루션 시리즈 5–1 :: Truebit A to Z〉, 《Steemit》 개인 블로그, 2018-07-05
  9. 블록인프레스, 〈이더리움, 도지코인의 구세주 될 수 있을까?〉, 《블록인프레스》 2018-02-20
  10. 박병화, 〈조셉 루빈 "몇개월 내 이더리움 2.0 테스트넷 출시"…"이미 상당한 확장성 이뤘다"〉, 《코인리더스》, 2019-06-07
  11. 김진범,〈前 월가 투자자 "비트코인, 이번주 15,000달러 돌파 전망"〉, 《코인리더스》, 2019-08-05

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 확장성 문서는 블록체인 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.