Bitcoin Forum
May 12, 2024, 05:27:13 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3] 4 5 6 7 8 9 10 »  All
  Print  
Author Topic: Три ошибочных постулата Сатоши Накомото  (Read 1989 times)
A-Bolt
Legendary
*
Offline Offline

Activity: 2316
Merit: 2318


View Profile
May 02, 2019, 09:03:55 AM
 #41


Правда в коде не 2 гб, а 550 мб, но что-то у меня не получалось меньше 2 гб сделать.
https://github.com/bitcoin/bitcoin/blob/master/src/validation.h#L195

Скорее всего это приблизительная цифра, реальную надо подгонять вручную.

Прунинг работает так: вы задаёте фиксированный размер хранилища блоков опцией командной строки -prune=<n>. Это фиксированный размер, сколько зададите - столько и будет занимать места на диске база блоков (но не меньше 550МБ). И эта база не будет расти со временем, старые блоки автоматически будут удаляться, чтобы выдерживать целевой размер базы.

Размер этой базы никак не зависит от количества потраченных выходов (вы его сами задаёте). Реально реализованный механизм прунинга не имеет никакого отношения к тому, что писал Накамото в разделе "7. Экономия дискового пространства". Поэтому, ваша фраза "при размере всего блокчейна 200 гиг, в режиме прунига он весит 2 гиг" не имеет никакого смысла.

Quote
Вот вам исходники старого клиента биткоина.
https://github.com/bitcoin/bitcoin/blob/0.14/src/consensus/consensus.h#L16
https://github.com/bitcoin/bitcoin/blob/0.14/src/validation.cpp#L2871

Как этот клиент до сих пор работает и умудряется принимать блоки в 2 мегабайта?

Старым клиентам новые клиенты дают урезанные неполноценные блоки, влезающие в 1МБ, что никак не доказывает, что новые клиенты хранят witness где-то там отдельно, как вы сказали "Эта часть записывается за пределами блока".

Ваша фраза "Эта часть записывается за пределами блока" не подтверждается ничем, ни сегвитовскими BIP-ами (BIP141, BIP143), ни исходниками SegWit-совместимых клиентов.

Выполните в консоле команду
Code:
getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d 0
она вам выдаст сериализованный блок в HEX-формате. Какой у него будет размер в байтах? Вот этот размер и показывают блок-эксплореры.
Each block is stacked on top of the previous one. Adding another block to the top makes all lower blocks more difficult to remove: there is more "weight" above each block. A transaction in a block 6 blocks deep (6 confirmations) will be very difficult to remove.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
fxpc
Sr. Member
****
Offline Offline

Activity: 1316
Merit: 420


KTO EC/\U HUKTO?


View Profile
May 02, 2019, 09:12:38 AM
 #42

Про ссд тесты похожи на правду. Для хдд я ни разу в жизни не видел, чтобы 200 мег копировались за секунду... или за две... или даже за пять секунд. (

Так это линейно, то есть без фрагментации и естественно на другой диск. Вот только что проверил с одного забитого HDD на другой скопировал файл 1.4ГБ, заняло 15 секунд, в тестах на пустых дисках как раз будет в районе 200. Диски у меня правда сильно дороже хлама за 60$.

GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
May 02, 2019, 09:19:43 AM
Last edit: May 02, 2019, 09:47:55 AM by GGUL
 #43

Сеть из  25 майнеров, 1000 фулл нод и 1000 000 spv кошельков будет функционировать, если отвалится часть майнеров. Будет работать, даже если все фулл-ноды отвалятся. Возможно медленно, но будет. И уж тем более ничего страшного не будет, если часть spv-кошельков выйдут из сети. Это, что ни на есть, классический пример децентрализованной системы по Вашему определению.

Уверены?
Тогда условия задачи: "В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод, но выжили несколько spv кошельков. Вопрос: когда сеть биткоина восстановит свою работу?"
Вообще-то я руководствовался Вашим же определением децентрализации.Smiley
Хорошо. Возьмем Ваш пример с "настоящей децентрализацией", где нет spv-кошельков.
"В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод.
Вопрос: когда сеть биткоина восстановит свою работу?"
Результат такой же.
Вывод из Вашего примера: spv-кошельки не уменьшают децентрализацию. Smiley

Я не понимаю, что Вы хотите доказать. Spv-кошельки не самодостаточны. Это часть системы.
Фулл-ноды тоже часть системы. И тоже не самодостаточны. Без майнеров они встанут.
Основа Биткоина - это майнеры.
Quote
И Вы забыли еще одно очень важное свойство децентрализованных систем, назовем его открытостью.
Абсолютно необязательное свойство.
Вы меня слегка разочаровали. От человека, который болеет за децентрализацию Биткоина, услышать такой ответ...

Без этого свойства не было бы Биткоина. Кому нужна криптовалюта, если для того, чтобы воспользоваться им, нужно спрашивать разрешение.
Quote
А spv кошелек это тоже не сервер биткоина. Мы же все еще про spv и про их якобы децентрализацию тут? ))
Вот вам аналогия: абсолютно любой человек с любого браузера может подключиться к серверам пейпала. Значит ли это, что пейпал децентрализованная система? Причем в 100 раз более децентрализованная чем биткоин, потому что к этому вашему биткоину не так-то просто подключиться через браузер (я лично не умею).
Странный вопрос. Если мы с разных точек подключаемся к одному серверу (или к серверам одной компании), как это может делать что-то децентрализованным.
А spv-кошельком мы не обязаны подключаться к одной фулл-ноде, (или к фулл-нодам одной компании).

А потом.
1. Чтобы подключиться к пейпалу, нужно получить от него разрешение.
2. Пейпал контролирует твои средства, которые ты ему обязать доверить.
3. Ты не можешь уйти к другому пейпалу. Вернее, другой "пейпал" будет точно таким же, как и этот.

Между системами клиенты+ пейпал,  spv-кошельки+фуллноды  пропасть.
Такая же, как между серверами Visa и майнерами Биткоина.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 02, 2019, 11:01:08 AM
Last edit: May 02, 2019, 11:32:40 AM by kzv
 #44


Прунинг работает так: вы задаёте фиксированный размер хранилища блоков опцией командной строки -prune=<n>. Это фиксированный размер, сколько зададите - столько и будет занимать места на диске база блоков (но не меньше 550МБ). И эта база не будет расти со временем, старые блоки автоматически будут удаляться, чтобы выдерживать целевой размер базы.

Размер этой базы никак не зависит от количества потраченных выходов (вы его сами задаёте). Реально реализованный механизм прунинга не имеет никакого отношения к тому, что писал Накамото в разделе "7. Экономия дискового пространства". Поэтому, ваша фраза "при размере всего блокчейна 200 гиг, в режиме прунига он весит 2 гиг" не имеет никакого смысла.


На самом деле прунинг реализованный в биткоине очень похож на то, что описывал Сатоши. Бесследно старые блоки не удаляются и размер базы прунинга не равен тому. который вы задаете в параметре prune.
Я задал prune=2000 и сейчас у меня база биткоина (.bitcoin/blocks + .bitcoin/chainstate) занимает 5 гигов. Сами догадаетесь почему так или надо разжевывать?

Старым клиентам новые клиенты дают урезанные неполноценные блоки, влезающие в 1МБ,

То есть вы хотите сказать. что есть тру-блоки, а есть "неполноценные"? И уж не хотите ли вы высказать какую-то пропагандисткую ересь типа, что тру-блоки состоят из двух частей? Или даже не дай бог скажете, что часть тру-блока которая не посылается старикам никак не влияет на хэш блокаHuh  Shocked


что никак не доказывает, что новые клиенты хранят witness где-то там отдельно, как вы сказали "Эта часть записывается за пределами блока".

Уверены в этом?  Wink

Code:
getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d 0
она вам выдаст ...

... выдаст фотографию голой тетки в трусах. Но голая тетка в трусах это не голая тетка, как ни странно ))


Хорошо. Возьмем Ваш пример с "настоящей децентрализацией", где нет spv-кошельков.
"В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод.
Вопрос: когда сеть биткоина восстановит свою работу?"
Результат такой же.

Ответ неверный ))
Если останется хотя бы одна фулл нода, то восстановить нормальную работу сети можно будет хардфорком, который стряпается за пару часов.


И Вы забыли еще одно очень важное свойство децентрализованных систем, назовем его открытостью.
Quote
Абсолютно необязательное свойство.
Вы меня слегка разочаровали. От человека, который болеет за децентрализацию Биткоина, услышать такой ответ...

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

Децентрализация и криптовалюта это вещи перпендикулярные: один раз пересеклись и все.
Хотим говорить про децентрализацию интернет платежей - обсуждаем криптовалюту. Хотим говорить про децентрализацию как технологию в целом - обсуждаем все возможные решения.

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

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


1. Чтобы подключиться к пейпалу, нужно получить от него разрешение.
2. Пейпал контролирует твои средства, которые ты ему обязать доверить.
3. Ты не можешь уйти к другому пейпалу. Вернее, другой "пейпал" будет точно таким же, как и этот.

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

OpenTrade - Open Source Cryptocurrency Exchange
A-Bolt
Legendary
*
Offline Offline

Activity: 2316
Merit: 2318


View Profile
May 02, 2019, 01:06:38 PM
Merited by chimk (4), johhnyUA (1)
 #45

На самом деле прунинг реализованный в биткоине очень похож на то, что описывал Сатоши. Бесследно старые блоки не удаляются и размер базы прунинга не равен тому. который вы задаете в параметре prune.
Я задал prune=2000 и сейчас у меня база биткоина (.bitcoin/blocks + .bitcoin/chainstate) занимает 5 гигов. Сами догадаетесь почему так или надо разжевывать?

А чего тут догадываться? Кручу-верчу запутать хочу, как говорили напёрсточники во времена оны.

Есть база данных блоков - bitcoin/blocks, к ней применяется прунинг и размер этой базы подгоняется под параметр prune=2000.
Есть база данных непотраченных выходов (UTXO) - .bitcoin/chainstate, к ней прунинг не применяется, она может расти или уменьшаться в зависимости от текущего количества UTXO в сети.

Вы берёте и сваливаете в одну кучу размер базы, к которой применяется прунинг и размер базы, к которой прунинг не применяется. Получаете результат, который не соответствует вашему prune=2000. Всё логично.

Quote
То есть вы хотите сказать. что есть тру-блоки, а есть "неполноценные"?

Да. Полноценными блоками обмениваются SegWit-совместимые клиенты, а старым клиентам подсовываются блоки, в которых из транзакций вырезан witness.

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

Вы мне свои утверждения не приписывайте. Вы до сих пор не ответили, в каком астрале хранятся witness-данные транзакций, если они, по-вашему, хранятся не в блоках.

Что касается хеша блока, я уже говорил:
1. Транзакции в новом формате, включающий в себя witness, хешируются при помощи дерева Меркла, и корневой хеш помещается в один из выходов coinbase-транзакции.
2. Coinbase-транзакция вместе с остальными транзакциями, но уже в старом формате (без witness) хешируются при помощи дерева Меркла и корневой хеш помещается в параметр merkleroot заголовка блока.
3. Ну, а заголовок блока, включающий в себя merkleroot, принимает участие в вычислении хеша блока.
Таким образом, хеш блока зависит, в том числе, и от witness-данных транзакций.

Quote
что никак не доказывает, что новые клиенты хранят witness где-то там отдельно, как вы сказали "Эта часть записывается за пределами блока".

Уверены в этом?  Wink

Вах! Мамой клянус, да?
Вы придумали себе какое-то таинственное место, где хранятся witness-данные транзакций, а доказать существование этого места не в состоянии.

Quote
Code:
getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d 0
она вам выдаст ...

... выдаст фотографию голой тетки в трусах. Но голая тетка в трусах это не голая тетка, как ни странно ))

Голая тётка - это я понимаю, а где хранятся отдельно от блоков witness-данные транзакций - это я не понимаю.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 02, 2019, 01:39:56 PM
 #46

Есть база данных блоков - bitcoin/blocks, к ней применяется прунинг и размер этой базы подгоняется под параметр prune=2000.
Есть база данных непотраченных выходов (UTXO) - .bitcoin/chainstate, к ней прунинг не применяется, она может расти или уменьшаться в зависимости от текущего количества UTXO в сети.

Вы берёте и сваливаете в одну кучу размер базы, к которой применяется прунинг и размер базы, к которой прунинг не применяется. Получаете результат, который не соответствует вашему prune=2000. Всё логично.

Ну вот и получаем: блоки хранятся вместе с непотраченными входами. Все непотраченные входы лежат на моем диске вне зависимости от прунинга. Сатоши сказал: блоки с потраченными входами весят 80 байт. Это он хорошо сказал... Только Сатоши забыл посчитать: а сколько будет НЕпотраченных входов? Даже примерно не прикинул, но мы можем сейчас это увидеть экспериментально. И вот в суровой реальности никак 80 байт на блок не получается, ни при каком прунинге.

Вы до сих пор не ответили, в каком астрале хранятся witness-данные транзакций, если они, по-вашему, хранятся не в блоках.

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

Что касается хеша блока, я уже говорил:
1. Транзакции в новом формате, включающий в себя witness, хешируются при помощи дерева Меркла, и корневой хеш помещается в один из выходов coinbase-транзакции.
2. Coinbase-транзакция вместе с остальными транзакциями, но уже в старом формате (без witness) хешируются при помощи дерева Меркла и корневой хеш помещается в параметр merkleroot заголовка блока.
3. Ну, а заголовок блока, включающий в себя merkleroot, принимает участие в вычислении хеша блока.
Таким образом, хеш блока зависит, в том числе, и от witness-данных транзакций.

Хорошее описание, из которого я теперь окончательно понял следующее: witness данные транзакций в блок не пишутся ))


OpenTrade - Open Source Cryptocurrency Exchange
neiros
Legendary
*
Offline Offline

Activity: 3514
Merit: 1100



View Profile WWW
May 02, 2019, 04:37:44 PM
Last edit: May 03, 2019, 01:31:54 AM by neiros
 #47

Quote
То есть вы хотите сказать. что есть тру-блоки, а есть "неполноценные"?

Да. Полноценными блоками обмениваются SegWit-совместимые клиенты, а старым клиентам подсовываются блоки, в которых из транзакций вырезан witness.

Далёк я немного от SegWit, конечно, считаю его тупиковым путем развития и стараюсь не забивать голову всякой чепухой, но чего-то вы тут намудрили, похоже. Хеш (id) транзакций не может быть разным для старых и новых клиентов. От этого же зависит и хеш дерева Меркла и, соответственно, хеш самого блока. Транзакции для всех клиентов должны быть одинаковыми. А вот как уже эти клиенты интерпретируют для себя эти транзакции, тут другой вопрос.

A-Bolt
Legendary
*
Offline Offline

Activity: 2316
Merit: 2318


View Profile
May 02, 2019, 06:00:57 PM
 #48

Ну вот и получаем: блоки хранятся вместе с непотраченными входами. Все непотраченные входы лежат на моем диске вне зависимости от прунинга. Сатоши сказал: блоки с потраченными входами весят 80 байт. Это он хорошо сказал... Только Сатоши забыл посчитать: а сколько будет НЕпотраченных входов? Даже примерно не прикинул, но мы можем сейчас это увидеть экспериментально. И вот в суровой реальности никак 80 байт на блок не получается, ни при каком прунинге.

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

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

Ну, вот такое допущение сделал Накамото. В конце концов, он не позиционировал Bitcoin в качестве конкурента Visa по количеству транзакций в секунду. Все делают допущения в условиях недостатка информации. Вы, когда оценивали рост блокчейна в 1.5 ТБ в год, тоже сделали допущение, что все 30-мегабайтные блоки должны быть заполнены под завязку. А как оно на самом деле было бы при таких размерах блока - неизвестно.

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

Witness-данные записываются внутри транзакций.
Транзакции записываются внутри блока.
Блок представляется в виде байтового потока (сериализуется) и записывается в виде последовательности байт в файл базы данных блоков (blk*.dat). Это легко проверить: внутри любого blk*.dat можно найти при помощи HEX-редактора сериализованный блок и обнаружить в нём транзакции с witness-данными. Если witness-данные оказываются внутри сериализованного блока, то как можно считать, что witness-данные - это не часть блока?

Я самолично сейчас обнаружил двухмегабайтный блок 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d внутри файла blk01590.dat. И он таки реально занимает место на диске больше 2МБ.
И разработчики Bitcoin Core с этим размером согласны:
Code:
getblock 00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d
{
  "hash": "00000000000000000015700c792c59cda0380d5e3c3e16ba555cc3cfd6d6bb7d",
  "confirmations": 3485,
  "strippedsize": 565164,
  "size": 2297675,
  "weight": 3993167,
  "height": 570816,

О чём мы спорим? О том что размер блока не может превышать 1 МБ? Ну так, вот вам блок, он на вашем диске тоже занимает 2297675 байт. И все эти 2297675  байт передадутся по сети другому SegWit-совместимому клиенту, когда он будет запрашивать блоки.

Quote
Хорошее описание, из которого я теперь окончательно понял следующее: witness данные транзакций в блок не пишутся ))

Но Холмс, как вы пришли к этому умозаключению?
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 02, 2019, 06:58:21 PM
 #49


Транзакции записываются внутри блока.
Блок представляется в виде байтового потока (сериализуется) и записывается в виде последовательности байт в файл базы данных блоков (blk*.dat). Это легко проверить: внутри любого blk*.dat можно найти при помощи HEX-редактора сериализованный блок и обнаружить в нём транзакции с witness-данными. Если witness-данные оказываются внутри сериализованного блока, то как можно считать, что witness-данные - это не часть блока?


Ну вот вы смотрите данные хекс редактором, а я читаю исходники.
О чем говорит эта строчка?
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3108
Code:
    if (block.vtx.empty() || block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT || ::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
        return state.DoS(100, false, REJECT_INVALID, "bad-blk-length", false, "size limits failed");

По моему тут на чистом английском написано: блок не должен быть нулевым И размер всех транзакций в блоке * 4 должен быть меньше или равен 4 мегабайтам И размер блока на диске * 4 должен быть меньше или равен 4 мегабайтам.
Я что-то неправильно понимаю?

OpenTrade - Open Source Cryptocurrency Exchange
Coin-1
Legendary
*
Offline Offline

Activity: 2450
Merit: 2190



View Profile
May 02, 2019, 07:54:27 PM
 #50

Quote
3. Заголовок пустого блока будет составлять около 80 байт. Из расчета скорости генерации блока раз в десять минут получаем 80*6*24*365=4.2 Мб в год. Для среднестатистического на 2008 год компьютера с 2 Гб оперативной памяти с учетом закона Мура, предсказывающего рост на 1.2 Гб в год, хранение данных не будет проблемой, даже если все заголовки блоков будут находиться в памяти.

Наивно не правда ли )) ? Сатоши считает сколько места на диске занимают заголовки пустого блока. То есть он изначально рассчитывал, что
а) большинство блоков будут всегда пустые
б) большинство пользователей будут хранить только заголовки.

Реальность оказалась не такой.
В условиях ажиотажа блоки идут переполненные, а для настоящей децентрализации пользователям нужно хранить у себя блоки целиком. И тут нужно вспомнить историчекий факт: в первых версиях биткоина, максимальный размер блока был ограничен не 1 Мб как сейчас, а 30 Мб!
Теперь посчитаем, как должен был бы посчитать Сатоши если бы не хотел слукавить: 80*30*1048576*6*24*365 = 4.2 Мб в год 1540 Гб в год
Вот так вот: если бы Сатоши в момент написания своей статьи действительно верил в то, что биткоинами будет активно пользоваться весь мир, то он бы представил расчет где база блокчейна растет на 1.5 терабайта в год! Скорее всего он и вправду верил, но понимал, что такой расчет отпугнет от его системы чуть менее чем всех и потому посчитал немного по другому ))

Здесь в описании Bitcoin допущена не ошибка, а, скорее, недомолвка. Возможно, на момент написания bitcoin.pdf в 2008 году Сатоши Накамото считал блокчейном (то есть, цепочкой блоков) только заголовки блоков с MerkleRoot, которые связаны между собой через хеширование SHA256D, а транзакции предполагалось хранить отдельно. По факту block-chain Bitcoin является block-header-chain, то есть цепочкой заголовков блоков. Разумеется, каждая транзакция является неотъемлемой частью блока, без которой невозможно верифицировать весь блокчейн полностью.

В общем-то, Сатоши указал, что он в вычислениях имеет в виду хранение заголовков блоков, скорее, в оперативной памяти (in memory), поэтому я не считаю этот постулат ошибкой.
A-Bolt
Legendary
*
Offline Offline

Activity: 2316
Merit: 2318


View Profile
May 02, 2019, 08:36:12 PM
 #51

Ну вот вы смотрите данные хекс редактором, а я читаю исходники.
О чем говорит эта строчка?
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3108
Code:
    if (block.vtx.empty() || block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT || ::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT)
        return state.DoS(100, false, REJECT_INVALID, "bad-blk-length", false, "size limits failed");

По моему тут на чистом английском написано: блок не должен быть нулевым И размер всех транзакций в блоке * 4 должен быть меньше или равен 4 мегабайтам И размер блока на диске * 4 должен быть меньше или равен 4 мегабайтам.
Я что-то неправильно понимаю?

Имеем такие константы:
MAX_BLOCK_WEIGHT = 4000000
WITNESS_SCALE_FACTOR = 4

Вот это мне понятно:
::GetSerializeSize(block, SER_NETWORK, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT
В переводе на русский: Если из сериализованного блока выкинуть witness-данные, то его размер не должен превышать 4000000/4 = 1000000 байт.

Вот это мне непонятно:
block.vtx.size() * WITNESS_SCALE_FACTOR > MAX_BLOCK_WEIGHT
vtx - вроде как имеет тип std::vector, значит метод size() возвращает количество элементов в векторе, а не общий занимаемый размер. Ну, короче, не понимаю смысл этой проверки.

Но это ещё не все проверки размера блока. Дальше видим:
Code:
if (GetBlockWeight(block) > MAX_BLOCK_WEIGHT) {
return state.DoS(100, false, REJECT_INVALID, "bad-blk-weight", false, strprintf("%s : weight limit failed", __func__));
где GetBlockWeight это:
Code:
return ::GetSerializeSize(block, PROTOCOL_VERSION | SERIALIZE_TRANSACTION_NO_WITNESS) * (WITNESS_SCALE_FACTOR - 1) + ::GetSerializeSize(block, PROTOCOL_VERSION);

Тут уже всё понятно прописано, как в методичке:
Quote
Block size

Blocks are currently limited to 1,000,000 bytes (1MB) total size. We change this restriction as follows:

Block weight is defined as Base size * 3 + Total size. (rationale[3])

Base size is the block size in bytes with the original transaction serialization without any witness-related data, as seen by a non-upgraded node.

Total size is the block size in bytes with transactions serialized as described in BIP144, including base data and witness data.

The new rule is block weight ≤ 4,000,000.


То есть, правило такое: размер_блока_без_witness * 3 + полный_размер_блока < 4000000
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
May 03, 2019, 09:28:22 AM
Last edit: May 03, 2019, 09:42:21 AM by GGUL
 #52

Хорошо. Возьмем Ваш пример с "настоящей децентрализацией", где нет spv-кошельков.
"В результате вспышки на Солнце, навсегда отвалилось 100% майнеров и 100% фулл нод.
Вопрос: когда сеть биткоина восстановит свою работу?"
Результат такой же.
Ответ неверный ))
Если останется хотя бы одна фулл нода, то восстановить нормальную работу сети можно будет хардфорком, который стряпается за пару часов.
Мой ответ то верный.Smiley  Ведь по Вашим же условиям "навсегда отвалилось 100% фуллнод". А тут вдруг раз, и из рукава появляется "одна выжившая фуллнода". Шулерство пошло. Вернее, детский сад. Шулера обычно похитрее. Smiley
Quote
И Вы забыли еще одно очень важное свойство децентрализованных систем, назовем его открытостью.
Quote
Абсолютно необязательное свойство.
Вы меня слегка разочаровали. От человека, который болеет за децентрализацию Биткоина, услышать такой ответ...

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

Децентрализация и криптовалюта это вещи перпендикулярные: один раз пересеклись и все.
Хотим говорить про децентрализацию интернет платежей - обсуждаем криптовалюту. Хотим говорить про децентрализацию как технологию в целом - обсуждаем все возможные решения.
Я именно и обсуждаю децентрализацию криптовалют.  И я писал выше: "Биткоин обладает таким свойством". Что, кстати, предполагает, что какие-то децентрализованные системы могут не обладать таким свойством.
И когда в ответ: "абсолютно необязательное свойство".
Quote
Если мы с разных точек подключаемся к одному серверу (или к серверам одной компании), как это может делать что-то децентрализованным.
А spv-кошельком мы не обязаны подключаться к одной фулл-ноде, (или к фулл-нодам одной компании).

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

Одно решение суда, и все счета Пейпала могут быть заблокированы, а сервера конфискованы. Какая тут сохранность данных.
 И 1000 серверов Пейпала Вас не спасет, если Пейпал решит заблокировать Ваши средства.  Мне не будет греть душу мысль о том, что мои данные в Пейпале хорошо хранятся, если я не будут иметь доступ к ним.
Quote
1. Чтобы подключиться к пейпалу, нужно получить от него разрешение.
2. Пейпал контролирует твои средства, которые ты ему обязать доверить.
3. Ты не можешь уйти к другому пейпалу. Вернее, другой "пейпал" будет точно таким же, как и этот.

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

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

Назовите хотя бы субъекта, у которого есть шансы, с Вашей точки зрения, получить контроль над Биткоином. Иначе, Ваше утверждение выглядит голословным.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 03, 2019, 03:41:52 PM
 #53


То есть, правило такое: размер_блока_без_witness * 3 + полный_размер_блока < 4000000


Короче я понял, сейчас есть два определения: "максимальный размер блока" и "максимальный вес блока".
Максимальный размер блока = 1 мегабайт.
Максимальный вес блока = 4 мегабайт.


Мой ответ то верный.Smiley  Ведь по Вашим же условиям "навсегда отвалилось 100% фуллнод". А тут вдруг раз, и из рукава появляется "одна выжившая фуллнода".

Ладно, давайте объясню правильное решение
1. Если отвалится 100% фулл нод, но останутся 100% spv кошельков, то сеть биткоина не восстановится никогда
2. Если отвалится 100% spv кошельков и все кроме одной фулл ноды, то сеть биткоина восстановится через примерно два часа.
Вывод: spv кошельки не являются частью децентрализованной сети биткоина, а фулл ноды - являются.


Я думаю, что мы пришли к криптовалютам не потому, что они надежнее с точки зрения сохранения данных. Если бы нас волновало только это, то криптовалют бы не было. Поэтому Ваше утверждение, что децентрализация криптовалют нужна для устойчивости к сбоям, по меньше мере, звучит странно на страницах форума по криптовалюте. Децентрализация (открытая) нужна для независимости.  Устойчивость к сбоям это побочный эффект от децентрализации.


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


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

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

OpenTrade - Open Source Cryptocurrency Exchange
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
May 03, 2019, 05:57:08 PM
Last edit: May 03, 2019, 06:09:33 PM by GGUL
 #54


Мой ответ то верный.Smiley  Ведь по Вашим же условиям "навсегда отвалилось 100% фуллнод". А тут вдруг раз, и из рукава появляется "одна выжившая фуллнода".

Ладно, давайте объясню правильное решение
1. Если отвалится 100% фулл нод, но останутся 100% spv кошельков, то сеть биткоина не восстановится никогда
2. Если отвалится 100% spv кошельков и все кроме одной фулл ноды, то сеть биткоина восстановится через примерно два часа.
Вывод: spv кошельки не являются частью децентрализованной сети биткоина, а фулл ноды - являются.
Детский сад продолжается. При объяснении решения задачи меняется условие задачи.
У Пети 3 яблока, у Сережи 4. У кого больше. У Сережи. Неправильно, и достаем из кармана еще 2 яблока. Smiley

Попробуем уточнить понятие децентрализации.

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

Является ли такая система децентрализованной. Если нет, то где у этой системы центр.
Quote
Если рассматривать техническую часть, то биткоин является менее надежным средством для сохранности данных чем любой захудалый совковый банк, не говоря о пейпале с визой. И тенденция у биткоина, к сожалению, уверенно шагает в сторону дальнейшего уменьшения надежности, а помогают этой тенденции как раз таки spv кошельки.
Опять Вы кидаете придуманные Вами же утверждения. И опять попадаете впросак.
Биткоин работает практически  без остановки уже 10й год. Без перерывов на техническое обслуживание.
Была в первых годах проблема, которую решили хардфорком.

Чтобы совковый банк работал работал с такой надежностью, быть того не может. Это смешно и обсуждать тут нечего.
А по поводу Visa:
https://lenta.ru/news/2018/06/01/visa/
https://www.rbc.ru/finances/01/09/2016/57c837149a7947016001974f
я только взял первые ссылки из поиска.

Это, что касается работы этих систем.

Что касается сохранения данных. Биткоин еще ни разу не терял блокчейн. То есть 0 потерь данных. Как Вы собираетесь доказывать, что у совкового банка, визы и пейпала лучше обстоят дела. Я не знаю. Smiley
Quote
Назовите хотя бы субъекта, у которого есть шансы, с Вашей точки зрения, получить контроль над Биткоином. Иначе, Ваше утверждение выглядит голословным.
Я не буду даже пытаться давать подсказки, как прищемить яйца биткоину. Это не в моих интересах. Пусть над этой задачкой самостоятельно думают те, кому это может быть выгодно )
Очень удобная и дешевая отмазка. Становится скучно. Smiley
"Не буду говорить кто, но кто-то обязательно захватит контроль над Биткоином."
Это из серии: "Инопланетян не видел, но думаю, что они есть."
Таких утверждений насочинять можно море. Большого ума не требуется. Только вот ценности у таких утверждений - ноль.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 03, 2019, 06:16:18 PM
 #55


Попробуем уточнить понятие децентрализации.

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

Я понял ваше понятие децентрализации!
Децентрализация это когда нет центра. Правильно?
Хотите поиграть в дословное буквоедство? Что же, давайте, только предупреждаю, что походу дела несколько упоминаний детсада это классическая проекция.

Ну детсад, дак детсад: покажите мне центр пейпала для начала.


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

Хорошо смеяться последним.
А последним посмеется тот, кто доживет до момента когда в сети биткоина будет одна фулл нода и 100500 сиксилионов радостных децентрализованных spv кошельков.


OpenTrade - Open Source Cryptocurrency Exchange
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
May 03, 2019, 06:45:28 PM
 #56


Попробуем уточнить понятие децентрализации.

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

Я понял ваше понятие децентрализации!
Децентрализация это когда нет центра. Правильно?
Хотите поиграть в дословное буквоедство? Что же, давайте, только предупреждаю, что походу дела несколько упоминаний детсада это классическая проекция.

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

А Вы думаете, у Пейпала нет центра, нет руководства. Каждый отдел Пейпала работает так, как хочет, и никому не подчиняется.
Quote
Чтобы совковый банк работал работал с такой надежностью, быть того не может. Это смешно и обсуждать тут нечего.
Хорошо смеяться последним.
А последним посмеется тот, кто доживет до момента когда в сети биткоина будет одна фулл нода и 100500 сиксилионов радостных децентрализованных spv кошельков.
Боюсь, что можете не дождаться момента, когда надо начинать смеяться. Smiley
И это очередное утверждение, в котором обсуждать и нечего.
KTChampions
Legendary
*
Online Online

Activity: 2324
Merit: 1899


Leading Crypto Sports Betting & Casino Platform


View Profile
May 03, 2019, 06:52:25 PM
Merited by kzv (1)
 #57

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

..Stake.com..   ▄████████████████████████████████████▄
   ██ ▄▄▄▄▄▄▄▄▄▄            ▄▄▄▄▄▄▄▄▄▄ ██  ▄████▄
   ██ ▀▀▀▀▀▀▀▀▀▀ ██████████ ▀▀▀▀▀▀▀▀▀▀ ██  ██████
   ██ ██████████ ██      ██ ██████████ ██   ▀██▀
   ██ ██      ██ ██████  ██ ██      ██ ██    ██
   ██ ██████  ██ █████  ███ ██████  ██ ████▄ ██
   ██ █████  ███ ████  ████ █████  ███ ████████
   ██ ████  ████ ██████████ ████  ████ ████▀
   ██ ██████████ ▄▄▄▄▄▄▄▄▄▄ ██████████ ██
   ██            ▀▀▀▀▀▀▀▀▀▀            ██ 
   ▀█████████▀ ▄████████████▄ ▀█████████▀
  ▄▄▄▄▄▄▄▄▄▄▄▄███  ██  ██  ███▄▄▄▄▄▄▄▄▄▄▄▄
 ██████████████████████████████████████████
▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄
█  ▄▀▄             █▀▀█▀▄▄
█  █▀█             █  ▐  ▐▌
█       ▄██▄       █  ▌  █
█     ▄██████▄     █  ▌ ▐▌
█    ██████████    █ ▐  █
█   ▐██████████▌   █ ▐ ▐▌
█    ▀▀██████▀▀    █ ▌ █
█     ▄▄▄██▄▄▄     █ ▌▐▌
█                  █▐ █
█                  █▐▐▌
█                  █▐█
▀▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▀█
▄▄█████████▄▄
▄██▀▀▀▀█████▀▀▀▀██▄
▄█▀       ▐█▌       ▀█▄
██         ▐█▌         ██
████▄     ▄█████▄     ▄████
████████▄███████████▄████████
███▀    █████████████    ▀███
██       ███████████       ██
▀█▄       █████████       ▄█▀
▀█▄    ▄██▀▀▀▀▀▀▀██▄  ▄▄▄█▀
▀███████         ███████▀
▀█████▄       ▄█████▀
▀▀▀███▄▄▄███▀▀▀
..PLAY NOW..
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 03, 2019, 07:31:30 PM
 #58


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

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

Боюсь, что можете не дождаться момента, когда надо начинать смеяться. Smiley

А я боюсь, что дождусь, но смеяться не буду.

OpenTrade - Open Source Cryptocurrency Exchange
GGUL
Legendary
*
Offline Offline

Activity: 1468
Merit: 1102


View Profile
May 03, 2019, 07:56:48 PM
 #59


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

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

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

А фулл-ноды могут. Каждый из них волен поступать так, как хочет.
Хорошая попытка. Smiley

p/s/ Можно продемонстрировать на примере.
Введение цензуры в отношении каких-платежей.
1. В пейпал. Совет директоров соберется и проголосует. Если большинство за, то цензура вводится. Нет, значит,нет.
2. Фулл-ноды. Никакого голосования нет. Каждая фулл-нода решает, как ему поступить.
kzv (OP)
Legendary
*
Offline Offline

Activity: 1722
Merit: 1285

OpenTrade - Open Source Cryptocurrency Exchange


View Profile WWW
May 03, 2019, 07:59:58 PM
 #60


А фулл-ноды могут. Каждый из них волен поступать так, как хочет.


В каком смысле Huh

OpenTrade - Open Source Cryptocurrency Exchange
Pages: « 1 2 [3] 4 5 6 7 8 9 10 »  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!