MSTR Cat

Blockchain/Tahap II · Mekanisme/2.2 Transaksi/Pelajaran 7

Kitaran hidup sesuatu transaksi

Dari tandatangan hingga muktamad: bagaimana transaksi bergerak merentasi rangkaian

BahanLaman web mempool.spacePeneroka blok untuk menjejak kedalaman pengesahan

Ingin tahu

  1. Mengapa sebuah nod perlu mengesahkan transaksi sebelum ia mengetahui sama ada transaksi itu akan dilombong?
  2. Apa yang menjadikan satu blok lebih “sebenar” daripada yang lain apabila kedua-duanya muncul pada masa yang sama?
  3. Mengapa enam pengesahan menjadi satu konvensyen, dan bilakah jumlah itu terlalu banyak atau terlalu sedikit?

Teroka

  1. Perjalanan ini bermula dalam perisian dompet. Pengguna memilih output transaksi yang belum dibelanjakan (UTXO) tertentu untuk menampung pembayaran dan yuran. Dompet membina objek transaksi baharu, dengan mentakrifkan input yang merujuk kepada output sebelumnya melalui ID transaksi dan indeksnya, serta output yang memperuntukkan nilai kepada alamat penerima atau alamat baki. Setiap input ditandatangani dengan kunci peribadi yang sepadan dengan skrip penguncinya, menghasilkan tandatangan digital yang membuktikan pemilikan tanpa mendedahkan kunci itu sendiri.
  2. Transaksi yang telah ditandatangani sepenuhnya diserialkan ke dalam format binari dan disiarkan kepada peer yang bersambung melalui rangkaian peer-to-peer. Setelah menerimanya, setiap nod melakukan validasi secara bebas berdasarkan peraturan konsensus: ia memeriksa bahawa input menampung output, mengesahkan tandatangan kriptografi, memastikan tiada perbelanjaan berganda terhadap UTXO sedia ada, dan memvalidasi logik skrip. Jika sah mengikut dasar (policy), nod tersebut menambah transaksi itu ke dalam mempool tempatannya dan mengumumkannya kepada peer melalui mesej ‘inv’ (inventori); peer yang belum memilikinya akan meminta transaksi penuh menggunakan ‘getdata’.
  3. Pelombong sentiasa memantau mempool mereka untuk mencari transaksi yang menguntungkan. Mereka memilih satu set transaksi berkadar yuran tinggi untuk dimasukkan ke dalam templat blok calon, yang turut mengandungi transaksi coinbase yang memberikan subsidi blok semasa serta yuran yang dikutip. Pelombong kemudian melaksanakan bukti kerja (PoW), iaitu melakukan hash terhadap header blok berulang kali sehingga menemui hash yang memenuhi sasaran kesukaran semasa rangkaian. Kerja itu menjadikan blok mahal untuk dihasilkan tetapi murah untuk disahkan; setelah ditemui, blok tersebut disiarkan ke seluruh rangkaian.
  4. Nod yang menerima blok baharu mengesahkan bukti kerjanya dan kesahan transaksinya sebelum menambahkannya ke salinan tempatan rantaian mereka. Transaksi dalam blok ini kini dianggap disahkan pada kedalaman satu. Input transaksi tersebut ditandakan sebagai telah dibelanjakan dalam set UTXO, dan outputnya menjadi tersedia untuk dibelanjakan kelak selepas sebarang tempoh kunci masa (lock-time) atau tempoh matang yang diperlukan berlalu. Jika blok pesaing muncul pada ketinggian yang sama, nod mengikuti cabang yang mengumpul kerja paling banyak; jika penyusunan semula (reorg) yang singkat menggantikan sesebuah blok, transaksinya kembali ke mempool melainkan cabang baharu sudah memasukkannya.
  5. Keselamatan meningkat dengan setiap blok berikutnya yang ditambah di atas blok yang mengesahkan transaksi tersebut. Jadual dalam kertas putih menunjukkan bahawa penyerang yang memiliki 10% kuasa hash mempunyai peluang kurang daripada 0.1% untuk mengejar dari kedudukan lima blok di belakang. Enam pengesahan, kira-kira satu jam, menjadi konvensyen biasa hasil analisis sebegini, walaupun risiko sebenar bergantung pada bahagian kuasa penyerang dan jumlah yang dipertaruhkan. Walaupun sesetengah peniaga menerima pembayaran tanpa pengesahan untuk jumlah kecil, pemindahan yang lebih besar biasanya menunggu beberapa pengesahan untuk mengurangkan risiko serangan perbelanjaan berganda melalui penyusunan semula rantaian.
  6. Transaksi coinbase, yang mencipta bitcoin baharu daripada ganjaran perlombongan dan yuran, mempunyai sekatan khas: outputnya tidak boleh dibelanjakan sehingga mendapat 100 pengesahan. Peraturan ini wujud kerana output coinbase akan lenyap jika bloknya digantikan dalam penyusunan semula; kelewatan ini menghalang syiling tersebut daripada tersebar ke dalam transaksi kemudian yang akhirnya akan menjadi tidak sah. Bagi pemindahan biasa antara pengguna, tiada kelewatan sedemikian; setelah disahkan, output tersebut secara teknikal boleh dibelanjakan, walaupun menunggu pengesahan tambahan merupakan keputusan pengurusan risiko berdasarkan nilai yang dipertaruhkan dan andaian kepercayaan.

Fakta utama

  • Nod mengesahkan transaksi berdasarkan peraturan konsensus sebelum menambahkannya ke dalam mempool mereka.
  • Kesahan sesebuah blok bergantung pada bukti kerjanya memenuhi sasaran kesukaran semasa.
  • Enam pengesahan (kira-kira satu jam) ialah konvensyen biasa, bukan peraturan protokol.
  • Output coinbase memerlukan tempoh matang 100 blok sebelum boleh dibelanjakan.
  • Dalam penyusunan semula, transaksi biasa daripada blok yang digantikan kembali ke mempool melainkan ia bercanggah dengan cabang baharu; coinbase blok itu lenyap.
  • Nod mengumumkan transaksi baharu melalui mesej ‘inv’ dan menghantarnya apabila diminta (‘getdata’).

Latihan sembilan, enam, tiga, satu

9KumpulSenaraikan 9 peringkat atau peristiwa berbeza dalam kitaran hayat sesuatu transaksi, dari penciptaan hingga muktamad.
6KelompokkanKumpulkan 9 peringkat ini kepada 6 fasa: pembinaan, validasi, penyebaran, perlombongan, pengesahan (confirmation), dan keadaan selepas pengesahan.
3SaringKurangkan 6 fasa tersebut kepada 3 titik semak kritikal di mana rangkaian menguatkuasakan keselamatan atau konsensus.
1KristalkanTulis 1 ayat yang menerangkan mengapa mengikuti rantaian dengan kerja terbanyak dapat menyelesaikan konflik antara blok-blok yang bersaing.

Semakan fakta

Tarikh, angka dan dakwaan telah disemak berbanding dengan sumber yang diterbitkan yang disenaraikan di bawah.

Buka dalam akademi interaktif →

EN PT ES ZH JA KO RU DE FR