>백엔드 개발 >Golang >Utreexo를 사용하여 비트코인 ​​네트워크 개선

Utreexo를 사용하여 비트코인 ​​네트워크 개선

WBOY
WBOY원래의
2024-07-30 08:03:14954검색

Improving the Bitcoin network using Utreexo

세계는 날이 갈수록 디지털화되고 있으며 우리 삶의 점점 더 많은 측면이 점점 더 무형화되고 있습니다. 실물현금부터 무현금 시스템, 이제는 암호화폐에 이르기까지 화폐는 빼놓을 수 없습니다. 2009년 비트코인의 첫 번째 블록이 시작된 이후 채택률이 매우 빠르게 증가했으며 채택률이 높아질수록 네트워크에 대한 안정성과 신뢰도가 높아져 채택률도 높아질 것입니다.

먼저, 비트코인이란 무엇이고, 비트코인은 어떻게 작동하나요?

비트코인은 Satoshi Nakamoto라는 익명의 실체가 2008년에 만든 분산형 P2P 네트워크 디지털 통화입니다. 비트코인 네트워크는 서로 상호 연결되어 네트워크 전체에 걸쳐 거래를 전파하고 거래의 유효성을 검사하는 데 도움이 되는 노드라고도 불리는 컴퓨터로 구성된 네트워크입니다. 이 네트워크는 디지털 통화 비트코인(BTC)을 사용합니다. 이러한 거래는 블록체인 기술을 사용하는 분산형 공개 원장에 저장됩니다.
비트코인 블록체인은 이전 블록과 연결되지 않은 제네시스 블록이라고도 알려진 첫 번째 블록을 제외하고 각 이전 블록에 연결된 블록으로 구성됩니다. 블록은 채굴 프로세스를 수행하기 전에 채굴자가 블록에 신중하게 추가하고 검증한 여러 트랜잭션으로 구성됩니다. 거래는 기본적으로 비트코인 ​​지갑 간의 가치 이전입니다. 채굴자는 네트워크에서 새로운 블록을 확인하거나 "채굴"하여 블록체인에 추가하는 주요 작업을 수행할 책임이 있습니다.
온라인에서 비트코인에 대해 알아볼 수 있는 여러 리소스가 있습니다. 이러한 리소스는 비트코인의 기능에 대한 자세한 내용을 제공합니다.
비트코인의 장점에도 불구하고 확장성은 항상 중요한 문제였습니다. 비트코인 블록의 크기는 1MB로 제한되며, 블록은 대략 10분마다 채굴됩니다. 이로 인해 이 글을 쓰는 시점에서 비트코인 ​​블록체인의 현재 크기는 약 580GB로 작년보다 약 18% 증가했습니다. 전체 노드가 블록체인에 참여하고 네트워크를 확인하려면 전체 블록체인을 다운로드하고 모든 이전 블록과 새로 추가된 블록에 대한 검증 수행을 시작해야 합니다. 이 크기는 날이 갈수록 계속해서 커지는 것이 보장되며 어느 시점에는 너무 커져 일부 일반 사용자가 리소스 제약으로 인해 네트워크에 참여하지 못하게 될 수도 있습니다.
블록체인의 크기 외에도 노드는 네트워크의 현재 상태를 확인하고 저장합니다. 이 상태는 전체 블록체인에 비해 크기가 상대적으로 훨씬 작은 현재 UTXO(사용되지 않은 트랜잭션 출력 세트)이지만, 점점 더 많은 사용자가 네트워크에서 더 많은 트랜잭션을 수행함에 따라 이 상태도 계속 빠르게 성장할 것이 보장됩니다. 이 세트는 네트워크의 모든 미사용 거래 출력 세트입니다.

그렇다면 유트렉소(Utreexo)는 무엇인가?

Utreexo는 현재 상태의 크기를 크게 줄일 수 있는 해시 기반 동적 누산기를 도입합니다. 이를 통해 노드는 시스템의 전체 상태를 알지 못해도 트랜잭션의 입력을 완전히 확인할 수 있습니다. 이는 자금 소유자가 자금이 실제로 존재한다는 증거를 유지하도록 하고 자금을 사용하려고 할 때 이 자금을 제시함으로써 이를 수행합니다.
Utreexo는 Compact State Node라는 새로운 유형의 노드를 도입합니다. 이러한 노드는 상태의 누산기 표현만 저장합니다. 이러한 노드가 트랜잭션을 확인하려면 포함 증명이 필요합니다. 이 증거는 지출 거래가 일부 입력을 지출하려고 할 때 제공됩니다.

Utreexo는 비트코인 ​​네트워크를 어떻게 개선합니까?

위에서 볼 수 있듯이 Utreexo를 사용하면 비트코인 ​​네트워크 상태를 동적 누산기로 표현할 수 있으며, 이러한 누산기의 크기는 5GB가 넘는 현재 비트코인 ​​상태와 달리 크기가 몇 킬로바이트에 불과합니다.
Utreexo의 작동 방식을 이해하려면 먼저 암호화 누산기가 무엇인지, 어떻게 작동하는지 이해해야 합니다. 암호화 누산기를 사용하면 집합의 모든 구성원을 저장하거나 공개하지 않고도 집합을 쿼리할 수 있습니다. 이 누산기 구성 접근 방식은 각 거래에 대해 지출된 TXO가 실제로 UTXO 집합의 구성원인지 여부를 쿼리하고 그렇지 않은 경우 거래를 거부하기 때문에 비트코인 ​​UXTO 집합에 적합합니다.
네트워크에 참여할 때 일반 노드는 580GB가 넘는 전체 블록체인 기록을 다운로드하고 거래를 확인하고 UTXO 세트의 자체 복사본을 구축해야 합니다. 그런 다음 노드에 영향을 미치는 모든 상태 변경을 확인해야 합니다. 이러한 모든 프로세스는 리소스 집약적인 작업이므로 네트워크 참가자 수가 제한되어 확장성이 제한됩니다.
IBD(초기 블록 다운로드)라고도 하는 이 초기 동기화 프로세스는 인터넷 연결 및 하드웨어 리소스에 따라 매우 오랜 시간이 걸릴 수 있습니다. 이 IBD 작업 속도에 영향을 미치는 주요 요인 중 하나는 사용된 스토리지 디스크 유형과 I/O 작업 속도, 특히 빠른 랜덤 액세스 읽기 수행 기능입니다. 이것이 일반적으로 훨씬 우수한 랜덤 액세스 읽기 시간을 갖는 솔리드 스테이트 드라이브를 사용하는 컴퓨터가 하드 디스크 드라이브를 사용하는 컴퓨터에 비해 트랜잭션을 확인하는 데 30배 이상 적은 시간을 사용할 수 있는 이유입니다.
Utreexo를 사용하면 사용되는 디스크 유형은 그렇게 큰 차이를 만들지 않습니다. SSD 컴퓨터와 HDD 컴퓨터 사이에는 약간의 성능 차이만 보일 뿐입니다.
Utreexo는 신뢰할 수 있는 설정이나 관리자 요구 사항이 없는 해시 기반 동적 누산기를 도입합니다. 위에서 언급했듯이 누산기는 요소를 추가하고 증명할 수 있는 집합의 간결한 표현입니다. Utreexo 누산기는 누산기에서 요소를 효율적으로 제거할 수 있는 완벽한 Merkle 트리 포리스트를 사용하여 삭제가 발생할 때 포리스트의 총 리프 수를 줄입니다.
추가는 누산기와 추가할 요소 이외의 데이터 없이 계산 가능하며, 삭제는 삭제할 데이터의 포함 증명으로 계산 가능합니다.
누산기의 디자인은 완벽한 이진 해시 트리의 숲입니다. 저장해야 하는 누산기의 표현에는 저장된 요소 수와 포리스트에 있는 모든 트리의 루트가 포함됩니다.
완벽한 이진 트리의 논리적 구조는 단지 소개 기사이므로 이 기사의 범위를 벗어납니다. 그러나 전체 Utreexo 논문은 여기에서 찾을 수 있습니다.

결론

Utreexo 해시 기반 누산기는 비트코인 ​​상태의 크기를 단 몇 킬로바이트로 줄이는 것을 목표로 합니다. 이를 통해 거의 모든 장치가 비트코인 ​​네트워크에 가입하고 값비싼 최고급 하드웨어 없이도 거래 확인을 시작할 수 있습니다. 이는 어큐뮬레이터의 크기가 매우 느리게(Onlogn) 공간 복잡도를 증가시키기 때문에 비트코인 ​​네트워크의 확장성을 크게 증가시킵니다.

위 내용은 Utreexo를 사용하여 비트코인 ​​네트워크 개선의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.