Bitcoin Forum
May 08, 2024, 10:29:24 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 [4]  All
  Print  
Author Topic: Временное снижение сложности или блоки с  (Read 15469 times)
iLya
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
June 10, 2011, 06:57:40 AM
 #61

Hi!

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

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

Илья
1715164164
Hero Member
*
Offline Offline

Posts: 1715164164

View Profile Personal Message (Offline)

Ignore
1715164164
Reply with quote  #2

1715164164
Report to moderator
1715164164
Hero Member
*
Offline Offline

Posts: 1715164164

View Profile Personal Message (Offline)

Ignore
1715164164
Reply with quote  #2

1715164164
Report to moderator
1715164164
Hero Member
*
Offline Offline

Posts: 1715164164

View Profile Personal Message (Offline)

Ignore
1715164164
Reply with quote  #2

1715164164
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
June 10, 2011, 07:18:10 AM
 #62

надо стимулировать рост мощности сети биткоин.  Это можно сделать увеличивая налог в пользу майнеров.
На сегодня генерация монет намного превышает комиссионные, поэтому последние практически не играют роли в стимуляции майнеров. Однако, со временем, как-то надо будет увеличивать комиссию. Где-то через годик с лишним планируется снижение генерации до 25 монет в блоке.
iLya
Newbie
*
Offline Offline

Activity: 25
Merit: 0


View Profile
June 10, 2011, 08:33:45 AM
 #63

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

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

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

Илья
Yurock
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


View Profile
June 10, 2011, 05:41:28 PM
 #64

На данный момент, сфера генерации блоков намного более развита, чем нормальный оборот биткоинов. Я считаю, что вместо того, чтобы стимулировать майнеров, надо уделять больше внимания внедрению Bitcoin, как платёжного средства. Ещё, как минимум, целый год проблем с майнингом быть не должно. Если за это время система получит достаточное распространение, то будет спрос на генерацию, а спрос рождает предложение. Да и потом ещё года 4 будет премия в 25 BTC за блок, а это также немало.
Yagiza (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


潔くカッコ良く生きて行こう!


View Profile
June 10, 2011, 06:45:17 PM
 #65

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

Activity: 25
Merit: 0


View Profile
June 11, 2011, 03:25:16 AM
 #66

Hi!

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

Илья
Yagiza (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


潔くカッコ良く生きて行こう!


View Profile
June 11, 2011, 04:58:30 AM
 #67

Увеличение размера блока -- это не плохо; это неизбежно.  С ростом числа переводов/транзакций.  Ну и к тому времени, когда это станет необходимостью, полагаю, интернет станет быстрее и память дешевле.
Ok. Тогда вопрос исчерпан.
sb-tr
Newbie
*
Offline Offline

Activity: 6
Merit: 0


View Profile
June 17, 2011, 01:17:55 PM
 #68

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

Но зачем изобретать велосипед? Действительно временное снижение сложности, предложенное в этом топике, полностью эквивалентно увеличению (или снятию) ограничения на максимальный размер блока (в коде это изменение одного 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 она имеет шанс не попасть в блок, если пользователями было создано много более приоритетных транзакций, даже если они не заплатили за них комиссию (или заплатили меньше).
Сейчас никаких порогов нет, поэтому указывать комиссии больше минимальной бессмыслено.

С моей точки зрения система достаточно грамотная, она и от спама защищает и майнерам позволит в будущем жить за счет комиссий и у пользователей есть выбор. Только вот простой и понятной её не назовешь.
Yagiza (OP)
Member
**
Offline Offline

Activity: 112
Merit: 10


潔くカッコ良く生きて行こう!


View Profile
June 21, 2011, 02:45:41 AM
 #69

2. Для каждой транзакции рассчитывается приоритет:
sum(valuein * age) / txsize
   valuein - количество монет на выходе входной транзакции,
   age - количество подтверждений входной транзакции,
   txsize - размер новой транзакции.
Таким образом чем больше монет мы переводим и чем большим количеством блоков они подтверждены и чем меньше размер транзакции, тем выше приоритет. Из этой формулы также следует что с каждым новым блоком созданным в системе, приоритет старых невлезших в предыдущий блок транзакций будет увеличиваться и они рано или поздно попадут в блок.
5. Транзакции включаются в блок в порядке приоритета.
6. Отдельные майнеры и пулы могут установить пороговую комиссию и транзакции с меньшей комиссией не включать в свои блоки. Судя по исходникам это еще не реализовано, но пока и генерируемых монет всем хватает.

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

Рассмотрим пример. Есть 3 пула: A - комиссия 0.05; B - комиссия 0.01; C - комиссия 0. Допустим что мощность пулов примерно равна и других майнеров в сети нет. Тогда заплатив комиссию 0.05 наша транзакция попадет в следующий блок с вероятностью 100%, заплатив комиссию 0.01 - с вероятностью 66% и если мы не заплатили комиссию вообще, то с вероятностью 33%. Это без учета размеров блока и приоритетов. При этом комиссия не влияет на приоритет, т.е. если наша транзакция использует мало свежих биткоинов, то даже с комиссией 0.05 она имеет шанс не попасть в блок, если пользователями было создано много более приоритетных транзакций, даже если они не заплатили за них комиссию (или заплатили меньше).
Сейчас никаких порогов нет, поэтому указывать комиссии больше минимальной бессмыслено.
Я не пойму одного. Если есть понятие приоритета, то нафига нужен весь этот мудрёжь с порогами? Почему бы тупо не включить комиссию в формула рассчёта приоритета? И путь тогда все пулы/майнеры ведут себя одинаково.
Pages: « 1 2 3 [4]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!