You are on page 1of 14

Subscribe to DeepL Pro to translate larger documents.

Visit www.DeepL.com/pro for more information.

Bitcoin: Sistem Uang Elektronik Peer-to-Peer

Satoshi Nakamoto
satoshin@gmx.com
www.bitcoin.org

Abstrak. Versi uang elektronik yang murni peer-to-peer akan memungkinkan


pembayaran online dikirim langsung dari satu pihak ke pihak lain tanpa melalui
lembaga keuangan. Tanda tangan digital menyediakan sebagian dari solusi, tetapi
manfaat utamanya akan hilang jika pihak ketiga yang tepercaya masih diperlukan
untuk mencegah pengeluaran ganda. Kami mengusulkan sebuah solusi untuk
masalah pembelanjaan ganda dengan menggunakan jaringan peer-to-peer. Jaringan
ini menandai waktu transaksi dengan melakukan hashing ke dalam rantai bukti
kerja berbasis hash yang sedang berjalan, membentuk catatan yang tidak dapat
diubah tanpa mengulang bukti kerja. Rantai terpanjang tidak hanya berfungsi
sebagai bukti urutan kejadian yang disaksikan, tetapi juga bukti bahwa rantai
tersebut berasal dari kumpulan daya CPU terbesar. Selama sebagian besar daya
CPU dikendalikan oleh node yang tidak bekerja sama untuk menyerang jaringan,
mereka akan menghasilkan rantai terpanjang dan melampaui penyerang. Jaringan
itu sendiri membutuhkan struktur minimal. Pesan disiarkan berdasarkan upaya
terbaik, dan node dapat meninggalkan dan bergabung kembali dengan jaringan
sesuka hati, menerima rantai bukti kerja terpanjang sebagai bukti dari apa yang
terjadi saat mereka pergi.

1. Pendahuluan
Perdagangan di Internet hampir secara eksklusif bergantung pada lembaga keuangan yang
berfungsi sebagai pihak ketiga tepercaya untuk memproses pembayaran elektronik. Meskipun
sistem ini bekerja cukup baik untuk sebagian besar transaksi, sistem ini masih memiliki kelemahan
yang melekat pada model berbasis kepercayaan. Transaksi yang benar-benar tidak dapat
dibatalkan tidak benar-benar memungkinkan, karena lembaga keuangan tidak dapat menghindari
mediasi sengketa. Biaya mediasi meningkatkan biaya transaksi, membatasi ukuran transaksi
praktis minimum dan memotong kemungkinan untuk transaksi kasual kecil, dan ada biaya yang
lebih luas dalam hilangnya kemampuan untuk melakukan pembayaran non-reversibel untuk
layanan yang tidak dapat dibalikkan. Dengan adanya kemungkinan pembalikan, kebutuhan akan
kepercayaan menyebar. Pedagang harus waspada terhadap pelanggan mereka, merepotkan mereka
untuk mendapatkan lebih banyak informasi daripada yang seharusnya mereka butuhkan.
Persentase tertentu dari penipuan diterima sebagai hal yang tidak dapat dihindari. Biaya dan
ketidakpastian pembayaran ini dapat dihindari secara langsung dengan menggunakan mata uang
fisik, tetapi tidak ada mekanisme untuk melakukan pembayaran melalui saluran komunikasi tanpa
pihak yang dipercaya.
Yang dibutuhkan adalah sebuah sistem pembayaran elektronik berdasarkan bukti kriptografi
dan bukannya kepercayaan, yang memungkinkan dua pihak yang bersedia untuk bertransaksi
secara langsung satu sama lain tanpa memerlukan pihak ketiga yang terpercaya. Transaksi yang
secara komputasi tidak praktis untuk dibatalkan akan melindungi penjual dari penipuan, dan
mekanisme escrow rutin dapat dengan mudah diimplementasikan untuk melindungi pembeli.
Dalam makalah ini, kami mengusulkan sebuah solusi untuk masalah pembelanjaan ganda dengan

1
menggunakan server stempel waktu terdistribusi peer-to-peer untuk menghasilkan bukti komputasi
dari urutan kronologis transaksi. Sistem ini aman selama node-node yang jujur secara kolektif
mengontrol lebih banyak daya CPU daripada kelompok node penyerang yang bekerja sama.

2
2. Transaksi
Kami mendefinisikan koin elektronik sebagai rantai tanda tangan digital. Setiap pemilik
mentransfer koin ke pemilik berikutnya dengan menandatangani hash dari transaksi sebelumnya
dan kunci publik dari pemilik berikutnya secara digital dan menambahkannya ke akhir koin.
Penerima pembayaran dapat memverifikasi tanda tangan tersebut untuk memverifikasi rantai
kepemilikan.
Transaksi Transaksi Transaksi

Kunci Kunci Kunci Publik


Publik Publik Pemilik 3
Pemilik 1 Pemilik 2

Hash Hash Hash

Ve Ve
Tanda kas rifi Tanda kas rifi Tanda
Tangan i Tangan i Tangan
Pemilik 0 Pemilik 1 Pemilik 2

s s
Kunci Pribadi Mak Kunci Mak Kunci Pribadi
u u
Pemilik 1 Pribadi Pemilik 3
Pemilik 2

Masalahnya tentu saja adalah penerima pembayaran tidak dapat memverifikasi bahwa salah
satu pemilik tidak membelanjakan koin secara ganda. Solusi yang umum dilakukan adalah
dengan memperkenalkan sebuah otoritas pusat yang terpercaya, atau mint, yang memeriksa setiap
transaksi untuk mengetahui adanya pembelanjaan ganda. Setelah setiap transaksi, koin harus
dikembalikan ke percetakan untuk menerbitkan koin baru, dan hanya koin yang diterbitkan
langsung dari percetakan yang dipercaya tidak akan dibelanjakan ganda. Masalah dengan solusi ini
adalah bahwa nasib seluruh sistem uang bergantung pada perusahaan yang menjalankan
percetakan, dengan setiap transaksi harus melalui mereka, seperti halnya bank.
Kita membutuhkan cara agar penerima pembayaran mengetahui bahwa pemilik sebelumnya
tidak menandatangani transaksi sebelumnya. Untuk tujuan kami, transaksi paling awal adalah
transaksi yang dihitung, jadi kami tidak peduli dengan upaya pembelanjaan ganda di kemudian
hari. Satu-satunya cara untuk memastikan tidak adanya transaksi adalah d e n g a n mengetahui
semua transaksi. Dalam model berbasis mint, mint mengetahui semua transaksi dan memutuskan
mana yang lebih dulu tiba. Untuk mencapai hal ini tanpa pihak yang dipercaya, transaksi harus
diumumkan secara publik [1], dan kita membutuhkan sebuah sistem bagi para partisipan untuk
menyetujui riwayat tunggal dari pesanan yang mereka terima. Penerima pembayaran
membutuhkan bukti bahwa pada saat setiap transaksi, mayoritas node setuju bahwa transaksi
tersebut adalah yang pertama kali diterima.

3. Server Cap Waktu


Solusi yang kami usulkan dimulai dengan sebuah server stempel waktu. Server cap waktu bekerja
dengan mengambil hash dari sebuah blok item yang akan diberi cap waktu dan mempublikasikan
hash tersebut secara luas, seperti di koran atau posting Usenet [2-5]. Stempel waktu membuktikan
bahwa data tersebut pasti sudah ada pada saat itu, tentu saja, untuk masuk ke dalam hash. Setiap
cap waktu menyertakan cap waktu sebelumnya di dalam hash, membentuk sebuah rantai, dengan
setiap cap waktu tambahan memperkuat cap waktu sebelumnya.

Hash Hash

Blokir Blokir

Item Item ... Item Item ...


3
4. Bukti Kerja
Untuk mengimplementasikan server stempel waktu terdistribusi pada basis peer-to-peer, kita perlu
menggunakan sistem proof-of-work yang mirip dengan Hashcash milik Adam Back [6], bukan
koran atau posting Usenet. Proof-of-work melibatkan pemindaian nilai yang ketika di-hash, seperti
pada SHA-256, hash dimulai dengan sejumlah bit nol. Rata-rata pekerjaan yang dibutuhkan adalah
eksponensial dalam jumlah bit nol yang dibutuhkan dan dapat diverifikasi dengan mengeksekusi
satu hash.
Untuk jaringan stempel waktu kami, kami mengimplementasikan proof-of-work dengan
menambah nonce di blok sampai nilai yang ditemukan yang memberikan hash blok tersebut bit
nol yang diperlukan. Setelah usaha CPU dikeluarkan untuk membuatnya memenuhi proof-of-
work, blok tidak dapat diubah tanpa mengulang pekerjaan. Karena blok-blok selanjutnya dirantai
setelahnya, pekerjaan untuk mengubah blok tersebut akan mencakup pengulangan semua blok
setelahnya.

Blokir Blokir

Prev Hash Nonce Prev Hash Nonce

Tx Tx ... Tx Tx ...

Proof-of-work juga memecahkan masalah dalam menentukan representasi dalam pengambilan


keputusan mayoritas. Jika mayoritas didasarkan pada satu-IP-alamat-satu-suara, maka dapat
ditumbangkan oleh siapa pun yang mampu mengalokasikan banyak IP. Proof-of-work pada
dasarnya adalah satu-CPU-satu-suara. Keputusan mayoritas diwakili oleh rantai terpanjang, yang
memiliki upaya proof-of-work terbesar yang diinvestasikan di dalamnya. Jika mayoritas kekuatan
CPU dikendalikan oleh node yang jujur, rantai yang jujur akan tumbuh paling cepat dan
melampaui rantai y a n g bersaing. Untuk memodifikasi sebuah blok yang sudah lewat, seorang
penyerang h a r u s mengulang proses proof-of-work dari blok tersebut dan semua blok setelahnya,
lalu mengejar dan melampaui kerja dari node-node yang jujur. Kami akan menunjukkan nanti
bahwa probabilitas penyerang yang lebih lambat untuk mengejar ketertinggalan akan berkurang
secara eksponensial ketika blok-blok berikutnya ditambahkan.
Untuk mengimbangi peningkatan kecepatan perangkat keras dan minat yang berbeda-beda
dalam menjalankan node dari waktu ke waktu, tingkat kesulitan proof-of-work ditentukan oleh
rata-rata bergerak yang menargetkan jumlah rata-rata blok per jam. Jika blok-blok tersebut dibuat
terlalu cepat, maka tingkat kesulitannya akan meningkat.

5. Jaringan
Langkah-langkah untuk menjalankan jaringan adalah sebagai berikut:

1) Transaksi baru disiarkan ke semua node.


2) Setiap node mengumpulkan transaksi baru ke dalam sebuah blok.
3) Setiap node bekerja untuk menemukan bukti kerja yang sulit untuk bloknya.
4) Ketika sebuah node menemukan proof-of-work, node tersebut akan menyiarkan blok tersebut
ke semua node.
5) Node menerima blok hanya jika semua transaksi di dalamnya valid dan belum dibelanjakan.
6) Node mengekspresikan penerimaan mereka terhadap blok tersebut dengan membuat blok
berikutnya dalam rantai, menggunakan hash dari blok yang diterima sebagai hash
sebelumnya.

Node selalu menganggap rantai terpanjang sebagai rantai yang benar dan akan terus bekerja
untuk memperpanjangnya. Jika dua node menyiarkan versi yang berbeda dari blok berikutnya
secara bersamaan, beberapa node mungkin akan menerima salah satunya terlebih dahulu. Dalam
4
hal ini, mereka akan mengerjakan yang pertama kali mereka terima, tetapi menyimpan cabang
yang lain untuk berjaga-jaga jika cabang tersebut menjadi lebih panjang. Ikatan akan terputus
ketika proof-of-work berikutnya ditemukan dan salah satu cabang menjadi lebih panjang; node
yang bekerja pada cabang yang lain kemudian akan beralih ke cabang yang lebih panjang.

5
Siaran transaksi baru tidak harus mencapai semua node. Selama mereka mencapai banyak
node, mereka akan masuk ke dalam blok tidak lama kemudian. Siaran blok juga toleran terhadap
pesan yang terputus. Jika sebuah node tidak menerima sebuah blok, node tersebut akan
memintanya ketika menerima blok berikutnya dan menyadari bahwa ia melewatkan satu blok.

6. Insentif
Sesuai dengan konvensi, transaksi pertama dalam sebuah blok adalah transaksi khusus yang
memulai koin baru yang dimiliki oleh pencipta blok tersebut. Hal ini menambah insentif bagi node
untuk mendukung jaringan, dan menyediakan cara untuk mendistribusikan koin ke dalam
sirkulasi, karena tidak ada otoritas pusat yang mengeluarkannya. Penambahan jumlah koin baru
yang konstan secara konstan dapat dianalogikan seperti penambang emas yang mengeluarkan
sumber daya untuk menambahkan emas ke dalam sirkulasi. Dalam kasus kita, waktu CPU dan
listrik yang dikeluarkan.
Insentif juga dapat didanai dengan biaya transaksi. Jika nilai output dari sebuah transaksi lebih
kecil dari nilai inputnya, selisihnya adalah biaya transaksi yang ditambahkan ke nilai insentif dari
blok yang berisi transaksi tersebut. Setelah sejumlah koin yang telah ditentukan telah beredar,
insentif dapat beralih sepenuhnya ke biaya transaksi dan sepenuhnya bebas dari inflasi.
Insentif ini dapat membantu mendorong node untuk tetap jujur. Jika seorang penyerang yang
serakah dapat mengumpulkan lebih banyak daya CPU daripada semua node yang jujur, dia harus
memilih antara menggunakannya untuk menipu orang dengan mencuri kembali pembayarannya,
atau menggunakannya untuk menghasilkan koin baru. Dia seharusnya merasa lebih
menguntungkan untuk bermain sesuai aturan, aturan yang menguntungkannya dengan lebih
banyak koin baru daripada gabungan koin orang lain, daripada merusak sistem dan keabsahan
kekayaannya sendiri.

7. Mengambil Kembali Ruang Disk


Setelah transaksi terakhir dalam sebuah koin terkubur di bawah blok yang cukup, transaksi yang
sudah lewat akan dibuang untuk menghemat ruang penyimpanan. Untuk memfasilitasi hal ini
tanpa merusak hash blok, transaksi di-hash dalam Pohon Merkle [7][2][5], dengan hanya akar
yang dimasukkan dalam hash blok. Blok-blok lama dapat dipadatkan dengan memotong cabang-
cabang pohon. Hash bagian dalam tidak perlu disimpan.

Blokir Blokir
Tajuk Blok (Blok Hash) Tajuk Blok (Blok Hash)

Prev Hash Nonce Prev Hash Nonce

Root Hash Root Hash

Hash01 Hash23 Hash01 Hash23

Hash0 Hash1 Hash2 Hash3 Hash2 Hash3

Tx0 Tx1 Tx2 Tx3 Tx3


Transaksi Terhash dalam Pohon Merkle Setelah Pemangkasan Tx0-2 dari Blok

Header blok tanpa transaksi akan menjadi sekitar 80 byte. Jika kita mengasumsikan bahwa
blok dibuat setiap 10 menit, 80 byte * 6 * 24 * 365 = 4,2MB per tahun. Dengan sistem komputer
yang biasanya dijual dengan RAM 2GB pada tahun 2008, dan Hukum Moore memprediksi
pertumbuhan saat ini sebesar
1,2GB per tahun, penyimpanan seharusnya tidak menjadi masalah, bahkan jika header blok harus
6
disimpan dalam memori.

7
8. Verifikasi Pembayaran yang Disederhanakan
Memverifikasi pembayaran dapat dilakukan tanpa harus menjalankan seluruh node jaringan.
Seorang pengguna hanya perlu menyimpan salinan header blok dari rantai proof-of-work
terpanjang, yang dapat diperolehnya dengan menanyakan kepada node jaringan sampai dia yakin
bahwa dia memiliki rantai terpanjang, dan mendapatkan cabang Merkle yang menghubungkan
transaksi ke blok yang dicap waktunya. Dia tidak dapat memeriksa transaksi tersebut untuk dirinya
sendiri, tetapi dengan menghubungkannya ke suatu tempat dalam rantai, dia dapat melihat bahwa
node jaringan telah menerimanya, dan blok yang ditambahkan setelahnya akan mengonfirmasi
bahwa jaringan telah menerimanya.

Rantai Bukti Kerja Terpanjang

Header Blok Header Blok Header Blok

Prev Hash Nonce Prev Hash Nonce Prev Hash Nonce

Akar Merkle Akar Merkle Akar Merkle

Hash01 Hash23

Cabang Merkle untuk Tx3

Hash2 Hash3

Tx3

Dengan demikian, verifikasi ini dapat diandalkan selama node yang jujur mengendalikan
jaringan, tetapi lebih rentan jika jaringan dikuasai oleh penyerang. Walaupun node jaringan dapat
memverifikasi transaksi untuk diri mereka sendiri, metode yang disederhanakan ini dapat tertipu
oleh transaksi yang dibuat oleh penyerang selama penyerang dapat terus menguasai jaringan.
Salah satu strategi untuk melindungi dari hal ini adalah dengan menerima peringatan dari node
jaringan ketika mereka mendeteksi blok yang tidak valid, meminta perangkat lunak pengguna
untuk mengunduh blok penuh dan memperingatkan transaksi untuk mengkonfirmasi
ketidaksesuaian. Bisnis yang sering menerima pembayaran mungkin masih ingin menjalankan
node mereka sendiri untuk keamanan yang lebih independen dan verifikasi yang lebih cepat.

9. Menggabungkan dan Memisahkan Nilai


Meskipun memungkinkan untuk menangani koin secara individual, akan sangat sulit untuk
melakukan transaksi terpisah untuk setiap sen dalam sebuah transfer. Untuk memungkinkan nilai
dibagi dan digabungkan, transaksi mengandung beberapa input dan output. Biasanya akan ada satu
input dari transaksi sebelumnya yang lebih besar atau beberapa input yang menggabungkan
jumlah yang lebih kecil, dan paling banyak dua output: satu untuk pembayaran, dan satu lagi
untuk mengembalikan uang kembalian, jika ada, kepada pengirim.

Transaksi

Dal Kelu
am ar.
Dal ...
am
...

Perlu dicatat bahwa fan-out, di mana sebuah transaksi bergantung pada beberapa transaksi, dan
transaksi-transaksi tersebut bergantung pada banyak transaksi lainnya, tidak menjadi masalah di
8
sini. Tidak pernah ada kebutuhan untuk mengekstrak salinan lengkap dari riwayat transaksi.

9
10. Privasi
Model perbankan tradisional mencapai tingkat privasi dengan membatasi akses informasi kepada
pihak yang terlibat dan pihak ketiga yang dipercaya. Keharusan untuk mengumumkan semua
transaksi kepada publik menghalangi metode ini, tetapi privasi masih dapat dipertahankan dengan
memutus aliran informasi di tempat lain: dengan menjaga kunci publik tetap anonim. Publik dapat
melihat bahwa seseorang mengirimkan sejumlah uang kepada orang lain, tetapi tanpa informasi
yang menghubungkan transaksi tersebut kepada siapapun. Hal ini mirip dengan tingkat informasi
yang dikeluarkan oleh bursa saham, di mana waktu dan ukuran dari setiap transaksi, "rekaman",
dipublikasikan, tetapi tanpa memberitahukan siapa saja yang bertransaksi.

Model Privasi Tradisional

Identitas Transaksi Pihak Rekanan Publik


Ketiga
Terpercaya

Model Privasi Baru

Identitas Transaksi Publik

Sebagai firewall tambahan, pasangan kunci baru harus digunakan untuk setiap transaksi agar
tidak terhubung dengan pemilik yang sama. Beberapa penautan masih tidak dapat dihindari
dengan transaksi multi-input, yang tentu saja mengungkapkan bahwa input mereka dimiliki oleh
pemilik yang sama. Resikonya adalah jika pemilik dari sebuah kunci terungkap, penautan dapat
mengungkapkan transaksi lain yang dimiliki o l e h pemilik yang sama.

11. Perhitungan
Kami mempertimbangkan skenario penyerang yang mencoba untuk membuat rantai alternatif
lebih cepat daripada rantai yang jujur. Bahkan jika hal ini berhasil, hal ini tidak membuat sistem
terbuka terhadap perubahan yang sewenang-wenang, seperti menciptakan nilai secara tiba-tiba
atau mengambil uang yang tidak pernah menjadi milik penyerang. Node tidak akan menerima
transaksi yang tidak valid sebagai pembayaran, dan node yang jujur tidak akan pernah menerima
blok yang berisi transaksi tersebut. Seorang penyerang hanya dapat mencoba mengubah salah satu
transaksinya sendiri untuk mengambil kembali uang yang baru saja ia belanjakan.
Perlombaan antara rantai jujur dan rantai penyerang dapat dikarakteristikkan sebagai Binomial
Random Walk. Kejadian sukses adalah rantai jujur diperpanjang satu blok, meningkatkan
keunggulannya sebesar +1, dan kejadian gagal adalah rantai penyerang diperpanjang satu blok,
mengurangi jarak sebesar -1.
Probabilitas penyerang untuk mengejar ketertinggalan dari defisit yang diberikan dapat
dianalogikan dengan masalah Kehancuran Penjudi. Misalkan seorang penjudi dengan kredit tak
terbatas memulai dengan defisit dan memainkan percobaan dalam jumlah tak terbatas untuk
mencoba mencapai titik impas. Kita dapat menghitung probabilitas dia mencapai titik impas, atau
penyerang dapat mengejar rantai yang jujur, sebagai berikut [8]:

p = probabilitas sebuah simpul yang jujur menemukan blok berikutnya


q = probabilitas penyerang menemukan blok berikutnya
qz = probabilitas penyerang akan mengejar dari z blok di belakang

qz
={ 1 jika
(q / p)z jika p�q p≤q}
10
Dengan asumsi kita bahwa p > q, probabilitasnya turun secara eksponensial seiring bertambahnya
jumlah blok yang harus dikejar oleh penyerang. Dengan peluang yang tidak menguntungkannya,
jika dia tidak melakukan serangan yang beruntung ke depan sejak awal, peluangnya menjadi
semakin kecil saat dia semakin tertinggal.
Kita sekarang mempertimbangkan berapa lama penerima transaksi baru harus menunggu
sebelum merasa yakin bahwa pengirim tidak dapat mengubah transaksi. Kita asumsikan bahwa
pengirim adalah penyerang yang ingin membuat penerima percaya bahwa dia membayarnya untuk
sementara waktu, kemudian mengubahnya untuk membayar kembali kepada dirinya sendiri
setelah beberapa waktu berlalu. Penerima akan diberi tahu ketika hal itu terjadi, tetapi pengirim
berharap hal itu sudah terlambat.
Penerima membuat pasangan kunci baru dan memberikan kunci publik kepada pengirim sesaat
sebelum penandatanganan. Hal ini mencegah pengirim untuk mempersiapkan rantai blok
sebelumnya dengan mengerjakannya secara terus menerus sampai ia cukup beruntung untuk
mendapatkan cukup banyak blok, kemudian mengeksekusi transaksi pada saat itu juga. Setelah
transaksi terkirim, pengirim yang tidak jujur mulai bekerja secara rahasia pada rantai paralel yang
berisi versi alternatif dari transaksinya.
Penerima menunggu sampai transaksi ditambahkan ke sebuah blok dan z blok telah terhubung
setelahnya. Dia tidak mengetahui jumlah pasti dari kemajuan yang telah dibuat oleh penyerang,
tetapi dengan mengasumsikan bahwa blok-blok yang jujur membutuhkan waktu rata-rata yang
diharapkan per blok, potensi kemajuan penyerang akan menjadi sebuah distribusi Poisson dengan
nilai yang diharapkan:

q
λ=z
p

Untuk mendapatkan probabilitas bahwa penyerang masih bisa mengejar ketertinggalannya


sekarang, kita mengalikan densitas Poisson untuk setiap jumlah kemajuan yang bisa dia capai
dengan probabilitas dia bisa mengejar ketertinggalannya dari titik tersebut:

{ }
∞ k e−λ ⋅ (q / p) (z − k ) jika k ≤ z
∑λ k! 1 jika k
k =0
�z
Mengatur ulang untuk menghindari penjumlahan ekor distribusi yang tak terbatas...
z λk e-λ (z- k)

1- k!
(1-(q / p) )

k =0

Mengonversi ke kode C...

#include <math.h>
double AttackerSuccessProbability(double q, int z)
{
p ganda = 1,0 - q;
double lambda = z * (q / p);
double sum = 1.0;
int i, k;
for (k = 0; k <= z; k++)
{
double poisson = exp(-lambda);
for (i = 1; i <= k; i++)
poisson *= lambda / i;
sum -= poisson * (1 - pow(q / p, z - k));
}
jumlah pengembalian;
11
}

12
Menjalankan beberapa hasil, kita dapat melihat probabilitas turun secara eksponensial dengan z.

q=0.1
z=0 P=1.0000000
z=1 P=0.2045873
z=2 P=0.0509779
z=3 P=0.0131722
z=4 P=0.0034552
z=5 P=0.0009137
z=6 P=0.0002428
z=7 P=0.0000647
z=8 P=0.0000173
z=9 P=0.0000046
z=10 P=0.0000012

q=0.3
z=0 P=1.0000000
z=5 P=0.1773523
z=10 P=0.0416605
z=15 P=0.0101008
z=20 P=0.0024804
z=25 P=0.0006132
z=30 P=0.0001522
z=35 P=0.0000379
z=40 P=0.0000095
z=45 P=0.0000024
z=50 P=0.0000006

Pemecahan untuk P kurang dari 0,1%...

P <0,001
q=0,10 z=5
q=0.15 z=8
q=0.20 z=11
q=0.25 z=15
q=0.30 z=24
q=0.35 z=41
q=0.40 z=89
q=0.45 z=340

12. Kesimpulan
Kami telah mengusulkan sebuah sistem untuk transaksi elektronik tanpa bergantung pada
kepercayaan. Kami memulai dengan kerangka kerja koin biasa yang terbuat dari tanda tangan
digital, yang memberikan kontrol yang kuat terhadap kepemilikan, tetapi tidak lengkap tanpa cara
untuk mencegah pembelanjaan ganda. Untuk mengatasi hal ini, kami mengusulkan sebuah
jaringan peer-to-peer yang menggunakan proof-of-work untuk mencatat riwayat transaksi publik
yang dengan cepat menjadi tidak praktis untuk diubah oleh penyerang jika node-node yang jujur
mengontrol mayoritas daya CPU. Jaringan ini kuat dalam kesederhanaannya yang tidak
terstruktur. Node bekerja secara bersamaan dengan sedikit koordinasi. Mereka tidak perlu
diidentifikasi, karena pesan tidak diarahkan ke tempat tertentu dan hanya perlu dikirimkan
berdasarkan upaya terbaik. Node dapat meninggalkan dan bergabung kembali dengan jaringan
s e s u k a h a t i , menerima rantai bukti kerja sebagai bukti dari apa yang terjadi saat mereka
pergi. Mereka memberikan suara dengan kekuatan CPU mereka, mengekspresikan penerimaan
mereka terhadap blok yang valid dengan bekerja untuk memperpanjangnya dan menolak blok
yang tidak valid dengan menolak untuk mengerjakannya. Aturan dan insentif yang dibutuhkan
dapat ditegakkan dengan mekanisme konsensus ini.

13
Referensi
[1] W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998.
[2] H. Massias, X.S. Avila, dan J.-J. Quisquater, "Desain dari sebuah layanan timestamping yang aman
dengan persyaratan kepercayaan yang minimal," Dalam Simposium ke-20 tentang Teori Informasi
di Benelux, Mei 1999.
[3] S. Haber, W.S. Stornetta, "Bagaimana cara memberi stempel waktu pada dokumen digital," Dalam
Journal of Cryptology, vol 3, no 2, halaman 99-111, 1991.
[4] D. Bayer, S. Haber, W.S. Stornetta, "Meningkatkan efisiensi dan keandalan digital time-stamping,"
Dalam Sequences II: Methods in Communication, Security and Computer Science, halaman 329-334,
1993.
[5] S. Haber, W.S. Stornetta, "Secure names for bit-strings," Dalam Prosiding Konferensi ACM ke-4
tentang Keamanan Komputer dan Komunikasi, halaman 28-35, April 1997.
[6] A. Back, "Hashcash - sebuah tindakan balasan penolakan
layanan," http://www.hashcash.org/papers/hashcash.pdf,
2002.
[7] R.C. Merkle, "Protokol untuk kriptosistem kunci publik," Dalam Proc. 1980 Simposium
Keamanan dan Privasi, IEEE Computer Society, halaman 122-133, April 1980.
[8] W. Feller, "Pengantar teori probabilitas dan aplikasinya," 1957.

14

You might also like