Bitcoin Forum
April 25, 2024, 04:15:22 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 4941 times)
Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 05, 2017, 05:23:53 PM
 #41

А я предполагаю, что количество orphan блоков возрастёт кратно. И чем больше будет задержка, тем больше будет orphan блоков. Кто из нас прав?
Вы не поняли. Майнеры не просто так задерживают свои транзакции. Они их перед этим транслируют в сеть. Поэтому, чем больше задержка, тем дольше полные ноды эту транзакцию продержат в своем mempool. А если они ее продержат 15 секунд, то за спам уже не примут.

И спросите у владельцев пулов, каким образом они распределяют вознаграждение майнерам.
Это к чему?

Вы не сможете с этой транзакции взять комиссию потому, что именно в этой транзакции все собранные с других транзакций комиссии
В чем проблема майнерам уменьшить себе вознаграждение на величину требуемой комиссии?
1714018522
Hero Member
*
Offline Offline

Posts: 1714018522

View Profile Personal Message (Offline)

Ignore
1714018522
Reply with quote  #2

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

Posts: 1714018522

View Profile Personal Message (Offline)

Ignore
1714018522
Reply with quote  #2

1714018522
Report to moderator
1714018522
Hero Member
*
Offline Offline

Posts: 1714018522

View Profile Personal Message (Offline)

Ignore
1714018522
Reply with quote  #2

1714018522
Report to moderator
1714018522
Hero Member
*
Offline Offline

Posts: 1714018522

View Profile Personal Message (Offline)

Ignore
1714018522
Reply with quote  #2

1714018522
Report to moderator
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 05, 2017, 06:02:54 PM
 #42

А я предполагаю, что количество orphan блоков возрастёт кратно. И чем больше будет задержка, тем больше будет orphan блоков. Кто из нас прав?
Вы не поняли. Майнеры не просто так задерживают свои транзакции. Они их перед этим транслируют в сеть. Поэтому, чем больше задержка, тем дольше полные ноды эту транзакцию продержат в своем mempool. А если они ее продержат 15 секунд, то за спам уже не примут.

И спросите у владельцев пулов, каким образом они распределяют вознаграждение майнерам.
Это к чему?
Нет, а вы идите и спросите - https://www.youtube.com/watch?v=tvGBWNbg5uM
Ко всему остальному владельцы пулов и так имеют свой процент с майнеров, а вы им ещё не хило так хотите отсыпать.



Вы не сможете с этой транзакции взять комиссию потому, что именно в этой транзакции все собранные с других транзакций комиссии
В чем проблема майнерам уменьшить себе вознаграждение на величину требуемой комиссии?
Да не в чём, собственно. Grin Разве что эта цифра 21000000 со временем уменьшится до 0.

Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 05, 2017, 06:29:13 PM
Last edit: April 05, 2017, 06:42:24 PM by Schnibble
 #43

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

В чем проблема майнерам уменьшить себе вознаграждение на величину требуемой комиссии?
Да не в чём, собственно. Grin Разве что эта цифра 21000000 со временем уменьшится до 0.
Во-первых, для этого всем пулам придется добавлять в блоки собственных транзакций на 60MB Smiley Ну и меньше 16млн уже не станет... во всяком случае, не по этой причине.

Если уж совсем не нравится идея сжигания коинов, то можно их возвращать нашедшему следующий блок.
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 06, 2017, 04:46:56 AM
 #44

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

А в итоге получается всё наоборот. Хотели как лучше, а получилось как всегда. © В.С. Черномырдин



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

Зачеркнул, потому как это не совсем так, но по сути так оно и есть.

В чем проблема майнерам уменьшить себе вознаграждение на величину требуемой комиссии?
Да не в чём, собственно. Grin Разве что эта цифра 21000000 со временем уменьшится до 0.
Во-первых, для этого всем пулам придется добавлять в блоки собственных транзакций на 60MB Smiley Ну и меньше 16млн уже не станет... во всяком случае, не по этой причине.

Если уж совсем не нравится идея сжигания коинов, то можно их возвращать нашедшему следующий блок.

Не буду у вас уточнять, что вы имеете ввиду Roll Eyes. Но то что у вас есть некоторые пробелы с теоретической и практической базе это в не всяких сомнений.


Ближе у вечеру обрисую вариант концепции вашей идеи, как я её вижу, в более реалистичном виде, и даже привязанным к рыночным условиям.
(сейчас пойду дерево на дрова спиливать - сильным ветром ранетку у нас почти сломало)

Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 06, 2017, 07:55:02 AM
 #45

А в итоге получается всё наоборот.
Да ничего наоборот не получилось. Комиссия за coinbase транзакцию - это в любом случае расходы пула. Кроме того, не забывайте, что у них остается еще 5% от блока для бесплатных транзакций, так что на практике для пулов и майнеров ничего не изменится.

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

Но то что у вас есть некоторые пробелы с теоретической и практической базе это в не всяких сомнений
Сомневаюсь, что в этом предложении имются какие-либо концептуальные противоречия.
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 06, 2017, 02:35:36 PM
 #46

А в итоге получается всё наоборот.
Да ничего наоборот не получилось. Комиссия за coinbase транзакцию - это в любом случае расходы пула. Кроме того, не забывайте, что у них остается еще 5% от блока для бесплатных транзакций, так что на практике для пулов и майнеров ничего не изменится.
Очень мне любопытно было бы посмотреть... А потом в очередной раз сказать: - ну я же вас предупреждал. Grin


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


Но то что у вас есть некоторые пробелы с теоретической и практической базе это в не всяких сомнений
Сомневаюсь, что в этом предложении имются какие-либо концептуальные противоречия.
Концептуальных противоречий нет. Тут вы правы. Вот только занесло вас здесь, по-моему, не в ту степь.




Более приближенный к реальности вариант вашей идеи.



1
2
3
4
5
6
7
8
9
XX
блок
T
T
T
T
T
T
T
T
T
T
матрица
T
TT
TTT
TTTT
TTTTT
TTTTTT
TTTTTTT
TTTTTTTT
TTTTTTTTT
TTTTTTTTTT
<< поток тр.
 T   T      T
  T T  T
 T  T T
   TT     T  T
    T T    T
 T   T  T T
   T  TTT  
TT  T  T    T
  T  TT T  T
  T T  TTT T
  транзакции с величиной комиссии
>= 9SK
>= 8SK
>= 7SK
>= 6SK
>= 5SK
>= 4SK
>= 3SK
>= 2SK
>= 1SK
(спам)< 1SK

Мемпул транзакций представляет собой матрицу, которая строится по вашему коэффициенту - SK (Schnibble`K)
Блок Roll Eyes формируется по этой матрице и состоит из примерно равных частей каждой её части.
Коэффициент SK динамически изменяется через некую функцию по определённому количеству последних блоков(мемпул фтопку).
Функция, учитывая эмиссию, косвенным образов определяет рыночные колебания.

Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 06, 2017, 09:53:07 PM
Last edit: April 06, 2017, 11:51:36 PM by Schnibble
 #47


Более приближенный к реальности вариант вашей идеи.



1
2
3
4
5
6
7
8
9
XX
блок
T
T
T
T
T
T
T
T
T
T
матрица
T
TT
TTT
TTTT
TTTTT
TTTTTT
TTTTTTT
TTTTTTTT
TTTTTTTTT
TTTTTTTTTT
<< поток тр.
 T   T      T
  T T  T
 T  T T
   TT     T  T
    T T    T
 T   T  T T
   T  TTT  
TT  T  T    T
  T  TT T  T
  T T  TTT T
  транзакции с величиной комиссии
>= 9SK
>= 8SK
>= 7SK
>= 6SK
>= 5SK
>= 4SK
>= 3SK
>= 2SK
>= 1SK
(спам)< 1SK
Как я понимаю, здесь вы продолжаете идею рыночного регулирования комиссии...

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

Я пока остановился на варианте попроще. Увеличивать в 4 раза, допустим, один из десяти блоков. Это может быть каждый блок, для которого хэш предыдущего кратен 10. Тогда транзакции с низкой комиссией будут накапливаться в очереди, и попадать в блокчейн в среднем через 5 блоков. Таким образом начинает работать механизм рыночного регулирования.

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

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

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

Наиболее разумный роадмап, как мне кажется следующий:
1. Спам-фильтр на уровне обмена между полными нодами (это даже без софт-форка можно делать)
2. Спам-фильтр на уровне блокчейна (софт-форк, при поддержке >75% майнеров)
3. Снятие жесткого ограничения на размер блока (хард-форк, при поддержке >95% майнеров)
4. Внедрение механизма рыночного регулирования комиссии (софт-форк)

В принципе, последний пункт можно начинать внедрять уже на 2-3 этапе...
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 07, 2017, 05:35:45 AM
 #48


Более приближенный к реальности вариант вашей идеи.



1
2
3
4
5
6
7
8
9
XX
блок
T
T
T
T
T
T
T
T
T
T
матрица
T
TT
TTT
TTTT
TTTTT
TTTTTT
TTTTTTT
TTTTTTTT
TTTTTTTTT
TTTTTTTTTT
<< поток тр.
 T   T      T
  T T  T
 T  T T
   TT     T  T
    T T    T
 T   T  T T
   T  TTT  
TT  T  T    T
  T  TT T  T
  T T  TTT T
  транзакции с величиной комиссии
>= 9SK
>= 8SK
>= 7SK
>= 6SK
>= 5SK
>= 4SK
>= 3SK
>= 2SK
>= 1SK
(спам)< 1SK
Как я понимаю, здесь вы продолжаете идею рыночного регулирования комиссии...

Вы же этого хотите?


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

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

И забудьте вы про консенсус по мемпулу. Не может быть консенсуса по тому, что неизвестно.


Я пока остановился на варианте попроще. Увеличивать в 4 раза, допустим, один из десяти блоков. Это может быть каждый блок, для которого хэш предыдущего кратен 10. Тогда транзакции с низкой комиссией будут накапливаться в очереди, и попадать в блокчейн в среднем через 5 блоков. Таким образом начинает работать механизм рыночного регулирования.

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

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

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

Наиболее разумный роадмап, как мне кажется следующий:
1. Спам-фильтр на уровне обмена между полными нодами (это даже без софт-форка можно делать)
2. Спам-фильтр на уровне блокчейна (софт-форк, при поддержке >75% майнеров)
3. Снятие жесткого ограничения на размер блока (хард-форк, при поддержке >95% майнеров)
4. Внедрение механизма рыночного регулирования комиссии (софт-форк)

В принципе, последний пункт можно начинать внедрять уже на 2-3 этапе...
Действуйте и внедряйте. Grin Перед вами открыты все пути и дороги...

Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 07, 2017, 07:04:53 PM
Last edit: April 07, 2017, 09:04:15 PM by Schnibble
 #49

Чем больше комиссия, тем быстрее попадает она в блокчейн, а чем меньше комиссия, тем дольше она стоит в очереди. И это не отменяет те исключения, когда по "блату" какие-нибудь транзакции пройдут вне очереди.
Те транзакции, которые пройдут вне очереди могут включать произвольную (поддельную) комиссию. Это потенциально может нарушить ту функцию, по которой вы собираетесь динамически изменять коэффициент.

И забудьте вы про консенсус по мемпулу. Не может быть консенсуса по тому, что неизвестно.
Вы представляете каким образом узлы проверяют timestamp блока? Так вот, системное время известно и у всех одинаково, приблизительно так же как mempool.

Действуйте и внедряйте
Подождите. Давайте сначала подумаем, какие еще проблемы могут возникнуть. Консенсус по мемпулу работать будет замечательно. Но, может быть, кроме рассмотернных, возможны еще какие-то атаки на размер мемпула/блоков/DoS, еще что-то? Разруливать конфликтующие транзакции, кстати, тоже не так просто.
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 08, 2017, 01:17:11 PM
 #50

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

Нет проблем.
У меня есть мой первый, полуготовый коин - https://bitcointalk.org/index.php?topic=1724780.0
Есть вопрос - http://ss-iq.blogspot.ru/2016/10/blog-post_20.html , который каким то образов нужно решить.
Доделываем этот коин, исправляя какие-нибудь помарки, неточности и всё что потребуется.
Запускаем.
Выводим на биржи.
Отрабатываем ключевую идею, которая заложена в этот коин.

А уже потом можно и другие проблемы обсуждать, хоть до посинения, если они сами к тому времени не рассосутся.

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

GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
April 08, 2017, 04:37:29 PM
 #51

Ну Вы тут напроектировали. Smiley Позвольте показать проблему немножко с другой стороны. Возможно, Вам не понравится, но может, какие-то идеи окажутся полезными.

Майнеры могут устанавливать размер комиссии, начиная с которой они берут транзакции. Также они заинтересованы получить максимальную прибыль.
Представим график, по оси X - размер комиссии, по оси Y - доход майнера.

Если комиссия равна 0, майнер не получает ничего.
Если комиссия огромная, то тоже ничего, желающих не будет. График выглядит в виде дуги с концами на линии X.
Если потихоньку устанавливать  комиссию от 0 все выше и выше, то сначала прибыль майнера будет расти, но в какой-то момент будет обратно падать. Таким образом, есть размер комиссии, при котором прибыль майнера максимальная. Назовем это оптимальной комиссией.
И майнеры, чтобы получить максимальную прибыль, должны устанавливать именно эту оптимальную комиссию. Или, по крайней мере, близко к ней.

Самое интересное в этой зависимости - это то, что здесь никаким образом не фигурирует размер блока.
 
Теперь что будет, если подключить размер блока.
Если у нас большой размер блока, то майнер может включить туда все транзакции с оптимальной комиссией. Блоки будут меньше максимального размера. Майнер получает максимальную прибыль. Все транзакции попадают в блок, очередей нет.
Ничего плохого нет, можно сказать, что размер блока в этом случае не оказывает никакого влияния. Если достаточно, например, 4мб, то будет максимальный размер 4, 8 или 16, уже не играет никакой роли.

Если же у нас размер блока такой, что майнер не может включить туда все транзакции с оптимальной комиссией. Тогда он вынужден из этих транзакций выбрать с более высокой комиссией. Что по сути означает, что майнер делают размер комиссии более высокой. То есть выше оптимальной. А это означает, что майнер теряет свою прибыль. К тому же часть транзакций не попадают в блок, создается очередь.

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

Или другими словами -  максимально возможный размер блока, исходя из технологических возможностей системы - это самое ЛУЧШЕЕ решение.

p/s/ Идеи не мои. Была статья то ли годовой, то ли полугодовой давности. Автора не помню.
kcaterpillar
Full Member
***
Offline Offline

Activity: 173
Merit: 100


View Profile
April 08, 2017, 04:58:27 PM
 #52

...
Ничего плохого нет, можно сказать, что размер блока в этом случае не оказывает никакого влияния. Если достаточно, например, 4мб, то будет максимальный размер 4, 8 или 16, уже не играет никакой роли.
...
Или другими словами -  максимально возможный размер блока, исходя из технологических возможностей системы - это самое ЛУЧШЕЕ решение.
...

Не всё так просто к сожалению. Размер блока, если он очень большой, влияет на производительность майнинга. При огромных блоках у одной части майнеров, другие майнеры, у которых размер блока будет существенно меньше, могут получить преимущество при майнинге и иметь выше вероятность получить вознаграждение за блок, которое пока что, и в ближайшие годы, выше суммы комиссий с транзакций.
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
April 08, 2017, 07:10:56 PM
 #53

...
Ничего плохого нет, можно сказать, что размер блока в этом случае не оказывает никакого влияния. Если достаточно, например, 4мб, то будет максимальный размер 4, 8 или 16, уже не играет никакой роли.
...
Или другими словами -  максимально возможный размер блока, исходя из технологических возможностей системы - это самое ЛУЧШЕЕ решение.
...

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

И каким образом майнеры с меньшим блоком получают преимущество? С spv-майнингом этой проблемы уже нет. Насколько знаю.

p/s/ Майнеры находятся в равных условиях с точки зрения протокола Биткоина. Поэтому от величины максимального размера блока никто не получает никаких преимуществ. Это простой закон и он действует.
kcaterpillar
Full Member
***
Offline Offline

Activity: 173
Merit: 100


View Profile
April 08, 2017, 08:15:22 PM
 #54

Размер блока - имеете в виду максимальный или размер конкретного блока? Наверно максимальный.
Почему у одних майнеров будут огромные блоки, а у других существенно меньше?
Блоки в среднем должны получаться одного размера.
Если майнер с огромным блоком будет проигрывать, он просто не будет делать огромные блоки.

И каким образом майнеры с меньшим блоком получают преимущество? С spv-майнингом этой проблемы уже нет. Насколько знаю.

p/s/ Майнеры находятся в равных условиях с точки зрения протокола Биткоина. Поэтому от величины максимального размера блока никто не получает никаких преимуществ. Это простой закон и он действует.

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

Такое вероятностное преимущество при майнинге возрастает с увеличением размера блока выше нескольких мегабайт, также оно возрастает и с увеличением количества транзакций в блоке. Чем больше разница между наибольшим блоком и "легким" блоком, тем выше это преимущество. Пока оно незначительное.  При наличии существенной разницы в размерах блока и количества транзакций, также это преимущество будет ещё более возрастать при увеличении сложности ("Difficulty") системы Биткойн.
Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 08, 2017, 09:47:57 PM
 #55

Отрабатываем ключевую идею, которая заложена в этот коин.
Мне кажется, с этого нужно начинать. Отписался в теме.

Но когда будут блоки по 16 Мб и выше - у некоторых майнеров появится соблазн быстренько смайнить более "легкий" блок. И получить вероятностное преимущество в решении блока, так как награда за блок пока превосходит все комиссии транзакций.
Единственное преимущество, которое может получить майнер "легкого" блока в том, что он быстрее распространяется по сети. Таким образом у него меньше риск получить orphan блок. А сложность самого майнинга не зависит от кол-ва транзакций или размера блока, так как майнеры подбирают хэш от хэша всех транзакций (merkle tree root), изменяя только одно число в заголовке - nonce. А root-хэш от merkle tree, который строится из хэшей самих транзакций, во время майнинга пересчитывается очень редко.
Schnibble (OP)
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
April 08, 2017, 09:54:23 PM
 #56

Таким образом, есть размер комиссии, при котором прибыль майнера максимальная. Назовем это оптимальной комиссией.
И майнеры, чтобы получить максимальную прибыль, должны устанавливать именно эту оптимальную комиссию. Или, по крайней мере, близко к ней.
Каждый раз, когда я обдумываю эту идею, у меня возникает одна и та же мысль. А как они будут договариваться? Smiley
Если размер блока не ограничен, то всегда найдется такой майнер, который просто возьмет и включит все доступные транзакции в свой блок. Таким образом, остальные должны это учитывать, и им уже не выгодно устанавливать эту оптимальную комиссию.

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

Если же большинство майнеров путем голосования (как в unlimited) смогут ограничивать размер блока, то они таким образом, смогут избежать конкуренции и устанавливать оптимальный для себя размер комиссии. В итоге, пользователям должно быть выгоднее, когда блок не ограничен, и майнеры конкурируют друг с другом.

Или другими словами -  максимально возможный размер блока, исходя из технологических возможностей системы - это самое ЛУЧШЕЕ решение.
Получается, что лучшее для пользователей. Но, в любом случае, исходя из технических возможностей, необходимо как-то ограничивать заполнение блокчейна спамом, поэтому просто так увеличивать блок нельзя. А бороться со спамом можно либо путем установки минимальной комиссии, либо ограничив размер блока так, чтобы дешевые транзакции просто не влезали в блок.

Мне кажется, что ограниение по величине комиссии наболее простой и естественный путь. Тем более, что это позволяет отказаться от ограничения на размер блока, и создает условия для конкуренции майнеров.
kcaterpillar
Full Member
***
Offline Offline

Activity: 173
Merit: 100


View Profile
April 09, 2017, 07:37:39 AM
 #57

Единственное преимущество, которое может получить майнер "легкого" блока в том, что он быстрее распространяется по сети. Таким образом у него меньше риск получить orphan блок. А сложность самого майнинга не зависит от кол-ва транзакций или размера блока, так как майнеры подбирают хэш от хэша всех транзакций (merkle tree root), изменяя только одно число в заголовке - nonce. А root-хэш от merkle tree, который строится из хэшей самих транзакций, во время майнинга пересчитывается очень редко.


Нет. Это не так. Последний год майнерами перебирается примерно 70-73 бита, в зависимости от текущей сложности. В поле Nonce заголовка блока 32 бита, остальные примерно 40 бит перебираются в так называемом extraNonce - оно находится в coinbase-транзакции,  это произвольные биты поля "in":"coinbase". Так как coinbase-транзакция должна быть первой в блоке, чтобы изменить эти 40 бит необходимо изменить и hashMerkleRoot. Сразу стоит заметить, что в случае увеличения сложности сети Биткойна (difficulty), количество перебираемых бит будет также увеличиваться за счёт coinbase-транзакции, т.е. соотношение extraNonce/Nonce ещё более увеличится.

Представим дерево Меркля с основанием внизу и корнем вверху, а coinbase-транзакцию в нём крайней нижней слева. Получится треугольник в случае полного заполнения транзакциями дерева (а это  оптимальный вариант для максимального количества транзакций в дереве).  Мы знаем, что хэши берутся не только от всех транзакций, но и от вершин дерева (узлов). Все хэши двойные, причём первый хэш вершины ещё и двухраундовый, в итоге получается, что ресурсные затраты на одну вершину дерева Меркля почти равны трём раундам SHA-256 - трём хэшам грубо говоря. Но нас интересуют не все хэши вершин, а только те, что находятся вдоль левого ребра нашего треугольника дерева. Потому как остальные вершины не изменяются.  С увеличением количества транзакций в блоке число транзакций растёт как квадратичная функция от числа степеней вершин (грубо говоря "этажей" дерева). А вот количество вершин вдоль левого ребра нашего дерева, т.е. тех вершин, которые будут изменятся при переборе coinbase - меняется как линейная функция. Именно поэтому при небольших размерах блока увеличение числа его транзакций не изменяет существенно затраты при майнинге - квадратичная функция "растёт" гораздо  быстрее линейной. Но при значительном увеличении транзакций в блоке этот линейный рост всё-таки даст о себе знать - майнить огромные блоки будет сложнее, затратнее более "легких" блоков, разница будет ощутимой.

Есть ещё один момент - в случае применения современных алгоритмов криптоанализа для оптимизации майнинга можно повысить его эффективность на 10%-15% по сравнению с классическим брутфорсом, но для применения таких алгоритмов потребуется использовать не последовательный (независимый) перебор extraNonce и Nonce как при брутфорсе, а всю логическую цепочку всех хэшей, т.е. все хеши, начиная от coinbase-транзакции. Такие криптоатаки на решение блока дадут ещё большее преимущество для  легких блоков с небольшим количеством транзакций.

Поэтому неограниченное увеличение размеров блока может привести к появлению двух тенденций - с одной стороны, майнеры будут пытаться увеличить количество транзакций и вознаграждение за счёт их комиссий, ведь их можно будет поместить в блок очень много. С другой стороны, часть майнеров может использовать преимущество майнинга лёгких блоков и ограничиться только вознаграждением за решение блока. Баланс наступит тогда, когда награда за блок станет равной или меньше суммы комиссий. Но это может произойти не скоро, уйдут годы, а запаса этих лет в современном конкурентном мире нет. Специалисты давно знают об этой проблеме, но стараются не афишировать во избежание паники на рынке. Именно эта проблема является основной причиной нежелания части сообщества увеличивать размер блока, хотя объясняется она обычно другими причинами. Тут можно подойти к главной проблеме Биткойна - отсутствии мотивации у майнеров включать в блок все транзакции с небольшой (умеренной) комиссией пока вознаграждение за решение блока больше. Но невключение в блок множества транзакций повлечет падение интереса к Биткойну на рынке, ведь транзакции - это основная функция криптовалюты. Проблема отсутствия мотивации майнеров включать все транзакции - это родовая травма Биткойна, вылечить её может только время до уменьшения награды за блок (но времени то нет), или какое-то разумное решение сообщества. Все остальные проблемы Биткойна не так существенны и могут решиться проще. Излишний алармизм конечно не нужен по этому поводу, пока размер блока ограничен - всё более-менее стабильно и под контролем. Но и игнорировать проблему нельзя, если вы хотите сделать Биткойн лучше, сделать его саморегулирующимся как вы пишете - нужно учесть всё.
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
April 09, 2017, 08:11:11 AM
 #58

Таким образом, есть размер комиссии, при котором прибыль майнера максимальная. Назовем это оптимальной комиссией.
И майнеры, чтобы получить максимальную прибыль, должны устанавливать именно эту оптимальную комиссию. Или, по крайней мере, близко к ней.
Каждый раз, когда я обдумываю эту идею, у меня возникает одна и та же мысль. А как они будут договариваться? Smiley
Если размер блока не ограничен, то всегда найдется такой майнер, который просто возьмет и включит все доступные транзакции в свой блок. Таким образом, остальные должны это учитывать, и им уже не выгодно устанавливать эту оптимальную комиссию.
Это относится к вариантам так называемого эгоистичного майнинга. При эгоистичном майнинге один майнер за счет того, что он работает не так как большинства майнеров , получает преимущество. Но тогда все майнеры, чтобы не проиграть, должны перейти на такой же способ. А в итоге майнеры в целом резко теряют свою прибыль.

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

Самое интересное и примечательное - это то, что еще ни было зарегистрировано НИ ОДНОГО случая эгоистичного майнинга.
Потому что майнеры абсолютным большинством прекрасно понимают, к чему приводит эгоистичный майнинг.
Поэтому, у меня предложение -  не тратить время на обсуждение вариантов эгоистичного майнинга. Smiley
Quote
Или другими словами -  максимально возможный размер блока, исходя из технологических возможностей системы - это самое ЛУЧШЕЕ решение.
Получается, что лучшее для пользователей. Но, в любом случае, исходя из технических возможностей, необходимо как-то ограничивать заполнение блокчейна спамом, поэтому просто так увеличивать блок нельзя. А бороться со спамом можно либо путем установки минимальной комиссии, либо ограничив размер блока так, чтобы дешевые транзакции просто не влезали в блок.

Мне кажется, что ограниение по величине комиссии наболее простой и естественный путь. Тем более, что это позволяет отказаться от ограничения на размер блока, и создает условия для конкуренции майнеров.
Это лучше для пользователей, но это же и лучше для майнеров. Спам легко убирается той же самой оптимальной комиссией.  
Возможно, если идет заполнение блоков большим количеством транзакций, то майнеры, скорее всего, используют не оптимальный размер комиссии. И им надо просто подумать про увеличение размера комиссии.

Вообще спам имеет смысл только при ограничении размера блока. Поэтому, увеличение максимального размера блока - это первый и наиболее эффективный способ борьбы со спамом. Smiley
_sunshine_
Sr. Member
****
Offline Offline

Activity: 280
Merit: 250


View Profile
April 09, 2017, 12:15:42 PM
 #59

что бы бороться со спамом, нужно определить что есть спам. На битновостях был цикл статей как Вер спамит сеть. Значит спам это tx отправленные Вером. Все детектед. Я так понимаю его супруга на связи, Вер пошел сеть тушить она маякует. Дальше казинохи пишут спамят - тоже нах их с блокчена. Оставим блокчен девственным. Или как, что  есть спам?
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
April 09, 2017, 12:46:08 PM
 #60

что бы бороться со спамом, нужно определить что есть спам. На битновостях был цикл статей как Вер спамит сеть. Значит спам это tx отправленные Вером. Все детектед. Я так понимаю его супруга на связи, Вер пошел сеть тушить она маякует. Дальше казинохи пишут спамят - тоже нах их с блокчена. Оставим блокчен девственным. Или как, что  есть спам?
Я предложил считать спамом любую транзакцию с нулевой комиссией - https://bitcointalk.org/index.php?topic=1840975.msg18328893#msg18328893

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!