Sekarang, mari kita pergi dari Infocoin dan beralih ke protokol Bitcoin yang sebenarnya. Bitcoin tidak jauh berbeda dengan Infocoin yang baru saja kami bangun secara bertahap, kecuali satu perubahan yang jelas.
Untuk menggunakan Bitcoin, pertama Anda harus menginstal dompet di komputer Anda. Untuk pemahaman yang lebih baik, gambar di bawah ini adalah screenshot dari dompet yang disebut Multibit. Di pojok kiri atas, Anda dapat melihat saldo Bitcoin naik menjadi 0.06555555 Bitcoin, yang menurut gambar pada saat itu bernilai hampir $ 70.
Katakanlah Anda seorang pedagang, Anda telah menyiapkan toko online, dan Anda memutuskan untuk mengizinkan pelanggan membayar dengan Bitcoin. Yang perlu Anda lakukan adalah membuat alamat Bitcoin baru dengan program dompet Anda.
Anda kemudian mengirim alamat Bitcoin Anda ke orang yang akan membayar Anda. Anda dapat menggunakan kotak email, atau langsung ke halaman web Anda. Ini aman karena alamat Anda hanyalah kunci publik yang telah di-hash, dan Anda dapat dengan aman mengungkapkan kepada siapa pun (tidak ada yang bisa mendapatkan kunci pribadi Anda melalui itu).
Sekarang orang yang siap membayar perlu membuat transaksi baru. Mari kita lihat data transaksi yang benar-benar ditransfer ke 0.319 bitcoin. Di bawah ini ini adalah data yang hampir asli, dengan tiga perubahan di sini: 1) data tidak berlanjut; 2) nomor baris ditambahkan untuk pemahaman yang lebih baik; 3) menghapus string panjang angka dari data hash, hanya menyimpan 6 digit pertama.
1. {"hash":"7c4025...",
2. "ver":1,
3. "vin_sz":1,
4. "vout_sz":1,
5. "lock_time":0,
6. "size":224,
7. "in":[
8. {"prev_out":
9. {"hash":"2007ae...",
10. "n":0},
11. "scriptSig":"304502... 042b2d..."}],
12. "out":[
13. {"value":"0.31900000",
14. "scriptPubKey":"OP_DUP OP_HASH160 a7db6f OP_EQUALVERIFY OP_CHECKSIG"}]}
Mari kita jelaskan secara rinci.
Baris 1, nilai hash transaksi ((16 dalam sistem), dia adalah satu-satunya tanda yang digunakan untuk mewakili transaksi tersebut.
Baris kedua, memberitahu kita bahwa transaksi ini menggunakan versi pertama dari protokol Bitcoin.
Baris 3, 4, memberitahu kita bahwa transaksi ini memiliki satu input dan satu output.
Baris ke-5, adalah waktu kunci (lock_time), yang dapat digunakan untuk mengontrol kapan transaksi ini selesai. Saat ini sebagian besar transaksi Bitcoin memiliki waktu kunci 0, yaitu segera selesai.
Baris ke-6 memberi tahu kita berapa banyak byte ukuran transaksi ini, perhatikan, ini bukan uang transaksi.
Garis 7 sampai 11, yang mendefinisikan bagian input dari transaksi ini, tepatnya, garis 8 sampai 10 memberi tahu kita bahwa nilai input untuk memindahkan uang ini adalah uang yang berasal dari nilai output transaksi sebelumnya. Itu 2007ae... adalah hash value 16-input dari transaksi sebelumnya, yang digunakan untuk menunjukkan satu transaksi ke atas. n = 0 mengatakan bahwa ini adalah output pertama dalam transaksi sebelumnya, kita akan melihat beberapa input dan output seperti apa dalam beberapa saat, jadi sekarang tidak perlu khawatir.
Bagian input di sini adalah penting karena tidak mengatakan berapa banyak Bitcoin dari transaksi sebelumnya yang akan ditransfer ke transaksi berikutnya. Sebenarnya, semua Bitcoin dalam output n = 0 dalam transaksi sebelumnya telah ditransfer. Misalnya, jika output pertama n = 0 dalam transaksi sebelumnya memiliki 2 Bitcoin, maka kedua Bitcoin tersebut akan dihabiskan dalam transaksi baru ini. Ini terlihat sangat tidak nyaman, seperti membeli roti dengan uang tunai $ 20. Solusinya adalah dengan menyediakan mekanisme uang nol, yang dapat diselesaikan dengan beberapa cara input dan output, yang akan dibahas di bagian berikutnya.
Garis 12 sampai 14, bagian ini mendefinisikan output transaksi. Secara khusus, baris 13 memberi tahu kita jumlah uang yang diekspor, yaitu 0.319 bitcoin. Garis 14 agak rumit, dan penting untuk dicatat bahwa string a7db6f... adalah alamat yang akan ditagih bitcoin. Garis ini sebenarnya adalah bagian dari bahasa skrip bitcoin, di mana tidak ada detail tentang bahasa skrip.
Sekarang, Anda dapat melihat bagaimana Bitcoin memecahkan masalah di mana nomor deret bitcoin berasal yang telah kita sebutkan sebelumnya. Pertama, Bitcoin bukan koin yang terpisah, tetapi transaksi yang ada dalam blockchain. Kedua, dengan cara ini, kita tidak memerlukan lembaga pusat untuk mengeluarkan nomor deret.
Kita bisa terus melihat ke belakang dan ke belakang sepanjang rantai transaksi. Pada akhirnya, ada dua kemungkinan, pertama, Anda mungkin akan sampai pada transaksi Bitcoin pertama, yang ada dalam sebuah blok, yang kita sebut blok Genesis. Ini adalah transaksi khusus, tidak ada input, hanya 50 Bitcoin yang diekspor.
Hasil kedua yang dapat dilihat dari urutan rantai transaksi yang terus berlanjut mungkin adalah Anda mencapai transaksi yang dikenal sebagai tokencoinbase. Selain blok Genesis, setiap blok dimulai dengan transaksi coinbase khusus. Transaksi ini digunakan untuk memberi hadiah kepada penambang yang memverifikasi transaksi di blok ini.
Hal yang tidak jelas dari deskripsi di atas adalah apa sebenarnya yang ditandatangani secara digital dalam 11 baris. Cara yang paling jelas adalah meminta pembayar untuk menandatangani secara digital seluruh transaksi. Saat ini tidak dilakukan, beberapa transaksi diabaikan. Hal ini membuat sebagian transaksi memiliki plasticity, yaitu mereka dapat diubah di kemudian hari. Namun, konten plasticity ini tidak termasuk jumlah transaksi, pembayar dan penerima.
Pada bagian sebelumnya, kita berbicara tentang data transaksi yang hanya memiliki satu input dan satu output. Pada kenyataannya, sebagian besar transaksi Bitcoin memiliki beberapa input atau beberapa output. Mari kita lihat data awal dari transaksi ini.
1. {"hash":"993830...",
2. "ver":1,
3. "vin_sz":3,
4. "vout_sz":2,
5. "lock_time":0,
6. "size":552,
7. "in":[
8. {"prev_out":{
9. "hash":"3beabc...",
10. "n":0},
11. "scriptSig":"304402... 04c7d2..."},
12. {"prev_out":{
13. "hash":"fdae9b...",
14. "n":0},
15. "scriptSig":"304502... 026e15..."},
16. {"prev_out":{
17. "hash":"20c86b...",
18. "n":1},
19. "scriptSig":"304402... 038a52..."}],
20. "out":[
21. {"value":"0.01068000",
22. "scriptPubKey":"OP_DUP OP_HASH160 e8c306... OP_EQUALVERIFY OP_CHECKSIG"},
23. {"value":"4.00000000",
24. "scriptPubKey":"OP_DUP OP_HASH160 d644e3... OP_EQUALVERIFY OP_CHECKSIG"}]}
Seperti sebelumnya, kami menjelaskan satu baris, sebagian besar sama seperti yang baru saja kami jelaskan.
Baris 1, hash value transaksi, digunakan sebagai tanda unik transaksi tersebut.
Baris ke-2, versi protokol Bitcoin, edisi pertama.
Baris ketiga dan keempat adalah bahwa transaksi ini memiliki tiga input dan dua output.
Di baris ke-5, kunci waktu (seperti sebelumnya).
Baris ke-6, ukuran byte transaksi.
Baris 7 sampai 19, yang mendefinisikan semua input, masing-masing sesuai dengan output transaksi sebelumnya. Input pertama adalah baris 8 sampai 11. Format isinya sama dengan sebelumnya. Input kedua adalah baris 12 hingga 15, dan ketiga adalah baris 16 hingga 19.
Baris 20 sampai 24, yang mendefinisikan semua output, output pertama adalah baris 21 dan 22, dan seperti sebelumnya, baris 21 mengatakan bahwa ada 0.01068 bitcoin di dalamnya. Baris 22 adalah bahasa skrip Bitcoin. String e8c30622... adalah alamat penerima.
Sepertinya agak aneh, meskipun setiap output mencatat jumlah Bitcoin, namun tidak ada input. Tentu saja berapa banyak Bitcoin yang dapat diperoleh dari setiap input dari transaksi sebelumnya. Dalam transaksi Bitcoin biasa, jumlah nilai semua input lebih besar dari jumlah output yang ada (kecuali transaksi Genesis block dan Coinbase yang baru saja disebutkan), dan jika jumlah input lebih besar dari output, maka Bitcoin yang lebih banyak akan diberikan sebagai biaya transaksi kepada penambang di blok di mana transaksi ini terjadi.
Beberapa input dan output berfungsi untuk menemukan nol. Misalkan saya ingin memberi Anda 0.15 bitcoin. Saya dapat menghabiskan 0.2 bitcoin yang saya terima sebelumnya. Tentu saja, saya tidak ingin memberi Anda semua 0.2, jadi solusinya adalah, saya mengirimkan 0.15 bitcoin kepada Anda, dan kemudian mengirim 0.05 bitcoin ke alamat bitcoin lain saya sendiri.
Konsep dasar di balik Bitcoin bahkan jika sudah dijelaskan. Tentu saja, saya juga mengabaikan banyak detail. Ini bukan panduan resmi.
Meskipun aturan di balik Bitcoin sederhana dan mudah dimengerti, itu tidak berarti bahwa semua hasil yang mungkin dihasilkannya juga mudah dimengerti. Banyak lagi yang dapat dikatakan tentang Bitcoin, saya akan menjelaskan beberapa di artikel berikutnya.
Seberapa anonimnya Bitcoin? Banyak orang mengatakan bahwa Bitcoin dapat digunakan secara anonim. Pernyataan ini dibuat di pasar gelap seperti Silk Road. Namun, pernyataan ini adalah fiktif. Blockchain terbuka, yang berarti semua transaksi Bitcoin dapat dilihat oleh siapa pun. Meskipun alamat Bitcoin tidak secara langsung sesuai dengan identitas orang di dunia nyata, para ilmuwan komputer telah melakukan banyak pekerjaan untuk memecahkan jaringan sosial anonim. Blockchain adalah target terbaik mereka.
Apakah Anda bisa menjadi kaya dengan Bitcoin? Mungkin, Tim O'Reilly pernah mengatakan bahwa menghasilkan uang seperti pompa minyak di dalam mobil yang perlu Anda perhatikan, atau Anda akan terjebak di pinggir jalan tetapi hidup tidak berputar di sekitar pompa bensin! Wow, sebagian besar minat terhadap Bitcoin tampaknya berasal dari orang-orang yang tujuan hidup mereka hanyalah menemukan pompa bensin besar. Saya harus mengakui, ini membingungkan. Saya yakin lebih menarik, lebih menyenangkan, melihat Bitcoin atau mata uang digital lainnya sebagai alat untuk membentuk perilaku manusia yang baru.
Rincian yang saya abaikan: Meskipun artikel ini menjelaskan konsep utama di balik Bitcoin, ada banyak detail yang tidak saya sebutkan. Salah satunya adalah teknik hemat ruang yang luar biasa di dalam protokol, berdasarkan struktur data yang disebut pohon Merkle. Ini detail, tetapi itu adalah detail yang sangat menarik, dan jika Anda menyukai struktur data, itu layak untuk dilihat. Anda dapat mempelajari lebih lanjut melalui buku putih Bitcoin.
Skrip Bitcoin: Dalam artikel ini, saya menjelaskan Bitcoin sebagai mata uang elektronik online. Tetapi ini hanya bagian kecil dari cerita yang lebih besar dan menarik. Seperti yang kita lihat, setiap transaksi Bitcoin memiliki skrip Bitcoin. Skrip ini disederhanakan dalam artikel ini menjadi sesuatu yang mirip dengan kata-kata seperti "Aku akan memberi Alice 10 Bitcoin untuk Bob".
Jika Anda merasa membantu, saya sarankan Anda memberi tip kepada penulis artikel ini, Michael Nielsen, yang alamatnya adalah 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ, Anda juga dapat mengikuti dia di Twitter.
Selamat datang untuk mengikuti microblog penerjemah:
Artikel-artikel ini dikutip dari majalah Young People's Bible