こんにちは,AndGoのハードウェア担当です。皆さんChatGPTやBingChatは使ってみましたか?

自分も仕事柄、文章やプログラミングコードを書いたり、リサーチすることが多いので、ChatGPT Plusに課金してガンガン使っています。想像していたよりも賢く、柔軟性があり、様々な要望に応えてくれるため、ちょっとしたアシスタントとして活用しています。

今回はビットコインに関連した質問をChatGPTに投げて考察してみましたので、お楽しみください。

まずは手始めにビットコインについて聞いてみました。Promptが質問文で、ChatGPTがそれに対する回答です。


Prompt: ビットコインについて歴史、技術的背景、法定通貨との比較、そして想定される将来性について教えてください。

ChatGPT: ビットコインについて、歴史、技術的背景、法定通貨との比較、および想定される将来性について説明します。

  1. 歴史: ビットコインは、2008年にサトシ・ナカモトという仮名の人物によって発表された論文「ビットコイン: P2P電子キャッシュシステム」によって初めて紹介されました。2009年に最初のビットコインがマイニングされ、それ以降、世界中で利用されるようになりました。最初は技術者やコンピューターマニアの間でのみ利用されていましたが、徐々にその価値が認識され、一般の人々にも普及しました。
  2. 技術的背景: ビットコインは、分散型のデジタル通貨です。従来の中央集権的な金融システムとは異なり、ビットコインはブロックチェーンと呼ばれる技術によって運営されています。ブロックチェーンは、取引履歴を保存するデータベースであり、複数のコンピューターに分散されたネットワーク上に存在します。ビットコインのマイニングとは、取引の検証と新しいビットコインの発行を行うプロセスで、マイナー(マイニングを行う人)はこのプロセスによって報酬を得ます。
  3. 法定通貨との比較: ビットコインは、法定通貨とは異なるいくつかの特徴があります。
  • 分散性: ビットコインは中央銀行や政府によって発行や管理されていないため、中央集権的な統制から独立しています。
  • 供給量の上限: ビットコインの最大供給量は2100万枚に制限されており、インフレの影響を受けにくいとされています。
  • 送金の速度と手数料: ビットコインを使った送金は、国際送金よりもはるかに高速で、低コストです。
  • 透明性: ビットコインの取引はブロックチェーン上で公開されており、誰でも取引履歴を追跡できます。
  • 擬似匿名性: ビットコインの取引は、個人情報ではなく、アドレスに関連付けられているため、相対的に匿名性が保たれています。ただし、取引履歴は公開されているため、アドレスを特定の個人に結びつけることができれば、その人の取引履歴を追跡することができます。
  1. 想定される将来性: ビットコインの将来性には様々な見解がありますが、以下の点が主な議論となっています。
  • デジタルゴールドとしての役割: ビットコインは、デジタルゴールドとしての役割を担っており、資産の保管や価値の保存手段として利用されることが増えています。そのため、将来的には伝統的な金融市場との連動性が高まることが予想されます。
  • 決済手段としての普及: 一部の企業や小売店ではすでにビットコインによる決済が可能になっていますが、手数料や取引速度、価格の安定性の問題が解決されれば、より一般的な決済手段としての普及が期待されます。
  • 規制と法整備: 世界各国の政府や規制当局は、ビットコインや仮想通貨に対する規制や法整備を進めています。規制が強化されることで、一部の市場参加者には悪影響があるかもしれませんが、全体としては市場の成熟や安定化につながるとされています。
  • 環境への影響: ビットコインのマイニングは大量のエネルギーを消費するため、環境への影響が懸念されています。この問題に対処するために、よりエコフレンドリーなマイニング技術や代替仮想通貨が開発される可能性があります。

ビットコインの将来性は、技術の進化や規制、市場参加者の行動など、様々な要因によって影響を受けるため、その展望は確定的ではありません。しかし、ビットコインはデジタル通貨の草分けとして、金融システムに革新をもたらす可能性を秘めています。


※ChatGPTは回答が長くなると一旦止まってしまいます。「続けて」と聞くと、残りを出力してくれます。本記事ではChatGPTの出力を忠実に記載していますが、途中で切れてしまった部分に関しては修正しております。)

客観的で無難な答えを返してくれますね。日本語では「供給量が2100万枚に制限されている」という表現は他のソースでもよく耳にしますが、あまり好きな表現ではありません。そもそもビットコインは1 BTC以下に分割して使えることは会員の皆様はご存知の通りですが、枚という単位を使った瞬間に分割できない(=2100人しかビットコインを持つことができない?)と誤解されそうです。たしかにインターネット上にはそのような表現はよくされていて、その点も含め一般的に言われていることがよくまとめられています。

その他の内容については特に誤りなどは無いように見えます。インターネットにある情報をエクゼクティブサマリーとしてまとめるような使い方として十分に利用価値はあると思います。

それでは少しだけ踏み込んだ内容を試してみます。ビットコインの仕組みに関する内容を聞いてみました。


Prompt: ビットコインにおける階層決定性ウォレットについて概要を教えて下さい。また、どのような種類があるか教えて下さい。

ChatGPT: 階層決定性ウォレット(Hierarchical Deterministic Wallet、HDウォレット)は、ビットコインやその他の暗号通貨を管理するためのウォレットの一種です。HDウォレットの特徴は、シングルシード(マスターシードとも呼ばれる)という一つの秘密情報から、多数の鍵ペア(公開鍵と秘密鍵)を生成できることです。この機能により、ユーザーはウォレットのバックアップや管理が容易になります。

HDウォレットは、BIP32、BIP44、BIP49、BIP84といったビットコイン改善提案(Bitcoin Improvement Proposals、BIP)に基づいて開発されています。これらのBIPは、ウォレットの構造やアドレス生成方法に関する標準を定めています。

HDウォレットには主に以下の2つの種類があります。

  1. BIP32(基本的なHDウォレット): BIP32は、階層決定性ウォレットの基本的な構造を提案しています。マスターシードから生成される鍵ペアは、樹形図のような階層構造を持ちます。各ノードは、親ノードから導出されることで、新たな鍵ペアを生成します。この階層構造により、ウォレット内で複数のアカウントやアドレスを効率的に管理できます。
  2. BIP44(マルチコイン・マルチアカウントHDウォレット): BIP44は、BIP32を拡張し、マルチコインとマルチアカウント対応のHDウォレットを提案しています。この規格では、ウォレット内で異なる暗号通貨や複数のアカウントを簡単に管理できるようになります。また、BIP44では、アドレスの再利用を避けるために、チェーンごとに外部アドレスと内部アドレス(通常はチェンジアドレスと呼ばれる)を分ける概念を導入しています。

その他の規格として、BIP49およびBIP84があります。これらは、それぞれP2SH-P2WPKH(Pay-to-Script-Hash Pay-to-Witness-Public-Key-Hash)アドレスおよびネイティブSegWit(P2WPKH)アドレスをサポートするHDウォレットを提案しています。これらの規格は、SegWit(Segregated Witness)技術を活用したウォレットで、トランザクションのサイズ削減やブロックチェーンの効率化に貢献しています。

BIP49は、P2SH-P2WPKHアドレスをサポートするHDウォレットの標準を定めています。これにより、SegWitを活用したアドレスでの取引が可能になり、手数料の削減やトランザクションのスループット向上が期待されます。

BIP84は、ネイティブSegWit(P2WPKH)アドレスをサポートするHDウォレットの標準を定めています。ネイティブSegWitアドレスは、さらに効率的な取引を実現し、手数料の削減やトランザクションの処理速度向上に貢献しています。

これらのHDウォレット規格により、ユーザーは暗号通貨を効率的に管理できるだけでなく、取引の手数料削減やトランザクション速度の向上など、ビットコインの利便性を向上させることができます。また、これらの規格は互換性があるため、ウォレット間でシードを移行することが容易になっています。


必要十分な説明されていますし内容もほぼ正確です。(「チェンジアドレス」は英語の原文から来ているのでしょう。「お釣り用アドレス」のほうが適切です。) サマリーとしては十分です。なお、階層決定性ウォレットの仕組みについてはこちら(https://coinkeninfo.com/learn-hd-wallet/)をご参照ください。

そもそもChatGPTはどのような仕組みになっているのでしょうか?

ChatGPTはOpenAIが開発し大規模言語モデルでGPT (Generative Pre-trained Transformer) という仕組みを使っています。学習に大量のテキストを使使用し、前のテキストから次を推測していくという原理になっています。

例えば、日本人であれば「春はあけぼの」と来たら「ようよう白くなりゆく山際・・・」と文章が続くと想像しますが、これを高度にやっていると思っていただければ結構だと思います。さらに、それまでの文脈を踏まえた上で次に出力するテキストを絞り込んでいくので、会話を続ける上で情報の精度も上がっていくという理屈になっています。皆さんもこの文脈で「冬は」と来たら「寒い」ではなく「つとめて」を想像するでしょう。

このような形で質問のテキストが入力されたらそれに対して続きそうなテキストを出力していくため、人間から見ると質問に答えてくれているように見えるわけです。

続いてちょっと捻ったことをしてみたいと思います。ChatGPTでは学習に使っているデータは2021年9月までの情報と言われています。そこで、2021年11月に導入されたTaprootについて聞いてみました。


Prompt: Taprootについて教えて下さい。

ChatGPT: Taprootは、ビットコインのプロトコルをアップデートすることで、スマートコントラクトの効率性、プライバシー、およびスケーラビリティを向上させることを目的とした提案です。2021年11月にアクティベートされたTaprootは、ビットコイン改善提案(BIP)340、341、342で定義されており、Schnorr署名とMerkleized Abstract Syntax Trees (MAST)という2つの主要な技術が組み合わされています。

(・・・以下長いので略)


あれ???未来のことを知っていますね。そろそろ最新のインターネット上の情報も取り込むプラグインが使えるようになるというニュースもありましたが、まだ一般公開はされていません。おそらく、「2021年11月にアクティベートされる予定だ」のような文章から作られた情報なのだと想像しています。「現在のビットコイン価格は?」と聞いても「取引所の情報を確認してください」としか答えてくれません。

さらに、大規模言語モデルの特徴ついてよく分かる例を紹介したいと思います。

次に、ロジカルな質問をしてみたいと思います。


Prompt: BIP39の単語リストを表示してください。

ChatGPT: BIP39は、暗号通貨のウォレットのシードフレーズを生成するために使用される方法です。以下は、BIP39で使用される2048の単語リストです。BIP39(Bitcoin Improvement Proposal 39)は、マニュアルでのバックアップと復元が簡単な、一連の単語を使ったシードフレーズを生成するための標準です。これにより、ウォレットの復元が簡単になります。

BIP39の単語リストは、2,048の単語から構成されています。すべての単語をここにリストすることはできませんが、単語リストの一部を以下に示します。

  1. abandon
  2. ability
  3. able
  4. about
  5. above
  6. absent
  7. absorb
  8. abstract
  9. absurd
  10. abuse ...
  11. youth
  12. zebra
  13. zero
  14. zone
  15. zoo
  16. zoom

完全なリストは、以下のリンクで確認できます: https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

このリストは英語版ですが、BIP39は他の言語の単語リストもサポートしています。ウォレットのシードフレーズ生成には、これらの単語の組み合わせが使用されます。


インデックスはWordの箇条書きと同じで自動生成されているものなので、11〜16が間違えるのは仕方ないですが、それっぽく表示されています。しかし、最後の単語はzoomではなくzooです。惜しい!オリジナルのリンクまで出しているのにも関わらず間違っているのは残念すぎます。途中ごまかしているような気もするので、追い打ちをかけるように途中の単語も聞いてみます。


Prompt: 1000単語目から1010単語目を表示ってできますか?

ChatGPB: もちろんできます。BIP39の英語単語リストの1000単語目から1010単語目までの単語は以下の通りです。

  1. later
  2. latin
  3. laugh
  4. laundry
  5. lava
  6. law
  7. lawn
  8. lawsuit
  9. layer
  10. lazy
  11. leader

これらの単語は、BIP39シードフレーズ生成において使われる単語の一部です。

自信満々ですが、laterは1003単語目です。惜しいですね。


Prompt: exhibit crazy bulb essence civil version dismiss eager swallow pet virtual piece quarter note toe monitor begin civil fire smile sauce help filter pave がそれぞれ何単語目か教えて下さい。ただし単語の順序は0から数えてください。

Prompt: BIP39の英語単語リストに基づいて、指定された単語のインデックスを計算しました。以下に、それぞれの単語のインデックスを示します(0から始まるインデックス)。

exhibit - 670 crazy - 463 bulb - 234 essence - 665 civil - 305 version - 1979 dismiss - 578 eager - 632 swallow - 1842 pet - 1383 virtual - 1985 piece - 1394 quarter - 1484 note - 1227 toe - 1891 monitor - 1166 begin - 163 civil - 305 fire - 819 smile - 1653 sauce - 1563 help - 908 filter - 818 pave - 1370

注意:同じ単語がリストに複数回表示されている場合があります(この場合、「civil」)。インデックスは同じままです。


かなりそれっぽい数字ですが、ずれてしまっています。これはGPTが言語に頼っているからで、厳密な演算を行っているわけではないということが原因だと思います。


Prompt: 587426と1294801の積は?

ChatGPT: 587426と1294801の積は7,603,999,326です。


正しく答えているように見えますが、間違っています。正解は760,599,772,226です。残念!

小学生に「1+1は?」と聞くと、「2!」と答えると思います。「2+2は?」「4!」「4+4は?」「8!」・・・と続く場合もありますが、このようなやり取りを友達と何度もしているうちに答えを暗記してしまっていて、計算しているわけではないのとほとんど同じです。インターネット上にある膨大なテキストに存在する掛け算に関する言語的なやり取りを学習しているだけです。

私たちも言語的な経験を膨大に蓄積しているという意味では同じなので、ChatGPTの出力が感覚的に正しく見えてしまう理由もうなずけます。実際にGPTの学習の過程で人間がどの回答がそれっぽいか判定するというプロセスも入っていますので、「それっぽさ」が強調されるのかもしれません。


Prompt: 2の256乗は?

ChatGPT: 2の256乗は、115792089237316195423570985008687907853269984665640564039457584007913129639936です。


こちらは正解です。一桁も誤りはありません。この数字はほぼ10の77乗の大きさがあり、ビットコインの秘密鍵のセキュリティ強度にも関わってくる数字、皆様はピンと来ると思います(https://coinkeninfo.com/explanation-on-ecdsa/)。たしかにインターネット上を検索してみると、いくつかのサイトで2の256乗の具体的な数値が記載されており、これだけの大きなの数字を正確に出力できた理由といえます。

したがって、ChatGPTは自分で何かを考えたり論理的な思考をしているというわけではなく、様々な情報を持っていて、質問の答えとして言語的にマッチするものを出力するものといえます。

逆にChatGPTが得意とする質問をしてみたいと思います。


Prompt: ビットコインに関する用語を出力してください。ただし先頭の用語はaから始まり、b、c・・・とアルファベット順にし、最後の用語はzで始まる用語で終わりなさい。用語は全て英語で出力してください。 ChatGPT:

  1. ASIC (Application-Specific Integrated Circuit)
  2. Block
  3. Cryptocurrency
  4. Decentralization
  5. Exchange
  6. Fork
  7. Genesis block
  8. Hash
  9. ICO (Initial Coin Offering)
  10. Jaxx (cryptocurrency wallet)
  11. KYC (Know Your Customer)
  12. Lightning Network
  13. Mining
  14. Node
  15. On-chain transaction
  16. Private key
  17. QR code
  18. ROI (Return on Investment)
  19. SegWit (Segregated Witness)
  20. Ticker (symbol used to represent a cryptocurrency)
  21. UTXO (Unspent Transaction Output)
  22. Vault (secure storage for cryptocurrency)
  23. Wallet
  24. Xapo (cryptocurrency wallet)
  25. Yield farming
  26. Zcash (a privacy-focused cryptocurrency)

おぉ!単語集がつくれそうですね。

まとめ

今回はChatGPTにビットコインについて訪ねながら、大規模言語モデルの特徴について実験しつつ、ビットコイン技術の復習をしてみました。いかがだったでしょうか?私なりに大規模言語モデルをまとめてみると、「世界中の情報を知っていて、言語能力に長けたやつ」といえます。これまで私たちは何かを調べる時に様々な情報源をあたっていましたが、大規模言語モデルはそれらのサマリー(あくまで言語的にまとめたもの)を持っています。また、私たちの質問を言語的に解釈して適切なサマリーを紡ぎ出してくれます。

大規模言語モデルを使ったら誰でも世界中の誰も思いつかなかったような新しいアイデアがゼロから生まれるかというと難しいといえます。というのも、大規模言語モデルの中にあるのはその気になればインターネットで検索できる情報、あるいはそのサマリーだからです。ただし、今自分が持っている知識や知恵にそれらが加わることで新しいアイデアが生まれるスピードが加速する可能性は十分にあると思います。

また、AIが驚異になるという考え方もあり、ビットコインのセキュリティに対してもそのような可能性があるかもしれないと考える方もいらっしゃるかもしれませんが、まだそれには程遠いと考えています。ビットコインに使われている暗号技術はその強度に数学的な裏付けがあるものですし、多くの人が攻撃にトライしていますので、それを超えるものを簡単につくれるとは思えません。しかし、汎用人工知能(AGI)が生まれ、これまでの人類の知的生産を再現できるようなことができれば、話は別だと思いますが、それ以上は自分にはわかりません。

さて、ビットコインの技術は人々のアイデアの集合体であるといえますが、技術開発に加わったり、ビジネスに利用するには、現時点では様々なことを学ぶ必要が出てきます。今回、ChatGPTを使ってビットコインに関することを聞いてみましたが、ぜひ皆さんも活用して、皆さんご自身の活動にお役立ていただけると良いのではないかと思います。もちろん、得られた情報はChatGPTが文字通り機械的に構築したもので、何の責任も取ってくれませんので、”Don’t Trust, Verify”の精神をもってご利用ください。