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

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

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


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

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

推薦する

LKBT創設者アモス・ラング氏との独占インタビュー:ビッグデータの時代において、データは人々の想像以上に価値がある

「ビッグデータの時代において、データは非常に価値があり、その価値は人々の想像をはるかに超えるものとな...

報告書:北朝鮮はマイニングを通じて外貨を稼ぐためにIT労働者を海外に派遣している

世界の紛争などのデータ分析を専門とする米国の非営利団体、朝鮮日報日本語版が最近発表した報告書によると...

次のサイクルの前にBTCがETHに追い抜かれる可能性がある理由の分析

おそらくETHは予想よりも早くBTCを上回るでしょう。理由を説明しましょう:ビットコインの目標は世界...

Asus、暗号通貨マイニング用グラフィックカード2種をリリース

世界最大級のテクノロジーハードウェアメーカーの一社が、暗号通貨マイニング市場向けの新しい GPU の...

ドバイ皇太子:ドバイのブロックチェーンプラットフォームは2020年までに政府文書の管理と保管を実現する予定

ドバイの皇太子は最近、2020年までにすべての政府文書をブロックチェーン上に安全に保存するという戦略...

海外メディア:中国の社会保障基金投資管理はブロックチェーン技術を採用する

海外メディアの報道によると、中国政府は失業手当や年金などの社会保障基金にブロックチェーン技術を適用す...

違法な電力盗難と採掘のため、唐山開平警察は法律に従って500台以上のビットコイン採掘機を押収した。

唐山労働日報によると、河北省唐山市開平鎮は最近、電力窃盗の違法犯罪を取り締まる特別作戦を開始した。同...

Coinbase CEO は /r/Bitcoin のモデレーター Theymos を交代させたいと考えているが、Cobra に反撃される

Bitcoin XT は、ブロック容量を増やす目的で Bitcoin ブロックチェーンをハードフォー...

中国CITIC銀行プラチナ国際デビットカード、年会費無料、オンライン申請、簡単なグローバル決済

グローバル化の加速と越境電子商取引の急速な発展に伴い、海外での消費をサポートできる国際決済カードを持...

IBMと三菱東京UFJ銀行が銀行業務におけるブロックチェーン改革に協力

IBMは、企業分野におけるスマートコントラクトの初の導入となる可能性のある取り組みとして、三菱東京U...

ソロス・ファンド幹部:ドルは下落しており、ビットコインはもはや限界資産ではない(更新) -

ソロス・ファンド・マネジメントの最高投資責任者ドーン・フィッツパトリック氏は昨日、米国の通貨供給量の...

ブロックチェーン技術 - 第四次産業革命へ向かう最良の方法

第一次産業革命により蒸気動力と工場が誕生しました。第二次産業革命により鉄道と電気が誕生しました。第三...

Kucoin盗難事件から見るハッカーのマネーロンダリング手法の進化と対策

多くの人にとって、デジタル通貨の最も注目すべき点は分散化です。一方で、分散化は私有財産の侵害を防ぐこ...

メディア:バイナンスは暗号ソフトウェア会社Swipe.ioの買収の詳細を最終調整中

The Blockによると、Binanceは新興暗号ソフトウェア企業Swipe.ioの過半数の株式を...