Banyak orang membayangkan kunci privat dan kunci publik sebagai dua bagian dari satu pasangan, yang diundi bersama pada saat yang sama. Bukan itu yang terjadi. Hanya ada satu angka, dan angka itu adalah kunci privat. Kunci publik adalah hasil perhitungan dari angka tersebut: siapa pun yang memiliki kunci privat dapat menghitung kunci publik dalam hitungan milidetik, dan tidak ada seorang pun di dunia yang tahu cara membalikkan proses tersebut.
Kunci privat adalah bilangan bulat, dan tidak lebih dari itu: sebuah angka antara 1 dan batas sedikit di bawah 2^256. Tidak ada pendaftaran, tidak ada server, tidak ada otoritas yang menerbitkannya. Mengundi sebuah angka dalam rentang ini sudah cukup untuk memiliki dompet, dan itulah yang dimaksud modul sebelumnya ketika mengatakan bahwa siapa yang memiliki kunci dapat memindahkan koin.
Yang mengubah angka ini menjadi kunci publik adalah operasi yang dilakukan pada sebuah kurva. Kurva Bitcoin disebut secp256k1, dan persamaannya cukup ditulis dalam satu baris: y² = x³ + 7. Gambarnya bukanlah busur halus seperti di buku sekolah: koordinatnya adalah bilangan bulat dalam sebuah bidang terbatas, dengan p sama dengan 2^256 dikurangi 2^32 dikurangi 977. Grafiknya adalah kumpulan titik yang tersebar, dan aritmetika dari kumpulan ini adalah topik jalur lanjutan. Di sini cukup satu aturan.
Aturannya adalah bahwa dua titik pada kurva, jika dijumlahkan, menghasilkan titik ketiga pada kurva yang sama: tarik garis lurus melalui keduanya, lihat di mana garis itu memotong kurva untuk ketiga kalinya, cerminkan perpotongan ini ke sisi lain sumbu. Hasilnya tidak pernah keluar dari kurva.
Ada titik awal, yang disebut G, generator. Titik ini tidak dipilih oleh Anda atau dompet Anda: sudah tertulis dalam standar, dengan dua koordinat tetap, dan merupakan titik yang sama untuk semua dompet bitcoin sejak blok genesis.

Kunci publik Anda adalah G yang dijumlahkan dengan dirinya sendiri sebanyak nilai kunci privat Anda. Jika privatnya adalah angka k, publiknya adalah titik kG — sebuah titik yang dikalikan dengan angka, operasi yang disebut perkalian skalar.
Menjumlahkan G dengan dirinya sendiri sebanyak urutan besaran ini, satu per satu, akan memakan waktu lebih lama dari usia alam semesta — namun perhitungannya tetap instan. Triknya adalah menggandakan alih-alih menjumlahkan. Menjumlahkan titik dengan dirinya sendiri Anda bergerak dua; menggandakan, empat; menggandakan lagi, delapan. Dengan 256 kali penggandaan dan beberapa penjumlahan di tengah, Anda dapat mencapai titik mana pun dalam interval.
Tidak ada trik untuk kembali. Diberikan titik kG, mengetahui bahwa titik awalnya adalah G, menemukan k adalah masalah logaritma diskret. Setelah empat puluh tahun percobaan, metode terbaik yang diketahui masih membutuhkan sekitar 2^128 langkah. Pelajaran 5 mengukur angka ini. Untuk saat ini, yang penting adalah bentuk asimetrinya: mudah ke satu arah, tidak mungkin ke arah lain, seperti fungsi hash dari pelajaran sebelumnya — hanya saja di sini, di sisi lain, bukanlah sebuah berkas. Itu adalah uang Anda.

Pemilihan kurva ini aneh pada masanya. Secp256k1 diterbitkan pada tahun 2000 oleh SECG, kelompok yang terkait dengan perusahaan Kanada Certicom, dan hampir tidak ada yang menggunakannya: dunia bekerja dengan P-256, dari lembaga Amerika NIST. Satoshi memilih yang kurang digunakan. Parameter secp256k1 terlalu sederhana untuk menyembunyikan sesuatu — nol dan tujuh dari persamaan, p tepat di bawah 2^256 —, sementara parameter P-256 berasal dari konstanta yang tidak pernah dijelaskan. Pada tahun 2013, dokumen yang dibocorkan oleh Edward Snowden menunjukkan bahwa NSA membayar sepuluh juta dolar untuk melemahkan standar lain dari keluarga yang sama, Dual_EC_DRBG. Tidak pernah ada yang terbukti melawan P-256, dan ada kriptografer yang membelanya hingga hari ini; yang bisa dikatakan adalah bahwa pilihan tahun 2008 telah bertahan dengan baik.
Dari situ datanglah konsekuensi paling praktis dari semuanya: kunci privat tidak perlu pernah keluar dari tempat di mana ia dilahirkan. Perangkat menghitung kunci publik darinya, dan kunci publik yang bepergian — itulah yang dilihat jaringan dan yang masuk ke dalam resep alamat Anda. Dompet perangkat keras ada sepenuhnya karena asimetri ini — ia menyimpan angka dan mengeluarkan titik.

Apa yang Anda kirimkan ketika meminta seseorang untuk membayar Anda bukanlah kunci publik. Itu adalah rantai yang lebih pendek, yang masih membawa mekanisme untuk menolak karakter yang salah ketik. Pada pelajaran berikutnya, alamat dibangun byte demi byte.