Mixinカーネル
Mixinネットワークの核心はMixinカーネルと呼ばれる。Mixinカーネルは有限のカネールノードで未使用トランザクションの出力を処理するために、非同時の複雑な自己修復機能によって管理される非周期グラフである。
ゴースト出力
MixinカーネルはビットコインのUTXO(未使用トランザクションの出力)モデルを用いてトランザクションを処理する。更に、アドレス再利用問題がないので、CryptoNote[0]という一回限りの鍵の導出アルゴリズムを用いてプライバシーを改善する。一回限りの鍵をゴーストアドレス(幽霊アドレス)と呼ばれており、それと連携してる出力をゴースト出力(幽霊出力)と呼ばれている。
このアルゴリズムでは、一つのユーザー秘密鍵が2つの異なる楕円曲線鍵のペア(a,b)になっており、公開鍵は(a,b)から得た2つの公開楕円曲線鍵のペアでできている。
アリスがボッブに支払う場合、アリスはまずボッブの公開鍵(A,B)を取得し、更に、少なくとも3つの乱数を含むゴーストアドレスを獲得する。ボッブのために異なるゴーストアウトプットが3つ作られていることが保証される。
3つのゴースト出力閾値はより良くプライバシーを守る事できるが、出力の乱数の数が要求される。
ゴーストアドレスが引き出された後、アリスはCryptoNoteアルゴリズムを用いて取引に署名する。
注意すべきことは、プライバシー保護のため、アリスが取引入力としてランダムUTXOを使うのは強制的である。取引が署名された後、アリスはそれをMixinカーネルに渡す。
取引をゴーストアドレスの特徴によって認識できるのはボッブだけである。ボッブは彼の追跡鍵(a,B)を用いて出力情報を解読できる。
ある取引の資産情報をすべて大衆に公開し、アドレスを透明化にしたい場合、取引の追跡鍵(a,B)を公開すると、誰でも取引を認識できるようになる。一方、秘密鍵bがなければ誰でも取引を使うことができない。
非同期ビザンチン・フォールト・トレラント性(BFT)グラフ
Minxinのカーネルノードは一つ当たり10,000のXINを確保することができる。500,000XINが巡回して供給しているから、存在するカーネルノードは50を超えることがない。重みが極端に集中することを防ぐため、カーネルは7つのカーネルノードを揃わないとは起動できないようになっている。
カーネルノードは離れた網状トポロジーを構成し、取引した記録の検証、保管を行う。ブロックチェーンと違い、Mixinカーネルではブロックがなく、取引は直ちにできるだけ急速に送信される。
典型的なMixinカーネルの取引は次のような手順に従う。
アリスの取引はMixinカーネルに送信され、b個の無作為に選ばれたノード(グループA)に受信される。
ノードは全て同じ取引の検証を行う。
1) 輸入は消耗されない。
2) 輸入量と輸出量は有効な範囲に収まる。
3) 輸入の全ての署名を確認する。
4) 輸入量の合計は輸出量の合計と等しい。
3. ノードは有効な取引でカーネルのスナップショットを作り、スナップショットをベースユニットとしてカーネルに保存し、DAG(閉路のない有効グラフ)の構成に使う。一つのスナップショットは以下のものからなる:
1) データ本体の取引
2) ノードの元のスナップショットのハッシュ値
3) ノードの署名
4.署名されたスナップショットはできるだけ早く他のb個の無作為に選ばれたノードに送信される。ノードがスナップショットを受信して「2.」で書かれた手順で検証したのち、新しいスナップショットは速やかに作成される。新しいスナップショットは受信したスナップショットと同じデータ本体を持つ。参照されたスナップショットのハッシュ値は、このノードの元のスナップショットのハッシュ値と新しいスナップショットのハッシュ値のペアである。
5.手順「4.」はノードが「取引は2/3K以上のノードに承認または拒絶された」と確認できるまで繰り返される。スナップショットはどれもグループAまで遡る親スナップショットを参照するため、新しいノードは元のスナップショットがスナップショットを意識していることを簡単に察知する。したがって、このような手続きで無駄な仕事を避けることができる。
6.上述の手続きにおいて、取引は平均K/b^2ラウンド以内に承認または拒絶される。カーネルの典型的なサイズを考えると、遅延はほとんど一秒以内に抑えられ、数秒以内になることが保証される。
非同期BFTの一致により、二重支払いは不可能である。UTXOの特性により、スナップショットの順番は独立であり、DAG内の高度な同時実行は保証される。
网友评论