비트코인은 특정 지갑에 저장되는 것이 아니라, UTXO에 저장되며, 이 UTXO를 통해 존재 여부를 확인할 수 있다.
트랜잭션 구조

트랜잭션 버전
: 네트워크에서 트랜잭션의 유형을 지정하는 버전 번호. 버전별로 구조와 규칙이 다르다
잠금시간
: 트랜잭션을 블록에 바로 포함할 수 있는지, 아니면 지정된 시간이 지나야 포함 가능한지 지정한다.
입력과 출력
: 출력은 잠금과 값으로 구성되어 기본적으로 잠겨있으며, 입력에는 잠금을 해제할 수 있는 키가 들어있다. 값은 출력 내에 잠겨있는 비트코인의 양을 말한다.
입력에는 포인터와 해제키가 들어있다. 포인터는 이전 트랜잭션 출력을 가리킨다. 키는 포인터로 가리키고 있는 이전 출력을 해제하는데 사용된다. 지불하고 남은 비트코인을 돈을 지불한 사람에게 돌려주어야 하므로 새로운 출력을 만든다.
즉, 출력에는 자산이 잠겨있고, 입력으로 출력을 해제하여 출력에 있는 값을 꺼내, 새로운 출력에 자산을 담는다. 트랜잭션에는 다른 곳에 잠겨있는 출력을 해제하는 입력과, 입력의 결과로 생긴 새로운 출력이 담기게 된다. 따라서 트랜잭션은 이전 출력을 해제하고, 새로운 출력을 만드는 추상적인 액션이라고 볼 수 있다. 이렇게 입력에 의해 생성되고 다른 입력에 의해 해제되지 않은 트랜잭션 출력을 UTXO라고 한다.

UTXO는 잠겨있는 비트코인이다. 코인을 담고 있는 상자이며, 다양한 양의 코인을 담을 수 있다. 처음 비트코인을 가지게 된다면, 블록체인에서는 UTXO를 하나만 가지고 있을 것이다. 트랜잭션이 일어나면 타인에게 코인을 전달해야 하므로 UTXO상자에서 코인을 모두 꺼내고, 새로운 상자에 지불해야 할 코인을 담아 전달하고, 다른 새로운 상자에는 남은 코인을 저장한다.
예를 들자면,
A가 UTXO를 2BTC, 2BTC, 2BTC 이렇게 3개의 UTXO를 가지고 있고 B에게 5BTC를 전달해야하는 트랜잭션이 일어났다면 UTXO가 입력의 해체키로 해제되어 2BTC, 2BTC, 1BTC, 1BTC 로 새로운 출력이 생성되어 앞에 2,2,1BTC는 새로운 출력이 되어 B의 주소로 변경되고, 나머지 1BTC는 다시 A의 새로운 출력으로 변경된다.
그리고 입력의 포인터는 이전 트랜잭션을 가리키기 때문에 이 포인터를 계속 따라가다 보면 해당 코인의 Coinbase의 주소가 나온다. 즉, 채굴자의 주소가 나온다는 것이다.
또다른 예시

라이트닝 네트워크
: 늘어나는 거래량에 따라 트랜잭션 처리 속도가 느려지는 성능 문제를 해결하기 위해 등장한 것으로, 트랜잭션 내용을 블록체인 외부에 저장하고 최종 결과만 블록체인에 올리는 방법을 사용해 문제를 해결하는 것이다.
이 기능을 구현하기 위한 핵심 기술은 다중 서명과 시간 잠금 계약이다. 다중서명을 통해 블록체인 외부에서 트랜잭션을 실행할 때는 계약 당사자들끼리 합의하고, 트랜잭션 결과를 체인에 기록할 때 당사자들의 개인 키로 공공 계좌를 만들어 비밀 키를 생성한다. 시간 잠금 계약은 일정시간이 지나 트랜잭션이 확정되었을 때까지 트랜잭션을 임의로 변경할 수 없게 하는 것이다.
루트스탁 : 비트코인에 스마트 컨트랙트 기능을 탑재하는 사이트체인 프로젝트이다. 루트스탁은 2-way peg를 이용해 비트코린에 튜링 완전한 스마트 컨트랙트를 지원하는 블록체인을 쌍방향으로 연결하여, 병합채굴을 통해 비트코인 채굴 노드가 사이드체인 블록까지 채굴할 수 있도록 연결하는 것이다.
탭루트
: 슈노르 서명과 MAST 등 중요한 사항드이 포함된 비트코인 업그레이드를 의미한다.
위 업그레이드를 통해 스크립트 실행에 대한 효율성이 극도로 커지기 때문에, 궁극적으로 기존에 제약이 많았던 비트코인 스마트 컨트랙트의 활용성이 확장될 것으로 기대된다.
