
Pemrosesan asinkron adalah pendekatan desain sistem di mana setiap tugas tidak saling memblokir dan tidak harus diselesaikan secara berurutan secara ketat. Satu tugas dapat dijalankan dan dibiarkan berjalan di latar belakang, sementara operasi lain tetap berlangsung secara mandiri. Analogi sederhana dalam kehidupan sehari-hari adalah menyalakan mesin cuci lalu memasak, di mana kedua proses berjalan tanpa harus menunggu salah satu selesai lebih dulu.
Dalam sistem Web3, perilaku asinkron merupakan standar, bukan pengecualian. Sebagian besar operasi blockchain tidak langsung selesai. Setelah pengguna mengirimkan transaksi on chain, jaringan harus menyebarkannya, memasukkannya ke dalam blok, lalu memvalidasinya melalui konsensus. Interaksi lintas rantai melibatkan pengiriman pesan antar jaringan independen. Akses data off chain memerlukan pembaruan oracle yang diterima sesuai jadwal yang telah ditentukan, bukan pada saat eksekusi. Memahami jeda waktu ini sangat penting untuk menentukan kapan memberikan umpan balik kepada pengguna dan kapan langkah alur kerja selanjutnya harus dilakukan.
Blockchain merupakan sistem terdistribusi yang membutuhkan konsensus di seluruh jaringan sebelum data difinalisasi. Desain ini mengutamakan keamanan dan desentralisasi, tetapi secara alami menimbulkan latensi. Sebuah transaksi akan berstatus terkonfirmasi hanya setelah melewati mempool, dimasukkan ke dalam blok, dan menerima konfirmasi tambahan.
Data jaringan yang banyak diamati menunjukkan bahwa Bitcoin memiliki interval blok rata-rata sekitar 10 menit, sedangkan Ethereum menghasilkan blok kira-kira setiap 12 detik. Jumlah konfirmasi yang dibutuhkan bervariasi menurut aplikasi, namun umumnya berkisar antara 1 hingga 12 blok. Ambang konfirmasi yang lebih tinggi meningkatkan finalitas transaksi dan ketahanan terhadap reorganisasi rantai, tetapi juga memperpanjang waktu tunggu.
Ketergantungan pada sistem off chain semakin memperkuat perilaku asinkron. Oracle yang menyuplai data eksternal ke blockchain beroperasi berdasarkan interval pembaruan dan jadwal feed. Artinya, smart contract tidak dapat menerima data dunia nyata secara instan pada saat eksekusi, sehingga menambah lapisan asinkronitas pada aplikasi terdesentralisasi.
Di dalam smart contract, eksekusi berlangsung secara sinkron. Semua instruksi dalam sebuah transaksi dijalankan secara berurutan dalam satu blok, dan perubahan status diterapkan secara langsung setelah eksekusi berhasil. Smart contract tidak dapat menghentikan eksekusi di tengah transaksi untuk menunggu respons eksternal.
Perilaku asinkron muncul saat kontrak berinteraksi dengan sistem eksternal:
Contohnya, dalam protokol pinjaman, harga aset tidak diambil secara real time saat transaksi deposit. Sebagai gantinya, oracle secara periodik mempublikasikan pembaruan harga. Aplikasi memantau pembaruan ini untuk melakukan pemeriksaan risiko, likuidasi, atau evaluasi agunan.
Pemrosesan sinkron mengharuskan setiap langkah selesai sebelum langkah berikutnya dimulai. Analogi yang umum adalah menunggu di antrean keamanan, di mana kemajuan hanya terjadi setelah langkah sebelumnya selesai. Pemrosesan asinkron memungkinkan kemajuan tanpa menunggu, mirip dengan memesan tempat di antrean dan kembali saat dipanggil.
| Aspek | Sinkron | Asinkron |
|---|---|---|
| Alur eksekusi | Setiap langkah memblokir langkah berikutnya | Langkah berjalan secara mandiri |
| Pengalaman pengguna | Menunggu secara eksplisit dan berkelanjutan | Pembaruan status terjadi di latar belakang |
| Pemanfaatan blockchain | Penandatanganan dan pengiriman transaksi | Konfirmasi, transfer lintas rantai, pengindeksan |
Pada desain produk, alur sinkron paling sesuai untuk aksi yang harus terjadi secara berurutan, seperti penandatanganan transaksi dan perhitungan biaya. Alur asinkron lebih cocok untuk konfirmasi, penyelesaian, dan proses lintas rantai di mana waktu tunggu bervariasi dan notifikasi bagi pengguna menjadi sangat penting.
Sistem lintas rantai dan arsitektur Layer 2 memperkuat perilaku asinkron. Solusi Layer 2 memproses transaksi di luar rantai utama dan secara berkala menyelesaikan hasilnya ke on chain, sehingga menambah periode tunggu tambahan.
Optimistic rollup umumnya memerlukan jendela tantangan sebelum penarikan dapat difinalisasi di rantai utama, yang sering kali berlangsung beberapa hari. Zero knowledge rollup bergantung pada pembuatan proof dan pengiriman batch, dengan waktu penarikan berkisar dari beberapa menit hingga beberapa jam tergantung implementasinya. Cross chain bridge harus meneruskan pesan antar rantai independen, sehingga kredit aset tidak terjadi secara instan.
Pengguna yang memindahkan dana antar rantai atau dari Layer 2 ke Layer 1 harus mengantisipasi jendela tunggu asinkron yang sudah ditentukan dengan jelas. Aplikasi yang dirancang dengan baik akan menampilkan estimasi durasi, indikator progres, dan pembaruan status yang jelas selama proses ini.
Alur kerja asinkron yang andal bergantung pada koordinasi antara smart contract, layanan infrastruktur, dan antarmuka pengguna.
Langkah 1. Kirimkan transaksi dan tangkap hash transaksi, yang secara unik mengidentifikasi operasi on chain.
Langkah 2. Pantau event kontrak atau perubahan status menggunakan langganan node atau layanan pengindeksan untuk mendeteksi hasil eksekusi.
Langkah 3. Lacak konfirmasi blok dan perkirakan waktu tersisa berdasarkan interval blok rata-rata dan ambang konfirmasi yang dibutuhkan.
Langkah 4. Tangani penundaan, percobaan ulang, dan kegagalan. Jika transaksi tetap tertunda karena biaya rendah, pengguna dapat diminta untuk menggantinya. Jika pesan lintas rantai tertunda, sediakan opsi eskalasi atau dukungan.
Langkah 5. Berikan umpan balik transparan kepada pengguna. Labeli status dengan jelas seperti dikirimkan, menunggu konfirmasi, dan selesai, serta komunikasikan ekspektasi waktu secara realistis.
Deposit dan penarikan menggambarkan prinsip ini dengan jelas. Pada halaman deposit Gate, dana biasanya dikreditkan setelah jumlah blok konfirmasi yang dibutuhkan terpenuhi. Permintaan penarikan akan menampilkan status tertunda hingga konfirmasi on chain dan pemeriksaan risiko internal selesai.
Sistem asinkron menimbulkan ketidakpastian yang harus dikelola secara aktif.
Untuk operasi terkait dana, selalu verifikasi alamat tujuan, jangan pernah membagikan private key atau mnemonic phrase Anda, dan tetap waspada terhadap upaya phishing serta notifikasi palsu.
Pemrosesan asinkron menjadi fondasi hampir seluruh aktivitas blockchain, termasuk konfirmasi transaksi, pembaruan oracle, pengiriman pesan lintas rantai, dan penarikan Layer 2. Pemisahan yang jelas antara eksekusi smart contract sinkron dan proses eksternal asinkron sangat penting untuk keandalan dan kepercayaan pengguna. Kemajuan seperti waktu blok yang lebih cepat, shared sequencer, dan desain bridge yang lebih baik bertujuan mengurangi jeda, namun jaminan konsensus dan keamanan tetap membutuhkan finalitas berbasis waktu. Merancang sistem dengan mempertimbangkan asinkronitas adalah persyaratan utama untuk sistem Web3 yang tangguh.
Tidak. Pemrosesan asinkron tidak memerlukan banyak thread. Artinya, eksekusi tetap berlanjut tanpa menunggu suatu operasi selesai. Event loop single thread dapat mendukung alur kerja asinkron sama efektifnya dengan sistem multi-thread.
Asinkron berarti tidak terjadi pada waktu yang sama atau tidak tersinkronisasi. Dalam komputasi, istilah ini menggambarkan sistem yang tetap berjalan sambil menunggu penyelesaian operasi lain.
Transaksi harus disebarkan, dimasukkan ke dalam blok, dan divalidasi oleh konsensus. Jika langkah-langkah ini dilakukan secara sinkron, antarmuka pengguna akan membeku dalam waktu lama. Konfirmasi asinkron memungkinkan pengguna menerima ID transaksi secara langsung sementara finalisasi berlangsung di latar belakang.
Ya. Status pending menunjukkan bahwa transaksi telah dikirim tetapi belum terkonfirmasi. Perangkat lunak dompet secara asinkron memantau perubahan status blockchain dan memperbarui status setelah konfirmasi selesai.


