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라고도하는 사용되지 않은 코인을 추적하면됩니다..
비트 코인 생태계의 모든 코인은 한 번만 사용할 수 있습니다. 따라서 현재 지갑의 모든 비트 코인은 다음과 같은 이유로 사용되지 않습니다.
- 채굴자가 채굴 보상으로 받거나
- 거래 중에 발행되었습니다. (이전의 예를 기억하십니까?)
UTXO는 이중 지출 공격을 방지하는 데 중요하며 존재하지 않는 코인을 사용하는 것을 방지합니다. 네트워크 노드는 지출에 사용할 수있는 모든 UTXO (즉, 사용되지 않은 코인)를 포함하는 데이터베이스를 기록하고 유지합니다. 해당 데이터베이스에없는 코인으로 트랜잭션을 보내려고하면 노드가이를 거부합니다..
잠재적 인 스토리지 문제
노드는 UTXO 데이터베이스를 RAM에 저장하므로 데이터 세트를 관리 가능한 크기로 유지하는 것이 중요합니다. 성장함에 따라 전체 노드를 실행하는 비용도 함께 증가합니다. 풀 노드를 실행하는 것이 너무 비싸지면이를 실행할 수있는 부유 한 소수의 사람들 사이에서 비트 코인 네트워크의 중앙 집중화를 볼 수 있습니다..
블록 체인을 통한 시간 경과에 따른 비트 코인 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 가지 다른 답변을 얻을 수 있습니다. 여전히 완벽한 솔루션이없는 커뮤니티 전체에서 뜨거운 논쟁의 대상입니다. 그리고 복잡성으로 인해.