データに署名し、署名の数を追跡できるようにカウンターを増やすソリューションを作成したいと思います。
要件の1つは、履歴を追跡するために署名の順序を増やすことです。外部ファイルにカウンターを保存したいので、履歴の変更に対してもファイルを保護する必要があります。
たとえば、増加したカウンターをファイルに保存します。15番にします。次に、別の署名を行い、更新されたファイルを16番で保存します。ソリューションを保護して、カウンターを含むファイルの以前のバージョンにファイルを置き換えないようにします。 15なので、過去に戻ることはできません。
ファイルの整合性を保護するための暗号化技術を知っていますが、ファイルを以前のバージョンに置き換えることができないようにする方法がわかりません。
何かアドバイス?
そのためにはコンセンサスプロトコルが必要です。ファイルを3つ(または5つ以上)の異なるサーバーに保存し、ファイルが変更されるたびに、それらのサーバーの新しいバージョンを送信します。
次に、サーバーは、ファイルが増分カウンターを備えた新しいバージョンであるかどうかを確認し、そうである場合は、サーバーの大多数がファイルが新しいものであることに同意した後、ファイルのハッシュを元帳に保存できます。
ファイルを確認するには、ファイルをサーバーに送信します。サーバーは、ファイルが同じバージョンであるかどうかを確認し、バージョンが古いバージョンか、現在のバージョンか、これまでに見たことのないバージョンかを通知します。
このように、攻撃者はファイルを以前のバージョンに戻すためにサーバーの大部分を危険にさらす必要があります。
または、既存のソリューションを使用することもできます。ブロックチェーンにデータを保存するための現在のソリューションがあります。そのためのイーサリアムスマートコントラクトがあります。ドキュメントのカウンターとハッシュを保存し、変更を追跡できます。誰かがカウンターを元に戻そうとした場合、Ethereumブロックチェーンを検索して検出できます。