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

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

序文: これを書いた後、プログラマーの友人たちに見せました。回答者の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. 其它: チューリング完全性とは、考えられるあらゆる関数を実装できることを意味します。


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

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

推薦する

誕生からメインネットの立ち上げまで、Filecoinの開発の歴史

数年にわたる作業を経て、 Fil ecoinメインネットが正式に開始されました。先週お伝えしたように...

創設者の皆さん:SegVerificationがなければ、ライトニングネットワークは無価値です

Yours は、読者が投稿者にビットコインで報酬を与えることができるソーシャル メディア アプリです...

HDAC マイニングチュートリアル

Hdac はブロックチェーンベースの IoT 契約プラットフォームです。そのトークン HDAC はス...

ビットコインマイニングマシンとホスティングサービスの選び方(初心者向け)

Uncle Mine の序文:周知のとおり、優れたマイニング マシンとホスティング サービスは、す...

ポンジスキームは一般的で、アフリクリプトは逃亡し、投資家は最大36億ドルを失った

南アフリカの暗号通貨取引プラットフォーム「Africrypt」を設立した2人の兄弟は、顧客に「ハッカ...

コインゾーントレンド: 今週のビッグデータに基づくビットコインの価格動向 (2016-09-19)

通貨の価格は上昇する可能性がある1.市場動向ビットコインの現在の価格は4,070元です。昨日の朝、人...

イングランド銀行はブロックチェーンと決済サービスの互換性を望んでいる

クレイジーな解説:イングランド銀行は決済システムに多くの人材と資金を投入しているが、ブロックチェーン...

3分でビットコインの全体像を理解できます

ビットコインは、単にプログラムを書いた謎の人物によって2008年に発明されました。こうしてビットコイ...

火の中の涅槃:ブロックチェーン、ビッグデータなど。金融テクノロジー業界の AlphaGo は誰でしょうか?

2016 年 3 月は特別な月になるはずでした。世界的に有名なアルファ碁とイ・セドルの対決は、機械...

Filecoin の解釈 |十分な時間と忍耐をお願いします

ダイヤルアップ インターネットの時代は、テキストと画像をインターネット経由で正常に送信するのに 2 ...

イーサリアムのビジョンと開発ロードマップから現在の問題まで

著者: @Web3Mario (https://x.com/web3_mario)まとめ:先週の日曜...

控えめな計画者であるビットメインは、業界チェーン全体に積極的に関与している。

Bitcoin Homeによると、Bitmainは2015年9月24日にビットコインウォレット「B...

ファイルコインマイニングの最もわかりやすい解釈:市場価値は急速に発展する

現在まで、多くのマイナーは Filecoin のマイニング モデルをまだ十分に理解していません。そこ...

ベネズエラのインフレは異常で、現地のビットコイン取引量は過去最高に達した。

今年初め以来、ベネズエラの通貨の価値は大幅に下落している。今ではベネズエラ人は物を買うときに現金を数...