サトシ・ナカモト: スマートコントラクト?ビットコインには

サトシ・ナカモト: スマートコントラクト?ビットコインには

序文: これを書いた後、プログラマーの友人たちに見せました。回答者の85%は、自分のIQが十分ではないと述べ、普通の人なら最後の段落まで読むことはできないだろうと考えていました。私が言えるのは、最善を尽くしたということだけです。

あなたがサトシ・ナカモトなら

2009 年の Satoshi Nakamoto であれば、二重支払い問題の解決策を見つけており、今度は Bitcoin 転送機能を設計する必要があります。あなたならどうしますか?私のデザインは次のようになります:

送信者は、次の内容のブロードキャストを Bitcoin ネットワークに送信します。「アドレス A からアドレス B に 1 BTC を転送します。アドレス A の秘密鍵の署名を添付します。」ネットワーク上の各ノードはブロードキャストを受信し、署名が正当であることを確認します。したがって、アドレス A から 1 BTC が差し引かれ、アドレス B に 1 BTC が追加されます。

シンプルでわかりやすいですよね?あなたのデザインは私のものと似ているかもしれません。幸いなことに、あなたも私もサトシ・ナカモトではありません。もしこの設計であれば、ビットコインの可能性は大きく低下し、今日のブロックチェーン分野の繁栄は見られなかったでしょう。サトシ・ナカモトのデザインを見てみましょう:

送信者は、ビットコイン ネットワークにブロードキャストを送信します。その内容は次のとおりです。「1 BTC を転送したいのですが、この 1 BTC のロックを解除するためのキーとして使用できるスクリプトを提供できます。同時に、受信者の要求に応じて、この 1 BTC に新しいロックを追加します。」

ネットワーク上の各ノードはブロードキャストを受信し、スクリプトを実行して、実際に「ロック解除」できることを検出します。その後、送信者の指示に従って、ビットコインに「新しいロック」が追加され、ビットコインには新しい所有者が生まれます。受信者がこの 1 BTC を使用する場合は、新しいロックを開くためのキーとして新しいスクリプトを提供するだけで済みます。

一見すると、サトシ・ナカモトの設計は扱いにくく、直感に反しているように見えるかもしれませんが、実際には非常に理にかなっています。スクリプトは、JavaScript などの単純なコンピュータ言語です。 Bitcoin スクリプトが表現できるコンテンツは非常に柔軟であり、1 対 1 の転送の範囲をはるかに超えています。たとえば、A は、一定量のビットコインを管理するには受取人 B と保証人 C が同時に署名しなければならないと規定したり (担保付き取引)、B、C、D のうちのいずれか 2 人が署名して管理できるように規定したり (共同口座) することができます。 A は、B が一定量のビットコインを使用する前に 1 年間待たなければならないと規定したり (支払いの遅延)、誰でもビットコインを制御できる (お金を使う) か、誰もビットコインを制御できない (お金を燃やす) と規定したりできます。この組み込みスクリプト言語を使用すると、さまざまな契約(実際には単純なスマート コントラクト)を柔軟に記述できます。ビットコイン スクリプトで記述された契約システムにより、ビットコインは人類史上初のプログラム可能な通貨となりました。

本物のサトシ・ナカモトはこう言った

2010年にビットコインの組み込みスクリプトシステムが発見されたとき、ある人物がBitcoinTalkに驚きと困惑を投稿しました。「ビットコインのスクリプトには少し不安を感じます。複雑すぎるし、複雑さはセキュリティの敵です。」この紳士は、後にサトシ・ナカモトの後継者となるギャビン・アンドレセンに他ならない。サトシ・ナカモトは次のように返答した。

基本的な考え方は、Bitcoin がバージョン 0.1 で安定したアーキテクチャを持ち、将来的に根本的な変更が必要なくなることを期待しています。過去数年間のビットコインの設計プロセスで、スクリプト システムを使用することでのみ、担保交易连带合同第三方仲裁多方签名など、サポートしたいさまざまな複雑なトランザクション タイプを実現できることが分かりました。

もしそれが今日だったら、おそらくサトシ・ナカモトは直接こう言うだろう。「ビットコインにはスクリプトが必要であり、スクリプトがあればスマートコントラクトが実現する。」

余談ですが。この投稿はわずか 9 文ですが、ブロックチェーン技術の発展の歴史における重要な対話といえます。 8 階で誰かが「ビットコインのスクリプト システムでは、ユーザーがカスタム資産を発行できるのですか?」と質問しているのがわかります。この人物のIDはbytemasterで、後にユーザー定義の資産を発行できるBitSharesを設立しました。 9階のギャビンはこう答えた。

「そのようなことをするのにスクリプトは必要ないと思います。自分にビットコインを送信し、そのトランザクションが My Valuable Asset のルート トランザクションであると宣言するだけです。」

カラーコインの概念が提案されたのはおそらくこれが初めてです。

ビットコインスクリプトの真実

いろいろとナンセンスなことを言った後、実用的な情報を入手しましょう。ここで、自分の脳をスタックベースのインタープリターと仮想マシンとして考え、Bitcoin スクリプトがどのように機能するかを見てみましょう。一般的な Bitcoin 標準トランザクション ( Pay-to-Public-Key-Hash ) 検証プロセスでは、次のスクリプトを実行する必要があります。

スクリプト公開キー: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG
(scriptPubKeyは、前の例えで述べた1BTCのスクリプト「ロック」です)
scriptSig: (scriptSig は、前の例えで送信者 A が提供したスクリプト「キー」です)

スクリプトが実行された後、結果が true であれば、検証が成功し、A がビットコインを制御する権利を持っていることを意味します。ビットコインネットワークはAの指示に従ってビットコインに「新しいロック」を追加し、転送が完了します。

Bitcoin スクリプトの制限

ビットコインの前方互換性、シンプルさ、安定性を保つために、ビットコインの開発者はスクリプトに多くの制限を課してきました。たとえば、スクリプトにはループ ステートメントがなく、ビットコイン コア クライアントは現在 5 つの固定モード スクリプトのみをサポートしています。これは部分的には歴史的な経緯によるものであり、また部分的にはビットコインの開発チームが保守的で堅固である傾向があるためである。

株式の登録、管理、取引のためのブロックチェーン プロトコル Antshares を開発していることをご存知の方もいるかもしれません。 Ant Financial は、スクリプト システムを含む Bitcoin の主要なアーキテクチャを再利用しました。これを基に、Ant は Gavin Andresen が提案した Bitcoin Improvement Proposal BIP12 を参照し、 OP_EVAL命令を追加しました。まず、Antminer での標準トランザクション (Pay-to-Script-Hash) がどのように機能するかを見てみましょう。

スクリプト公開キー: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_EVAL
スクリプト署名:
引き換えスクリプト: OP_2 OP_3 OP_CHECKMULTISIG

Bitcoin スクリプト + BIP12 = チューリング完全

OP_EVAL 命令の追加により、Ant はチューリング完全なスクリプト システムを持つことができ、より複雑なスマート コントラクトが可能になります。

チューリング完全性とはTuring-computable function可能なすべての関数を計算できるコンピューティング システムを指します。言い換えれば、チューリング完全性により、スクリプト システムは計算可能なすべての問題を解決できるようになります。一方で、強力な処理能力をもたらします。一方、スクリプトの静的分析も不可能になります。スクリプトを実際に実行しない限り、スクリプトがいつ停止するかを知ることはできません。

ビットコイン ネットワーク内のすべてのノードは、すべてのトランザクションでスクリプトを実行する必要があり、そのためにはビットコイン スクリプト システムの設計が十分に合理化されている必要があります。ピアツーピアの電子キャッシュシステムであるビットコインでは、より複雑なスクリプトシステムは必要ありません。

Xiaoyi はチューリング完全なスクリプト ソリューションを採用し、次の 2 つの方法によりチューリング完全性によって発生する問題を回避します。

  1. 各スクリプトで実行できるステップの数を制限します。スクリプトの実行が制限を超えると、直ちに検証失敗と判断されます。どのノードもトランザクションをブロードキャストする前にまずそれを検証するため、ステップ制限を超えるスクリプトはネットワーク全体のすべてのノードに影響を与えることはありません。

  2. 実行ステップが多いトランザクションの場合、複雑なスクリプトを構築することで実行されるサービス拒否攻撃の数を減らすために、より高い手数料が請求されます。

チューリング完全性によって生じる問題を解決した後、Xiaoyi のスクリプト システムを次のシナリオに適用できます。

  1. 智能合约:株式担保ローンなど、契約条件を判断し、条件が満たされると契約条件を自動的に実行します。

  2. 更高级的权限管理: スクリプトを使用して署名に関係するキーに権限を割り当て、m-of-n よりも高度な権限管理を実現します。

  3. 彩票: スクリプトは Ant Blockchain 内の強力な乱数と連携して抽選機能を実現します。

  4. 其它: チューリング完全性とは、考えられるあらゆる関数を実装できることを意味します。


<<:  仮想通貨ねずみ講リスト公開:「百川コイン」

>>:  ビットコインは終焉に向かっているのか?

推薦する

考えること | NFT はどこから来て、どこへ行くのでしょうか?

NFT が法外な価格で売られているというニュースはますます少なくなっています。有名人の中にも、NF...

ビットコインのエコシステムは栄養を失っている - ビットコインはもう一つのエリートチーム、サークルを失った

第0章 はじめに我が国は長い間、エリート移民のジレンマに直面してきました。意外なことに、成長産業であ...

ビットコインは新たな上昇サイクルに入り、コインのマイニングと貯蔵が第一の選択肢となる

12月以来、ビットコインの急騰は多くの主流メディアの注目を集めています。 CCTVファイナンスチャン...

トランザクションの逆転:2つのマイニングプールがビットコインキャッシュに51%攻撃を開始

ビットコインキャッシュは5月15日のハードフォークアップグレード後に51%攻撃を受けたと報じられてい...

米上院は、鉱山会社や開発業者などに課税する可能性のあるインフラ法案の修正案を可決した。

8月9日、米国上院は68対29の圧倒的多数でワーナー・シネマ・ポートマンインフラ法案修正案を可決し...

香港、英国のインターネット金融サンドボックスの仕組みに倣う

クレイジーな解説:英国金融行動監視機構は、インターネット金融の分野でサンドボックスメカニズムを先駆的...

投資家は引き続きロングポジションを維持:1か月で27万ビットコインがロックされる

価格の高騰にもかかわらず、ビットコイン投資家は急速にコインを長期保有しており、過去30日間でビットコ...

BSVは8:48に最初の半減期ブロックを採掘した。

半減期は2020年4月10日北京時間8時48分30秒に完了する。現在のブロック報酬 6.25 BSV...

「合併」前夜のイーサリアムマイナー:慌てず、採掘を続けよう

今年、イーサリアム エコシステム (さらにはブロックチェーン テクノロジー分野全体) で最も重要なタ...

古いDeFIプロジェクトから1,000万ドル以上が盗まれました。攻撃プロセスを簡単にまとめる

2023年4月13日、Beosin-Eagle Eye状況認識プラットフォームによると、Yearn ...

不動産プラットフォームはブロックチェーンを使用して所有権を移転する

クレイジーコメント: Kris Weaver Real Estate Team は、Ubitquit...

「鉱山崩壊説」が広まっている。囚人のジレンマの中で、マイニングマシンの 70% が最後の戦いに直面しているのでしょうか?

鉱業は崩壊するのでしょうか?ビットコインマイニングの計算能力が115Eから最低の85Eに低下するにつ...

「トークンファイナンスと発行」は中国のインターネット金融報告情報プラットフォームの報告範囲に含まれる

中国のインターネット金融報告情報プラットフォームは、「インターネット金融報告範囲」に「トークンファイ...

ビットコイン採掘会社ビットデジタルがCEOを解任

ビットコイン採掘会社ビットデジタルは、取締役会がミン・フー最高経営責任者を解任し、最高財務責任者のエ...