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

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

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


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

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

推薦する

暗号通貨決済カードの発行ラッシュの背後にあるビジネス

暗号通貨決済カードは業界全体を席巻するビジネスになりつつあります。 Twitter などのソーシャル...

第2回ビットコイン映画祭が終了しました

ビットコインやブロックチェーン関連の映画に焦点を当てた第2回ビットフィルム映画祭が先日終了した。この...

明日から日本でもビットコイン決済が合法化され、ビットコイン価格が小幅反発

中国証券ネットワークニュース(記者 王周傑)日本の内閣が署名した資金決済法改正案が4月1日に正式に施...

Zcash vs Bitcoin: 非常に似ているが異なる

Alex Sunnarborg 氏は、2015 年に設立されたブロックチェーン投資および市場データ ...

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

振幅は縮小し続け、正中線の方向は1. 市場動向<br/>今日は2017年1月11日です。...

謎の暗号台帳が Uber、Spotify、AirBnB に取って代わる可能性はあるだろうか?

ビットコインの背後にあるテクノロジーは、私たちが知っている中央集権型サービスを終わらせることを約束す...

中国の立法府がデジタル資産法案を発表

激怒論評:中国の国家立法機関である全国人民代表大会は、デジタル資産に法的意味を与える民法典の草案を発...

通貨不確実性の時代にビットコインが安全な避難場所と見なされる理由

ガーディアン紙によると、ベネズエラでは100ボリバル紙幣が流通から撤去されるかどうかを待つ間、ビット...

大企業がブロックチェーン技術を導入する誘惑は、インターネットの新しいプロトコルをめぐって競争することだ。

初期のビットコイン愛好家たちは、この暗号通貨を伝統的な資本主義秩序の転覆の象徴として歓迎したが、銀行...

データ:イーサリアムガスの平均価格は今年最低を記録し、昨年5月初旬の水準まで下落

PADataは7月5日、グラスノードのデータによると、7月4日にイーサリアムガスの平均価格が16.1...

Xiaoliang のマイニング日記: 康定ビットコイン鉱山での 3 か月

5月26日から、私はGoodBitcoin社が展開する大規模なビットコインマイニングファームがある中...

オーバーストックのブロックチェーン株式公開は成功し、1,090万ドルを調達した。

オンライン小売大手のOverstock.comは、ブロックチェーン上で株式を発行するという初めての資...

暗号通貨トランプ大統領と彼の80億ドルのミームコイン

1月18日午前10時、トランプ大統領のソーシャルアカウントは、自身のミームコイン「TRUMP」を立ち...

ビットコイン送金アプリAbraがシリーズAで1200万ドルの資金調達

ビットコイン送金アプリAbraがシリーズA資金調達で1,200万ドルを調達。 Abra は、「ビット...