블록 체인 업계에서 일하는 가장 흥미로운 이유 중 하나는 오픈 소스 협업 환경의 대다수의 코드 기반 때문에 문제에 대한 독점적 인 해결책이 없다는 것입니다. 문제의 세부 사항을 토대로 개발자는 당면 과제에 적합한 도구를 사용하는 것이 좋습니다.
초기에 Qtum이 처음 설계되었을 때, 사고 프로세스는 다재다능하면서도 안전했던 비즈니스 용 블록 체인을 만드는 것이 었습니다. 이러한 동기를 달성하기 위해 Qtum은 Bitcoin이 Ethereum 스타일 블록 체인을 기반으로하는 계정 모델을 기반으로 구축 된 UTXO (Unspent Transaction Output) 모델을 선택했습니다.
따라서 잠시 시간을내어 UTXO 스타일 블록 체인을 사용하는 이유와 블록 체인에 들어간 모델을 비교해 보았습니다.
UTXO 모델은 비트 코인 블록 체인의 기본 작동 방식으로 배치 된 최초의 블록 체인 모델이었습니다. 구조가 간단하고 우아합니다. 많은 암호화 애호가가 "비트 코인"의 양에 대해 이야기하기를 좋아하지만, 때때로 비트 코인은 서로 교환 할 토큰이나 동전과 같은 오해를 불러옵니다.
기술적 관점에서 "비트 코인"은 영수증과 같습니다. 광부 인 앨리스 (Alice)가 블록을 발견하면 시스템 은 "25 Bitcoins"를 빚 졌음을 나타내는 영수증 (거래)을 발급 합니다. 이 영수증은 단일 거래 이며 현재 사용되지 않습니다. 트랜잭션에는 소비 또는 사용되지 않은 두 가지 상태 만 있습니다 .
앨리스는 1 비트 코인 비용 밥에서 새로운 노트북을 구입가는 때, 그녀는 (소비됩니다 지출에게 ) 25 비트 코인의 거래 두 개의 새로운 만들 수있는 거래를. 하나의 거래는 Bob에게 1 비트의 돈을 요구하는데, 다른 거래는 나머지 비트 동전 ( 변경 )에 대한 것입니다.
앨리스가 원래 거래에서 "25"를 긁어내어 24 개로 만들고 1 비트 코스트로 Bob에게 새로운 거래를 할 수없는 이유는 무엇입니까? 이전에 논의한 것처럼 거래 는 지출 했거나 사용하지 않을 수 있습니다 . 그들은 수정할 수 없습니다. 이것은 블록 체인이 갖추어야 할 큰 특징 중 하나입니다. 새 트랜잭션을 생성하는 유일한 방법은 입력으로 사용중인 트랜잭션의 값과 같거나 큰 트랜잭션을 사용하는 것입니다. 소비 된 트랜잭션이 소비하려는 값보다 큰 경우 나머지 값은 변경 되어 새 트랜잭션으로 반환됩니다.
모든 새로운 거래에는 입력을 생성하는 데 사용 된 입력에 대한 기록이 있어야하기 때문에 아무도 자금을 낭비하지 않도록 감사 할 수 있습니다. 유일한 예외는 시스템 자체이며, 광부를위한 새로운 트랜잭션을 생성합니다. 이 방법으로 모든 트랜잭션을 시스템에서 원래 발급까지 추적 할 수 있습니다.이를 코인베이스 트랜잭션이라고합니다. 이것은 복잡하게 들릴 수 있으며 UTXO 모델 은 복잡하지만 완전히 감사 가능한 블록 체인이됩니다.
이미지 출처 : bitcoin.orgUTXO 모델은 토큰 형태로 가치를 움직이는 맥락에서 불변성을 보장하는 데 훌륭하지만, 움직이는 가치가 단순한 토큰이 아니라면 어떨까요? 호출하려는 '값'이 코드 일 경우 어떻게해야합니까? 퍼블리싱을위한 트랜잭션의 출력이 코드 조각이라면 어떻게 그것을 만들어서 퍼블리셔뿐 아니라 누구에 의해서도 소비 될 수 있습니까?
계정 모델은 UTXO 모델보다 훨씬 간단합니다. 데이터베이스를 사용하는 모든 노드에서 공유 상태를 유지 관리하고 트랜잭션은 필요할 때 데이터베이스를 간단히 업데이트하기 때문입니다. 복잡한 데이터 구조를 허용하고 일반 컴퓨팅을 허용합니다.
계정이 UTXO 모델보다 일반 컴퓨팅에 더 적합한 경우 QTUM이 UTXO 모델과 함께하는 이유는 무엇입니까?
Qtum은 특별한 "Accounts Abstraction Layer"에 대한 작업을 수행했습니다.이 "Accounts Abstraction Layer"는 백서에서 읽거나 다음 호에 나오는 기사에서 읽을 수 있습니다. AAL은 EVM 호환 인터페이스를 노출하면서 UTXO 트랜잭션의 기반을 허용합니다.
Qtum은 UTXO 모델을 가장 오래 서있는 모델에 의해 제공되는 보안 때문에 주로 선택했습니다. Bitcoin 스크립트에 사용 된 제한된 opcode 세트와 Bitcoin (Qtum 백서 당시) 이후 8 년 동안이 모델은 상당히 안전한 모델로 간주되었습니다. 계정 모델은 일반 컴퓨팅 기능의 비교적 큰 세트 위에 구축되므로 UTXO 모델보다 기본적으로 구현하는 것이 여전히 위험합니다.
둘째, AAL을 사용하여 EVM과 호환되는 범용 계정 모델을 실제로 공개 할 수 있습니다. AAL에서 실행 된 첫 번째 VM은 Ethereum VM이었으며 작년에 출시되었지만 현재는 Qtum 체인에서 실행되는 EVM과 함께 x86 VM을 릴리스 할 계획입니다. 이는 EVM을 기본적으로 구현하지 않고 모듈 방식을 허용하는 AAL에 노출하기 때문에 가능합니다.
마지막으로 UTXO 모델을 사용하여 체인 상단에 스마트 계약 애플리케이션이 아닌 프로토콜 수준에서 스테이크 증명 합의 (Stofake Consensus)를 구현할 수 있습니다. 수정 된 Blackcoin Proof-of-Stake 알고리즘은 병렬 증명을 사용하며 UTXO 활동을 필요로합니다. 이는 계정 모델에서 수행 할 수 없었던 작업입니다.
즉, Qtum UTXO 모델을 사용하면 Bitcoin 블록 체인이 수년 동안 작업해온 안정성과 보안을 기반으로 구축 할 수 있으며 분산 응용 프로그램을위한 다용도 개발 플랫폼이 가능합니다.
https://blog.qtum.org/qtums-utxo-design-decision-d3cb415a3a6e