Telegram Group & Telegram Channel
​​
Хотел написать о Neutrino для стека Bitcoin, но прежде нужно разобраться вот с чем.

Технология SPV "Simplified Payment Verification" (SPV)
⬇️⬇️⬇️
В оригинальном White Paper Bitcoin (раздел 8), Сатоши Накамото описал технологию "Simplified Payment Verification" (SPV) - "Упрощенная проверка платежей".

(Выдержка из White Paper Bitcoin)

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

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

Используя SPV необходимо знать только корень Мёркла каждого блока для проверки транзакций. Следовательно появляется возможность хранения 80 байт на блок, а не 1Мб.

SPV выполняет 2 задачи:

1) Гарантирует, что ваши транзакции находятся в блоке.
2) Обеспечивает подтверждение того, что дополнительные блоки были добавлены в блокчейн.

Но не все так гладко.

SPV кошелек не проверяет никакие другие транзакции в блоке, но чисто гипотетически, блок может быть недействителен. Допустим, что сообщество приняло новые правила консенсуса и относительно большая группа узлов, которая не принимает новое правило, забыла обновиться. Несогласные узлы будут быстро отделены от сети, но пока это не произойдет, SPV клиент временно будет введен в заблуждение и будет считать, что не обновленные узлы имеют верную и самую длинную цепочку. Поэтому управление полным узлом обеспечивает «более быструю» систему безопасности – можно проверять все транзакции самостоятельно.

///

В 2013 году BIP0037 был добавлен в ядро биткойна, чтобы сделать SPV жизнеспособным. BIP0037 добавил новую поддержку к протоколу, который позволяет одноранговым узлам уменьшать объем передаваемых данных транзакций (создавались Light-узлы). Light-узлы могли запрашивать доказательства того, что определенная транзакция произошла в определенном блоке.

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

BIP0037 имеет несколько недостатков:

Существуют векторы отказа в обслуживании (из-за необходимости запускать множество фильтров) для использования серверов, которые отвечают на запросы BIP0037.

Фильтры SPV-клиентов имеют абсолютно нулевую конфиденциальность, так как SPV клиенты должны обращаться к полным узлам и запрашивать информацию об определенных адресах и транзакциях. Хотя эту проблему и решает фильтр Блума, но использование узла SPV вместо полного дает пользователю более слабую конфиденциальность и безопасность. Фильтр Блума позволяет запрашивать конкретные транзакции, соответствующие шаблону, а не конкретные данные.

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

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



tg-me.com/CryptoBotan/939
Create:
Last Update:

​​
Хотел написать о Neutrino для стека Bitcoin, но прежде нужно разобраться вот с чем.

Технология SPV "Simplified Payment Verification" (SPV)
⬇️⬇️⬇️
В оригинальном White Paper Bitcoin (раздел 8), Сатоши Накамото описал технологию "Simplified Payment Verification" (SPV) - "Упрощенная проверка платежей".

(Выдержка из White Paper Bitcoin)

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

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

Используя SPV необходимо знать только корень Мёркла каждого блока для проверки транзакций. Следовательно появляется возможность хранения 80 байт на блок, а не 1Мб.

SPV выполняет 2 задачи:

1) Гарантирует, что ваши транзакции находятся в блоке.
2) Обеспечивает подтверждение того, что дополнительные блоки были добавлены в блокчейн.

Но не все так гладко.

SPV кошелек не проверяет никакие другие транзакции в блоке, но чисто гипотетически, блок может быть недействителен. Допустим, что сообщество приняло новые правила консенсуса и относительно большая группа узлов, которая не принимает новое правило, забыла обновиться. Несогласные узлы будут быстро отделены от сети, но пока это не произойдет, SPV клиент временно будет введен в заблуждение и будет считать, что не обновленные узлы имеют верную и самую длинную цепочку. Поэтому управление полным узлом обеспечивает «более быструю» систему безопасности – можно проверять все транзакции самостоятельно.

///

В 2013 году BIP0037 был добавлен в ядро биткойна, чтобы сделать SPV жизнеспособным. BIP0037 добавил новую поддержку к протоколу, который позволяет одноранговым узлам уменьшать объем передаваемых данных транзакций (создавались Light-узлы). Light-узлы могли запрашивать доказательства того, что определенная транзакция произошла в определенном блоке.

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

BIP0037 имеет несколько недостатков:

Существуют векторы отказа в обслуживании (из-за необходимости запускать множество фильтров) для использования серверов, которые отвечают на запросы BIP0037.

Фильтры SPV-клиентов имеют абсолютно нулевую конфиденциальность, так как SPV клиенты должны обращаться к полным узлам и запрашивать информацию об определенных адресах и транзакциях. Хотя эту проблему и решает фильтр Блума, но использование узла SPV вместо полного дает пользователю более слабую конфиденциальность и безопасность. Фильтр Блума позволяет запрашивать конкретные транзакции, соответствующие шаблону, а не конкретные данные.

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

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

BY CryptoBotan




Share with your friend now:
tg-me.com/CryptoBotan/939

View MORE
Open in Telegram


CryptoBotan Telegram | DID YOU KNOW?

Date: |

If riding a bucking bronco is your idea of fun, you’re going to love what the stock market has in store. Consider this past week’s ride a preview.The week’s action didn’t look like much, if you didn’t know better. The Dow Jones Industrial Average rose 213.12 points or 0.6%, while the S&P 500 advanced 0.5%, and the Nasdaq Composite ended little changed.

CryptoBotan from ms


Telegram CryptoBotan
FROM USA