1. 현 블록체인 시스템의 과제와 확장성의 한계

1.1 문제 설명과 동기

블록체인 프로토콜은 확장성의 한계와 처리량과 지연속도 간의 상충관계에 대한 과제가 있습니다. 현재 블록체인 기술은 충분히 빠르지 않고 시스템에 더 많은 트랜잭션을 기록할 수 있도록 확장되지 않기 때문에 우리는 본 성능 문제를 고려해야 합니다.

마이너, 소비자 그리고 다양한 관점을 가진 개발자간에 확장성에 대한 대책이 필요하다는 합의가 이루어졌으며 Bitcoin의 확장성을 개선하는 방법에 대한 지속적인 논의가 있었습니다. 현재의 제안들은 블록의 크기와 향후 블록 사이즈 증가에 대한 처리 방식에 초점을 맞추고 있습니다.

모든 제안들은 확장성 병목현상의 문제가 있습니다: 블록 사이즈에 상관없이 블록체인 시스템은 초당 ~3 트랜잭션에서 최대 초당 ~7 트랜잭션의 처리량에 도달 할 수 있습니다. 이는 초당 30,000 트랜잭션을 처리하는 VISA 트랜잭션과 같은 기존 시스템들과 경쟁하기에는 아직 역부족입니다. Bitcoin 블록체인 프로토콜을 공유하는 Litecoin, Ethereum과 다른 모든 암호화폐에 동일한 제한 사항이 적용됩니다.

Waves-NG는 네트워크 상태에 따라 네트워크가 최고 처리량에 도달할 수 있도록 확장성 병목현상을 해결합니다. 이는 트랜잭션 처리량을 향상시킬뿐만 아니라 트랜잭션 지연 속도를 줄일 수 있습니다. 따라서 몇분이 아닌 몇초 만에 초기 트랜잭션 승인을 받을 수 있습니다.

지연속도(블록 간격) 블록 사이즈 속도
Bitcoin 10분 1 Mb 3-7 Tx/Second
Ethereum 10분 1 Mb 5-20 Tx/Second
Waves 1분 1 Mb.100 Tx/block 1.6 Tx/Second
Waves-NG Key 블록 사이 1분. Micro 블록 사이 3초. 1 Mb.65535Tx/KeyBlock.200 Tx/MicroBlock 100 Tx/second

표1, Bitcoin, Ethereum, Waves 그리고 Waves-NG의 확정성 비교.

1.2 확장성 향상을 위한 현 제안들의 약점

Blockchain 시스템은 트랜잭션을 처리 할 수 있으며 이러한 트랜잭션의 최대 속도는 두 가지 변수의 선택에 의해 제한됩니다: 블록 사이즈와 블록 간격.

  • 블록 간격은 하나의 블록이 생성된 후 다음 블록이 생성되기 까지의 평균 시간을 정의합니다. 지연 시간의 한계를 해결하기 위해 블록 간격을 줄이기로 결정하면 매초마다 새로운 마이너가 생기기 때문에 해당 시스템의 보안 수준이 낮아 지며 (포크 확률의 상승) 이는 블록체인이 개편의 대상이 되고 시스템이 불일치하는 불안정성을 초래할 수 있습니다(그림 1). 블록 당 시간을 줄이게되면 네트워크 전체에서 생성된 블록이 릴레이되는 시간보다 짧은 시간안에 상당수의 신규 블록이 생성되는 상황이 발생 할 것 입니다. 따라서 어떤 블록이 "실제"이고 어떤 블록이 "포크"인지 알 수 있는 방법이 없을 것 입니다. 왜냐하면 다중 승인을 받은 트랜잭션이 보다 적은 승인을 받은 트랜잭션으로 보일 수 있기 때문입니다 (또는 승인되지 않은 트랜잭션으로 돌아갈 수도 있습니다).

그림 1, 정적 블록 사이즈로 블록 빈도를 높이면 보안 수준이 떨어집니다.

  • 시스템의 처리량은 최대 블록 사이즈로 제한됩니다 (블록 간격이 고정일 경우). 블록에 포함되는 트랜잭션의 최대 수량은 블록 사이즈에 직접적으로 의존하기 때문입니다.

    블록 사이즈가 클수록 전파 속도는 느려지며 이는 폐기되는 블록이 더 많이 생성되는 원인이 됩니다 (orphaning risk). 예를들어 블록 사이즈를 무제한으로 설정한다면 검증하는데 오랜 시간이 걸리는 블록을 생성하게 됨으로써 시스템이 DoS 공격을 받을 수 있습니다. 처리량을 향상시키기 위해 블록 사이즈를 늘리는 것을 선택한다면 네트워크에 전파되는데 더 많은 시간이 소요되는 네트워크 스파이크가 발생할 것 입니다 (그림 2).

그림 2, 정적 블록 빈도로 블록 사이즈 증가시키면 폐기 되는 블록이 더 많이 생성되며 네트워크 스파이크를 초래 할 것 입니다.

1.3 Bitcoin-NG에 대한 간단한 요약

차세대 블록체인 프로토콜로서 블록 사이즈를 늘리거나 블록 간격을 줄이지 않는 Bitcoin 확장 솔루션입니다. 이는 포크의 위험성을 줄여 주며 Bitcoin-NG는 다음과 같이 설명됩니다. Bitcoin의 기본적인 상충관계는 대안의 블록체인 프로토콜로 줄일 수 있으며 Network Plane에 의해서만 제한된 대역폭과 컨센서스 딜레이를 제공합니다. 프로토콜은 시간을 시간 주기(epoch)로 나누며 각 시간 주기에는 특정의 리더가 트랜잭션을 직렬화합니다 (그림 3).

리더들은 블록을 생성하는 규칙에 따릅니다:

  • 리더 선출을 위한 key 블록.
  • 원장 기록을 위한 Micro 블록.

그림 3: Bitcoin-NG 시간 주기 구조와 트랜잭션 직렬화

2. Waves-NG 오버레이

Waves-NG는 트랜잭션을 직렬화하고 향상된 트랜잭션 지연속도(낮은 지연속도)와 대역폭(높은 처리량)을 제공하는 차세대 Bitcoin 프로토콜을 기반으로 하며 Bitcoin과는 대조적으로 다른 속성을 희생하지 않아도 됩니다.

Waves는 마이너에게 지속적인 접근 방식으로 마이닝 하는 동안 블록을 채굴할 수 있는 능력을 제공하여 이 확장성 문제에 접근합니다.

Waves는 마이너가 지속적인 접근 방식으로 마이닝 하는 동안 블록을 채굴할 수 있는 능력을 제공하여 이 확장성 문제에 접근합니다. 이 블록은 liquid 블록이라 불리는 것을 계속해서 증분합니다. Liquid 블록은 다음 블록 레퍼런싱이 생성되고 추가되면 시간이 지남에 따라 변경이 불가합니다.

또한 Waves-NG는 크라우드세일 및 에어드롭과 같은 대량 토큰 배부로 인한 플랫폼 과부하를 견딜수 있게 해줍니다. Waves 탈중앙화 거래소 (DEX)에서 거래 트랜잭션 처리 속도 또한 빨라집니다.

2.1 Waves-NG의 운영

Waves-NG의 핵심 아이디어는 Liquid 블록을 두가지 유형으로 분리하는 것 입니다. 두가지 유형의 블록은 Key블록과 Micro 블록 입니다. Liquid 블록이 만들어지는 과정은 다음과 같습니다:

  • 마이너 노드가 블록을 생성할 권한을 가집니다.
  • 마이너 노드가 Key 블록을 생성하고 전송합니다 (트랜잭션은 포함되지 않습니다).
  • 마이너 노드는 3초 단위의 마이닝 시간 간격으로 Micro 블록 (이전의 micro 블록 또는 key 블록을 참조로 하여 보통의 블록과 같이 트랜잭션을 포함합니다)을 생성하고 전송합니다.
  • 마이너들을 micro 블록을 채굴하며 liquid 블록을 참조한 신규 key블록이 나타날때까지 micro 블록을 네트워크에 직접적으로 전파합니다.

모든 트랜잭션은 동일한 블록의 일부이며 모두 같이 제공됩니다. 블록과 블록 사이 전통적인 Bitcoin 시스템은 idle 상태로 보입니다. 이는 마이너들이 다음 블록을 찾기 위해 작업하는 것이지만 컨센서스 전면에 명백한 진척은 없습니다.

이와는 대조적으로 Waves-NG 에서는 Key 블록은 작을 수 있습니다. 이는 마이너가 Micro 블록에 서명할때 사용하는 공개키인 coinbase 트랜잭션만을 포함하기 때문입니다.
왜냐하면 key 블록은 Proof-of-Stake를 요구하며 마이너들은 단지 하나를 생산할 수 없으며 그들의 의지만으로 리더십을 도용할 수 없기 때문입니다.

Key 블록에 이어서 마이너는 Key 블록의 coinbase에 있는 프라이빗 키로 퍼플릭 키에 상응하는 서명을하여 신속하게 Micro 블록을 발행할 수 있습니다 (그림 4).

그림 4: Key 블록과 Micro 블록의 서명 절차.

2.1.1 리더 블록

"Key 블록"이라고도 불리우며 이런 블록들은 Proof-of-Stake로 생성되지만 트랜잭션을 포함하지는 않습니다.

리더 선츨 메커니즘으로 사용되며 선택된 리더를 식별하는 공개키를 포함합니다.

각 블록에는 header가 있으며 여기에는 이전 블록들의 고유한 레퍼런스를 포함하며 이들은 이전 블록 헤더의 암호화 해시 입니다 (Key 블록 또는 Micro 블록 중 하나).

Bitcoin에서 Key 블록이 승인되려면 header의 암호화 해시가 target 값 보다 작아야 하지만 Bitcoin과 달리 Key 블록은 다음 Micro 블록에서 사용되는 퍼플릭키를 포함합니다.

2.1.2 Micro 블록

노드가 Key 블록을 생성하면 이는 리더가 됩니다. 리더로서 노드는 사전에 설정된 최대값 보다 작은 설정 속도로 Micro 블록을 생성 할 수있습니다.

이러한 Micro 블록은 Proof-of-Stake가 필요없는 장부 항목을 포함하며 이 Micro 블록들은 모든 블록생성 사이클에서 선출된 리더가 생성합니다.

이 블록생성 사이클은 리더 블록에 의해 시작됩니다.

유일한 요구사항은 선출된 리더의 프라이빗키로 Micro 블록에 서명하는 것 입니다.

Micro 블록은 선출된 리더(마이너)로부터 아주 빠른 속도로 생성되며 결과적으로는 성능과 트랜잭션 속도가 향상됩니다.

Micro 블록이 승인되기 위해서는 상태 시스템의 사양에 따라 모든 항목이 승인되어야 하며 서명 또한 유효화 되어야 합니다. 그림 5는 본 구조를 설명합니다.

모든 Micro 블록이 승인되면 Key 블록과 병합되어 하나의 블록으로 통합됩니다.

2.2 Waves-NG 보상 메커니즘

보수는 두 가지로 구성됩니다. 첫째, 각 Key 블록은 생성기에 설정된 양을 부여합니다. 둘째, 각 원장 항목에는 수수료가 부과됩니다.

이 수수료는 이 항목을 Micro 블록에 배치하는 리더와 다음 Key 블록을 생성하는 후속 리더에 의해 나누어집니다.

참가자가 프로토콜을 따르도록 동기를 부여하기 위해 Waves-NG는 다음과 같은 메커니즘을 사용합니다:

각 트랜잭션은 시스템에 수수료를 지불하지만 Bitcoin과 달리 수수료의 40%는 리더에게 배분되며 60%는 후속 리더에게 배분됩니다.

마지막으로 리더가 모체에서 두 Micro 블록을 생성하여 체인을 포크한다면 보조 수익금을 취소함으로써 처벌됩니다. 해당 불법행위를 발견한 사용자는 소량의 사례금을 받습니다 (그림 5).

그림 5: Waves-NG 프로토콜의 체인 구조. Micro 블록(원형)은 마지막 Key 블록(사각형)의 퍼블릭키와 일치하는 프라이빗키로 서명됩니다. 40%의 수수료는 리더에게 배분되고 60%는 다음 리더에게 배분됩니다.

실제로는 각 Key 블록에 단일 coinbase 트랜잭션이 포함되면 보상이 이루어지며 해당 트랜잭션을 신규 코인을 주조하고 현재 리더와 이전 리더에게 자금을 예금합니다.

Bitcoin에서 처럼 이 트랜잭션은 포크 후에 병합되지 않는 트랜잭션을 피하기 위해 100개의 Key 블록의 만기 기간 후에 사용할 수 있습니다.

참고. 여기에서 Waves-NG의 기술적 세부사항을 확인하세요.

origin/master:platform-features/waves-ng-protocol.md

results matching ""

    No results matching ""