Grin/MimbleWimble for BitcoinersОригинал: https://github.com/mimblewimble/grin/blob/master/doc/grin4bitcoiners.mdПриватность и взаимозаменяемостьОсновные свойства транзакций в Grin, которые делают их приватными:
1. В них нет адресов
2. В них нет сумм переводов
3. 2 транзакции - одна тратит другую - объединяются в блоке в одну, при этом удаляется вся промежуточная информация
Два первых свойства означают, что все транзакции неотличимы друг от друга. Если непосредственно вы не участвовали в транзакции, то все входы и выходы выглядят как случайные фрагменты данных.
Более того, в блоках больше нету транзакций. Блоки в Grin выглядят как одна большая транзакция, поэтому все изначальная связь между входами и выходами теряется.
МасштабируемостьКак уже говорилось в предыдущем разделе, благодаря транзакциям типа MimbleWimble и формату блоков, мы можем объединять транзакции, когда выход напрямую расходуется другим вводом. Как если бы Алиса дала деньги Бобу, а Боб отдал их Кэрол, тогда получается Боб никогда не участвовал и его транзакция по факту даже будет не видна в блокчейне.
В конце концов, между блоками, большинство выходов рано или поздно будут потрачены другим входом. Таким образом, все ранние выходы могут быть без опаски удалены и весь блокчейн может уместиться в несколько гигабайт или меньше (если количество транзакций будет примерно равно текущему количеству в биткойне).
СкриптыВозможно вы слышали, что MimbleWimble не поддерживает скрипты. И в некотором смысле это правда. Но благодаря криптографическим уловкам, многие контракты, которые в биткойне требуют использование скриптов, могут быть созданы в Grin при помощи свойств криптографии с эллиптической кривой.
Сейчас мы знаем как реализовать:
- Транзакции с мультиподписями
- Атомарные свопы
- Заблокированные по времени транзакции и выходы
- Сеть Lightning
ЭмиссияУ Биткойна блок создается каждые 10 минут с наградой в 50 биткойнов и каждые 4 года награда уменьшается в 2 раза, пока не будет выпущено 21 млн биткойнов. У Grin награда за блок никогда не уменьшается. Сейчас она установлена в 60 монет, а блок генерируется каждую минуту. Это нормально из-за 1) тенденции растворения до нуля 2) немалого количества ежегодно теряемых и уничтожаемых монет
FAQТак, стоп! Нет адресов?Да, их нет. Все выходы в Grin уникальны и не имеют общих данных с предыдущими выходами. Вместо того, чтобы зависеть от известного адреса, транзакции должны создаваться в интерактивном режиме, при котором два или более кошельков обмениваются данными друг с другом. Это взаимодействие не требует присутствия обеих сторон одновременно онлайн. На практике, существует много способов двум программам взаимодействовать приватно и безопасно. Это взаимодействие может происходить даже по электронной почте или в Signal (или с помощью почтовых голубей)
Если информация о транзакции будет удаляться, разве я не смогу всех обмануть и забрать деньги?Нет, как раз поэтому MimbleWimble и Grin прекрасны. Конфиденциальные транзакции являются формой гомоморфного шифрования. Не раскрывая сумму, Grin может проверить, что сумма всех входных транзакций соответствует сумме выходных транзакций, с учетом комиссий. Если пойти еще дальше, то сравнив сумму всех денег, созданных майнингом, с общей суммой денег, которые хранятся на кошельках, узлы Grin могут проверить правильность общей денежной массы.
Если я прослежу за движением транзакции, не смогу ли я понять кому она принадлежит, перед тем как из нее будут удалены данные?Вы можете узнать выходы у каждой транзакции, но на этом след обрывается. Все входы и выходы выглядят как случайные фрагменты данных, поэтому вы не можете узнать были ли деньги отправлены или все еще принадлежат тому же человеку, какой выход является переводом, а какой возвращается владельцу, и т.д. Транзакции в Grin не содержат информацию, по которой можно что-либо определить.
Кроме того, Grin использует ретранслятор Dandelion, который обеспечивает дополнительную анонимность относительно IP или клиента, с которого произошла транзакция, а также позволяет объединять транзакции.
Что насчет квантового апокалипсиса?В каждом выходе в Grin мы также добавляем немного хешированных данных, которые защищают от квантовых вычислений. Если квантовые компьютеры станут реальностью, мы сможем добавить проверку, которая защитит существующие монеты от взлома.
Как вся эта магия работает?https://github.com/mimblewimble/grin/blob/master/doc/intro.ru.md