Setiap koin bitcoin terkunci oleh sebuah program. Program ini sangat kecil, sengaja dibuat sederhana, dan berjalan miliaran kali sehari tanpa ada yang menyadarinya. Bahasa yang digunakan untuk menulisnya disebut Script, dirancang oleh Satoshi bersamaan dengan yang lainnya, dan memahaminya berarti memahami apa yang sebenarnya dibuktikan oleh sebuah transaksi.
Script bekerja dengan cara menumpuk. Bayangkan tumpukan kertas di meja kasir kuno: hanya bisa menaruh satu lembar di atas dan hanya bisa mengambil lembaran dari atas. Setiap instruksi menumpuk data atau mengambil beberapa lembar dari atas, melakukan perhitungan dengan mereka, dan menumpuk hasilnya. Pada akhirnya, jika yang tersisa di atas adalah benar, pengeluaran tersebut sah.

Penting untuk membaca kunci pengaman paling umum dalam sejarah Bitcoin, P2PKH, baris demi baris. Ini mengatakan: gandakan yang ada di atas, hitung hash160 dari itu, tumpuk hash ini yang saya simpan, pastikan keduanya sama dan hentikan semuanya jika tidak, dan akhirnya periksa tandatangannya.
Orang yang akan membelanjakan mempersembahkan dua hal: tanda tangan dan kunci publik. Keduanya ditumpuk terlebih dahulu, dan kemudian kunci pengaman berjalan. Penggandaan ada karena kunci publik akan digunakan dua kali: satu untuk menjadi hash dan dibandingkan dengan alamat, satu lagi untuk memeriksa tanda tangan. Perbandingan hash adalah saat jaringan mengonfirmasi bahwa kunci publik tersebut benar-benar milik alamat tersebut. Pemeriksaan tanda tangan adalah saat mengonfirmasi bahwa orang yang mempersembahkan kunci juga memiliki kunci pribadi yang sesuai.
Perhatikan apa yang baru saja terjadi. Dua pertanyaan dari Modul 4 — apakah alamat ini milik kunci ini, dan apakah tanda tangan ini milik kunci ini — bukanlah aturan tersembunyi dalam program node. Mereka tertulis, dalam bentuk miniatur, di dalam koin itu sendiri.
Format modern, P2WPKH, melakukan hal yang sama dengan lebih sedikit kata. Kunci pengaman hanya menjadi penanda versi diikuti oleh hash160, dan tanda tangan serta kunci publik berada di area terpisah dari transaksi, yaitu saksi. Node mengenali pola tersebut dan menerapkan verifikasi yang sama tanpa perlu dituliskan. Lebih sedikit byte, jaminan yang sama, biaya lebih rendah.
Sekarang yang paling penting: apa yang tidak dilakukan oleh Script. Script tidak memiliki loop pengulangan. Tidak ada instruksi yang kembali ke belakang, tidak ada program yang dapat menjalankan bagian yang sama dua kali. Setiap eksekusi berakhir, dan berakhir dengan cepat, di node mana pun di dunia. Batasan ini bukan karena malas dalam merancang: ini yang menjamin bahwa memverifikasi sebuah blok memerlukan waktu yang dapat diprediksi, dan tidak ada yang dapat menghentikan jaringan dengan menulis kunci pengaman yang tidak pernah berakhir.

Script juga tidak melihat apa pun di luar transaksi. Tidak mengetahui tanggal hari ini dari jam, tidak memeriksa harga, tidak menyimpan memori antara satu transaksi dengan yang lain. Semua yang diputuskan, diputuskan dengan apa yang ada di depannya.
Dalam batasan ini, ada lebih banyak hal daripada yang terlihat. Script dapat meminta beberapa tanda tangan, dan begitulah multisig dari pelajaran sebelumnya ada. Script mengunci koin hingga tanggal tertentu atau hingga sejumlah blok berlalu — OP_CHECKLOCKTIMEVERIFY, ditambahkan pada tahun 2015, secara harfiah adalah brankas jam dari bank abad ke-19, ditulis dalam perangkat lunak. Dan Script mengunci koin di balik sebuah rahasia, membebaskannya untuk siapa pun yang mengungkapkan data yang menghasilkan hash tertentu, mekanisme yang mendukung seluruh jaringan Lightning.

Pada bulan Agustus 2010, Satoshi menonaktifkan sekitar lima belas instruksi bahasa sekaligus, termasuk yang menggabungkan atau membagi data, karena takut akan perilaku yang tidak dapat dianalisis dengan benar. Keputusan ini masih dikritik hingga hari ini oleh mereka yang menginginkan bahasa yang lebih ekspresif, dan dipertahankan oleh mereka yang lebih memilih jaringan yang cukup kecil untuk diaudit secara keseluruhan. Diskusi ini masih terbuka dan jujur dari kedua belah pihak.
Memiliki kunci pengaman yang valid tidak cukup untuk membelanjakan. Transaksi masih perlu mencapai para penambang, bersaing untuk mendapatkan ruang dengan ribuan lainnya, dan dipilih. Pada pelajaran berikutnya, mempool dan lelang yang menentukan siapa yang masuk ke blok berikutnya.