# 燃焼証明(PoB)プロトコル:カルダノエコシステムの新しいソリューション最近、Charles Hoskinsonが提起した課題に対する解決策が登場しました。この解決策はCardanoエコシステムに燃焼証明(PoB)プロトコルを導入しました。この記事では、この新しく開発された解決策について、内容を紹介します:1. バーナー証明メカニズムとその応用の概要2. このPoBソリューションはカルダノネットワーク上のスマートコントラクトの実装と運用メカニズム3. スマートコントラクトのデプロイとテスト(テストネット)4. "ブラックホール"アドレスにトークンを送信してPoBプロトコルを実行する## 1. バーニング証明およびその応用トークンのバーン(廃棄)は一般的な手法であり、実質的にはトークンをアクセスできない「ブラックホール」アドレスに送信することです。このアドレスには廃棄されたトークンを取り戻すためのプライベートキーは存在しません。公衆は廃棄が確かに行われたことを検証できますが、ただ一つの「秘密」の約束値を知っているだけです。このメカニズムの設計は、廃棄された資金が仲介者によって審査されることがないようにするためです。燃焼メカニズムには多くの用途があり、残りのトークンの価値を増加させることや、ブロックチェーンプロトコルの誓約証明として機能することができます。大規模なトークンの燃焼は、流通しているトークンの総量を減少させるため、デフレ圧力を引き起こす可能性があります。燃焼トランザクションは一般的ですが、マイナーの承認が必要です。これらのメカニズムには利点がありますが、トークンの燃焼に反対する人もいます。このため、一部のチームは検閲不可能なトークン燃焼プロトコルの導入に取り組んでいます。この特別な操作はチャールズ・ホスキンソンの関心を引きました。燃焼証明の安全性とトークン転送取引の安全性は、同じメカニズム - 暗号ハッシュ関数に基づいています。これらの関数は計算が容易ですが、逆算が非常に難しいです。本質的に、逆算が難しい理由は、入力の1ビットの変更が出力のすべてのビットをランダムに変化させるからです。これは、暗号ハッシュ関数の出力から逆算するのに非常に長い時間がかかることを意味します。簡単に言うと、暗号ハッシュ関数の最下位ビットを反転させることで、ブラックホールアドレスを作成することができます。そのアドレスに送信されたものは、回復が困難または不可能になります。暗号取引の安全性は完全に公開鍵暗号と暗号ハッシュ関数に基づいています:"資金を送信するたびに、新しい未使用取引出力(UTxO)が作成されます。"このUTxOは資金の数量と受取人の公開鍵の暗号ハッシュを記録しています。受取人がこの資金を使用したい場合、同じ公開鍵で新しい支出取引に署名する必要があります。なぜハッシュ関数の出力の最下位ビットを反転させるのか、直接0x0のハッシュを使用しないのか?その理由は、既知の値を使用すると燃焼が直ちに可視化されるからです。しかし、このプロトコルの構想は、まず資金を燃焼させ、その後(の別のステップで)それが燃焼されたことを証明することです。これを実現するためには、まずコミットメント値を生成するためのハッシュから始める必要があります。その後、コミットメント値はブラックホールアドレスが作成されたことを示します。! [](https://img-cdn.gateio.im/social/moments-e942fc679d8ef7e55f3db32648b24d99)## 2. カルダノネットワーク上の燃焼証明(PoB)スマートコントラクトこのセクションでは、カルダノのスマートコントラクトにおけるバーニング証明メカニズムについて説明します。カルダノのスマートコントラクトは、カルダノネットワーク上で実行されるプログラムであり、契約開発者が特定のルールに基づいて(金融)取引を実行することを可能にします。スマートコントラクトは、異なる取引者間で透明で検証可能な取引を確立することを目的としています。最近、分散型金融サービスと分散型組織の台頭がスマートコントラクトのアプリケーションの指数関数的な成長を促進しました。従来のイーサリアム型スマートコントラクトは、帳簿に記録された状態とその状態を非同期的に呼び出すプログラムで構成されています。帳簿上の状態はスマートコントラクトに属しているため、プログラムによってのみ変更可能であり、許可されたすべての状態操作はプログラムコードから導き出され、ブロックチェーン上に記録されます。カルダノエコシステムは異なる構造を採用しており、ユーザーは自分のウォレット内で各取引をシミュレーションでき、(ネットワーク)攻撃をより困難にします。この結果生じる変化はブロックチェーンノードによって検証され、その後記録されます。このため、カルダノのスマートコントラクトには3つの構成要素があります:- リデンプションスクリプト: eUTxOsの消費を許可または禁止する- ウォレットスクリプト: ユーザーが資金を回収し、新しいeUTxOsを作成するために実行することを示します- eUTxOs:各eUTxOは資金とデータポイント(datum)を保持しており、リデンプション者はこれを使用してこれらの資金が再び使用可能になる条件を判断します。これは、カルダノのスマートコントラクトが台帳上に中央集権的な状態を持たないことを意味します。各eUTxOは独立した状態(datum)を持ち、その資金は分割不可能です。これにより、次の4つの操作が可能になります:- 燃焼:秘密のハッシュコミットメント値を持つブラックホールアドレスに資金を送信する- 廃棄された:特定の約束値の燃焼が実際に発生したことを確認する- ロック:資金をキーのあるアドレスに送信する- 引き出し:ロックされていた資金を引き出す前に注意が必要なのは、エンドポイントがユーザーのウォレット内で実行されることです。エンドポイントスクリプトがウォレット内で実行を完了すると、生成されたトランザクションはブロックチェーンに移動します。本ケースでは、このトランザクションは資金をリディーム者スクリプトに移動させます。このスクリプトは、資金がハッシュ値を持つターゲットアドレスのみがアクセスできることを検証します。ロック操作では、ハッシュ値は私たち自身のアドレスである可能性があります。バーニングでは、ハッシュ値はブラックホールアドレスを指します。私たちは、ハッシュに秘密のコミットメント値を与え、それを反転させることによってこれを実現します。暗号ハッシュ関数を使用しているため、その結果に対応する一致するハッシュ値を見つけることはほぼ不可能です。注意:flipCommitmentはハッシュ値の最下位ビット(LSB)のみを反転させます。取引を受け付ける仲介者は、これは燃焼取引かロック取引かを知ることができません。このスクリプトを使用することで、仲介者は任意に燃焼取引を審査することができません。燃焼とロックは同じリデンプションフォーマットを使用しており、取引の発起者だけがこれは燃焼かロックかを知っています。燃焼値は、与えられたコミットメント値の破棄エンドポイントを使用することで検証できます。コミットメント値が公表される前に、誰も破棄された資金の数量を知ることはできません。コードに興味がある場合、コードベースは次のセクションで詳細に説明されます。! [](https://img-cdn.gateio.im/social/moments-f7f162dc2a412b8d5ff903636b2e631b)## 3. スマートコントラクトのデプロイ(テストネット上)ウォレットを持つテストネットノードを起動するには、ニーモニックフレーズとランダムなパスワードが必要です。次の手順を実行してスマートコントラクトを展開できます:### 1. Haskellツールチェーンをインストールする### 2. プルータススクリプトの構築### 3. CardanoノードとCardanoウォレットのコンテナを起動する### 4. ウォレットを復元し、ウォレットID(を出力した後、次のステップが必要です)。以下のコードを実行して(、テスト用のランダムなニーモニックを生成します)。### 5. 燃焼トークンを実行する### 6. 実行し、燃焼を検証する上記の手順を実行することで、外部からはこれが燃焼かロックされた取引であるかは分かりません。しかし、このスクリプトを公開した後、人々は、提案された償還者スクリプトのハッシュに対応する償還者をコンパイルしようとするかもしれません。これは膨大な努力を必要としますが、いくつかの燃焼が検閲される可能性があります。このような事態を防ぎ、違反行為をより困難にするために、次のセクションでは、このソリューションをより安全にする方法について説明します。! [](https://img-cdn.gateio.im/social/moments-7777b1db89195a287d84464f2b80b5e9)## 4. スマートコントラクトからウォレットスクリプトへユーザーのウォレットで大多数のスマートコントラクト操作が行われるという事実を利用して、ウォレットのみを使用して実行するソリューションを作成することは、スマートコントラクトを不要にする可能性があります。しかし、この方法には実際の利点があり、対応する燃焼のスマートコントラクトトランザクションを選択的にブロックすることが不可能です。ただし、すべての燃焼をブロックしたい審査者は、すべてのスクリプトをブロックすることで目的を達成できます。ウォレットのみを使用する場合、燃焼を審査する唯一の方法は、すべてのCardanoトランザクションを審査することです。これは、審査に対する究極の抵抗となります。これを実現するためには、コミットメント値のハッシュを公開鍵のハッシュに置き換え、コミットメント値の最下位ビットを反転させる必要があります。しかし、それだけでは不十分です。カルダノは、構造とCRCコードをチェックすることによって、アドレス内の入力エラーを防ぎます。したがって、コミットメントからアドレスを生成する最も簡単な方法は、以下のスクリプトとカルダノAPIライブラリを使用することです。その動作原理を確認するには、以下のコードを使用して燃焼アドレスを生成できます:その後、以下のコードを使用して取引をCardanoブロックチェーンに送信できます:燃焼を検証するには、以下のコードを使用して燃焼アドレスに送信されたトランザクションを確認する必要があります:! [](https://img-cdn.gateio.im/social/moments-fed84a6717b012408df1b428b2d80586)## まとめ本稿では、燃焼証明プロトコルの実装をスマートコントラクトまたはウォレット取引の2つの方法に分けています。しかし、Alonzoスマートコントラクトは現在、PABライブラリなどの必要なインフラが不足しています。したがって、ウォレットスクリプトの使用をお勧めします。いずれにせよ、PABライブラリは近い将来にCardanoベースのアプリケーション開発を実施する予定であり、ウォレットスクリプトと組み合わせることで、複雑なスマートコントラクトソリューションがより実行可能になり、潜在的な検閲に耐える環境を構築することができるでしょう。このソリューションについて詳しく知りたい場合は、GitHubで関連情報をすべて確認できます。! [](https://img-cdn.gateio.im/social/moments-3d2bf883bd43da42085612065d17c6ef)
カルダノが導入した燃焼証明プロトコル:PoBソリューションの詳細
燃焼証明(PoB)プロトコル:カルダノエコシステムの新しいソリューション
最近、Charles Hoskinsonが提起した課題に対する解決策が登場しました。この解決策はCardanoエコシステムに燃焼証明(PoB)プロトコルを導入しました。この記事では、この新しく開発された解決策について、内容を紹介します:
1. バーニング証明およびその応用
トークンのバーン(廃棄)は一般的な手法であり、実質的にはトークンをアクセスできない「ブラックホール」アドレスに送信することです。このアドレスには廃棄されたトークンを取り戻すためのプライベートキーは存在しません。公衆は廃棄が確かに行われたことを検証できますが、ただ一つの「秘密」の約束値を知っているだけです。このメカニズムの設計は、廃棄された資金が仲介者によって審査されることがないようにするためです。
燃焼メカニズムには多くの用途があり、残りのトークンの価値を増加させることや、ブロックチェーンプロトコルの誓約証明として機能することができます。大規模なトークンの燃焼は、流通しているトークンの総量を減少させるため、デフレ圧力を引き起こす可能性があります。燃焼トランザクションは一般的ですが、マイナーの承認が必要です。これらのメカニズムには利点がありますが、トークンの燃焼に反対する人もいます。このため、一部のチームは検閲不可能なトークン燃焼プロトコルの導入に取り組んでいます。この特別な操作はチャールズ・ホスキンソンの関心を引きました。
燃焼証明の安全性とトークン転送取引の安全性は、同じメカニズム - 暗号ハッシュ関数に基づいています。これらの関数は計算が容易ですが、逆算が非常に難しいです。本質的に、逆算が難しい理由は、入力の1ビットの変更が出力のすべてのビットをランダムに変化させるからです。これは、暗号ハッシュ関数の出力から逆算するのに非常に長い時間がかかることを意味します。簡単に言うと、暗号ハッシュ関数の最下位ビットを反転させることで、ブラックホールアドレスを作成することができます。そのアドレスに送信されたものは、回復が困難または不可能になります。
暗号取引の安全性は完全に公開鍵暗号と暗号ハッシュ関数に基づいています:"資金を送信するたびに、新しい未使用取引出力(UTxO)が作成されます。"このUTxOは資金の数量と受取人の公開鍵の暗号ハッシュを記録しています。受取人がこの資金を使用したい場合、同じ公開鍵で新しい支出取引に署名する必要があります。
なぜハッシュ関数の出力の最下位ビットを反転させるのか、直接0x0のハッシュを使用しないのか?その理由は、既知の値を使用すると燃焼が直ちに可視化されるからです。しかし、このプロトコルの構想は、まず資金を燃焼させ、その後(の別のステップで)それが燃焼されたことを証明することです。これを実現するためには、まずコミットメント値を生成するためのハッシュから始める必要があります。その後、コミットメント値はブラックホールアドレスが作成されたことを示します。
!
2. カルダノネットワーク上の燃焼証明(PoB)スマートコントラクト
このセクションでは、カルダノのスマートコントラクトにおけるバーニング証明メカニズムについて説明します。カルダノのスマートコントラクトは、カルダノネットワーク上で実行されるプログラムであり、契約開発者が特定のルールに基づいて(金融)取引を実行することを可能にします。スマートコントラクトは、異なる取引者間で透明で検証可能な取引を確立することを目的としています。最近、分散型金融サービスと分散型組織の台頭がスマートコントラクトのアプリケーションの指数関数的な成長を促進しました。
従来のイーサリアム型スマートコントラクトは、帳簿に記録された状態とその状態を非同期的に呼び出すプログラムで構成されています。帳簿上の状態はスマートコントラクトに属しているため、プログラムによってのみ変更可能であり、許可されたすべての状態操作はプログラムコードから導き出され、ブロックチェーン上に記録されます。
カルダノエコシステムは異なる構造を採用しており、ユーザーは自分のウォレット内で各取引をシミュレーションでき、(ネットワーク)攻撃をより困難にします。この結果生じる変化はブロックチェーンノードによって検証され、その後記録されます。このため、カルダノのスマートコントラクトには3つの構成要素があります:
これは、カルダノのスマートコントラクトが台帳上に中央集権的な状態を持たないことを意味します。各eUTxOは独立した状態(datum)を持ち、その資金は分割不可能です。これにより、次の4つの操作が可能になります:
注意が必要なのは、エンドポイントがユーザーのウォレット内で実行されることです。エンドポイントスクリプトがウォレット内で実行を完了すると、生成されたトランザクションはブロックチェーンに移動します。本ケースでは、このトランザクションは資金をリディーム者スクリプトに移動させます。このスクリプトは、資金がハッシュ値を持つターゲットアドレスのみがアクセスできることを検証します。
ロック操作では、ハッシュ値は私たち自身のアドレスである可能性があります。バーニングでは、ハッシュ値はブラックホールアドレスを指します。私たちは、ハッシュに秘密のコミットメント値を与え、それを反転させることによってこれを実現します。暗号ハッシュ関数を使用しているため、その結果に対応する一致するハッシュ値を見つけることはほぼ不可能です。
注意:flipCommitmentはハッシュ値の最下位ビット(LSB)のみを反転させます。
取引を受け付ける仲介者は、これは燃焼取引かロック取引かを知ることができません。このスクリプトを使用することで、仲介者は任意に燃焼取引を審査することができません。燃焼とロックは同じリデンプションフォーマットを使用しており、取引の発起者だけがこれは燃焼かロックかを知っています。燃焼値は、与えられたコミットメント値の破棄エンドポイントを使用することで検証できます。コミットメント値が公表される前に、誰も破棄された資金の数量を知ることはできません。コードに興味がある場合、コードベースは次のセクションで詳細に説明されます。
!
3. スマートコントラクトのデプロイ(テストネット上)
ウォレットを持つテストネットノードを起動するには、ニーモニックフレーズとランダムなパスワードが必要です。次の手順を実行してスマートコントラクトを展開できます:
1. Haskellツールチェーンをインストールする
2. プルータススクリプトの構築
3. CardanoノードとCardanoウォレットのコンテナを起動する
4. ウォレットを復元し、ウォレットID(を出力した後、次のステップが必要です)。以下のコードを実行して(、テスト用のランダムなニーモニックを生成します)。
5. 燃焼トークンを実行する
6. 実行し、燃焼を検証する
上記の手順を実行することで、外部からはこれが燃焼かロックされた取引であるかは分かりません。しかし、このスクリプトを公開した後、人々は、提案された償還者スクリプトのハッシュに対応する償還者をコンパイルしようとするかもしれません。これは膨大な努力を必要としますが、いくつかの燃焼が検閲される可能性があります。このような事態を防ぎ、違反行為をより困難にするために、次のセクションでは、このソリューションをより安全にする方法について説明します。
!
4. スマートコントラクトからウォレットスクリプトへ
ユーザーのウォレットで大多数のスマートコントラクト操作が行われるという事実を利用して、ウォレットのみを使用して実行するソリューションを作成することは、スマートコントラクトを不要にする可能性があります。しかし、この方法には実際の利点があり、対応する燃焼のスマートコントラクトトランザクションを選択的にブロックすることが不可能です。ただし、すべての燃焼をブロックしたい審査者は、すべてのスクリプトをブロックすることで目的を達成できます。ウォレットのみを使用する場合、燃焼を審査する唯一の方法は、すべてのCardanoトランザクションを審査することです。これは、審査に対する究極の抵抗となります。
これを実現するためには、コミットメント値のハッシュを公開鍵のハッシュに置き換え、コミットメント値の最下位ビットを反転させる必要があります。しかし、それだけでは不十分です。カルダノは、構造とCRCコードをチェックすることによって、アドレス内の入力エラーを防ぎます。したがって、コミットメントからアドレスを生成する最も簡単な方法は、以下のスクリプトとカルダノAPIライブラリを使用することです。
その動作原理を確認するには、以下のコードを使用して燃焼アドレスを生成できます:
その後、以下のコードを使用して取引をCardanoブロックチェーンに送信できます:
燃焼を検証するには、以下のコードを使用して燃焼アドレスに送信されたトランザクションを確認する必要があります:
!
まとめ
本稿では、燃焼証明プロトコルの実装をスマートコントラクトまたはウォレット取引の2つの方法に分けています。しかし、Alonzoスマートコントラクトは現在、PABライブラリなどの必要なインフラが不足しています。したがって、ウォレットスクリプトの使用をお勧めします。いずれにせよ、PABライブラリは近い将来にCardanoベースのアプリケーション開発を実施する予定であり、ウォレットスクリプトと組み合わせることで、複雑なスマートコントラクトソリューションがより実行可能になり、潜在的な検閲に耐える環境を構築することができるでしょう。このソリューションについて詳しく知りたい場合は、GitHubで関連情報をすべて確認できます。
!