Apa Itu Kriptografi Kurva Eliptik?
Kriptografi Kurva Eliptik (Elliptic Curve Cryptography atau ECC) adalah bentuk kriptografi kunci publik yang didasarkan pada operasi matematika atas titik-titik pada kurva eliptik di medan hingga.Jaringan mata uang kripto terutama menggunakan ECC untuk membuat pasangan kunci publik dan privat, menghasilkan tanda tangan digital, memverifikasi otorisasi transaksi, menetapkan rahasia bersama, dan mendukung bukti kriptografis tingkat lanjut.Private key adalah angka rahasia yang memberi pemiliknya kendali atas akun mata uang kripto atau identitas penandatanganan.Public key adalah nilai yang terkait secara matematis dan dapat digunakan peserta lain untuk memverifikasi tanda tangan tanpa mengetahui private key.Keamanan ECC sebagian besar bergantung pada sulitnya menyelesaikan masalah logaritma diskret kurva eliptik.Dengan private key dan titik generator yang dipilih, penghitungan public key terkait dapat dilakukan secara efisien.Jika hanya public key dan titik generator yang diketahui, pemulihan private key diyakini tidak praktis secara komputasi selama kurva, ukuran kunci, dan implementasi yang digunakan aman.Proyek Kriptografi Kurva Eliptik NIST menjelaskan ECC sebagai metode penting untuk tanda tangan digital dan penetapan kunci kriptografis.
ECC bukan satu algoritma, kurva, blockchain, atau mata uang kripto tertentu.ECC adalah keluarga luas metode kriptografi yang mencakup ECDSA, EdDSA, ECDH, tanda tangan Schnorr, tanda tangan BLS, dan konstruksi lainnya.Mengapa Mata Uang Kripto Menggunakan ECC?
Sistem mata uang kripto memerlukan cara agar pengguna dapat mengotorisasi transaksi tanpa mengungkap informasi rahasia yang mengendalikan asetnya.ECC memungkinkan hal ini melalui tanda tangan digital.Wallet menandatangani data transaksi menggunakan private key.Peserta jaringan menggunakan public key terkait untuk memverifikasi keabsahan tanda tangan.Proses ini membuktikan bahwa operasi diotorisasi oleh kunci yang diperlukan tanpa memublikasikan kunci tersebut.ECC menarik karena dapat memberikan keamanan klasik yang kuat dengan public key dan tanda tangan yang relatif ringkas.Dibandingkan sejumlah pendekatan kunci publik lama dengan tingkat keamanan serupa, nilai kriptografis yang lebih kecil mengurangi ukuran transaksi, bandwidth jaringan, kebutuhan penyimpanan, dan beban verifikasi.Manfaat efisiensi ini penting pada blockchain karena ribuan node independen mungkin perlu menyimpan atau memverifikasi data kriptografis yang sama.Apa Itu Kurva Eliptik?
Kurva eliptik yang digunakan dalam kriptografi adalah himpunan titik matematis yang memenuhi persamaan tertentu di atas medan hingga.Bentuk Weierstrass pendek yang umum ditulis sebagai
Rekomendasi final NIST SP 800-186 menetapkan parameter domain kurva eliptik yang disetujui untuk sistem kriptografi terkait.
Apa Itu Medan Hingga?
Medan hingga adalah himpunan nilai terbatas dengan aturan yang ditetapkan untuk penjumlahan, pengurangan, perkalian, dan pembagian.Banyak kurva mata uang kripto beroperasi di atas medan prima, tempat perhitungan dilakukan modulo bilangan prima yang besar.Aritmetika modular menyebabkan nilai berputar kembali saat mencapai modulus medan.Dengan demikian, terbentuk kumpulan koordinat yang terbatas, bukan bidang geometris tanpa batas.Sifat matematis medan dan kurva memungkinkan operasi titik membentuk grup aljabar yang terstruktur.Keamanan kriptografis bergantung pada pemilihan parameter medan dan grup yang tahan terhadap serangan matematis yang diketahui.Penjumlahan Titik
Penjumlahan titik adalah operasi yang menggabungkan dua titik kurva valid dan menghasilkan titik valid lainnya.Rumus yang tepat bergantung pada bentuk kurva eliptik.Operasi khusus yang disebut penggandaan titik menambahkan sebuah titik dengan dirinya sendiri.Penjumlahan berulang menjadi dasar perkalian skalar.Implementasi juga harus menangani kasus khusus dengan benar, seperti titik di tak terhingga yang bertindak sebagai elemen identitas grup.Aritmetika titik yang keliru dapat menghasilkan tanda tangan tidak valid, membocorkan informasi rahasia, atau menciptakan celah yang dapat dieksploitasi.Perkalian Skalar
Perkalian skalar berarti menambahkan suatu titik kurva eliptik dengan dirinya sendiri sebanyak jumlah tertentu.Dalam mata uang kripto, public key umumnya dihitung sebagai
Dalam ekspresi ini,
Menghitung
Pemulihan
Masalah Logaritma Diskret Kurva Eliptik
Masalah logaritma diskret kurva eliptik (Elliptic Curve Discrete Logarithm Problem atau ECDLP) adalah tantangan menemukan skalar rahasia ketika titik generator dan titik publik hasilnya diketahui.Belum ada algoritma klasik efisien yang diketahui publik untuk menyelesaikan ECDLP pada kurva besar yang dipilih dengan benar.Penyerang dapat mencoba brute force atau metode matematis tingkat lanjut, tetapi pekerjaan yang diperlukan seharusnya jauh melampaui kapasitas komputasi praktis untuk kurva 256-bit yang aman.Klaim ini bergantung pada pemilihan kurva, pembuatan kunci, validasi, dan implementasi yang benar.Generator angka acak yang lemah atau private key yang terekspos dapat menggagalkan sistem tanpa mengharuskan penyerang menyelesaikan ECDLP.Private Key ECC
Private key ECC biasanya merupakan bilangan bulat yang dipilih secara acak dalam rentang yang diizinkan dan ditentukan oleh orde grup kurva.Nilainya tidak boleh nol atau berada di luar rentang yang valid.Private key 256-bit tidak berarti setiap string 256-bit otomatis valid untuk setiap kurva.Software wallet harus menghasilkan nilai menggunakan sumber acak yang aman secara kriptografis dan menerapkan aturan rentang kurva.Private key harus tetap rahasia karena siapa pun yang mendapatkannya biasanya dapat membuat tanda tangan valid untuk akun terkait.Konsensus blockchain tidak dapat membedakan pemilik yang sah dari pencuri yang menggunakan kunci valid yang sama.Public Key ECC
Public key ECC adalah titik pada kurva eliptik yang dipilih.Public key dihitung dari private key melalui perkalian skalar.Dengan asumsi keamanan klasik saat ini, public key dapat dibagikan tanpa mengungkap private key.Sistem mata uang kripto dapat menyimpan public key lengkap, representasi terkompresi, atau alamat yang diturunkan dari hash.Public key harus divalidasi sebelum digunakan dalam protokol sensitif karena titik yang cacat dapat menimbulkan serangan kurva tidak valid atau serangan subgrup.Validasi dapat mencakup pemeriksaan encoding, konfirmasi bahwa titik berada pada kurva yang diharapkan, penolakan titik identitas, dan penerapan aturan subgrup.Public Key vs. Alamat Mata Uang Kripto
Alamat mata uang kripto tidak selalu sama dengan public key.Banyak sistem membuat alamat dengan melakukan hashing atau encoding lain atas informasi public key.Proses ini menghasilkan pengenal yang lebih pendek atau mudah digunakan serta dapat menambahkan checksum, pengenal jaringan, atau kondisi skrip.Beberapa alamat baru mengungkap public key lengkap saat dananya dibelanjakan.Sistem akun lain menurunkan alamat tetap dari public key sebelum transaksi apa pun terjadi.Pengguna tidak boleh menganggap alamat dapat dikonversi kembali menjadi private key.Untuk tujuan praktis, proses pembuatan alamat yang dirancang dengan benar hanya berjalan satu arah.ECC dan Tanda Tangan Digital
Tanda tangan digital adalah penggunaan ECC yang paling umum dalam mata uang kripto.Penandatangan memproses data transaksi dengan private key untuk menghasilkan tanda tangan.Peserta jaringan lain memverifikasi tanda tangan menggunakan public key yang sesuai dan data transaksi yang sama.Tanda tangan yang valid menjadi bukti bahwa private key yang diperlukan mengotorisasi pesan yang ditandatangani.Tanda tangan juga memungkinkan verifier mendeteksi perubahan pada data yang ditandatangani setelah proses penandatanganan.Tanda tangan tidak mengenkripsi transaksi atau menyembunyikan isinya.NIST FIPS 186-5 Digital Signature Standard final menetapkan ECDSA dan EdDSA sebagai beberapa teknik tanda tangan yang disetujui.
ECC Tidak Sama dengan Enkripsi
Kriptografi Kurva Eliptik mencakup teknik terkait enkripsi dan kesepakatan kunci, tetapi transaksi mata uang kripto biasanya menggunakan ECC untuk tanda tangan, bukan kerahasiaan.Blockchain publik biasanya harus membaca data transaksi untuk memverifikasi saldo, mengeksekusi smart contract, dan memperbarui state bersama.Transaksi ditandatangani untuk membuktikan otorisasi, sedangkan pengirim, tujuan, jumlah, atau instruksi contract-nya mungkin tetap terlihat publik.ECC dapat menetapkan rahasia bersama untuk komunikasi terenkripsi, tetapi operasi tersebut berbeda dari penandatanganan transaksi on-chain.Pengguna tidak boleh menganggap aktivitas mata uang kripto bersifat privat hanya karena menggunakan kriptografi kurva eliptik.Apa Itu ECDSA?
ECDSA adalah singkatan dari Elliptic Curve Digital Signature Algorithm.Algoritma ini mengadaptasi Digital Signature Algorithm untuk grup kurva eliptik.ECDSA menghasilkan tanda tangan yang berisi dua nilai utama yang umumnya disebut
Definisi ECDSA NIST mengidentifikasikannya sebagai padanan Digital Signature Algorithm yang menggunakan kurva eliptik.
Mengapa Nonce ECDSA Sangat Penting?
Setiap tanda tangan ECDSA memerlukan nilai rahasia per tanda tangan yang umumnya disebut
Implementasi modern umumnya menurunkan nonce secara deterministik dari private key dan hash pesan sesuai metode yang telah ditinjau, seperti RFC 6979.
Pembuatan nonce deterministik tetap memerlukan implementasi yang benar dan perlindungan terhadap kebocoran saluran samping.Apa Itu secp256k1?
secp256k1 adalah kurva eliptik 256-bit yang digunakan oleh Bitcoin, akun eksekusi Ethereum, dan beberapa sistem mata uang kripto lainnya.Persamaannya di atas medan prima adalah
Kurva ini menggunakan koefisien
Proyek libsecp256k1 yang dipelihara menyediakan implementasi khusus untuk tanda tangan dan operasi terkait pada kurva ini.
secp256k1 tidak dapat dipertukarkan dengan semua kurva 256-bit lainnya.Kunci atau tanda tangan yang dibuat untuk secp256k1 tidak otomatis dapat diverifikasi menggunakan kurva lain seperti P-256 atau Ed25519.Bitcoin dan ECC
Bitcoin secara historis menggunakan ECDSA di atas secp256k1 untuk mengotorisasi pengeluaran.Input transaksi memberikan informasi yang diperlukan untuk memenuhi kondisi penguncian output sebelumnya.Untuk kondisi berbasis tanda tangan biasa, node Bitcoin memverifikasi bahwa tanda tangan cocok dengan data transaksi dan public key terkait.Kepemilikan private key memungkinkan pemilik membuat tanda tangan yang diperlukan, tetapi tidak memungkinkan pemilik mengabaikan kondisi skrip lainnya.Bitcoin juga menggunakan tanda tangan Schnorr di atas secp256k1 untuk aturan pengeluaran terkait Taproot.Spesifikasi BIP-340 menetapkan format tanda tangan Schnorr tetap sepanjang 64 byte dan encoding public key 32 byte untuk penggunaan ini.
Tanda Tangan Schnorr
Tanda tangan Schnorr adalah konstruksi tanda tangan digital lain yang dapat beroperasi pada grup kurva eliptik.Linearitas matematisnya membuat tanda tangan ini berguna untuk agregasi kunci, protokol multisig, dan konstruksi tingkat lanjut lainnya.Dengan protokol yang dirancang secara cermat, beberapa penandatangan dapat membuat satu public key agregat dan satu tanda tangan yang tampak seperti tanda tangan biasa.Hal ini dapat mengurangi data blockchain dan meningkatkan privasi dibandingkan dengan memublikasikan setiap public key dan tanda tangan secara terpisah.Agregasi yang aman memerlukan protokol terdefinisi untuk mencegah serangan rogue key, serangan nonce, dan perilaku peserta yang berbahaya.Menambahkan public key atau nilai tanda tangan begitu saja tanpa mengikuti skema yang telah ditinjau tidak aman.Ethereum dan ECC
Akun eksekusi Ethereum menggunakan ECDSA di atas secp256k1 untuk tanda tangan transaksi biasa.Alamat externally owned account diturunkan dari public key-nya.Tanda tangan memungkinkan jaringan memulihkan atau memverifikasi public key yang terkait dengan pengirim dan mengonfirmasi otorisasi transaksi.Dokumentasi kunci proof-of-stake Ethereum saat ini menjelaskan bahwa kunci akun execution layer tetap menggunakan kurva eliptik, sementara validator menggunakan sistem kunci terpisah.
Tugas validator Ethereum menggunakan tanda tangan BLS pada kurva BLS12-381.Karena itu, kunci eksekusi validator dan kunci penandatanganan konsensus memiliki fungsi berbeda dan menggunakan skema kriptografi berbeda.Tanda Tangan ECDSA yang Dapat Dipulihkan
Beberapa sistem mata uang kripto menyertakan informasi pemulihan pada tanda tangan ECDSA.Informasi ini memungkinkan software mengidentifikasi public key yang dimaksud dari pesan dan tanda tangan tanpa mengirimkan public key lengkap secara terpisah.Tanda tangan Ethereum secara historis merepresentasikan informasi ini melalui nilai yang umumnya disebut
Standar tanda tangan ringkas ERC-2098 menjelaskan representasi ringkas untuk tanda tangan secp256k1 yang menggunakan informasi paritas secara efisien.
Pemulihan public key merupakan fitur format tanda tangan dan tidak mengungkap private key.Apa Itu EdDSA?
EdDSA adalah singkatan dari Edwards-Curve Digital Signature Algorithm.EdDSA merupakan keluarga tanda tangan digital yang dirancang menggunakan kurva Edwards terpuntir.EdDSA dirancang untuk mendukung implementasi efisien, penandatanganan deterministik, dan ketahanan terhadap sejumlah kesalahan implementasi umum.Ed25519 adalah varian EdDSA yang banyak digunakan dan didasarkan pada matematika terkait Curve25519.Spesifikasi RFC 8032 menetapkan Ed25519 dan varian tanda tangan kurva Edwards terkait.
Kunci dan tanda tangan Ed25519 tidak kompatibel dengan kunci dan tanda tangan ECDSA secp256k1.Solana dan Ed25519
Transaksi Solana menggunakan tanda tangan Ed25519 untuk akun penandatangan yang diwajibkan.Setiap penandatangan transaksi menyediakan tanda tangan Ed25519 64 byte atas pesan transaksi yang diserialisasi.Dokumentasi transaksi Solana saat ini menjelaskan struktur tanda tangan dan persyaratan penandatangan.
Solana juga menyediakan program verifikasi bawaan untuk tanda tangan Ed25519, secp256k1, dan secp256r1 dalam instruksi khusus aplikasi.Dukungan terhadap beberapa skema verifikasi tidak berarti public key atau tanda tangannya dapat saling menggantikan.Apa Itu ECDH?
ECDH adalah singkatan dari Elliptic Curve Diffie-Hellman.ECDH adalah metode kesepakatan kunci, bukan algoritma tanda tangan transaksi.Dua peserta menggabungkan private key masing-masing dengan public key peserta lain untuk menghitung rahasia bersama yang sama.Penyadap yang melihat public key tersebut seharusnya tidak dapat menghitung rahasia itu jika asumsi ECDLP berlaku.Nilai bersama biasanya diproses melalui fungsi derivasi kunci sebelum digunakan untuk enkripsi atau autentikasi.ECDH tidak mengautentikasi peserta dengan sendirinya, sehingga penggunaan tanpa autentikasi rentan terhadap serangan man-in-the-middle.X25519
X25519 adalah fungsi Diffie-Hellman kurva eliptik yang banyak digunakan dan didasarkan pada bentuk Montgomery Curve25519.X25519 dirancang untuk penetapan rahasia bersama yang efisien dan implementasi yang sederhana.Spesifikasi RFC 7748 menetapkan X25519 dan X448.
X25519 digunakan untuk kesepakatan kunci, bukan tanda tangan transaksi mata uang kripto biasa.Meskipun X25519 dan Ed25519 menggunakan medan dasar yang berkaitan, keduanya memiliki makna kunci berbeda dan tidak boleh dikonversi sembarangan.Tanda Tangan BLS dan Kurva Ramah Pairing
Tanda tangan BLS adalah tanda tangan kurva eliptik yang menggunakan pairing bilinear.Tanda tangan ini mendukung agregasi banyak tanda tangan dan public key secara efisien berdasarkan aturan yang ditentukan dengan cermat.Proof-of-stake Ethereum menggunakan tanda tangan BLS di atas BLS12-381 untuk proposal dan attestation validator.Agregasi memungkinkan banyak suara validator direpresentasikan lebih ringkas dibandingkan dengan menerbitkan tanda tangan terpisah untuk setiap validator.Standar hierarki akun deterministik BLS12-381 mendokumentasikan penggunaan kunci BLS dalam infrastruktur validator Ethereum.
BLS12-381 berbeda dari secp256k1 dan Ed25519 dalam struktur kurva, algoritma tanda tangan, derivasi kunci, dan persyaratan keamanannya.Kurva Eliptik yang Berbeda Tidak Dapat Dipertukarkan
Kurva eliptik dapat menggunakan persamaan, medan, generator, orde grup, kofaktor, encoding, dan asumsi keamanan yang berbeda.secp256k1, P-256, Ed25519, dan BLS12-381 adalah sistem kriptografi yang berbeda.Nilai 32 byte yang valid sebagai salah satu jenis public key dapat menjadi tidak valid atau tidak aman jika ditafsirkan dengan skema lain.Developer harus menentukan kurva, algoritma tanda tangan, aturan hashing, serialisasi, dan pemisahan domain secara bersamaan.Label umum seperti ECC saja tidak cukup untuk membuat dua aplikasi dapat saling beroperasi.Ukuran Kunci ECC dan Kekuatan Keamanan
Kurva eliptik medan prima 256-bit yang aman umumnya dikaitkan dengan sekitar 128 bit keamanan klasik terhadap serangan logaritma diskret umum.Ini tidak berarti penyerang memiliki peluang satu banding 128 untuk menebak kuncinya.Angka tersebut menggambarkan faktor kerja perkiraan yang sebanding dengan mencoba sekitar
Public Key Terkompresi
Sebuah titik pada kurva eliptik medan prima biasanya memiliki koordinat
Untuk banyak kurva, persamaan kurva menghasilkan dua nilai
Karena itu, public key terkompresi dapat menyimpan koordinat
Kelenturan Tanda Tangan
Kelenturan tanda tangan (signature malleability) terjadi ketika tanda tangan valid dapat diubah menjadi tanda tangan valid lain untuk pesan dan public key yang sama.ECDSA dasar memiliki simetri matematis yang dapat menghasilkan nilai
Protokol mata uang kripto dapat mengurangi masalah ini dengan mewajibkan format low-
Pembuatan Kunci dan Entropi
Kekuatan matematis ECC tidak dapat melindungi private key yang dibuat dari informasi yang mudah diprediksi.Wallet harus menggunakan generator angka acak yang aman secara kriptografis atau proses derivasi deterministik yang disetujui dan diberi seed dengan entropi yang memadai.Nama, tanggal lahir, kutipan, kata sandi pendek, dan pola angka pilihan pengguna bukan private key yang aman.Kunci yang dihasilkan oleh generator angka acak perangkat keras yang tidak berfungsi dengan benar dapat ditebak meskipun panjangnya sesuai harapan.Wallet sebaiknya menggabungkan sumber entropi yang telah ditinjau, memeriksa rentang nilai, dan melindungi lingkungan pembuatan seed.Pengguna tidak boleh membuat private key menggunakan fungsi spreadsheet biasa atau fungsi angka acak bahasa pemrograman yang bukan kriptografis.Wallet Deterministik Hierarkis
Wallet deterministik hierarkis menurunkan banyak kunci terkait dari satu seed utama.Dengan demikian, pengguna dapat mencadangkan satu seed sambil menghasilkan alamat terpisah untuk transaksi atau akun yang berbeda.Sistem derivasi menggunakan fungsi kriptografis dan operasi kurva eliptik sesuai standar yang ditentukan.Sejumlah jalur derivasi memungkinkan pembuatan public key anak dari extended public key tanpa mengekspos private key.Kombinasi extended public key dan private key anak yang bocor dapat berbahaya dalam sistem derivasi non-hardened tertentu.Developer dan pengguna wallet sebaiknya mengikuti standar derivasi yang tepat, bukan merancang hierarki kunci informal.Hardware Wallet dan ECC
Hardware wallet dapat menyimpan private key ECC dan melakukan penghitungan tanda tangan di dalam perangkat khusus.Komputer yang terhubung menerima public key atau tanda tangan, tetapi biasanya tidak menerima private key.Hal ini mengurangi paparan terhadap malware di komputer serbaguna.Perangkat tetap harus menampilkan informasi transaksi yang cukup agar pengguna dapat mengenali tujuan atau pemanggilan contract yang berbahaya.Secure element atau prosesor terisolasi tidak dapat melindungi pengguna yang menyetujui data transaksi yang menyesatkan.Frasa pemulihan juga tetap penting karena dapat digunakan untuk membuat ulang kunci ECC di perangkat lain.Multisig dan ECC Ambang Batas
Sistem multisig memerlukan otorisasi dari beberapa kunci, bukan hanya satu kunci.Skrip blockchain dapat memverifikasi beberapa tanda tangan ECC independen.Alternatifnya, protokol agregasi kriptografis atau ambang batas dapat memungkinkan beberapa peserta bekerja sama menghasilkan satu tanda tangan.Spesifikasi MuSig2 menetapkan metode tanda tangan multisig interaktif yang kompatibel dengan kunci dan tanda tangan BIP-340.
Sistem ambang batas memerlukan pembuatan nonce, identifikasi peserta, validasi transkrip, dan ketahanan terhadap penandatangan berbahaya yang cermat.Protokol ambang batas khusus dapat membocorkan private key grup meskipun kurva yang mendasarinya aman.Serangan Saluran Samping
Serangan saluran samping mempelajari rahasia dari perilaku fisik atau operasional implementasi kriptografis.Sinyal yang mungkin digunakan mencakup waktu eksekusi, penggunaan daya, pancaran elektromagnetik, perilaku cache, akses memori, dan respons terhadap gangguan.Algoritma yang aman secara matematis dapat gagal jika implementasinya menjalankan operasi berbeda untuk bit private key yang berbeda.Pemrograman constant-time berupaya mencegah perbedaan eksekusi yang dapat diamati bergantung pada data rahasia.Hardware wallet dan server penandatanganan mungkin juga memerlukan pelindung fisik, deteksi gangguan, memori aman, dan pembatasan laju.Developer sebaiknya menggunakan library yang dirancang dan ditinjau untuk melawan serangan saluran samping.Serangan Kurva Tidak Valid dan Subgrup
Penyerang dapat memberikan titik yang cacat atau termasuk dalam grup yang tidak diharapkan.Jika software menjalankan operasi kunci rahasia pada titik tersebut tanpa validasi, responsnya dapat membocorkan informasi tentang private key.Serangan subgrup kecil dapat memaksa perhitungan masuk ke grup yang hanya memiliki sedikit kemungkinan hasil.Implementasi yang aman menerapkan aturan validasi dan kofaktor yang diwajibkan oleh kurva dan protokol yang dipilih.Sejumlah desain kurva modern menyederhanakan beberapa bagian proses ini, tetapi developer tetap harus mengikuti aturan decoding yang ditentukan.Serangan Gangguan
Serangan gangguan (fault attack) sengaja menyebabkan kesalahan selama penghitungan kriptografis.Penyerang dapat memanipulasi tegangan, timing clock, suhu, memori, atau alur komputasi.Perbandingan antara tanda tangan yang benar dan yang mengalami gangguan terkadang dapat mengungkap private key.Perangkat penandatanganan berkeamanan tinggi dapat memverifikasi tanda tangan yang dihitungnya sendiri sebelum mengembalikannya.Perangkat tersebut juga dapat menggunakan redundansi, sensor gangguan, hardware yang diperkuat, dan pelaporan kesalahan yang dibatasi.Mengapa Developer Sebaiknya Menggunakan Library yang Telah Ditinjau?
Aritmetika kurva eliptik sulit diterapkan dengan aman.Developer dapat membuat kode yang lulus pengujian biasa, tetapi tetap rentan terhadap serangan timing, titik tidak valid, nonce bias, reduksi modular yang keliru, atau kasus tepi.Library yang telah ditinjau menyediakan aritmetika optimal, vektor pengujian, serialisasi standar, dan penguatan keamanan.Developer sebaiknya menggunakan library yang mendukung kurva dan protokol persis seperti yang diwajibkan blockchain.Developer perlu memverifikasi versi library, opsi kompilasi, perilaku platform, dan integritas dependensi.Menyalin implementasi ECC singkat dari artikel atau cuplikan kode tidak aman untuk penyimpanan aset kripto produksi.Pemisahan Domain
Pemisahan domain memastikan tanda tangan atau hash yang dibuat untuk satu tujuan tidak dapat langsung digunakan kembali untuk tujuan lain.Protokol dapat menyertakan pengenal jaringan, nama aplikasi, jenis pesan, alamat contract, versi, atau konteks lain sebelum proses penandatanganan.Tanpa pemisahan domain, pesan yang ditandatangani sebagai permintaan login biasa dapat ditafsirkan sebagai otorisasi keuangan di tempat lain.Wallet mata uang kripto sebaiknya menampilkan domain penandatanganan dan membedakan dengan jelas transaksi dari pesan biasa.Developer harus mengikuti aturan encoding pesan dan pemisahan domain yang tepat untuk blockchain tujuan.Penggunaan Ulang Private Key
Menggunakan satu private key ECC di berbagai jaringan atau aplikasi yang tidak terkait meningkatkan risiko.Implementasi tanda tangan yang lemah di satu aplikasi dapat mengekspos kunci yang mengendalikan aset di aplikasi lain.Sistem yang berbeda mungkin melakukan hashing, encoding, atau validasi pesan dengan cara yang tidak kompatibel.Penggunaan ulang kunci lintas aplikasi juga memudahkan pengaitan aktivitas pengguna.Kunci terpisah mengurangi dampak dari satu perangkat, library, atau protokol penandatanganan yang disusupi.Pengguna wallet sebaiknya tidak mengimpor frasa seed bernilai tinggi ke aplikasi yang tidak diperlukan.ECC dan Smart Contract
Smart contract dapat memverifikasi tanda tangan kurva eliptik jika blockchain menyediakan operasi yang sesuai.Ethereum memiliki dukungan native untuk memulihkan penandatangan secp256k1 melalui precompile
ECC dan Zero-Knowledge Proof
Kurva eliptik juga digunakan dalam banyak sistem zero-knowledge proof.Kurva yang ramah pairing dapat mendukung bukti ringkas dan verifikasi efisien.Titik kurva dapat merepresentasikan komitmen, elemen bukti, atau kunci verifikasi.Persyaratan keamanan sistem bukti dapat berbeda dari persyaratan sistem tanda tangan transaksi.Kurva yang cocok untuk tanda tangan biasa belum tentu efisien atau aman untuk bukti berbasis pairing.Asumsi trusted setup, desain sirkuit, kompatibilitas medan, pemeriksaan subgrup, dan soundness sistem bukti perlu dievaluasi secara terpisah.Manfaat ECC dalam Mata Uang Kripto
ECC memberikan keamanan kunci publik klasik yang kuat dengan kunci dan tanda tangan yang relatif ringkas.ECC memungkinkan pengguna mengotorisasi transaksi tanpa mengungkap private key.ECC mendukung verifikasi efisien oleh peserta jaringan terdesentralisasi.ECC dapat mendukung kesepakatan kunci, tanda tangan agregat, penandatanganan ambang batas, komitmen, dan operasi zero-knowledge proof.Tersedia sejumlah kurva dan algoritma standar yang telah dipelajari dengan baik untuk berbagai aplikasi.Efisiensinya menjadikan ECC bagian mendasar dari wallet mata uang kripto dan sistem konsensus modern.Keterbatasan ECC
ECC rentan terhadap kesalahan implementasi, keacakan yang lemah, penggunaan nonce berulang, dan kebocoran saluran samping.Kurva dan skema tanda tangan yang berbeda tidak otomatis dapat saling beroperasi.ECC tidak mengenkripsi transaksi blockchain publik biasa dengan sendirinya.ECC tidak dapat mencegah pengguna menyetujui transfer berbahaya atau mengungkap frasa pemulihan.Asumsi keamanannya terancam oleh komputer kuantum yang cukup mumpuni.Memigrasikan blockchain aktif ke sistem tanda tangan lain dapat memerlukan perubahan pada wallet, alamat, hardware, format transaksi, smart contract, dan software konsensus.Komputasi Kuantum dan ECC
Komputer kuantum fault-tolerant yang cukup kuat dapat menggunakan algoritma Shor untuk menyelesaikan logaritma diskret kurva eliptik secara efisien.Hal ini akan memungkinkan penyerang menghitung private key dari public key yang terekspos.Saat ini tidak ada komputer kuantum yang diketahui publik mampu melakukan serangan tersebut terhadap kurva mata uang kripto berukuran penuh dalam skala praktis.Namun, sistem blockchain jangka panjang perlu membuat rencana sebelum hardware semacam itu tersedia.Panduan keamanan pascakuantum Ethereum saat ini mengidentifikasi ECDSA, tanda tangan BLS, dan komitmen kurva eliptik sebagai aspek yang memerlukan migrasi pada masa mendatang.
Pengguna sebaiknya mengikuti panduan protokol resmi, bukan panik akibat klaim tanpa dukungan bahwa ECC sudah berhasil diretas.Kriptografi Pascakuantum
Kriptografi pascakuantum menggunakan masalah matematis yang diyakini tahan terhadap komputer klasik maupun komputer kuantum besar.Pada Agustus 2024, NIST menetapkan FIPS 203 untuk ML-KEM, FIPS 204 untuk ML-DSA, dan FIPS 205 untuk SLH-DSA.Pengumuman standar pascakuantum NIST merekomendasikan agar perencanaan migrasi dimulai.
ML-KEM menetapkan rahasia bersama, sedangkan ML-DSA dan SLH-DSA menyediakan tanda tangan digital.Skema ini umumnya memiliki kunci atau tanda tangan yang lebih besar daripada sistem ECC yang banyak digunakan.Dalam migrasi blockchain, keamanan, ukuran transaksi, biaya verifikasi, kompatibilitas alamat, dan pemulihan dana yang tidak aktif perlu dipertimbangkan secara seimbang.Agilitas Kriptografi
Agilitas kriptografi adalah kemampuan untuk mengganti atau menggabungkan algoritma kriptografis tanpa membangun ulang seluruh sistem.Wallet yang memiliki agilitas kriptografi dapat mengidentifikasi skema tanda tangan yang melindungi akun dan mendukung jalur migrasi pada masa mendatang.Selama transisi, protokol dapat menggunakan tanda tangan hibrida yang mensyaratkan tanda tangan ECC dan tanda tangan pascakuantum yang sudah ada.Akun smart contract terkadang dapat mendukung upgrade algoritma dengan lebih fleksibel dibandingkan akun yang aturan tanda tangannya ditetapkan langsung oleh protokol dasar.Agilitas kriptografi harus dirancang dengan cermat karena jalur migrasi atau downgrade yang tidak aman dapat melemahkan seluruh sistem.Cara Developer Menggunakan ECC dengan Aman
Developer sebaiknya memilih kurva dan algoritma yang tepat sebagaimana diwajibkan blockchain atau standar yang menjadi target.Developer sebaiknya menggunakan library kriptografi yang masih dipelihara dan memiliki riwayat peninjauan yang baik.Private key dan nonce tanda tangan harus berasal dari proses pembuatan yang aman.Implementasi perlu memvalidasi public key, titik kurva, keanggotaan subgrup, rentang tanda tangan, dan encoding kanonis.Operasi yang bergantung pada data rahasia perlu menggunakan teknik constant-time.Protokol perlu memiliki encoding pesan yang jelas, identifikasi chain, konteks aplikasi, pengelolaan nonce, dan perlindungan replay.Pengujian perlu mencakup vektor resmi, titik cacat, tanda tangan tidak valid, nilai batas, kegagalan nonce, dan upaya replay lintas jaringan.Sistem bernilai tinggi sebaiknya menjalani peninjauan kriptografis dan implementasi secara independen.Cara Pengguna Kripto Melindungi Kunci ECC
Pengguna sebaiknya membuat wallet menggunakan software atau hardware tepercaya yang memanfaatkan entropi aman.Frasa pemulihan dan private key tidak boleh dimasukkan ke situs web, pesan, atau formulir dukungan.Detail transaksi penting perlu diverifikasi melalui layar tepercaya sebelum ditandatangani.Dana bernilai tinggi dapat dilindungi menggunakan isolasi hardware, kebijakan multisig, batas pengeluaran, atau beberapa tingkat penyimpanan.Pengguna sebaiknya tidak mengimpor satu frasa seed ke banyak aplikasi.Cadangan perlu diuji tanpa mengekspos rahasianya ke perangkat yang tidak tepercaya.Pembaruan wallet dan protokol sebaiknya diperoleh melalui channel resmi yang telah diverifikasi.Contoh Transaksi Kripto yang Ditandatangani dengan ECC
Misalkan Alice mengendalikan akun mata uang kripto melalui private key ECC.Wallet-nya membuat transaksi untuk mengirim token ke alamat Bob.Wallet menserialisasi transaksi sesuai aturan penandatanganan blockchain yang tepat.Wallet melakukan hashing atau memproses pesan terserialisasi dengan cara lain sesuai skema tanda tangan.Wallet membuat tanda tangan menggunakan private key Alice dan nonce penandatanganan yang aman atau proses penandatanganan deterministik.Transaksi dan tanda tangan disiarkan ke jaringan.Setiap node validator memperoleh atau memulihkan public key Alice dan memverifikasi tanda tangannya.Node juga memeriksa saldo Alice, nonce, biaya, dan semua aturan konsensus lainnya.Tanda tangan ECC yang valid membuktikan otorisasi oleh kunci yang diperlukan, tetapi tidak menggantikan pemeriksaan validitas transaksi lainnya.Kesalahan Umum tentang ECC
Salah satu kesalahan umum adalah menganggap ECC mengenkripsi setiap transaksi mata uang kripto.Kesalahan lainnya adalah menganggap public key sama dengan alamat wallet.Kesalahan ketiga adalah menggunakan kembali nonce penandatanganan ECDSA.Kesalahan keempat adalah membuat private key menggunakan fungsi angka acak biasa.Kesalahan kelima adalah menerima titik public key yang tidak divalidasi dari penyerang.Kesalahan keenam adalah menganggap semua kurva eliptik 256-bit dapat saling dipertukarkan.Kesalahan ketujuh adalah menulis aritmetika kurva khusus untuk penyimpanan aset produksi tanpa peninjauan ahli.Kesalahan kedelapan adalah menggunakan kembali satu private key di berbagai aplikasi dan jaringan yang tidak terkait.Kesalahan kesembilan adalah meyakini bahwa tanda tangan valid membuktikan transaksi yang ditandatangani aman secara finansial.Kesalahan kesepuluh adalah menganggap ECC akan tetap aman terhadap semua komputer kuantum pada masa depan tanpa rencana migrasi.FAQ
Apa arti ECC dalam mata uang kripto?
ECC adalah singkatan dari Elliptic Curve Cryptography, yaitu keluarga metode kunci publik yang digunakan untuk kunci, tanda tangan, kesepakatan kunci, dan bukti tingkat lanjut dalam mata uang kripto.Apa penggunaan utama ECC dalam kripto?
Penggunaan utamanya adalah membuat dan memverifikasi tanda tangan digital yang mengotorisasi transaksi blockchain.Apakah ECC mengenkripsi transaksi mata uang kripto?
Biasanya tidak, karena sebagian besar transaksi blockchain publik ditandatangani dan dapat dibaca publik, bukan dienkripsi.Apa itu private key ECC?
Private key ECC adalah skalar rahasia yang digunakan untuk menghasilkan public key dan mengotorisasi tanda tangan.Apa itu public key ECC?
Public key ECC adalah titik kurva yang diturunkan secara matematis dari private key dan digunakan untuk memverifikasi tanda tangan.Bisakah public key mengungkap private key?
Dengan komputasi klasik praktis, tidak, selama kurva yang digunakan aman dan implementasinya benar.Apa itu masalah logaritma diskret kurva eliptik?
Ini adalah masalah sulit untuk memulihkan skalar privat dari titik generator dan titik publik yang dihasilkan.Apa itu ECDSA?
ECDSA adalah algoritma tanda tangan digital kurva eliptik yang banyak digunakan untuk mengotorisasi transaksi mata uang kripto.Apa itu secp256k1?
secp256k1 adalah kurva eliptik 256-bit terstandar yang digunakan oleh Bitcoin, akun eksekusi Ethereum, dan beberapa sistem kripto lainnya.Apakah Bitcoin menggunakan ECC?
Ya. Bitcoin menggunakan secp256k1 dengan ECDSA serta tanda tangan Schnorr secp256k1 untuk pengeluaran Taproot.Apakah Ethereum menggunakan ECC?
Ya. Akun eksekusi Ethereum menggunakan ECDSA secp256k1, sedangkan validator proof-of-stake menggunakan tanda tangan BLS pada BLS12-381.Apakah Solana menggunakan ECC?
Ya. Penandatangan transaksi Solana menggunakan tanda tangan Ed25519.Apa itu Ed25519?
Ed25519 adalah skema tanda tangan EdDSA yang menggunakan matematika kurva Edwards terkait Curve25519.Apa itu tanda tangan Schnorr?
Tanda tangan Schnorr adalah konstruksi tanda tangan dengan sifat linearitas dan agregasi yang berguna jika diterapkan melalui protokol yang aman.Apa itu ECDH?
ECDH adalah metode kesepakatan kunci kurva eliptik yang memungkinkan dua pihak menghitung rahasia bersama.Apa itu public key terkompresi?
Public key terkompresi adalah encoding titik kurva yang ringkas dan menyimpan satu koordinat beserta informasi yang cukup untuk merekonstruksi koordinat lainnya.Mengapa ECDSA harus menggunakan nonce yang unik?
Penggunaan ulang atau prediksi nonce dapat memungkinkan penyerang menghitung private key.Bisakah private key ditebak?
Kunci yang dibuat dengan aman memiliki ruang pencarian yang sangat besar, tetapi kunci yang dibuat manusia dengan lemah atau diacak dengan buruk mungkin dapat ditebak.Apakah semua kurva ECC sama amannya?
Tidak. Keamanan bergantung pada parameter kurva, desain algoritma, ukuran kunci, implementasi, validasi, dan serangan matematis yang diketahui.Bisakah tanda tangan ECC disalin?
Data tanda tangan dapat disalin, tetapi perlindungan replay dan keterkaitannya dengan pesan menentukan apakah tanda tangan tersebut dapat mengotorisasi operasi lain.Apakah tanda tangan yang valid menjamin transaksi aman?
Tidak. Tanda tangan membuktikan otorisasi oleh suatu kunci, tetapi tidak membuktikan bahwa tujuan, contract, harga, atau keputusan keuangannya aman.Bisakah hardware wallet melindungi kunci ECC?
Hardware wallet dapat mengisolasi kunci dan proses penandatanganan, tetapi pengguna tetap harus memverifikasi detail transaksi dan melindungi cadangan pemulihan.Bisakah wallet multisig menggunakan ECC?
Ya. Wallet multisig dapat memverifikasi beberapa tanda tangan ECC atau menggunakan protokol agregasi dan tanda tangan ambang batas yang telah ditinjau.Bisakah komputer kuantum memecahkan ECC?
Komputer kuantum fault-tolerant yang cukup kuat dapat memecahkan ECC dengan algoritma Shor, tetapi saat ini tidak ada mesin yang diketahui publik dapat melakukannya pada skala mata uang kripto.Apa yang akan menggantikan ECC?
Sistem pada masa mendatang mungkin menggunakan skema tanda tangan pascakuantum terstandar berbasis kisi, hash, atau metode lainnya, terkadang bersama ECC selama migrasi.Apakah ECC aman digunakan saat ini?
ECC yang dipilih dan diimplementasikan dengan benar tetap aman terhadap serangan klasik praktis yang diketahui, sementara sistem jangka panjang sebaiknya bersiap untuk migrasi pascakuantum.Kesimpulan
Kriptografi Kurva Eliptik merupakan salah satu teknologi inti yang melindungi kepemilikan mata uang kripto dan otorisasi transaksi.ECC menciptakan hubungan matematis satu arah antara private key rahasia dan public key yang dapat dibagikan.Skema tanda tangan digital menggunakan hubungan ini untuk membuktikan otorisasi tanpa mengungkap private key.Bitcoin menggunakan secp256k1 dengan tanda tangan ECDSA dan Schnorr, Ethereum menggunakan secp256k1 untuk akun eksekusi dan BLS12-381 untuk validator, sedangkan Solana menggunakan Ed25519 untuk tanda tangan transaksi.ECC juga dapat mendukung kesepakatan kunci, protokol multisig, penandatanganan ambang batas, komitmen, dan sistem zero-knowledge proof.Keamanannya tidak hanya bergantung pada matematika kurva.Keacakan yang aman, nonce tanda tangan unik, validasi public key, implementasi constant-time, pemisahan domain, penyimpanan kunci yang aman, dan library yang telah ditinjau semuanya penting.Tanda tangan ECC yang valid membuktikan bahwa kunci yang diperlukan mengotorisasi data tertentu, tetapi tidak mengenkripsi transaksi publik atau menjamin bahwa tindakannya aman secara finansial.ECC tetap aman terhadap serangan klasik praktis yang diketahui jika diimplementasikan dengan benar, tetapi komputer kuantum yang cukup mumpuni akan mengancam fondasi logaritma diskretnya.Karena itu, developer mata uang kripto harus melindungi kunci saat ini sambil merancang jalur migrasi yang kredibel menuju kriptografi pascakuantum.Anda Mungkin Juga Menyukai
Peter Todd
Peter McCormack
Performance Bond
POPULER
Mata uang kripto yang sedang tren saat ini dan menarik perhatian pasar yang signifikan
Volume TERATAS
Mata uang kripto dengan volume trading tertinggi
Baru Ditambahkan
Mata uang kripto yang baru saja masuk listing dan tersedia untuk trading

