Pada artikel ini, saya akan berbicara tentang masalah keamanan dalam teknologi blockchain mengingat pertumbuhan kinerja komputer kuantum, membahas beberapa metode perlindungan terhadap serangan menggunakan komputer kuantum, dan proyek terbaru: Quantum-Resistant Ledger. Menurut pengembang, ini akan menjadi platform pertama di dunia yang dibangun berdasarkan prinsip-prinsip enkripsi pasca-kuantum dan dirancang untuk memberikan perlindungan dari "guncangan kuantum" jika terjadi perkembangan yang cepat dari teknologi ini. Platform yang dibangun menggunakan prinsip enkripsi klasik dapat mengalami pukulan seperti itu. Tanpa perubahan mendasar, Bitcoin, Ethereum, Ardour dan sebagian besar platform ini mungkin dalam waktu dekat.
Bagian 1. Masalah Keamanan
Kerentanan
Algoritme perlindungan Bitcoin dan sistem serupa didasarkan pada prinsip enkripsi asimetris dengan kunci publik dan pribadi. Transaksi ditandatangani dengan kunci pribadi, dan validitasnya diverifikasi menggunakan kunci publik.
Menggunakan algoritma serangan klasik, hampir tidak mungkin untuk menemukan kunci privat, mengetahui kunci publik. Sistem enkripsi asimetris, seperti RSA dan sejenisnya (DSA, DH, dll.), Dibangun di atas pernyataan bahwa kompleksitas faktorisasi suatu angka tumbuh secara eksponensial dari ukuran kunci. Namun, menggunakan
algoritma Shore pada komputer kuantum, menjadi mungkin dalam waktu polinomial untuk menguraikan angka menjadi faktor utama dan, dengan demikian, menemukan kunci privat, mengetahui kunci publik.
Pada tahun 2001, IBM
mendemonstrasikan ini dengan memisahkan angka 15 menjadi dua faktor utama, 3 dan 5. Komputer kuantum yang terdiri dari 7 qubit digunakan untuk tujuan ini. Sejak itu, perkembangan teknologi komputasi kuantum telah berkembang lebih cepat.
Pada tahun 2016, sekelompok peneliti dari Massachusetts Institute of Technology, bersama dengan Innsbruck Institute, melakukan tugas yang sama untuk menguraikan angka 15,
hanya menggunakan 5 qubit .
Pada Juli 2017,
komputer 51 qubit yang dapat diprogram dibuat oleh fisikawan Rusia-Amerika.
Pada akhir Oktober 2017, kelompok riset internasional dari universitas Singapura dan Australia sampai pada kesimpulan bahwa sebagian besar protokol kriptografi yang digunakan dalam blockchain rentan terhadap serangan oleh komputer kuantum yang kuat. Laporan
grup memberikan 2 prediksi pertumbuhan kekuatan komputer kuantum: optimis dan kurang optimis. Menurut yang pertama, jumlah qubit dari komputer kuantum akan berlipat ganda setiap 10 bulan. Perkiraan yang kurang optimis menunjukkan penggandaan jumlah qubit setiap 20 bulan. Gambar di bawah ini menunjukkan grafik dari kedua perkiraan tersebut.
Yang paling rentan terhadap serangan komputer kuantum adalah algoritma untuk membuat tanda tangan digital berdasarkan kurva eliptik (
ECDSA ). Dengan demikian, menurut
laporan grup , Bitcoin dalam bentuk klasiknya dapat dipecahkan pada tahun 2027.
Mungkin tidak semuanya begitu buruk? Kunci publik tidak disimpan dalam teks yang jelas
Pada akhir April 2017, sebuah
artikel dipublikasikan di bitcoin.com untuk menjawab pertanyaan apakah pemegang Bitcoin harus berhati-hati dalam memutuskannya dengan komputer kuantum. Dikatakan bahwa meskipun fakta bahwa enkripsi asimetris digunakan dalam blockchain Bitcoin, pengguna tidak perlu khawatir tentang keamanan koin mereka. Kunci publik tidak disimpan dalam teks yang jelas. Jadi, alamat untuk mentransfer koin bukan kunci publik, tetapi hanya hasil dari penerapan fungsi hash SHA-256. Fungsi hash melakukan konversi satu arah dan karenanya tahan terhadap serangan komputer kuantum.
Kunci publik menjadi dikenal selama transaksi
Pernyataan bahwa kunci publik tidak tersedia secara jelas tidak sepenuhnya benar. Tanpa membahas detail kecil, kami akan menganalisis menggunakan contoh Bitcoin (BTC) bagaimana cryptocurrency ditransfer dari satu orang ke orang lain.
Biarkan Alice di dompetnya di salah satu alamat Bitcoin memiliki 100 mBTC (1000 mBTC = 1 BTC). Dia ingin mentransfer Bob 1 mBTC. Untuk melakukan ini, ia menunjukkan alamat Bitcoin Bob, biaya transfer, dan alamat Bitcoin di dompetnya untuk menerima perubahan. Misalkan Alice menunjuk 1 mBTC sebagai komisi. Dengan demikian, dari 100 mBTC yang dimiliki Alice, 1 mBTC dikirim ke Bob, 1 mBTC berangkat sebagai komisi di jaringan Bitcoin dan 98 mBTC dikembalikan ke dompet Alice.
Sekarang mari kita lihat apa yang terjadi di tingkat jaringan Bitcoin. Alice dan Bob memiliki dompet berisi alamat untuk menyimpan koin. Satu dompet dapat berisi beberapa alamat Bitcoin. Alamat dihasilkan saat membuat dompet. Setiap alamat sesuai dengan pasangan kunci yang dibuat oleh algoritma ECDSA: publik dan pribadi. Saat mentransfer koin, transaksi dibuat di mana informasi tentang jumlah koin yang dikirimkan oleh Alice, alamat Bitcoin Bob, tanda tangan yang dibuat oleh kunci pribadi Alice,
kunci publik Alice dan beberapa data lainnya dikirimkan. Selanjutnya, transaksi
dalam bentuk terbuka (tidak terenkripsi) dikirim ke jaringan . Host, sebelum menerima transaksi untuk diproses, verifikasi tandatangannya menggunakan kunci publik. Jika tanda tangan valid, mereka menambahkan informasi transaksi ke blok. Operasi switching ini disebut konfirmasi.
Waktu pembuatan blok rata-rata di jaringan Bitcoin adalah 10 menit. Jaringan berusaha untuk menjaga waktu ini konstan. Sebelum menggunakan dana yang diterima,
disarankan untuk menunggu 6 konfirmasi. Dengan demikian, Bob, mengamati aturan keselamatan, akan dapat menggunakan dana yang diterima sekitar satu jam setelah ditransfer.
Salah satu fitur mentransfer koin di jaringan Bitcoin adalah tidak mungkin mentransfer hanya sebagian koin dari satu alamat. Koin selalu ditransfer penuh, terletak di alamat Bitcoin di dompet, dan perubahan dikembalikan ke pengirim. Itu bisa diperoleh baik ke alamat dari mana koin dikirim, dan ke yang lain. Karena itu, Alice harus menunjukkan alamat untuk pengiriman. Dalam sejumlah perangkat lunak yang mengoperasikan dompet, alamat pengiriman adalah alamat pengiriman.
Biaya transaksi, sebenarnya, tidak wajib, tetapi ketidakhadirannya dapat menunda transaksi untuk waktu yang lama. Kebalikannya juga benar: Anda dapat mempercepat transaksi dengan meningkatkan ukuran komisi. Pada saat penulisan ini (Januari 2018), sebagian besar perangkat lunak dompet menawarkan biaya 1 mBTC. Ada sejumlah sumber daya, misalnya, yang
ini , yang memungkinkan Anda memperkirakan waktu transaksi termasuk dalam blok tergantung pada ukuran komisi.
Menggunakan kunci publik 1 kali
Dari sudut pandang keamanan, yang terbaik adalah menerima perubahan ke alamat baru, kunci publik yang tidak akan diketahui jaringan. Dalam hal ini, pasangan kunci hanya digunakan 1 kali. Namun, menurut
statistik pada Desember 2017, sekitar 41,34% alamat digunakan kembali.
10 menit untuk menyerang
Namun, cepat atau lambat Anda harus menggunakan dana di alamat baru. Kunci publik ditransmisikan ke jaringan secara jelas. Sampai konfirmasi tiba, dana masih di pengirim. Jika penyerang menerima kunci publik selama transaksi, ia akan memiliki sekitar 10 menit untuk mendapatkan kunci pribadi menggunakan komputer kuantum dan mencoba untuk melakukan transaksinya dari alamat yang sama, menetapkan komisi yang lebih tinggi.
Alamat statis lebih rentan
Dalam sistem seperti Ethereum, NXT, Ardour, dll., Kunci publik juga menjadi dikenal setelah transaksi pertama. Situasi ini diperburuk oleh fakta bahwa token atau kontrak pintar terkait dengan alamat statis, yang dapat diserang untuk waktu yang lama. Jika serangan berhasil, penyerang dapat menghancurkan seluruh sistem ekonomi berdasarkan alamat ini.
Bagian 2. Solusi
Bagaimana cara memberikan perlawanan terhadap serangan komputer kuantum?
Saat ini, ada beberapa metode dasar yang memberikan perlindungan terhadap serangan komputer kuantum:
- kriptografi berbasis hash;
- kriptografi berbasis kode;
- kriptografi berbasis matriks;
- kriptografi berdasarkan sistem kuadratik multidimensi;
- kriptografi kunci pribadi.
Dengan kunci yang cukup panjang dan kepatuhan terhadap persyaratan keamanan, metode perlindungan ini mampu menahan serangan klasik dan serangan menggunakan komputer kuantum.
Yang paling banyak dipelajari adalah penggunaan tanda tangan digital berdasarkan fungsi hash.
Seperti disebutkan sebelumnya, fungsi hash melakukan konversi pesan satu arah. Pesan dikonversi ke nilai hash dengan panjang tetap. Menggunakan fungsi hash di satu sisi seharusnya tidak masuk akal untuk mencari pesan untuk mendapatkan nilai hash yang serupa. Di sisi lain, algoritme harus tahan terhadap benturan: ketika 2 pesan berbeda sesuai dengan nilai fungsi hash yang sama.
Algoritma kuantum Grover dapat digunakan untuk mencoba menemukan tabrakan atau melakukan serangan pendahuluan untuk menemukan pesan asli. Ini akan membutuhkan
O ( 2 f r a c n 2 ) operasi. Jadi, untuk menjaga keamanan 128-bit, panjang hash yang dihasilkan setidaknya 256 bit. Dengan fungsi seperti itu, SHA-256 dapat dipilih.
Lampport Signature
Salah satu opsi untuk menggunakan fungsi hash dalam tanda tangan digital adalah tanda tangan Lamport. Ini dapat dibangun berdasarkan fungsi hash satu arah. Stabilitas kriptografi dari algoritma ini didasarkan pada stabilitas kriptografi dari fungsi hash yang digunakan.
Skema tanda tanganUntuk pesan
M panjang
m kunci dihasilkan. Pertama, kunci pribadi dibuat berpasangan
SK panjang
n , kemudian, menggunakan fungsi hash, pasangan kunci publik dibentuk dari kunci pribadi
PK . Jumlah pasangan kunci pribadi dan publik sama dengan jumlah bit dalam pesan asli.
Saat menandatangani, pesan dibaca sedikit demi sedikit, dan, tergantung pada nilai bit saat ini, salah satu kunci pribadi dari pasangan yang sesuai dipilih. Kunci pribadi yang dipilih digabungkan menjadi tanda tangan. Selanjutnya, tanda tangan yang dihasilkan dan
m pasang kunci publik dikirim ke penerima.

Memverifikasi tanda tangan mirip dengan proses pembuatannya. Tanda tangan dipecah menjadi beberapa bagian
n yang kemudian dikonversi menggunakan fungsi hash yang sama. Pesan dibaca sedikit demi sedikit dan nilai bit memilih kunci publik, yang dibandingkan dengan nilai hash yang diterima.
Biasanya, sebelum menerapkan tanda tangan, pesan asli dipotong untuk mengurangi ukurannya. Biarkan SHA-256 dipilih sebagai fungsi hash, lalu
m=n=256 . Dalam hal ini, total panjang kunci publik (dan juga privat)
LPK Ternyata sama:
LPK=n∗2∗m=256∗2∗256=128KB=16KB.
Panjang tanda tangan
LS adalah:
LS=n∗m=64KB=8KB.
Tanda tangan Lamport adalah satu kali (tetap aman hanya jika digunakan sekali), karena ketika dijalankan dan ditransmisikan, setengah dari kunci pribadi menjadi dikenal. Biarkan panjang pesan menjadi 256 byte dan panjang hash 256. Sebelum Alice menerbitkan tanda tangan untuk pesan, tidak ada yang tahu 2 * 256 angka acak dalam kunci rahasia. Dengan demikian, tidak ada yang dapat membuat set yang benar dari 256 angka untuk tanda tangan.
Setelah Alice menerbitkan tanda tangan, tidak ada yang akan tahu 256 angka yang tersisa, dan dengan demikian tidak akan dapat membuat tanda tangan untuk pesan yang memiliki hash yang berbeda.
Fakta bahwa tanda tangan Lamport adalah satu kali, dikombinasikan dengan jumlah total tanda tangan dan kunci publik yang mengesankan (24 KB dengan panjang pesan 256 byte dan panjang hash 256 byte), menjadikan penggunaannya dalam blok transaksi publik tidak sesuai.
Tanda tangan Winternitz
Ada algoritma tanda tangan digital satu kali lainnya. Dalam tanda tangan Vinternytsia, berbeda dengan tanda tangan Lamport, pesan aslinya ditandatangani bukan bitwise, tetapi dalam blokir. Tanda tangan satu kali di Winternitz, seperti Lamport, dapat dibangun berdasarkan fungsi kriptografi yang kuat.
Skema tanda tanganPesan
M panjang
m dipecah menjadi beberapa bagian
Mi panjang
w . Kunci pribadi dihasilkan untuk setiap fragmen
SK panjangnya
n . Untuk setiap kunci pribadi, operasi hash diterapkan secara berurutan
2w−1 kali (putaran)
R ) Sebagai hasil dari operasi, kunci publik yang sesuai diperoleh
PK sama panjangnya
n .

Ketika menandatangani, seperti dalam generasi kunci publik, perhitungan berulang hash atas kunci pribadi dilakukan. Jumlah pengulangan dalam setiap kasus tergantung pada pesan yang ditandatangani. Seperti disebutkan sebelumnya, pesan dibagi menjadi beberapa blok panjang
w . Nilai numerik dari blok ini
Mi dan jumlah iterasi yang harus dilakukan pada kunci pribadi untuk mendapatkan tanda tangan. Koneksi dari blok yang diterima akan menjadi tanda tangan dari pesan ini.

Saat memeriksa tanda tangan pada fragmen panjangnya
n iteratif menghitung hash. Jumlah putaran
Ri penerapan fungsi hash didefinisikan sebagai perbedaan antara jumlah iterasi untuk mendapatkan kunci publik dan nilai numerik dari blok pesan, mis.
Ri=2w−1−Mi kali. Kemudian nilai yang diperoleh dibandingkan dengan kunci publik yang sesuai.
ContohSaya akan menggambarkan hal di atas dengan contoh kecil. Biarkan pesan diberikan
M (dalam representasi bit) panjangnya
m , parameter Vinternitsa
w dan beberapa fungsi hash panjang
n :
M=1100011101100111,m=16,w=8,n=256.
Hasilkan
m/w=2 kunci pribadi berdasarkan generator nomor acak semu. Untuk setiap kunci pribadi yang kami terapkan
2w−1=$25 kali fungsi hash, dengan demikian mendapatkan
2 kunci publik yang digabungkan menjadi satu kunci panjang yang umum
2∗n=512 sedikit. Selanjutnya untuk setiap blok pesan
M panjangnya
w tentukan jumlah operasi hash yang diterapkan pada kunci privat
Ri . Dalam hal ini, ini akan menjadi nilainya
110001112=19910 dan
011001112=10310 sesuai. Setelah melakukan operasi hashing pada kunci privat, kami mendapatkan tanda tangan panjang
2∗n=512 sedikit.
Untuk memverifikasi tanda tangan, bagi menjadi beberapa bagian
n . Kami memproduksi lebih dari setiap bagian
Ri=2w−1−Mi operasi hash. Yaitu
255−199=56 dan
255−103=$15 masing-masing kali. Jika hasil operasi menghasilkan nilai yang cocok dengan kunci publik, maka pesan tersebut dapat diandalkan.
Saat menggunakan SHA-256 sebagai fungsi hash untuk menandatangani Winternitz,
m=n=256 .
Biarkan
w=8 sedikit. Kemudian ukuran penuh kunci publik
LPK dan tanda tangan
LS sama dengan:
LPK=LS=m/w∗n=256/8∗256=8KB=1KB.
Jumlah operasi perhitungan hash dalam hal ini sama dengan:
P=(2w−1)∗m/w=(28−1)∗256/8=8160.
Untuk kasus
w=16 , nilai ini meningkat menjadi
P=1048560 .
Ukuran kunci publik dan tanda tangan, dengan parameter yang sama seperti pada contoh untuk tanda tangan Lamport, adalah 1 KB. Secara total, ini kurang dari tanda tangan Lamport (24 KB). Namun, jumlah perhitungan hash dalam kasus ini adalah 8160. Yang tentu saja sangat banyak. Selain itu, ketika memeriksa tanda tangan, rata-rata setengah dari jumlah iterasi ini dilakukan. Ini membuat opsi tanda tangan ini tidak sesuai untuk digunakan pada blockchain.
Ada beberapa opsi untuk menandatangani Winternitz, termasuk dengan perpanjangan tanda tangan untuk meningkatkan keandalan dan mengurangi jumlah penggunaan fungsi hash. Deskripsi mereka berada di luar cakupan artikel ini. Mereka yang tertarik dapat melihat lebih banyak di
sini . Aplikasi tanda tangan Vinternitsa berdasarkan fungsi hash domestik GOST 34.11-12 dapat dilihat di
sini .
Merkle Tree (MSS)
Tanda tangan satu kali dapat memberikan keamanan kriptografi yang memuaskan, namun penggunaan satu kali mereka dapat menjadi masalah serius. Biarkan transfer dari satu alamat ke alamat lainnya diperlukan. Ternyata ketika menggunakan tanda tangan satu kali, akan perlu untuk mentransfer seluruh jumlah dana setiap kali, dan untuk setiap transaksi diperlukan alamat baru. Dengan setiap transaksi, Anda harus mempublikasikan kunci publik baru. Selain itu, menyimpan transaksi baru di blockchain akan secara bertahap membutuhkan lebih banyak waktu untuk mencarinya.
Untuk mengatasi masalah, mereka memperluas skema tanda tangan dengan melakukan beberapa tanda tangan berdasarkan beberapa pasangan kunci untuk setiap alamat. Penggunaan beberapa tanda tangan dilakukan berdasarkan pohon hash biner - pohon Merkle.
Lebih detailPerhitungan pohon dibuat dari daun ke akar. Setiap daun simpul pohon dihitung sebagai hash dari kunci publik yang dihasilkan. Node yang tersisa dihitung dengan memperoleh hash dari penggabungan (gluing) dari node anak. Dengan demikian, keseluruhan pohon dihitung sampai ke akar. Misalkan ada 4 pasangan kunci, pohon Merkle dihitung dengan menghitung 7 hash (lihat gambar di atas).
Fitur dari pohon Merkle adalah bahwa keberadaan node atau daun dapat dibuktikan secara kriptografi dengan menghitung root.
Tanda tangan pesan dibuat menggunakan kunci pribadi dari pasangan kunci yang dipilih.
Verifikasi tanda tangan melibatkan penghitungan root berdasarkan parameter yang diteruskan dan membandingkannya dengan kunci publik yang dapat digunakan kembali. Parameter-parameter ini adalah:
- tanda tangan
- root
- kunci satu kali, bagian tertutup di mana pesan ditandatangani;
- hash pohon terbentang di sepanjang jalan dari daun yang dipilih ke akar.
Saat menggunakan tanda tangan Merkle atau Winternitz satu kali, tidak perlu mentransfer kunci publik satu kali yang dipilih secara terpisah, karena dapat diperoleh dari tanda tangan pesan. Cukup melewati nomornya, mencerminkan posisinya di pohon. , : , , — 0 (
PK1 )
H2 dan
H6 .
PK1 , ,
H1 .
H1 dan
H2 H5 .
H5 dan
H6 R , .
Pohon Merkle, yang disusun dan dihitung dari kunci publik, memungkinkan alih-alih menerbitkan seluruh rangkaiannya untuk hanya mempublikasikan akar pohon. Ini meningkatkan ukuran tanda tangan dengan memasukkan bagian dari pohon dalam tanda tangan, tetapi memungkinkan hanya menggunakan 1 hash untuk memeriksa banyak tanda tangan. Jadi, dengan kedalaman pohonN dapat ditandatangani2 N posting. Pohon Merkle untuk kunci berdasarkan algoritma kurva eliptik digunakan dalam Bitcoin dan Ethereum, adaartikelbagus tentang yang terakhir dengan pemeriksaan pohon Merkle.Hypertrees
Kerugian utama dari skema Merkle dasar adalah bahwa jumlah tanda tangan yang tersedia terbatas, dan semua pasangan kunci dari tanda tangan satu kali harus dihasilkan sebelum pohon Merkle dihitung. Generasi kunci dan waktu penandatanganan tumbuh secara eksponensial sehubungan dengan ketinggian pohon. Dimungkinkan untuk menunda pembuatan kunci baru, serta meningkatkan jumlah pasangan yang tersedia, saat menggunakan pohon hiper.Lebih detail, . 2 : . , . . , (. ).
, , . , , . , .
. . , , .
Struktur Pohon Merkle yang Diperpanjang (XMSS)
Penjelasan lengkap tentang rangkaian ini jauh melampaui cakupan artikel ini, detail lebih lanjut dapat ditemukan di sini . Saya hanya akan menyentuh konsep dan karakteristik dasar. Skema XMSS, seperti pohon Merkle, memungkinkan Anda untuk memperpanjang tanda tangan satu kali. Menggunakan bitmask menggunakan ORs eksklusif (XOR) dari node anak sebelum hash digabungkan ke node induk memungkinkan untuk meningkatkan resistensi terhadap benturan dari fungsi hash yang digunakan. Jadi, ketika menggunakan SHA-256 sebagai fungsi hash dalam kombinasi dengan skema yang diperluas, Winternitz dengan parameter keamanan (W-OTS +) memungkinkan Anda meningkatkan keamanan dari 128 menjadi 196 bit. Menurut lenstraPertahanan 196-bit sudah cukup untuk dianggap aman terhadap serangan dengan serangan brute force sederhana hingga 2169. Dengan semua keunggulan skema XMSS, kelemahan utamanya adalah waktu pembuatan kunci yang lama.Saat ini, ada skema ekstensi pohon Merkle lainnya ( GMSS , CMSS ) yang, dalam kombinasi dengan algoritma tanda tangan satu kali, juga dapat digunakan dalam blockchain yang tahan terhadap serangan menggunakan komputer kuantum.Bagian 3. Realisasi ide
Proyek Blockchain Berkelanjutan Quantum - QRL
Pada paruh kedua 2016, Dr. P. Waterland menciptakan grup untuk mengembangkan blockchain yang stabil baik untuk serangan klasik maupun untuk serangan menggunakan komputer kuantum. Menurut hasil pengembangan bagian teoritis pada akhir tahun yang sama, dokumen utama blockchain yang dikembangkan, "kertas putih" (white paper), dibuat tersedia untuk umum. Dokumen saat ini tersedia dalam beberapa bahasa, termasuk Rusia.Fitur Utama QRL
1. Skema tanda tangan dan keamananSkema tanda tangan diterapkan berdasarkan algoritma tanda tangan diperpanjang Winternitz (W-OTS +, w = 16, SHA-256) berdasarkan pada struktur yang terhubung XMSS. Pendekatan ini memungkinkan Anda untuk menghasilkan alamat dengan kemungkinan penandatanganan, menghindari penundaan komputasi yang diamati saat membuat konstruksi XMSS raksasa. Memberikan perlindungan 196-bit dengan keamanan yang dapat diprediksi terhadap serangan dengan penghitungan sederhana hingga 2169.
2. Algoritma Konsensus - bukti kerjaDalam iterasi pertama dari jaringan utama, algoritma konsensus pembuktian kerja diumumkan.
3. Komisi mengambangUkuran transaksi yang lebih besar dibandingkan dengan blok lain dari rantai transaksi membutuhkan pembayaran untuk setiap transaksi. Menurut Waterland, pasar dengan komisi buatan (misalnya, Bitcoin) tidak diperlukan dan bertentangan dengan ideal blockchain terbuka. Setiap transaksi, jika disertai dengan pembayaran minimum, harus sama validnya dengan yang lain. Jumlah pembayaran minimum yang dapat diterima oleh penambang harus mengambang dan ditetapkan oleh pasar. Yaitu simpul (penambang) harus secara kompetitif menetapkan batas yang lebih rendah untuk pembayaran di antara mereka sendiri. Nilai minimum absolut akan dihormati di tingkat protokol. Dengan demikian, penambang akan memesan transaksi dari mempool untuk dimasukkan dalam blok sesuai kebijakan mereka.
4. Perhitungan imbalan blok dinamisSetiap blok yang baru dibuat akan mencakup transaksi basis koin pertama yang berisi alamat penambangan, yang hadiahnya akan didefinisikan sebagai jumlah hadiah untuk tingkat koin dengan jumlah total komisi untuk transaksi di dalam blok.
5. Waktu yang dihabiskan oleh blok adalah 1 menitWaktu antar blok dalam jaringan Bitcoin adalah sekitar 10 menit. Dengan 6 konfirmasi yang diperlukan, ini juga menambah waktu tunggu untuk penyelesaian transaksi. Skema blok rantai transaksi yang lebih baru, seperti Ethereum, ditingkatkan dalam aspek ini dan mendapat manfaat dari waktu blok yang lebih pendek tanpa kehilangan keamanan atau memusatkan penambang karena tingginya tingkat penampilan blok yatim / usang.
Untuk QRL, waktu blok ini adalah 1 menit.
6. Ukuran blok adaptifUntuk menghindari kemungkinan perselisihan, solusi adaptif siap pakai dimodelkan berdasarkan proposal Bitpay, yang menggunakan pengganda untuk meningkatkan ukuran blok.
x ukuran sedang
y yang terakhir
z blok. Menggunakan nilai rata-rata tidak memungkinkan penambang untuk memanipulasi, termasuk blok kosong atau meluap untuk mengubah ukuran blok rata-rata.
x dan
z maka akan ada aturan konsensus yang sulit untuk jaringan yang harus dipatuhi. Jadi, ukuran blok maksimum
b dapat dengan mudah dihitung sebagai:
b = x y .
7. Mata uang - kuantumUnit dasar mata uang adalah kuantum. Setiap kuantum dibagi menjadi elemen terkecil. Di bawah ini adalah nama-nama semua elemen dalam urutan menaik:
Barang | Nilai |
---|
Shore | 1 |
Nakamoto | 10 3 |
Buterin | 10 6 |
Merkle | 10 10 |
Lampport | 10 13 |
Kuantum | 10 16 |
Jadi, setiap transaksi yang melibatkan bagian dari kuantum sebenarnya adalah sejumlah besar unit Shore. Biaya transaksi dihitung dan diposting dalam satuan Shore.
8. Akun dan alamatSaldo pengguna disimpan di akun. Setiap akun adalah alamat blok rantai transaksi yang unik dan dapat digunakan kembali, ditunjukkan oleh baris yang dimulai dengan "Q".
Alamat dibuat dengan mengeksekusi SHA-256 di akar Merkle dari pohon sertifikasi XMSS tertinggi. Ditambahkan ke ini adalah checksum empat-byte, terbentuk dari empat byte pertama dari hash SHA-256 ganda dari akar Merkle, dan huruf "Q".
Sebagai contoh, dalam Python pseudo-code, ini akan dijelaskan sebagai berikut:
Q + sha256(merkle root) + sha256(sha256(merkle root))[: 4]
Alamat akun yang khas:
Qcea29b1402248d53469e352de662923986f3a94cf0f51522bedd08fb5e64948af479
Setiap akun memiliki saldo, dalam denominasi kuanta, dapat dibagi hingga satu unit Shore. Alamat dengan setiap transaksi menggunakan sepasang kunci penandatanganan satu kali baru. Penghitung transaksi yang disebut nonce akan bertambah dengan setiap transaksi yang dikirim dari akun Anda. Hal ini memungkinkan dompet yang tidak menyimpan seluruh rantai blok untuk melacak lokasi mereka dalam skema tanda tangan hypertree dengan pelestarian negara.
Status proyek saat ini dan rencana untuk masa depan
Setelah rilis "buku putih" kelompok itu diisi ulang dengan beberapa pengembang baru dan pekerjaan dimulai pada implementasi rencana. Laporan kemajuan rutin telah muncul di situs web proyek. Dan pada April 2017, jaringan uji blokir QRL telah diluncurkan. Kode sumber proyek diposting di Github. Proyek ini sedang dibahas secara aktif di Bitcointalk dan Reddit.
Pada Mei 2017, ICO dilakukan di ekosistem Ethereum. Token ERRL QRL diterbitkan. Secara total, 65 juta token diterbitkan. Dari jumlah tersebut, 52 juta token beredar. Selama 200 tahun, 40 juta koin lainnya akan dikeluarkan secara bertahap. Dengan demikian, volume total masalah adalah 105 juta koin. Ketika jaringan utama diluncurkan, token ini dapat ditukar dengan koin QRL dalam rasio 1: 1. Saat ini, token tersedia untuk pembelian di bursa seperti Bittrex, Upbit dan Liqui. Kutipan QRL, menurut situs
coinmarketcap.com , disajikan dalam gambar di bawah ini.


Peluncuran jaringan utama dijadwalkan untuk Februari-Maret 2018.
Di masa depan, direncanakan untuk mengubah algoritma konsensus dari konfirmasi pekerjaan ke konfirmasi kepemilikan (proof-of-stake). Waktu tinggal aman yang diharapkan dari blok adalah 15-30 detik.
Kesimpulan
Kemajuan teknologi kuantum telah diluncurkan dan tidak dapat dihentikan. Ketika mesin kuantum semakin produktif muncul, berbagai tugas yang mereka selesaikan akan terus tumbuh. Meretas pertahanan crypto yang ada, tidak disesuaikan dengan serangan komputer kuantum, telah lama menjadi salah satu topik utama dari banyak
forum keamanan .
QRL adalah teknologi blockchain pertama yang dirancang untuk mengatasi masalah ini. Di masa depan, tentu saja, yang lain akan muncul. Siapa di antara mereka yang paling sukses - waktu akan memberi tahu.
Ucapan Terima Kasih
Penulis berterima kasih kepada
kamnik untuk mempersiapkan bagian penting dari materi, dan terutama untuk bagian teknis, serta
SannX untuk kritik dan koreksi yang membangun.
Referensi
- Algoritma Shore .
- Faktorisasi utama pada komputer kuantum (IBM) .
- Faktorisasi nomor 15 menjadi faktor sederhana pada komputer kuantum (MIT) .
- Laporkan eksperimen di komputer 51 qubit .
- Laporan Kelompok Penelitian Internasional tentang stabilitas Bitcoin di depan komputer kuantum .
- Menggunakan algoritma pembuatan kunci ECDSA dalam blockchain Bitcoin .
- Tentang ketahanan Bitcoin terhadap serangan komputer kuantum .
- Konfirmasi transaksi di jaringan Bitcoin .
- Informasi tentang komisi di jaringan Bitcoin .
- Statistik penggunaan kembali alamat Bitcoin .
- Algoritma Quantum Grover .
- Perpanjangan tanda tangan Winternitz .
- Penerapan tanda tangan satu kali Vinternitsa berdasarkan fungsi hash dari GOST 34.11-12 .
- Geektimes tentang Ethereum .
- Skema XMSS .
- Lenstra. Pilihan ukuran kunci kriptografi .
- RUPS
- CMSS .
- Kursus sistem Cryptocurrency .
- Forum Keamanan Pasca-Kuantum Tahunan .
Materi tambahan
- Apakah komputer kuantum berbahaya bagi Bitcoin ?
Proyek QRL
- Situs proyek .
- Kertas putih .
- Presentasi
- Blog .
- Kode sumber GitHub .
- Utas diskusi tentang Bitcointalk .