출처: 라이트닝 HSL
최신 BCH 프로토콜 변경 제안서인 bch-vm-limits에서 "계산 밀도"라는 새로운 개념에 대해 읽었습니다. 계산 밀도라는 개념은 다른 UTXO 체인에서는 찾아볼 수 없는 개념입니다. 저는 그것이 무엇인지 궁금해서 약간의 조사를 해보았습니다.
계산 밀도란 무엇인가요?
비트코인의 블록 크기 제한은 트랜잭션 블록 본문 1백만 개 + 서명 블록 3백만 개이며, 각 트랜잭션마다 크기와 옵코드 수에 제한이 있습니다. 이더리움의 트랜잭션 단일 블록에도 가스 제한이 있습니다. 이오스를 좀 더 깊이 공부하신 분이라면 이오스에는 이오스 트랜잭션을 전송할 때 소모되는 세 가지 리소스인 CPU, RAM, 네트워크가 있다는 것도 알고 계실 겁니다.
이것들은 블록체인 네트워크의 보안을 유지하고 악의적인 트랜잭션이 네트워크를 공격하는 것을 방지하기 위한 것입니다.
정당한 거래가 이더 네트워크를 악의적으로 공격한 가장 대표적인 사례 중 하나는 2018년 Fom3D 최종 수상작에 포함된 "이더 네트워크 공격" 사건입니다. Fom3D에 대한 자세한 이야기는 직접 찾아보셔야 하므로 이 글에서 설명하는 데 시간을 낭비하지 않겠습니다.
공격자는 블록 높이 6191897과 6191902 사이에 블록의 가스 한도를 모두 소모하는 특별 계약 거래를 구성하여 다른 사용자의 거래가 패키징되는 것을 막고 해커가 자신의 거래만 패키징할 수 있게 하여 결국 10,469 이더 상금을 획득했습니다.
블록체인 네트워크에 대한 악의적인 공격을 방지하기 위한 세 가지 대표적인 설계는 비트코인의 블록 크기 및 거래 크기 제한, 이더리움의 블록 가스 제한, EOS의 CPU 및 RAM 및 네트워크 리소스 제한입니다.
BTC의 설계는 가장 원시적이고 안전한 설계로 많은 검증을 거쳤습니다. BCH의 탄생부터 현재까지도 특정 매개변수만 조정되었을 뿐 동일한 설계가 계속되고 있습니다.
이더리움의 가스 제한 설계는 가장 성공적인 설계로 여겨지며, 현재 업계 표준이 되었습니다.
EOS의 설계는 지금까지 실패로 끝났으며, RAM과 같은 자원이 설계 개념을 충족시키지 못하고 투기성 토큰으로 전락했습니다.
참고로, 이더리움에는 가스를 코인으로 투기할 수 있는 가스토큰이라는 프로젝트가 있었으나 V god 등에 의해 금지되었습니다.
위의 사용자들은 비트코인(BTC)이 가장 안전하며 가스 한도가 가장 성공적이라는 점에 유의하시기 바랍니다.
보안성과 프로그래밍 가능성을 측정할 때 가스 리밋은 EVM에서 튜링의 완전성을 달성하여 궁극적인 프로그래밍이 가능하도록 설계되었으며, 이는 이더리움의 번성하는 경제 생태계를 탄생시키는 데 결정적인 역할을 했습니다.
비트코인과 같은 UTXO의 생태계는 분명히 프로그래밍 가능성, 특히 더하기, 빼기, 곱하기, 나누기, 아를 프로그래밍할 수 있는 횟수를 제한하는 거래용 코드의 수 제한에 갇혀 있습니다. 하지만 비트코인의 블록 크기와 트랜잭션 크기 제한이 궁극적인 탈중앙화와 보안을 제공하는 것은 분명합니다. 비트코인 네트워크에는 큰 문제를 일으킨 디도스 공격이 한 번도 없었으며, '악의적인' 대규모 거래나 복잡한 컨트랙트 거래(P2SH)가 멤풀에 넘쳐나도 추가적인 문제를 일으키지 않고 블록이 천천히 채워질 때까지 기다리는 것만이 유일한 방법입니다.
프로그램 가능성을 개선하는 UTXO 기술은 추가적인 보안 문제를 야기할 가능성이 높습니다.
BCH의 새로운 개념인 계산 밀도는 프로그래밍 가능성과 보안의 균형을 맞추기 위한 시도로, BCH 네트워크의 보안을 보장하면서 UTXO의 프로그래밍 가능성을 크게 향상시키려는 시도입니다.
계산 밀도는 해당 입력 데이터의 바이트 길이에 따라 각 입력에서 수행할 수 있는 계산 연산 수를 제한하는 것으로 정의됩니다. 즉, 트랜잭션의 각 입력에는 크기(바이트 수)에 따라 특정 계산 예산이 할당되며, 이 예산에 따라 노드가 해당 트랜잭션을 검증할 때 수행할 수 있는 최대 계산량이 결정됩니다.
이 공식은 bch-vm-limits 프로토콜에 제공되어 있는데, 제가 알 수 있는 것은 이 연산량이 주로 해시 연산을 의미한다는 것뿐입니다. 이는 bch 트랜잭션의 구성 및 유효성 검사와 관련된 너무 자세한 내용이라 그다지 신경 쓰지 않습니다.
계산을 가스 수수료와 직접 연결하는 가스 제한과 달리 계산 밀도는 BCH 거래에 대한 채굴자 수수료의 설계를 변경하지 않으며, 이는 여전히 이전과 동일한 sats/바이트를 기반으로 합니다.
가스 한도의 설계는 단일 블록에서 가스 한도 상한에 도달하지 않는 한 (가스 수수료에 대한) 돈을 지불하는 한 어떤 복잡한 계약도 설계할 수 있다는 사실과 동일합니다. 현재 단일 블록의 가스 한도는 3천만 가스이고, 가스 가격이 10gwei라면 3천만 가스 한도를 소비하는 데 0.3ETH가 필요합니다. 3천만 가스는 매우 큰 양이며 매우 복잡한 컨트랙트를 설계할 수 있습니다.
계산 가능한 단위 거래 크기의 제약을 받는 비트코인캐시의 계산 밀도를 고려하면 설계할 수 있는 계약의 복잡성은 가스 한도를 설계할 때보다 훨씬 적을 것으로 예상되지만, 애초에 거래 크기와 옵코드 수를 제한하는 BTC와 BCH보다는 100배 이상 향상되었다고 문서에 설명되어 있습니다.
이 프로토콜의 설계자인 제이슨 드레제너는 문서에서 계산 밀도의 이점을 가스 제한과 비교하며 다양한 방식으로 과장하여 설명했습니다. 실제 프로덕션 세션에서 이점이 제대로 반영되기를 바랍니다.
실제 적용 시나리오에서 개발자는 양자 암호화, 영지식 증명, 동형 암호화 및 기타 암호화 디지털 통화 기술을 시나리오 수준의 왕관 보석 분야에 포함시켜 훨씬 더 과장되게 작성했습니다. 하지만 현재로서는 진실을 분별하는 것은 확실히 불가능합니다.
마지막으로, 2023년에 활성화될 캐시토큰과 같은 기술, 그리고 전체 암호화폐 영역에서 처음 보는 계산 밀도 등 BCH 개발자들이 여전히 상당히 혁신적이라는 느낌이 듭니다.