Lanjutan Pelajaran 5 Baca 4 menit

GPU, ASIC dan perbedaan antara 2^40 dan 2^70

Paralelizar sangat membantu tetapi tidak menyelesaikan segalanya. Setiap bit tambahan menggandakan masalah, dan daftar perangkat keras habis sebelum bitnya.

Sebuah prosesor biasa, yang menjalankan program yang ditulis dengan baik, menguji sekitar beberapa juta kunci per detik. Sebuah kartu grafis modern menguji miliaran. Perbedaannya bukan karena kartu grafis lebih cepat — inti dari kartu grafis lebih lambat daripada prosesor — melainkan karena memiliki ribuan inti.

Ini adalah sifat dari masalah yang memungkinkan hal tersebut. Menguji kandidat nomor satu miliar tidak bergantung pada hasil dari kandidat nomor sembilan ratus sembilan puluh sembilan juta. Setiap percobaan independen dari yang lain, dan masalah seperti ini adalah kasus ideal untuk mesin dengan enam belas ribu inti kecil daripada enam belas inti besar.

Enam belas ribu tangan kecil bekerja bersama-sama melakukan apa yang tidak bisa dilakukan oleh enam belas tangan besar.

Penting untuk spesifik tentang apa yang sebenarnya dilakukan kartu grafis dengan cepat. Bagian yang mahal adalah aritmetika dalam tubuh terbatas, terutama inversi modular, dan keuntungan besar datang dari trik organisasi: memproses ratusan atau ribuan titik secara bersamaan, dengan satu inversi yang dibagikan di antara semuanya. Sisanya — hash, perbandingan — murah. Program seperti keyhunt dan VanitySearch, yang akan diperkenalkan pada modul berikutnya, sebagian besar merupakan implementasi hati-hati dari ide ini.

Sekarang pertanyaan yang sering diajukan: bagaimana dengan ASIC? Jika ada chip khusus untuk penambangan, mengapa tidak untuk pencarian kunci?

Jawabannya memiliki dua bagian, dan keduanya menarik. Yang pertama adalah bahwa ASIC penambangan tidak berguna: mereka menghitung SHA-256 pada header delapan puluh byte, dan tidak lebih. Mereka tidak tahu cara mengalikan titik pada kurva, tidak tahu cara melakukan inversi modular, dan tidak ada pembaruan perangkat lunak yang dapat mengajarkannya — logika tersebut tertanam dalam silikon.

Yang kedua adalah bahwa ASIC yang dibuat khusus untuk kurva secp256k1 secara teknis mungkin tetapi secara ekonomi sulit. Merancang dan memproduksi chip memerlukan biaya jutaan dolar dan memakan waktu lebih dari satu tahun, dan hasilnya hanya berguna untuk satu tugas. Seorang penambang mengamortisasi investasi ini dengan pendapatan berkelanjutan; seseorang yang mencari kunci tertentu memiliki hadiah tunggal dan tidak pasti, yang bisa diambil oleh orang lain sehari sebelum chip tersebut dikirimkan. Itulah mengapa, dalam praktiknya, dunia tantangan berjalan pada kartu grafis yang disewa atau dibeli bekas.

Cetakan tersebut sangat mahal dan hanya berguna untuk satu bagian saja.

Dengan ini di atas meja, jarak antara 2^40 dan 2^70 menjadi jelas. Empat puluh bit adalah satu triliun kandidat: sebuah kartu grafis menyelesaikannya dalam hitungan menit, dan sebuah notebook menyelesaikannya dalam hitungan jam. Lima puluh bit adalah seribu kali lebih banyak: beberapa jam pada kartu grafis. Enam puluh bit adalah seribu kali lebih banyak lagi: beberapa minggu. Tujuh puluh bit adalah seribu kali lebih banyak lagi: enam ribu tahun dengan satu kartu, seperti yang dihitung pada Pelajaran 2.

Perhatikan bentuk dari tangga ini. Bukan berarti tujuh puluh hampir dua kali empat puluh. Tetapi tujuh puluh adalah satu miliar kali empat puluh. Setiap sepuluh bit mengalikan dengan seribu, dan tiga anak tangga sepuluh bit memisahkan satu sore kerja dari usaha yang membutuhkan seluruh organisasi.

Tiga anak tangga lebih tinggi, jalan yang sama sudah bukan jalan yang sama.

Dan itulah mengapa kemajuan lambat dan dapat diprediksi. Perangkat keras meningkat, tetapi meningkat dengan faktor dua atau tiga setiap generasi, dan setiap faktor dua membeli tepat satu bit. Sebuah kartu sepuluh kali lebih cepat dari yang ada saat ini hanya maju sedikit lebih dari tiga bit di perbatasan. Tidak ada generasi perangkat keras yang akan mengubah delapan puluh bit menjadi sesuatu yang mudah, dan tidak ada di cakrawala yang mengancam 256 bit dari kunci yang diacak dengan benar.

Satu pengamatan terakhir, yang mempersiapkan pelajaran berikutnya. Semua perhitungan dalam modul ini mengasumsikan satu operasi menyapu interval dari awal hingga akhir. Ketika banyak orang mencari pada saat yang sama, tanpa mengatur apa pun, hampir semua pekerjaan ini diulang: dua ribu komputer yang menguji kandidat yang sama bernilai satu. Mengatur pembagian adalah apa yang mengubah usaha yang dijumlahkan menjadi usaha yang berguna — dan itulah topik pelajaran berikutnya.