Pages:
Author

Topic: Делаем криптовалюту - page 15. (Read 36722 times)

legendary
Activity: 3486
Merit: 1100
January 24, 2017, 05:20:33 AM
А кто из них может или хочет как-либо злоупотреблять, а кто нет?
А это неважно. Алгоритм должен давать гарантию, что злоупотребление
вскроется и хитропопый не сможет получить преимущество ни в каком варианте.
Всецело поддерживаю. Так и должно быть. Здесь же все кто будет генерить блоки будущего, автоматически посылаются сетью в баню, прямиком становясь мусором прошлого. Всему своё время.

Слушайте. Вам не нравится моя критика, когда я вам пытаюсь доходчиво объяснить проблемы?
Я могу молчать. Для вас же стараюсь, объясняя уязвимости.
Для меня любая критика к месту. Но я пока совершенно не собираюсь что-либо делать в этом направлении, и без того других дел хватает. Просто пока поделился некоторыми своими соображениями, не более.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 24, 2017, 05:09:37 AM
А кто из них может или хочет как-либо злоупотреблять, а кто нет?
А это неважно. Алгоритм должен давать гарантию, что злоупотребление
вскроется и хитропопый не сможет получить преимущество ни в каком варианте.

Слушайте. Вам не нравится моя критика, когда я вам пытаюсь доходчиво объяснить проблемы?
Я могу молчать. Для вас же стараюсь, объясняя уязвимости.

amaclin, спасибо вам за критику. Без нее, я бы точно запустил абсолютно бесполезный форк ))) А у топикстартера, очевидно, просто чешутся руки запустить свой форк, критика и идеи ему особо наверное и не нужны  Wink
legendary
Activity: 1260
Merit: 1019
January 24, 2017, 04:57:42 AM
А кто из них может или хочет как-либо злоупотреблять, а кто нет?
А это неважно. Алгоритм должен давать гарантию, что злоупотребление
вскроется и хитропопый не сможет получить преимущество ни в каком варианте.

Слушайте. Вам не нравится моя критика, когда я вам пытаюсь доходчиво объяснить проблемы?
Я могу молчать. Для вас же стараюсь, объясняя уязвимости.
legendary
Activity: 3486
Merit: 1100
January 24, 2017, 04:35:12 AM
Конечно, везде можно найти повод, если постараться. Но когда вероятность будет
находится в районах тысячных и более долях процента, изменение которых, даже на
порядки, на общую картину никак не должно повлиять. Равномерность распределения
блоков по времени при этом может быть даже более равномерной, что и подразумевалось изначально.
Не передергивайте.
Вы чуть выше описали алгоритм изменения сложности
Там через 10 минут половина расчетной сложности. Половина - это вовсе не "тысячные доли процента".
А ради тысячных долей процента изменения сложности - не стоит городить огород с её изменением по времени
А вы себя, как майнера, какими процентами или долями процента измеряете?
А сколько вообще может быть майнеров?
А кто из них может или хочет как-либо злоупотреблять, а кто нет?

Вы же знаете что такое консенсус, а я описывал алгоритм не для одного единственного майнера.
legendary
Activity: 1260
Merit: 1019
January 24, 2017, 04:06:20 AM
Конечно, везде можно найти повод, если постараться. Но когда вероятность будет
находится в районах тысячных и более долях процента, изменение которых, даже на
порядки, на общую картину никак не должно повлиять. Равномерность распределения
блоков по времени при этом может быть даже более равномерной, что и подразумевалось изначально.
Не передергивайте.
Вы чуть выше описали алгоритм изменения сложности
Там через 10 минут половина расчетной сложности. Половина - это вовсе не "тысячные доли процента".
А ради тысячных долей процента изменения сложности - не стоит городить огород с её изменением по времени
legendary
Activity: 3486
Merit: 1100
January 24, 2017, 03:55:24 AM

Конечно, везде можно найти повод, если постараться. Но когда вероятность будет находится в районах тысячных и более долях процента, изменение которых, даже на порядки, на общую картину никак не должно повлиять. Равномерность распределения блоков по времени при этом может быть даже более равномерной, что и подразумевалось изначально.
legendary
Activity: 1260
Merit: 1019
January 24, 2017, 02:25:48 AM
Ноды здесь никаким боком не стоят... Важно только время между блоками - линейная или
нелинейная зависимость сложности по этому времени.
Так в блоке можно любое время поставить. В пределах определенного люфта.
Вот пришел ко мне блок #1000 с датой 24 января, 12:00
На моих часах 12:01 допустим. Но я че, дурак чтоли майнить повышенную сложность?
Я начинаю майнить блок и таймстамп в нем ставлю 12:10 - то есть сразу снижаю
себе сложность. Короче, повод для злоупотреблений.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 24, 2017, 02:04:34 AM
Просто я думаю, что если удастся сделать коин который можно будет майнить на процессоре точно так же как на асике, то такой форк станет популярным.
legendary
Activity: 3486
Merit: 1100
January 24, 2017, 01:58:10 AM

Ноды здесь никаким боком не стоят... Важно только время между блоками - линейная или нелинейная зависимость сложности по этому времени.
Но всё это пока в любом случае не в ту степь. И не вижу большого смысла здесь и сейчас на этом зацикливаться.



Code:
git add .
git commit -m 'bag fix'
git push

какбэ и все ))

Здесь чуть более подробно - https://habrahabr.ru/post/125799/
Вчера вспомнил да разобрался что да как.
Cегодня-завтра исходники "безымянного" коина залью. А окончательное название может созреет в процессе.
legendary
Activity: 1260
Merit: 1019
January 23, 2017, 02:06:38 PM
legendary
Activity: 3486
Merit: 1100
January 23, 2017, 01:33:15 PM

Я как то тоже немного поразмышлял над привязкой ко времени. Пока пришел к возможному варианту более равномерного распределения блоков по времени, изменяя сложность в зависимости от времени блока - чем меньше прошло времени, тем больше сложность.
Например: сразу после нахождения блока сложность увеличивается в 10 раз, через минуту в 9 раз, через 2 минуты в 8 раз,.. через 10 мин. расчетная сложность, через 20 мин. - половина расчетной.
Т.е. что то в этом роде с поправкой на "ветер".
legendary
Activity: 1260
Merit: 1019
January 19, 2017, 11:47:51 AM
Мда.
Получается, что все пиры принимают все блоки... То есть если я начну строить цепочку откуда-то из середины, то все пиры будут ее строить вместе со мной?
Осталось значит только уговорить еще нескольких "русских хакеров" и заспамить блокчейн экзабайтами орфанов  Angry
Не совсем так.
Допустим, у тебя блоки 0-1-2-3....-999-1000
Ты ждешь блок 1001
А я тебе присылаю блок 995'
Ты его у себя сохраняешь, потому что не знаешь - может быть я пришлю тебе еще 996'-997'-998'-999'-1000'-1001'-1002'
Но пока ты от меня эту цепочку не получил - тебе нет смысла ничего анонсировать и пересылать своим пирам
Когда получишь более длинную цепь - тогда и сообщишь всем об этом.
То есть зафлудить сеть орфанами ты не сможешь - сможешь только нескольким своим пирам послать блок.
разработчики все-таки такие банальные вещи предусмотрели.

экзабайтами орфанов ты заспамить не сможешь - ибо пруф-оф-ворк никто не отменял.
блок обязательно проверяют на сложность

а вот для пруф-оф-стейк такая атака вполне осуществима.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 19, 2017, 11:37:42 AM
Мда.
Получается, что все пиры принимают все блоки... То есть если я начну строить цепочку откуда-то из середины, то все пиры будут ее строить вместе со мной?
Осталось значит только уговорить еще нескольких "русских хакеров" и заспамить блокчейн экзабайтами орфанов  Angry
legendary
Activity: 1260
Merit: 1019
January 19, 2017, 10:41:46 AM
Значит отправляли в сеть запрос: "дайте блок с таким-то хэшем у кого он есть"
Два (риторических) вопроса
- как мы узнаем хэш нового блока?
- зачем нам отправлять такой запрос всем своим пирам?

Давай я не буду тебя мучить. Сам отвечу.
Есть пакет "inv" Если я получаю блок и он вызывает у меня реорганизацию цепочки (или наращивание)
я посылаю всем своим пирам этот пакет. В пакете только хэш блока, но не его высота.
Дальше пиры уже решают что делать с этой информацией.
Могут запросить у меня содержимое блока. Могут проигнорировать, если такой блок у них уже есть.
Запрашивать блок "у всех" смысла нет. Есть смысл запрашивать только у того кто прислал "inv"

Ситуация когда одна нода шлет другой ноде блок без запроса вообще говоря в биткойне
не встречается. Хотя и не запрещается напрямую.

К чему я это объясняю? К тому, что не бывает блоков, которые мы не запрашивали.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 19, 2017, 10:16:27 AM
#99

 - что значит "мы спрашивали блок"?

Значит отправляли в сеть запрос: "дайте блок с таким-то хэшем у кого он есть"

 
- в каком случае клиент может получить блок если его не спрашивал?


Если в сети появился новый блок.
legendary
Activity: 1260
Merit: 1019
January 19, 2017, 09:39:20 AM
#98
мухаха.
теперь ответь на вопросы
 - что значит "мы спрашивали блок"?
 - в каком случае клиент может получить блок если его не спрашивал?
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 19, 2017, 08:47:22 AM
#97
Вобщем посмотрел исходники...
Судя по этому: https://github.com/bitcoin/bitcoin/blob/0.12/src/main.cpp#L3428
Алгоритм принятия блоков такой:

1. Если приходит блок, который мы сами спрашивали, то принимаем его в свою цепочку
2. Если приходит блок, который мы не спрашивали, то принимаем его в случае если сложность этого блока больше сложности последнего блока в нашей активной цепочке

kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 18, 2017, 06:03:03 PM
#96
Что если поменять понятие сложности?
Пусть из нескольких блоков, главным будет тот, сумма всех чисел в хэше которого - минимальна?
Никто ведь из майнеров не знает заранее - какая сумма получилась у других. Поэтому получаем случайный результат при валидации когда несколько блоков приходят одновременно. С другой стороны, этот результат валидации будет одинаковым у всех клиентов.
kzv
legendary
Activity: 1722
Merit: 1285
OpenTrade - Open Source Cryptocurrency Exchange
January 18, 2017, 05:44:59 PM
#95
Так что как только пройдет слух, что существует "читерский" клиент или способ подкрутить
часики и получить на три копейки больше - дураков в твоей сети не останется. Все станут "умными".

Ну можно сразу в алгоритме тогда искать блок с подкрученными часиками. Тогда все на равных все равно будут. Все смайненные блоки будут приходить одновременно.
Сейчас когда приходит несколько блоков, то главным считается тот у кого больше сложность. Я считаю это надо как-то поменять.
Если вместо выбора по сложности сделать рэндом? Ну да, надо продумать что-то получше ))
legendary
Activity: 1260
Merit: 1019
January 18, 2017, 05:17:56 PM
#94
Конечно, если исходить из того, что каждый начнет майнить по своему - тогда да,
ничего из такой монеты не выйдет. Но исходить-то нужно из другого: сильно умных
меньшинство, а большинство пользуется официальным клиентом с одинаковым алгоритмом.
Совершаешь ту же ошибку, что и Накамото.
Он тоже думал, что все будут майнить на процессорах примерно одним клиентом
(но возможность читинга он продумал гораздо лучше тебя)
Но оказалось, что дураки готовы объединиться в пул, если владелец пула покажется
им умным и пообещает им бабла больше, чем они смогут заработать сами.
Так что как только пройдет слух, что существует "читерский" клиент или способ подкрутить
часики и получить на три копейки больше - дураков в твоей сети не останется. Все станут "умными".
Pages:
Jump to: