Author

Topic: Временное снижение сложности или блоки с &#10 (Read 16009 times)

member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
newbie
Activity: 6
Merit: 0
Прочитал всю тему. Очень интересная дискуссия.
Проблема масштабируемости биткоинта действительно встанет очень остро, если система получит большое распространение.

Но зачем изобретать велосипед? Действительно временное снижение сложности, предложенное в этом топике, полностью эквивалентно увеличению (или снятию) ограничения на максимальный размер блока (в коде это изменение одного define). Но зачем тогда разработчики вообще поставили это ограничение?
Причин я вижу две:
1. Ограничение роста истории (об этом уже упоминал yurock);
2. Ограничение трафика между узлами сети. Если блоки будут слишком большими, то они будут долго перекачиваться между узлами сети, не все же пользователи подключены к гигабитному каналу Wink А если каналы будут заняты перекачкой блоков, то распространение транзакций замедлится (и блоки и транзакции распространяются по сети по одним принципам и по одним каналам).

Но разработчики уже намечают пути решения этой проблемы. Вот здесь предлагаются варианты решения проблем узких мест системы https://en.bitcoin.it/wiki/Scalability
Если кратко и по русски то предлагается следующее. Передавать по сети не весь блок, а только его заголовок (80 байт) + хеши всех транзакций вошедших в блок (32 байта на каждую транзакцию). Сами тела транзакций передаваться не будут (сейчас это в среднем 300-500 байт на одну транзакцию). Размер блока снизится на порядок. Идея заключается в том что у клиента уже есть все эти транзакции в памяти (in-memory pool), они туда попадают когда транзакция распространяется по сети. Если каких-то транзакций не хватает, то их можно запросить у соседа. Т.е. сейчас по сути транзакции передаются по сети (и проверяются подписи) дважды: первый раз когда транзакция распространяется по сети, второй раз когда блок с этой транзакцией распространяется по сети. В общем в клиенте есть что оптимизировать и разработчики об этом думают.

Теперь о комиссии.
У меня сложилось впечатление что многие не понимают как она работает и от чего зависит. Это конечно печально. Если приходя в банк мне говорят комиссия 3% от суммы перевода - тут все понятно (только дорого). В биткоине же комиссия считается очень хитро (непонятно когда берется, а когда нет, как влияет на приоритет транзакции и т.д.). Я основательно покопался в исходниках чтобы разобраться в этой ситуации.

Вот что мне удалось выяснить (если в чем-то ошибаюсь, поправьте):
1. Есть 2 вида минимальной комиссии: MIN_TX_FEE и MIN_RELAY_TX_FEE (0.01 и 0.0005 для версии 0.3.22). MIN_TX_FEE проверяется при создании транзакции, а MIN_RELAY_TX_FEE при распространении транзакции по сети и включении в блок. Минимальная комиссия применяется в качестве коэффициента и умножается на размер транзакции в Кб.
2. Для каждой транзакции рассчитывается приоритет:
sum(valuein * age) / txsize
   valuein - количество монет на выходе входной транзакции,
   age - количество подтверждений входной транзакции,
   txsize - размер новой транзакции.
Таким образом чем больше монет мы переводим и чем большим количеством блоков они подтверждены и чем меньше размер транзакции, тем выше приоритет. Из этой формулы также следует что с каждым новым блоком созданным в системе, приоритет старых невлезших в предыдущий блок транзакций будет увеличиваться и они рано или поздно попадут в блок.
3. Транзакция может быть бесплатной если её приоритет выше COIN * 144 / 250. Это соответствует переводу одного биткоина пришедшего к вам сутки назад в стандартной транзакции (собранной не из копеек). Именно этот механизм призван чтобы защитить систему от спама. У вас есть выбор либо заплатить небольшую комиссию и использовать "свежие" коины или подождать пару дней и провести перевод без комиссий.
4. Есть еще несколько условий для бесплатности транзакции. Размер транзакции должен быть не более 10 Кб, размер блока при добавлении этой транзакции должен быть не более 27 Кб (первые 27 Кб в блоке), выходные суммы у транзакции должны быть не менее 0.01 BTC.
5. Транзакции включаются в блок в порядке приоритета.
6. Отдельные майнеры и пулы могут установить пороговую комиссию и транзакции с меньшей комиссией не включать в свои блоки. Судя по исходникам это еще не реализовано, но пока и генерируемых монет всем хватает.

Из выше описанного алгоритма следует одна очень интересная особенность. На данный момент у майнеров и пулов не установлено пороговых комиссий и средний размер блока 23 Кб, а значит плата за транзакцию никак не влияет на её приоритет. Она будет влиять только когда появятся майнеры с разными пороговыми комиссиями.

Рассмотрим пример. Есть 3 пула: A - комиссия 0.05; B - комиссия 0.01; C - комиссия 0. Допустим что мощность пулов примерно равна и других майнеров в сети нет. Тогда заплатив комиссию 0.05 наша транзакция попадет в следующий блок с вероятностью 100%, заплатив комиссию 0.01 - с вероятностью 66% и если мы не заплатили комиссию вообще, то с вероятностью 33%. Это без учета размеров блока и приоритетов. При этом комиссия не влияет на приоритет, т.е. если наша транзакция использует мало свежих биткоинов, то даже с комиссией 0.05 она имеет шанс не попасть в блок, если пользователями было создано много более приоритетных транзакций, даже если они не заплатили за них комиссию (или заплатили меньше).
Сейчас никаких порогов нет, поэтому указывать комиссии больше минимальной бессмыслено.

С моей точки зрения система достаточно грамотная, она и от спама защищает и майнерам позволит в будущем жить за счет комиссий и у пользователей есть выбор. Только вот простой и понятной её не назовешь.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Увеличение размера блока -- это не плохо; это неизбежно.  С ростом числа переводов/транзакций.  Ну и к тому времени, когда это станет необходимостью, полагаю, интернет станет быстрее и память дешевле.
Ok. Тогда вопрос исчерпан.
newbie
Activity: 25
Merit: 0
Hi!

Ещё раз и медленно. Я не спрашивал, чем хуже временное снижение сложности временного увеличения размера блока. Я спрашивал, чем такой подход (временное снижение сложности или временное увеличение размера блока) плох сам по себе. Если Вас так раздражает снижение сложности, считайте, что речь идёт только об увеличении размера блока.
Итак... чем же это плохо?
Увеличение размера блока -- это не плохо; это неизбежно.  С ростом числа переводов/транзакций.  Ну и к тому времени, когда это станет необходимостью, полагаю, интернет станет быстрее и память дешевле.

Илья
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Временное снижение сложности не влияет на надёжность сети.  Оно бесполезно, если не вредно.  Это то же самое, что увеличить размер блока (количество переводов в транзакции/блоке).  Только второе не требует изменения существующих программ/протокола (при условии, что в клиентах отсутствует контроль размера уже подписанного блока) и безопаснее с точки зрения разветвления цепочки блоков.
Вообще-то, я не против временного увеличения размера блока. Я даже писал, что возможно, это даже лучшее решение, чем временное снижение мощности. Внятного объяснения, чем это плохо я так и не услышал.
Необходимость изменения протокола и увеличение вероятности вилки.  Этого достаточно.
Чем больше вероятность вилки, тем больше блоков необходимо ждать для гарантированного подтверждения перевода/транзакции.
Ещё раз и медленно. Я не спрашивал, чем хуже временное снижение сложности временного увеличения размера блока. Я спрашивал, чем такой подход (временное снижение сложности или временное увеличение размера блока) плох сам по себе. Если Вас так раздражает снижение сложности, считайте, что речь идёт только об увеличении размера блока.
Итак... чем же это плохо? Вероятность вилки в данном случае уж точно никак не увеличивается.
sr. member
Activity: 462
Merit: 250
На данный момент, сфера генерации блоков намного более развита, чем нормальный оборот биткоинов. Я считаю, что вместо того, чтобы стимулировать майнеров, надо уделять больше внимания внедрению Bitcoin, как платёжного средства. Ещё, как минимум, целый год проблем с майнингом быть не должно. Если за это время система получит достаточное распространение, то будет спрос на генерацию, а спрос рождает предложение. Да и потом ещё года 4 будет премия в 25 BTC за блок, а это также немало.
newbie
Activity: 25
Merit: 0
На сегодня генерация монет намного превышает комиссионные, поэтому последние практически не играют роли в стимуляции майнеров. Однако, со временем, как-то надо будет увеличивать комиссию.
И лучше договориться об этом как можно раньше.

Quote
Где-то через годик с лишним планируется снижение генерации до 25 монет в блоке.
Если постановить, что вознаграждение за найденый блок всегда будет не менее 50 монет, а количество генерируемых монет вычислять как разницу между налогом и этими 50-ю монетами, то генерация монет со временем (с ростом оборота) сойдёт на нет.  Количество сгенерированных монет будет регулироваться рынком.

Вот более развёрнуто: http://forum.bitcoin.org/index.php?topic=13324.msg183098#msg183098
(упреждая обвинения в зацикленности на одной идеи, указываю, что да, я хочу, чтобы это прочло как можно больше людей).

Илья
sr. member
Activity: 462
Merit: 250
надо стимулировать рост мощности сети биткоин.  Это можно сделать увеличивая налог в пользу майнеров.
На сегодня генерация монет намного превышает комиссионные, поэтому последние практически не играют роли в стимуляции майнеров. Однако, со временем, как-то надо будет увеличивать комиссию. Где-то через годик с лишним планируется снижение генерации до 25 монет в блоке.
newbie
Activity: 25
Merit: 0
Hi!

Временное снижение сложности не влияет на надёжность сети.  Оно бесполезно, если не вредно.  Это то же самое, что увеличить размер блока (количество переводов в транзакции/блоке).  Только второе не требует изменения существующих программ/протокола (при условии, что в клиентах отсутствует контроль размера уже подписанного блока) и безопаснее с точки зрения разветвления цепочки блоков.
Вообще-то, я не против временного увеличения размера блока. Я даже писал, что возможно, это даже лучшее решение, чем временное снижение мощности. Внятного объяснения, чем это плохо я так и не услышал.
Необходимость изменения протокола и увеличение вероятности вилки.  Этого достаточно.

Чем больше вероятность вилки, тем больше блоков необходимо ждать для гарантированного подтверждения перевода/транзакции.

Илья
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Я лишь говорю, что временное снижение сложности никак не скажется на надёжности сети. Да, временно возрастёт трафик. Но не более.
Временное снижение сложности не влияет на надёжность сети.  Оно бесполезно, если не вредно.  Это то же самое, что увеличить размер блока (количество переводов в транзакции/блоке).  Только второе не требует изменения существующих программ/протокола (при условии, что в клиентах отсутствует контроль размера уже подписанного блока) и безопаснее с точки зрения разветвления цепочки блоков.
Вообще-то, я не против временного увеличения размера блока. Я даже писал, что возможно, это даже лучшее решение, чем временное снижение мощности. Внятного объяснения, чем это плохо я так и не услышал.
newbie
Activity: 25
Merit: 0
Hi!

Я лишь говорю, что временное снижение сложности никак не скажется на надёжности сети. Да, временно возрастёт трафик. Но не более.
Я подумал, что, возможно, ты полагаешь, будто я против временного снижения сложности при увеличении количества переводов. Таки да, я против этого.  Но не из-за уменьшения надёжности сети.

Временное снижение сложности не влияет на надёжность сети.  Оно бесполезно, если не вредно.  Это то же самое, что увеличить размер блока (количество переводов в транзакции/блоке).  Только второе не требует изменения существующих программ/протокола (при условии, что в клиентах отсутствует контроль размера уже подписанного блока) и безопаснее с точки зрения разветвления цепочки блоков.

Илья
newbie
Activity: 25
Merit: 0
Hi!

В любом случае суммарная сложность зависит только от вычислительной мощности сети и никак не от сложности генерации отдельного блока.
Итак, повторю вопрос ещё раз: "Каким образом сложность позволяет защититься от атак?"
От атак позволяет защититься имеющаяся в сети мощность (чем больше в сети мощность, тем сложнее собрать машину в 60-70%% от этой мощности).  Как связана мощность и сложность -- ты сам написал (надеюсь, и понимаешь).

Ещё раз. Я не спорю с тем, что чем больше вычислительная мощность сети, тем круче. Тем она устойчивее к атакам.
Я лишь говорю, что временное снижение сложности никак не скажется на надёжности сети. Да, временно возрастёт трафик. Но не более.
Мы говорим не о временном снижении сложности, а о получении контроля над более, чем 50-ю процентами мощности сети.  При низкой сложности (ага, это означает, что мощность сети маленькая) это сделать проще.

Ну а дальше можно тупо генерировать свои блоки и забивать их на мегабайт переводами между своими кошельками.  По правилам, остальная сеть должна будет их принимать и обрабатывать.  Даже если кто-то "правильный" попытается вставить несколько своих блоков, то атакующий их проигнорирует.  В длительной перспективе его цепочка всё равно будет длиннее.  Оборот в сети прекратится, доверие к биткоину рухнет.

Чтобы этого не произошло, надо стимулировать рост мощности сети биткоин.  Это можно сделать увеличивая налог в пользу майнеров.

Илья
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
В любом случае, так как сложность напрямую зависит от вычислительной мощности, мы можем использовать любое из понятий "сложность" или "мощность", когда говорим о надёжности сети или о майнинге, например.
Ещё раз. Я не спорю с тем, что чем больше вычислительная мощность сети, тем круче. Тем она устойчивее к атакам.
Я лишь говорю, что временное снижение сложности никак не скажется на надёжности сети. Да, временно возрастёт трафик. Но не более.
sr. member
Activity: 462
Merit: 250
В любом случае суммарная сложность зависит только от вычислительной мощности сети и никак не от сложности генерации отдельного блока.
В моём сообщении, "сложностью" я называю 2 чуть-чуть разных понятия.
  • Текущая сложность - это некая планка, которая определяет, каким должен быть результат хеширования, чтобы новый блок был признан системой.
  • Собственно сам результат хеширования. Чем он лучше, тем сложнее в среднем получить такой результат, хотя всё зависит от удачи. Конкретный результат всегда лучше минимально требуемого.
Система автоматически меняет сложность задачи в зависимости от вычислительной мощности сети, чтобы поддерживать примерно одинаковую частоту генерации блоков. Чем выше текущая сложность задачи, тем лучше будет средний результат хеширования, так как все новые блоки должны соответствовать установленной планке.

В любом случае, так как сложность напрямую зависит от вычислительной мощности, мы можем использовать любое из понятий "сложность" или "мощность", когда говорим о надёжности сети или о майнинге, например.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
sr. member
Activity: 462
Merit: 250
Каким образом сложность (по сути, случайный перебор кучи вариантов в поисках того, хеш которого удовлетворяет неким условиям) позволяет защититься от атак и повышает надёжность системы в целом?
Как происходит транзакция? Рассмотрим упрощённый вариант. Отправитель передаёт в сеть пакет информации, содержащий:
  • один из адресов (адрес = открытый ключ) отправителя;
  • адрес получателя;
  • количество монет;
  • какую-то другую информацию;
  • электронную подпись пакета, полученную с помощью соответствующего секретного ключа отправителя.
Узлы системы проверяют транзакцию с помощью истории и распространяют её по сети. После завершения транзакции, все монеты списываются с указанного адреса отправителя и получатель получает право распоряжаться ими. Подвох здесь заключается в том, что нечестный отправитель может отправить монеты с того же адреса ещё раз, уже на другой адрес. В итоге, система может признать только одну из этих транзакций. Решение о закреплении транзакций в истории принимают майнеры. Чтобы доказать своё право на запись блока в историю (и получение премии), майнеры решают какую-то бесполезную задачу. Другие узлы признают блоки на основе предполагаемой сложности решённой задачи. Если появятся несколько конкурирующих блоков (хвостов цепочки), то истинным будет признан тот хвост, суммарная "сложность" блоков в котором будет наибольшей. После добавления блока в историю, последующие блоки будут вычисляться исходя из него, и чем больше блоков будет добавлено, тем сложнее надо будет решить задачу, чтобы сгенерировать другой, альтернативный хвост. Таким образом, не имея достаточной вычислительной мощности, не получится вертеть историей по своему желанию. А вот если такие мощности есть в наличии, то можно попробовать смухлевать.
  • Создаём свою сеть майнеров.
  • Изолируем её от общей сети.
  • В общую сеть передаём транзакцию на много BTC какому-нибудь трейдеру, например.
  • В свою сеть передаём такую же транзакцию, но уже на какой-то свой адрес.
  • Ждём подтверждение транзакции трейдером и получаем от него то, что нам полагается.
  • Объединяем нашу сеть с общей сетью. Если в нашей сети суммарная "сложность" новых блоков превысит сложность новых блоков в общей сети, то наш хвост будет признан истинным, и все транзакции, прошедшие в общей сети, будут отменены. (Отменённые транзакции могут быть автоматически восстановлены, кроме нашей "фальшивой" транзакции.)
  • Трейдеры SOSNOOLEY.
  • ...
  • PROFIT!
Так как монеты при этом остаются у мошенника, он может проделать всё это несколько раз. И это - довольно простая схема. Я слышал, что есть варианты атак, требующих меньший процент вычислительной мощности всей сети.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Приветствую, yurock!

Поборы в Bitcoin всегда будут небольшими по сравнению с теми, которые мы сейчас привыкли платить, используя другие системы.

Лучше сказать налоги, привычнее.  И эти налоги будут заметными.

Основное назначение этих налогов будет не повышение приоритета транзакции (что тоже хорошо), а обеспечение надёжности/защищённости сети.  Чем больше вознаграждение за найденый блок (который складывается в том числе и из налога), тем большая сложность генерации блока.

При текущей сложности генерации блока такой корпорации как Федеральная Резервная Система не составит большого труда создать/аккумулировать вычислительную мощь в 60-80%% от мощности сети Биткоин (стоит указать, что компьютеры в топ500 -- это компьютеры общего назначения; собрать специализированую систему проще: не все видеокарты, которые выпускает AMD, занимаются майнингом, есть проект майнера на FPGA).  При наличии угрозы со стороны Биткоин этой корпорации, вычислительна мощность будет собрана и сеть атакована.  Чтобы защититься от этого -- надо привлекать майнеров, т.е. поднимать налог.

Илья
Ещё раз. Только помедленнее, чтобы до меня тоже дошло.
Каким образом сложность (по сути, случайный перебор кучи вариантов в поисках того, хеш которого удовлетворяет неким условиям) позволяет защититься от атак и повышает надёжность системы в целом?

Вот есть дядя Сорос (Рокфеллер, Ротшильд, Морган - подставь по вкусу любую еврейскую фамилию) или кто-то ещё из ФРС-ного закулисья решил, что биткойн представляет для него жуткую угрозу и собрался атаковать его.
Затарился он дорогущим железом, которое считает гига(тера?)хеши.
Что дальше? Каковы его действия?
Только побольше конкретики. Без общих слов.
В чём будет заключаться его атака? Каким образом, имея даже 80% текущей вычислительной мощности сети, он угробит (скомпрометирует) систему?
Тут lzsaver пугал нон-стоп-форкингом, но насколько он страшен и реален?
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Хорошо. Но когда до тебя не дойдет перевод - не удивляйся.
Не нужно мыслить так однобоко. Всегда существует как минимум два альтернативных способа решения проблемы.
Да, сейчас хранение полной истории необходимо, чтобы клиент, который был в оффлайне, мог узнать о свершившихся транзакциях.
Но кто сказал что это - единственное решение?
legendary
Activity: 1120
Merit: 1069
После перехода к следующей стадии развития bitcoin (нормальная торговля) будут активно появляться посредники для микротранзакций, это даже не вопрос, будут, для начале на базе уже имеющихся бирж, потом, в сочетании с пулами майнинга (можно внести в код bitcoind на серверах майнинга, чтобы более приоритетно обрабатывали транзакции, идущие от и к такой бирже микротранзакций, (таким образом транзакции между адресами можно по времени сократить до 10-20 минут, а внутри биржи естественно без задержек).
newbie
Activity: 25
Merit: 0
Ещё не предлагали хранить историю распределённо?
Каждая транзакция и каждый блок сверяется с историей, и признаётся только информация, прошедшая проверку.
Клиент может кэшировать проверки.  Большая часть платежей клиента будет происходить в пределах некой группы (при достаточном развитии сети).  Поэтому кэширование будет иметь смысл.

Quote
Теоретически, клиент может хранить локально только часть информации, например, хеш каждого блока. При необходимости, он будет подгружать полные блоки из сети и сверять их хеши с хранящимися локально. Майнерам, пожалуй, удобнее будет хранить всю историю локально - вот они-то и могут стать "серверами" истории. А также те, кому надёжность важнее экономии места. Думаю, в случае успеха Bitcoin, найдётся достаточное количество желающих иметь "полные" узлы.
Это уже задачи распределённой файловой системы: балансировка нагрузки, обеспечение безотказности, равномерная нагрузка и т.п.  Главное, это снижение требований к дисковой памяти одного клиента.

Очень грубо: если сотня клиентов за сутки находится час в он-лайн, то они обеспечат примерно четырех-кратное дублирование.  Делим ещё на два для надёжности и получаем, что каждому из них достаточно хранить только половину информации.  И это всего один час он-лайн в сутки. (Это очень грубо. На самом деле объём в значительной степени будет зависить от требований к доступности.)

Кроме того, информация в это хранилище очень редко записывается (по сравнению с чтением), а значит поддаётся значительной оптимизации в этом направлении.

Илья
sr. member
Activity: 462
Merit: 250
Ещё не предлагали хранить историю распределённо?
Каждая транзакция и каждый блок сверяется с историей, и признаётся только информация, прошедшая проверку. Теоретически, клиент может хранить локально только часть информации, например, хеш каждого блока. При необходимости, он будет подгружать полные блоки из сети и сверять их хеши с хранящимися локально. Майнерам, пожалуй, удобнее будет хранить всю историю локально - вот они-то и могут стать "серверами" истории. А также те, кому надёжность важнее экономии места. Думаю, в случае успеха Bitcoin, найдётся достаточное количество желающих иметь "полные" узлы.
newbie
Activity: 25
Merit: 0
Ещё раз напомню, что ограничение размера блока и ограничение скорости создания блоков было введено прежде всего для ограничения скорости увеличения объёма общей истории транзакций. Следующие предложенные здесь варианты увеличения пропускной способности не решают проблему роста истории:
  • создание дополнительных блоков при необходимости (оригинальная идея);
  • поднятие ограничения на размер блока (моё предложение);
  • уменьшение среднего интервала между блоками ("Bitcoin-2").

Ещё не предлагали хранить историю распределённо?  Сейчас бурными темпами развиваются распределённые файловые системы.  Вот в эту сторону и нужно смотреть.

1000/10000/100000 -кратное резервирование истории всей сетью -- этого вполне должно хватать.  Не нужно будет хранить всю историю на каждом клиенте.

Илья
newbie
Activity: 25
Merit: 0
2) судя по мною понятому, единственный механизм защиты от компрометации - большая коммисияю
Скорее самая маленькая комиссия в мире, к тому же со временем стремящаяся только к уменьшению.
Комиссия не будет уменьшаться.  Скорее наоборот.

Чем меньше комиссия, тем меньше майнеров.  Чем меньше майнеров, тем меньше сложность генерации блока.  Чем меньше сложность генерации блока, тем проще скомпроментировать сеть.  Это надо чётко понимать.

Илья
newbie
Activity: 25
Merit: 0
Приветствую, yurock!

Поборы в Bitcoin всегда будут небольшими по сравнению с теми, которые мы сейчас привыкли платить, используя другие системы.

Лучше сказать налоги, привычнее.  И эти налоги будут заметными.

Основное назначение этих налогов будет не повышение приоритета транзакции (что тоже хорошо), а обеспечение надёжности/защищённости сети.  Чем больше вознаграждение за найденый блок (который складывается в том числе и из налога), тем большая сложность генерации блока.

При текущей сложности генерации блока такой корпорации как Федеральная Резервная Система не составит большого труда создать/аккумулировать вычислительную мощь в 60-80%% от мощности сети Биткоин (стоит указать, что компьютеры в топ500 -- это компьютеры общего назначения; собрать специализированую систему проще: не все видеокарты, которые выпускает AMD, занимаются майнингом, есть проект майнера на FPGA).  При наличии угрозы со стороны Биткоин этой корпорации, вычислительна мощность будет собрана и сеть атакована.  Чтобы защититься от этого -- надо привлекать майнеров, т.е. поднимать налог.

Илья
sr. member
Activity: 462
Merit: 250
если в блоке места ещё дохренищща, то почему клиент уже трясёт с меня бабло за низкоприоритетные  транзакции?
Бесплатные транзакции не приносят майнеру дополнительной прибыли, поэтому он может вообще не включать их в блок. Однако, майнер также почти не несёт и расходов в связи с включением дополнительных транзакций в блок. Решили сделать так: часть места в блоке отводится для бесплатных транзакций, всё остальное - для платных. Вот за это халявное место и происходит конкуренция. Приоритет бесплатных транзакций вычисляется по указанной ранее формуле. Если у транзакции получается низкий приоритет, то она не скоро попадёт в блок. Лечится это добавлением комиссионных.

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

Предлагаю разделить проблему "зависших" транзакций и проблему роста истории.
Проблема конкуренции транзакций за включение в блок растёт из проблемы распределённого хранения истории. Хотите, чтобы все-все транзакции включались в историю? Приготовьтесь хранить лишние гигабайты флуда на каждой инсталляции Bitcoin.
sr. member
Activity: 254
Merit: 250
Лично мне вообще, не нравится идея хранения истории на диске. Мне кажется, с этим нужно что-то делать.

Хорошо. Но когда до тебя не дойдет перевод - не удивляйся.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
Подделать блок не получится в любом случае, т. к. его просто забракуют другие узлы.
Сложность регулирует частоту генерации новых блоков, а вовсе не возможность их подделки.
Я не проверял расчеты checker'а, но если при такой схеме действительно можно сильно снизить
сложность, станет вполне возможна отмена платежей заменой части цепочки на более сильную.

По-моему, полученные биткоины нельзя потратить, пока не было подтверждения транзакции. Если это так, то транзакцию нельзя сразу считать состоявшейся.
В версии 0.3.12 и младше отправка трансакций без подтверждений было поведением по умолчанию.
Разумеется, в дальнейшем блоки должны или подтвердить, или опровергнуть все подобные переводы.

Вы хотите сказать, что кол-во монет у участника считается парсингом всей истории? Ведь каждый адрес имеет свою пару ключей и, следовательно, может подтвердить количество монет на нем.
Именно. В паре ключей не заложена информации о состоянии баланса. Ключи же нужны для приема
и отправки средств. Однако, в теории парсинг всей истории можно заменить на что-то более быстрое.

Не понял, что такое форкинг-нон-стоп? это к вопросу о ветвлении?
Допустим, я отправляю Вам 10 BTC, этот перевод попадает в блок 123. Затем, я отправляю эти же
10 BTC некоторому Васе и используя арендуемые GPU-сервера заново генерирую блок 123 и сразу
за ним блок 124. Моя цепочка будет длиннее официальной, следовательно 10 BTC получит Вася, а
не Вы. При форкинг-нон-стоп мою цепочку так же отменит кто-то другой и так далее. И при таком
режиме будет возможна не только отмена платежа, но и отмена вознаграждения в 50 BTC за блок.

мне кажется биткоину стоит обрастать сервисами а не форкаться. Кому критична безопасность - могут подождать несколько минут, кому критична скорость - могут доверить хранение монеток в каком либо сервисе.
Полностью согласен. Нужно менять не внутреннюю логику, а делать сервисы на основе биткоин.

Сразу же вопрос: если в блоке места ещё дохренищща, то почему клиент уже трясёт с меня бабло за низкоприоритетные  транзакции? Готовят меня к страшному?
Сначала приучили ждать подтверждения, теперь приучат платить комиссию.

Лично мне вообще, не нравится идея хранения истории на диске. Мне кажется, с этим нужно что-то делать.
В любом случае у кого-то история должна храниться, но кому мы доверяем больше чем себе?

Вот этим и надо заниматься! По возможности, уменьшить историю, хранимую внутри клиента. А в идеале - избавиться от неё вовсе.
Задача нетривиальная, но рано или поздно, я уверен, она будет решена. Сейчас и так нормально.

Если комиссия упадёт в 0, а бонус за блок тоже, приблизится к 0, то кто будет блоки вычислять?
Ну, зачем сразу в ноль? 0.0005, 0.000005, etc.
Растет курс биткоина, платить комиссию становится все накладнее, так что комиссия будет снижаться.
Еще я заметил, что появляются новые пулы, что должно привести к конкурентному снижению комиссии.
newbie
Activity: 41
Merit: 0
меня тут не отпускает одна мысль
(возможно я плохо понимаю принцип работы транзакций и комиссий)
а что если каждый пул будет обслуживать только строго определенные комиссии.
скажем один пул обслуживает переводы, у которых комиссия 0.01-0.05
другой от 5 до 10 центов и т.д.
и получится, что если кто-то заходчет задосить с комиссией 0.01 от и будет крутиться в одной группе

если транзакций с 1 центов комиссий больше, то и пулов (в долгосрочной перспективе) станет соразмерно больше.

как-то так
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
С чего бы это. Мне логика подсказывает, что это не так.
Да в момент добывания последнего биткоина у майнеров резко упадут доходы, повысится комиссия итп. Но потом комисиия плавно уйдет в 0. Ибо стоимость биткоина постоянно растет.
Не вижу в этом логики. Каким образом рост стоимости может привести к падению комиссии?
Если комиссия упадёт в 0, а бонус за блок тоже, приблизится к 0, то кто будет блоки вычислять?
newbie
Activity: 56
Merit: 0
Замечу, что повышение комиссионных неизбежно. Это заложено в систему. Когда премия за генерацию блока сойдёт на нет, всем придётся платить поборы.
С чего бы это. Мне логика подсказывает, что это не так.
Да в момент добывания последнего биткоина у майнеров резко упадут доходы, повысится комиссия итп. Но потом комисиия плавно уйдет в 0. Ибо стоимость биткоина постоянно растет.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
sr. member
Activity: 462
Merit: 250
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Возвращаясь к теме.
Микробиткойн или биткойн-2, это конечно же хорошо. Однако, пока речь идёт не о создании новой валюты, а о совершенствовании существующей.
Итак...
Уже сейчас для перевода 1BTC с 40 подтверждениями не хватает приоритета и клиент просит мзду. Мне приходится ждать почти сутки, чтобы наскопить достаточное количество подтверждений.
А теперь, допустим, что биткойн наконец стал настолько популярен, что количество транзакций в единицу времени (трафик транзакций) возрос в десятки или даже в сотни раз.
Трафик будет таким, что перевести деньги без комиссии станет не реально. Мало того, комиссия тоже, не сильно поможет, т. к. комиссия лишь поднимает приоритет данной транзакции, но не увеличивает общую пропускную способность сети. Биткойн организован таким образом, что что рост вычислительной мощности сети не увеличивает её пропускной способности - просто узлы, занимающиеся генерацией блоков, как те солдаты из анекдота, начинают чистить снег не лопатами, а ломами. Т. е. выполняют больше бесполезной работы.
Таким образом, поскольку весь трафик не пролазит через сеть, а пропускная способность сети фактически константа, обязательно будут появляться "зависшие" транзакции, до которых никогда не дойдёт очередь. Причём, это будут уже транзакции с комиссией. Причём их количество начнёт расти лавинообразно. Таким образом, пытаясь дать своим транзакциям хотя бы шанс попасть в блок, люди будут всё время повышать комиссию. Но это приведёт лишь к тому, что всё более дорогие транзакции будут "зависать". Это напоминает ситуацию, когда есть рынок, где тогуют воздухом, но воздуха у продавцов на всех не хватает. Рыночная цена воздуха будет всё время расти, но всё равно, кто-то будет постоянно умирать, т. к. лишнему воздуху взяться просто неоткуда, сколько денег не неси на рынок.

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

Я предложил свой вариант решения, но не услышал ни заинтересованности, ни весомых аргументов против.
Вопрос: мне толкать идею разработчикам, или я что-то не понял и оно нафиг никому не надо?
sr. member
Activity: 462
Merit: 250
главное не привязывать всех к одному единственному сервису - а плодить подобные сервисы
В случае с микротранзакциями даже не потребуется множество систем. Ведь риск относительно небольшой - даже в случае полного уничтожения системы, каждый участник теряет лишь небольшую часть денег (микро же). Кстати, теоретически есть возможность наладить транзакции даже между различными операторами. Например, 2 оператора договариваются о возможности переводить деньги на счёт пользователя другой системы. Такие транзакции также могут проходить мгновенно и с минимальными комиссионными. Сами же операторы должны будут периодически рассчитываться друг с другом обычными биткоинами.
sr. member
Activity: 340
Merit: 252
всё понятно, но а чем плохи системы типа mybitcoin для тех кому критична именно скорость? главное не привязывать всех к одному единственному сервису - а плодить подобные сервисы- и всё пучком - мне кажется биткоину стоит обрастать сервисами а не форкаться. Кому критична безопасность - могут подождать несколько минут, кому критична скорость - могут доверить хранение монеток в каком либо сервисе.
sr. member
Activity: 254
Merit: 250
Идея хорошая, но как придать такой валюте ценность? Ее же будут просто печатать. Вот если бы можно было делать BTC<-> QBTC (чем и занимаются всякие майбиткоины) надежно, то у нее будет шанс. Но я себе это не представляю.

А золото дорогое, по той же самой причине что и биткоины Wink Стоимость биткоинов никак не связана со стоимостью энергии
newbie
Activity: 56
Merit: 0
Я вижу. Биткоины - ограниченный ресурс, а у Вас будет армия печатных станков.
На текущий момент майнеры тоже печатные станки.(А уж правительства уже 4к лет печатные станки). Приведу всеми нами любимый пример с золотом. Золото дорогое не потому, что его ограниченное количество, а потому что его сложно добывать. Сложность в придложенной мною системе тоже нужна(и кстати если бы она существовала, то стоимость обмена BTC/QBTC была бы прямо пропорциональна отношению сложностей).
Кстати электроэнергия де-факто уже неограниченный ресурс.
При генерации блоков каждые
10 секунд, жесткий диск будет заполняться в 60 раз быстрее. Вы же предлагаете
удалять блоки, но как же тогда система посчитает количество монет у каждого из
участников системы?
А вот это я столкнулся с непониманием системы. Вы хотите сказать, что кол-во монет у участника считается парсингом всей истории? Ведь каждый адрес имеет свою пару ключей и, следовательно, может подтвердить количество монет на нем.
И кстати, код офф клиента (https://github.com/bitcoin/bitcoin/raw/master/src/main.cpp ln 958)
        if (!vMissingTx.empty())
        {
            // TODO: optimize this to scan just part of the block chain?
            if (ScanForWalletTransactions(pindexGenesisBlock))
                fRepeat = true;  // Found missing transactions: re-do Reaccept.
        }

Тут есть и территориальные ограничения: 10 минут хватит,
чтоб достигнуть всех уголков Земли и даже Луны, но 10 секунд при современных
роутерах и линиях связи явно будет недостаточно.
Был предложен механизм ветвления. Как правило транзакции совершаются внутри определенной группы продавцов/покупателей. Эти люди будут висеть в одной ветке блоков. У них будут быстрые транзакции. При проведении транзакций с другой веткой блоков будет необходимо подтверждение в обеих ветках(такие операции будут иметь меньший приоритет). Это не будет замедлять локальные(частые) операции, но слегка замедлит дальние(что некритично).
Кроме того, цепочка блоков будет всегда
в режиме форкинг-нон-стоп, что отолкнет майнеров от этой мертвой затеи.
Не понял, что такое форкинг-нон-стоп? это к вопросу о ветвлении?

Теперь в целом.
1) я не призываю всех бросать все и идти делать биткоин-2.
2) Биткоин - стратегическая штука. Ее никто не продает потому что она дорогая(и растет, и будет расти). Именно по этой причине сейчас из 6кк БТС в обращении 250к. И в будущем такая ситуация сохранится.
3)С другой стороны QBTC хранить сбережения в QBTC - глупо(так же как хранить в деньгах). Если вы были очень богатым человеком с 200к долларов 50 лет назад, то сейчас при тех же 200к долларов вы отнюдь не богатый человек.
Итак в предложенной системе QBTC играет роль децентрализованных денег, BTC - ресурса.
Аналогия: QBTC - деньги, BTC - золото. ИРЛ система работает с 1947 года(вроде).

P.S.
Еще раз объясню, почему я тут пишу много букв. Я уверен, что если система QBTC и появится, она будет не такой, какую я ее предлагаю. Более того, вполне вероятно, что изменится именно биткоин. И вы, lzsaver, как человек близкий к команде разработчиков сможете донести полезные идеи(которые возможно есть в моем тексте). Поэтому, если вы не против, я буду продолжать дискуссию.
sr. member
Activity: 462
Merit: 250
А переводы и у Биткоин моментальные.
По-моему, полученные биткоины нельзя потратить, пока не было подтверждения транзакции. Если это так, то транзакцию нельзя сразу считать состоявшейся. Если нет доверия к отправителю, то также нельзя считать неподтверждённую транзакцию завершённой.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
1) большое время подтверждения транзакций, судя по всему
А с чем сравнивать? У других систем нет никаких подтверждений. А переводы и у Биткоин моментальные.

2) судя по мною понятому, единственный механизм защиты от компрометации - большая коммисияю
Скорее самая маленькая комиссия в мире, к тому же со временем стремящаяся только к уменьшению.
sr. member
Activity: 462
Merit: 250
Биткоин-2 на данный момент не нужен. Однако, в различных платёжных системах на базе Bitcoin есть смысл. Внутри систем типа MyBitcoin средства могут переводиться моментально и с минимальной комиссией. Тот же MyBitcoin, например, имеет также API для продавцов. Из децентрализованных систем, что-то вроде Ripple может оказаться полезным. Так что не дёргаемся, пока всё в порядке. Smiley Вот когда наберёмся опыта за несколько лет, тогда и будем изобретать что-то новое.

единственный механизм защиты от компрометации - большая коммисия
Совсем не большая, по сравнению с большинством других платёжных систем. И это - не единственное средство защиты. Да и не только для защиты нужна эта комиссия, как я уже говорил.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
Я вижу. Биткоины - ограниченный ресурс, а у Вас будет армия печатных станков.
Кроме экономических, есть и технические изъяны. При генерации блоков каждые
10 секунд, жесткий диск будет заполняться в 60 раз быстрее. Вы же предлагаете
удалять блоки, но как же тогда система посчитает количество монет у каждого из
участников системы? Тут есть и территориальные ограничения: 10 минут хватит,
чтоб достигнуть всех уголков Земли и даже Луны, но 10 секунд при современных
роутерах и линиях связи явно будет недостаточно. Кроме того, если блоки будут
выпускаться каждые 10 секунд, это породит массовое мошенничество с отменой
платежа и двойной оплатой товаров. Кроме того, цепочка блоков будет всегда
в режиме форкинг-нон-стоп, что отолкнет майнеров от этой мертвой затеи. Undecided
newbie
Activity: 56
Merit: 0
Тут нечего объяснять. Люди не будут покупать это. Ну, только если их заставить.
Не вижу разницы с биткоином, но вам видней.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
Тут нечего объяснять. Люди не будут покупать это. Ну, только если их заставить.
newbie
Activity: 56
Merit: 0
Тут поднималась тема Биткоин-2. По-моему идея не такая плохая.
В чем проблема существующего Биткоина:
1) большое время подтверждения транзакций, судя по всему
2) судя по мною понятому, единственный механизм защиты от компрометации - большая коммисияю
С другой стороны эти "недостатки" создают надежную рассчитаную на большие транзакции систему.

Так давайте сделаем к существующей системе отдельноживущее доплнение: что-нить аля квикЬиткоин
Особенности:
1) Блоки каждые 10 сек (с текущей направленностью на увеличение скорости и включение всех юзверей в децентрализованные сети - все вполне реально)
2) Бесконечная (но возможно замедляющаяся) эмиссия денег. (в этом нет ничего плохого)
3) Возможность удаление всех блоков меньше N-ного после того тот наберет достаточное кол-во подтверждений.
4) механизм снижения времени транзакций (аналогично текущему механизму роста сложности)
5) +возможно ветвление цепочки блоков.(это можно реализовать безопасно, есть мысли)

В общем смысл в чем:
Есть биткоин надежная некромпроментируемая система, рассчитанная на крупные сделки.
Есть qбиткоин, быстрая валюта для которой не так опасна компроментация, не нужны пулы, для малых транзакций.(бесконечная эмиссия обеспечит нулевые ставки комиссии)

P.S. Я не экономист, но разумен. Просьба сильно не пинать, а объяснить где я не прав.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
Вынужден согласиться с checker: теоретически, это может быть угрозой безопасности. Undecided

Более того, если злоумышленики будут специального передавать биткоины от одного
клиента другому в цикле, сложность может быть уменьшена на долгое время. Так что
идея защиты от флуда с помощью комиссии выглядит вполне оправданно. Есть идеи?
sr. member
Activity: 462
Merit: 250
Насколько я знаю, сложность вычислений почти не зависит от размера блоков. На проверку любого существующего блока уходят доли секунды. А вот на создание нового блока уходит в среднем 10 минут работы всех майнеров вместе взятых. После того, как задача будет кем-то решена, на включение в блок n-ного количества транзакций уходят, опять же, доли секунды.
sr. member
Activity: 340
Merit: 252
чем выше сложность блока - тем сложней его подделать, чем ниже сложность-> тем проще (насколько я понимаю)
=> снижение сложности "длинного" блока черевато упрощением " подделки " итого система следующая
допустим в 1 блок помещается n трансакций
создадим n^2 транзакций нам для этого понадобится (n^2)/n=n  блоков
допустим текущая сложность=N
cложность самого последнего в данной цепочке блока будет== N/(2^n)
приложем к текущемму моменту:
текущая сложность 434882.72175 (согласно http://www.alloscomp.com/bitcoin/calculator.php )(положим N=этому числу)
судя по тому что blockexplorer считает что это - блок с самым большим кол-вом транзакций 143 .. для верности возьмем 300 ( сколько всего максимум - я так и не нашел - хотя , признаюсь - искал плохо )
получаем 300 ^ 2=90000 трансакций ( 300 блоков ) ( в общем не много ) сложность при этом упадет в 2,037035976×10⁹⁰ раз... сколько это точно посчитать я не решусь ( калькулятор отказывается.. ) но очевидно что любой компьютер сможет ПАЧКАМИ накидать блоков по такому таргету ...
с одной стороны - это будет действительно быстро с другой - этот элемент цепочки будет "самым слабым звеном ".... => появится возможность скомпрометировать всю систему...
но может быть я ошибаюсь..
sr. member
Activity: 462
Merit: 250
Приоритет транзакции зависит от количества монет, их "возраста" - числа подтверждений входящих транзакций и размера транзакции в байтах.
Code:
int nConf = txindex.GetDepthInMainChain();
dPriority += (double)nValueIn * nConf;
}
// Priority is sum(valuein * age) / txsize
dPriority /= ::GetSerializeSize(tx, SER_NETWORK);
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
sr. member
Activity: 462
Merit: 250
для того, чтобы появились подтверждения, должен появиться блок, содержащий транзакцию.
Да, как только транзакция попадает в блок, она считается подтверждённой, и получатель может переводить монеты дальше, если хочет. "Твёрдость" полученных монет равна 1. Каждый последующий блок в цепочке также подтверждает все предыдущие транзакции, и "твёрдость" монет растёт. Вот это чисто подтверждений, то есть, число новых блоков, начиная с того блока, в котором содержится транзакция, учитывается при приоритизации.

А старые системы уже трещат по швам? У кого-то есть причины уходить с них?
Весь мир трещит по швам, недостатки есть у любой системы. Однако, глобальной паники в связи с этим не наблюдается.

Я же говорил о ситуации, когда из-за нежелания кого-то латать дыры безопасности
Желание латать дыры есть, в этом заинтересованы многие люди, и работы в этом направлении ведутся постоянно. Код совершенствуется, некоторые параметры меняются, обсуждаются проблемы и идеи по улучшению системы.

То-то и оно, что заложены. Но не все.
В устройстве системы присутствует компромисс между гибкостью и стабильностью. Оба эти качества необходимы в какой-то мере, поэтому, нельзя перегибать палку в одну какую-то сторону. Нельзя просто оставить всё, как есть и ждать, что это будет работать вечно. Например, сами принципы криптографии предполагают теоретическую возможность взлома. То, что считается сейчас надёжным, может стать негодным через 10 лет, например. С другой стороны, нельзя что-то изменить в системе в одностороннем порядке. Любое изменение должно быть принято большинством пользователей (пропорционально их активности и вычислительным мощностям). И чем серьёзнее изменение, тем труднее его принятие. Здесь централизованные системы имеют преимущество над полностью распределёнными; первые можно изменять централизованно, вторые - нет.

И ответа окромя "обязательные комиссии спасут Отца Русской Демократии" не слышно. Для меня же данный метод борьбы выглядит весьма сомнительным и я уже писал, почему.
Необходимость комиссионных сборов была изначально заложена в устройство системы. Сейчас, когда за блок даётся 50 BTC, мы, чаще всего, обходимся без комиссий. Пока что. В дальнейшем, мы будем их платить, и никуда от этого не денемся.

у клиентов и у майнеров будут несколько разные цепочки блоков- у майнеров -полный набор - а у клиентов " достаточный" для мониторинга всех средств - полагаю,что развитие пойдет дальше, а сделать какой нибудь " костыль" для поддержки " устаревших" блоков в общем и целом - не проблема...
Насколько я понимаю, такая идея рассматривалась на этапе создания системы. Изначально она не была реализована из-за отсутствия необходимости, когда вся история занимала немного места.
sr. member
Activity: 340
Merit: 252
вообще, в связи с тем, что витали мысли о том что у клиентов и у майнеров будут несколько разные цепочки блоков- у майнеров -полный набор - а у клиентов " достаточный" для мониторинга всех средств - полагаю,что развитие пойдет дальше, а сделать какой нибудь " костыль" для поддержки " устаревших" блоков в общем и целом - не проблема... в общем стопориться развитие системы скорее всего не станет.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Лично я не вижу серьезной проблемы и каких-либо причин для появления Биткоин-2.
Накамото предусмотрел многие варианты развития, сейчас в целом все идет по плану.
Согласен. Но вопросом, как бороться с DDoS-атаками задаются уже многие. И ответа окромя "обязательные комиссии спасут Отца Русской Демократии" не слышно. Для меня же данный метод борьбы выглядит весьма сомнительным и я уже писал, почему.

Quote
P.S. Я пока что еще не в этом списке: ссылка. Smiley
Ну, я подозревал, что Вы всё еще не в группе разработчиков. Однако, мне показалось, что Вы тесно общаетесь с ними, в связи с чем я решил, что по Вашему мнению можно судить о настроениях, царящих в группе.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
Лично я не вижу серьезной проблемы и каких-либо причин для появления Биткоин-2.
Накамото предусмотрел многие варианты развития, сейчас в целом все идет по плану.

P.S. Я пока что еще не в этом списке: ссылка. Smiley
sr. member
Activity: 462
Merit: 250
Вот как раз о таких механизмах я и не слышал. Если они есть (и реально эффективны) - просветите меня.
Монеты, подтверждённые многими блоками имеют приоритет над монетами, недавно участвовавшими в транзакции. Если непрерывно гонять монетки туда-сюда, то у таких транзакций приоритет будет ниже. Если такие транзакции зависнут в сети, со временем их приоритет повысится из-за того, что число подтверждений растёт с каждым новым блоком. Просто придётся подождать.

Чем больше комиссия - тем меньше стоит биткойн.
Если от стольника отнять копейку, то это, в принципе, не изменит ничего. Поборы в Bitcoin всегда будут небольшими по сравнению с теми, которые мы сейчас привыкли платить, используя другие системы.

Как только система начнёт трещать по швам и запустят новую систему, люди начнут в спешке избавляться от биткойнов. К чему это приведёт предугадать несложно. Тысячи (миллионы?) людей в одночасье лишатся своих денег.
Вот, запустили Bitcoin. И что, все кинулись избавляться от средств в других платёжных системах? Не-а, нифига подобного. Новая система сначала должна будет доказать, что она лучше, а на это уйдёт долгое время. И не факт, что лучшая система будет изобретена в ближайшие пару лет, например. За это время Bitcoin может окрепнуть, как валюта, так что процесс вытеснения одной системы другой будет, скорее, длительным и, в основном, безболезненным. Также, в Bitcoin заложены механизмы саморегулирования, так что он вряд ли затрещит по швам, даже если он окажется в чём-то неэффективным.

Масштабируемость и расширяемость должна быть заложена в основу любой системы, если она только не делается для конкретного заказчика под конкретный проект и заказчик не оговорил данного условия. Без возможности развития любая система обречена.
Какие-то возможности для развития есть. Время покажет, в какую сторону надо будет двигаться.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Вместо генерации дополнительных блоков можно просто увеличить максимально допустимый размер блока.
Согласен. Увеличение размера блока практически равносильно снижению сложности. Может быть, в некотором отношении даже лучше.
Главная идея именно в том, что это должно быть
  • Временным
  • Кумулятивным. Т. е. если проблема не решена, должно усугубляться.
Почему? Да, можно было бы просто увеличить размер блока или вообще, снять ограничение на его размер. Но в первом случае ничего бы принципиально не изменилось, проблема бы просто отодвинулась на чуть более поздний срок. А во втором, комиссии просто-напросто потеряли бы смысл.
В данном же случае система сможет адаптироваться к росту трафика и устойчивость к атакам, но при этом смысл в комиссиях остаётся. Как ни крути, чем больше комиссия, тем больше шансы, что транзакция попадёт в первый (или один из первых) блоков и соответственно, раньше получит подтверждения. Но при этом есть гарантия и того, что даже транзакция без комиссии, даже при атаке системы левыми транзакциями всё равно, не зависнет и рано или поздно попадёт в блок. Важным является также и то, что как только локальная проблема решена (трафик рассосался), система возвращается к в исходное состояние. Это гарантирует, что как только система адаптировалась к возросшему трафику, комиссии опять же, не потеряют свой смысл.

Quote
В любом случае, каждый "полный" узел сети должен будет хранить всю историю транзакций с самого начала работы системы. Проблема в том, что в случае широкого распространения Bitcoin, транзакций будет реально много, и история будет разрастаться быстрыми темпами. Пути решения этой проблемы обсуждаются.
Это - отдельная проблема, над которой я пока не думал. Ею пусть пока другие занимаются.  Grin

Quote
Конечно, намеренный флуд системы может значительно увеличить число транзакций в единицу времени. Против этого предусмотрены механизмы, основанные не только на увеличении размеров комиссии. Будем надеяться, что майнеры будут следовать этим правилам и поддерживать систему в работоспособном состоянии - ведь это выгодно для всех, в том числе и для самих майнеров.
Вот как раз о таких механизмах я и не слышал. Если они есть (и реально эффективны) - просветите меня. Именно из-за того, что я пока ничего не нашёл про такие механизмы, я и предложил свой.

Quote
Комиссию рано или поздно придётся платить всем, так как генерация монет со временем сойдёт на нет. На данном этапе, слово "бесплатный" играет роль в распространении Bitcoin, но не стоит переоценивать значение одного слова. Ведь, например, комиссия в 0,001 BTC при переводе 100 BTC - это совсем неплохо.
Гм! Чем больше комиссия - тем меньше стоит биткойн. Чем меньше стоит биткойн, тем меньше ценность комиссии. Чем меньше ценность комиссии, тем дешевле злоумышленнику обойдётся атака. Замкнутый круг. Уязвимость к подобным атакам комиссиями не решить! Нужны более действенные механизмы.

Quote
У Bitcoin есть много недостатков. Как говорится, первый блин - всегда комом. Но, пока что, этот ком - вполне годный к употреблению. Когда-нибудь изобретут систему ещё лучше, чем Bitcoin. А сейчас мы накапливаем ценный опыт для денежных систем будущего.
Ну, нифига себе! Если уже сейчас, на этапе становления системы, мы признаём её ущербность и готовы отказаться от неё в будущем, рассматривая лишь как пробу пера... это путь в никуда. Как только система начнёт трещать по швам и запустят новую систему, люди начнут в спешке избавляться от биткойнов. К чему это приведёт предугадать несложно. Тысячи (миллионы?) людей в одночасье лишатся своих денег. Многие ли из них захотят после этого ввязываться в новую авантюру, если она также, как и предыдущая, будет иметь ограниченный жизненный цикл и также будет слита, как только обнаруженные в ней недостатки станут критическими?
Масштабируемость и расширяемость должна быть заложена в основу любой системы, если она только не делается для конкретного заказчика под конкретный проект и заказчик не оговорил данного условия. Без возможности развития любая система обречена.
sr. member
Activity: 462
Merit: 250
Вместо генерации дополнительных блоков можно просто увеличить максимально допустимый размер блока. В любом случае, каждый "полный" узел сети должен будет хранить всю историю транзакций с самого начала работы системы. Проблема в том, что в случае широкого распространения Bitcoin, транзакций будет реально много, и история будет разрастаться быстрыми темпами. Пути решения этой проблемы обсуждаются.

Изначальная идея была в том, что не каждый клиент должен быть "полным". Для проверки транзакций и блоков нужна информация из истории, и эта информация может подгружаться из сети по мере необходимости. И, хотя, подгружаемую информацию тоже нужно будет проверять, для этого всё же не придётся хранить всю историю локально.

Когда блоки будут заполняться транзакциями до максимума, возникнет конкуренция между транзакциями за включение в блок, что приведёт к увеличению размеров комиссионных. Таким образом, мелкие транзакции станут невыгодными, и рост количества транзакций будет сдерживаться. Это - тоже один из вариантов решения проблемы. Для микротранзакций можно пользоваться централизованными системами расчётов, они справляются с этой задачей лучше чем распределённые системы. Пользователь может хранить 1000 BTC у себя в кошельке и 10 BTC на счету в централизованной платёжной системе. Недостатки централизованных систем мало кого будут беспокоить при операциях с маленькими суммами.

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

Комиссию рано или поздно придётся платить всем, так как генерация монет со временем сойдёт на нет. На данном этапе, слово "бесплатный" играет роль в распространении Bitcoin, но не стоит переоценивать значение одного слова. Ведь, например, комиссия в 0,001 BTC при переводе 100 BTC - это совсем неплохо.

У Bitcoin есть много недостатков. Как говорится, первый блин - всегда комом. Но, пока что, этот ком - вполне годный к употреблению. Когда-нибудь изобретут систему ещё лучше, чем Bitcoin. А сейчас мы накапливаем ценный опыт для денежных систем будущего.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
sr. member
Activity: 294
Merit: 250
я не ламер, я java-прогаммер :-)
Если команда сейчас займёт такую позицию, то на смену биткойну придёт какой-нибудь "Биткойн-2", "Байткойн" или что-то вроде. Где изучат текущие недостатки биткойна и исправят их. И пользователи побегут туда, меняя стремительно обесценивающиеся монеты на новую валюту. Оно вам надо? А пользователям нужен весь этот геморрой?

У меня смутное ощущение, что команда разработчиков русскоязычный форум мало читает  Smiley

Если ты действительно хочешь донести какую-то идею именно до команды разработчиков - то, возможно, имеет смысл в англоязычной части форума побеседовать с Гэвином?

Может быть, ты это уже сделал? Тогда можно сюда ссылку? (там явно беседа будет более продуктивной - если Гэвин ответит, конечно  Smiley )
sr. member
Activity: 254
Merit: 250
А сколько можно включить транзакций\какую сумму в 1 блок?
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
К тому же изменение логики приведет к прекращению обратной совместимости.
На данный момент версия 0.3.21 совместима с 0.1.3, сам лично проводил тесты.

Люди покупают биткоины не потому, что логика улучшается, наоборот - потому,
что логика никогда не меняется. Без этого просто нет ощущения надежности. Roll Eyes
Может быть мои взгляды на биткойн радикально отличаются от взглядов команды разработчиков/основателей, но мне кажется, что биткойн сейчас не на том этапе, когда нужно заботиться об обратной совместимости.
На мой взгляд, сейчас как раз идёт этап обкатки, когда нужно изучать работут системы в полевых условиях и совершенствовать её. Сейчас, когда количество пользователей сравнительно невелико, количество мест, где принимают биткойн - тоже, основной вид деятельности - биржевые спекуляции, самое время вести эту работу. Потом будет поздно. Если это "потом" вообще, когда-нибудь наступит. Если существующие дыры не позволят зарубить систему на корню.
Ведь Сатоси, когда писал алгоритм не мог предусмотреть всего. Вряд ли он тогда предвидел такой рост вычислительной мощности, связанный с использованием GPU для вычислений. Для того и нужны полевые испытания, чтобы посмотреть систему в работе и довести её до ума, а не упереться в "первоначальный вариант алгоритма - это святое" и молча ждать конца надеясь на что-то.
Стоять на месте нельзя. Там, где нет развития, идёт деградация. Если команда сейчас займёт такую позицию, то на смену биткойну придёт какой-нибудь "Биткойн-2", "Байткойн" или что-то вроде. Где изучат текущие недостатки биткойна и исправят их. И пользователи побегут туда, меняя стремительно обесценивающиеся монеты на новую валюту. Оно вам надо? А пользователям нужен весь этот геморрой?
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
А чем обязательная комиссия 0.01 не способ борьбы? Дорогой ддос получится.
Это - способ борьбы с пользователями и не более.
DDoS'ер может иметь своей целью как раз сделать все транзакции платными, чтобы резко уменьшить количество пользователей и тем самым похоронить валюту, которая и так ещё совсем не окрепла. Не секрет, что рост пользователей связан ещё и с тем, что какая-либо комиссия не обязательна.
На данный момент это способствует и росту числа пользователей и росту количества мест, где принимают биткойны. Т. е. развитию биткойна как валюты в целом. С таким подходом к "борьбе" всё это сведётся на нет. И валюта будет легко похоронена безо всяких лишних телодвижений.
1. Забиваем систему бесплатными транзакциями.
2. Пользователи видят, что бесплатные транзакции зависли.
3. Часть наиболее упёртых стали платить комиссию с каждой транзакции.
4. Большинство плюнули, продали свои биткойны и пошли пить чай.
LZ
legendary
Activity: 1722
Merit: 1072
P2P Cryptocurrency
К тому же изменение логики приведет к прекращению обратной совместимости.
На данный момент версия 0.3.21 совместима с 0.1.3, сам лично проводил тесты.

Люди покупают биткоины не потому, что логика улучшается, наоборот - потому,
что логика никогда не меняется. Без этого просто нет ощущения надежности. Roll Eyes
sr. member
Activity: 254
Merit: 250
А чем обязательная комиссия 0.01 не способ борьбы? Дорогой ддос получится.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
но, по моему, в твоей схеме, все равно найдут изъян те же ДДОСеры (ибо слабые стороны есть у всего) и будут ее эксплуатировать.
Просто с первого взгляда можно и не заметить изъян.
Эх! Всё-таки мне хотелось бы услышать побольше конкретики.
"В любой идее есть изъян" - это конечно же справедливо. Но это - философия. В данном случае она не интересна. Ведь идея не создать "идеальную систему" (к этому нужно стремиться, но это невозможно в принципе), а улучшить то, что уже есть. Так что, вопрос не в том, найдут ли злые DDoS'еры дырки в системе, а в том, станет ли система работать лучше после данного нововведения?
newbie
Activity: 41
Merit: 0
что-то я запутался с этими переводами и подтверждением транзакций.
Пора нарисовать визуальную схему-график, на которой будет отражен весь процесс подтверждения блоков (переводов).

но, по моему, в твоей схеме, все равно найдут изъян те же ДДОСеры (ибо слабые стороны есть у всего) и будут ее эксплуатировать.
Просто с первого взгляда можно и не заметить изъян.
member
Activity: 112
Merit: 10
潔くカッコ良く生きて行こう!
Прочитал тему http://forum.bitcoin.org/index.php?topic=3512.0 и пришёл к выводу, что это действительно, является серьёзной проблемой. В самом деле, если кто-то начнёт заваливать систему тупыми транзакциями, забивая ими блоки и заставляя "хорошие" транзакции висеть в очереди, то в системе не предусмотрено механизма для защиты от этого. Мало того, с ростом сети будет расти и количество транзакций в единицу времени. Однако, в систему заложен механизм саморегулирования, "благодаря" которому с ростом вычислительной мощности сети её "пропускная способность" остаётся неизменной: размер блока ограничен, а количество генерируемых блоков в единицу времени остаётся неизменным. Фактически, все ресурсы системы уходят на пустую бессмысленную работу. Таким образом, может настать момент, когда сеть перестанет справляться с потоком транзакций и стараясь ускорить прохождение (подтверждение) своей транзакции, пользователям придётся тратить огромные деньги в качестве комиссий.
Мм-да-сс... Не самая лучшая перспектива для "свободной" валюты.

Я предлагаю механизм для борьбы с "трафиком транзакций". Его можно назвать "Временное снижение сложности" или "Блоки с продолжением".
Идея такая: если при генерации очередного блока выясняется, что остаются лишние транзакции, которые существовали ещё до начала генерации этого блока, но так и "не поместились" в нём, в блок добавляется специальная запись о том, что данный блок будет иметь продолжение. Данная запись будет означать, что на время генерации следующего блока, сложность будет снижена в 2 раза. Встретив такую запись, клиенты начнут генерировать блок-продолжение, для которого сложность будет считаться сниженной в 2 раза. Соответственно, и сгенерирован он будет примерно в 2 раза быстрее, чем остальные блоки. Если и при генерации данного блока остались "транзакции за бортом", то в конце данного блока опять же, будет пометка о том, что у него есть продолжение. И для следующего блока сложность снизится ещё в 2 раза. Естественно, бонус за такие блоки тоже, будет начисляться во столько раз меньше, во сколько раз была занижена сложность при генерации блока, чтобы нельзя было спамить систему левыми транзакциями, ускоряя тем самым эмиссию биткойнов. Как только будет сгенерирован блок, в который вошли все транзакции, он уже не будет содержать пометку о продолжении. Это и будет сигналом о том, что сложность генерации возвращается к исходному значению.

При использовании данного механизма, злоумышленнику удастся лишь временно (на время атаки) немного увеличить частоту генерации блоков. И не более. Это сделает атаки бессмысленными, а сеть более надёжной и быстрой.
Jump to: