Artikel ini akan membahas mengenai implementasi blockchain untuk kegiatan pemilihan umum, pembahasan secara teknis
mereview platform Agora sebagai platform blockchain yang berfokus mengakomodasi aktivitas pemilihan umum.
Pada 7 maret 2018 terdapat kabar mengenai digunakannya teknologi blockchain untuk pemilu di sierra leone, hampir semua media dan blog teknologi mengabarkan hal ini seperti
techcrunch https://techcrunch.com/2018/03/14/sierra-leone-just-ran-the-first-blockchain-based-election/ , coindesk https://www.coindesk.com/sierra-leone-secretly-holds-first-blockchain-powered-presidential-vote/ , cointelegraph https://cointelegraph.com/news/sierra-leone-uses-blockchain-to-track-election-results-swiss-company-provides-expertise
hackernoon https://hackernoon.com/how-agora-will-use-blockchain-to-bring-true-democracy-to-the-world-2b231161d4c1 , thenextweb https://thenextweb.com/syndication/2018/03/15/sierra-leone-first-country-run-blockchain-powered-election/ , futurism https://futurism.com/sierra-leone-worlds-first-blockchain-powered-election/ , inc.com https://www.inc.com/darren-heitner/5-sectors-blockchain-is-rapidly-changing.html
Adalah Agora sebagai perusahaan startup blockchain yang mengklaim telah membantu sierra leone menggunakan teknologi blockhain untuk pemilu nasional ini. Beberapa hari kemudian pada 18 maret 2018, NEC (The National Electoral Commission) sebagai `KPU` nya Sierra Leone membantah hal ini : https://twitter.com/NECsalone/status/975773726703804419
Komisi Pemilihan Umum Sierral Leone membantah klaim tersedbut. Apakah yang sebenarnya terjadi ? Agora kemudian merilis berita sebenarnya pada 20 maret 2018.
Agora Official Statement Regarding Sierra Leone Election
https://medium.com/agorablockchain/agora-official-statement-regarding-sierra-leone-election-7730d2d9de4e
kesimpulan adalah sebagai berikut
1. Teknologi blockchain digunakan pada saat pencatatan hasil akhir di 280 TPS di disterict western sierra leone.
2. Pencatatan hasil perhitungan memang menggunakan blockhain , tapi tidak digunakan pada saat peserta memilih kandidat presiden.
3. Kapasitas Agora sebagai international observer, mencatat hasil pemilu. Sama dengan saksi international lainnya, ada yang mencatat dengan xls, text, catatan kertas manual. Bedanya adalah agora menggunakan blockchain.
source code untuk pencatatan hasil pemilu sierra leone 2018 dapat dilihat digithub
https://github.com/AgoraBlockchain/sl2018
berita kejadian aktual dapat dilihat dibaca disini
https://cointelegraph.com/news/sierra-leones-fake-blockchain-election-hasnt-damaged-the-technologys-reputation
https://psmag.com/news/the-imaginary-blockchain-election
Tentunya hal ini cukup mengecewakan bagi mereka yang antusiast dengan teknologi blockhain, dan dalam hal ini sierra leone tidak bisa dianggap sebagai negara pertama yang menggunakan implementasi penuh teknologi blockchain
Tapi apakah pada masa mendatang blockhain diperlukan untuk membantu kelancaran pemilu ? bagaimana cara kerja dan mekanismenya ? apa pengaruhnya dibandingkan dengan sistem konvensional ?
Sistem Pemilu konvensional saat ini adalah
1. Mencatat warga negara dengan syarat tertentu untuk berpartisipasi dalam memilih calon pemimpin nasional/daerah, calon wakil rakyat.
2. Harus dipastikan bahwa peserta tidak boleh terdaftar di lebih dari 2 TPS.
3. Peserta harus datang ke TPS tertentu, antri dan bila waktu gilirannya , masuk ke bilik suara dan memilih calon pemimpin pemimpin nasional/daerah, calon wakil rakyat.
4. Bila semua peserta telah selesai, diadaka penghituangan akhir yang dihadiri oleh beberapa saksi, dari wakil partai, lembaga internasional, individu, LSM.
5. Hasil akhir dari TPS tersebut diteruskan ke pusat untuk dihitung secara total.
kesemua proses ini dilakukan dengan cara administratif/manual. Bila menggunakan teknologi IT, maka sebatas dibuat untuk pencatatan ulang, catatan resmi fisik berupa kertas suara dipindah ke digital dan disimpan diserver.
Bila menggunakan blockchain , seperti apakah implementasinya ? kenapa perlu blockchain ?
Blockchain diperlukan karena
(1) Data yang disimpan pada tiap TPS akan saling dibroadcast/distribusikan ke TPS lainnya, Tidak ada sentralisasi data.
(2) Data transaksi pemungutan suara yang sudah disimpan pada suatu block, distempel / timestamp oleh waktu dan metode merkel tree dan hashing , tidak dapat diganti-ganti lagi.
(3) Resiko penyerangan / hacking pada data yang terpusat menjadi tidak ada, karena memang data tidak disimpan di pusat melainkan ada disetiap komputer yang berpartisipasi pada jaringan blockchain tersebut.
(4) Pembaharuan data bersifat realtime , karena setiap terjadi pembuatan block yang terdiri dari beberapa ratus transaksi
akan langsung terdistribusi ke node / jaringan blockchain.
Bagaimana implementasinya ? Dalam bayangan sepertinya perlu ada 2 blockchain
blockhain pertama mencatat data peserta pemilu
blockchain kedua mencatat transaksi hasil pemungutan suara
Pada blockhain pertama akan mencatat
data nomor induk penduduk , nama lengkap penduduk , tanggal lahir dan TPS tempat peserta tersebut akan memilih.
data tersebut bukan merupakan data mentah tapi akan berbentuk kombinasi Hash dengan metode hashing tertentu misalkan SHA1(Nomor Induk Penduduk + Nama Lengkap + Tanggal Lahir + Bulan Lahir + Tahun Lahir
TPS). Hanya petugas KPU yang dapat merekam / memasukkan data calon peserta pemilih.
Bagaimana memverifikasi bahwa peserta tersebut berhak memilih ?
ketika peserta datang ke TPS , petugas TPS memverikasi data tersebut,
apabila data hasil hashing match/cocok pada jaringan blockhain pertama tersebut, maka
peserta tersebut diberikan publik key dan private key. setelah proses pemberikan publick / private key terjadi, petugas TPS akan update data ke jaringan blockchain pertama, bahwa peserta ini sudah mendapatkan hak untuk memilih, dan selanjutnya peserta ini tidak dapat lagi mendaftar untuk memilih kembali.
Pencatatan warga negara yang berhak mengikuti pemilu, sama seperti teknologi cryptocurrency ketika membuka wallet. Peserta diberi Public Key dan Private Key. Public key berguna sebagai pengganti identitas seperti halnya nomor rekening, nomor induk penduduk. Private Key ini berguna sebagai password, bila peserta melupakan
password maka dipastikan tidak dapat ikut serta, sama seperti ketika memiliki wallet cryptocurrency, bila kita lupa password/private key , maka hilang sudah semua saldo / nominal yang kita punya di wallet tersebut.
Siapa yang berhak memberikan public key dan private key untuk peserta ?
hanya petugas / sekelompok orang tertentu yang ditunjuk berhak memberikan wallet yang berisikan public key dan private key kepada peserta. Dan ada beberapa saksi yang memverifikasi pemberian public key dan private key untuk calon peserta pemilih
Bagaimana caranya mencegah agar 1 orang tidak boleh mendapatkan lebih dari 2 account/wallet ?
Setelah public dan private key diberikan, data transaksi pemberian public / private key akan dimasukkan ke blockchain beserta orang-orang yang memberikan dan mensetujui pemberian public / private key tersebut.
Bila terjadi usaha pemberian public / private key untuk ke-dua kalinya, maka akan ditolak oleh system, karena data calon peserta tersebut sudah teridentifikasi menerima public dan private key
Bagaimana cara melindungi rahasia pilihan milik peserta pemilu ?
Ada mekanisme anonymity yang akan diberikan untuk peserta pemilu , jadi ketika
peserta tersebut sudah melangsungkan pilihannya, akan diberikan identitas anonymity,
misalkan saya dengan NIK : 220010101923 akan diberikan Id anonymity : abcdge1811.
Identitas anonymity diberikan oleh apps/system secara automatis dan tidak ada orang lain yang mengetahui selain peserta itu sendiri. hasil pilihannya pun akan dienkripsi sehingga akan mempersulit orang lain untuk mengetahui apa pilihan setiap peserta pemilu
Untuk memverifikasi apakah suara calon peserta tersebut ikut dihitung pada perhitungan suara, calon peserta tersebut dapat melakukan cross-check / mencocokkan identitas anonymity dengan hasil pilihannya. untuk mengetahui apakah benar pilihannya yaitu calon presiden A sesuai di hasil tertera di blockchain, peserta pemilu dapat mendecrypt (lawan dari enkripsi) hasil suara. hasil decrypt tersebut akan memperlihatkan
kepada peserta pemilu mengenai hasil pilihannya.
kelihatannya sangat simple kan ?
Proses perhitungan suara tersebut dapat diikuti pada setiap node/jaringan komputer yang terhubung pada blockhain tersebut. Dengan data tersebar di banyak komputer, termasuk di komputer saya sendiri, bukankah terbuka rawan kecurangan misalkan saya mengganti data yang ada di komputer saya?.
Pada blockchain , hal tersebut tidak dimungkinkan, karena data yang sudah terbungkus dalam setiap block, sudah diproteksi oleh algorithma cryptography, setiap usaha pergantian data, system akan mendeteksi adanya perbedaan pada block sekian di komputer ini dengan block sekian di komputer lain, dan apps / system akan menggantikan
kembali data tersebut dengan data original.
Jadi dengan penerapan blockchain , sepertinya bisa dirasakan beberapa penghematan, antara lain
(1) Biaya pencetakkan kertas pemungutan suara, digantikan menjadi beberbentuk aplikasi digital
(2) Biaya pengamanan kertas hasil pemungutan suara ketika dibawa ke pusat agar tidak dimanipulasi. dengan blockchain,
tidak ada biaya pengamanan, karena pengamanan dilakukan oleh algoritma cryptography.
(3) Biaya pengadaan dan perlindungan server dan jaringan, karena setiap partisipasi dari masyarakat / organisasi / lembaga akan turut serta
menjaga, mengawasi dan menyimpan hasil pemilu pada jaringan blockchain.
Deskripsi diatas adalah pembahasan secara sederhana, bagaimana dengan detail arsitektur teknologinya?
Sampai saat ini, teknologi blockchain sedang dikembangkan untuk berbagai macam implementasi bisnis. untuk kasus pemilihan umum, sepertinya Agora yang memiliki fokus penggunaan blockchain untuk pemilihan umum.
lanjut ke pembahasan arsitektur teknologi seperti yang disusun oleh Agora Team
https://medium.com/@agorablockchain/progress-report-agora-whitepaper-v0-2-is-now-available-d9c8fdbfcf3e
Agora mengadopsi konsep / teknologi opensource
1. Byzcoin : https://agora.vote/ByzCoin.pdf
2. Chainiac : https://agora.vote/Chainiac.pdf
3. OmnniLedger : https://agora.vote/Omniledger.pdf
White Paper Agora dapat didownload disini : https://agora.vote/Agora_Whitepaper_v0.2.pdf
Agora terdiri dari 5 teknologi lapisan / layer
1. Bulletin board blockchain
2. Cotena
3. Bitcoin blockchain
4. Voteapp
5. Valeda
Layer 1 Bulletin Board = Agora Blockchain
Bulletin Board adalah agora blockhain yaitu berupa distribution ledger berbasiskan skipchain arsitektur Data pada Bulletin Board = agora blockchain terikat pada bitcoin blockchain melalui cotena layer. Cotena layer merupakan lapisan tertinggi desentralisasi data. System dengan arsitektur ini memungkinkan tersedianya menampung jumlah transaksi lebih banyak ketimbang bitcoin dan kebutuhan benwit yang rendah.
Bulletin board adalah agora blockhain yang dioperasikan oleh agora team. bersifat read-only dapat dibaca oleh siapapun di belahan dunia tapi tidak dapat ditulis/rekam, sedangan hak merekam data ada pada agora team, pihak ketiga pengelola pemilihan umum,
voter/peserta pemilu , para saksi dan auditor.
data yang tercatat tentu saja dalam keadaan ter`encrypt`, tidak dapat diubah, dan dapat di-audit. Bulletin board menggunakan skipchain arsitektur, proaktif Byzantine Consensus Mechanisme dengan high throughput dan efficient validasi transaksi.
Skipchain data struktur pertama kali dikenalkan pada event Usenix security 2017 dalam paper berjudul Chainiac. https://agora.vote/Chainiac.pdf
presentasi tentang chainiac dapat dilihat disini
https://www.youtube.com/watch?v=xpT6L8htINU
Skipchain memungkinkan navigasi secara efisien. navigasi antar Block dapat diskip ke 2,3 block sebelumnya atau block sesudahnya. Tidak seperti bitcoin dimana, teknis validasi harus berurut (tidak bisa diskip) antara block sebelum dan sesudahnya.
dengan teknik ini, suatu client/computer/devices/nodes tidak memerlukan untuk mendownload full semua block. backpointer pada skipchain berbentuk hashing, sementara forward pointer berupa collective signatures yang dibuat oleh
group of witnesses.
Ilustrasi tergambar sebagai berikut :
Tiap block pada skipchain mengandung element data
(1) Root hash merkle tree semua transaksi pada block tersebut
(2) Root hash merkle tree yang mewakili seluruh skiptchain pada current state
(3) Hash currentblock , yang bertindak sebagai unique identifier current block
(4) Hash backward pada block sebelumnya
(5) daftar forward dan backward link pada block berbeda dalam skipchain untuk memudahkan navigasi
(6) daftar colective authority (cothority) nodes yang bertuga handling block
Cothority adalah nodes yang terdiri dari colective autohority mengkonfirmasi transaksi. sebagai standard blockchain berbeda, tiap node pada network menjaga copy/duplikat semua transaksi dan mensetujui transaksi baru dalam block sebagai
bagian dari mekanisme konsensus. Nodes secara independent saling mengawasi untuk menjaga data yang telah terekam tidak diubah/ganti Transaksi data yang direkam adalah ballouts (hasil voting), konfigurasi file dan consensus proof.
salah satu nodes ditugasi sebagai `oracle node` secara bergantian. Rotating oracle nodes menerima ballots dan data lain dari witness nodes, mengajukan block baru ke dalam network dan menulis block yang terkonfirmasi pada cotena log.
Oracle dan Witness Server pada agora network beroperasi secara fisik berjauhan oleh agora dan pihak ketiga independent.
Witness Server bertujuan
1. Maintan copy/duplikat data pada buleting board / agora blockcgain
2. Menerima hasil enkripsi ballouts/suara dari voter/pemilih dan mengauthentikasi bahwa benar itu data berasa dari voter/pemilih sebenarnya
3. Melakukan konfirmasi block yang dihasilkan dari oracle ( data third party yang diedarkan/berasal dari masing-masing nodes).
4. Melakukan dekripsi identitas anonim dan hasil pilihan dari anonim tersebut. data ini akan diperlukan untuk tahap perhitungan suara
5. Menjaga duplikasi cotena log dan memonitor akurasi dan kebenarannya.
Oracle Server (pengertian oracle ini tidak sama dengan pengertian Oracle database trademark) dipilih secara random dari kumpulan witness server dan dilakukan secara bergantian. Oracle server bertujuan
1. Oracle menambahkan konfigurasi file ke bulletin board
2. Oracle membuat block-block dari authenti cated ballots yang diterima oleh witness server dan diajukan/propose
ke network untuk dilakukan konfirmasi
3. Oracle menambahkan block yang sudah terkonfrimasi ke dalam log dan mendorongnya ke bitcoin blockchain
arsitektur Bulletin board = agora blockhain menawarkan infrastruktur blockchain dengan skala yang dapat disesuaikan, mampu
mengelola data spesifik yang dibutuhkan untuk administrasi pemilu.
Layer 2 Cotena
Bullletin Board berinteraksi pada layer ke2 ini (Cotena) , bersifat tamper-resistant logging mechanisme, dibangun diatas Bitcoin Protokol blockchain. Layer ini menghubungkan Bulletin board dan mendukung cryptographic proofs to the
Bitcoin blockchain, Menyediakan data desentralise, kebal dari usaha hacking / perubahan data. Pada cotena layer, Colective Authority mengelola append-only log yang terbentuk dari transaksi bitcoin
memanfaatkan fungsi OP_RETURN code https://en.bitcoin.it/wiki/OP_RETURN dari Bitcoin.
Clients menjalankan software Agora, hanya perlu download bitcoin block headers dan small merkle proof pada header tersebut. setelah semua block header didownload, network bandwidth hanya memerlukan data dibawah 1 kb setiap 10 menit,
dengan teknis ini, penggunaan storage pencatatan data append log , penggunaan benwit, dan ongkos transaksi dapat optimal. Cotena Log adalah daftar snapshot bulletin board secara periodic. setiap update log akan disimpan oleh cothority nodes.
untuk membuat Cotena Log, cothority akan membuat alamat bitcoin collective, ditandatangani dan dibroadcast ke jaringan bitcoin.
Layer 3 Bitcoin Blockchain
Mengapa Bulletin board = Agora blockchain membutuhkan bitcoin blockchain untuk menyimpan log data agora ? Bitcoin blockchain memiliki komunitas / partisipasi terbesar dari seluruh miner seluruh dunia. dengan bantuan komunitas partisipasi user/miner bitcoin blockhain maka data log agora dapat secara optimal terdesentralisasi / tersebar. Tidak semua isi data pada Agora disimpan di bitcoin blockchain,
akan tetapi hanya data hash index skpped block saja yang disimpan, memanfaatkan fitur OP_RETURN opcode bitcoin. dengan teknis ini, maka keaslian data dari bulletin board / agora blockhain dapat senantiasa terjamin.
Bagaimana bila nantinya seluruh bitcoin blockchain dengan batasan maksimum 21 juta sudah ditambang/mine oleh para miner seluruh dunia ?
apakah proses penyimpanan dat log bulletin board = agora blockchain akan berhenti ?
Bitcoin blockchain memerlukan waktu setiap 10 menit untuk pembuatan block baru. 1 block bisa terdiri dari 0 transaksi ataupun ratusan transaksi,
dan hanya memuat sekitar 100 kilobyes saja. Dengan situasi seperti ini, kemungkinan bitcoin akan selesai ditambang sekitar tahun 2120 , masih
ada waktu sekitar 100 tahun lagi sebelum diketemukan cara baru.
Layer 4 Valeda Network
Layer Valeda adalah network dari trustless nodes yang memvalidasi hasil pemilu pada agora blockchain. Layer ini adalah layer terakhir berisikan data hasil pemilu. Setiap pemilu berakhir, hasil akhir sudah dihitung, disahkan oleh perhitungan algorima komputer collective authorty, collective signing, semua auditor pada nodes
menjalankan sofware dan ikut memvalidasi hasil ini, validator akan mendapatkan VOTE token.
Layer 5 VOTAPP
adalah layer berisikan aplikasi dari agora blockchain. Setuap developer/programmer dapat membuat aplikasi diatas layer ini, berinteraksi dengan later bulletin board. Aplikasi utama seperti Voting Both, Audit dan Node.
Aplikasi Voting Booth mengijinkan Voter / Calon Pemilih untuk berpartisipasi. Aplikasi mendownload informasi dari event konfigurasi file
yang relevan, menampilkan nama event pemilu, daftar kandidat, daftar partai untuk voter/calon pemilih. Voter / calon pemilih memilih daftar kandidat / daftar partai pada aplikasi, kemudian data tersebut diencrypt, voter diberikan identitas anonym untuk mencocokkan pada hasil result nanti bahwa
identitas anonim milik voter diikut sertakan pada proses perhitungan suara.
Kesimpulan :
Agora Blockchain adalah konsep arsitektur blockchain untuk mengakomodasi kegiatan pemilihan umum.
Rangkaian full implementasi dengan konsep/arsitektur ini belum pernah dijalankan di negara manapun pada saat tulisan ini dibuat (4 April 2018),
Beberapa tantangan yang perlu dipikirkan adalah
1. Bagaimana memverifikasi voter / calon peserta pemilu adalah benar / sah berhak mengikuti pemilu. Verifikasi secara digital ? secara administrasi offline ?
2. Bagaimana membuat applikasi mobile / desktop untuk menjembatani aktivitas pemilihan kandidat / pemilihan partai. Bagaimana Applikasi mobile / desktop tersebut
adalah benar apps yang dikeluarkan oleh KPU resmi. Konsep Chainiac (Proactive Software-Update Transparency Via COllectivelu Signed Skipchains and Verifiied Builds)
ditawarkan untuk solusi ini. presentasi tentang chainiac dapat dilihat disini . https://www.youtube.com/watch?v=xpT6L8htINU
3. Oleh karena konsep blockchain bersifat terbuka, pembuatan applikasi dan data bersifat terbuka / open source, dapat dilihat oleh setiap orang, apakah solusi
pemilu terbuka