Proof-of-authority (PoA)
Pembaruan terakhir halaman: 20 Oktober 2025
Proof-of-authority (PoA) adalah algoritma konsensus berbasis reputasi yang merupakan versi modifikasi dari proof-of-stake. Ini sebagian besar digunakan oleh chain privat, testnet, dan jaringan pengembangan lokal. PoA adalah algoritma konsensus berbasis reputasi yang membutuhkan kepercayaan pada sekumpulan penandatangan yang berwenang untuk menghasilkan blok, alih-alih mekanisme berbasis stake dalam PoS.
Prasyarat
Untuk lebih memahami halaman ini, kami sarankan Anda terlebih dahulu membaca tentang transaksi, blok, dan mekanisme konsensus.
Apa itu proof-of-authority (PoA)?
Proof-of-authority adalah versi modifikasi dari proof-of-stake (PoS) yang merupakan algoritma konsensus berbasis reputasi alih-alih mekanisme berbasis stake dalam PoS. Istilah ini diperkenalkan untuk pertama kalinya pada tahun 2017 oleh Gavin Wood, dan algoritma konsensus ini sebagian besar telah digunakan oleh chain privat, testnet, dan jaringan pengembangan lokal, karena mengatasi kebutuhan akan sumber daya berkualitas tinggi seperti yang dilakukan PoW, dan mengatasi masalah skalabilitas dengan PoS dengan memiliki subset kecil node yang menyimpan blockchain dan menghasilkan blok.
Proof-of-authority membutuhkan kepercayaan pada sekumpulan penandatangan yang berwenang yang ditetapkan dalam . Dalam sebagian besar implementasi saat ini, semua penandatangan yang berwenang mempertahankan kekuatan dan hak istimewa yang sama saat menentukan konsensus dari chain. Gagasan di balik mengunci reputasi adalah setiap validator yang berwenang dikenal baik oleh semua orang melalui hal-hal seperti know your customer (KYC), atau dengan memiliki organisasi terkenal yang menjadi satu-satunya validator—dengan cara ini jika validator melakukan kesalahan, identitas mereka diketahui.
Ada beberapa implementasi PoA, tetapi implementasi standar Ethereum adalah clique, yang mengimplementasikan EIP-225 (opens in a new tab). Clique ramah pengembang dan merupakan standar yang mudah diimplementasikan, mendukung semua jenis sinkronisasi klien. Implementasi lainnya termasuk IBFT 2.0 (opens in a new tab) dan Aura (opens in a new tab).
Bagaimana cara kerjanya
Dalam PoA, sekumpulan penandatangan yang berwenang dipilih untuk membuat blok baru. Penandatangan dipilih berdasarkan reputasi mereka, dan mereka adalah satu-satunya yang diizinkan untuk membuat blok baru. Penandatangan dipilih secara round-robin, dan setiap penandatangan diizinkan untuk membuat blok dalam jangka waktu tertentu. Waktu pembuatan blok bersifat tetap, dan penandatangan diharuskan untuk membuat blok dalam jangka waktu tersebut.
Reputasi dalam konteks ini bukanlah hal yang dapat diukur melainkan reputasi perusahaan terkenal seperti Microsoft dan Google, oleh karena itu cara memilih penandatangan tepercaya bukanlah algoritmik melainkan tindakan manusia normal yaitu kepercayaan di mana sebuah entitas katakanlah misalnya Microsoft membuat jaringan privat PoA antara ratusan atau ribuan startup dan perannya sendiri sebagai satu-satunya penandatangan tepercaya dengan kemungkinan menambahkan penandatangan terkenal lainnya seperti Google di masa depan, startup tersebut, tanpa ragu, akan mempercayai Microsoft untuk bertindak jujur setiap saat dan menggunakan jaringan tersebut. Ini memecahkan kebutuhan untuk melakukan stake di berbagai jaringan kecil/privat yang dibangun untuk tujuan berbeda agar tetap terdesentralisasi dan berfungsi, bersama dengan kebutuhan akan penambang, yang menghabiskan banyak daya dan sumber daya. Beberapa jaringan privat menggunakan standar PoA seperti VeChain, dan beberapa memodifikasinya seperti Binance yang menggunakan PoSA (opens in a new tab) yang merupakan versi modifikasi khusus dari PoA dan PoS.
Proses pemungutan suara dilakukan oleh penandatangan itu sendiri. Setiap penandatangan memberikan suara untuk penambahan atau penghapusan penandatangan di blok mereka saat mereka membuat blok baru. Suara dihitung oleh node, dan penandatangan ditambahkan atau dihapus berdasarkan suara yang mencapai ambang batas tertentu SIGNER_LIMIT.
Mungkin ada situasi di mana fork kecil terjadi, kesulitan sebuah blok bergantung pada apakah blok tersebut ditandatangani pada gilirannya (in turn) atau di luar gilirannya (out of turn). Blok "in turn" memiliki kesulitan 2, dan blok "out of turn" memiliki kesulitan 1. Dalam kasus fork kecil, chain dengan sebagian besar penandatangan yang menyegel blok "in turn" akan mengakumulasi kesulitan paling banyak dan menang.
Vektor serangan
Penandatangan berbahaya
Pengguna berbahaya dapat ditambahkan ke daftar penandatangan, atau kunci/mesin penandatanganan mungkin disusupi. Dalam skenario seperti itu, protokol harus mampu mempertahankan diri dari reorganisasi dan spamming. Solusi yang diusulkan adalah dengan daftar N penandatangan yang berwenang, setiap penandatangan hanya dapat melakukan mint 1 blok dari setiap K. Ini memastikan bahwa kerusakan dibatasi, dan sisa validator dapat mengeluarkan pengguna berbahaya tersebut melalui pemungutan suara.
Penyensoran
Vektor serangan menarik lainnya adalah jika seorang penandatangan (atau sekelompok penandatangan) mencoba menyensor blok yang memberikan suara untuk menghapus mereka dari daftar otorisasi. Untuk mengatasi hal ini, frekuensi mint yang diizinkan dari penandatangan dibatasi menjadi 1 dari N/2. Ini memastikan bahwa penandatangan berbahaya perlu mengontrol setidaknya 51% dari akun penandatanganan, di mana pada titik tersebut mereka akan secara efektif menjadi sumber kebenaran baru untuk chain tersebut.
Spam
Vektor serangan kecil lainnya adalah penandatangan berbahaya yang menyuntikkan proposal pemungutan suara baru di dalam setiap blok yang mereka mint. Karena node perlu menghitung semua suara untuk membuat daftar aktual penandatangan yang berwenang, mereka harus mencatat semua suara dari waktu ke waktu. Tanpa menempatkan batas pada jendela pemungutan suara, ini bisa tumbuh perlahan, namun tidak terbatas. Solusinya adalah menempatkan jendela bergerak dari W blok yang setelahnya suara dianggap basi. Jendela yang masuk akal mungkin 1-2 epoch.
Blok bersamaan
Dalam jaringan PoA, ketika ada N penandatangan yang berwenang, setiap penandatangan diizinkan untuk melakukan mint 1 blok dari K, yang berarti bahwa N-K+1 validator diizinkan untuk melakukan mint pada titik waktu tertentu. Untuk mencegah validator ini berlomba untuk blok, setiap penandatangan harus menambahkan "offset" acak kecil ke waktu saat merilis blok baru. Meskipun proses ini memastikan bahwa fork kecil jarang terjadi, fork sesekali masih bisa terjadi, sama seperti mainnet. Jika seorang penandatangan ditemukan menyalahgunakan kekuasaannya dan menyebabkan kekacauan, penandatangan lainnya dapat mengeluarkan mereka melalui pemungutan suara.
Jika misalnya ada 10 penandatangan yang berwenang dan setiap penandatangan diizinkan untuk membuat 1 blok dari 20, maka pada waktu tertentu, 11 validator dapat membuat blok. Untuk mencegah mereka berlomba membuat blok, setiap penandatangan menambahkan "offset" acak kecil ke waktu mereka merilis blok baru. Ini mengurangi terjadinya fork kecil tetapi masih memungkinkan fork sesekali, seperti yang terlihat di Mainnet Ethereum. Jika seorang penandatangan menyalahgunakan otoritas mereka dan menyebabkan gangguan, mereka dapat dikeluarkan dari jaringan melalui pemungutan suara.
Kelebihan dan kekurangan
| Kelebihan | Kekurangan |
|---|---|
| Lebih dapat diskalakan daripada mekanisme populer lainnya seperti PoS dan PoW, karena didasarkan pada jumlah penandatangan blok yang terbatas | Jaringan PoA biasanya memiliki jumlah node validasi yang relatif kecil. Ini membuat jaringan PoA lebih terpusat. |
| Blockchain PoA sangat murah untuk dijalankan dan dipelihara | Menjadi penandatangan yang berwenang biasanya di luar jangkauan orang biasa, karena blockchain membutuhkan entitas dengan reputasi yang mapan. |
| Transaksi dikonfirmasi dengan sangat cepat karena bisa mencapai kurang dari 1 detik karena hanya sejumlah penandatangan terbatas yang diperlukan untuk memvalidasi blok baru | Penandatangan berbahaya dapat melakukan reorg, pengeluaran ganda, menyensor transaksi di jaringan, serangan tersebut dimitigasi tetapi masih mungkin terjadi |
Bacaan lebih lanjut
- EIP-225 (opens in a new tab) Standar Clique
- Studi Proof of Authority (opens in a new tab) Cryptoeconomics
- Apa itu Proof of Authority (opens in a new tab) OpenZeppelin
- Penjelasan Proof of Authority (opens in a new tab) binance
- PoA dalam blockchain (opens in a new tab)
- Penjelasan Clique (opens in a new tab)
- PoA yang tidak digunakan lagi, spesifikasi Aura (opens in a new tab)
- IBFT 2.0, implementasi PoA lainnya (opens in a new tab)
Lebih suka belajar secara visual?
Tonton penjelasan visual tentang proof-of-authority: