Некоторые люди обеспокоены масштабируемостью Биткойна. Блокчейн уже достиг почти 1 ГБ для загрузки и хранения, что не совсем в духе современного тонкого клиента, особенно в отношении мобильных устройств.
Теперь, обратившись к Satoshi Paper , похоже, они уже придумали решение:
7. Восстановление места на диске
После того, как последняя транзакция в монете будет скрыта под достаточным количеством блоков, потраченные транзакции перед ней могут быть отброшены для экономии места на диске. Чтобы облегчить это, не нарушая хэш блока, транзакции хешируются в дереве Меркла [...], при этом в хеш блока включается только корень. Затем старые блоки можно уплотнить, обрубив ветки дерева. Внутренние хэши хранить не нужно.
Заголовок блока без транзакций будет иметь размер около 80 байт. Если предположить, что блоки генерируются каждые 10 минут, 80 байт * 6 * 24 * 365 = 4,2 МБ в год. С компьютерными системами, обычно продающимися с 2 ГБ ОЗУ по состоянию на 2008 год, и законом Мура, предсказывающим текущий рост на 1,2 ГБ в год, хранение не должно быть проблемой, даже если заголовки блоков должны храниться в памяти.
Это уже реализовано для текущей версии? «4,2 МБ в год» говорит о том, что нет. Он уже есть в дорожной карте? Сталкивались ли разработчики с непредвиденными препятствиями? Будет ли решение столь эффективным, как было обещано?
Блокчейн уже достиг почти 1 ГБ для загрузки и хранения,
Предложение в статье Сатоши не снижает требования к загрузке , а только требования к хранилищу (см. этот пост в списке рассылки bitcoin-dev). Если вы не можете полагаться на какую-то доверенную третью сторону, вам все равно необходимо загрузить как минимум все заголовки блоков.
Если вы загружаете только заголовки, а не полные блоки, и рассматриваете «похороненные X блоков глубоко» как доказательство того, что транзакция действительна , вы открыты для нового класса атак , которые не повлияют на обычный клиент с полной цепочкой. Обычный клиент рассматривает «похороненные X блоков глубоко» как доказательство того, что транзакция не будет отменена позже — проверка, чтобы убедиться, что входные данные транзакции не израсходованы , полностью отделена от этого. Тонкий клиент не может проверить, не израсходованы ли входные данные транзакции, потому что у него есть только заголовки блоков — у него нет копии самих транзакций.
Самые тревожные из этих новых атак должны исходить от вашего интернет-провайдера, но в наши дни wi-fi-кафе это не такой надуманный сценарий. Так что используйте на свой страх и риск.
Я собирал вики-страницу , посвященную всем этим вопросам.
В настоящее время нет официальных облегченных клиентов, подобных этому, и, насколько мне известно, они не разрабатываются. Однако есть пара неофициальных клиентов, таких как StrongCoin или Electrum, которые содержат еще меньше данных. Однако они работают в режиме клиент-сервер, а не в одноранговом режиме, как клиент, описанный Сатоши.
Вполне возможно, что такой клиент никогда не будет создан, так как хранить только заголовки блоков само по себе немного бессмысленно. Вы все равно должны полагаться на сеть, предоставляющую вам действующую цепочку блоков, вы не получите многого от хранения заголовков, и если облегченные биткойн-клиенты, полагающиеся на серверы, станут широко доступными и принятыми, вы можете обойтись еще меньшим количеством данных.
Роланд Кофлер
Роланд Кофлер
Тайлер