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