"아발란체, 근본부터 다른 차세대 블록체인..비트코인 대항마 될 것"
리더 개념 없애고 비동기적 처리 지원하는 고속 프로토콜 개발
1초 요약(TL; DR)
1. 아발란체는 방향성비순환그래프(DAG)와 비잔틴장애감내(BFT) 알고리즘을 결합해 7000TPS가 넘는 고속 프로토콜을 개발했다.
2. 아발란체 프로토콜에서는 블록을 생성하는 리더 개념을 없애 효율성을 높였다. 거래 내역은 블록이 아닌 DAG 원장에 기록된다.
3. 아발란체 프로토콜에서 합의는 참여자 간 값을 서로 비교, 수정하는 가상 설문 투표 방식으로 작동한다.
4. 아발란체 프로토콜은 프라이빗 기능 지원, 인터체인 기술을 토대로 블록체인 사용성을 더욱 확보할 예정이다.
“비트코인, 이더리움 등 기존 플랫폼은 디지털 자산의 거래를 전세계적인 규모로 현재 지원할 수 없다. 거래 시간이 오래걸리고 프로토콜에서 소화하는 실시간 데이터 처리량도 충분하지 않기 때문이다. 반면 아발란체는 7000TPS를 뛰어넘도록 확장성을 최대한 끌어올렸고 비즈니스를 위한 인터체인, 암호화 알고리즘을 여럿 지원해 사용성도 높였다. 대다수의 경우 플랫폼 자체도 변경하기 어려워 거버넌스 관리도 쉽지 않지만 아발란체에서는 거버넌스도 추후에 변경할 수 있어 민팅, 노드 비율 등을 어렵지 않게 후속 통제할 수 있다. 아발란체는 비잔틴장애감내(BFT) 블록체인으로 개인간거래(P2P) 시대를 열겠다.”
에민 건 시러 코넬대 컴퓨터공학과 교수(사진 중앙)는 지난달 개최된 비들아시아2019 이후 아발란체 한국 밋업에서 기자와 만나 아발란체 프로토콜의 확장성과 다양한 기능을 설명하며 이같이 말했다. 아발란체는 코넬대 박사과정 연구원들과 아바랩스 팀을 주축으로 구현한 블록체인 프로젝트다. 아발란체는 로켓단으로 불리는 익명의 단체가 제시한 백서를 바탕으로 한다. 아발란체라는 프로젝트 이름은 눈사태를 뜻하는 영단어로 산꼭대기에서 굴러가는 눈송이가 점점 커지듯 네트워크에서 합의에 이루는 과정도 갈수록 신속하게 처리되다는 의미를 담고 있다. 아발란체는 고전합의 알고리즘인 비잔틴장애감내(BFT) 알고리즘과 비트코인의 합의 알고리즘인 나카모토 합의알고리즘을 융합한 독자적인 프로토콜을 구현했다.
"블록체인이 비잔틴 장애에 견디는 수준, 사용자가 직접 설정할 수 있다"
분산원장 연구는 블록체인 이전부터 있었다. 분산네트워크에서 합의란 트랜잭션과 블록 처리 순서를 결정하는 방식이다. 블록체인에서 이같이 연산한 결과는 모든 노드에서 동일하게 나타나야 한다. 하지만 사이버 공격이나 트랜잭션 지연이 넘쳐나는 네트워크에서 단일한 합의 상태에 도달하는 과정은 쉽지 않다.
비잔틴 노드의 공격에 맞서는 비잔틴장애감내(BFT) 연구가 1970년대에 처음 등장했다. 비잔틴 노드는 메시지를 훔쳐보고 거짓메시지를 전송해 올바른 합의를 방해하는 악성 노드를 말한다. BFT 알고리즘이란 분산 네트워크에서 비잔틴 노드가 제출한 거짓 데이터를 올바른 값으로 전부 수정해 합의를 이루는 알고리즘을 말한다. BFT 계열의 블록체인에서는 비잔틴 노드가 네트워크의 최대 33%를 차지하는 경우까지 합의의 안정성을 보장한다. 만약 네트워크가 견딜수 있는 수준보다 더 많은 비잔틴 노드가 발생하면 합의의 안정성이 깨지고 시스템 자체가 붕괴될 수 있다.
BFT 합의알고리즘에서 ‘리더 정책’을 없애면 심플하고 빨라진다
분산 컴퓨팅 환경에서 거래 데이터를 증명하고 지불에 문제가 없는지 확인하는 절차도 결국은 분산 합의과정에서 이뤄진다. 블록체인에서는 이를 거래의 정산이나 블록의 완결이라는 용어로 표현하기도 한다. 블록 생성 등 거래 정보를 기록하는 역할은 많은 경우 리더가 맡는다. 블록체인에서 말하는 리더란 블록을 생성하는 주체, 즉 BP를 말한다.
반면 아발란체는 BFT 합의 알고리즘에서 리더를 없앴다고 강조했다. 나카모토 합의를 사용하는 비트코인, 이더리움에서는 작업증명(PoW) 문제를 가장 빨리 푼 노드가 리더가 된다. 리더 방식으로 작동하는 블록체인에 문제가 발생하면 리더를 소환하고 비정상행위를 확인하게 된다. 실제로 비트코인의 경우 마이너가 비정상행위를 일삼는 경우가 많다. 다만 리더를 소환해 문제를 확인하는 과정상 시스템의 복잡성이 크게 증가하는 점이 기존 리더베이스 프로토콜의 단점이다.
반면 리더를 없애면 합의 과정에서 리더 때문에 발생하는 문제를 예방할 수 있게 된다. 또 리더를 겨냥한 공격도 발생하지 않아 공격 벡터가 애초에 줄어드는 효과도 있다. 시러 교수는 “리더베이스의 분산합의 방식은 유연하지 못한데 실제로 지분증명(PoS), BFT를 융합한 텐더민트 알고리즘의 경우 비정상행위를 포착하는 단계가 복잡해 문제를 처리하는 효율이 떨어진다”고 지적했다.
리더가 프로토콜에서 거짓 데이터를 기록하는 등 비정상행위를 하면 슬래싱을 통해 자금을 삭감해 리더를 처벌하는게 일반적이다. 슬래싱 메커니즘에는 리더가 수행한 옳은 행위에 대한 별도의 보상이 없고 잘못된 행위가 발생하면 돈을 회수하기만 할 뿐이다. 시러 교수는 이같은 방식이 합의알고리즘과 완벽하게 어울리지는 않는다고 지적했다. 시러 교수는 “사람들은 실수, 환경설정의 잘못, 소프트웨어 에러, 하드웨어 문제 등 다양한 사유로 비정상행위를 발생시키는데 이를 모두 처벌하기보다는 리더개념을 애초에 없애 문제를 예방하고 합의 레이어 자체의 복잡성을 낮추는 편이 훨씬 유용하고 현실적”이라고 강조했다. 실제로 아발란체에서는 별도의 블록생성자가 따로없고 모든 거래 내역은 블록이 아닌 방향성비순환그래프(DAG) 자료형 위에 기록된다.
45년만의 새로운 BFT 알고리즘 계보, 아발란체 프로토콜의 역사
1970년대 시작된 BFT 이론에 대한 연구는 현재까지 효과적으로 블록체인에 접목되고 있다. 실제로 최근 블록체인 합의 알고리즘에도 고전 BFT 계열 알고리즘이 많이 사용되고 있다. 실제로 헤데라 해시그래프, 알고랜드 등이 예전 BFT 알고리즘을 블록체인에 부활시킨 사례다. 아발란체 프로토콜은 이들보다 더욱 효율적인 데이터 처리를 지원하는 BFT 알고리즘을 목표로 로켓단이 탄생시켰다. 아발란체 프로토콜 자체는 소문을 퍼뜨리듯 메시지를 전파하는 가십프로토콜과 에피데믹 프로토콜에서 영감을 많이 받았다.
백서에 따르면 로켓단이 제시한 아발란체 프로토콜은 실제로 여러 단계의 연구 과정을 거치며 발달했다. 아발란체 프로토콜은 스노우패밀리 프로토콜이라고 불리며 슬러시, 스노우플레이크, 스노우볼, 스노우맨, 아발란체 순서로 발달했다.
먼저 슬러시는 로켓단이 제시한 가상의 설문 투표 개념을 최초로 구현한 프로토콜이다. 슬러시에서 합의는 네트워크에서 소규모의 참여자를 대표로 임의 추출해 의견을 묻는 설문조사 방식으로 진행된다. 예를 들어 10,000명이 속한 네트워크에서 대표자로 5명의 참여자를 임의로 추출하고 그들에게 빨강색과 파랑색 중 어떤 색을 택하겠느냐고 묻는 식이다. 여기서 색깔은 실제로 합의의 구체적인 데이터가 된다. 이를 반복하다보면 전체 프로토콜에서 우세한 내용으로 합의가 기울고 동일한 합의 내용에 마침내 이를 수 있게 된다.
하지만 슬러시에서 합의는 CFT 방식으로 이뤄져 거짓메시지로 추정된 메시지는 버려지고 나머지 데이터를 토대로 전체 네트워크의 합의가 성취된다. 거짓값 등으로 판정된 데이터를 모두 버리고 올바른 노드만을 토대로 합의를 진행시키는 방식을 충돌장애감내(CFT) 알고리즘이라고 한다. 두번째로 등장한 스노우플레이크는 슬러시의 CFT를 BFT 방식으로 수정 보완한 프로토콜이다. 즉 비잔틴 노드가 전파한 거짓 메시지를 올바른 값으로 수정하는 알고리즘이 탑재돼 있다. 이로써 합의에 이르는 효율성을 더욱 끌어올렸다.
세번째 프로토콜인 스노우볼부터는 스테이트 개념이 탑재됐다. 스테이트란 이더리움에서 각종 변수와 코드를 저장하는 종합 저장소와도 같은데 스노우볼에 탑재되는 스테이트도 이와 유사하다. 즉 스테이트는 블록체인에서 기억장치에 해당한다. 스테이트가 도입된 이유는 데이터 처리를 더 효율적으로 하기 위해서다. 네번째로 등장한 프로토콜인 스노우맨은 스노우볼과 아발란체 사이에 위치하며 아바랩스는 스노우맨을 업데이트하며 스마트 컨트랙트의 구동 기능을 프로토콜에 탑재시켰다.
시러 교수는 “로켓단이 작성한 페이퍼 자체는 수학을 나타낸다. 이를 아바랩스가 직접 구현한 것이다. 아발란체 프로토콜에서는 몇개의 라운드 후 파이널리티를 즉각 성취할 수 있게 해주는데, 한국같은 경우 네트워크가 빠르기 때문에 20라운드 정도는 1초보다 훨씬 더 적은 시간이 걸려 처리 속도가 매우 빠를 것”이라고 말했다. 실제로 고전 합의프로토콜에서 10,000명의 노드를 검증하는데는 기존 방식으로는 1억회 이상의 메시지 교환이 필요하지만 아발란체에서는 17번의 라운드에 걸친 85번만의 메시지만 교환하면 돼 합의에 이르는 시간이 상당히 단축된다는 설명이다.
로켓단이 제시한 백서는 동기적인 트랜잭션 처리만을 지원하는 경우만 제시하고 있다. 동기적인 처리란 순서에 맞춰 요청을 하나씩 처리하는 방식을 말한다. 중간에 한 트랜잭션에서 지연이 발생하면 다른 트랜잭션 처리도 늦춰진다. 반면 비동기식 처리란 여러 일을 동시다발적으로 처리하는 방식을 말한다. 하지만 여러 이벤트가 동시다발적으로 발생하는 네트워크에서 트랜잭션 요청을 비동기식으로 처리하기란 쉽지 않다. 반면 아바랩스가 구현한 아발란체 프로토콜은 백서에 제시된 수준을 넘어 비동기식 비잔틴장애감내(aBFT) 처리를 지원해 트랜잭션을 비동기식으로 처리할 수 있다. 동기식 처리보다 처리 방식이 더 실용적이며 효율적인 트랜잭션 처리를 지원한다.
방향성비순환그래프(DAG) 탑재된 차세대 블록체인 아발란체
백서에 따르면 아발란체 프로토콜은 고전 합의 프로토콜과 나카모토 합의 알고리즘의 장점을 융합해 만들어졌다. 고전 합의프로토콜은 45년 이상 연구된 기존의 BFT 분산합의 이론을 말하며 나카모토 합의 알고리즘은 비트코인, 이더리움에서 사용되는 현 작업증명(PoW) 알고리즘을 말한다. 고전 합의 프로토콜은 모든 노드간 연결을 통해 탈중앙화를 확실히 성취한다. 다만 네트워크가 견고하지는 못했다. 고전 합의 프로토콜에 참여하는 노드의 수를 확장하는데 어려움이 따랐고 33%까지만 합의의 안정성을 보장했기 때문이다. 또 나카모토 합의의 경우 전기 에너지 소비가 심하고 마이닝 풀 중앙화 이슈까지 현재 겹쳐 둘 모두 완벽하지 못했다.
시러 교수는 “아발란체는 DAG를 탑재해 고전합의 프로토콜처럼 탈중앙화를 확실히 성취하면서 나카모토 합의 알고리즘보다 견고하고 유연한 프로토콜을 만들었다”고 강조했다. DAG란 컴퓨터과학에서 그래프를 토대로한 자료구조를 말한다. 그래프란 컴퓨터 과학에서 점과 선으로 데이터를 연결하는 자료구조를 말한다. 블록체인에서 점은 트랜잭션이 되고 선을 통해 트랜잭션의 전후 맥락을 나타낸다. 모든 트랜잭션은 최초의 점으로부터 연결되는 구조다. 방향성비순환그래프(DAG)는 트랜잭션을 화살표로 연결할때 루프 등 순환 마디가 발생하지 않는 경우의 그래프를 말한다. DAG는 점과 직선을 토대로 무한히 성장할 수 있는 특징이 있다. 아발란체의 거래 기록은 DAG 원장에 결과값으로 기록된다.
DAG에 대한 자세한 정보는 다음의 기사에서 확인할 수 있다. '블록체인보다 더 많이, 더 빠르게, DAG 분산원장'
DAG는 네트워크에서 발생하는 여러 결정을 병렬적으로 처리할 수 있어 분산 컴퓨팅의 효율적인 솔루션으로도 주목받고 있다. DAG에서는 시스템이 하나의 의사결정 모델을 따르지 않고 의사결정을 수행하는 프로그램 여럿을 묶어서 작업을 동시에 처리할 수 있다. 아발란체의 경우 프로토콜 내 DAG를 구현했고 스노우볼 인스턴스를 아발란체 프로토콜 안에서 여럿 구동시키고 있다.
시러 교수는 “아발란체에서는 DAG를 이같이 도입한 성과로 거래의 완결성도 1초 내에 성취할 수 있었다. 다른 프로토콜에서도 완결성을 위해 고심하지만 몇초대로 만들기는 매우 어렵다. 하지만 아발란체에서는 현재 테스트넷에서 2000명의 참가자가 초당 7000트랜잭션을 보내고 있는 상황에도 즉각적인 완결성을 보장한다"고 밝혔다.
케빈 아발란체 개발자는(사진 왼쪽) “DAG는 데이터베이스를 쪼개서 효율성을 높이는 데이터베이스 샤딩보다 보안성도 높고 속도도 애초에 빠르게 성취할 수 있다. 보안성이 높은 이유는 DAG에 기록된 데이터는 변경을 위해서는 연관된 데이터를 모두 변경해야하는 제약 때문이다”라고 말했다. 데이터베이스 샤딩의 경우 데이터베이스를 쪼갠 샤드로 데이터를 넘기는 과정에서 보안 취약점이 발생할 수 있지만 DAG에서는 이같은 취약점 없이 보안성을 애초에 높게 성취할 수 있다는 설명이다.
한편 아발란체에서 코인, 토큰 거래는 미사용거래출력값(UTXO) 장부를 통해 관리된다. UTXO란 블록체인 네트워크에서 통화로 인정받은 화폐 뭉치를 말한다. 비트코인에서도 UTXO 모델을 사용한다. 예를 들어 비트코인에서 송금거래를 하면 사용자의 UTXO가 쪼개져 소모되고 그 과정에서 새로운 UTXO가 생성된다.
UTXO 자료형은 코인을 얼마나 갖고 있고 어디로 보내는지 추적할 수 있는 특징이 있다. 때문에 이중지불을 방지하는데도 효과적으로 사용된다. UTXO 자료를 사용하는 블록체인은 거래마다 일종의 시리얼 넘버가 적힌 코인이 거래마다 탄생하는 것과 같다. 이같은 장치는 거래에서 코인이 비정상적으로 생성되지 않았음을 보증하는 지표가 된다.
실제로 이더리움 플라즈마 캐시 등에서도 이중지불과 데이터 가용성 문제를 풀기 위해 UTXO 모델을 도입했다. UTXO 잔액보다 큰 송금 요청은 처리되지 않고 개체마다 값이 붙어 이중지불을 애초에 방지할 수 있는 효과가 있기 때문이다. 한편 아발란체에도 수수료가 존재한다. 아발란체의 수수료는 시빌 공격, 스팸 등을 막기 위한 용도다. 수수료는 1센트를 여러 조각으로 쪼갠 마이크로 단위의 수수료가 투입된다.
“사용자 토큰 디자인을 위한 멀티 VM 지원, 인터체인 기술로 프로토콜 확장할 것”
블록체인에서 하나의 코인은 하나의 메인넷으로 구동되는게 일반적이다. 두개 이상의 메인넷을 지원하는 경우는 흔치 않다. 반면 아발란체에서는 아바 플랫폼에 기반한 메인넷도 얼마든지 만들 수 있다. 블록체인 프로토콜에서 코인의 성격 자체를 추후에 바꾸기도 쉽지 않은데 이경우 하드포크가 반드시 필요하기 때문이다.
반면 아바 플랫폼에서는 지캐시 등 특정 코인에만 존재하는 특정 기능을 나만의 코인에 덧입히거나 형식을 바꾸는 등의 커스텀 작업도 얼마든지 할 수 있다. 예를 들어 트랜잭션에서 데이터를 감추는 프라이버시 기능 등 여러 조건에 맞춰 코인을 제작할 수도 있다. 주식 등 특정 디지털 자산을 매개하는 토큰을 설계할 수도 있다. 아발란체 프로젝트는 사용자가 자신에게 맞는 토큰을 설계하고 사용할 수 있도록 선택권을 제공해 프로토콜 자체의 사용성을 높이려는 목표다.
아발란체 메인넷에서 기능 지원이 여럿 가능한 이유는 프로토콜 자체가 가상머신(VM)을 다수 지원하기 때문이다. 실제로 이더리움가상머신(EVM), 웹어셈블리(WASM) 등 가상머신이 지원될 예정이다. 프로토콜에서 VM을 여럿 탑재하면 지원하는 스크립트 언어도 늘어나는 효과가 있다. 그뿐만 아니라 영지식증명, 모네로의 링 시그니쳐, 프라이버시 트랜잭션 기술 등도 지원될 예정이다. 때문에 사용자는 자신이 원하는 기능을 마음대로 섞어서 자신만의 블록체인 토큰을 만들어 비즈니스에 활용할 수 있게 된다. 특히 사용자 프라이버시를 보호하기 위한 기능 지원도 늘어날 예정이다.
시러 교수는 서로 다른 블록체인을 연결하는 아발란체의 인터체인 기술도 강조했다. 아발란체 프로토콜에서는 비트코인, 이더리움, 라이트코인 등 다른 블록체인에서 생성한 코인을 아발란체로 가져와서 사용할 수도 있다. 이같은 기능을 구현하는데는 브릿지 기술이 사용된다.
브릿지란 다른 블록체인에서 만들어진 코인을 사용하고 있는 블록체인으로 가져오기 위해서 중간에서 연결하는 다리 노드를 말한다. 아발란체에서 브릿지는 담보금을 예치하는 콜레트럴 브릿지의 형태로 만들어진다. 특히 아발란체의 브릿지는 보안성을 높이기 위해 신뢰실행환경(TEE)과 인텔의 소프트웨어가드익스텐션(SGX) 위에서 구현된다. 한편 아발란체에서 주조된 사용자 토큰 간 아토믹 스왑도 기본적으로 지원된다. 아토믹 스왑이란 브릿지를 거치지 않고 프로토콜 자체에서 서로 다른 토큰간 간편 교환을 빠르게 수행하는 기능을 말한다.
브릿지와 아토믹스왑 등 인터체인 기술의 내용은 다음의 기사에서 자세히 확인할 수 있다. 너와 나의 '블록체인' 연결 고리 사이드 체인, 도지더리움으로 보는 인터체인의 역사2 - 인터체인 세계사 편
한편 시러 교수는 아발란체를 만들면서 독창적인 프로토콜을 만들기 위한 연구 과정이 가장 어려웠다고 회상했다. 아발란체 프로토콜은 코드를 포크하지 않고 코드를 모두 새로 작성했고 근본적으로 다른 독창적인 프로토콜이라고 강조했다. 추가적으로 구현한 부분도 많다. 네트워크 라이브러리, 데이터베이스 설계, 연산 과정 간소화 등의 작업을 거쳤다. 때문에 로켓단의 백서에서 제시한 아발란체 프로토콜의 성능은 3400TPS 수준이지만 아바랩스가 구현한 아발란체 프로토콜은 7100TPS가 넘는 성능을 구현하고 있다. 비자카드가 처리하는 초당 트랜잭션 수보다 두배 높은 성능이다. 이밖에도 아바랩스는 아발란체의 클라이언트를 C++, 고(GO), 파이썬(python) 등 3가지 구현체로 개발했다. 아바랩스는 아바토큰과 자체 코드를 곧 공개할 예정이다.
[강민승 D.STREET(디스트리트) 기자]
[ⓒ 매일경제 & mk.co.kr, 무단전재 및 재배포 금지]
Copyright © 매일경제 & mk.co.kr. 무단 전재, 재배포 및 AI학습 이용 금지