О приватных транзакциях в KMD

О приватных транзакциях в KMD

Проясним ситуацию с приватными (shielded) транзакциями в блокчейне Komodo (KMD).

Вопрос предельно ясный, но все же у некоторых возникает путаница, является ли Komodo платформой поддерживающей приватные (private, shielded, z-txes) транзакции или нет. Особенно она возникает, когда некоторые биржи (например, UpBit и др.) делают заявления о том, что согласно требованиям местных регуляторов, они проводят делистинг монет, использующих приватные транзакции и в список делистинга иногда попадает и KMD. Так все же, есть ли анонимность в Komodo или нет?

Если ответить на этот вопрос коротко, то:

  • Если рассматривать Komodo как платформу, т.е. некую среду на базе которой можно создавать проекты, основанные на блокчейне, собственные ассетчейны (или же смартчейны), то - да, безусловно. Поддержка z-транзакций в данном случае остается на усмотрение разработчиков, вернее владельцев проекта. Можно как включить, так и отключить ее. Технически - этот функционал самой платформой поддерживается.
  • Если же говорить о KMD, как о монете - то, увы, нет. С определенным обновлением возможность отправки приватных (shielded) транзакций в блокчейне KMD была превентивно отключена. Главным образом для того, чтобы сохранить присутствие на большинстве бирж, которые так или иначе вынуждены выполнять требования регуляторов.

Давайте попробуем посмотреть на этот вопрос более подробно и понять, чего же все-таки лишилась платформа KMD, если лишилась? Для этого необходимо заглянуть в историю. Как известно Komodo (KMD) является форком ZEC (ZCash). Т.е. он по-умолчанию унаследовал все те возможности, которые были в самом ZEC, включая и функционал приватных транзакций. Правда с тех пор прошло уже достаточное количество времени и говорить о KMD просто как о форке ZEC не совсем корректно. Т.к. цели и задачи у этих проектов были разные - то Komodo давно успел обрасти свойственными только ему фишками и возможностями, которые и отличают его от ZEC. Например, dPoW, нотариальными нодами (NN), СС (Crypto Conditions) и другими вещами, которые отсутствуют и никогда не будут реализованы в ZEC. Однако, "обратная совместимость" в целом была сохранена, поэтому изначально KMD поддерживал все те же самые типы транзакций, что и ZEC. Давайте попробуем понять что это за типы? Для этого мы обратимся к статье Anatomy of A Zcash Transaction за авторством Paige Peterson'а:

Как мы видим в блокчейне ZCash существуют следующие типы транзакций (типы расходования средств):

  1. Public - публичные. Когда средства переводятся с одного t-адреса ("t" в данном случае - сокращение от слова transparent, т.е. прозрачного / публичного) на другой t-адрес. В ZEC это адреса начинающиеся с t1 или t3, в Komodo (KMD) - адреса начинающиеся с R. Эти транзакции абсолютно аналогичны транзакциям  в сети Bitcoin (BTC), когда вся информация о параметрах транзакции является публичной. Любой, воспользовавшись explorer'ом или установив на ПК программное обеспечение для работы с блокчейном (демон, кошелек) может просмотреть всю информацию о транзакции - адреса отправителя и получателя, количество отправленных / полученных монет и т.п.
  2. Shielding - разновидность приватной (z) транзакции, когда средства переводятся с t-адреса (см. выше) на приватный z-адрес. Такая транзакция является публичной лишь на половину, т.к. любой может посмотреть отправителя, а также определить количество монет, которые были отправлены, но не может определить получателя, т.к. он "скрыт" за z-адресом. В блокчейне ZEC существовало два типа z-адресов - zc (sprout) и zs (sapling). В KMD (Komodo) аналогично. Sprout адреса признаны устаревшими и небезопасными, к тому же транзакции с ними выполнялись довольно ощутимое и продолжительное время, а также отнимали много ресурсов CPU, в связи с чем от них решено было отказаться и в результате к настоящему моменту в ZEC и Komodo остались только sapling (zs) адреса.
  3. Deshielding - также разновидность приватной транзакции, когда происходит операция обратная рассмотренной в (2). Средства с защищенного / приватного zs-адрес переводятся на t-адрес. В этом случае сторонний наблюдатель может увидеть получателя средств и сумму транзакции, однако, он не может сказать, сколько средств имел отправитель, какая была "сдача" и т.п., т.к. в данном случае отправитель использовал sapling (zs) адрес.
  4. Private - последний тип приватных z-транзакций, в котором и отправитель(и) и получатель(и) используют приватные z-адреса. В этом случае сторонний наблюдатель может видеть сам факт, что да, была такая приватная транзакция. Он будет знать ее время, в какой блок она включена, но на этом публичная информация заканчивается. Никто не будет знать ни адрес отправителя, ни адрес получателя, количество переведенных средств в этом случае также останется тайной.

Таким образом, теперь, когда мы поняли что такое z-транзакции, давайте попробуем разобраться чего же лишили Komodo. Собственно как я и говорил изначально - Komodo как платформа, продолжает поддерживать все перечисленные 4 типа транзакцией (все приведенные 4 типа расходования средств). Однако, (2)-(4) возможны лишь в ассетчейнах (смартчейнах). В блокчейне самого KMD возможны только операции типа (1), а (2)-(4) программно отключены. Таким образом Komodo как платформа продолжает быть верной своим идеалам и поддерживает приватность, более того, на платформе Komodo создан специальный ассет - PIRATE (ARRR), в котором поддерживаются только z-транзакции (!) типа (4), за некоторыми исключениями (например, майнинг PIRATE по прежнему осуществляется только на t-адреса, но затем средства обязательно shield'ятся и дальше уже могут быть пересланы только между z-адресами - тип (4), пересылка средств с/на t-адресов (1) невозможна и запрещена по-умолчанию, исключение составляют лишь адреса нотариальных нод - NN). Однако, KMD, как монета - была лишена транзакций типа (2)-(4). Поэтому в блокчейне KMD возможны только транзакции типа (1), которые предполагают пересылку средств только между t-адресами.