Для обеспечения надёжности хранить старые состояния не требуется, достаточно последнего актуального состояния и уверенности в том, что оно корректно. Благодаря этому в Ethereum не два а три типа узлов
Это точно так же справедливо и для Bitcoin:
полный узел хранящий все блоки
полный узел с опцией -prune (хранит только непотраченные выходы)
Для приема платежей можно запускать bitcoind с опцией -prune=551. В этом случае он будет занимать около 4Gb. И это все равно будет полная нода — с полной валидацией всех блоков локально.
Он, конечно, путает отслеживание транзакций с атакой 51%, но вы тоже путаете. Для атаки на PoW системы нужно более 50% мощностей, а для атаки на PoS системы — более 50% запаса монет. TON — PoS система.
Всё было замечательно до строчки self::CHARS[random_int(0, 63)];
Какой ужасный способ генерировать уникальные идентификаторы. Хороший UUID имеет вероятность коллизии намного меньше расчетной за счет использования меток времени и идентификатора локальной ноды.
Во-первых, в Bitcoin как ни странно все построено на доверии.
Сатоши от таких слов в гробу перевернулся, если он мертв, конечно.
Доверие к ПО и доверие к системе — это несопоставимо разные уровни дискуссии. Тогда уж можно обсудить и доверие к оборудованию на которых запускается ПО. Если сам процессор не спаял, то система основана на доверии? Это тупиковая ветвь разговора.
Я говорю о принципах самой системы. И эти принципы гласят, что в Lightning нет доверия ни к одному участнику сделки. Это краеугольный камень системы. Звенья не доверенные.
Откуда опять появилось слово «доверенные»? Боб может быть жуликом и вором, но все равно не сможет украсть деньги Алисы и Кэрол. Сеть Lightning — это сеть без доверия. В этом ее прелесть и по этому ее так сложно запустить. Сеть с доверием любой джуниор напишет за выходные на коленке.
Lightning Network позволяет проводить транзакции не только между двумя агентами, но и создавать атомарные транзакции с тремя участниками — если есть открытые платежные каналы между Алисой и Бобом, и Бобом и Кэрол, то Алиса может атомарно отправить биткоины Кэрол с участием Боба, но не доверяя Бобу роль посредника. Именно это делает сеть сетью, а не просто кучей платежных каналов.
Почитайте здесь главу «Сеть».
Я знаю о пересчете сложности и говорю не об этом. Если уйдет коммерческий майнинг и останутся только майнеры-добровольцы, то сложность, скорее всего, сильно упадет, потому что всё домашнее оборудование всех пользователей не сравнится по мощности с датацентрами асиков. Но сами асики никуда не денутся. Их выключат, но они не исчезнут как сущность. Поэтому увеличится риск атаки двойной траты и придется выбирать такое количество подтверждений, чтобы затраты на майнинг были больше выгоды от атаки двойной траты.
Я повторюсь — в lightning вы не потеряйте средства, если хаб (lightning узел) умрет, обанкротится и т.д. Ни месячную сумму трат, нисколько. С Lightning Network вы по прежнему полностью контролируете свои биткоины.
Это не совсем так. Будут майнить те, кто хочет пользоваться сетью. Биткоин выживет. Другой вопрос, что сильно упадет сложность майнинга и соответственно придется ждать намного больше подтверждений транзакций, чем сейчас.
Это неправда. У неподтвержденных транзакций есть время жизни. После этого они исключаются из mempool.
Более того — не так давно разработчики добавили возможность увеличить комиссию в неподтвержденной транзакции (replace by fee).
Есть ещё один вариант протолкнуть зависшую транзакцию — потомок платит за родителя — по сути потратить неподтвержденный вход с комиссией достаточной для включения в блок и родительской, и новой транзакций.
В Bitcoin нет центра принятия решения. Сеть работает только на консенсусе всех участников. Если все согласятся — увеличат. Если не все согласятся — будет очередной форк.
Собственно с последней попытки крупных игроков принять решение за всех прошло дней десять (гуглить segwit2x). Она ожидаемо провалилась.
Lightning Network проектируется как сеть не требующая доверия. Падение или скам одного (или всех) узла не приведет к потере пользователем денег. Аналогия с банком не корректна.
Это довольно сложно, если учесть, что среднее время генерации блока 10 минут :)
А что у вас за проект, если не секрет?
sudo du -h
77M ./blocks/index
516M ./blocks
424K ./database
2.9G ./chainstate
3.4G .
551M — это размер под блоки.
2.9G — chainstate — база непотраченных выходов (балансов).
Всего — 3.4G
self::CHARS[random_int(0, 63)];Какой ужасный способ генерировать уникальные идентификаторы. Хороший UUID имеет вероятность коллизии намного меньше расчетной за счет использования меток времени и идентификатора локальной ноды.
Сатоши от таких слов в гробу перевернулся, если он мертв, конечно.
Доверие к ПО и доверие к системе — это несопоставимо разные уровни дискуссии. Тогда уж можно обсудить и доверие к оборудованию на которых запускается ПО. Если сам процессор не спаял, то система основана на доверии? Это тупиковая ветвь разговора.
Я говорю о принципах самой системы. И эти принципы гласят, что в Lightning нет доверия ни к одному участнику сделки. Это краеугольный камень системы. Звенья не доверенные.
Почитайте здесь главу «Сеть».
Более того — не так давно разработчики добавили возможность увеличить комиссию в неподтвержденной транзакции (replace by fee).
Есть ещё один вариант протолкнуть зависшую транзакцию — потомок платит за родителя — по сути потратить неподтвержденный вход с комиссией достаточной для включения в блок и родительской, и новой транзакций.
Собственно с последней попытки крупных игроков принять решение за всех прошло дней десять (гуглить segwit2x). Она ожидаемо провалилась.