connecting...
Google translation for articles :
8 NEMBER donated to you!!

【NEM技術勉強会】8.3 実際のオフセット計算方法

nem16.20xem (8) 203 4 0

前回は、明らかに時間がずれているノードを除外する方法について説明しました。この技術文書が公開されているということは、ハッカーも前回のような「あからさま」な攻撃は仕掛けてこないはず(ちょっとずつ時間をずらしていくとかするはず)。今回は、ネム特有のインポータンスを使った高度な攻撃への備えです。


8.3 実際のオフセット計算方法

 

他のノードから得られた(時間の)オフセット情報は、それらのノードが持つブートアカウント*のインポータンスで重み付けされます。

これによって、悪意のある攻撃を防いでいます。

*; 今回はじめてブートアカウントという言葉が出てきました。NISの設定にネムアドレスの秘密鍵を一つ登録できます。ずっとこれはハーベスト用のアカウントなんだろうと思っていましたが、NISノードのインポータンスとしても使われていることが分かりました。ノードは信頼度とインポータンスの2つの重要度値を持っていることになります。

 

攻撃者が、他のNISの時刻を狂わせようとして、(時間を少しだけずらした)ハッキングノードを立ち上げてズレた時間を持ち込もうとしても、これらのノードが持つインポータンス値を足し合わせた分のインポータンスを持つ、たった一つのノード以上の影響力を持つことはありません。

巨視的には、攻撃者がいくつハッキングノードを立ち上げたとしても、インポータンスが分散されるだけで、一台で攻撃するのと同程度の影響しか与えられないのです。

 

通信相手として使うノードの数と、すべてのパートナーノードのインポータンスの合計値のどちらかを使ってスケーリングファクター(scale)が計算されます。

パートナーノードから送られてくるオフセット値は、スケーリングファクターによって重みが付けられます。

 

Ijを、j番目のオフセット値(oj)を送ってきたノードのインポータンスとしましょう。

viewSizeは、パートナーノードの数を、最新のPoI計算に使われたノードの数で割ったものです。

この場合のスケーリングファクターは下のようになります。

前回パートナーノード(時間合わせをする相手ノード)を20個選びました。これらのパートナーノードのインポータンスを使って、スケーリングファクターというものを計算しています。具体的には、20個の低インポータンスノードと通信して、それらの合計インポータンスが0.00001 (10-5)だとすると、カッコの左側の値は100000 (105)です。PoI計算に20000個のアカウントが使われたとすると、右側は20/20000の逆数で1000。minはどちらか小さい方を選ぶということですから、この場合は1000のほうが採用されます。

 

そこで、最終的なオフセット値(o)は

で求めます。

もしも、高いインポータンス0.1を持つアカウントが1000ms(1秒)という大きなオフセットを送ってきたとします。その場合は、scaleが10に下がり、Iは0.1。oが1000ですから、1秒の変化を相手に与えることができます。でも、パートナーノードとして採用される確率が低いです。

 

大切なことは、大きなインポータンスを持ったアカウントの影響力が、viewSize(上の例の場合1000)によって制限されているという点です。

親アカウントが、より大きな影響力を得るために多数の子アカウントにインポータンスを分け与えたとしても、他のノードによってそれらの子アカウントがパートナーとして採用されて、影響力を発揮するのは難しく、全体としての影響力はむしろ下がるでしょう。

仮に,0.1のインポータンスを100個の子ノードに分け与えて、インポータンス0.001のノードを100台作ったとしたらどうでしょう?NISノードはスーパーノード含め最低500台くらいはあるし、通信先として選ばれるためにはノードの信頼度というのも必要です。仮に1つのノードが採用された場合、scaleは1000で、Iが0.001。これらが相殺してしまうので、オフセットは1000ms(1秒)のままで、親ノードが一台でやった時と変わりありません。上がるのはパートナーノードとして採用される確率で、多少はネットワークに影響を与えられそうですが、混乱させるというところまでは行かないでしょう。

 

では、採用数を10個くらいまで上げるために、インポータンス0.0001のノードを1000台立ち上げたとします。scaleは1000から上がらないのに、Iが0.0001に下がります。その結果10倍のノードを用意した効果は打ち消されて、オフセットは1000ms(1秒)のままです。実に効率が悪いことがわかります。


コメント:

なんと、こんなんところにもインポータンスが出てきました。昨日の段階で「じゃあ時計を少しずつずらしていけばいんじゃね?」と思った僕の懸念は、すでに設計段階で潰されていたようです。このように、インポータンスというのはハーベスト以外にもいろいろと使い道があって、とてもおもしろいです。また、NEMネットワークの設計段階で、様々な攻撃に対する対策が考えられていることに驚かされます。

次回で、時刻合わせについての解説は最後になります。

 

今回もお付き合いいただきありがとうございます。

 

目指せ北海道

Why don't you get crypt currency 'nem' by posting your blog article?

nemlog is blog posting service which has donation feature by crypt currency nem.
nemlog was launched to create environment which can be donated nem among NEMbers via blog articles.
Let's get nem by posting good blogs.

Nem prize event is being held frequently, Please join us on this opportunity!

nemlog registration from here
Register
Comments from NEMber
やそ
2019-03-19 17:00:52ID:84300

>>目指せ北海道::さん
なるほど。これは時計合わせだけの話であって、承認作業などはまた別の話ですか。ここでいう攻撃は時計を狂わせる、という意味だけということですね。
でもそれも塵も積もれば、タイムスタンプが押せなくなったり変になったり色々と狂ってくる。

たかが時計、されど時計。難しいですねぇ。

目指せ北海道
2019-03-19 15:52:33ID:84285

>>やそ::さん
NISの設定ファイルに入れるアカウントのインポータンスが使われているというのは、僕も初めて知りました。
秘密鍵を入れなくても、NISは動きます。でも時計合わせでは、他のノードからは無視されるということになります。
スーパーノードの登録をやったことがないので、このアカウントが300万持っている必要があるのかどうかは確認できません(確認したいw)。

インポータンスを分割すればするほど、承認済みXEM残高あたりのインポータンスが上がりますから、攻撃には有利になります。
しかし、同時にトータルのPoIアカウント数も増えて行きます。
インポータンス合計は1ですから、大量に作った分割アカウントのインポータンスもその分減少するでしょう。

アカウント分割に関して、上のスケーリングファクターの計算がちょっとひっかかります。
PoIアカウント総数が増えればそれだけスケーリングファクターも大きくなって、オフセットが大きくずれる可能性が出てきます。
しかし、その場合も計算方法を少し変えれば対応できる範囲です。

今回は、NISの時計合わせだけのことなので、あえてインポータンスを分割してまで時計を1秒狂わせようとする人はいないと思います。
でも、ちいさなほころびをきっかけに、新しい攻撃方法が編み出される可能性は常に考えないといけませんね。

やそ
2019-03-19 14:40:34ID:84269

普通のアカウントの重要度は数万xem以下の保有だと途端に上がりやすくなっていますし、分割したほうが合計の重要度が、数倍近く上がりますが、
NISの計算に関してはその影響はないのでしょうか??計算全然わからないのですが、悪意ある高インポータンス保持者が更に分けたら余計重要度が上がるのでは??と。そうすると、この記事で書いてる以上には悪さが、、、できないのか?
分からなくなってきました。

って言うかノード一つに付きアドレスというか秘密鍵1つ紐付けないといけないのですね。その紐づけたアドレスが300万あることがSN要件なのかしらん?

NEMber who posted this article

趣味はバイクでツーリングしながら、ブログを書いたり、動画配信したりすること。暗号通貨はまだまだ初心者。

nemlogに何を書こうかいろいろ考えたのですが、まずはバイクで動画配信をするための工夫や楽しさ、充実感などを伝えられたらと思ってはじめました。ラズパイをバイクに積載して、ボタン一つでYoutubeライブ配信できるシステムを作りました。それを発展させて、XEMの価格を常時監視するボットも作ったりします。

本業は再生医療系研究者です。歯の神経にいる「歯髄(しずい)細胞」を使って、世界中の人を助けるため、しずい細胞プロジェクトを推進中。細胞の流通(トレーサビリティー)管理にNEMのモザイクを使いたいと思って、NEMについて勉強中です。投資目的の暗号資産には、かなり懐疑的な立場を取っていますが、世界の富の不均衡を是正してくれる可能性には期待を持っています。
17960
0

Why don't you read following articles?

目指せ北海道's articles