Sekarang, mari kita beralih dari Infocoin ke protokol Bitcoin yang sebenar. Bitcoin tidak banyak berbeza dengan Infocoin yang baru sahaja kita bina, kecuali satu perubahan yang jelas.
Untuk menggunakan Bitcoin, anda perlu memasang dompet di dalam komputer anda. Untuk memberi anda pemahaman yang lebih baik, gambar di bawah adalah skrin dompet yang dikenali sebagai Multibit. Anda dapat melihat baki Bitcoin di sudut kiri atas dengan 0.06555555 bitcoin, yang berjumlah hampir $ 70 berdasarkan harga dagangan pada masa itu.

Katakanlah anda seorang peniaga, anda telah menyediakan sebuah kedai dalam talian, dan anda memutuskan untuk membenarkan pelanggan membayar dengan bitcoin. Yang perlu anda lakukan ialah menggunakan program dompet anda untuk menghasilkan alamat bitcoin yang baru. Ia akan secara automatik menghasilkan pasangan kunci awam dan peribadi, dan kemudian hash kunci awam anda untuk membentuk alamat bitcoin anda.

Kemudian anda menghantar alamat bitcoin anda kepada orang yang akan membayar anda. Anda boleh menghantarnya melalui e-mel, atau anda boleh memasukkannya ke laman web anda. Ia adalah selamat, kerana alamat anda hanyalah kunci awam yang di-hash, dan anda boleh dengan selamat mendedahkannya kepada sesiapa sahaja (tidak ada yang boleh mendapatkan kunci peribadi anda melalui itu). Saya akan menjelaskan mengapa alamat bitcoin menggunakan nilai hash kunci awam dan bukan kunci awam itu sendiri.
Sekarang orang yang bersedia membayar perlu membuat transaksi baru. Mari kita lihat data transaksi yang sebenarnya bertukar kepada 0.319 bitcoin. Di bawah ini adalah hampir data asal, dengan tiga perubahan di sini: 1) data tidak bersambung; 2) nombor baris ditambah, untuk pemahaman yang lebih baik; 3) data hash yang telah dihapuskan dari siri panjang angka, hanya mengekalkan 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 terperinci.
Baris 1, nilai hash dagangan ((16), adalah satu-satunya tanda yang digunakan untuk mewakili transaksi tersebut.
Baris 2 menunjukkan bahawa transaksi ini menggunakan protokol Bitcoin versi 1.
Baris 3 dan 4, memberitahu kita bahawa transaksi ini mempunyai satu input dan satu output.
Baris ke-5 adalah waktu kunci (lock_time) yang boleh digunakan untuk mengawal kapan transaksi ini akan selesai. Kebanyakan transaksi bitcoin kini mempunyai waktu kunci 0, iaitu segera menyelesaikan transaksi.
Baris 6, memberitahu kita berapa banyak byte dalam saiz transaksi ini. Perhatikan, ini bukan wang transaksi.
Baris 7 hingga 11, ini adalah bahagian input yang menentukan transaksi ini, dan sebenarnya, baris 8 hingga 10 memberitahu kita bahawa nilai input yang kita akan pindahkan adalah wang yang diperoleh dari nilai output transaksi sebelumnya. 2007ae… adalah hash 16 digit dari transaksi sebelumnya, untuk merujuk ke satu transaksi ke atas.
Yang perlu diperhatikan di bahagian input di sini ialah ia tidak mengatakan berapa banyak bitcoin yang akan ditransfer dari transaksi sebelumnya ke transaksi berikutnya. Sebenarnya, semua bitcoin dalam output n = 0 dalam transaksi sebelumnya telah ditransfer. Sebagai contoh, jika output pertama dalam transaksi sebelumnya (n = 0) mengandungi 2 bitcoin, maka kedua-dua bitcoin tersebut akan dibelanjakan dalam transaksi baru ini.
Baris 12 hingga 14, ini menentukan output transaksi. Secara khusus, baris 13 memberitahu kita jumlah wang yang dikeluarkan, iaitu 0.319 bitcoin. Baris 14 lebih rumit, perlu diperhatikan bahawa senar a7db6f … adalah alamat untuk menerima bitcoin.
Sekarang, anda dapat melihat bagaimana Bitcoin menyelesaikan masalah dari mana nombor siri yang kami sebutkan sebelumnya berasal. Pertama, Bitcoin bukanlah satu buah token yang berasingan, tetapi satu rangkaian transaksi yang wujud di dalam blockchain.
Kita boleh teruskan dan teruskan melalui rantaian transaksi. Pada akhirnya, ada dua kemungkinan, pertama, anda mungkin akan pergi ke transaksi bitcoin pertama, yang terdapat dalam satu blok, yang kita namakan sebagai blok Genesis. Ini adalah transaksi khusus, yang tidak ada input, hanya output 50 bitcoins.
Hasil kedua yang dapat dilihat berulang-ulang sepanjang rantaian pertukaran mungkin adalah anda tiba di satu transaksi yang dikenali sebagai coinbase. Setiap blok, kecuali blok Genesis, dimulakan dengan satu transaksi coinbase khusus.
Ia tidak jelas apa yang ditandatangani secara digital dalam 11 baris seperti yang dijelaskan di atas. Cara yang paling jelas adalah untuk membuat pembayar menandatangani keseluruhan transaksi secara digital. Ia tidak dilakukan sekarang, beberapa transaksi diabaikan.
Pada bahagian sebelum ini, kita telah membincangkan satu transaksi yang hanya mempunyai satu input dan satu output. Sebenarnya, kebanyakan transaksi bitcoin mempunyai beberapa input atau beberapa output.
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 sebelum ini, kami akan menerangkan secara berturut-turut, sebahagian besarnya sama seperti yang telah kami jelaskan sebelum ini.
Baris 1, nilai hash transaksi, digunakan sebagai satu-satunya tanda transaksi tersebut.
Baris 2, edisi protokol Bitcoin, edisi pertama.
Baris 3 dan 4 menunjukkan bahawa terdapat 3 input dan 2 output dalam transaksi ini.
Baris ke-5, kunci masa ((dan sama seperti sebelumnya)
Baris 6, saiz byte transaksi.
Baris 7 hingga 19, mendefinisikan semua input, masing-masing sesuai dengan output transaksi sebelumnya. Input pertama adalah baris 8 hingga 11.
Baris 20 hingga 24, menentukan semua output, output pertama adalah baris 21 dan 22, dan seperti sebelumnya, baris 21 mengatakan bahawa terdapat 0.01068 bitcoin di dalamnya. Baris 22 adalah bahasa skrip bitcoin.
Nampaknya agak pelik, walaupun setiap output mempunyai jumlah bitcoin yang direkodkan, input tidak. Sudah tentu, berapa banyak bitcoin yang boleh diperoleh dari setiap input dari urus niaga sebelumnya. Dalam urus niaga bitcoin biasa, jumlah semua nilai input lebih besar daripada jumlah output (kecuali untuk blok Genesis dan urus niaga coinbase yang baru-baru ini disebutkan), jika jumlah input lebih besar daripada output, maka bitcoin tambahan akan disediakan sebagai bayaran urus niaga kepada pelombong blok tempat urus niaga ini.
Berbilang input dan output berfungsi untuk mencari sifar. Katakan saya ingin memberikan anda 0.15 bitcoins. Saya boleh membelanjakan 0.2 bitcoins yang saya terima sebelum ini. Sudah tentu, saya tidak mahu memberikan anda semua 0.2, jadi solusinya adalah, saya menghantar 0.15 bitcoins kepada anda, dan kemudian saya menghantar 0.05 bitcoins kepada alamat bitcoin saya sendiri.
Konsep asas di sebalik bitcoin sudah dijelaskan. Sudah tentu, saya telah mengabaikan banyak perincian kerana ia bukan dokumen rasmi. Tetapi saya ingin menerangkan konsep di sebalik bitcoin yang biasa digunakan.
Walaupun peraturan-peraturan di sebalik bitcoin adalah mudah dan mudah difahami, ia tidak bermakna bahawa semua kemungkinan hasil yang dihasilkan oleh peraturan-peraturan ini juga mudah difahami. Terdapat banyak lagi yang boleh dikatakan mengenai bitcoin, dan saya akan mengulasnya dalam artikel yang akan datang.
Walaupun alamat Bitcoin tidak sepadan secara langsung dengan identiti orang di dunia nyata, para saintis komputer telah melakukan banyak kerja untuk memecahkan rahsia rangkaian sosial anonim. Blockchain adalah sasaran yang sangat baik bagi mereka. Saya akan terkejut jika dalam masa terdekat, identiti kebanyakan pengguna Bitcoin tidak dapat dikenal pasti dengan keyakinan yang relatif. Identiti ini tidak semestinya sepenuhnya disahkan, tetapi cukup untuk menawarkan potensi yang cukup besar. Selain itu, identiti ini hanya dapat dikesan, yang bermaksud bahawa orang-orang yang menjual dadah di Silk Road pada tahun 2011 masih dapat dijumpai pada tahun 2020.
Bolehkah anda menjadi kaya dengan Bitcoin? Mungkin boleh, Tim O’Reilly pernah berkata: Menjana wang adalah seperti tangki minyak di dalam kereta anda perlu berhati-hati atau anda akan terjebak di tepi jalan tetapi hidup tidak berputar di sekitar stesen minyak! Oh, kebanyakan minat terhadap Bitcoin nampaknya datang dari orang-orang yang matlamat hidup mereka hanyalah untuk mencari sebuah stesen minyak yang besar.
Perincian yang saya abaikan: Walaupun artikel ini menerangkan konsep utama di sebalik bitcoin, terdapat banyak perincian yang saya tidak sebutkan. Salah satunya adalah teknik penjimatan ruang yang hebat dalam protokol, berdasarkan struktur data yang dipanggil pokok Merkle. Ini adalah perincian, tetapi ini adalah perincian yang sangat hebat, dan jika anda suka struktur data, ia patut dilihat.
Skrip Bitcoin: Dalam artikel ini, saya menerangkan Bitcoin sebagai mata wang elektronik dalam talian. Tetapi ini hanya sebahagian kecil dari cerita yang lebih besar dan lebih menarik. Seperti yang kita lihat, setiap transaksi Bitcoin mempunyai bahasa skrip Bitcoin.
Jika anda rasa ia membantu, sila berikan tip kepada penulis artikel ini, Michael Nielsen, 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ, atau ikuti beliau di Twitter.
Kami juga mengalu-alukan penerjemah Weibo untuk memberi perhatian kepada kami:
Dipetik dari artikel oleh Jan Tsukasa