금융 시스템을 위한 블록체인 플랫폼

Scroll

LINE Financial Blockchain은 분산원장 기술과 결함 허용1 시스템, 블록체인 데이터 구조를 적용한 플랫폼입니다. 기존 블록체인이 고성능과 확장성 가운데 하나에만 집중했다면, LINE Financial Blockchain은 둘을 모두 달성할 수 있도록 최신 알고리즘과 정교한 구현체를 제공합니다.

금융 플랫폼에 적합한 설계

LINE Financial Blockchain은 빠르고 안전하며, 맞춤 설정이 가능하고, 금융 규약을 준수하기 쉽게 만들어졌습니다. 이런 설계 목표 덕분에 CBDC를 비롯한 다양한 금융 시스템의 요구사항을 만족할 수 있습니다.

빠른 속도

네트워크의 성능은 속도를 결정하는 중요한 요소입니다. LINE Financial Blockchain은 TPS(Transaction per second)를 높이기 위해 여러 가지 합의 알고리즘을 제공합니다. 예를 들어, 프라이빗 네트워크에서 동작하는 서비스에 높은 TPS가 필요하다면, 기존 금융 서비스 수준(최대 2k TPS)을 제공하는 자격 증명(proof of authentication, 이하 PoA) 알고리즘을 채택할 수 있습니다.

블록체인 네트워크에서 읽기 작업은 쓰기 작업보다 상대적으로 빠르므로, LINE Financial Blockchain은 읽기 전용 노드를 설정해 데이터를 빠르게 조회하게 했습니다. 준비 중인 페이먼트 채널 네트워크(payment channel network)는 오프체인(off-chain)에서 거래를 처리해 온체인(on-chain)의 처리량을 줄임으로써 온체인 처리 성능을 높여줍니다.

LINE Financial Blockchain은 이 외에도 속도를 높이는 다양한 방법을 적용했습니다. 네이티브와 가상 머신을 모두 지원하는 것도 그중 하나입니다. LINE Financial Blockchain에서는 토큰 발행, 주조, 전송 같이 빈번히 발생하는 트랜잭션을 네이티브로 처리해 속도를 높이고, 좀 더 복잡한 사용자 정의 비즈니스 로직은 가상 머신에서 독립적으로 실행합니다. 가상 머신 또한 네이티브에 가까운 성능을 내는 WASM을 채택해 스마트 계약(smart contract)의 실행 속도를 높였습니다.

안전성

노드의 역할 분리는 안전성에도 영향을 미칩니다. LINE Financial Blockchain은 투표에 참여하는 노드를 숨기고 그밖의 노드만 공개하므로 안전합니다. 또, Verifiable Random Function(이하 VRF)을 적용해 블록 제안자를 임의로 선출함으로써, 외부 공격으로부터 블록 제안자를 보호할 수 있습니다.

거래 정보를 유출하지 않고 안전하게 처리하기 위해 영지식 증명(zero-knowledge proof)과 페이먼트 채널 네트워크도 지원하도록 준비하고 있습니다.

맞춤 설정

LINE Financial Blockchain은 레이어 구조를 채택해 설정이 자유롭고 필요에 따라 기능을 활성화(pluggable feature)할 수 있습니다. CBDC같이 요구사항이 엄격한 애플리케이션에 적합한 구조입니다.

합의 알고리즘과 검증 노드 수는 블록체인 네트워크의 특성을 결정하는 중요한 요소입니다. 확장성이 극히 높아야 하는 네트워크도 있고, 처리 성능이 높아야 하는 네트워크도 있으며, 확장성이나 처리 성능 보다는 투표할 때 각 참여 노드에 공정한 기회가 주어지는 것을 선호하는 네트워크도 있습니다. LINE Financial Blockchain에서는 목적에 따라 이 두 요소를 맞춤 설정할 수 있습니다. 

또, 소규모 참여자를 위한 프라이빗 네트워크, 컨소시움 형태 네트워크는 물론, 누구나 자유롭게 참여할 수 있는 퍼블릭 네트워크를 모두 지원해, 사례에 적절한 형태로 블록체인을 구축할 수 있습니다.

컴플라이언스 친화적

LINE Financial Blockchain은 KYC(Know Your Customer)나 AML(Anti Money Laundering) 절차를 프로토콜 레이어로 손쉽게 추가할 수 있습니다. 이를 이용해 절차를 통과하지 못한 사용자의 계정을 비활성화하거나 보유 또는 거래 한도를 제한할 수 있습니다.

검증 정보에 접근할 권한을 가진 검증 노드가 정보를 조회해 오프체인에서 검증하게 함으로써 온체인의 프라이버시 침해 문제를 방지할 수도 있습니다.

 

레이어 구조를 이용한 기능 독립

LINE Financial Blockchain은 역할에 따라 레이어를 나눴습니다. 각 레이어는 독립적으로 구성할 수 있습니다.

  • 애플리케이션 레이어(application layer): 각 노드의 비즈니스 로직 역할
  • 합의/네트워킹 레이어(consensus/networking layer): 노드 간 합의와 통신 역할

LINE Financial Blockchain에서는 애플리케이션의 특징에 맞게 블록체인 네트워크를 생성, 구축하고 이용 사례별로 필요한 기능을 조합할 수 있습니다.

레이어가 서로 독립적이므로, 비즈니스 로직에 손대지 않고 합의 알고리즘을 변경해 합의 속도를 높이거나 애플리케이션 레이어만 변경해 요구 사항에 맞춘 비즈니스 로직을 구현할 수 있습니다. 또, 각 레이어를 독립된 다수 모듈로 구성해 필요에 따라 모듈을 추가하거나 제거할 수 있게 했습니다. 검증자 수, 최대 블록 크기, 브로드캐스트 형식 등을 맞춤 설정해 원하는 수준의 안전성과 보안, 성능을 달성할 수도 있습니다.

LINE Financial Blockchain에서 애플리케이션 레이어와 합의 레이어는 ABCI(Application BlockChain Interface)에 따라 통신합니다. LINE Financial Blockchain의 합의 엔진은 오픈소스 합의 엔진에 기반하므로, ABCI를 따르는 애플리케이션이라면 무엇이든 합의 레이어와 통신할 수 있습니다. LINE Financial Blockchain이 제공하는 기본 애플리케이션 모듈 또한 ABCI 호환 오픈소스 애플리케이션으로 만들었습니다.

인터체인 프로토콜

LINE Financial Blockchain은 인터체인 프로토콜(interchain protocol)을 지원합니다. 인터체인 프로토콜은 안전하고 믿을 수 있는 블록체인 간 통신 프로토콜입니다.

인터체인 표준을 따르면, 호환되는 다른 CBDC 네트워크와 연결하기 쉽습니다. 일반적으로 네트워크에 허브가 있고, 그 허브와의 교환을 허용함으로써 허브에 연결된 다른 시스템과 자산을 교환하는 방식을 사용합니다.

이는 타 CBDC와 상호 운영하는 CBDC 시스템을 구축하는 데 도움이 됩니다. 허브와 개별 CBDC 시스템이 같은 표준을 준수하면 기술 연결 비용 때문에 허브를 강제할 필요가 없는 것이 장점입니다. CBDC 네트워크는 국가 정책에 따라 어느때건 교환하고자 하는 CBDC 네트워크하고만 통신할 수 있으며, 여기에는 기술 비용이 거의 들지 않습니다.

 

LINE Financial Blockchain 동작 방식

LINE Financial Blockchain은 반복되는 라운드마다 각자의 비즈니스 로직을 실행하는 여러 시스템을 묶은 네트워크입니다.

네크워크를 구성하는 모든 시스템이 동일한 데이터를 보관하기 위해, 데이터 변경 요청이 있을 때 트랜잭션이 일어납니다. 이렇게 만들어진 트랜잭션의 묶음은 블록이라 부르는 한 라운드에서 처리됩니다. 매 라운드에서 각 시스템은 다음 작업을 진행합니다.

  1. 네트워크의 각 시스템이 독립적으로 요청을 수락합니다. 모든 요청은 로컬에 보관하며, 처리 전에는 다른 시스템에 공유하지 않습니다.
  2. 선정된 한 시스템(제안자)이 로컬에 저장한 요청(블록) 일부를 처리하고, VRF 증명과 검증 포맷을 다른 시스템에 전파합니다. VRF 증명이란, 자신이 제안자로 선정된 증거를 말합니다.
  3. 각 시스템은 VRF 증명, 트랜잭션 처리 결과, 최종 상태를 검증한 다음, 다른 시스템에 전파합니다. 이를 사전 투표(prevote)라고 합니다.
  4. 각 시스템은 다른 시스템이 사전 투표하기를 기다렸다가, 2/3 이상이 투표하면 받은 블록과 투표한 시스템 목록을 검증합니다. 그후 검증 결과를 다른 시스템에 전파합니다. 이를 사전 커밋(precommit)이라고 합니다.
  5. 각 시스템은 다른 시스템이 사전 커밋하기를 기다렸다가, 2/3 이상이 사전 커밋하면 블록을 커밋합니다. 블록은 최종 상태가 됩니다. 이것으로 라운드는 종료됩니다.
  6. (새 라운드 시작) 각 시스템은 생성한 블록과 개인 키를 이용해 로컬에서 VRF를 실행합니다. 자신이 제안자라면 1번 작업부터 다시 시작합니다. 그렇지 않으면 2번 작업으로 가서 제안자가 다음 블록과 VRF 증명을 전파할 때까지 대기합니다.

 

이처럼 데이터를 저장하기 전에 몇 단계를 거치므로, 기존 아키텍처보다 시간이 오래 걸리지만 데이터의 손실이나 위조, 유출, 불일치를 방지해 줍니다.

합의 알고리즘

LINE Financial Blockchain은 안전하면서도 빠른 합의 알고리즘을 제공합니다.

PBFT

LINE Financial Blockchain 동작 방식에서 본 것처럼 LINE Financial Blockchain에서는 합의가 반드시 필요합니다. LINE Financial Blockchain의 합의 알고리즘은 PBFT에 기반합니다. PBFT 알고리즘은 비잔틴 장애에 대응할 수 있는 BFT 알고리즘을 변형한 것으로, 동시에 1/3 미만의 노드에 결함이 발생해도 시스템이 동작하게 해주며, 확정한 트랜잭션이 취소되지 않는 완결성을 보장하기도 합니다.

PBFT에서 각 노드는 다른 모든 노드와 한 번 이상 통신합니다. 이 때문에 노드가 많아질수록 합의에 이르기까지 더 많은 시간이 필요하지만, 네트워크의 안정성 또한 높아집니다. 노드 수, 정확히 말해 검증에 참여하는 노드 수는 합의 속도와 안전성 사이의 균형을 맞추는 요소로, 최적의 검증 노드 수는 애플리케이션마다 다릅니다. LINE Financial Blockchain은 검증 노드 수가 늘어나더라도 합의 속도가 현저히 떨어지지 않도록 적절한 노드가 선정되도록 구현했습니다.

VRF

VRF(Verifiable Random Function)는 공개 키를 사용하는 암호화 해시입니다. 개인 키를 가진 노드만 해시를 계산할 수 있되, 공개 키를 가진 노드는 누구나 그 해시의 정확성을 검증할 수 있습니다.

앞서 언급한 것처럼, PBFT 네트워크는 검증 노드 수에 따라 속도와 안정성 간에 트레이드-오프가 있습니다. 하지만 LINE Financial Blockchain은 VRF를 적용해 검증 노드 수가 늘어날 때 실제로 검증과 투표에 참가하는 노드 수를 효과적으로 줄임으로써 성능을 향상하고 네트워크 확장성을 높였습니다.

PoS와 PoA

PBFT 네트워크에서는 매 라운드에서 제안자 선출 작업이 무척 중요합니다. PoS(Proof of Stake, 지분 증명)와 PoA(Proof of Authentication, 자격 증명)는 제안자를 선출하는 방법입니다.

PoS는 소유한 지분이 많은 노드를 선호합니다. 네트워크 운영이 잘 이뤄지지 않으면 지분 가치가 떨어지므로, 지분을 많이 가진 노드가 네트워크 운영을 도울 동기가 더 크다는 판단 때문입니다. LINE Financial Blockchain의 PoS는 지분량 상위 N개 노드를 선정하는 것을 기본으로 하되, VRF 기반 추첨도 지원합니다. PoA는 미리 정의된 노드를 선호하며, 검증 노드가 바뀌지 않는 프라이빗 네트워크에 적합합니다. 미리 정의된 검증 노드는 비잔틴 노드일 가능성이 낮으므로 합의 속도와 네트워크 속도가 가장 빠릅니다.

LINE Financial Blockchain은 PoA와 PoS를 모두 지원합니다. 따라서 검증 노드 수가 적고 알려진 초기에는 PoA를 사용하다가, 검증 노드가 늘어나면 PoS로 변경할 수 있습니다.


1. 1/3 미만 노드에서 동시에 결함이 발생해도 정상 동작