Представляем первую статью из новой серии «Particl объясняет». В этой серии статей будут разъясняться доступным для всех языком различные технические аспекты платформы Particl.  Cтатьи дадут вам хорошие базовые знания о техническом функционировании платформы и в дальнейшем послужат путеводителем для объяснения этих функции новому члену сообщества или пользователю платформы.

. . .

Для финансовых транзакций на платформе Particl используется конфиденциальная криптовалюта PART с разными уровнями анонимности.  Пользователи могут выбирать между 3 типами транзакций (публичными, “слепыми”, анонимными), когда используют монеты PART для платежей .  Каждый из этих типов транзакций обеспечивает определенный уровень конфиденциальности и имеет свой собственный набор свойств.
В этой статье мы разберем все эти типы транзакций, расскажем о каждом подробно и объясним для чего и когда вам нужно их использовать. Транзакции на платформе Particl перестанут быть чем-то неведомым для вас после прочтения!

Содержание (нажмите для перехода)

Публичные транзакции

Протокол: Bitcoin

Уровень конфиденциальности: низкий

Стоимость транзакции: низкая (~ 0,000346 PART)Segwit:

Да (снижает вес транзакций на ~20%)

Доверенная установка: Нет

Программируемые выходы: Да

По умолчанию все транзакции отправляются как «публичные транзакции», если вы не выбрали протокол конфиденциальности чтобы скрыть ваши транзакции в блокчейне. И поскольку Particl основан на кодовой базе Биткоин, то они записываются в блокчейн точно так же, как обычно записываются все транзакции Биткоин.

Примечание.

Ядро Particl всегда своевременно обновляется в соответствии с последними версиями ядра Биткоина. Таким образом, все исправления, улучшения безопасности и обновления ядра Биткоина также интегрируются и в ядро Particl.

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

Blind/“слепые” транзакции

Протокол: Confidential Transactions(СТ)

Уровень конфиденциальности: средний (суммы транзакций скрыты)

Стоимость транзакции: средняя (~ 0,001962 PART)

Segwit: Да (снижает вес транзакций CT на ~ 48%)

Bulletproofs: Да (уменьшает размер доказательств на ~ 70%)

Доверенная установка: Нет

Программируемые «выходы»: Да

Техническая документация: https://elementsproject.org/features/confidential-transactions/investigation

Blind/“слепыми” транзакциями называются те, суммы которых скрыты в блокчейне и известны только двум участникам сделки - отправителю и получателю. Этот тип транзакции использует протокол конфиденциальности Confidential Transactions (CT).

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

Примечание.

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

Blind/“слепые” транзакции используют метод проверки с нулевым разглашением, чтобы криптографически гарантировать, что нельзя потратить больше монет чем доступно. В частности, они используют метод, который называется криптографическим доказательством диапазона (Rangeproof), который гарантирует, что количество монет, отправленных в данной транзакции, находится между двумя значениями.

Rangeproof

Rangeproof (криптографическое доказательство принадлежности к диапазону) - это криптографический протокол, используемый для проверки того, что сумма платежа положительна либо равна нулю, но без фактического раскрытия самой суммы транзакции. Без этих доказательств диапазона было бы возможно установить сумму транзакции настолько большой, что это привело бы к отрицательным значениям, и таким образом, позволило бы генерировать монеты из воздуха. Злоумышленник мог бы добавлять потраченные или другие «выходы», генерируя дополнительные монеты. Отрицательный результат приведет к тому, что сумма отправки все равно будет равна нулю.    Обратной стороной доказательств диапазона является то, что они довольно сильно утяжеляют блокчейн. Их размер зависит линейно от количества выходов транзакции и битов в диапазоне доказательства. Из-за такой вот “тяжелой” природы эти доказательства диапазона занимают большую часть общего размера  Blind/“слепой” транзакции.   Эта неудобная реальность приводит к тому, что при использовании этого протокола транзакции имеют больший размер, чем обычные публичные. Транзакция большего размера, кроме более высоких комиссий,  также приводит к тому, что и размер блокчейна экспоненциально растет по мере использования.  Таким образом, работа с более громоздким блокчейном становится все более и более неудобной по мере того, как в нем будет записано все больше и больше транзакций CT.

Примечание.

Эта проблема масштабируемости - одна из основных причин, по которым команда Particl задержала перенос своей реализации RingCT в основную сеть. Было решено подождать, пока будет найдено правильное решение этой проблемы масштабируемости, и тогда появились Bulletproofs.

Bulletproof

Техническая документация: https://eprint.iacr.org/2017/1066.pdf

Отчет по аудиту Quarkslab о реализации Bulletproofs в Particl: https://blog.quarkslab.com/resources/2019-07-05-audit-particl-bulletproof-mlsag/particl_audit_report.pdf

Bulletproofs - это новое поколение криптографических доказательств принадлежности к диапазону, которое взвешивается скорее логарифмически чем линейно. В тех. документации они упоминаются как не-интерактивные короткие доказательства с нулевым разглашением. Если сказать проще, то Bulletproofs - это революционное улучшение по сравнению с обычными защитами диапазона типа Rangeproofs, поскольку их размер примерно на 70% меньше. А так как именно защита диапазона составляет большую часть размера самой транзакции CT, то это в той же мере снижает комиссии за транзакции и пространство, занимаемое транзакциями в блокчейне.

Забавный факт:

термин «Bulletproofs» придумал Shashank Agrawal, когда он описал новый тип доказательства диапазона так: «краткий как пуля, но с пуленепробиваемой безопасностью».

Анонимные транзакции  (протокол RingCT)

Протокол: RingCT

Уровень конфиденциальности: высокий (суммы транзакций и участники скрыты)

Стоимость транзакции: от средней до высокой, в зависимости от количества примесей, используемых в кольцевых подписях, или от размера колец.Стоимость транзакции для настроек низкой конфиденциальности: ~ 0,003232 PART Стоимость транзакции для настроек высокой конфиденциальности: ~ 0,009032 PART

Segwit: Да (снижает вес транзакции ~ 47%)

Bulletproofs: Да (уменьшает размер rangeproofs на ~ 70%)

Доверенная установка: Нет

Программируемые «выходы»: Нет

Техническая документация: https://eprint.iacr.org/2015/1098.pdf

Анонимные транзакции, или как они называются в Particl Desktop - транзакции Anon, выводят конфиденциальность на новый уровень, так как скрывают не только переводимые суммы, но также и личности участников транзакции (отправителя и получателя). Для транзакций этого типа используется протокол конфиденциальности RingCT, ставший популярным благодаря Monero, но адаптированный командой Particl для работы с кодовой базой Биткоина. Это позволяет платформе получить преимущества ведущего в отрасли протокола конфиденциальности RingCT, но при этом также использовать безопасность и стабильность от сообщества разработчиков Биткоина. Другими словами, RingCT на базе кода Биткоина - это все равно как не просто иметь торт, а таки его и съесть. Хорошее без плохого.

Хорошие примеры вышесказанного заключаются в возможности использования RingCT с помощью специальных скриптов в атомарных свопах, в децентрализованных приложениях(таких как Particl Marketplace), в протоколе Lightning Network, и т. п. Это также позволяет связать RingCT напрямую с транзакциями CT, что поможет достичь полной программируемости- мы это рассмотрим позже в этой статье.Так же, как и Blind/“слепые” транзакции, использующие протокол CT, анонимные транзакции не требуют доверия и не полагаются на какие-либо доверенные установки. Нужно отметить, что транзакции RingCT также немного больше чем конфиденциальные транзакции(СТ), но не намного. Это из-за добавления в микс кольцевых подписей (MLSAG).

Интересный факт:

изначально RingCT был реализован поверх кодовой базы Cryptonote (Monero). Команда Particl была первой, кто когда-либо разработал индивидуальную реализацию, которая могла бы работать с любой другой кодовой базой, в данном случае с кодовой базой Биткоин.


Кольцевые подписи (MLSAG)

Отчет об аудите Quarkslab о реализации MLSAG в Particl: https://blog.quarkslab.com/resources/2019-07-05-audit-particl-bulletproof-mlsag/particl_audit_report.pdf

Многоуровневые связываемые спонтанные специальные групповые подписи (Multilayered Linkable Spontaneous Ad-Hoc Group Signatures - MLSAG), или — так называемые кольцевые подписи, являются ключевой частью RingCT. Это такой тип цифровой подписи, которая выполняется одновременно многими «выходами» в рамках определенной группы RingCT выходов (представленных балансами Anon на Particl Desktop). В этом случае ни один наблюдатель не может сказать какой именно из участвующих «выходов» в этой подписи фактически подписывает и отправляет транзакцию.

Википедия описывает кольцевые подписи так:

«Кольцева́я по́дпись (англ. ring signature) — вариант реализации электронной подписи, при котором известно, что сообщение подписано одним из членов списка потенциальных подписантов, но не раскрывается, кем именно. Подписант самостоятельно формирует список из произвольного числа различных лиц, включая в него и себя. Для наложения подписи подписывающему не требуются разрешение, содействие или помощь со стороны включённых в список лиц — используются только открытые ключи всех членов списка и закрытый ключ лишь самого подписывающего»


 Одним из свойств безопасности кольцевой подписи является то, что путем вычислений невозможно определить чей именно ключ из членов группы был использован для создания подписи. В случае RingCT цифровая подпись, использованная для выполнения транзакции, могла исходить от любого члена кольцевой группы. Пользователи помещают часть своих средств на баланс Anon. Средства, находящиеся на балансе Anon, используются для выполнения RingCT транзакций. Протокол анонимно подписывает транзакцию перед ее выполнением, используя другие имеющиеся на блокчейне Анон «выходы» в качестве отвлекающих приманок, и таким образом создает подпись, которая при проверке выглядит так, как будто бы она могла быть инициирована любым из владельцев выходов RingCT, используемых кольцевой группой. В итоге невозможно узнать, кто именно совершил эту транзакцию, потому что это мог быть кто угодно из тех, чьи «выходы» использовались кольцевой группой в качестве приманок.
  Это эффективно анонимизирует все данные, содержащиеся в транзакции — передаваемую сумму, а также отправителя и получателя транзакции. Это также дает участникам сделки очень веские правдоподобные основания для отрицания (1, 2).

Как создать анонимную транзакцию (RingCT) в Particl Desktop


В Particl Desktop можно выбрать количество участников для кольцевой группы, т.е. ложных подписантов,  которое вы собираетесь использовать для анонимизации своих транзакций. В клиентском приложении этот называется: NO. OF RING SIGS.Это означает простую вещь: для каждого вашего входа, задействованного для генерации вашей транзакции, будет использоваться некоторое количество других выходов для создания цифровой подписи, и это может быть подписано любым из 24 участников (например). Значение 24 выбрано на скриншоте чуть выше. Это означает, что для маскировки транзакции будут использованы 23 чужих «выходов» в качестве отвлекающих приманок плюс реальный «выход» отправителья транзакции. В случае если транзакция использует больше чем 1 «выход» отправителья, например 3 «выхода», то это означает, что для выполнения транзакции будут сгенерированы 3 кольцевых подписей, по одной для каждого  «выхода», с 24 участниками в каждой! Это может показаться слишком сложным, но не волнуйтесь - Particl Desktop сделает все это за вас, сделает отправку транзакций RingCT такой же легкой, как любой другой транзакции.
Чтобы создать транзакцию RingCT: просто перейдите на вкладку «Send/Convert», выберите тип транзакции «Anon», затем кликните «Advanced Options» (дополнительные параметры) и двигайте ползунок уровня конфиденциальности (NO. OF RING SIGS), который отображается в нижнем левом углу страницы. Выбранное вами значение будет равно количеству участников кольца в вашей кольцевой группе . Но вы можете и не трогать ползунок, оставив уровень конфиденциальности по умолчанию (24 участников кольца). Это будет хороший баланс между конфиденциальностью и стоимостью.

Примечание.

Чем больше «выходов» и ложных подписантов используется для транзакции RingCT - тем дороже она становится, но также - тем более конфиденциальной она получится. Если вас не волнует стоимость транзакции и вы хотите получить лишь максимальную конфиденциальность - создавайте транзакции с максимально возможным количеством участников кольца и с максимально возможным количеством входов.

Поддержание хорошего уровня конфиденциальности

 Как общее правило, в теории и практически, RingCT становится тем более конфиденциальным, чем больше людей конвертируют свои публичные балансы в балансы Anon, тем самым создавая больше «выходов» Anon, которые будут доступны к использованию кольцевыми группами для транзакций RingCT. Это потому, что RingCT полагается на «выходы» других людей, чтобы правдоподобно отрицать какой из выходов на самом деле подписал транзакцию, и чем больше имеется выходов RingCT для подписи транзакций - тем сильнее становится аспект конфиденциальности и правдоподобного отрицания.Но, хотя «выходы» выбираются из любых выходов Anon в цепи случайным образом, все же чаще всего они выбираются из самых последних транзакций RingCT. Причина, по которой протокол работает таким образом, заключается в ответе на этот исследовательский документ, который демонстрирует, что реальными входами можно считать те, которые самые свежие, а все приманки находятся намного глубже в цепи т.е. старые и долгое время не использовались в транзакциях.
Исходя из этого, рекомендуется чтобы все пользователи держали хотя бы часть средств на балансе Anon т.е. Анон «выходах», которые могут быть автоматически использованы сетью (разумеется, бесплатно для пользователей) в Анон транзакциях. Кроме того, рекомендуется чтобы пользователи совершали как можно больше транзакций Anon, и это могло бы способствовать повышению конфиденциальности всей сети. Обратите внимание, что не обязательные требования для выполнения транзакции RingCT, но чем больше людей будут это делать, тем сильнее и устойчивее сеть становится для всех.
Particl Marketplace использует по умолчанию именно транзакции RingCT для всех транзакций на торговой площадке. Таким образом, каждый новый пользователь торговой площадки будет добавлять новые транзакции anon в блокчейн, используя анонимные транзакции для каждой своей покупки или продажи.  Другими словами, пользователям платформы Particl не нужно делать ничего особенного кроме этого. Так как рост количества анонимных транзакций  и размер анонимного пула прямо связаны с ростом торговой площадки Particl. По мере роста ее использования транзакции RingCT будут становиться  все более и более запутанными сравнительно с  другими блокчейнами, использующими технологию RingCT.

Скрытые адреса

Скрытые адреса - это специальные адреса, которые можно генерировать как «одноразовые адреса приема».  Под «адресом одноразового приема» подразумевается  что каждый раз, когда отправитель использовал этот адрес для отправки некоторых монет, то создается новый адрес для следующей отправки/получения. На самом деле, на скрытый адрес можно получать платежи несколько раз, но все эти платежи будут попадать на разные «выходы», принадлежащие владельцу скрытого адреса. Это увеличивают конфиденциальность, потому что только владелец скрытого адреса может определить, принадлежит ли выход ему или нет. Не зная приватного ключа адреса, наблюдатель не сможет связать и угадать, какие  «выходы» и с каким скрытым адресом связаны даже если знает скрытые адреса. Это помогает в защите получателя транзакции от идентификации.
Одних лишь скрытых адресов не достаточно для защиты информации о транзакциях от хорошо финансируемого и мотивированного наблюдателя (например, государственного учреждения), но в комбинации с более сильными протоколами конфиденциальности, такими как CT или RingCT, они обеспечивают еще один уровень конфиденциальности для пользователя. На данный момент Blind/“слепые” (CT) и анонимные (RingCT) транзакции могут выполняться только на скрытые адреса.

CT + RingCT вместе = бесконечные возможности

У обоих протоколов конфиденциальности есть свои плюсы и минусы, но одним из самых заметных различий между этими двумя реализациями Particl является то, что у CT есть программируемые «выходы», а у RingCT - нет. Это значит, что RingCT, как есть, не может использоваться в смарт-контрактах. Но это не означает, что его нельзя использовать в децентрализованных приложениях.  Как же это возможно, если RingCT нельзя использовать в смарт-контрактах? Это одна из главных причин, почему Particl сохранил в своей сети оба протокола, CT и RingCT, вместо того чтобы оставить только один из них. Поскольку транзакции CT имеют программируемые выходы, то их можно использовать в смарт-контрактах, а затем легко связать с транзакциями RingCT.  Прелесть решения Particl заключается в том, что выходы могут быть отправлены с RingCT на CT для дальнейшей програмной обработки (например, для создания эскроу контракта), а затем так же отправлены обратно в RingCT. Лучшим примером, иллюстрирующим эту концепцию, является Particl  Marketplace. Это конфиденциальная по умолчанию торговая площадка , которая использует RingCT для полной анонимизации всех транзакций. Но мало кто знает, что на самом деле для своей системы условного депонирования торговая площадка использует комбинацию RingCT и CT, а не один лишь RingCT. Это потому, что система условного депонирования основана на функциональности смарт-контракта и, таким образом, транзакции должны иметь программируемые выходы, следовательно используется CT. Однако для взаимодействия со смарт-контрактом и сохранения анонимности пользователи отправляют ему транзакцию RingCT, которая затем автоматически преобразуется торговой площадкой в транзакцию CT на время условного депонирования. После удачной сделки покупатель разблокирует/открывает эскроу и транзакция завершается, как транзакция RingCT.

«Выход RingCT преобразуется в выход CT, который, в свою очередь, формирует «входы» контракта условного депонирования. Когда условное депонирование готово к деблокированию или возмещению, оно будет напрямую передано на выход RingCT. »

Kewde, разработчик Particl и автор OMP Library


Это лишь один из примеров того, как можно использовать  RingCT в полной мере совместно  с  CT.  Аналогичный метод можно применить для интеграции RingCT в другие протоколы или службы, такие как атомарные свопы, транзакции на сети Lightning и в других децентрализованных приложении.

. . .

Если вам понравилась эта статья - поделитесь ею со своими друзьями и следите за обновлениями на particl.news, так как скоро там будут опубликованы новые статьи серии  Particl объясняет


Particl - это участие

Мы хотим быть узнаваемыми везде, и с вашей помощью мы станем более заметными. Для вас это занимает секунды - подписаться на наши каналы и нажать на иконку колокольчика.

YouTube Twitter Mastodon Reddit

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

Discord Telegram Element / Matrix

Узнайте больше о Particl здесь:

Наш вебсайт Academy Wiki

И последнее, но тем не менее очень важное - упорядоченный по категориям список всех наших ссылок на одной странице:

Полезные ссылки Particl