Bitcoin Script là gì? Bitcoin Script hoạt động như thế nào? Hướng dẫn chi tiết từ cơ bản đến nâng cao
Đằng sau mỗi giao dịch Bitcoin tưởng chừng đơn giản – chỉ là gửi BTC từ địa chỉ này sang địa chỉ khác – là một lớp công nghệ nền tảng phức tạp hơn nhiều. Nó không chỉ là việc chuyển số dư trong một cuốn sổ cái kỹ thuật số. Thay vào đó, Bitcoin sử dụng một hệ thống dựa trên các điều kiện và quy tắc để xác định ai có quyền chi tiêu số tiền nào. Ngôn ngữ lập trình cho phép định nghĩa và kiểm tra các quy tắc này chính là Bitcoin Script.
Trong bối cảnh thị trường crypto năm 2025 ngày càng phát triển với sự ra đời của nhiều ứng dụng và giao thức mới, việc hiểu rõ nền tảng cốt lõi như Bitcoin Script là gì trở nên quan trọng hơn bao giờ hết. Nó giúp chúng ta không chỉ hiểu cách Bitcoin hoạt động ở cấp độ cơ bản, mà còn thấy được khả năng (và giới hạn) của mạng lưới này. Chúng tôi tại BlockchainWork sẽ đi sâu vào tìm hiểu ngôn ngữ lập trình đặc biệt này.
Mục lục bài viết
Bitcoin Script là gì?
Bitcoin Script là một ngôn ngữ lập trình đơn giản, dựa trên stack (stack-based), được thiết kế đặc biệt để sử dụng trong mạng lưới Bitcoin. Vai trò chính của nó là xác định các điều kiện cần thiết để một đầu ra giao dịch (UTXO – Unspent Transaction Output) có thể được chi tiêu.
- Stack-based: Giống như một chồng đĩa, các dữ liệu (gọi là
opcode
– mã lệnh hoặcdata
– dữ liệu) được xử lý theo nguyên tắc LIFO (Last-In, First-Out – vào sau ra trước). Các lệnh trong Script sẽ thao tác trên dữ liệu được đặt trên đỉnh stack. - Mục đích cốt lõi: Bitcoin Script không phải là một ngôn ngữ lập trình đa năng như Python hay Java. Nó được tạo ra chỉ với một mục đích duy nhất: xác thực xem liệu người chi tiêu có đáp ứng được các điều kiện do người gửi đặt ra hay không.
- Bảo mật và Phi tập trung: Nhờ Script, các giao dịch có thể được thực hiện theo logic đã định sẵn mà không cần sự can thiệp của bên thứ ba hay cơ quan trung ương. Tính bảo mật được đảm bảo bởi các hàm mật mã và các lệnh kiểm tra chữ ký được tích hợp trong Script.
- Không Turing-complete: Một đặc điểm quan trọng của Bitcoin Script là nó không phải là ngôn ngữ Turing-complete (không thể thực hiện mọi loại tính toán logic, đặc biệt là không có vòng lặp). Điều này được thiết kế có chủ đích để ngăn chặn các cuộc tấn công từ chối dịch vụ (DoS) bằng cách đảm bảo mọi Script đều kết thúc và tiêu tốn một lượng tài nguyên tính toán có thể dự đoán trước.
Nói một cách đơn giản, Bitcoin Script là “khóa” và “ổ khóa” của các UTXO trên blockchain. Người gửi đặt ra một “ổ khóa” (một script xác định điều kiện chi tiêu), và người chi tiêu cần cung cấp “chìa khóa” (một script khác thỏa mãn điều kiện đó) để mở khóa và sử dụng số Bitcoin.
>>Xem thêm: Bitcoin là gì? Giải thích bitcoin dễ hiểu
Kiến trúc và Cách thức hoạt động của Bitcoin Script
Trong mỗi giao dịch Bitcoin, luôn có các đầu vào (Inputs) và đầu ra (Outputs). Các Inputs tham chiếu đến các UTXO từ các giao dịch trước đó mà người dùng muốn chi tiêu. Các Outputs tạo ra các UTXO mới với số lượng Bitcoin được phân bổ cho các địa chỉ nhận.
Cơ chế xác thực UTXO bằng Script dựa trên hai phần chính:
scriptPubKey
(hay Locking Script): Đây là phần Script nằm trong đầu ra (Output) của một giao dịch. Nó định nghĩa các điều kiện cần được thỏa mãn để số Bitcoin trong UTXO này có thể được chi tiêu. Nó giống như “ổ khóa” trên chiếc hòm chứa Bitcoin.scriptSig
(hay Unlocking Script): Đây là phần Script nằm trong đầu vào (Input) của một giao dịch mới. Nó chứa dữ liệu và chữ ký được cung cấp bởi người muốn chi tiêu UTXO đó, nhằm chứng minh rằng họ đáp ứng được các điều kiện trongscriptPubKey
. Nó giống như “chìa khóa” để mở “ổ khóa”.
Quá trình xác thực giao dịch (Validation Process):
- Node lấy
scriptSig
từ Input của giao dịch mới. - Node lấy
scriptPubKey
từ Output của giao dịch trước đó mà Input này đang cố gắng chi tiêu. - Hai Script này được nối lại và thực thi tuần tự trên một stack tạm thời.
scriptSig
thường được đặt lên stack trước, sau đóscriptPubKey
được thực thi, xử lý các dữ liệu từscriptSig
trên stack. - Nếu việc thực thi toàn bộ Script kết thúc mà không có lỗi và giá trị cuối cùng trên đỉnh stack là
TRUE
(hoặc một giá trị khác 0), thì chữ ký và các điều kiện khác được coi là hợp lệ, và Input đó được xác thực thành công. - Nếu quá trình thực thi gặp lỗi hoặc kết quả cuối cùng là
FALSE
(hoặc 0), thì Input đó (và toàn bộ giao dịch) bị coi là không hợp lệ và sẽ bị từ chối bởi mạng lưới.
Mô hình này đảm bảo rằng chỉ người sở hữu “chìa khóa” (có khả năng tạo ra scriptSig
thỏa mãn scriptPubKey
) mới có thể chi tiêu Bitcoin. Đây là nền tảng cho tính bảo mật và đáng tin cậy của các giao dịch Bitcoin.
>>Xem thêm: Stablecoin là gì? Tất tần tật những điều nên biết về Stablecoin cho người mới bắt đầu
Các loại Bitcoin Script phổ biến và ví dụ minh họa
Mặc dù Bitcoin Script có khả năng thực hiện nhiều loại logic điều kiện, phần lớn các giao dịch trên mạng lưới đều sử dụng một số loại Script phổ biến được thiết kế để phù hợp với các trường hợp sử dụng thông thường.
Loại Script phổ biến nhất, chiếm tỷ lệ lớn trong các giao dịch Bitcoin truyền thống, là P2PKH (Pay-to-Public-Key-Hash). Đây là loại Script được sử dụng khi bạn gửi Bitcoin đến một địa chỉ Bitcoin thông thường (bắt đầu bằng số 1).
Trong giao dịch P2PKH:
scriptPubKey
(trong Output): Khóa UTXO bằng hash của public key của người nhận. Cấu trúc cơ bản là:OP_DUP OP_HASH160 <Public Key Hash> OP_EQUALVERIFY OP_CHECKSIG
OP_DUP
: Sao chép giá trị trên đỉnh stack.OP_HASH160
: Hash giá trị trên đỉnh stack bằng RIPEMD160 sau SHA256.<Public Key Hash>
: Dữ liệu chứa hash của public key của người nhận.OP_EQUALVERIFY
: So sánh hai giá trị trên đỉnh stack (hash vừa tính và Public Key Hash cung cấp). Nếu bằng nhau, pop chúng ra; nếu không, giao dịch thất bại.OP_CHECKSIG
: Lấy chữ ký và public key từ stack, kiểm tra xem chữ ký có hợp lệ cho giao dịch này khi sử dụng public key đó hay không. Nếu hợp lệ, đẩy TRUE lên stack; nếu không, đẩy FALSE.
scriptSig
(trong Input): Cung cấp dữ liệu cần thiết để mở khóa, đó là chữ ký (Signature) và public key đầy đủ (Public Key) của người chi tiêu. Cấu trúc cơ bản là:<Signature> <Public Key>
Quá trình xác thực P2PKH:
scriptSig
(<Signature> <Public Key>
) được đặt lên stack. Stack hiện có:[Signature, Public Key]
(Public Key ở đỉnh).scriptPubKey
(OP_DUP OP_HASH160 <Public Key Hash> OP_EQUALVERIFY OP_CHECKSIG
) được thực thi.
OP_DUP
: Sao chép Public Key. Stack:[Signature, Public Key, Public Key]
.
OP_HASH160
: Hash Public Key ở đỉnh stack. Stack:[Signature, Public Key, HASH160(Public Key)]
.
<Public Key Hash>
: Đẩy Public Key Hash từ scriptPubKey lên stack. Stack:[Signature, Public Key, HASH160(Public Key), Public Key Hash]
(Public Key Hash ở đỉnh).
OP_EQUALVERIFY
: So sánhHASH160(Public Key)
vàPublic Key Hash
. Nếu chúng khớp nhau (chứng minh public key được cung cấp trong scriptSig thực sự là public key tương ứng với địa chỉ hash trong scriptPubKey), hai giá trị này bị pop ra. Stack:[Signature, Public Key]
. Nếu không khớp, script dừng và giao dịch không hợp lệ.
OP_CHECKSIG
: Lấy Signature và Public Key từ stack. Kiểm tra xem Signature có hợp lệ cho nội dung giao dịch đang được xác minh, sử dụng Public Key này không. Nếu có, đẩyTRUE
lên stack. Stack:[TRUE]
.
Kết quả cuối cùng trên stack là TRUE
, chứng tỏ người chi tiêu có chữ ký hợp lệ cho public key khớp với hash trong UTXO, do đó giao dịch hợp lệ.
Ngoài P2PKH, các loại Script phổ biến khác bao gồm:
- P2SH (Pay-to-Script-Hash): Gửi Bitcoin đến hash của một Script phức tạp hơn (ví dụ: multi-signature). Địa chỉ bắt đầu bằng số 3. Người nhận cung cấp script gốc và chữ ký để mở khóa.
- SegWit Scripts (P2WPKH, P2WSH): Các loại Script gốc của SegWit, giúp tách chữ ký (Witness data) ra khỏi phần Script chính, giảm kích thước giao dịch và giải quyết vấn đề malleability. Địa chỉ P2WPKH/P2WSH bắt đầu bằng
bc1q
. - P2TR (Pay-to-Taproot): Loại Script mới nhất được giới thiệu trong Taproot upgrade, cải thiện tính riêng tư, hiệu quả và linh hoạt cho các loại giao dịch phức tạp hơn, cho phép che giấu cấu trúc script phức tạp dưới dạng một khóa công khai đơn giản trong trường hợp chi tiêu thông thường. Địa chỉ Taproot bắt đầu bằng
bc1p
.
Việc hiểu các loại Script này giúp chúng ta nắm rõ cách các địa chỉ Bitcoin khác nhau hoạt động và cách mạng lưới xác thực các giao dịch đa dạng.
>>Xem thêm: Việc làm blockchain mới nhất
Ưu điểm, Hạn chế và Sự phát triển của Bitcoin Script
Bitcoin Script, dù đơn giản, đã chứng tỏ là một nền tảng vững chắc cho mạng lưới Bitcoin trong hơn một thập kỷ qua. Nó mang lại nhiều ưu điểm cốt lõi:
- Đơn giản và Đáng tin cậy: Ngôn ngữ được thiết kế tối giản, giảm thiểu khả năng xảy ra lỗi phức tạp hoặc các lỗ hổng bảo mật do tính năng không cần thiết.
- Bảo mật: Việc không phải là Turing-complete đảm bảo mọi Script đều kết thúc, ngăn chặn các cuộc tấn công từ chối dịch vụ (DoS) thông qua vòng lặp vô hạn. Các lệnh mã hóa và kiểm tra chữ ký được tích hợp chặt chẽ, đảm bảo tính xác thực của người chi tiêu.
- Phi tập trung: Logic chi tiêu được định nghĩa trực tiếp trên blockchain thông qua Script, không yêu cầu một bên trung gian đáng tin cậy nào để thực thi các quy tắc.
Tuy nhiên, tính đơn giản này cũng đi kèm với những hạn chế cố hữu:
- Tính linh hoạt hạn chế: Do không phải là Turing-complete, Bitcoin Script không thể thực hiện các logic tính toán phức tạp, duy trì trạng thái hay tương tác với các hợp đồng khác như Smart Contract trên các blockchain tiên tiến hơn (như Ethereum).
- Kích thước: Một số Script, đặc biệt là các script phức tạp cho các giao dịch multi-signature trước khi có SegWit, có thể khá lớn, chiếm không gian trên blockchain và làm tăng phí giao dịch.
- Độ phức tạp khi mở rộng: Việc thêm các loại logic giao dịch mới hoặc cải thiện hiệu quả gặp nhiều khó khăn do tính bất biến của hệ thống và cần phải có sự đồng thuận rộng rãi của mạng lưới.
Sự phát triển của mạng lưới Bitcoin đã tìm cách khắc phục một số hạn chế này thông qua các bản nâng cấp quan trọng liên quan đến Script:
- Segregated Witness (SegWit): Được kích hoạt vào năm 2017, SegWit là bản nâng cấp quan trọng giúp tách chữ ký (witness data) ra khỏi phần Script chính (
scriptPubKey
). Điều này không chỉ giải quyết vấn đề transaction malleability (tính dễ thay đổi của ID giao dịch) mà còn giúp giảm kích thước hiệu quả của các giao dịch trên block, cho phép chứa nhiều giao dịch hơn trong mỗi block và giảm phí. SegWit giới thiệu các loại Script native mới như P2WPKH và P2WSH. - Taproot: Được kích hoạt vào cuối năm 2021, Taproot là bản nâng cấp gần đây nhất, mang đến nhiều cải tiến đáng kể cho Script. Taproot sử dụng cấu trúc Merkelized Abstract Syntax Tree (MAST) để biểu diễn các điều kiện chi tiêu phức tạp. Điều này cho phép người dùng chỉ cần tiết lộ phần điều kiện thực sự được sử dụng khi chi tiêu, cải thiện quyền riêng tư. Hơn nữa, Taproot sử dụng lược đồ chữ ký Schnorr, cho phép tổng hợp chữ ký và public key trong các giao dịch multi-signature hoặc các giao dịch có nhiều điều kiện, làm cho chúng trông giống như các giao dịch đơn giản trên blockchain, cải thiện hiệu quả và giảm phí.
Những cải tiến như SegWit và Taproot cho thấy Bitcoin Script không phải là tĩnh. Nó đang được phát triển để mạng lưới trở nên hiệu quả, riêng tư và linh hoạt hơn, mở ra khả năng cho các loại giao dịch và ứng dụng phức tạp hơn trong tương lai, dù vẫn giữ vững nguyên tắc bảo mật và đơn giản cốt lõi.
Những Câu Hỏi Thường Gặp về Bitcoin Script
Tại sao Bitcoin Script không phải là Turing-complete?
Bitcoin Script được thiết kế không phải là Turing-complete để đảm bảo tính bảo mật và đơn giản. Bằng cách loại bỏ các vòng lặp vô hạn và khả năng tính toán tùy ý phức tạp, mạng lưới có thể chắc chắn rằng mọi Script sẽ kết thúc trong một khoảng thời gian và lượng tài nguyên tính toán giới hạn. Điều này ngăn chặn các cuộc tấn công từ chối dịch vụ (DoS) có thể làm nghẽn mạng hoặc làm sập các node bằng cách thực thi các Script không bao giờ kết thúc hoặc tiêu tốn quá nhiều tài nguyên.
Bitcoin Script khác Smart Contract ở điểm nào?
Sự khác biệt cốt lõi nằm ở tính năng và độ phức tạp. Bitcoin Script là một ngôn ngữ đơn giản, dựa trên stack, chủ yếu được sử dụng để kiểm tra các điều kiện chi tiêu (chủ yếu là xác minh chữ ký và khóa công khai). Nó không thể duy trì trạng thái, thực thi logic tùy ý phức tạp, hay tương tác trực tiếp với các hợp đồng khác trên blockchain. Ngược lại, Smart Contract trên các nền tảng như Ethereum là Turing-complete, có thể thực thi mọi loại logic lập trình, duy trì trạng thái, và tương tác với các Smart Contract khác để xây dựng các ứng dụng phi tập trung (dApps) phức tạp. Smart Contract linh hoạt hơn nhiều nhưng cũng tiềm ẩn rủi ro về lỗi lập trình và các cuộc tấn công phức tạp hơn.
>>Tham gia Cộng đồng Blockchain Việt Nam – BW
Những loại giao dịch Bitcoin phổ biến nào sử dụng Script?
Các loại giao dịch Bitcoin phổ biến đều dựa trên việc sử dụng Script để khóa và mở khóa UTXO. Các loại phổ biến nhất bao gồm:
- P2PKH (Pay-to-Public-Key-Hash): Giao dịch gửi Bitcoin đến một địa chỉ Bitcoin truyền thống (bắt đầu bằng số
1
), sử dụng scriptPubKey khóa bằng hash của public key và scriptSig cung cấp chữ ký và public key. - P2SH (Pay-to-Script-Hash): Giao dịch gửi đến hash của một script (bắt đầu bằng số
3
), thường dùng cho multi-signature hoặc các script phức tạp hơn. - P2WPKH và P2WSH: Các loại Script native của SegWit (bắt đầu bằng
bc1q
), hiệu quả hơn về không gian block. - P2TR (Pay-to-Taproot): Loại Script mới nhất (bắt đầu bằng
bc1p
), cải thiện quyền riêng tư và hiệu quả, đặc biệt cho các kịch bản chi tiêu phức tạp.
Tất cả các loại này đều sử dụng các biến thể của mô hình scriptPubKey/scriptSig để xác định quyền chi tiêu.
Kết luận
Bitcoin Script có thể không phải là ngôn ngữ lập trình mạnh mẽ nhất, nhưng nó là xương sống thầm lặng, đảm bảo tính bảo mật, tin cậy và phi tập trung cho mọi giao dịch trên mạng lưới Bitcoin. Việc hiểu Bitcoin Script là gì và cách thức hoạt động của nó cung cấp cái nhìn sâu sắc về cách Bitcoin thực sự vận hành ở cấp độ cốt lõi, vượt ra ngoài khái niệm đơn thuần về tiền tệ kỹ thuật số.
Nền tảng Script đơn giản nhưng mạnh mẽ này, kết hợp với các cải tiến không ngừng như SegWit và Taproot, tiếp tục khẳng định vị thế của Bitcoin không chỉ là một kho lưu trữ giá trị mà còn là một mạng lưới có khả năng thích ứng và phát triển. Để cập nhật những xu hướng nổi bật và kiến thức chuyên sâu nhất về blockchain, cũng như nắm bắt các cơ hội phát triển nghề nghiệp hấp dẫn trong lĩnh vực Blockchain tại Việt Nam và khu vực ASEAN trong năm 2025, hãy tiếp tục theo dõi BlockchainWork!
BlockchainWork powered by AI
** Đây không phải là lời khuyên đầu tư, khuyến nghị chiến lược đầu tư hay nội dung quảng cáo được tài trợ. Vui lòng tham khảo Tuyên bố miễn trừ trách nhiệm của chúng tôi và sử dụng thông tin phù hợp.
BlockchainWork – Cộng đồng nhân sự blockchain hàng đầu tại Việt Nam
- Liên hệ hợp tác với BlockchainWork: contact@blockchainwork.net
- Tìm hiểu thêm về BlockchainWork tại: https://blockchainwork.net/
- Nhà tuyển dụng kết nối các tài năng trẻ tại: https://blockchainwork.net/employer-signup
- Ứng viên nắm bắt cơ hội việc làm tại: https://blockchainwork.net/candidate-signup
Có thể bạn quan tâm
- Tổng hợp xu hướng việc làm blockchain tháng 5/2025
- Testnet và Mainnet khác nhau thế nào trong dự án blockchain?
- Các thuật ngữ cơ bản bạn cần biết khi tìm hiểu về crypto
- Lịch sử phân quyền của tài chính phi tập trung DeFi
- Tích hợp AI Tăng cường Bảo mật trong Hợp Đồng Thông Minh
- AI và Blockchain: Lựa chọn Ngành nào Phát triển Sự nghiệp?
Phân biệt Blockchain Layer 1, Layer 2 và Layer 3: Khái niệm, sự khác biệt và ví dụ chi tiết năm 2025
Công nghệ blockchain đang ngày càng phát triển phức tạp, vượt ra khỏi lớp cơ sở ban đầu. Để giải quyết những thách thức cố hữu như khả năng mở rộng (scalability), tốc độ và chi phí giao dịch, các…
Testnet và Mainnet khác nhau thế nào trong dự án blockchain?
Trong thế giới blockchain, hai khái niệm quan trọng mà bất kỳ nhà phát triển hay nhà đầu tư nào cũng cần biết đó là “Testnet” và “Mainnet”. Vậy Testnet và Mainnet khác nhau thế nào? Hiểu…
Token quản trị là gì? Hiểu đúng về Governance Token trong thế giới phi tập trung
Trong bối cảnh công nghệ blockchain đang tái định hình lại cách vận hành của các hệ thống tài chính, mạng xã hội và cả những tổ chức phi tập trung (DAO), “token quản trị” (governance token)…
Top 6 Blockchain Applications in Vietnam
Blockchain has become a promising technology in many fields in Vietnam, especially in education, health, entertainment, manufacturing, state administration and banking. In particular, blockchain is not simply a data storage technology but also a means to verify and…
Tích hợp AI Tăng cường Bảo mật trong Hợp Đồng Thông Minh
Công nghệ blockchain đã cách mạng hóa cách chúng ta thực hiện giao dịch, cho phép các thỏa thuận an toàn, minh bạch và không thể sửa đổi thông qua hợp đồng thông minh. Những hợp đồng tự…