Skip to main content

Digital Signature: Bagaimana Private Key diverifikasi Bitcoin Network tanpa membeberkan Private Key tersebut.

Untuk Membahas topik ini sebaiknya anda memahami dulu apa itu Private Key dan Public Key dalam ECDSA. Itu sudah saya bahas cukup jelas disini.

Digital Signature (tanda tangan digital) memiliki dua bagian:

1. Bagian acak.

2. Bagian Signature. Ini terdiri dari Private Key + Data transaksi yang sedang kita buat tanda tangan digitalnya.

 

Bagian acak

Mulailah dengan menghasilkan sebuah angka acak. Kemudian kalikan angka ini dengan titik generator pada kurva eliptik (titik generator yang sama digunakan saat membuat kunci publik di ECDSA). Titik generator selalu sama pada setiap operasi ECDSA bitcoin.


Bagian acak dari tanda tangan digital adalah titik pada kurva yang didapatkan diatas. Tapi kita ambil koordinat x-nya saja,
ini kita sebut sebagai (r):

 

Ini pada dasarnya sama dengan membuat kunci privat dan kunci publik. Tapi di sini kami melakukannya untuk menambahkan elemen acak ke tanda tangan digital kami. Angka acak itu bisa didapat dari sumber entropi yang bermacam-macam dari aplikasi atau hardware wallet yang digunakan untuk melakukan transaksi.

Sekarang kita sudah memiliki bagian No.1 Bagian acak, ini kita sebut sebagai (r). Tinggal Bagian No.2.
Bagian Signature. Ini terdiri dari Private Key + Data transaksi yang sedang kita buat tanda tangan digitalnya.

1. r dikalikan private key wallet yang akan mengirim transaksi. Seperti representasi dibawah ini. r adalah bagian acak yang pertama, gambar kunci berwarna merah adalah private key.


2. Message (pesan). Message adalah hash dari seluruh data transaksi yang berisi output yang ingin kita buka kuncinya.

 

(r x private key) + message 

Langkah terakhir adalah membagi (r x private key) + message dengan angka acak yang kita gunakan di langkah pertama ketika mencari Bagian Acak diatas. Ini bukan Bagian Acak atau r atau generator point, apalagi private key ya, harus dibedakan. Ini adalah angka acak yang dikalikan generator point untuk memperoleh Bagian acak yang disebut (r) di bagian pertama diatas.

Kalau dirumuskan seperti ini:

        (r x private key) + message 

______________________________        =

                    angka acak


Dengan ini kita akan memperoleh hasil akhir yang disebut Digital Signature atau Signature saja untuk dipersingkat. Ini bisa disingkat sebagai s.

 

 

Jika seseorang meminta anda untuk membuktikan bahwa anda mengetahui private key untuk sebuah public key (wallet address), anda dapat memberikan Digital Signature (r & s) sebagai bukti. Dengan ini anda bisa membuktikan kepemilikan koin tanpa membeberkan private key anda. Karena jika itu dibeberkan maka koin ada bisa dicuri orang yang mengetahuinya.


Bagaimana cara orang membuktikan kalau Signature itu benar? 

 

Untuk memverifikasi kita membutuhkan dua titik di elliptic curve. Titik pertama adalah:

(Message / Signature) x Generator Point

Message dan Signature bisa didapat dari semua data pembuatan Digital Signature diatas. Sedangkan Generator Point atau Titik Generator selalu sama untuk ECDSA.

Titik kedua adalah:

( r / Signature ) x public key

Kita bisa memperoleh r dan Signature dari data Digital Signature diatas, tetapi disitu tidak ada informasi public key. Lalu public key si pengirim transaksi didapat dari mana?

Itu diperoleh dari output transaksi sebelumnya dimana si pengirim saat ini memperoleh bitcoin yang dia miliki - yang akan dikirim ke wallet lain di transaksi yang kita bikin saat ini.

Karena sebelum anda bisa mengirim bitcoin tentu saja anda harus sudah menerima bitcoin itu dari orang lain sebelumnya kan. Kalau anda miner berarti itu didapat dari coinbase transaction di block yang berhasil anda mining. Karena semua bitcoin yang ada bisa di lacak mundur ke semua wallet sebelumnya dimana koin itu berasal sampai titik akhir dimana bitcoin itu diciptakan pertama kali pada coinbase transaction. Setiap kurang lebih 10 menit ada miner yang berhasil menambang block yang baru dan mereka akan memperoleh bitcoin sebagai penghargaan. Bitcoin dalam block inilah yang disebut coinbase transaction karena itu muncul tanpa berasal dari wallet address sebelumnya tetapi diciptakan dari ketiadaan di block baru tersebut. Jumlah bitcoin yang diberikan didalam setiap block baru ini sudah ditentukan di kode software bitcoin dan ini tidak bisa diubah tanpa konsensus semua miner dan node yang menjalankan bitcoin. Jumlah penghargaan bitcoin ini berkurang setengahnya setiap 4 tahun. Saat ini pada 8 Juni 2023, penambang yang berhasil memvalidasi blok baru di blockchain Bitcoin akan mendapatkan 6,25 BTC. Namun, hadiah ini akan dikurangi pada halvening berikutnya, yang diperkirakan akan terjadi pada tahun 2024. Setelah itu miner akan memperoleh 3,12 Bitcoin untuk setiap block yang berhasil divalidasi. Proses Mining/menambang bitcoin lebih jelasnya bisa baca disini.

Ok, sampai disini saya harap anda memahami darimana public key itu diperoleh.

 



LANGKAH TERAKHIR: Tarik garis lurus yang melewati titik 1 dan 2, itu akan menghasilkan titik ketiga (berwarna hijau di gambar dibawah ini).

 

 

Jika titik koordinat x ketiga ini (titik hijau diatas) sama dengan koordinat x pada (r) Bagian acak yang kita bahas pertama kali di bagian teratas artikel ini, maka ini diterima sebagai bukti bahwa titik ketiga dan r diciptakan dengan private key yang sama. Dengan ini transaksi tersebut akan diterima dalam network bitcoin. Dengan ini kerahasiaan private key tetap terjaga.


Singkatnya,

Tanda Tangan Digital (Penandatanganan & Verifikasi) diatas adalah proses Membuktikan bahwa Signature dan Public Key dibuat oleh Private Key yang sama. Tanpa membeberkan Private Key tersebut.

Ini penting karena kerahasiaan private key adalah hal utama dalam keamanan bitcoin. Terutama dalam cold/hardware wallet. Ketika anda mengirim transaksi dengan hardware wallet, wallet tersebut hanya mengirim Digital Signature tanpa membeberkan private key anda. Sehingga private key anda lebih aman dibandingkan jika anda mengirim transaksi langsung dari aplikasi di hp atau komputer, dimana private key anda tersimpan di hp dan komputer tersebut, jadi walaupun kecil kemungkinannya, private key anda bisa saja diretas oleh peretas yang berhasil mengakses hp atau komputer anda. Disinilah pentingnya penggunaan hardware wallet yang tidak terkoneksi ke internet. Agar kemungkinan private key anda diretas semakin kecil.

Update: Ini adalah kode yang mensimulasi proses step by step cara verifikasi public key: https://belajarbitcoin.substack.com/p/bitcoin-digital-signature-verification


Gambar2 dan sebagian besar tulisan ini dicopy dari https://learnmeabitcoin.com/beginners/digital_signatures_signing_verifying

 

Video youtube yang mendalami kode-kode dalam proses ini bisa dilihat disini: https://www.youtube.com/watch?v=U2bw_N6kQL8

Comments

Popular posts from this blog

Apakah Kutub Utara Mengalami Pergeseran? Apakah Matahari Akan Terbit Dari Barat?

Ini jawaban detail dari European Space Agency (ESA): 1. Yang berubah itu magnetic pole, geographic pole tetap sama, jadi yang berubah hanya arah North South di kompass anda, tapi matahari tetap terbit di tempat yang sama, karena poros dan arah rot asi bumi tetap sama, cuma kompass anda saja yang berubah arah jarumnya. "Unlike our geographic North Pole, which is in a fixed location, magnetic north wanders. This has been known since it was first measured in 1831, and subsequently mapped drifting slowly from the Canadian Arctic towards Siberia. One of the practical consequences of this is that the World Magnetic Model has to be updated periodically with the pole’s current location. The model is vital for many navigation systems used by ships, Google maps and smartphones, for example. Between 1990 and 2005 magnetic north accelerated from its historic speed of 0–15 km a year, to its present speed of 50–60 km a year. In late October 2017, it crossed the international date l...

Masih Ingat Kasus Malaysian Airlines MH370?

Ini artikel investigasi yang bagus banget, https://www.theatlantic.com/magazine/archive/2019/07/mh370-malaysia-airlines/590653/ , baca ini seperti baca novel suspense thriller, cukup panjang dan mendalam, 1-2 hour read jadi bisa di baca sambil di temani secangkir kopi, ada audionya juga bisa di putar sambil beraktifitas. Ringkasan dan sedikit tambahan dari saya: * MH370 hilang dari radar 37 detik setelah memasuki wilayah udara Veietnam. Setelah itu ATC Veitnam menghubungi MH370 tanpa hasil, ATC Malaysia tidak curiga karena di sangka MH370 sudah masuk wilayah udara Vietnam dan ditangani ATC Vietnam. 18 menit setelah itu, barulah ATC Vietnam menghubungi ATC Malaysia memberitahu tentang MH370 yang hilang dari radar. Menurut peraturan seharusnya itu di lakukan 5 menit setelah peswat tidak melaporkan lewat radio. Pesawatnya bisa ada dimana saja di sekitaran laut Cina Selatan pada titik ini. * Pencarian awal melibatkan banyak negara di lakukan oleh puluhan kapal dan pesawat di Laut Cina Sela...

Apakah Kita Bisa Berenang di Kolam Penyimpanan Sisa Bahan Bakar Nuklir? Spent Nuclear Fuel Pool - The Forbidden Pool

Ini adalah foto kolam penyimpanan sisa bahan bakar reaktor nuklir. Katanya kalau renang di sana anda tidak akan kena radiasi mematikan kecuali mendekati batang-batang nuklir (rods) yang di simpan di peti di dasar kolam. Suhu air dalam kolam juga tidak begitu panas sekitar 35 derajat Celcius karena kolam selalu di isi ulang dengan air dingin murni secara berkala. Sementara di dalam reaktor yang aktif beroprasi batang2 nuklir (rods) bisa membuat air mendidih sampai 300 derajat Celcius sehingga menghasilkan uap yang di alirkan untuk memutar turbin dan menghasilkan listrik. Jika air pendingin tidak di ganti secara berkala itu bisa mengakibatkan bencana nuclear meltdown seperti yang terjadi di Chernobyl dimana reaktor meledak karena kelebihan uap dan batang2 nuklir tersebut melelehkan bangunan reaktor nuklir yang di desain untuk mengcontain mereka. Tapi seandainya anda nekat untuk renang di sana kemungkinan besar anda akan mati di tembak security sebelum nyebur ke kolam. "U...