UTXO 란??

UTXO는 미사용 트랜잭션 (TX) 출력. 기본적으로 각 거래에서받는 남은 암호 화폐 변경 량입니다. 더 자세히 설명하기 위해 먼저 일반적인 암호화 거래가 어떻게 작동하는지 분석해야합니다. UTXO를 사용하는 가장 잘 알려진 암호화 폐인 비트 코인을 예로 들어 보겠습니다..

UTXO 거래 예

비트 코인 지갑을 보면 잔액이 보입니다. 이 예에서는 100 비트 코인으로 설정하겠습니다. 그냥 관찰하지만 하나 잔액, 귀하의 자금은 실제로 몇몇의 UTXO. 각각 25 비트 코인 가치가있는 UTXO 4 개, 50 비트 코인 가치가있는 UTXO 2 개 또는 가치가 37, 18, 40, 5 비트 코인 UTXO 세트가있을 수 있습니다. 구체적인 금액은 중요하지 않지만 총 잔액에 합산되어야합니다.이 경우 100.

예를 들어, 새 차를 사러 주변에서 쇼핑한다고 가정 해 보겠습니다. 너는 열심히 일하는구나; 당신은 그것을받을 자격이 있습니다. 람보르기니의 고정 관념을 깨고 35 비트 코인이 드는 포르쉐를 선택합니다. 지갑에는 각각 15, 17, 28 및 40 비트 코인에 해당하는 UTXO 만 포함되어 있습니다. 정확히 35 비트 코인으로 평가 된 가치가 없습니다..

UTXO를 분할하는 것은 불가능하므로 빚진 정확한 35 비트 코인을 지불 할 방법이 없습니다..

대신 40 비트 코인 UTXO를 사용합니다. 대신 네트워크는 두 개의 새로운 UTXO를 발행합니다. 하나는 35 비트 코인으로, 하나는 5 비트 코인으로 평가됩니다. 자동차 대리점은 35 비트 코인 UTXO를 받고 5 비트 코인 UTXO는 거스름돈으로받습니다..

또한 17 비트와 28 비트 코인 UTXO를 사용하고 10 비트 코인을 거스름돈으로받을 수 있습니다. 거래는 UTXO의 조합을 사용할 수 있습니다. 그러나 어떤 것을 제어 할 수 없습니다..

UTXO를 별도의 인스턴스로 분할 할 수있는 것처럼 더 큰 트랜잭션으로 결합하여 네트워크에서 더 적은 수를 생성 할 수도 있습니다..

거래 수수료는 어떻습니까?

거래 수수료는 거래에 포함되며 변경으로받은 UTXO에서 차감됩니다. 방정식은 다음과 같습니다.

새로운 UTXO = (거래의 UTXO 합계) – (거래 금액) – (거래 수수료)

하나의 비트 코인 거래 수수료로 가장 최근의 예를 계속합니다.

새 UTXO = (17 + 18) – (35) – (1) = 9 비트 코인

UTXO 중요성 및 잠재적 문제

UTXO를 구현하면 블록 체인의 회계 방법이 크게 단순화됩니다. 모든 단일 트랜잭션을 추적하고 저장하는 대신 UTXO라고도하는 사용되지 않은 코인을 추적하면됩니다..

비트 코인 생태계의 모든 코인은 한 번만 사용할 수 있습니다. 따라서 현재 지갑의 모든 비트 코인은 다음과 같은 이유로 사용되지 않습니다.

  1. 채굴자가 채굴 보상으로 받거나
  2. 거래 중에 발행되었습니다. (이전의 예를 기억하십니까?)

UTXO는 이중 지출 공격을 방지하는 데 중요하며 존재하지 않는 코인을 사용하는 것을 방지합니다. 네트워크 노드는 지출에 사용할 수있는 모든 UTXO (즉, 사용되지 않은 코인)를 포함하는 데이터베이스를 기록하고 유지합니다. 해당 데이터베이스에없는 코인으로 트랜잭션을 보내려고하면 노드가이를 거부합니다..

잠재적 인 스토리지 문제

노드는 UTXO 데이터베이스를 RAM에 저장하므로 데이터 세트를 관리 가능한 크기로 유지하는 것이 중요합니다. 성장함에 따라 전체 노드를 실행하는 비용도 함께 증가합니다. 풀 노드를 실행하는 것이 너무 비싸지면이를 실행할 수있는 부유 한 소수의 사람들 사이에서 비트 코인 네트워크의 중앙 집중화를 볼 수 있습니다..

블록 체인을 통한 시간 경과에 따른 비트 코인 UTXO 데이터베이스 크기

블록 체인을 통한 시간 경과에 따른 비트 코인 UTXO 데이터베이스 크기

중앙 집중화의 이러한 위험은 비트 코인 블록 크기를 늘리는 것에 대한 주요 논쟁 중 하나입니다. Bitcoin 개발자 Gavin Andresen은 그의 기사 UTXO 어-오… :

“1MB 블록은 연간 약 1 억 개의 500 바이트 트랜잭션을위한 공간입니다. 그들 모두가 UTXO 세트를 500 바이트 씩 늘리면 UTXO 세트가 연간 50 기가 바이트로 늘어날 것입니다.”

1 메가 바이트 블록 크기는 UTXO 데이터베이스가 매년 증가 할 수있는 범위까지 상한을 설정합니다. 그는 계속한다:

“다른 변경없이 더 많은 트랜잭션을 허용하면 UTXO 세트 성장이 가속화 될 가능성이 매우 높아 완전 검증 노드를 실행하는 데 더 많은 비용이 들고 더 빨리 빨라집니다.”

그래서 우리는 Andresen의 말을 간과하지 않습니다. 그의 기사는 실제로 블록 크기를 늘리는 데 유리합니다. 그는 UTXO 세트 크기에 미치는 영향이 다른 사람들이 믿는 것처럼 과감하지 않다고 주장합니다. 그리고 두 번째 계층 확장 솔루션의 복잡성을 고려할 때 이러한 솔루션이 장기적으로 적용되기 전에 단기적으로 더 큰 블록을 구현해야합니다..

솔루션

고맙게도 잠재적 인 스토리지 문제에 대한 몇 가지 해결책이 있습니다. 첫째, 노드는 전체 UTXO 데이터베이스를 RAM에 저장할 필요가 없습니다. 저렴한 SSD (솔리드 스테이트 디스크) 또는 회전하는 하드 디스크에 일부를 저장할 수 있습니다. 이러한 스토리지 유형으로 인해 각 노드의 유효성 검사 시간이 느려지지만 평균 블록 시간이 10 분 미만이면 문제가되지 않습니다..

또한 비트 코인 개발자는 UTXO 데이터베이스를 최적화하기 위해 트랜잭션 메커니즘을 지속적으로 개선하고 있습니다..

마지막으로 Segregated Witness (Segwit) 및 유사한 확장 솔루션은 UTXO 데이터베이스의 성장을 간접적으로 늦 춥니 다. 직접 당기기 비트 코인 코어 문서:

“Segwit은 UTXO 세트 크기에 영향을주지 않는 서명 데이터를 UTXO 세트 크기에 영향을 미치는 데이터보다 75 % 적게 비용을 절감하여 여기서 상황을 개선합니다. 이는 사용자가 수수료를 최소화하기 위해 UTXO 세트에 미치는 영향을 최소화하는 트랜잭션 사용을 선호하고 개발자가 UTXO 세트에 미치는 영향을 최소화하는 방식으로 스마트 계약 및 새로운 기능을 설계하도록 장려 할 것으로 예상됩니다. ”

결론 : UTXO 대안?

우리는 오늘 예제에서 지속적으로 비트 코인을 사용했지만, 비트 코인 캐시, 라이트 코인, 코모도 등 UTXO를 구현하는 다른 암호 화폐가 많이 있습니다..

다른 회계 메커니즘을 활용하는 다른 많은 암호도 있습니다. 예를 들어, 이더 리움은 계정 기반 거래 모델을 가지고 있습니다.. 이 메커니즘 일반적으로 더 나은 공간 절약과 더 간단한 코드를 제공합니다. 그러나 거래 개인 정보 보호 수준을 잃고 향후 잠재적 인 확장 성 문제에 직면하게됩니다..

10 명의 암호 화폐 개발자의 방에 최고의 회계 방법에 대해 물어 보면 10 가지 다른 답변을 얻을 수 있습니다. 여전히 완벽한 솔루션이없는 커뮤니티 전체에서 뜨거운 논쟁의 대상입니다. 그리고 복잡성으로 인해.