「UTXO」とは?ビットコインの残高管理方法「UTXO」の仕組み

UTXOって何、、、​ビットコインは持ってるけどビットコインの仕組みがわからない、、、ビットコインについて、UTXOについてもっと詳しく知りたい!そんなあなたは必見!

ビットコインの残高管理方法であるUTXOとはなんなのか?

UTXOは仮想通貨を知るうえで欠かせない知識ではありますが、初心者にはなかなか理解し難い単語です。

そこで、コインオタクがUTXOの仕組みから長所や短所まで具体例を用いながら詳しく説明します!

これであなたは銀行の通帳などとはまた違ったビットコインの残高管理方法を知り、仮想通貨への理解がぐっと深まります!

この記事を読んで分かること

  • ビットコインの残高管理方法であるUTXOの仕組み
  • UTXOとは違ったもう一つの残高管理方法
  • UTXOは優秀な仕組みなのか?

 

まず、ビットコインについて詳しく知りたい方はこちら!!

最近会社で同僚や後輩がみんな「ビットコインで儲けた」だの「仮想通貨がブーム」だの言ってるけどイマイチついていけてない、、、そんな置いてけぼり感で悩んでいませんか?いまや日本人の7人に1人が持っていると言われる仮想通貨ビットコインを知らないなんて少し言いづらいですよね。そんなあなたに朗報です!仮想通貨にとっても詳しい東大生がビットコインについて10分で教えちゃいます!ビットコインの論文を読んでややこしい技術的な部分までしっかりと理解したコインオタクが初心者向けにわかりやすく教える内容を読めば、同僚や後輩よりもよっぽどビットコインに詳しくなれるはずです!しかも、ビットコインの仕組みだけでなく、安心して投資を始めらるれるようにビットコインの今後の価格予想や始め方まで解説します!今回はビットコインが今人気の理由や具体的な仕組み、危険性を紹介したのちに著名人の価格予想・具体的な購入方法を紹介しています。この記事を読んでビットコインについて深く理解して安心して「仮想通貨オタク」の仲間入りを果たしてもらえたら幸いです。bitFlyerでビットコインを購入する!目次日本人の7人に1人は持ってる!?ビットコインとはビットコインの仕組みとはビットコインのデメリットとは?利用する上での注意点ビットコインはまだ儲かるのか?今後の価格を著名人が予想!ビットコインの買い方とは 投資を始めてみよう!ビットコインのよくある質問まとめ日本人の7人に1人は持ってる!?ビットコインとはビットコインとはビットコインとは、正体不明の経済学者「ナカモト・サトシ」が2009年に発表した世界初の仮想通貨です。仮想通貨は円やドルなど国が発行する法定通貨とも、楽天ポイントやTポイントなどの電子マネーとも異なる「最先端のお金」です。ビットコインは約1500種類ある仮想通貨のうちの1つであり、最も古く最も人気があります。数々のニュースで取り上げられている通り、いまやビットコインは世界中でブームとなりつつあります。特に日本での人気は高くビットコインの取引量の約60%(世界一)を占め、日本の成人の15%がビットコインを保有しています。Source:


UTXOとは(概要)

​UTXOとは「unspent transaction output」の略で、和訳すると未使用のトランザクションアウトプットです。これはブロックチェーン上にあるトランザクションの取引データのみに基づいて計算し、アドレス(ウォレット)の残高を管理する方法です。

仮想通貨も日本円や米ドルなどの法定通貨と同じようにその通貨の残高がいくらかを把握する必要がありますが、仮想通貨の基軸通貨であるビットコインがこのUTXOを採用していて、通帳に取引データを記録し口座の残高を管理する銀行とは全く違う方法ですね!

UTXOの仕組み 

トランザクションでのinputとoutput

ビットコインで​取引が発生すると取引記録はブロックチェーン上にトランザクションが生成され、そのトランザクションのinputoutputの二つに記録されます。ビットコインの着金がinputに記録され、送金はoutputに記録されます。

例えば、AさんがBさんのアドレスに5BTC送信したとしましょう。そうするとブロックチェーン上にトランザクション①として記録されます(下図)。

5BTCのinput(入金)情報と共にoutput(送金)情報も記録されます。Bさんはまだ誰にも送金していないのでトランザクション①のoutputは未使用ですね。これがUTXOです。UTXOは未使用のトランザクションoutputの略だったので、トランザクション①のoutputはUTXOでありBさんのアドレスの残高を表しています。


次にBさんはCさんのアドレスに5BTC送金します。するとその取引はトランザクション②のinputとoutputに記録されます。この時トランザクション①のoutputみ未使用から使用済みになるためこれはUTXOではなくなります。今度はトランザクション②のoutputが未使用のトランザクションのoutput=UTXOということでCさんのアドレスの残高を表しています。

つまり、トランザクションにinput(着金)だけされてoutput(送金)がされていなければそれはその人のビットコインということになります。

UTXOとは未使用のトランザクションのoutputのことでしたので、まだoutput(送金)されてない=未使用のトランザクションのoutputの記録1つ1つがUTXOというわけです。

取引が膨大になればなるほどブロックチェーン上にあるUTXOを全て集めて残高を計算しなければならないため処理が複雑になってしまいます。​

秘密鍵とアドレスの所有 

ビットコインを持っている人は自分のアドレスを持っていて、トランザクションのoutputの中には取引量とともに取引先(アドレス情報)が記録されています。

自分の所有しているビットコインを確認するにはUTXOのアドレス情報が自分のであることを証明しなければなりません。そこで重要なのが“秘密鍵”です。

秘密鍵とは簡単に言えば暗証番号のようなもので、アドレスに対応した秘密鍵を使い、ブロックチェーン上にあるUTXOを自分のものであると証明します。

秘密鍵について、またそれに関連する公開鍵について詳しく知りたい方は下記をご覧ください。

​「公開鍵・秘密鍵って何だろう?」「どうして鍵が2つもあるの?」このような疑問を持ったことはありませんか?この記事を読めば公開鍵・秘密鍵の基本を理解することができます。普通に考えれば、1つの錠に対して鍵は1つです。しかし、仮想通貨取引において用いられるこの2つの鍵は性質が全く異なります。鍵が2つあることは情報を保護する上で非常に重要な意味を持っています。一般の鍵のイメージは公開鍵・秘密鍵を理解する中で邪魔になるかもしれません。一旦はそのイメージを脇において読むといいと思います!目次公開鍵・秘密鍵とは​​​​秘密鍵の管理に注意!​秘密鍵の管理方法は?​まとめ​仮想通貨の公開鍵・秘密鍵とは​​​​​公開鍵​公開鍵とは一般に公開されている鍵で、後で説明する秘密鍵から作成されます。流れとしては秘密鍵→公開鍵→アドレスという感じです。しばしば公開鍵とアドレスは同じものとして扱われるのですが、違うものなので注意してください。アドレスは銀行口座で例えるなら口座番号です。例えばA君からB君に1BTC送るとしましょう。B君は1BTCを受け取る際、自分のアドレスをA君に教えればいいだけです。このトランザクションではB君の秘密鍵も公開鍵も必要ありません。現在の銀行を介した取引と仕組みは同じです。一方で、公開鍵は取引の検証のために用いるものです。つまり公開鍵でトランザクション内容が本当に正しいのかを検証することができるということです。上の例でA君の公開鍵を使えば、「A君が自分の秘密鍵を使って送金したこと」「送金額が1BTCのままであること」「B君のアドレスに送金されていること」を誰もが確認することができます。詳しくは電子署名の図で説明します。秘密鍵から公開鍵を作ることは比較的容易にできますが、公開鍵から元の秘密鍵を類推することは非常に困難です。​公開鍵から秘密鍵を作れてしまってはこの暗号方式の意味がありません。この一方向性が非常に重要で、歴史的にみると1960年代、一方向性をもつアルゴリズムが見つからなかったので、公開鍵と秘密鍵を用いた暗号方式は理論の段階にとどまっていました。しかし条件を満たすアルゴリズムが見つかったことで、現在の2つの鍵を用いた暗号方式が可能になりました。とにかく公開鍵を知られたと言って、別に自分のお金が盗まれるというわけではないので安心してください!​秘密鍵​秘密鍵は

これによりアドレスの不正使用を防止することができます。

ブロックチェーンの残高管理方法は二つ存在する 

①UTXOベースとは?

UTXOベースとは上記で説明したUTXOを使った残高管理方法で、トランザクションの送金されてない記録を合計し、アドレスの残高を管理する方法です。これは一目でわかる銀行口座の通帳とは違く、いちいち全てのUTXOを集め計算しないといけないため、処理は複雑になってしまいます。

②アカウントベースとは?

アカウントベースとは銀行の口座管理する方法と似ていて、アドレスに残高を直接記録し管理する方法です。イーサリアムやネムはこの管理方法を採用しています。UTXOベースに比べ、システムは単純です。

UTXOベースとアカウントベースどちらが優れているのか?

プライバシーや匿名性

UTXOベースはその複雑な管理方法からプライバシーや匿名性の点ではアカウントベースより優れています。例えば、Dさんが10BTC持っていて、Eさんに6BTC出金したとします。

アカウントベースではそのまま4BTCがDさんのアドレスに残りますが、UTXOベースではDさんはこの4BTCを別の自分のアドレスに送金しなければなりません。(下図)

またDさんがEさんに6BTC、Fさんに4BTC送金したとします。そうすると下図のようになります。

よってDさんがEさんだけに6BTC送った場合とDさんがEさんに6BTC,Fさんに4BTC送った場合では見た目上は同じ形になるのです。

この複雑さにより、BTCの追跡が困難になり、UTXOベースはアカウントベースよりプライバシーや匿名性が優れているのです。

スマートコントラクトの実装の難しさ 

スマートコントラクトとは取引の契約条件と契約内容をプログラミングしたもので、取引が発生した時に契約条件を満たしていれば契約内容を自動で実行してくれる仕組みです。

例を出すと自動販売機は購入者がお金を入れボタンを押すと自動的に飲み物が受け取れます。

この「契約の自動化」がスマートコントラクトなんです。スマートコントラクトの詳細は下記をチェック!

目次スマートコントラクトとはスマートコントラクトのメリット スマートコントラクトの問題点・課題・脆弱性スマートコントラクトの将来性・活用事例スマートコントラクトの気になる疑問を解決!スマートコントラクトまとめ スマートコントラクトとは 一言で言うとスマートコントラクトとはプログラムに基いて自動的に実行される契約のことです。これだけだと具体的なイメージがわからないと思うので詳しく解説していきます。 ブロックチェーンを用いたスマートコントラクトの仕組み スマートコントラクトをブロックチェーンと組み合わせることで、当事者間の私的な取引をプログラムとしてブロックチェーン上で記載し、契約の執行条件が満たされたら自動的に契約が執行される仕組みを作ることができます。これにより取引に付随する様々な作業を自動で執行できるようになり不正取引が減ったり、世の中の仲介業者がやっていることを自動化できるなど、かなり画期的で、今後の世界を変える可能性を秘めています。 そもそも契約とは、 契約定義イベント発生価値の交換、契約執行決済 という4つでできていて、スマートコントラクトでは、2〜4を自動で行うことができます。 ですが、これでもまだイメージが掴めないと思うので身近な具体例を用いて考えてみましょう。 スマートコントラクトの身近な具体例 実はスマートコントラクトの概念は、ビットコインができるよりも昔からある概念です。1994年にNick Szaboというコンピューター科学者・法学者・暗号学者によって提唱されていて、初めに導入された例として自動販売機を上げています。自動販売機はお金を入れると商品が自動で出て来ます。これは人と人との間で売買の合意があるわけでもなく、何かの売買契約書を交わしたわけでもなく、機械によって自動で執行された契約という意味では、スマートコントラクトの事例であるといえます。上の契約とは、の話に当てはめると、 制約条件を満たす額のお金(買うものの値段)を入れてボタンを押すと、商品が出て来るという契約を定義する人が訪れてお金を入れてボタンを押す商品が出て来るお金が自動販売機のものになる と言った工程のうち2~4は自動で執行されます。 スマートコントラクトのメリット

残高情報だけでなくスマートコントラクトのようなプログラムを実装するとなると膨大な計算量が必要になるためUTXOベースはデメリットになります。なので、イーサリアムやネムなどのスマートコントラクトを実装している仮想通貨はアカウントベースを採用しています。

結論

  • UTXOベースは追跡が困難なことからアカウントベースよりプライバシーや匿名性が保たれる。
  • しかし、UTXOベースはその計算の複雑さからアカウントベースよりスマートコントラクトの実装が難しくなってしまう。
  • どちらも一長一短であり、使う場面によって優劣は変わる。

 

Q&A  ​

検索で出てくるUTXOsとは?

未使用のトランザクションのoutput1つ1つがUTXOでその集まりがUTXOsです。

UTXO modelとは?

UTXOベースのことです。

UTXOを採用している代表的な仮想通貨は?​

ビットコインやクオンタムです。


まとめ

UTXOについて簡単にまとめると、

UTXOベースはトランザクションの取引データから計算してウォレット(アドレス)の残高を管理する方法でその取引データの一つ一つがUTXOです。

ブロックチェーンにはUTXOベースとアカウントベースの二つの残高管理方法があり​、仮想通貨の基軸通貨であるビットコインはUTXOベースを採用していますが、UTXOベースはアカウントベースに比べ優秀という訳ではなく、どちらも一長一短です。