Bagaimana cara melakukan transaksi dengan nilai dalam sistem yang dibangun di atas teknologi blockchain tanpa mengungkapkan kontennya?

Dalam beberapa tahun terakhir, teknologi blockchain telah berkembang secara aktif di dunia, yang merupakan arsitektur terdistribusi yang terdiri dari banyak "node" yang sama. β€œNode”, pada gilirannya, bertukar informasi dalam bentuk transaksi yang berisi informasi tentang pergerakan nilai dan pelaksanaan kontrak pintar. Pada saat yang sama, teknologi itu sendiri memastikan pengelompokan transaksi ini ke dalam blok, pengembangan konsensus untuk memasukkan blok dalam urutan yang ada, pemilihan satu-satunya rantai blok (blockchain) yang benar dan memastikan distribusi rantai blok yang benar antara semua "node".



Teknologi blockchain memungkinkan untuk memastikan bahwa setiap "node" memiliki blockchain yang benar, yang juga dapat disebut teknologi buku besar terdistribusi.



Faktanya, rantai blok atau rantai blok adalah register yang terus diperbarui yang menyimpan dalam bentuk terbuka semua informasi tentang transaksi (pergerakan nilai dan operasi dengannya) dan memungkinkan Anda untuk melacak riwayat lengkap asal dan transfer nilai antar peserta. Bersama dengan kehadiran di setiap "simpul" dari rantai blok yang benar, hal ini memungkinkan peserta sistem untuk memastikan bahwa informasi yang terkandung dalam buku besar yang terdistribusi tidak berubah-ubah dan transparan.



Perlu diingat bahwa tidak setiap peserta yang menggunakan fungsionalitas teknologi buku besar terdistribusi ingin mengiklankan komposisi, kualitas dan kuantitas nilai mereka, operasi yang dilakukan bersama mereka, atau peserta dalam operasi semacam itu. Untuk mengatasi masalah dalam memastikan kerahasiaan informasi ini dalam berbagai sistem berdasarkan teknologi buku besar terdistribusi, dimungkinkan untuk mempertimbangkan penggunaan teknologi dengan menggunakan Zero-Knowledge Protocol.



Lalu bagaimana dengan sektor perbankan? Dari sudut pandang JSC β€œRosselkhozbank”, teknologi buku besar terdistribusi dengan penerapan Zero Disclosure Protocol dapat berguna dalam mengatur interaksi elektronik antar bank.



gambar



Solusi ini memiliki serangkaian keunggulan berikut:



  • menyimpan informasi tentang barang berharga dan transaksi dengannya tanpa mengungkapkan isi informasi tersebut (kerahasiaan);
  • kecepatan tinggi operasi;
  • kesederhanaan relatif dalam mengimplementasikan skalabilitas sistem berdasarkan teknologi buku besar terdistribusi, tergantung pada kebutuhan peserta;
  • ketahanan tinggi dalam penyimpanan informasi.


Kami mengusulkan untuk membahas lebih rinci solusi yang melibatkan penggunaan Zero-Sharing Protocol, karena, menurut pendapat kami, elemen kunci inilah yang menentukan potensi penggunaan teknologi buku besar terdistribusi di sektor perbankan.



Fitur menggunakan protokol Zero-knowledge



Protokol tanpa pengetahuan adalah protokol otentikasi yang kuat. Ini menggunakan sepasang kunci publik dan pribadi, dan digunakan untuk mengotentikasi pengguna tanpa mengungkapkan informasi rahasia apa pun. Protokol tersebut dapat diterapkan untuk memastikan keamanan informasi di banyak bidang teknologi informasi modern. Selain itu, ada opsi untuk menggunakan protokol tanpa pengetahuan rahasia untuk membangun mekanisme tanda tangan elektronik atau untuk meningkatkan kekuatan kriptografiknya terhadap serangan yang dilakukan oleh penjahat.



Protokol tanpa pengetahuan termasuk dalam protokol kunci publik. Protokol dibangun di sekitar pengulangan putaran yang melibatkan tindakan tertentu. Dalam proses kerjanya, putaran dilakukan dalam 3 langkah. 2 langkah pertama menggunakan nilai acak sebagai masukan. Partai yang dicentang disebut "Prover" , dan partai yang dicentang disebut "Verifier" .



Langkah bulat:



  1. Prover menghasilkan kunci privat satu kali, serta kunci publik satu kali, yang kemudian dikirim ke Prover;
  2. Verifikator menerima kunci publik satu kali dari Prover dan kemudian menghasilkan bit acak, yang kemudian dikirim ke Prover;
  3. Prover menerima sedikit informasi dan melakukan kalkulasi padanya.


Prover mengirimkan hasil yang dihasilkan ke Verifier untuk verifikasi.



Dalam semua putaran pengujian, probabilitas jawaban yang benar adalah 50%, artinya, di setiap putaran Prover dapat mengetahui kebenaran dengan probabilitas 50%.



Untuk mencapai akurasi yang diperlukan, jumlah putaran tersebut harus ditingkatkan, sehingga mencapai kemungkinan yang diperlukan di mana Prover akan dianggap berwenang.



Masalah utama saat menggunakan protokol tanpa pengetahuan adalah:



  1. Panjang kunci publik yang dibutuhkan;
  2. Keyakinan bahwa rahasia itu tidak dibagikan dengan cara lain.


Mari kita pertimbangkan komponen teoritis dari beberapa protokol tanpa pengetahuan rahasia dan buat tabel perbandingan karakteristik mereka.



Protokol ZkSNARKs



zkSNARKs adalah singkatan dari Zero Knowledge Non-Interactive Argument of Knowledge.



Ini adalah bentuk kriptografi yang memungkinkan seseorang membuktikan bahwa mereka memiliki sekumpulan data tertentu tanpa perlu mengungkapkannya. Sistem ini hanya mencakup dua sisi: konduktor dan pengukur. Konduktor membuktikan bahwa elemen, informasi atau kata tertentu ada dan benar tanpa mengungkapkan apa elemen atau informasi itu. Inilah arti dari ilmu nol . Proses yang terlibat dalam membuktikan dan memvalidasi informasi berlangsung cepat dan dapat divalidasi dalam sepersekian detik bahkan untuk program dengan data dalam jumlah besar.



Agar bekerja, protokol harus memenuhi persyaratan dasar dari pengetahuan nol tentang rahasia.



Misalnya, kontrak pintar telah dibuat. Pengguna akan dapat menerima pembayaran jika dia melakukan tindakan tertentu. Bagaimana jika pengguna tidak ingin mengungkapkan detailnya karena dirahasiakan dan dirahasiakan oleh pesaing?



Untuk ini, protokol pengetahuan nol zkSNARKs digunakan , yang membuktikan bahwa langkah-langkah tersebut dilakukan sesuai dengan ketentuan kontrak pintar, tanpa mengungkapkan tindakan apa ini. Dia hanya dapat menunjukkan sebagian dari proses tanpa menunjukkan keseluruhan proses dan membuktikan bahwa pengguna jujur.



zkSNARKs terdiri dari tiga algoritma: G , P dan V .



Generator (C - program, Ξ» - input, yang tidak boleh diungkapkan (rahasia)):



(pk, vk) = G (Ξ», C)



Prover (x adalah input publik, w adalah pernyataan rahasia yang perlu dibuktikan, tetapi tidak diceritakan):



Ο€ = P (pk, x, w) - proof prf



Verifier:



V (vk, x, Ο€) == (βˆƒ w stC (x, w)) - benar atau salah



G adalah generator kunci yang menerima input Ξ» (yang tidak boleh diperluas dalam keadaan apa pun) dan program C. Kemudian dua kunci publik dihasilkan: kunci validasi pk (untuk proofer) dan kunci bukti vk ( untuk pemverifikasi). Kunci ini tersedia untuk semua pihak yang tertarik.



P.Apakah orang yang akan menggunakan 3 elemen sebagai input. Kunci pk yang memvalidasi, input acak x yang tersedia untuk umum, dan pernyataan yang perlu dibuktikan, tetapi tidak diberi tahu apa sebenarnya. Sebut saja operator ini "w". Algoritma P menghasilkan bukti prf seperti: prf = P (pk, x, w) .



Algoritme pemverifikasi V mengembalikan variabel boolean. Variabel boolean hanya memiliki dua opsi: bisa TRUE atau FALSE . Jadi, verifikator mengambil key, input X dan proof prf sebagai input, seperti: V (vk, x, prf) . Dan kemudian menentukan apakah itu benar atau salah.



Perlu diperhatikan bahwa parameter Ξ»digunakan di generator terkadang menyulitkan penggunaan zkSNARKs di aplikasi dunia nyata. Alasannya adalah siapa pun yang mengetahui parameter ini dapat menghasilkan bukti palsu. Oleh karena itu, nilai Ξ» harus dirahasiakan .



Dengan demikian, memulai generator harus merupakan proses yang aman, terlindung dari siapapun yang mengetahui atau mencuri parameter Ξ» .



Protokol ZkSTARKs



Tidak ada fase instalasi tepercaya eksternal di zkSTARKs dan keacakan yang digunakan adalah informasi publik. Penggunaan keacakan secara publik sangat penting bagi publik untuk mempercayai sistem tanpa pengetahuan, jika tidak, entitas yang kuat dapat menggunakan pengaruhnya untuk mendapatkan pengaturan dan menghasilkan bukti palsu. Karena tidak ada fase penyiapan kepercayaan pihak ketiga dan keacakan yang dapat diverifikasi publik digunakan sebagai gantinya, sistem zkSTARKs membuat kepercayaan yang dapat diverifikasi.



zkSTARKs tidak bergantung pada pasangan kunci publik dan pribadi (seperti ECDSA), tetapi mengandalkan hashing yang tahan benturan untuk solusi interaktif, dan model oracle acak (yang biasanya digunakan sebagai pengganti fungsi hash kriptografi generik, di mana asumsi kuat tentang keacakan diperlukan untuk menyimpulkan oracle) untuk bukti non-interaktif ( zknSTARKs , n = non-interactive) oleh karena itu zkSTARKs dapat tahan terhadap serangan dari komputer kuantum.



Protokol zkSTARKs dapat diskalakan, transparan, dapat diterapkan secara universal, dan dapat menjadi kuat kuantum. Ini membangun kepercayaan pada teknologi karena dapat diverifikasi. Ada banyak area yang dapat ditingkatkan dengan teknologi seperti zkSTARKsdi mana kepercayaan dibutuhkan dan ada insentif besar untuk curang, misalnya:



  • sistem pemungutan suara;
  • melakukan perhitungan dan memeriksa hasilnya, seperti transaksi masa lalu dalam buku besar yang didistribusikan;
  • verifikasi informasi yang aman, misalnya, untuk memverifikasi identitas atau kredensial.


Ada empat kategori yang terkait dengan skalabilitas (hasil dari zkSTARKs ).



  1. Kompleksitas rangkaian aritmatika (dalam sistem zkSNARK dan zkSTARK, kode untuk membuat program zk ditulis sedemikian rupa sehingga dapat dibagi menjadi rangkaian dan kemudian dihitung - pada kenyataannya, kompleksitas rangkaian lebih tinggi daripada efisiensi komputasinya.
  2. ( zkSNARK , zkSTARKs, ).
  3. (zkSTARKs zkSNARK 10 , ).
  4. ( zkSTARKs zkSNARK, , zkSTARKs zkSNARK, ).


Protokol zkSTARKs direncanakan untuk digunakan di Ethereum dalam komputasi yang dapat diverifikasi dan transaksi yang berpotensi aman / anonim, serta di Dapps di mana privasi penting, seperti browser web Brave, yang menggunakan token Perhatian Dasar.



Ada perusahaan baru bernama StarkWare Industries yang bertujuan untuk menyelesaikan beberapa masalah dengan ZK-STARK (salah satunya adalah proof size) dan juga mengkomersialkan teknologi yang dapat digunakan di banyak industri, termasuk implementasi ledger terdistribusi.



Teknologi antipeluru



Divisi Pengembangan Buku Besar Terdistribusi ING sedang bereksperimen dengan Bulletproofs, teknologi yang berfokus pada privasi berdasarkan algoritme kriptografi modern.



Bulletproofs didasarkan pada karya Jonathan Bootle dan lainnya pada tahun 2016 tentang peningkatan penggunaan logaritma diskrit, yang mendasari bukti nol pengetahuan. dan mewakili bentuk yang lebih efektif dari bukti ini.



Yang penting, Bulletproofs memiliki dukungan bawaan untuk kunci publik dan kewajiban Pedersen(primitif kriptografi yang memungkinkan Anda memperbaiki nilai apa pun yang dipilih, menjaganya tetap tersembunyi dari orang lain, dengan kemampuan untuk mengungkapkan nilai tetap nanti). Hal ini memungkinkan kami untuk menerapkan bukti jangkauan pada prinsip-prinsip umum pengetahuan nol tanpa melakukan perhitungan mesin berat pada kurva elips.



Bukti Antipeluru direpresentasikan dengan cara yang jauh lebih umum daripada bukti rentang dan dapat digunakan untuk pernyataan arbitrer tanpa pengetahuan. Teknologi ini memiliki efisiensi yang sebanding dengan zkSNARKs atau zkSTARKs , tetapi memiliki dukungan bawaan untuk kunci publik kurva eliptik dan kewajiban Pedersen(oleh karena itu, sebagai aturan, tidak perlu melakukan kalkulasi kurva elips di dalam program yang diuji). Selain itu, tidak seperti zkSNARKs , Bulletproofs memiliki tingkat kekuatan kriptografi 128-bit penuh sesuai dengan asumsi standar tanpa menggunakan "instalasi tepercaya". Dan, tidak seperti zkSTARKs , mereka cukup cepat untuk membuktikan dan memvalidasi masalah skala besar pada perangkat keras komputasi konvensional.



Dibandingkan dengan teknologi ZKP , yang membutuhkan lebih banyak daya komputasi, teknologi Bulletproofs sekitar 10 kali lebih cepat, karena memungkinkan transaksi tanpa pertukaran data pembayaran.



Poin-poin penting untuk teknologi (protokol) ini:



  • Antipeluru didasarkan pada prinsip-prinsip umum bukti pengetahuan nol (seperti dalam zkSNARKs);
  • teknologi dapat digunakan untuk memperluas protokol multilateral seperti multisignature atau pembayaran bersyarat tanpa pengetahuan;
  • Bulletproofs memberikan versi bukti yang jauh lebih efisien dari berbagai transaksi rahasia (saat menggunakan verifikasi batch, kecepatan verifikasi lebih dari 23 kali lebih cepat);
  • berbagai bukti tersebut dapat digabungkan dalam sebuah transaksi, dan ukurannya akan tumbuh secara logaritmik;
  • dengan agregasi yang tepat seperti Ketentuan , verifikasi batch memberikan lebih dari 120x kecepatan pembuktian sebelumnya.


Tabel perbandingan karakteristik protokol



Mari kita menyusun tabel perbandingan dengan karakteristik protokol yang dipertimbangkan tanpa pengetahuan rahasia



gambar



kesimpulan



  1. zk-SNARKs dan zk-STARKs memiliki banyak area aplikasi, termasuk untuk implementasi tanda tangan elektronik sederhana, serta pembuatan sistem manajemen dokumen elektronik, dengan asumsi kerahasiaan informasi.
  2. Secara umum, protokol nol pengetahuan sangat menjanjikan dan menjadi lebih praktis untuk digunakan dalam sistem teknologi buku besar terdistribusi. Saat ini, setiap implementasi menonjol dengan caranya sendiri, namun, semuanya membutuhkan sumber daya, dan ada kebutuhan akan solusi efektif dengan rentang pengetahuan nol.
  3. , , , , ( , , ).


1. 34.13-2018 (). . // docs.cntd.ru URL: docs.cntd.ru/document/1200161709 ( : 31.05.2020);

2. Recommendation for Key Management Part 1: General // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf ( : 11.05.2020);

3. / 12207-2010 // docs.cntd.ru/ URL: docs.cntd.ru/document/gost-r-iso-mek-12207-2010 ( : 11.05.2020);

4. Recommendation for Cryptographic Key Generation // nvlpubs.nist.gov/ URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-133r1.pdf ( : 11.05.2020);

5. Recommendation for Key Management Part 2 – Best Practices for Key Management Organizations // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt2r1.pdf ( : 11.05.2020);

6. Security Requirements for Cryptographic Modules // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.140-2.pdf ( : 11.05.2020);

7. Payment Card Industry (PCI) Data Security Standard // pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf?agreement=true&time=1589494129851 ( : 11.05.2020);

8. // intuit.ru URL: www.intuit.ru/studies/courses/553/409/info ( : 11.05.2020).

9. // cryptowiki.net/ URL: cryptowiki.net/index.php?title=____ ( : 11.05.2020);

10. Kerberos_(protocol) // en.wikipedia.org URL: en.wikipedia.org/wiki/Kerberos_(protocol) ( : 11.05.2020)

11. RFC5280 β€” Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile;

12. Recommendation for Key Management Part 3: Application-Specific Key Management Guidance // nvlpubs.nist.gov URL: nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57Pt3r1.pdf ( : 11.05.2020);

13. Blockchain reference architecture // ibm.com URL: www.ibm.com/cloud/architecture/files/blockchain-architecture-diagram.pdf ( : 24.05.2020).

14. Key management // cloud.ibm.com URL: cloud.ibm.com/docs/blockchain?topic=blockchain-ibp-security ( : 24.05.2020);

15. , . . / . . . β€” : // . β€” 2016. β€” β„– 1 (105). β€” . 141-143. β€” URL: moluch.ru/archive/105/24663 ( : 31.05.2020).

16. CKMS – // www.cryptomathic.com URL: www.cryptomathic.com/hubfs/Documents/Product_Sheets/Cryptomathic_CKMS_-_Product_Sheet.pdf ( : 31.05.2020);

17. HSM // www.croc.ru URL: www.croc.ru/promo/insafety/design/hardware-security-module ( : 31.05.2020);

18. HSM // cbr.ru URL: cbr.ru/Content/Document/File/104755/FT_35.pdf ( : 30.05.2020);

19. AWS Key Management Service // aws.amazon.com URL: aws.amazon.com/ru/kms ( : 30.05.2020);

20. . . // zakonbase.ru URL: zakonbase.ru/content/part/1250444 ( : 31.05.2020);

21. Diffie Hellman Protocol // mathworld.wolfram.com URL: mathworld.wolfram.com/Diffie-HellmanProtocol.html ( : 31.05.2020);

22. STS Protocol // archive.dimacs.rutgers.edu URL: archive.dimacs.rutgers.edu/Workshops/Security/program2/boyd/node13.html ( : 31.05.2020);

23. The Needham-Schroeder Protocol // www.cs.utexas.edu URL: www.cs.utexas.edu/~byoung/cs361/lecture60.pdf ( : 31.05.2020);

24. Otway Rees protocol // www.lsv.fr URL: www.lsv.fr/Software/spore/otwayRees.pdf ( : 31.05.2020);

25. Payment Card Industry (PCI) PTS HSM Security Requirements // www.pcisecuritystandards.org URL: www.pcisecuritystandards.org/documents/PTS_HSM_Technical_FAQs_v3_May_2018.pdf ( : 31.05.2020);

26. zk-SNARK? // z.cash/ru URL: z.cash/ru/technology/zksnarks ( : 31.05.2020);

27. zk-SNARKs zk-STARKs? // academy.binance.com/ru URL: academy.binance.com/ru/blockchain/zk-snarks-and-zk-starks-explained ( : 31.05.2020);

28. Bulletproofs: Short Proofs for Confidential Transactions and More // web.stanford.edu URL: web.stanford.edu/~buenz/pubs/bulletproofs.pdf ( : 31.05.2020);

29. // beincrypto.ru URL: beincrypto.ru/learn/chto-takoe-tehnologiya-raspredelennogo-reestra ( : 31.05.2020);

30. 12 - // dou.ua URL: dou.ua/lenta/articles/12-konsensus-protocols ( : 31.05.2020);

31. ISO/IEC 11770-1-2017. 1 // www.egfntd.kz URL: www.egfntd.kz/rus/tv/391980.html?sw_gr=-1&sw_str=&sw_sec=24 ( : 31.05.2020);

32. Consensus algorithm // whatis.techtarget.com URL: clck.ru/Nvade ( : 31.05.2020);

33. Introduction to Zero Knowledge Proof: The protocol of next generation Blockchain // medium.com URL: medium.com/@kotsbtechcdac/introduction-to-zero-knowledge-proof-the-protocol-of-next-generation-blockchain-305b2fc7f8e5 ( : 31.05.2020).




All Articles