И в реалния живот, и в дигиталния свят често искаме да докажем нещата на другите. Преди да влязат в офис сграда, служителите обикновено предоставят някакъв вид документ за самоличност, преди да влязат вътре.
Когато потребителите се опитат да влязат в приложение като Facebook или Twitter, тези услуги трябва първо да поискат от потребителя да влезе с парола и понякога на мобилното им устройство се изпраща еднократна парола (OTP).
Недостатъкът на предоставянето на доказателства е, че често даваме други видове информация. Предоставянето на парола за уебсайт все още означава, че самият уебсайт съхранява копие на хешираната парола в своите сървъри. Ако някой хакне скенера за идентификация на служителите на офис сградата, може да успее да получи частните ключове на всеки.
Доказателствата с нулево знание или ZKP осигуряват начин за валидиране на самоличност или транзакция, без да се налага предоставяне на допълнителна информация. Поради приложенията си в криптографията, ZKPs са адаптирани от blockchains за създаване на сигурни и мащабируеми протоколи за валидиране.
Какво представляват доказателствата с нулево знание?
Доказателствата с нулево знание са предложени за първи път от изследователите от Масачузетския технологичен институт Силвио Микали, Чарлз Ракоф и Шафи Голдвасер през 1985 г. в тяхната статия „Сложността на знанията на интерактивните системи за доказване“
Тази статия въвежда концепцията за сложност на знанието. Това се отнася до количеството знания за доказателство, прехвърлено от доказващия към проверяващия. Доказателствата с нулево знание имат за цел да позволят на дадена страна да докаже, че определено твърдение е вярно за друга страна, без да се налага да разкрива друга информация.
ZKP могат да се използват като сигурна алтернатива на настоящите системи за удостоверяване и могат също да бъдат добавени към протоколите на блокчейн, за да се поддържат транзакциите поверителни.
Как работят ZKP?
Пример от реалния свят
За да илюстрираме как работят доказателствата с нулево знание, нека да разгледаме абстрактен пример за ZKP.
Да кажем, че имате приятел, който е червено-зелен далтонист. Имате със себе си две еднакви топки, които се различават само по цвят: една червена и една зелена. За вашия приятел те изглеждат идентични, но като човек без далтонизъм, можете лесно да ги различите.
Възможно ли е да докажете на приятеля си, че са с различен цвят, без да разкривате коя топка е червена или зелена?
Всъщност има начин да се докаже това, без да се разкриват цветовете на топките. Първо, трябва да оставите приятеля си да сложи и двете топки зад гърба си и да му кажете да покаже всяка топка и да я скрие отново. След това казвате на приятеля си, че той има избор да покаже отново същата топка или да я смени с другата.
Всеки път, когато се покаже нова топка, можете да му кажете дали е сменил топката или не. Ако продължавате да гадаете правилното обаждане, става все по-вероятно топките да са с различен цвят. Вашият приятел вече трябва да бъде убеден, че топките са различно оцветени, без да се налага да му казва кои топки кой цвят имат.
Практически приложения
Повечето практически примери за доказателства с нулево знание попадат в два вида.
Първо, ZKP могат да се използват при проектирането на протоколи. Можем да гарантираме, че различните страни не могат да мамят или да се възползват от протокола. Второ, ZKP могат да се използват за идентификация.
Например, можем да използваме ZKP, за да влезем сигурно в уеб приложение, без да се налага да разкриваме самата парола.
Нека разгледаме няколко примера за това как можем да използваме доказателства с нулево знание.
Електронно гласуване
Едно често обсъждано приложение на ZKP е тяхната възможна роля в онлайн гласуването. Да кажем, че имаме предстоящ референдум, на който потребителите могат да гласуват за предложена политика. Всеки избирател с право на глас има право да гласува 1 или 0 в бюлетината.
С помощта на ZKP избирателите могат да докажат правото си да гласуват, без да разкриват самоличността си. Това гарантира, че всеки глас ще бъде наистина анонимен. Ще се използва и допълнителен ZKP, за да се докаже, че гласът на конкретен потребител е част от окончателния брой гласове.
По отношение на самото съдържание на бюлетините, системата за гласуване може също да генерира доказателство с нулево знание, че всяка бюлетина съдържа 1 или 0. Това се постига без да е необходимо да се знае съдържанието на самата бюлетина.
Поверителност на блокчейн
Блокчейновете като Bitcoin и Ethereum не поддържат по принцип частни транзакции. Докато вашият биткойн портфейл е публичен, всеки може да отиде в изследовател на блокове, като напр Blockstream за да видите всички транзакции, от които портфейлът е част.
Междувременно използването на услуга като банка или платежни услуги като Cash App или Venmo ви дава възможност да извършвате частни транзакции. Това удобство обаче идва с цената на разкриването на вашата информация на централизираната услуга.
Можем да комбинираме анонимността с децентрализацията, като добавим ZKP към протокола на блокчейн. Криптовалутите като ZCash използват ZKP за създаване на частни транзакции, които позволяват на притежателите на монети да запазят своята анонимност. Няколко от тези криптовалути използват тип ZKP, известен като zk-SNARK.
Тези ZKP не изискват взаимодействие между проверяващия и проверяващия.
Сборни пакети с нулево знание
ZK-rollups са решение за мащабируемост, което позволява транзакциите извън веригата да бъдат проверени незабавно и с минимални такси за газ. Те са начин за комбиниране на голям брой транзакции от ниво 2 и предаването им в протокола за ниво 1.
Освен осигуряване на поверителност, ZKPs позволява мащабиране на сложни системи. Протоколите за блокчейн могат да използват ZKP, за да докажат, че потребителите са уредили правилните транзакции, имат подходящ баланс и т.н. Тези сигурни, но мащабируеми решения са възможни само чрез математически доказателства, извършени извън веригата в ZKP.
Протоколи като Loopring използват доказателства с нулево знание, за да помогнат при обработката на транзакции извън веригата, без да се налага да се компрометира сигурността.
Предимства на доказателствата с нулево знание
- ZKP заменят по-малко надеждни форми на удостоверяване като ПИН или идентификационни карти
- ZKPS увеличава мащабируемостта на блокчейните
- Внедряването на ZKP изисква прости методи за криптиране
- Използването на ZKPS може да направи системите по-сигурни, като не изисква ненужна информация да се съхранява в системата.
Заключение
Поверителността на данните вече е основен проблем както в централизираните, така и в децентрализираните системи. Доказателствата с нулево знание предоставят начин на различни страни да доказват или валидират транзакции и самоличности, без да се налага да разкриват споменатите транзакции или самоличности.
Тъй като блокчейн технологията става все по-широко използвана, приемането на ZKP за сигурна обработка на проверката ще бъде от ключово значение за проблемите с мащабируемостта.
Оставете коментар