Author

Topic: [ARDR] Nxt: Ardor - масштабируемая ChildChain-платформа - page 346. (Read 1749794 times)

legendary
Activity: 1005
Merit: 1002
work hard, die young (c)
Это я не знаю. Но могу примерно описать модель. Итак, берём N нод (считаем, что 1 аккаунт на каждой ноде), и распределяем между ними все монетки, как-нибудь примерно по Парето. Можно моделировать "статичную" ситуацию, т.е., трансакций нет. Скажем, N=1000 сойдёт для начала. Далее, моделируем ситуацию что не все ноды онлайн: каждая нода уходит в оффлайн независимо от других, сидит там случайное время, и возвращается. Это нам позволит хорошенько протестировать разные алгоритмы изменения бейзтаргета. Для каждого алгоритма собираем статистику: количество блоков в минуту и их распределение, вес субцепочек из 10, скажем, блоков, и распределение оного, и т.д.  Посмотреть на такие данные, наверное, уже будет полезно.

А вот дальше - надо как-то моделировать атаки. Предположим, что аккаунт нехорошего человека имеет Х%. И смотреть, что он может сделать, и получится ли это у него. CfB, ты можешь сформулировать какой-нибудь конкретный сценарий, насчёт чем этот нехороший человек занимается?

К какому числу должно стремиться N ? Я так понимаю, что под каждую ноду нужна виртуалка где можно запустить java+nxt. Исходя из минимальных требований имеем: 250Мб оперативки + 4Гб места на диске. Исходя из свободной оперативки на серваке могу "дать погонять" 64 виртуалки. Если постараться, то еще столько же могу найти... Но 64 влегкую. Или под "мощностью" имелось в виду что-то другое?
sr. member
Activity: 261
Merit: 250
sr. member
Activity: 376
Merit: 300
Понятно. Ты оценивал т.н. вероятности больших уклонений. Но про них известно as a более-менее general fact, что чем больше дисперсия - тем они больше.

Мне кажется, это правильно - брать самый худший вариант. Ведь прочность цепи определяется прочностью самого слабого звена.
"Самый худший вариант" - это немного не про то; тут ты оценил вероятность некоторого "редкого" события, и убедился, что она не просто мала, а очень мала. Типа, если самолёт упадёт с вероятностью 0.0001 - то это всё-таки плохо, а вот если с вероятностью 0.0000000000000000000001 - то уже приемлемо.

В математике это называется "теория больших уклонений", http://en.wikipedia.org/wiki/Large_deviations_theory .

Но код, наверное, сохранился? Можно прогнать такую же симуляцию для других вариантов алгоритма?
legendary
Activity: 1792
Merit: 1038
legendary
Activity: 2142
Merit: 1010
Newbie
Понятно. Ты оценивал т.н. вероятности больших уклонений. Но про них известно as a более-менее general fact, что чем больше дисперсия - тем они больше.

Мне кажется, это правильно - брать самый худший вариант. Ведь прочность цепи определяется прочностью самого слабого звена.
sr. member
Activity: 243
Merit: 250
Новый шлюз NXT-EUR/CHF/USD
Обсуждение: https://nxtforum.org/trading-exchanges/nxttracker-an-easy-gate-to-eur-chf-or-usd/

А какой он новый первый пост в сентябре
legendary
Activity: 1650
Merit: 1033
sr. member
Activity: 376
Merit: 300
А вот дальше - надо как-то моделировать атаки. Предположим, что аккаунт нехорошего человека имеет Х%. И смотреть, что он может сделать, и получится ли это у него. CfB, ты можешь сформулировать какой-нибудь конкретный сценарий, насчёт чем этот нехороший человек занимается?

Я делал немного по-другому. Разбивал миллиард монет по 100K-10M по рандому, а потом генерировал 1440 блоков считая, что никто не пропустил свой ход (эталон). А дальше я повторно (с того же генезис-блока) генерировал 1440 блоков, но на этот раз с вероятность P кто-то пропускал свой ход. Таким образом получались другие цепочки, которые сравнивались с эталоном по различным параметрам типа кумулятивной сложности или среднего интервала между блоками. Данный подход позволял сэкономить много ресурсов, заменяя полный перебор методом Монте-Карло. Считая, что злоумышленники могут объединить усилия и построить самую оптимальную ветку, я выбирал самый худший для нас вариант.

Понятно. Ты оценивал т.н. вероятности больших уклонений. Но про них известно as a более-менее general fact, что чем больше дисперсия - тем они больше.

Я думаю, всё-таки важно (даже для маркетинга) придумать какой-нибудь реальный сценарий атаки, и просимулировать его.
legendary
Activity: 2142
Merit: 1010
Newbie
А вот дальше - надо как-то моделировать атаки. Предположим, что аккаунт нехорошего человека имеет Х%. И смотреть, что он может сделать, и получится ли это у него. CfB, ты можешь сформулировать какой-нибудь конкретный сценарий, насчёт чем этот нехороший человек занимается?

Я делал немного по-другому. Разбивал миллиард монет по 100K-10M по рандому, а потом генерировал 1440 блоков считая, что никто не пропустил свой ход (эталон). А дальше я повторно (с того же генезис-блока) генерировал 1440 блоков, но на этот раз с вероятность P кто-то пропускал свой ход. Таким образом получались другие цепочки, которые сравнивались с эталоном по различным параметрам типа кумулятивной сложности или среднего интервала между блоками. Данный подход позволял сэкономить много ресурсов, заменяя полный перебор методом Монте-Карло. Считая, что злоумышленники могут объединить усилия и построить самую оптимальную ветку, я выбирал самый худший для нас вариант.
sr. member
Activity: 376
Merit: 300
Как-то всё это просимулировать бы надо, но я не умею   Sad

Тут я не помогу, сейчас все имеющиеся мощности рассчитывают топологию отдельных фрагментов Jinn'а.

А какие мощности нужны?
Это я не знаю. Но могу примерно описать модель. Итак, берём N нод (считаем, что 1 аккаунт на каждой ноде), и распределяем между ними все монетки, как-нибудь примерно по Парето. Можно моделировать "статичную" ситуацию, т.е., трансакций нет. Скажем, N=1000 сойдёт для начала. Далее, моделируем ситуацию что не все ноды онлайн: каждая нода уходит в оффлайн независимо от других, сидит там случайное время, и возвращается. Это нам позволит хорошенько протестировать разные алгоритмы изменения бейзтаргета. Для каждого алгоритма собираем статистику: количество блоков в минуту и их распределение, вес субцепочек из 10, скажем, блоков, и распределение оного, и т.д.  Посмотреть на такие данные, наверное, уже будет полезно.

А вот дальше - надо как-то моделировать атаки. Предположим, что аккаунт нехорошего человека имеет Х%. И смотреть, что он может сделать, и получится ли это у него. CfB, ты можешь сформулировать какой-нибудь конкретный сценарий, насчёт чем этот нехороший человек занимается?
legendary
Activity: 2142
Merit: 1010
Newbie
А какие мощности нужны?

Надо mthcl спрашивать, но, думаю, эквивалентные единицам, если не десяткам, биткоинов.
legendary
Activity: 1005
Merit: 1002
work hard, die young (c)
Как-то всё это просимулировать бы надо, но я не умею   Sad

Тут я не помогу, сейчас все имеющиеся мощности рассчитывают топологию отдельных фрагментов Jinn'а.

А какие мощности нужны?
legendary
Activity: 2142
Merit: 1010
Newbie
Как-то всё это просимулировать бы надо, но я не умею   Sad

Тут я не помогу, сейчас все имеющиеся мощности рассчитывают топологию отдельных фрагментов Jinn'а.
sr. member
Activity: 376
Merit: 300
Это только в том случае, если другие форжеры тоже участвуют в этом празднике жизни. Но если у нас изначально все этим занимаются, то как-бы лучшая возможная ветка уже победила, нет?

Затрудняюсь ответить.
Never mind. Ну, я могу примерно объяснить, почему меньшая дисперсия интервалов (на самом деле, дисперсия BaseTarget-1, но это сравнимые вещи) должна соответствовать большей безопасности, но это всё теория...  Как-то всё это просимулировать бы надо, но я не умею   Sad
legendary
Activity: 2142
Merit: 1010
Newbie
Это только в том случае, если другие форжеры тоже участвуют в этом празднике жизни. Но если у нас изначально все этим занимаются, то как-бы лучшая возможная ветка уже победила, нет?

Затрудняюсь ответить.
sr. member
Activity: 376
Merit: 300
Для биткойна я бы это понял, но для PoS-форжинга это не есть ясно. Имеется в виду, что вот у нас есть легальная ветка до блока N, а нехороший человек хочет создать лучшую по весу ветку от (скажем) N-10 своими собственными силами?

Но, скорее всего, это будет просто невозможно, сколько хешей не считай.

Это возможно за счет мультиветвистого форжинга.
Это только в том случае, если другие форжеры тоже участвуют в этом празднике жизни. Но если у нас изначально все этим занимаются, то как-бы лучшая возможная ветка уже победила, нет?
legendary
Activity: 2142
Merit: 1010
Newbie
Для биткойна я бы это понял, но для PoS-форжинга это не есть ясно. Имеется в виду, что вот у нас есть легальная ветка до блока N, а нехороший человек хочет создать лучшую по весу ветку от (скажем) N-10 своими собственными силами?

Но, скорее всего, это будет просто невозможно, сколько хешей не считай.

Это возможно за счет мультиветвистого форжинга.
sr. member
Activity: 376
Merit: 300
Хорошо бы определить понятие "безопасность" тогда (чтоб её доказывать).

Безопасность можно измерять как количество SHA256-хэшей, необходимых для создания ветки с таким же весом, как легальная, с определенной вероятностью. Является функцией, зависящей от эффективного баланса атакующего и эффективного баланса тех, кто сгенерировал легальную ветку, а также количества блоков, которые будут отменены в результате успешной атаки.

S0.5 = f(Battacker, Bprotector, N) задает 50%-ю вероятность.

PS: Думаю, стоит добавить в параметры среднее время между блоками.
Для биткойна я бы это понял, но для PoS-форжинга это не есть ясно. Имеется в виду, что вот у нас есть легальная ветка до блока N, а нехороший человек хочет создать лучшую по весу ветку от (скажем) N-10 своими собственными силами?

Но, скорее всего, это будет просто невозможно, сколько хешей не считай.

legendary
Activity: 2142
Merit: 1010
Newbie
Хорошо бы определить понятие "безопасность" тогда (чтоб её доказывать).

Безопасность можно измерять как количество SHA256-хэшей, необходимых для создания ветки с таким же весом, как легальная, с определенной вероятностью. Является функцией, зависящей от эффективного баланса атакующего и эффективного баланса тех, кто сгенерировал легальную ветку, а также количества блоков, которые будут отменены в результате успешной атаки.

S0.5 = f(Battacker, Bprotector, N) задает 50%-ю вероятность.

PS: Думаю, стоит добавить в параметры среднее время между блоками.
sr. member
Activity: 376
Merit: 300
A тогда почему бы наконец не подкрутить алгоритм?

А как его надо подкрутить? Пока не было ни одного предложения с доказательством, что оно улучшит безопасность (не дисперсию интервалов).
Хорошо бы определить понятие "безопасность" тогда (чтоб её доказывать).
Jump to: