Daftar Isi

Poin Utama

  • Kriptografi adalah cabang matematika dan mencakup studi tentang enkripsi, fungsi hash, dan tanda tangan digital.
  • Jaringan Bitcoin menggunakan fungsi hash untuk memastikan keamanan dan imutabilitas blockchain.
  • Bitcoin menggunakan tanda tangan digital berbasis kunci publik untuk memungkinkan pengguna mengirim bitcoin secara trustless.

Apa itu Kriptografi?

Kriptografi adalah cabang matematika yang mencakup berbagai metode untuk menjaga keamanan dan privasi digital. Enkripsi dan dekripsi, fungsi hash, dan algoritma tanda tangan digital semuanya adalah area studi dalam bidang kriptografi. Bitcoin dikenal sebagai aset kripto karena menggunakan kriptografi untuk menerapkan sistem moneter terdesentralisasi dan memungkinkan pembayaran peer-to-peer yang sepenuhnya digital.

Bitcoin jauh dari satu-satunya teknologi yang menggunakan kriptografi. Hari ini, hampir semua perangkat elektronik kecuali yang paling sederhana menggunakan beberapa bentuk kriptografi untuk melindungi informasi sensitif dan memverifikasi identitas digital. Ponsel dan komputer yang dilindungi kata sandi, pemerintah, jaringan telekomunikasi, bank, media sosial, dan lainnya semuanya menerapkan kriptografi untuk keamanan yang dapat diandalkan.

Enkripsi dan Dekripsi

Enkripsi adalah proses mengubah data menjadi kode rahasia yang tidak dapat dimengerti sehingga hanya pihak yang dituju saja yang mampu memahami informasinya. Proses enkripsi mengubah data asli, yang dikenal sebagai teks biasa, menjadi kode rahasia yang dikenal sebagai teks sandi. Proses sebaliknya, yang dikenal sebagai dekripsi, mengubah teks sandi kembali menjadi teks biasa.

Enkripsi digunakan oleh hampir setiap perangkat digital dan layanan untuk melindungi data dari pihak yang tidak berwenang atau penyerang jahat. Enkripsi yang kuat memungkinkan pengguna untuk menjelajahi internet dengan aman, melindungi data mereka dengan kata sandi secara aman, dan mengirim pesan satu sama lain dalam privasi.

Ada banyak jenis skema enkripsi, masing-masing dengan tingkat keamanan yang berbeda. Dalam kebanyakan kasus, satu atau lebih kunci digunakan untuk mengenkripsi dan mendekripsi data. Tipe dan jumlah kunci yang diperlukan tergantung pada skema enkripsi. Beberapa skema enkripsi dianggap aman bahkan terhadap komputer kuantum, sementara yang lain telah terbukti tidak aman terhadap komputer biasa atau perhitungan manusia.

Enkripsi dan Bitcoin

Jaringan dan database Bitcoin itu sendiri tidak menggunakan enkripsi. Sebagai database terbuka dan terdistribusi, blockchain tidak perlu mengenkripsi data. Semua data yang ditransfer antar node Bitcoin tidak dienkripsi untuk memungkinkan orang asing berinteraksi melalui jaringan Bitcoin.

Namun, beberapa layanan Bitcoin membutuhkan lebih banyak keamanan dan privasi. Untuk menyimpan kunci privat secara aman, sebagian besar dompet Bitcoin mengenkripsi data mereka menggunakan berbagai skema enkripsi. Sebagai contoh, Bitcoin Core mengenkripsi dompetnya menggunakan Advanced Encryption Standard (AES). Ini adalah algoritma enkripsi yang sama yang digunakan oleh NSA untuk informasi klasifikasinya, dan AES dianggap sangat aman. Untuk mendekripsi dompet Bitcoin Core, pengguna harus memasukkan kata sandi mereka, yang digunakan sebagai kunci dekripsi.

Fungsi Hash

Fungsi hash kriptografi adalah fungsi matematika yang mengambil data apa pun sebagai input dan menghasilkan output dengan karakteristik khusus. Ada banyak contoh fungsi hash, tetapi semua fungsi hash memiliki karakteristik inti ini, yang membuat fungsi hash sangat berguna tidak hanya untuk Bitcoin, tetapi untuk banyak sistem digital. Output dari fungsi hash disebut hash atau digest, dan ini adalah sejumlah besar biasanya diwakili sebagai rangkaian huruf dan angka dalam notasi heksadesimal.

Meskipun input untuk fungsi hash dapat bervariasi secara tak terbatas, output dari fungsi hash kriptografi selalu memiliki panjang tertentu. Panjang output tergantung pada fungsi hash spesifik yang digunakan. Misalnya, SHA-256, anggota dari keluarga fungsi hash Algoritma Hashing Aman, akan selalu menghasilkan output 256 bit data tidak peduli seberapa besar atau kecil inputnya.

Output dari fungsi hash kriptografi juga deterministik, yang berarti bahwa input yang sama yang diberikan ke fungsi hash yang sama akan selalu menghasilkan output yang sama. Namun, jika satu karakter atau byte data diubah dalam input, output baru tidak akan menyerupai output lama dengan cara apa pun.

Sifat ini sangat penting untuk kegunaan fungsi hash karena memungkinkan verifikasi data berukuran apapun dengan cepat. Sebagai contoh, jika Alice memiliki file besar, dan dia ingin memastikan bahwa file tersebut tidak disabotase, dia dapat membandingkan hash file dari saat dia terakhir memverifikasinya dengan hash file saat ini. Jika file tersebut tidak berubah, kedua hash akan cocok persis. Namun, bahkan perubahan terkecil akan mengubah hampir semua karakter hash.

Terakhir, output dari fungsi hash kriptografi adalah fungsi acak satu arah. Ini berarti bahwa input tidak dapat dibentuk secara dapat diprediksi untuk menghasilkan output yang diinginkan. Selain itu, output tidak menampilkan informasi apa pun tentang input, dan oleh karena itu, output tidak dapat digunakan untuk mendapatkan input.

Sifat ini berguna untuk beberapa alasan. Karena ini adalah fungsi satu arah, hash dapat digunakan sebagai komitmen pada informasi tertentu tanpa mengungkapkan informasi yang dijadikan komitmen. Keacakannya juga membuat fungsi hash berguna untuk sistem Proof-of-Work Bitcoin.

Hashing dan Bitcoin

Protokol Bitcoin terutama menggunakan SHA-256 untuk semua operasi hashing. Yang paling penting, hashing digunakan untuk mengimplementasikan mekanisme Proof-of-Work Bitcoin. Nilai dari suatu hash adalah nomor yang besar, dan untuk miner bisa mengirimkan blok ke jaringan, hash dari blok harus di bawah ambang batas tertentu. Karena hashing adalah proses yang acak dan tak terduga, menemukan hash yang valid hanya dapat dicapai melalui tebakan intensif.

Sifat-sifat dari fungsi hash juga menjamin imutabilitas Bitcoin. Di dalam setiap blok, sebuah Merkle tree dibangun dengan menghitung satu hash dari semua transaksi dalam sebuah blok. Ini memastikan bahwa setiap transaksi tidak dapat diubah setelah dimasukkan dalam blok.

Setiap blok juga menjamin imutabilitas blok sebelumnya. Hal ini dicapai dengan memasukkan hash dari blok sebelumnya di setiap blok, yang berarti bahwa setelah blok ditambahkan ke blockchain, blok tersebut tidak dapat diubah.

Tanda Tangan Digital

Tanda tangan digital mirip dengan tanda tangan fisik, namun jauh lebih aman dan dapat dipercaya. Seperti pendahulunya yang fisik, tanda tangan digital menghubungkan persetujuan data yang ditandatangani dengan identitas spesifik dari penandatangan. Tidak seperti tanda tangan fisik, tanda tangan digital tidak bisa disalin-tempel karena tanda tangan unik untuk setiap data yang ditandatangani.

Ada tiga bagian dari tanda tangan digital: data yang ditandatangani, kunci publik dari penandatangan, dan tanda tangan itu sendiri. Data bisa berupa apa saja yang digital, termasuk teks, gambar, file audio, dan lainnya. Kunci publik adalah bentuk identitas yang pseudonim, memberi tahu publik bahwa pemilik kunci privat yang sesuai telah menandatangani pesan ini. Terakhir tanda tangan adalah bukti matematis bahwa pemilik kunci publik dan kunci privat yang sesuai menandatangani data yang disediakan dengan tepat.

Keajaiban di sini adalah bahwa kunci privat diperlukan untuk membuat tanda tangan, tetapi tidak diperlukan untuk memverifikasinya. Siapa saja bisa memverifikasi bahwa tanda tangan itu valid hanya dengan menggunakan kunci publik, tanda tangan, dan pesan. Selain itu, karena tanda tangan dihasilkan menggunakan hash dari data yang ditandatangani, pemeriksa bisa yakin bahwa data yang disediakan tidak diubah sejak ditandatangani.

Tanda Tangan Digital dan Bitcoin

Bitcoin menerapkan algoritma tanda tangan digital yang disebut ECDSA yang didasarkan pada kriptografi kurva eliptis. Meskipun ECDSA memungkinkan kunci privat untuk menandatangani jenis pesan apa pun, tanda tangan digital paling sering digunakan untuk menandatangani transaksi dan mengirim bitcoin.

Protokol Bitcoin memungkinkan potongan bitcoin yang disebut UTXOs dikirim ke kunci publik, sehingga hanya tanda tangan yang valid dari kunci privat yang sesuai yang dapat membukanya. Tanda tangan ini dipublikasikan ke blockchain sehingga setiap anggota jaringan Bitcoin dapat memverifikasi bahwa tanda tangan, kunci publik, dan pesan cocok.

Berkat desain ini, Bitcoin adalah sistem yang murni peer-to-peer. Transaksi Bitcoin dapat dikirim dari pembayar ke penerima tanpa pihak ketiga yang mengambil alih dana. Meskipun penambang memproses setiap transaksi, mereka tidak dapat menghasilkan tanda tangan yang valid untuk bitcoin orang lain dan dengan demikian tidak dapat mencuri bitcoin mana pun.