Lompat ke konten Lompat ke sidebar Lompat ke footer

Widget HTML #1

Apa Itu Algoritma RandomX? Dan Bagaimana Kerjanya

RandomX adalah algoritma PoW(Proof-of-Work) yang digunakan untuk mining koin Monero(XMR). Jika anda mengenal XMRIG bisa mengenal rx/0 mode untuk penambangan melalui CPU. 

RandomX monero dioptimalkan untuk penambangan CPU dan tahan terhadap ASIC dan VGA. Hal ini 180 drajat dari algoritma sebelumnya yang menggunakan cryptonight bisa di tambang menggunakan ASIC dan VGA. 

Tujuan utama dari perubahan algoritma ini untuk mengoptimalkan prinsip desentralisasi. Jika masih dikuasai ASIC mining mungkin akan di monopoli perusahaan ASIC. Sehingga komunitas XMR tidak setuju prinsip dasar desentralisasi. 

Selain Itu isu keamanan juga menjadi pemicu perubahan dari CryptoNight menjadi RandomX yang memang sudah direncanakan dari awal.

Dengan mengoptimalkan penambangan CPU kemungkinan besar semua orang dapat menikmati profit dari hasil menambang melalui CPU. Prinsip terdesentralisasi ini dapat di capai dengan RandomX. 

Mari kita kenali randomX lebih Juah

Baca juga: script mining xmrig tinggal copas ke vps linux

Cara kerja RandomX

Apa Itu Algoritma RandomX? Dan Bagaimana Kerjanya
algoritma rx/0 Sebagai simbol randomX dalam aplikasi XMRIG

Operasi kasar RandomX ditulis dalam namanya:  randomness is its main premise. Ini berarti bahwa RandomX dirancang untuk membuat "work zone" atau papan gores yang benar-benar acak, dengan konsumsi memori yang tinggi, dan menggunakan teknik virtualisasi canggih untuk pengoperasiannya. Ketiga pilar inilah yang memungkinkan RandomX menjadi tahan ASIC.

Faktanya, RandomX tidak hanya tahan ASIC, tetapi juga tahan GPU, karena chip ini tidak memiliki instruksi yang diperlukan untuk melakukan operasi RandomX yang rumit. Akibatnya, RandomX berusaha menjadi algoritma penambangan khusus CPU, menawarkan resistensi setinggi mungkin terhadap jenis penambangan lainnya. Di sisi lain, ini juga bertujuan untuk menghindari apa yang disebut botnet yang sangat terkenal di Monero, karena RandomX akan membuatnya hampir mustahil untuk diterapkan. Terutama pada perangkat berdaya rendah, seperti Smart TV atau perangkat IoT (Internet of Things).

Tapi bagaimana RandomX membuat semua ini mungkin? Nah, mari kita periksa algoritma baru ini sedikit lebih teliti.

Dua jenis penambangan, untuk dua kegunaan berbeda

Pertama-tama, RandomX memiliki dua mode penambangan. Masing-masing dengan persyaratan dan kinerja yang sangat berbeda. Mode yang paling kuat dan menuntut sumber daya adalah Fast Mode, yang membutuhkan setidaknya 2GB memori. Tetapi tambahan jika sistem operasi memiliki dukungan untuk NUMA (Non-Uniform Memory Access) , Huge Pages (memory paging dalam blok besar), prosesor high-core dan setidaknya 2 GB RAM per core prosesor, kinerja akhir RandomX meningkat secara substansial. Ini karena semua memori ini digunakan untuk membuat papan gores acak RandomX.

Kedua, kami memiliki Mode Ringan, mode yang hanya membutuhkan 256MB RAM dan telah dirancang untuk digunakan di node validasi Monero. Performa penambangan dalam mode ini terbatas, dan hingga 6 kali lebih rendah daripada mode Cepat, sehingga keuntungan per penambangan akan agak sedikit menggunakan mode ini.

Pada titik ini kami memiliki penghalang pertama terhadap ASIC. Memang benar bahwa ASIC sekarang dapat memiliki RAM dalam jumlah besar (seperti Ethereum yang biasanya memiliki antara 4 hingga 8 GB RAM), ini membuat komputer ini cukup mahal.

Kedua, mengingat tingginya konsumsi daya komputasi, jika komputer terinfeksi cryptojacking Untuk menambang Monero, itu akan mudah diidentifikasi oleh pengguna. Sesuatu yang sangat mengurangi peluang keberhasilan botnet.

Kriptografi yang digunakan

Jika proyek Monero (XMR) membuat kita terbiasa dengan sesuatu, itu adalah penggunaan kriptografi canggih dalam perkembangannya. Dalam hal ini, RandomX bukan pengecualian terhadap aturan tersebut, tetapi kepatuhan penuh terhadapnya. Di RandomX mereka banyak menggunakan fungsi hash Blake2b, pembuat kata sandi Argon2d, dan kriptografi simetris AES. Hasilnya, kualitas kriptografi RandomX luar biasa.

Namun, di Monero mereka tidak menyelesaikan pekerjaan mereka sendiri, dan telah memutuskan untuk menjalankan keamanan kriptografi formal dan audit implementasi pada algoritma RandomX. Total ada empat audit yang dilakukan oleh perusahaan Trail of Bits , X41 D-SEC , Kudelski Security y Quarkslab , semuanya dikelola oleh OSTIF , sebuah organisasi dengan sejarah panjang dalam keamanan siber dan kriptografi.

Semua audit telah dilakukan, dan hasilnya menjanjikan. Jika Anda ingin tahu lebih banyak tentang poin ini, kami mengundang Anda untuk meninjau hasilnya di tautan ini .

Skema Bukti Kerja

Skema RandomX Proof of Work (PoW) adalah sebagai berikut:

Pertama, sebuah kunci dihasilkan (disebut kunci K) yang dipilih untuk menjadi hash dari sebuah blok di blockchain. Blok ini disebut "Blok kunci" . Untuk kinerja penambangan dan verifikasi yang optimal, kunci harus berubah setiap 2048 blok (sekitar 2,8 hari) dan harus ada penundaan 64 blok (sekitar 2 jam) antara blok kunci dan perubahan kunci K Hal ini dapat dicapai dengan mengubah kunci ketika berikut ini benar blockHeight% 2048 == 64 (di mana% adalah modulus pembagian) dan memilih blok kunci sehingga keyBlockHeight% 2048 == 0.

Pada saat itu, input H adalah hash blob standar dengan nilai nuncio yang dipilih.

Meskipun semua ini tampak agak samar, apa yang dimaksud dengan algoritma RandomX adalah bahwa bukti kerjanya bekerja di bawah dua premis penting:

Anda memerlukan kunci (disebut K) yang harus diubah setiap 2048 blok. Kunci ini sangat penting bagi RandomX untuk dapat menghasilkan hash dan blok yang valid untuk jaringan.

Kuncinya dihasilkan dengan data dari blockchain dan akhirnya dengan sistem pembuatan kunci yang aman.

Di sisi lain, algoritme juga membuat segalanya sedikit lebih kompleks, dengan memerlukan kondisi eksekusi tertentu. Di antara kondisi ini kami dapat menyertakan:

Arsitektur CPU 64-bit, memungkinkannya menangani volume data dan memori yang besar.

Unit FPU (Floating Point Unit) yang sesuai dengan standar IEEE 754. Jika unit tidak sesuai, data yang dihasilkan oleh algoritma tidak dapat divalidasi.

Dukungan untuk AES. Jika dukungan perangkat keras dengan ekstensi seperti AES-NI, kinerja algoritma jauh lebih baik.

Banyak memori cache untuk setiap utas algoritma. Setidaknya 16 KB L1, 256 KB cache L2, dan 2 MiB L3.

Sistem operasi dengan dukungan untuk menangani halaman memori besar. Ingat bahwa RandomX menggunakan setidaknya 2 GB RAM dan permintaan dapat meningkat tergantung pada konfigurasi.

Mesin Virtual RandomX

Fungsionalitas yang mungkin merupakan resistensi terbesar terhadap ASIC, dan sebenarnya merupakan fitur unik dari algoritma ini, adalah mesin virtualnya atau VM (Virtual Machine).

RandomX melakukan semua kriptografi dan penambangannya dalam mesin virtual sederhana yang tujuannya adalah; mengisolasi seluruh proses penambangan menjadi serangkaian proses yang bertindak di bawah instruksi mereka sendiri dan arsitektur virtual.

Ini berusaha untuk meningkatkan kompleksitas penerapan solusi ASIC ke tingkat yang belum pernah terlihat sebelumnya. Pada saat yang sama, implementasi CPU disederhanakan dan dapat disesuaikan dengan kebutuhan di masa mendatang. Mesin virtual ini dapat melakukan tugas yang berbeda berkat serangkaian instruksi tipe CISC khusus. Fitur ini memungkinkan komunikasi yang sangat mudah dengan CPU yang menggunakan serangkaian instruksi dengan tipe yang sama. Tidak seperti chip ASIC, yang menggunakan set instruksi tipe RISC, dan emulasi CISC-over-RISC secara komputasi mahal, menambah lebih banyak kerumitan pada solusi ASIC untuk RandomX.

Tujuan dari mesin virtual ini adalah untuk menciptakan lingkungan yang diperlukan untuk pembuktian kerja RandomX yang akan dilakukan . Untuk mencapai ini, VM ini membuat ruang kerja acak (scratchpad di memori), sangat terenkripsi dan penuh entropi (data acak yang nantinya akan digunakan untuk bukti kerja).

Setelah kondisi ini dibuat, VM menerima instruksi untuk memulai program penambangan. Masing-masing program ini dibuat menggunakan data acak dari ruang kerja dan menghasilkan program yang unik.

Program ini akan menerapkan semua proses yang diizinkan oleh VM untuk melakukan penambangan, yaitu, program hanya dapat menjalankan instruksi yang diizinkan oleh VM (256 instruksi dan 20 register), tidak lebih. Pada titik ini, apa yang terjadi di RandomX VM praktis tidak terlihat oleh komputer lainnya, karena penggunaan kriptografi selama proses ini.

Proses membuat program acak untuk melakukan penambangan ini disebut Dynamic Proof of Work, dan skema inilah yang digunakan RandomX secara tepat pada saat ini. Sistem ini dapat didefinisikan sebagai berikut:

Program acak dibangkitkan terlebih dahulu. Inilah yang dilakukan VM saat memulai scratchpad dan semua elemen program dalam siklus kerja pertama.

Kemudian VM bertugas bertindak sebagai penerjemah antara CPU dan program acak. Program acak hanya dapat menggunakan instruksi dari VM, tetapi VM menerjemahkan tindakan ini ke dalam kode mesin yang dapat dimengerti oleh CPU. Dengan cara ini, CPU merespons tindakan dan VM menerima respons. Karena instruksi menggunakan kriptografi, optimasinya sangat mahal.

Akhirnya eksekusi program, pada titik ini VM mengizinkan akses ke CPU dan kemampuannya tanpa kehilangan asosiasi dengan program acak. Titik ini terjadi di bawah kondisi yang sangat spesifik dan khusus yang sudah diprogram ke dalam algoritma RandomX. Faktanya, setiap variasi akhirnya menghasilkan data yang tidak valid karena proses ini sepenuhnya dapat direproduksi.

Tanpa ragu, RandomX VM adalah elemen yang paling kompleks dan sulit untuk direplikasi, sehingga menjadi kartu terbaiknya melawan ASIC.

Demikian tentang apa itu randomX semoga bermanfaat sebagai wawasan anda sebagai miner dan ingin tahu teknologi seputar blockchain.