システムの概要
LIBLOアーキテクチャは、軽量ブロックチェーンおよび暗号化方法を使用して、スマートNFTの安全で効率的な管理を可能にするように設計されています。当初、プロセスはデータ収集から始まり、IoTデバイスはセンサーの出力、環境測定値、トランザクションログなどのリアルタイムデータを収集します。この生データは、軽量の対称アルゴリズムを使用してローカルに暗号化され、楕円曲線暗号化(ECC)ベースのデジタル署名を介して処理して機密性を確保します。既存のブロックチェーンメカニズムを使用する代わりに、LIBLOは、メモリと帯域幅の要件を削減するために、必須のハッシュと参照のみを保存する新しい圧縮ブロックチェーン台帳を使用します。トランザクションとスマートNFTは、権限の証明(POA)などの軽量コンセンサスメカニズムを使用して処理され、最小エネルギー消費を伴う更新を検証および記録します。スマートコントラクトレイヤーには、データ検証の処理、アクセスポリシーの実施、NFTの所有権の管理が含まれます。この分散構造により、すべての操作がIoTデバイスに過剰に負担することなく実行されるようになります。提案されたLIBLOの概略図を図1に示します。
図1
スマートで安全なNFTのための提案されたLIBLOモデル。
システム初期化
LIBLOフレームワークの初期フェーズは、暗号化ノード全体で暗号化されたアイデンティティを作成し、通信を確保することに焦点を当てていました。各IoTデバイス(:{ delta :} _ {j} )は、署名と検証可能な相互作用を可能にする楕円曲線操作に基づいて、軽量の暗号的アイデンティティでインストールされます。ここでは、各デバイスがコンパクトな楕円曲線シグネチャアルゴリズムを使用してキーペアを生成します。これは、
$$ : left({k} _ {j}^{pub}、:{k} _ {j}^{pri} right)= genkeys left({ delta :} _ {j} right)$$
(1)
ここで、(:{k} _ {j}^{pub} )は(:{ delta :} _ {j} )の公開鍵です。生成関数。ブロックチェーン内のデバイスを一意に示すために、ハッシュされたトークンは、公開キーをデバイス固有のIDに結合することによって作成されます。
$$ :{ mathcal {t}} _ {j} = mathcal {h} left({k} _ {j}^{pub} left | right | { psi :} _ {j} right)$$
(2)
ここで、(:{ mathcal {t}} _ {j} )は、デバイス(:{ delta :} _ {j} )、:{ psi :} _ {j} )のデバイスの割り当てのIDの割り当て済みです。 (: mathcal {h} )はハッシュ関数です。このトークンは、スマートコントラクトを介して圧縮ブロックチェーン台帳に登録されています。これにより、分散型のアイデンティティ検証が可能になり、なりすましを防ぎ、安全なスマートNFT相互作用のための信頼ブートストラップをサポートします。
安全なデータ収集と軽量暗号化
前に説明したように、各IoTデバイスは(: delta :} _ {j} )として示され、特定の時間間隔でデータを継続的に収集します。生データは、次として表される時刻(:t )で収集されます
$$ :{d} _ {j} left(t right)= cd({ delta :} _ {j}、t)$$
(3)
ここで、(:{d} _ {j} left(t 右))が時刻(:t )でデバイスによって収集され、(:cd )はデータ取得プロセスを示します。
SIT暗号を使用した軽量対称暗号化
LIBLOフレームワークでは、安全性と低い計算オーバーヘッドを考慮することにより、安全なIoT(SIT)暗号が適用されます。 SITは64ビットブロック暗号で、Feistelネットワークと置換拡大(SP)ネットワークを組み合わせたハイブリッド構造を利用し、わずか5つの暗号化ラウンドで高レベルのセキュリティを実現します。ここで、(:{{ omega :}} _ {j} left(t 右))は、:{ delta :} _ {J} )のIoTデバイスから収集された生データを示します。 (:{ lambda :} _ {j} )は64ビット対称キーであり、(:{c} _ {j} )は、デバイスの暗号化されたデータ出力です
ここで、SITの構造は34から採用されています。 64ビット(:{ lambda :} _ {j} )は、(: lambda :} _ {j}^{ left(1 ride)} )の5つの一意の丸いキーに拡張されます。 (:{ lambda :} _ {j}^{左(5 右)} )キー拡張関数を使用します。初期データの準備のために、プレーンテキストデータ(:{{ omega :}} _ {j} left(t 右))は4つの16ビットブロックに分類されます。 (:{b} _ {1}、:{b} _ {2}、:{b} _ {3}、:)および(:{b} _ {4} )。 5ラウンド(:r )ごとに、(:{b} _ {k} )の各ブロックは、事前に定義された(:s )ボックスを使用して置換を受けて(:{s} _ {k} )を生成します。次に、置換ブロック(:{s} _ {k} )が分布を強化するように配置されます。次に、Feistal操作を適用します。
XORおよびround関数(:f( cdot :))を使用して各ブロックを更新します。
$$ : left { begin {array} {c} {b} _ {1} = {b} _ {1} oplus :f({b} _ {2}、{ lambda :} _ {J}^{ left(r r Ight)})\:{b} _ {2} = {b} _ {2} oplus :f left({b} _ {3}、{ lambda :} _ {j}^{ right)} righ t)\:{b} _ {3} = {b} _ {3} oplus :f left({b} _ {4}、{ lambda :} _ {j}^{ right(r rid)} righ) \ :{b} _ {4} = {b} _ {4} oplus :f({b} _ {1}、{ lambda :} _ {j}^{ left(r rid)}) end {array} righ
(4)
ここで、(:f )は、非線形性を確保するための丸い関数です。したがって、最終出力はとして表されます
$$ :{c} _ {j} left(t right)= {b} _ {1} left | right | {b} _ {2} left | 右| {b} _ {3} 左| 右| {b} _ {4} $$
(5)
復号化プロセス。
復号化は、暗号化ステップの逆に従います。同じ対称キー(:{ lambda :} _ {j} )を使用して、丸いキーは逆の順序で適用されます。暗号化されたデータ(:{c} _ {j} left(t 右))は最初に4つのブロックに分割され、逆操作はラウンドごとに実行されます。
$$ : left { begin {array} {c} {b} _ {4} = {b} _ {4} oplus :f left({b} _ {1}、{ lambda :} _ {j} { r yight)} right)\:{b} _ {3} = {b} _ {3} oplus :f left({b} _ {4}、{ lambda :} _ {j}^{ left(r right)} righ t)\:{b} _ {2} = {b} _ {2} oplus :f left({b} _ {3}、{ lambda :} _ {j}^{左(r r 1} = {b} _ {1} oplus :f left({b} _ {2}、{ lambda :} _ {j}^{ left(r right)} right) right {array} righ
(6)
このプロセスは繰り返されます r= 5下から1になり、元のプレーンテキストを回復するために再組み立てされました。
$$ :{{ upphi :}} _ {j} left(t 右)= {b} _ {1} left | right | {b} _ {2} left | right | {b} _ {3} lept | right | {b} _ {b}
(7)

アルゴリズム1:SIT暗号を使用した軽量暗号化
ECCを使用したデジタル署名
このセクションでは、楕円曲線暗号化(ECC)35を使用してデジタル署名を生成します。これは、小さなキーサイズを使用して強力な暗号化とデジタル署名能力を提供できるため、IoT環境に非常に適した軽量で安全なパブリックキー暗号化メカニズムです。 LIBLOフレームワークでは、ECCを使用して、暗号化されたNFTデータにデジタルに署名して、信頼性を確保します。このプロセスは、として定義されます
$$ :{r} _ {j} left(t right)= ecc _sign({c} _ {j} left(t 右)、:{k} _ {j}^{pri}):$$
(8)
ここで、(:{r} _ {j} left(t 右))は暗号化されたnftに添付されている署名です。
ECCは、有限フィールド上の楕円曲線の数学に基づいています。の概念によると []、プライムフィールドの楕円曲線(:{f} _ {p} )は、
$$ :e:{y}^{2} :mod :p = {x}^{3}+ax+b :mod :p $$
(9)
ここで、ECCのセキュリティは、楕円曲線離散対数問題(ECDLP)の難易度に依存します。提案されたLibloによると、各デバイス(:{ delta :} _ {j} )には、:{k} _ {j}^{pri} )のプライベート署名キーと対応する公開鍵があります。 (:{k} _ {j}^{pub} = {k} _ {j}^{pri} .g )。
ここで、(:g )は楕円曲線のベースポイントです。暗号化されたデータ(:{c} _ {j} left(t 右))に署名します。 libloは、次のように表現される暗号化ハッシュ関数を実行します
$$ :h = mathcal {h} left({c} _ {j} left(t 右)右)$$
(10)
次に、(:k )の乱数が生成されます。ここで、(:k in :[1,n-1])。ここで、(:n )はベースポイント(:g )の順序です。乱数(:k )を使用して、スカラー乗算(:r = k bullet :g )を実行することにより、新しい楕円曲線ポイント(:r )を計算します。ここでは、(:r )は曲線上の新しいポイントであり、2つの座標(:x )と(:y )があります。次に、(:x )(:{r} _ {x} )の座標を考慮して、itモジュール(:n )を減らして値(:r )を取得します。これは署名の最初の部分になります。
$$ :r = {r} _ {x} :mod :n $$
(11)
この値(:r )は、楕円曲線の圧縮表現として機能し、最終的なECC署名のセキュリティと一意性に貢献します。

アルゴリズム2:ECCベースのデジタル署名生成
スマートNFT構造とメタデータ結合
IoTデバイスからのNFTデータが暗号化され、デジタルで署名されると、LibloはSmart NFT構造の次の段階に移動します。このステップでは、暗号化されたコンテンツ、署名、追加のメタデータなど、すべての重要な機能がスマートNFTにグループ化されます。暗号化されたデータ(:{c} _ {j} left(t 右))とそのデジタル署名(:{r} _ {j} left(t 右))およびまた、記述的記述的メタデータこのスマートNFTは、特に定義されています
$$ :{ mathcal {n}} _ {j} left(t right)= createnft({c}} _ {j} left(t 右)、:{r} _ {j} left(t right)、:{mathcal {j}}}}}}}}}}
(12)
方程式(9)は、一意のトレーサブルNFTで暗号化されたデータ、デジタル署名、メタデータを組み合わせています。メタデータ(:{ mathcal {m}} _ {j} )はデジタルアイデンティティとして機能し、ルールに基づいて認定ユーザーが誰であるかを決定します。
圧縮ブロックチェーンストレージとスマートコントラクトベースのアクセス制御
従来のブロックチェーンシステムは、すべてのブロックに完全なトランザクションレコードを保存します。これにより、特に大規模なNFTメタデータとトランザクションの管理において、ストレージコストが高くなります。この制限を克服するために、Libloは、データの整合性を維持することにより、鎖の保管を著しく削減するために使用される絞られた元帳とも呼ばれる、新しい圧縮ブロックチェーン台帳を使用します。
(:{ mathcal {t}} _ {j} left(t 右))は、暗号化されたデータ(:{c} _ {j} left(t right))、Digital Ingationの完全なNFTトランザクションバンドルであることを考えてください。 (:{r} _ {j} left(t 右))およびmetadata (:{ mathcal {m}} _ {j} )。これは次のように定義されています
$$ :{ mathcal {t}} _ {j} left(t 右)= {{c} _ {j} left(t 右)、:{r} _ {j} left(t right)、 {m {J}}}}}}}}}
(13)
ここでは、すべてのトランザクションを記録する代わりに、:{ mathcal {t}} _ {j} left(t 右))_ {j} left(t 右))はブロックチェーンで直接、merkle root hashを計算します(:{ mathcal {h}}} _ {j} over transaction bundles
$$ :{ mathcal {h}} _ {j} = merkleroot({t} _ {1} left(t right)、:{t} _ {2} left(t right)、 dots :
(14)
このroot hash (:{ mathcal {h}} _ {j} )は、トランザクションのバッチ全体の圧縮表現になります。ブロックチェーンは、元の古いブロックを、:{ mathcal {h}} _ {j} )のみを含む新しいブロックと、対応するオフチェーンストレージの位置へのポインターに置き換えられます(:{addr} _ {j} )。次に、更新された圧縮ブロックが次のように定義されます
$$ :{b} _ {j} = {{ mathcal {h}} _ {j}、{addr} _ {j} } :$$
(15)
ここで、(:{b} _ {j} )は、デバイスの圧縮ブロックチェーンブロックを示します(:{ delta :} _ {j} )および(:{addr} _ {j} )
ユーザー(:{u} _ {k} )がNFTデータへのアクセスを要求すると、LIBLOスマートコントラクトはこの要求を評価します(:{r} _ {k} )は事前定義されたアクセス制御ルール(:p )に対して、これは役割に基づいたポリシーに基づいています。
$$ :d = ae({r} _ {k}、p)$$
(16)
ここで、(:ae )は、リクエスト(:{r} _ {k} )および事前定義されたアクセス制御ルール(:p )に関するアクセス評価です。
アクセスポリシー条件が満たされた場合、アクセスは許可されます
$$ :if :d = grant、:the :return :{ mathcal {t}} _ {j} left(t 右):{addr} _ {j} $$から
(17)

アルゴリズム3:圧縮元帳ストレージとアクセス制御
#ハイブリッドセキュア関数を使用してスマートスマートの非ファンなトークンを保護するためのIoTデバイスを備えた軽量ブロックチェーン