Сеть Полуночи была разработана с целью – не следовать толпе. В отличие от большинства блокчейн-сетей, которые выбрали легкий путь и использовали систему счетов, как это реализовано в Ethereum, Полуночи вернулась к чертежной доске и решила строить на более базовом концепте – системе UTXO.

Чтобы понять значение Сети Полуночи, забудьте на секунду о блокчейне, возьмите горсть наличных из своего кошелька и подумайте, сколько наличных у вас действительно есть. У вас нет маленькой записки, прикрепленной где-то с фразой "У меня $175." У вас есть купюра в $100, купюра в $50, купюра в $20 и купюра в $5 – четыре разных объекта, которые все находятся там, а общая сумма является суммой объектов, которые вы держите. Когда вы тратите наличные, вы отдаете один из объектов магазину, и вы получаете сдачу. Объект, который вы отдали, исчез, а объекты, которые вы получаете обратно, новые. Сеть Полуночи так же – просто, но мощно.

Когда Алиса отправляет 40 токенов NIGHT Бобу, она не изменяет баланс. Она передаёт Бобу весь свой 100-токеновый «счёт» NIGHT. Сеть создаёт два совершенно новых: 40 NIGHT для Боба и 60 NIGHT для Алисы в качестве сдачи (change). Оригинал уничтожается.

Рождаются два совершенно новых монеты. Ни одна существующая запись в реестре никогда не редактируется «на месте», ни разу не затрагивая общий (shared) стейт. Именно эта независимость монет заставляет систему «петь». В Ethereum, если вы попытаетесь отправить две транзакции из одного и того же аккаунта ровно в одно и то же время, сети придётся обрабатывать их последовательно, одну за другой, потому что обе пытаются изменить один и тот же баланс и должны стоять в очереди.

В Midnight два UTXO полностью независимы. Если две транзакции затрагивают разные монеты, их можно обрабатывать ровно в одно и то же время — параллельно — без ожидания в очереди.

В загруженный момент это фундаментальное архитектурное отличие означает, что сеть может обрабатывать гораздо больший объём, не останавливаясь.

Конфиденциальность — это то, где этот дизайн действительно оживает. Поскольку каждый UTXO является независимой единицей, его можно сделать конфиденциальным по отдельности. Нет необходимости делать весь аккаунт конфиденциальным или публичным. Либо то, либо другое. Именно так midnight называет это «Рациональной конфиденциальностью». Вы можете сделать транзакцию конфиденциальной, когда вам нужна конфиденциальность. Вы можете сделать транзакцию публичной, когда вам нужно соблюдать требования регуляторов, используя «Viewing Key». Такой уровень контроля невозможен, если все ваши транзакции связаны с одним адресом.

Проблема конфиденциальности — как не дать человеку потратить те же самые деньги дважды. Эта проблема решается с помощью «Nullifiers». Когда UTXO тратится, вычисляется уникальный «отпечаток» на основе UTXO и приватных ключей. Этот «отпечаток», называемый «Nullifier», добавляется в публичный список. Когда тратится новый UTXO, список проверяется. Если «Nullifier» есть в списке, UTXO не тратится. Это гарантирует, что один и тот же UTXO не будет потрачен дважды. «Nullifier» не раскрывает, какой именно UTXO тратится. Это обеспечивает конфиденциальность UTXO.

Однако Midnight не ограничивается UTXO: поверх них добавляется система смарт-контрактов, благодаря которой разработчики могут писать Compact-контракты с состоянием в стиле аккаунта — мир, знакомый каждому, кто когда-либо имел дело с ERC20-токенами в Ethereum. Так возникают два разных мира, которые сосуществуют в гармонии в рамках одного приложения: токены реестра, которые существуют как UTXO в блокчейне, и токены контрактов, которые существуют внутри смарт-контрактов с таблицами балансов (balance mappings).

NIGHT, как нативный токен, играет центральную роль в экономической модели: он существует как UTXO в реестре, постоянно создавая DUST — защищённый ресурс, который используется исключительно для комиссий за транзакции.

Пока у вас есть NIGHT, вы постоянно генерируете DUST в пропорциональном объёме от вашей доли, и используете DUST для транзакций, а не NIGHT. Это означает, что вам больше не нужно беспокоиться о ценовом завышении за газ.

Для разработчиков — что это значит? Это означает свободу. Вам не нужно «вписывать» своё приложение в рамки. Когда вам важны скорость, параллелизм и нативные функции конфиденциальности, вы можете использовать токены реестра на основе UTXO. Когда вам нужна сложная логика, управление или взаимодействия в DeFi, вы можете использовать токены контрактов, основанные на аккаунтах. Вы можете использовать оба варианта в одном приложении, если ваш сценарий это требует. Вот для чего создан Midnight — и именно это делает всё возможным: UTXO.

#night $NIGHT @MidnightNetwork