HashKey Capital ポッドキャスト Hash Out 42 では、ビットコイン エコシステムが爆発的に拡大している月の裏側を探ります。
ゲスト: Jeffrey Hu、HashKey Capital テクニカル ディレクター;
アジアン氏、上級ビットコイン研究者、BTC 研究寄稿者
組織: HashKey Capital
** ** 
*ビットコイン エコシステムが爆発的に拡大している月の裏側を探索し、HashKey Capital の Hash Out 42 の第 3 エピソードへようこそ! *
*このエピソードでは、HashKey Capital テクニカル ディレクターの Jeffrey Hu 氏が、上級ビットコイン研究者であり BTC 研究の寄稿者でもある A Jian 氏と協力して、ビットコインに関する一般的な通説の真実を発見します。彼らは、ビットコイン開発者に関する最大の誤解のいくつかに焦点を当て、現在最も話題になっている論争を調査し、ビットコインネットワークの分散型の性質に光を当てます。 Hash Out 42 の独自の視点を通じて、ビットコイン エコシステムの知られざるストーリーを復元し、ビットコインのエコロジー ガバナンスと将来の開発のための巨大な空間を想像してみてください。 *
あなたは、HashKey Capital が制作したポッドキャスト、Hash Out 42 を聞いています。 『銀河ヒッチハイク・ガイド』では、スーパーコンピューター「ディープ・ソート」による750万年の計算と検証を経て、生命、宇宙、そして万物に対する最終的な答えは「42」だという。このプログラムでは、Web3 世界の起業家、投資家、開発者、コミュニティ参加者、規制当局と暗号化およびブロックチェーン業界に関する最終的な推測を共有したいと考えています。
アジアン: 「実際、これらの開発者には、ビットコイン ブロックチェーン上で何ができるか、何ができないかに影響を与えるほど大きな力はありません。」
Jeffrey Hu: 「ルーク、彼がやりたいのは、コンセンサス ルールのレベルで何らかの変更を加えることではなく、ローカル クライアントまたはフル ノードのレベルで変更を加えることかもしれません。」
アジアン: 「この保守主義の意味は、安全性を常に最も重要なレベルに置くということです。したがって、安易に何かを試みることはありません。しかし、それは保守的ではないと考えることができます。なぜなら、良いものがあればそれを発見したからです」解決策であれば、誰もが実際に積極的にそれを受け入れるでしょう。」
Jeffrey Hu: 皆さん、こんにちは。HashKey Capital が制作したポッドキャスト、Hash out 42 の第 3 エピソードへようこそ。私は HashKey Capital のテクニカル ディレクターの Hu Zhiwei です。今日は、ビットコイン研究者であり、BTC 研究の寄稿者であるアジアン氏を招待して、ビットコインのエコシステムに関する神話について話し合うことができることを非常に光栄に思います。それから、アジアン先生、私たちの聴衆の友人たちに挨拶をしませんか?
A Jian: リスナーの皆さん、こんにちは。私の名前はA Jianです。ビットコイン研究者です。 Hash out 42 から、ジェフリーと一緒にこのポッドキャストを録画するよう招待していただき、とても光栄に思います。
ジェフリー ヒュー: わかりました、わかりました、私たちのポッドキャストの名前は実際には「Decoding the Gatekeeper Myth」と呼ばれています。ビットコインの生態に関するよくある誤解も含めて、ビットコインについて話し合いたいと思います。はい、それでは、A Jian 先生をお招きして、最近の神話について話していただきたいと思います、なぜなら、タイトルのように、私たちが最近観察した誤解があるかもしれないと思うし、それが私たちがやっていることでもあるからです。このポッドキャストのエピソードで以前に説明しました。つまり、特定の開発者は門番であり、基本的に何ができるかできないかについて最終決定権を持っています。現時点では、これが誰もが最も懸念している最初の迷信です。A Jian 先生がコメントしたいことはありますか?
アジアン: これは中華圏に古くから伝わる神話というか空想ですが、まあ、根深いというか、最も根源的なものと言えるでしょう。ビットコイン開発者、特にいわゆるビットコインコアクライアント開発者にとっては、自分たちが門番であり、何ができるか、何ができないかについて最終決定権を持っているように思えます。実際、この考えにはほとんど真実がありません。なぜなら、それが一人か少数か、多くのビットコインコア開発者や他のクライアントによって行われたかにかかわらず、多くのことがそうなっているからです。開発者が好まないこのことは、実際にはまだ起こっています。今日に至るまでビットコインブロックチェーン上で、そして私たちがポッドキャストを録音する今日に至るまで。たとえば、最近 Luke という開発者の名前を聞いたことがあるかもしれませんが、Luke は特に明確な立場をとっており、ビットコイン ブロックチェーンにデータをランダムに詰め込むことに反対しています。もちろん、これを具体的にどのように定義するのか、ビットコインに関連するデータとは何か、ビットコインに関係のないデータとは何か、そして、どのようなデータを書き込んではいけないのかについては、もちろん氏自身も明確には述べていない。しかし、その後、慎重に考えました。実際、その中心的な意味、私自身の要約、いいえ、それを表すことはできませんが、私自身の要約、それは受け入れられる信念だと思います、ビットコインのブロックチェーンは、ビットコインの暗号化セキュリティに関連するデータのみが必要です書かれる。
アジアン: ビットコインの暗号化セキュリティに関連するデータは何ですか?たとえば、各ビットコインは出力です。そのスクリプトでは、公開キー (秘密キー) の所有者のみがお金を使用できることを確認するために、公開キーを指定する必要があります。)実際に支出される場合、公開鍵の背後にある秘密鍵によって計算された署名がチェーンに記録される必要があり、この署名は支出が有効であることを証明します。
これらのことは、ビットコインの暗号セキュリティに関するデータとしてまとめられますが、これらのデータのいずれかに類似した追加情報や、今日何が起こったかなど、他の対応するデータもあります。挨拶などはビットコインの暗号安全性とは関係のない情報なので書かないほうがいい これは私個人のまとめですが、ルークの考えは近いほうがいいかもしれません私が指摘したいのは、おそらくルークはこれが気に入らないし、これを気に入らないのは彼だけではないかもしれないが、多くの人はこれらのことが気に入らないと感じるだろうということです。このような追加情報を記録するブロックは、ビットコインの暗号化セキュリティとは何の関係もなく、依然として有効なブロックであると言えます。これらのことを防ぐ方法は実際にはないと信じている多くの開発者を含め、つまり、あなたは実際にはテクノロジーであり、ビットコインのセキュリティにとって意味のあるものと意味のあるものをうまく分離できる効果的な技術的手段はありません。つまり、せいぜいモグラたたきか、いたちごっこをして、ネズミが現れるだけです。マウスを使用しますが、一度で完了する解決策はありません。
つまり、私が言いたいのは、まず第一に、どのように理解しても、一部のビットコイン開発者の個人的な立場が明確に表現されているということです。これらの開発者は、実際には、何ができるかできないかに影響を与えるほど大きな力を持っていないということですビットコインブロックチェーン上で行います。特に、非常に重要なことがあります。つまり、誰もがこの問題を理解できれば、開発者であれ採掘者であれ、彼らの権利は実際には一定の抑制と均衡の構造の中にあるということを理解できるはずです。ビットコインネットワーク内でどのようなコンセンサスルールが選択されるか、つまり、どのようなコンセンサスルールが有効なブロックになることが許可されるかは、各ノードによって選択されます。ノードとして、独自に選択することができます。有効だと思います。もちろん、他の人と互換性のないコンセンサスルールを選択することはできませんが、このルールに適合する限り、自分でセットを選択することができます。
たとえば、現在誰もが 2021 年に実装される Taproot アップグレードについて聞いていますが、実際には、このバージョンの Bitcoin Core または他のクライアントへの Taproot アップグレードを実行しても、ノードはネットワークから離脱せず、ノードは引き続き検証を実行します。ネットワーク内の完全なノードとして機能しますが、いわゆる Taproot 出力に関連するトランザクションを検証することはできません。もう少し進めると、2017 年に、Segregated Witness フォークの後、ビットコイン ネットワークがアクティブになりました(このバージョンを使用している場合) Segregated Witness より前にリリースされた Bitcoin Core またはその他の Bitcoin クライアントは、現在でも Bitcoin ネットワーク上で実行できます。つまり、2017 年以降の新しい Bitcoin コンセンサス ルールに関連するトランザクションを実行しない限り、引き続き検証できます。 2017 年以前のコンセンサス ルールを使用した取引。
これはどういう意味ですか?ビットコインブロックチェーン上でできることを制限するために、いわゆるビットコインネットワークでどのようなルールが使用されているかについて説明しています。これらのことは、実際には、特定の人や特定のグループによってではなく、ビットコインのフルノード ネットワークによって分散型で決定されます。開発者の皆さん、この種の考えは実際には真実とは程遠いです。真実に最も近い真実は何でしょうか?これはビットコイン ネットワークであり、すべてのノードで構成されるネットワークです。現在、ネットワーク全体が公開されており、15,000 個のノード、16,000 個、そしてさらに多くの非公開ノードがあり、これらのノードによって運用されています。著者はまったく同じ方法を使用しています。ブロックのどの部分を検証するか、どのブロックが受け入れられると考えるかを決定する これは、基本的に次のようなプロセスです。
したがって、特定の人物、特定の開発者、または特定の開発者グループがネットワーク全体のゲートキーパーになれるような役割はありません。そのような役割が存在した場合、ビットコインは失敗したでしょう。検閲に強い通貨だったり、単一障害点のないシステムを望んでいたりするのですが、もしそのような人物がいて、その人が非常に大きな権力を持っていれば、その人は単一障害点になってしまいます。
Jeffrey Hu: 話題の続きですが、実はよく誤解があるかもしれません。つまり、特定のネットワークでは、特定のグループの人々によって決定されるため、開発について言及したばかりなのかもしれません。彼らはマイナーなどである可能性もあります。彼らはネットワーク全体の方向性や運命を決定するかもしれません。実際、これは誰もが抱いているかもしれないよくある誤解です 実際、おそらくビットコインはアジアン先生が言ったことに近いかもしれません これは比較的分散型のネットワークであり、比較的分散型のネットワークなので、全員の操作 フルノードにはまだ何らかの意味がありますこの地域では独自のものです。また、最近、実は報道を見ておりますが、先ほどの開発者の話に続いて、コアデベロッパーという言葉がよくニュースで出てきます。まず私自身の気持ちを話させていただきますが、この言葉を見るたびに血圧が少し上がります、なぜなら今アジアンさんがおっしゃったこの開発者の背景にあるものを皆さんは理解していないのではないかと思うからです。翻訳の誤り、つまり、人々は大文字の区別に注意を払わず、大文字の C が付いた Core Dev である Bitcoin Core Dev を、小文字の Core Dev である Bitcoin として解釈する可能性があります。実際、単語の分割を行いたい場合は、最初の 2 つの単語であるビットコイン コアを 1 つの単語に分割する必要があります。ビットコインの 1 つとして、先ほど述べた完全なノードの実装の開発は、ビットコインのコア開発者ではなく開発者です。は、ビットコインのコア開発者ではありません。ビットコイン ネットワーク全体がこれらのコア開発者によって決定されるという意味ではありません。その後、いくつかの他のネットワークが表示される場合があります。たとえば、イーサリアムのコア開発者は、次のような会議を頻繁に開催する可能性があります。 ACD は電話や会議を行って、たとえば、来年 1 月にハードフォークのアップグレードか何かが行われる可能性があることを決定します。しかし、ビットコインには、ネットワークハードフォークのアップグレードを議論するためのそのような集中化されたコア開発者グループがないようです。
もちろん、実際には、たとえば、ビットコイン コアには独自の機能がいくつかある可能性があります。たとえば、PR (プル リクエスト) が提起された場合、このアップグレードの一部について話し合うための PR レビュー クラブの会議がいくつか開催される可能性があります。 PR が提案した提案は合理的ですか?それとも他の影響もありますか?しかし、そのようなコア開発者がネットワーク全体の方向性を決定することはありません。これは誰にとっても共通の問題である可能性があり、頻繁に発生する可能性もあります。それは誤解だと思いますあなたが遭遇するであろうこと。もちろん、これについてもう 1 つ言及しておきたいのは、大文字の使用も非常に重要であることを示すことです。少し強迫性障害のある人間として、私は Core のこの種の c を目にします。は小文字とみなされます。問題が発生します。同じことが HashKey にも当てはまります。HashKey の k は小文字であることがよくあります。実際、h と k は両方とも大文字です。Ajian 先生がこのコア開発者の側面に何も付け加えることはできません。
アジアン: はい、実際、私の反応はジェフリーの反応と少し似ています。つまり、血圧がわずかに上昇します。さらに刺激的な提案をしたいとさえ思っています。つまり、視聴者の友人がそれを聞いたら、もし誰かがビットコインのコア開発者がそれを漢字で書いたとあなたに言うなら、あなたが通信している相手のビットコインの世界の理解を疑うのは当然のことです。これには非常に失礼な言い方をしますが、実はこれには 2 つの理由があるからです。一方で、これは長年の誤解です。私自身の個人的な疑念は、この誤解は 2017 年より前に形成されていたに違いないということです。大文字の B と大文字の C で始まるビットコイン コア。それ自体、このビットコイン コアですが、まずビットコイン コアの起源について話しましょうか。そう、それはサトシ・ナカモト自身によって書かれた有名なソフトウェアであるビットコインであり、このソフトウェアの後継者です。つまり、サトシ・ナカモト氏が去った後、一部の開発者がコード ベース全体を現在の GitHub Web サイトに移行する準備をしていたときに、新しい名前、つまり Bitcoin Core (これも B です) を使用することにしました。 Cも大文字ですが、このCoreには大きな意味があるのではないでしょうか?いや、実際には私も感じません。
ところで、Bitcoin CoreにはBitcoinの世界では1種類のクライアントしかいないと思われているかもしれませんが、そうではありません。 Bitcoin C oreが最も多くの使用量を占めているため、Bitcoin Coreのクライアントとなりますが、実際には他の言語で開発されたクライアントも存在します。たとえば、Lightning Network 実装である btcd というクライアントがあります。このチーム LND は、Lightning Labs によって開発されたビットコイン クライアントです。Go 言語で書かれていますが、Java 言語を使用する人もいます。このビットコイン クライアントを作成した後、 , おそらく誰かがPythonかRust言語を使ってこのビットコインクライアントを書こうとするでしょう。はい、これらは非常に一般的なことですが、誰もが別の点についても考慮する必要があります。以前にも述べましたが、ビットコイン ネットワークでは、誰もが同じバージョンのソフトウェアを使用する必要はなく、同じ一連のコンセンサス ルールを使用する必要もありません。これは、Bitcoin ネットワークにいる場合、全員が Bitcoin Core クライアントを使用しているにもかかわらず、バージョン 22.0 を使用している人、バージョン 0.21 を使用している人、バージョン 22.0 を使用している人がいることがわかります。これはバージョン 0.17 です。 。基本的には、いずれも Call クライアントを使用していますが、ソフトウェアはある程度異なりますので、厳密にはまったく同じソフトウェアとして扱うべきではありません。
これらはさておき、話を戻しましょう。ビットコイン コアという名前については、おそらく中国語圏の人々が最初にビットコインを理解したときに、それを直接「ビットコイン コア」と訳し、その後ビットコイン コア開発者は、それを一種の「ビットコイン コア」と考えることができます。翻訳上の誤解ですが、私は言いたいのは、2 番目の要因、つまり文化的な誤解の影響も受けている可能性があるということです。この文化的な誤解は何ですか?なぜなら、イーサリアムにはイーサリアムの開発者や支持者がいるにもかかわらず、ビットコインと同じテクノロジーを使用していると考えているため、これがイーサリアムなどのその後の暗号通貨プロジェクトの影響を受けたかどうかはわかりません。ネットワーク全体をアップグレードする必要があるか、このアップグレードをどのように調整するか、アップグレードの内容をどのように決定するかについて、彼らは同様の、あるいは同じ構造を使用していると考えていますが、これは真実ではないと言いたいのです。
イーサリアムの開発は、実際にはビットコイン ソフトウェアの開発よりも集中化されています。重要な点は、ジェフリーが言ったように、イーサリアムの世界にはイーサリアムコアと呼ばれるクライアントが存在しないということです。イーサリアムの世界にはイーサリアムコアというクライアントは存在しませんよね?実際、現在見つけられるのは Geth クライアントです。以前はパリティ クライアントがありました。現在、パリティ クライアントがまだ維持されているかどうかはわかりません。現在、イーサリアムの世界には他にもいくつかのクライアントがあるかもしれません。いわゆる全コア開発者会議があり、おそらく 2 週間に一度、金曜日の夜に開催されます。その後、特定の問題について議論する必要がある場合は、何人かをこの会議に招待すると言われます。もちろん、他の人も参加できます。観察しても、他の人は意見を言えなかったり、意見を言えるかどうかはあなた次第ではありませんか?むしろ、会議自体に主催者がいて、議題を設定することができます。
次に、もう 1 つの非常に重要な点は、イーサリアムがいわゆるハードフォーク アップグレード モデルを使用していることです。ハード分岐とはどういう意味ですか?ハード フォークとは、ノードがアップグレードされず、ほとんどの人がアップグレードした場合、ネットワークに参加できなくなり、技術的な理由でネットワークから直接追い出されることを意味します。アップグレードするか、独自のソフトウェアをアップグレードしたくない場合、ノードはイーサリアム ネットワークに存在し続けることができなくなります。これは重要な違いであり、誰がこの定義をマスターしたかを意味します。イーサリアムプロトコルのいわゆるコンセンサスルールを更新したい場合、実際には非常に大きな権限があり、一部の人々が望まない理由でネットワークから追い出される可能性があります。この権利は、実際には、多くの人がいわゆるコア開発者の力として理解しているものの源を構成します。
そして、この想像はイーサリアムではある程度当てはまりますが、ビットコインでは当てはまりません。ビットコインは全く異なる開発手法を選択しており、コミュニティ全体の文化もイーサリアムとは全く異なるため、これは一方では長年の誤解であり、他方では誤解であると私は考えています。文化的想像力: この文化的想像力は、あなた自身の実生活経験に関連している場合もあれば、他の暗号通貨プロジェクトの開発手法に関連している場合もあります。
しかし、ビットコインに関するこの文化的想像力はほとんど見当違いであり、ビットコインにはそのような大きな力を制御できるメカニズムは存在せず、実際、そのようなものは存在しません。誰かがそのような大きな力を持ち得るというのは、あなた自身の個人的な経験のようなものです。代わりに、Bitcoin Core またはその他の Bitcoin クライアントを自分で実行してみることをお勧めします。
私には知っています。ビットコイン コアを実行しないことを選択した友人が何人かいます。彼はビットコイン コアを実行しないことを明らかにしました。彼は btcd を実行するのが好きですよね?これは全く問題ありません。これらのクライアントを自分で実行する限り、非常に古いバージョンのビットコイン コアやこのビットコイン ソフトウェアの他のクライアントを選択して実行することもできます。そうすれば、これがどのように機能するかがわかります。何かが起こりました。
ジェフリー・ヒュー: 実際、今のアジアン先生の答えは、最近誰もが抱いているもう一つのよくある誤解に実際に答えているのではないかと思います。つまり、ルークは新しいクライアントを変更する必要があるかもしれないので、現在の多くのクライアントとは異なるものになるでしょう。ビットコイン コアの実装は異なるため、彼はフォークしたいかもしれない、またはルークは、ビットコイン コアが新しいバージョンにいくつかの機能を追加することを提案し、それがネットワーク全体のフォークにつながる可能性があります。実際、これも同様ですよくある誤解は、私たちが見た公開情報からすると、Luke がやりたいことは、私たちが言及したコンセンサス ルールのレベルで何らかの変更を加えることではなく、それ以上のことであるかもしれないということです。いわゆるクライアントまたはフルノードレベル、または転送戦略にいくつかの変更が加えられているため、現時点ではフォークとは何の関係もありません。そして、私は今フォークについて実際に話しましたが、誰もがよく言及するもう一つの誤解があります。それは、ビットコインの開発文化は実際には比較的保守的である可能性があるということです、なぜなら毎回ソフトフォークになるからです、アジアンさんはこれについてどう思いますか? ?
アジアン: これをより具体的に理解するのに役立ついくつかの数字をあげましょう。あるいは、ジェフリーに質問させてください。最初の質問は、ビットコイン ネットワークがこれまでにハード フォークを経験したと思いますか? 2 番目の質問は、そうであれば何回だったと思いますか?
ビットコインネットワークのコンセンサスルールの変更回数は、タップルートのアップグレードも含めて計21回であることは今や誰もが明確に認識していますが、その数え方や定義には若干の違いがあります。たとえば、私のお気に入りのビットコイン ワーカーの 1 人は、開発者ではないため、ワーカーと呼ぶべきです。彼はジェイムソン ロップです。彼自身、ビットコイン ブロックチェーンは予期せぬ理由で形成されたと信じています。彼の意見では、この分割は必ずしも考慮されていませんハード フォーク。彼の意見では、ビットコイン ネットワーク上でハード フォークがあったのは 1 回だけです。私の記憶が正しければ、それは 2013 年のはずです。
何の目的でしょうか?ビットコイン スクリプトに特殊なオペコード (NOP) を追加するには、このオペコードに遭遇したときに、スクリプトは何も実行しないでください。このオペコードに遭遇したときは、それを単なるプレースホルダーとして考えることができます。この操作が発生したときに何かを行う場合、何も行わないこの操作は完全に冗長です。それで、それは何のためにあるのでしょうか?これは、将来のソフト フォークのアップグレードに役立ちます。
つまり、今回アップグレードされた古いノードは、NOP オペコードの構文を理解できるノードなので、このノードに遭遇しても何もしません。しかし、新しいコンセンサス ルールを使用するノードは、NOP オペレーション コードに遭遇すると、それが特定のセマンティクスを持っていると明確に判断し、そのセマンティクスを実行して、いわゆるコンセンサス ルールを完成させる可能性があります。ソフト フォークのアップグレード、それは楽しいですね。右? 21 件のコンセンサス ルール変更があり、そのうち 1 件だけがハード フォークであり、このハード フォークは引き続きその後のソフト フォーク アップグレードに役立ちました。したがって、ビットコインネットワークの多くのアップグレードのうち、それらはすべてソフトフォークアップグレードであると考えることができます。
それでは、質問に戻りましょう。つまり、このソフト フォーク アップグレードの文化は、それがどこから来たのかに関係なく、ビットコイン ネットワークに対する客観的な影響は何でしょうか?それはビットコイン開発者をより保守的にするでしょうか?これには 2 つの側面があると思います。1 つの側面は、ビットコイン開発者がソフト フォークのせいで保守的ではないということです。言い換えれば、ビットコイン ネットワークに対する誰もが、このネットワークには何かがあると理解していると考えることができます。それを犠牲にすることはできません。あらゆる側面におけるセキュリティには、たとえば、ノードについて言えば、このサービス拒否攻撃や DOS 攻撃に抵抗できるかどうかが含まれます。また、個人ユーザーとして公開キーを使用する場合、またはスクリプトを使用する場合、安全ですか?それとも、それを実行するとき、ネットワーク全体のコンセンサスは安全ですか?これらのセキュリティ機能は、ビットコイン ネットワークに関して最も重要なものです。
この最も重要な優先事項を考慮すると、当然のことながら、ビットコイン開発者はあらゆる開発方向を試みることはなく、主な開発方向はビットコインのセキュリティを強化することでなければならないことがわかります。これは 1 つの側面です。したがって、ビットコイン ネットワーク上ですべてのことができるわけではない、または新しい機能の追加が非常に遅いと考え、これが保守主義の表れであると考える人がいるとすれば、その第一印象は正しいです。しかし、この問題自体、保守派として理解すべきかどうかについては、私は留保があると思います。次にお話しするのはビットコインの話なので、例えば 2021 年のタップルートのアップグレードでは Schnorr 署名が使用されていますが、これは非常に興味深いものです。ビットコインが最初に登場した暗号通貨プロジェクトであることはわかっています。最初に登場したとき、ビットコインは電子署名に ECDSA アルゴリズムを使用することを選択し、彼が選んだ楕円曲線はサトシ ナカモトによって慎重に選択されました。彼はより多くの人が使用しているものを避け、使用する人が少ない方を選びました。
その後、その後のイーサリアムや他のプロジェクトの出現を含め、多くの暗号通貨プロジェクトがこれを継承し、ECDSA 署名を使用し続けていることがわかります。ただし、Ed25519 など、Schnorr 署名のいくつかのバリアントを使用する後のプロジェクトもいくつかあります。たとえば、暗号化に詳しい友人がこの Ed25519 を知っている場合、後の Polkadot では、Ed25519 を使用するでしょう。このアルゴリズムを使用する他のプロジェクトもあるかもしれません. 実際、この種の署名も Schnorr 署名の変種であるため、非常に興味深いでしょう. ECDSA 署名を選択し続けたのは、当時のビットコインの後継者でしたそして、それは今日でも使用されており、今後も使用される予定ですらありますが、少なくとも新しい署名アルゴリズムの使用が特に活発でない場合、ビットコインはチェーン上の効率性、つまり節約のためにそれを行います。または、チェーン上のトランザクションをよりコンパクトにするため、または Schnorr 署名の使用のため、Taproot も Schnorr 署名を使用して非常に興味深い使用法を実現しています。このスクリプトの使用方法を含め、この使用方法では次のようなことが実現できます。
さまざまな理由から、ビットコインは Schnoor 署名をサポートすることを選択しました。これは保守的なことでしょうか?ということは、それ自体がとても大胆なことではないでしょうか。これは私が想像できるあらゆる意味での革新であり、非常に大胆な革新です。 Taproot がアップグレードされる直前、ビットコイン ネットワークでは、一般に個人が自分の資金を保存する形式である単一の公開キーの出力と、一般に可能なスクリプト出力を明確に区別できました。個人のウォレット、またはより複雑な契約合意で使用される出力フォームである可能性があります。
Taproot が登場する前は、チェーン上のこれら 2 つの出力を区別できました。 Taproot のアップグレード後、これら 2 つの出力形式が 1 つに結合されました。これは、それ自体非常に大胆なことです。私に言わせれば、これはあらゆる意味でイノベーションという言葉にふさわしい、とてもとても素晴らしいことだと思います。つまり、保守的であるとも言えますが、同時に保守的でもありません。この保守主義の意味は、セキュリティを常に最も重要なレベルに置くため、安易に何かを試みることはありません。しかし、彼が保守的ではないと考えることもできます。なぜなら、彼が良い解決策を発見すると、実際に誰もがそれを積極的に受け入れるからです。
Jeffrey Hu: はい、これが Schnorr の署名のアップグレードであるということに特に同意します、なぜなら今言及した他の多くのブロックチェーン プロジェクトが実際には少なくとも独自のネイティブ アドレスに存在する可能性があることがわかっているからです。新しい署名方法を追加したり、元の楕円曲線を変更したりする場合、依然として大きな抵抗が存在します。それは技術的なアーキテクチャ上の理由によるものかもしれませんし、文化全体によるものかもしれません。あるいは、コミュニティでの議論の理由かもしれません。実際には非常に遅いことがわかり、スマートコントラクトに追加して互換性を持たせるなど、他の方法が使用される可能性があります。しかし、これはビットコインのようなものではなく、基本的には署名を追加するためのネイティブな方法と考えることができます。
先ほどルークのクライアントに何が起こったのかに戻りましょう。それはフォークについての話だったので、先ほど話した追加の話題でした。実のところ、私は個人的にフォークという言葉があまり好きではありません。A Jian は知りません「先生、フォークという言葉はよく誤解を生むと思います。例えば、今挙げたフォークは、計算能力やバグによってネットワークの分断を引き起こす可能性があります。実際、それは時々起こるかもしれません。一部の人がハードフォークと考えているもの」またはそのようなものは、実際には通常の意味でのソフトフォークまたはハードフォークとして理解されており、別の専門用語に置き換えることができます。ソフト フォークは実際には互換性のあるアップグレードですが、ハード フォークは実際には互換性のないアップグレード、つまり、独自のノードである可能性がある、または元々古いソフトウェアを実行していたノードであると思われる新しい機能を追加することはできません。 「新しいネットワーク内です。ビットコインネットワーク内にある場合、この視点は実際に逆転できると思います。ノードがハードフォークアップグレードを行う必要がある場合、それは実際にはそれ自身のものです。ノード自体がフォークする場合、これも相対的な概念です」ネットワーク全体のコンセンサスルールに従わなくなっているからです。
もう少し話しましょう. 今回、Luke はこれを行いました, おそらく彼はノードを変更したかったのですが、実際には、それは私たちが議論しているソフト フォークまたはハード フォークのレベルで起こりました。ネットワーク全体のブロックの合意があり、インターネット上で激しい議論が行われることもありますが、実際には、このノードが実際に直接フォークする可能性があるという議論が多くなっていますが、実際にはノードとしての動作はまだそのレベルに達していません。直感的には、Luke は実際にトランザクション メモリ プール全体のレベル、またはトランザクション プールのメモリプール レベルでそれを実行します。トランザクション フィルタリングや、いくつかのノードの転送戦略への変更を実行するだけです。
では、具体的にはどのように理解すればよいのでしょうか?メタマスクやその他のウォレットをより頻繁に使用している可能性があるため、これをさらに拡張することができ、トランザクションを送信したい場合は、基本的にいくつかのボタンをクリックするだけでトランザクションを実行できることがわかります。外。実は、ビットコインの取引は、取引を書こうとしてから最終確認まで、基本的には3つのステップに分けられると理解していますが、最初のステップは、取引に署名するために必要な情報です。ステップで、署名付きメッセージが生成されました。 2 番目のステップは、この署名された情報をトランザクション メモリ プール全体に入れることです。 3番目のステップは、それをブロックにパッケージ化することですが、これが署名された情報ですが、実はこのプロセスも非常に重要です。
たとえば、ライトニング ネットワークでは、最初のステップとして、両当事者はライトニング ネットワーク内で実際にお互いのチャネルを保持できます。二者は、相手方が署名した取引情報のお互いの部分を保持できます。相手方が悪事を働いた場合、これを利用して、相手の署名情報に自分の署名情報を追加し、それをブロードキャストして相手の悪事を罰することができます。これは、ライトニング ネットワークで署名情報を使用するステップです。実際、これはトランザクションを発行する最初のステップに相当します。次に、2 番目のステップは、トランザクションを送信したい場合に、署名情報をブロードキャストすることを意味します。ネットワークに送信し、他のノードがそれを処理できるようにすると、そのノードは受信後に正当性の検証を行ってから転送します。
では、今回 Luke が行っていることは、実際には主に 2 番目のステップです。つまり、ノード全体が受信後に何らかのフィルタリングや処理を実行する必要があるのでしょうか? BRC 20 トランザクションの一部のように、ネットワークに過度の負担をかける可能性のあるトランザクションが存在する可能性があると彼は考えているため、それらをこのレベルまたは mempool ライブラリのレベルで転送したくないからです。
これまでのところ、実際にはネットワーク全体のコンセンサスレベルには触れていませんが、最終的にトランザクション全体が必要な場合、一部のマイニングノードでは、以前のブロック情報の一部を含む現在のメモリプール全体の情報に基づいて、 、ハッシュ値を計算した後にのみ、現在のトランザクション全体がブロックにパッケージ化されます。これは、ネットワーク全体の合意レベルです。
つまり、今回の Luke の変更は単なる mempool レベルの変更であり、フォークとは何の関係もないことがわかります。はい、実は以前、この問題をよりわかりやすく説明する方法を考えた例がありました。私が考えた例は何ですか?アジアン先生がそれが適切だと考えているかどうかはわかりません。 「私の考えを話します。昔はもっと人がいたかもしれません。自分の小銭をたくさん持って銀行の支店に行く人もいたでしょう。私はお金を節約したいのです。例えば、私は 100 万円を持ち出しました。」銀行の支店にお金を預けに行きたいと思ったら、銀行の支店は当然二つの考えを持っているかもしれません。 「あなたが受け取った紙幣はすべて本物の紙幣です。だから必ず処理しなければなりません。これは中央銀行全体の規則に従っています。処理しなければなりません。そうすると、長い時間がかかるかもしれません。かかるかもしれません」専門の人を派遣して処理し、お金を1枚ずつ通貨検出器に入れて計数し、処理が完了したら銀行に入金するのに長い時間がかかります。まあ、これは一種のことであり、私の銀行支店は利用者に対して非常に責任があります。そうすると、こういう悪質なお客さんに悩まされる銀行の支店もあるわけで、「こういうお客さんはうちの支店には来ないでください。他の銀行の支店に行ってください。私はあまりこのようなことは受け付けません。」と言ってください。小額紙幣の顧客として、あなたが他の銀行の支店に行かないのであれば、そのときの顧客は、「えっ、なぜあなたの銀行の支店は中央銀行の規制に従わないの?」と思うかもしれません。なぜそれを受け入れないのですか? クライアントにお金を節約するための要件はありますか?実はこの銀行支店、ちょっと不公平かも知れませんよ? 「中央銀行に反抗したいと言っているわけではありません。それは私の銀行の支店にすぎません。このような少額の顧客にサービスを提供するためのこれ以上の人的資源は実際にはありません。そのため、次のような独自の規制をいくつか発行するかもしれません」 100元未満の紙幣は扱いません。おそらく100元分の入出金のみを扱います。残りは自分で他の支店を探すか、自分で銀行の支店を開設する必要があります対処してください。
したがって、これは実際には、この例に戻すと、ルークがハードフォークである可能性があると考えると、実際には本来の意味からは少し不公平になる可能性があるのと似ています。紙幣全体の真正性や口座の管理方法を処理するために別の中央銀行を設立する必要があるが、このノード自体が BRC 20 や Inion のようなトランザクションの処理にこれ以上のリソースを費やす必要はないと感じているだけです。
エイジアン: ジェフリーの比喩は本当に素晴らしく、とても鮮やかです。少し付け加えさせていただきます。つまり、ほとんどの人がこの技術情報にあまり注意を払わないと言う場合、コンセンサスルールが何なのか、どのノードがトランザクションを自分のトランザクションに受け入れようとしているのかを区別できない可能性があります。ノードは、それ自体に接続されている他のノードに対する独自のルールを参照します。上記のルールの 1 つはコンセンサス ルールと呼ばれ、もう 1 つはトランザクション プール ルールまたはトランザクション プール検証ルールと呼ばれます。違う。 。
なぜ?コンセンサスルールは一つのものとして考えることができるので、ある程度緩やかなものとして考えることができますが、なぜですか?これはブロックが有効かどうかを決定するだけであり、各ノードによって定義されたいわゆるトランザクション プール ルールはトランザクションを受け入れて転送するかどうかのみを決定するため、コンセンサス ルールよりも厳格なルールが使用される場合があります。
なぜ?コンセンサスルールはブロックの有効性を規定しているため、ノードは無効なトランザクションを除外する作業の一部を自然にマイナーに委任できます。なぜ?ブロックが有効であることを確認する必要があり、そうでない場合、ブロックまたはトランザクションが拒否された場合、何のメリットも得られないからです。
したがって、彼がすべての有効なトランザクションを収集すると合理的に想定できますし、彼はすでに多額のプルーフ・オブ・ワークを支払っているため、私はこのブロックを検証するためにもう少し時間を費やすつもりです、それは私にとって良いことです。手頃な価格で、欠点はあまりありません。しかし、トランザクションがどこからともなく生まれ、ネットワークの不確実な経路をたどって私に到達した場合、それが有効なトランザクションなのか無効なトランザクションなのかわかりません。
受信するすべてのトランザクションの検証を完全に実行する必要がある場合、実際、この問題自体が非常に時間とリソースを消費するため、ノードのアプローチは最初にこのトランザクションを確認する必要があります。検証するのは非常に簡単で、これらの特性によって、トランザクションをさらに検証し続ける必要があるかどうかが決まります。または、トランザクションがこれらの特性を満たさなくなった場合は、単純に検証しません。マイナーがまだパッケージ化する意思があるかどうかを待つだけです。彼がそれを梱包する気があるなら、私がそれを確認しますね?それはそのようなプロセスです。私たちがよく使用するネットワークにはこの層がないため、ほとんどのリスナーや他の友人はこれを考えることができません、または考えることができません。これは層です。これは基本的に UTXO またはトランザクションに限定されますこの問題を考慮する必要があるのは、トランザクション出力の形式を使用して資金の合計とその支出条件を表現する場合のみです。
なぜ?例を挙げると、イーサリアムを使用している場合、そのすべてのいわゆるスマート コントラクトは一種のアカウントであり、自分のものを含め、秘密キーによって管理されますが、それもアカウントです。つまり、すべての中心的な目的、つまりすべての処理の複雑さはコントラクト内に配置する必要があり、コントラクト コード自体でそれを識別できます。
どのようなトランザクションが処理でき、どのようなトランザクションが処理できないのでしょうか?イーサリアム リスト上のすべてのトランザクションは外部アカウントによって開始されますよね?外部アカウントによって使用されるシリアル番号は Nonce 値と呼ばれます。いくつかのあいまいさがあるかもしれませんが、すべてのアカウントにこのシリアル番号があり、次のこのシリアル番号を後付けする必要があるため、これをシリアル番号と呼ぶのは正しいです。処理されるので、各アカウントは未使用のシリアル番号を使用してトランザクションを開始し、このブロックによって確認されると、決定されたイーサリアムの最新の状態に入り、処理されて結果が返されます。したがって、イーサリアム モデルでは、すべての複雑さはスマート コントラクト アカウントに配置され、そのノードはトランザクションによって運ばれる命令の最終的な実行結果を無視しようとします。
つまり、各トランザクションは実際には特定のアカウントによって開始された単なるトランザクションであり、そのトランザクションにはいくつかの命令が含まれており、つまり、実行されたときにこれらの命令の結果がどのようになるかが決まります。この取引手数料の一定額を支払いましたか?つまり、イーサリアムのようなネットワークの場合、このノードのトランザクション プール ルールは実際には非常に単純です。比較的簡単に言うと、まず第一に、アカウントにガス料金を支払うのに十分かどうかを確認するだけで済むため、より簡単になります。 ?次に、シリアル番号が以前に使用されたことがあるかどうかによって異なりますが、使用されている場合は無効な取引となります。言い換えれば、高いガス料金と安いガス料金を比較して、トランザクションプールに節約するトランザクションを選択する必要があります。
彼の取引に添付された情報と指示については、何を意味しますか?彼は気にしていません、まったく気にしていません。そのため、彼のノードのトランザクション プールのルールは非常に単純です。しかし、ビットコインのような UTXO など、トランザクション出力に基づくモデルでは、トランザクション プールの検証はより複雑になるはずです。
なぜ?なぜなら、例えば、彼の支出が正当な支出であるかどうかを心配するからです。その無効な支出はブロックに入ることはできません。これはビットコインの特性です。そのため、リソースを節約するために、一連のお金が自然に生成されます。ヒューリスティック手法、またはこのノードが可能な限り使用されないように保護するために、署名検証よりも前に実装される高度な検証手段とルール DOS 攻撃。
もう一つ非常に興味深い例を挙げましょう。Nervos Network について聞いたことがあるでしょうか。Nervos Network のトランザクションと資金もトランザクションの出力に基づいていますが、その形式は Cell と呼ばれていますよね。実際、その構造は UTXO に非常に似ているため、Nervos ネットワークでも生成されます。これは、マイナーの前にいくつかのネットワークでブロードキャストされたトランザクションを集約して、マイナーのために何らかの集約を行ってから、それらに渡すことです。マイナーに渡されます。完全なパッケージを作成するには、中間集約層が追加されます。この集約層の出現は、実際には UTXO の特性によるものです。UTXO の特性は、トランザクション自体とその命令に多くの意味を持っているためです。より明確になり、より複雑になります。
したがって、これに基づいて、トランザクションが独自のトランザクション プールに入るのを許可するかどうかをノードが判断できるように、トランザクション プールのいわゆる検証ルールを生成する必要があります。なぜなら、彼があなたのトランザクションプールに入ったら、あなたはトランザクションを保存し、転送する必要があるからです。それはリソースを必要とするものなので、おそらくそれがすべてのことです。