Pages:
Author

Topic: Технологический стек Биткоина - page 2. (Read 1632 times)

jr. member
Activity: 30
Merit: 57
TumbleBit решение для конфиденциальных транзакций BTC

Для стека биткоина (https://t.me/CryptoBotan/888)

TumbleBit (https://github.com/BUSEC/TumbleBit) - это однонаправленный, несвязываемый платежный хаб. Протокол для анонимных платежей, полностью совместимый с протоколом Биткойн, так как реализован в виде слоя поверх сети.

В прошлом посте о CoinSwap (https://t.me/CryptoBotan/967) я говорил, что TumbleBit решает вопрос с посредником, который знает о транзакции между А и Б, и потенциально может повторно восстановить связь между участниками.

Решение было предложено (https://eprint.iacr.org/2016/575.pdf) в 2016 году и представлено на конференции Scaling Bitcoin. После этого, другой разработчик, Николас Дориер презентовал свою имплементацию на языке C# - NTumbleBit. После чего она стала оффициальной имплементацией TumbleBit.

Платежи TumbleBit совершаются через посредника - Тамблер (Tumbler). Этот посредник не может деанонимизировать участников, украсть средства или выдать платежи сам себе.

TumbleBit позволяет совершать быстрые оффчейн платежи  множеству получателей. Ничего не напоминает?? LN (https://t.me/CryptoBotan/600), Channel Factories (https://t.me/CryptoBotan/902). Платежи совершаются вне блокчейна, следовательно TumbleBit служит для масштабирования объема и скорости сети.

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

Работает это так (по-крайней мере я так понял, да еще и долго думал писать или нет):

Для совершения неотслеживаемых транзакций используется TumbleBit, который решает криптографическую головоломку RSA (https://t.me/CryptoBotan/824).

А отправляет BTC в платежный канал с Тамблером (хабом). Средства принимаются только после того, как А представит решение головоломки. Это схема "Puzzle-Solver Protocol".

Б "заключает соглашение" с хабом. Тамблер заплатит Б после представления решения головоломки. Это схема "Puzzle-Promise Protocol".

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

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

TumbleBit интегрирован с Tor, что уменьшает шанс быть раскрытым по IP, ведь пользователи подключаются к TumblerBit используя собственный адрес.

Сейчас идет поиск решений для повышения конфиденциальности сети Lightning при помощи TumblerBit.

Разработчики Stratis интегрировали TumbleBit в Breeze Wallet (пруф) (https://forklog.com/servis-mikshirovaniya-bitkoinov-tumblebit-budet-integrirovan-v-breeze-wallet/)

SPV (https://t.me/CryptoBotan/939) HiddenWallet поддерживает решение TumbleBit (пруф) (https://news.bitcoin.com/tumblebit-hiddenwallet-released/). Кстати, статьи, приведенные ниже, написаны разработчиком этого кошелька и он же интегрировал Tor в TumbleBit. ☺️

В транслейте читаются легко.

Объяснение TumbleBit Часть 1 (https://hackernoon.com/understanding-tumblebit-part-1-making-the-case-823d786113f3)
Объяснение TumbleBit Часть 2 (https://hackernoon.com/understanding-tumblebit-part-2-the-endgame-instant-anonymous-scaleable-payment-system-on-top-479e7eb9ca24)
Объяснение TumbleBit Часть 3 (https://hackernoon.com/understanding-tumblebit-part-3-not-even-the-tumbler-can-breach-your-privacy-how-8d49d89e3a0d)
GitHub NTumbleBit (https://github.com/NTumbleBit/NTumbleBit)
Documentation (https://eprint.iacr.org/2016/575.pdf)
sr. member
Activity: 938
Merit: 466
~[f#
К стеку Биткоина также можно отнести dPoW от Komodo

И причём здесь биткоин? Можно ли отнести к Ленину тех кто смотрит на него в мавзолее? Cool
Комодо использует Биткоин для нотаризации.

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

Это имеет отношению к использованию Биткоина для Data Anchoring . Этот кейс есть в табличке в первом посте.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
К стеку Биткоина также можно отнести dPoW от Komodo

И причём здесь биткоин? Можно ли отнести к Ленину тех кто смотрит на него в мавзолее? Cool
Комодо использует Биткоин для нотаризации.

И какое отношение один из пользователей имеет к технологическому стеку биткоина? По твоей логике выходит что любой пользователь интернета имеет отношение к технологическому стеку интернета из-за того что использует его для своих нужд.
sr. member
Activity: 938
Merit: 466
~[f#
К стеку Биткоина также можно отнести dPoW от Komodo

И причём здесь биткоин? Можно ли отнести к Ленину тех кто смотрит на него в мавзолее? Cool
Комодо использует Биткоин для нотаризации.
sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
К стеку Биткоина также можно отнести dPoW от Komodo

И причём здесь биткоин? Можно ли отнести к Ленину тех кто смотрит на него в мавзолее? Cool
jr. member
Activity: 30
Merit: 57
Технология CoinSwap

Для стека биткоина (https://t.me/CryptoBotan/888)

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

CoinSwap - это альтернативный метод обеспечения приватности для биткоина не связанный с хранением конфиденциальности, основанный на идее атомарных свопов. CoinSwap был предложен в 2013 году Грегори Максвеллом.

А может отправить BTC Б через В, где В не может их обмануть. А меняет BTC на то же количество BTC Б (минус комиссия), и делается это при помощи смарт-контрактов биткоина, чтобы исключить возможность мошенничества с любой из сторон. Проблема мошенничества решается при помощи "Hash time lock contracts" (HTLC) (https://t.me/CryptoBotan/819).

Протокол требует четырех опубликованных транзакций, но транзакции выглядят как обычные 2 из 2 escrow transaction (два escrow платежа, два ecrow выпуска).

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

Адрес А ---> эскроу адрес 1 ---> Адрес Б
Адрес Б  ---> эскроу адрес 2 ---> Адрес А

Если сравнивать CoinJoin и CoinSwap, то можно определить некоторые существенные недостатки и преимущества.

Операции CoinJoin (https://t.me/CryptoBotan/584) эффективны при объединении транзакций и могут экономить немного места. CoinSwap требует минимум четырех транзакций, хотя две Coinswap могут эффективно выполняться одновременно.

Набор анонимности CoinJoin равен количеству участников транзакции (или каскада транзакций). Набор анонимности CoinSwap - это все Coinswap происходящие одновременно, даже если пользователи не взаимодействуют друг с другом.

Транзакции CoinSwap выглядят как обычные транзакции 2-2 escrow. Если 2-2 escrow становятся общими, то операции CoinSwap могут быть менее идентифицируемыми, чем крупные операции CoinJoin с кучей выходов одинакового размера, и, следовательно, более устойчивыми к цензуре.

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

Для достижения конфиденциальности, CoinJoin должна иметь много участников. Это усложняет разработку ПО.

CoinSwap эффективно нарушает связь между транзакциями в блокчейне, но это не решает всех проблем приватности и взаимозаменяемости. Посредник в сделке, все же знает о транзакции и может повторно восстановить связь между ними.

Именно эти проблемы и решает TumbleBit, о чем и напишу чуть позже.
sr. member
Activity: 938
Merit: 466
~[f#
jr. member
Activity: 30
Merit: 57
Протокол конфиденциальности Dandelion

Для стека биткоина (https://t.me/CryptoBotan/888)

Начну я с презентации своих старых постов на тему конфиденциальности:

MimbleWimble (https://t.me/CryptoBotan/805)
CoinJoin, CoinShuffle и Stealth-Addresses (https://t.me/CryptoBotan/584)
Bulletproofs (https://t.me/CryptoBotan/878)

Теперь к нашим "Одуванчикам" (англ. Dandelion)...

Биткоин можно разделить на два уровня функционирования:

1) Прикладной уровень: управление транзакциями, блокчейн, майнинг, идентификация узлов в сети по PublicKey

2) Сетевой уровень: обработка связей между узлами через P2P-сеть, идентификация узлов по IP.

Суть в том, что сетевой уровень должен обладать:

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

б) анонимность. Невозможность связать сообщения от транзакциях с IP-адресом, который инициировал транзакцию.

Совершая транзакцию с узла, она передается всем связанным узлам, далее другим связанным, и по цепочке. Думаю, всем известный факт...Создается цепочка, которую можно отследить до начального узла. Каждый узел получающий данные о транзакции, становится доступным для запроса. Передача транзакции происходит с экспоненциальными задержками, что позволяет якобы усилить анонимность IP-адреса, но такое решение ее не обеспечивает. Ссылка (https://habr.com/ru/post/363769/), где объясняется способ деанонимизации транзакций и вычисление IP.

Летом 2017 года Shaileshh Bojja, Giulia Fant, Pramod Viswanath опубликовали BIP (https://github.com/dandelion-org/bips/blob/master/bip-dandelion.mediawiki#Implementation) - сетевое решение для Биткойна, которое легко интегрируется в существующие блокчейн-сети. Протокол Dandelion - это решение для улучшения анонимизации на сетевом уровне.

Dandelion повышает конфиденциальность пользователей, отправляя транзакции через фазу анонимности, прежде чем передать их по сети. Dandelion повышает конфиденциальность за счет нарушения симметрии диффузии (форма передачи транзакции), и смешивания транзакций путем пересылки сообщений из разных источников по одному и тому же пути.

Версия "Одуванчик" предложенная в 2017 году имела ряд недостатков и потому в 2018 году вышла новая версия - Dandelion++. Протокол делает попытку деанонимизации - непрактичным.

Работает это все по аналогии с одуванчиком (см. рисунок ниже):

1) Stem Phase (фаза стебля)

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

2) Fluff Phase (фаза пуха)

Начало процесса диффузии (передачи транзакций в сеть).

"Распушивание" транзакции происходит либо:
- путем вероятностной игры, когда каждый узел, который получал транзакцию в фазе стебля с 90%-ой вероятностью, передает сообщение дальше
- путем истечения времени задержки, которое определяется индивидуально каждым узлом на фазе стебля.

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

Протокол не требует сложных вычислений и может быть развернут без каких-либо изменений в базовом протоколе сети Биткойн.

sr. member
Activity: 938
Merit: 466
~[f#


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

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

Почему они могут быть интересны ?

Сейчас на криптобиржах торгую очень опытные трейдеры. Это люди пришедшие из фонды, но уже успевшие получить хороший опыт на крипте.

А на рынках предсказаний (особенно поначалу) таких профи может не быть.

И человек, умеюший правильно оценивать вероятности, может неплохо там проявить и хорошо заработать ☺
Ставки являются популярной темой и людям проще разобраться в этом чем в трейдинге. Но с другой стороны это сложно для многих технически а кто сейчас этим занимается то это прошаренные ребята.
legendary
Activity: 2338
Merit: 1775
Catalog Websites
sr. member
Activity: 938
Merit: 466
~[f#
jr. member
Activity: 30
Merit: 57
Для стека биткоина(https://t.me/CryptoBotan/888)

Bitcoin Hivemind (http://bitcoinhivemind.com/) ( в прошлом Truthcoin) - это opensource, P2P протокол Oracle, предложенный Paul Sztorc и функционирующий как сайдчейн, который дает возможность вносить в блокчейн точные данные, позволяющие владельцам биткоинов спекулировать на рынке прогнозов. Т.е. он позволяет использовать BTC для создания "PM"- “prediction markets” (рынков прогнозирования) и участия в них.

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

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

Такие проекты как Augur (https://www.augur.net/) и Gnosis (https://gnosis.io/) опираются на понятие “Wisdom of the Crowd” - мудрость толпы - явление, в котором коллективные предсказания группы людей обычно более точны, чем индивидуальные, даже если толпа состоит не из экспертов, а один человек таковым является.

Hivemind является методом краудсорсинга для определения вероятных исходов событий и фокусируется на управлении, решая проблемы с многофакторным принятием решений.

У Hivemind есть пользователи и “employees”. Эти "employees" работают в "филиалах “(каждый филиал напоминает товарооборотную биржу) и голосуют за ”решения“ (результаты выборов или ценовые каналы), которые разрешают ”рынки" (торговые арены, определенные одним или несколькими решениями). Пользователи могут свободно создавать любые решения или рынки, которые им нравятся, несмотря на то, что они экономически конкурируют за ограниченные “слоты принятия решений”.

Hivemind - это сайдчейн, который использует двойную схему токенов с биткойном, функционирующим в качестве пользовательского уровня, и VoteCoins в качестве уровня репутации/“employees”. Ценность биткойна отражает именно то, что он делает — хранилище ценности, — в то время как VoteCoins используются для обозначения репутации пользователя на платформе.

Любой пользователь может создать рынок предсказаний, если он способен заплатить за него BTC.

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

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

На вопрос чем HiveMind лучше Augur и Gnosis, ответ прост...HiveMind - это P2P-протокол, а значит децентрализован, в отличие от двух других.

WhitePaper (http://bitcoinhivemind.com/papers/truthcoin-whitepaper.pdf)
jr. member
Activity: 30
Merit: 57
libMiniScetch - библиотека для согласования наборов.

Для стека биткоина
 (https://t.me/CryptoBotan/888)⬇️⬇️⬇️
libMiniSketch - это автономная библиотека API для построения и декодирования эскизов наборов, использующаяся для согласования компактных наборов.

В посте про Erlay (https://t.me/CryptoBotan/955), я упоминал, что MiniSketch используется для сверки и согласования транзакций.

Minisketch создает библиотеку данных, которая будет использоваться для построения эскизов наборов (наборов данных транзакций). Узлы и майнеры могут затем использовать эти наборы для сверки компактных наборов.

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

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

Эскизы имеют заданную емкость, и когда количество элементов в наборе не превышает эту емкость, libminisketch всегда будет восстанавливать весь набор из эскиза.

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

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

Мне понравилось вот такое описание решения :

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

У меня есть множество 3, 5, 7, 11, а у вас 3, 5, 7, 9, 11. Очевидно, что разница 9. Мы оба вычисляем сумму наших элементов:
3+5+7+11=26 - у меня
3+5+7+9+11=35 - у вас
Я посылаю вам свою сумму 26 и вы вычитаете ее из своей суммы. Разница равна 9.

GitHub (https://github.com/sipa/minisketch)
sr. member
Activity: 938
Merit: 466
~[f#
https://basicblockradio.libsyn.com/-110-square-crypto-ldk-bitcoin -  ББ-110: Арик Сосман (Square Crypto) об LDK и поддержке Bitcoin-экосистемы
https://basicblockradio.libsyn.com/-108-bluewallet-lightning - ББ-108: Игорь Корсаков (Bluewallet) о Lightning-кошельках
legendary
Activity: 1468
Merit: 1102
Erlay может существенно сократить объем пропускной способности (на ≈40%), необходимой для поддержания текущего уровня подключения между биткойн-узлами.
Это, конечно, хорошо. Лишний раз показывает, что еще много что можно оптимизировать в Биткоине только за счет программирования.

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

Сейчас у нас транзакций транслируется по сети где-то на 1.25мб каждые 10 минут, может вырасти до 1.5 мб.

"50% пропускной способности, необходимой для запуска узла используется для объявления транзакций. 45% - для ретрансляции данных о транзакции." - исходя из этого, на объявление транзакций приходится еще ~1.5мб каждые 10 минут. Итого, в среднем, каждая фулл-нода  на трансляцию транзакций тратит 3мб пропускной способности.

Для соединения 100мбит/сек.  а это ~10мб/сек, на это тратится, ВНИМАНИЕ, 0.3 секунды.  Каждые 10 минут фулл-нода тратит всего 0.3 секунды!!!
Внедрим оптимизацию Erlay - будет 0.15 сек. Это же ПШИК. Фулл-ноды просто не заметят этой оптимизации. Даже с помощью тестов, боюсь, нельзя будет увидеть. Это же на уровне статистической погрешности.

Можно взять соединение 10мбит/с . 3 сек на 10мин, после оптимизации 1,5 сек. Практически, нулевой эффект.


Что получается. На данный момент средний компьютер со средним интернетом с легкостью справляется с ролью фулл-ноды. Настолько легко, что любые оптимизации уже ничего не дают.
jr. member
Activity: 30
Merit: 57
Erlay - новый протокол выполнения транзакций.

Для стека биткоина
 (https://t.me/CryptoBotan/888)⬇️⬇️⬇️
Протокол был представлен в рассылке для разработчиков BTC (https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2019-May/016994.html) 28 мая 2019 года. Разработчиками решения являются: Грегори Максвелл, Питер Велле и Глеб Науменко.

Как известно, новая транзакция, при трансляции в сеть, отправляется на все узлы в сети.

Как это происходит:

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

Так как узлы совместно используют id транзакций с узлами, которые уже отправили транзакцию, образуется множество ненужных сообщений используемых в сети BTC. Эти сообщения "жрут" пропускную способность сети. 50% пропускной способности, необходимой для запуска узла используется для объявления транзакций. 45% - для ретрансляции данных о транзакции. Согласно разработчикам, 44% всего трафика - это избыточные сообщения.

Протокол Erlay сделает так, что в обработке транзакций будет участвовать только 8 узлов (в дальнейшем 32). Т.е. узлы, как и сейчас, будут использовать новые id транзакций со своими связанными узлами, но они будут отправлять id транзакции только 8-ми случайным узлам, даже если связей с другими узлами больше. Затем, связанные узлы запросят "Sketch", который содержит id для всех транзакций, принятых узлом, в компактной форме.

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

Этот протокол сверки уже разработан, но пока не разобран мной для стека, но не все сразу😅

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

Erlay может существенно сократить объем пропускной способности (на ≈40%), необходимой для поддержания текущего уровня подключения между биткойн-узлами.

Дополнительной плюшкой решения Erlay является улучшение конфиденциальности. Так как id транзакций не являются общими для всех узлов, то труднее отслеживать появление конкретных транзакций. Также, Erlay делает сеть более устойчивой к ряду нескольких атак, таких как: атака по времени (https://ru.wikipedia.org/wiki/%D0%90%D1%82%D0%B0%D0%BA%D0%B0_%D0%BF%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8) и атака Eclipse (https://eprint.iacr.org/2015/263.pdf)
sr. member
Activity: 938
Merit: 466
~[f#
https://arxiv.org/pdf/2002.02819.pdf -Ресерч про централизацию в  Латнинге
 Нашел вот более подробное описание работы Тапрут
Quote
Taproot: что это и зачем он нужен

(Этот пост — часть большого паззла. Дописав его я понял, что нужно было бы написать вводный пост по криптографии и некоторым важным механикам. Буду раскрывать тему постепенно.)

P2SH-транзакции (оплата на хэш скрипта), по сути, позволяют создавать смарт-контракты на Биткоине (хоть они и способны лишь проверять права доступа к биткам). Но по сравнению с обычным переводом битков у этого способа есть существенный недостаток: чтобы вывести битки с хэша скрипта, нужно раскрыть весь код скрипта, т. к. у ноды должна быть возможность взять хэш от кода скрипта и сравнить его с хэшем, который был записан в выходе предыдущей транзакции. Это серьёзный удар по анонимности: мало того, что раскрывается сам факт оплаты на скрипт, так ещё и раскрывается сам скрипт, в который часто заносятся адреса других участников транзакции. Taproot призван исправить эту ситуацию, сделав P2SH-транзакции неотличимыми от P2PKH и избавив от необходимости раскрывать код скрипта. Но не все так радужно, у новой механики есть и недостатки.

Taproot кардинальным образом меняет способ организации кода в Биткоин-скриптах. Теперь, если код содержит несколько логических веток (т. е. содержит операторы IF/ELSE/ENDIF), то каждая логическая ветка становится листом в дереве Меркла. (Дерево Меркла это обычное бинарное дерево, в котором листья хранят хэши данных, а узлы — хэши от сложенных значений дочерних узлов.) Если точнее: скрипт разбивается на несколько частей (каждая часть — отдельная логическая ветка), в листьях дерева записываются хэши от этих скриптов-веток, и дальше от этих листьев строится дерево. Хэш из корня такого дерева дальше используется для построения адреса, на который производится перевод. Само дерево нигде не хранится и не публикуется в блокчейне при расходовании битков.

Но само по себе такое скриптовое дерево это ещё не Taproot. Taproot это криптографическая схема, которая позволяет создать публичный ключ, владение которым может быть проверено двумя способами: подписью (стандартный и всем нам известный сценарий) или проверкой алгоритма создания этого ключа. (Автор этой схемы, кстати, небезызвестный Gregory Maxwell.) Taproot в связке со скриптовым деревом позволяет создать такой публичный ключ, который будет соответствовать либо:
 1. Одному листу скриптового дерева, который (лист) был выбран заранее перед созданием ключа. Чтобы вывести биткоины, нужно сделать подпись, используя хэш этого листа в качестве приватного ключа. Этот способ и является самым анонимным в алгоритме Taproot. Вы переводите на публичный ключ и предоставляете подпись, когда выводите с него. Но такой вариант возможен только для одного листа из дерева, т. е. только для одной логической ветки скрипта. Поэтому тут нужно выбирать ветку, которая в вашем скрипте будет использоваться чаще остальных.
 2. Любому другому листу, для которого вы раскроете: код скрипта, путь в дереве, правильные входные параметры. Этот способ используется для всех остальных логических веток, и он менее анонимен. Не смотря на это, он все равно лучше чем P2SH, т. к . вы раскрываете только часть скрипта.

Формула создания ключа-адреса выглядит так:
Q = P + hash(P || treeRoot)•G

Q — Taproot-адрес, на который переводятся битки. (Как видно, в формуле не участвует приватный ключ, т. е. публичный ключ создаётся не из приватного — почему такое возможно, разберём позже.) P — некоторый публичный ключ, который уникален для каждого скрипта и для которого известен приватный ключ. treeRoot — хэш из корня скриптового дерева. hash — функция хеширования (SHA-256). || — конкатенация, • — операция умножения по модулю, которая используется для получения публичного ключа из приватного.

Получается вот что:
 1. Берём хэш листа, соответствующего логической ветке, которая, как мы считаем, будет использоваться чаще всего. Используем этот хэш в качестве приватного ключа (они оба имеют одинаковый размер — 32 байта) и считаем соответствующий ему публичный ключ. Получаем пару p, P.
 2. Складываем (операция ||) P с хэшем из корня скриптового дерева.
 3. Хэшируем.
https://t.me/blockndev/30

Quote
Получаем 32-байтный хэш, который опять используем в качестве приватного ключа (пусть будет x) и для которого также находим публичный (операция `hash(...)•G`). Получаем публичный ключ X.
 4. Складываем ключи P и X. Это возможно, потому что публичные ключи это точки на эллиптической кривой.
 5. Получаем публичный ключ Q. Соответствующий ему приватный ключ можно получить, если сложить приватные ключи p и x (это свойство называется гомоморфизм, и мы его ещё не раз будем разбирать).

Отправляем на Q биткоины. Как потом их вывести с такого адреса? Есть два способа:
 1. Предоставить подпись, сделанную приватным ключом q. Зная приватный ключ p и посчитав приватный ключ x, их нужно сложить, и получится ключ q. Приватный ключ p знает только тот, кто знает хэш корня дерева (а значит и весь скрипт) и скрипт, который был записан в ветке, которая используется по-умолчанию (шаг 1 из предыдущего списка).
 2. Воссоздать ключ Q. Зная P, скрипт-ветку, его входные параметры, путь до него в дереве, можно посчитать хэш корня дерева и воспроизвести Q. В новой транзакции вам нужно будет передать все эти данные, и нода сама посчитает Q и сравнит с Taproot-адресом, который был записан в предыдущей транзакции. Входные параметры скрипта должны быть верными, т. е. скрипт должен завершиться успешно.

Вот, в общем-то, и всё.

Получается, что скрипты в открытом виде почти полностью убираются из блокчейна Биткоина, но при этом возрастает нагрузка и ответственность на кошельки и сторонние приложения, т. к. теперь именно им нужно реализовывать вот эти сложные криптографические механики.
https://t.me/blockndev/31
jr. member
Activity: 30
Merit: 57
Для стека биткоина

 (https://t.me/CryptoBotan/888)

Биткоин доступный на Ethereum. Сегодня про tBTC.
⬇️⬇️⬇️
DEX в сети Ethereum имеет существенный недостаток: они позволяют торговать только активами, основанными на Ethereum. tBTC позволит держателям BTC подключаться к (DeFi) Ethereum.

Хотя уже есть подобные решения, но есть нюансы...

1) Например Liquid (https://t.me/CryptoBotan/890). Проблема в том, что BTC, запираются на мультивалютном кошельке, подписывают который участники проверенные BlockStream. Они проверяют сайдчейн и голосуют за подписание блоков, плюс и одобряют peg-out транзакции.

2) WBTC (https://www.wbtc.network/#) - это поддерживаемый BTC токен ERC-20. Консорциум проводит голосование за добавление и удаление хранителей, управляющих BTC - резервами токена. Эти хранители управляют multisig кошельком BTC, контролируют ключи, перемещают их и создают WBTC на Ethereum.

Проблема состоит в том, что нужно доверять свои средства третей стороне.

tBTC - это депозитный токен (TDT) ERC-20 с поддержкой BTC 1:1. Это способ для юзеров вносить свои BTC и создавать биткойн-токены на Ethereum без посредников и KYC.

Это проект, предложенный Cross Chain Group (CCG) (https://www.crosschain.group/) и крупный dApp, построенный на Keep Network (https://keep.network/), автономной сети узлов, считывающих и записывающих данные в сети Ethereum и Bitcoin.

Как это происходит? Я постарался подробно описать принцип работы, но если что, жду фидбэка😉

Небольшая вводная:

tBTC (TDT) - это депозитный токен, который привязан к конкретному депозиту tBTC Bitcoin UTXO. Удержание токена позволяет выкупить этот депозит tBTC за оригинальный биткоин, используемый для его финансирования. Владелец TDT обладает исключительным правом выкупа базового UTXO до истечения срока действия депозита (6 месяцев).

Существует отдельный контракт, называемый торговым автоматом TBTC, который используется для чеканки взаимозаменяемых TBTC в обмен на TDT.

Депонирование BTC для создания TBTC.

Вкладчик размещает облигационный контракт (ETH) и отправляет запрос депозита в смарт-контракт tBTC на Ethereum. Отправка запроса сигнализирует смарт-контракт о том, что вкладчик хочет депонировать BTC и создать TBTC.

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

Создается адрес депозита и система случайным образом выбирает группу подписчиков, которые генерируют BTC-кошелек. Этот кошелек требует M из N подписей для генерации действительных транзакций. Подписавшие должны внести залог в размере 1,5х суммы BTC, депонированного в ETH.

Контракт создает tBTC (токен депозита) и токен ERC-721 (NFT токен -токен получателя) и они отправляются вкладчику. Токен получателя используется для управления депозитом.

BTC отправляются на указанный адрес, после чего отправляется SPV (https://t.me/CryptoBotan/939)-подтверждение платежа из цепочки BTC в депозитный контракт на цепочке ETH. После чего создается TBTC из контракта и передаются вкладчику.

Для обмена TBTC в BTC есть возможность использовать токен депозита tBTC (TDT) для погашения точного UTXO вашего первоначального депозита, если он находится в пределах установленного 6-месячного периода. Есть несколько способов обмена в BTC:

1) Если есть TDT, то нужно отправить плату подписчикам (0.005 TBTC). Это даст точное UTXO связанное с TDT.
2) Если TDT нет, но нужны BTC для TBTC, то можно заплатить 0.005 TBTC подписавшему, чтобы выкупить BTC из системы
3) Если нет TDT, но есть депозит, который существовал в системе больше 6 месяцев, то он обойдется в 1TBTC, чтобы выкупить его за 1 BTC. В таком случае сборы подписчикам оплачивает текущий владелец депозита tBTC.

Система просит подтвердить запрос BTC на блокчейне Ethereum. Затем выпускаются BTC и подтверждается выпуск по цепочке ETH. Затем отправляется подтверждение транзакции BTC в цепочку ETH, инициируя платеж подписавшего.
///
tBTC полагается на ценовые каналы, облигации и арбитражные возможности, для поддержания честной работы системы. DeFi получит доступ к ликвидности биткойна. Протокол автоматизации инвестиций сможет снизить риски для своих пользователей, которые связаны с хранением и ценами, при помощи интеграции tBTC. Вся подробная информация о tBTC по ссылочке http://docs.keep.network/tbtc/index.pdf
sr. member
Activity: 938
Merit: 466
~[f#
К стеку Биткоина также можно отнести dPoW от Komodo https://komodoplatform.com/delayed-proof-of-work/
Кстати Комодо запускает стейблкоин на Биткоин-активах https://www.cryptoninjas.net/2020/02/10/komodo-launches-stablecoin-module-collateralized-with-btc-based-assets/

Еще вот интересный проект нашёл. Будут делать Делать Дефи для Биткоина https://www.meter.io/

https://bitcoinops.org/en/newsletters/2020/01/29/ -Bitcoin Optech Newsletter #82
https://bitcoinops.org/en/newsletters/2020/02/05/ - Bitcoin Optech Newsletter #83
https://bitcoinops.org/en/newsletters/2020/02/12/ - Bitcoin Optech Newsletter #84


https://www.youtube.com/watch?v=5SjqMp9KDUE - Биткоинизация / Не только халвинг: технологии, которые изменят Биткоин уже в 2020 — Глеб Науменко
legendary
Activity: 2450
Merit: 4415
🔐BitcoinMessage.Tools🔑
~
Если разработки приведут к успеху, нам обещают фулноды на мобильных устройствах😅

Кому интересно подробнее, вот ссылочка (https://eprint.iacr.org/2019/611) на публикацию Тадж Драя

Достаточно интересное решение, которое рано или поздно должно быть реализовано в том или ином виде: размер блокчейна и требования к дисковому пространству при запуске полной ноды не могут расти вечно, нужно работать над оптимизацией уже сейчас. Не знаю, возможно ли будет уменьшить размер настолько, что бы было возможным запускам на смартфонах, но если это окажется реализуемым, то это поспоспособствует не только резкому увеличению децецентрализации сети Биткойна, но и придаст самой сети некую "подвижность", будет сложнее препятствовать развертыванию узлов и цензурируемость будет приближаться к нулю.
Pages:
Jump to:
© 2020, Bitcointalksearch.org