
Chốt Bitcoin: Tổng quan kỹ thuật và phân tích bảo mật
Tuyển chọn TechFlowTuyển chọn TechFlow

Chốt Bitcoin: Tổng quan kỹ thuật và phân tích bảo mật
Trong tương lai, Chakra sẽ tiếp tục hợp tác với Babylon để tổ chức một loạt hoạt động đặt cược, mang lại cho người dùng nhiều khoản lợi nhuận.

Gần đây, Babylon đã ra mắt hoạt động staking Bitcoin trên Testnet-4, thu hút sự quan tâm của cộng đồng về staking Bitcoin. Hôm nay, đội ngũ nghiên cứu Chakra sẽ dẫn dắt bạn tìm hiểu các giải pháp staking Bitcoin mới nhất.
Trong bản thử nghiệm gần đây Testnet-4 của Babylon, quá trình staking được chia thành ba loại giao dịch: giao dịch staking (Staking Tx), giao dịch rút vốn (Unbonding Tx) và giao dịch phạt (Slashing Tx). Những giao dịch này lần lượt tạo ra ba dạng đầu ra Bitcoin: đầu ra staking (Staking Output), đầu ra rút vốn (Unbonding Output) và đầu ra bị phạt (Slashing Output). Quá trình chuyển đổi như hình dưới đây.

Giao dịch Staking
Giao dịch staking phải bao gồm hai đầu ra đặc biệt. Một là đầu ra Taproot nắm giữ tài sản staking, phải chứa script staking BTC do Babylon định nghĩa. Hai là đầu ra với số tiền bằng 0, dùng OP_RETURN để lưu thông tin nhận diện staking do Babylon xác định.
Hình dưới đây minh họa một ví dụ về giao dịch staking, trong đó đầu ra đầu tiên là đầu ra staking, đầu ra thứ hai là đầu ra OP_RETURN, đầu ra thứ ba là đầu ra hoàn tiền thừa.

Đầu ra Staking
Đầu ra staking là một đầu ra Taproot, như đã đề cập trong bài viết trước của Chakra tại đây:
Đầu ra Taproot có hai cách thanh toán: đường dẫn thanh toán theo khóa (key path) và đường dẫn thanh toán theo script (script path). Babylon vô hiệu hóa đường dẫn thanh toán theo khóa bằng cách đặt khóa nội tại là điểm "Nothing Up My Sleeve" (NUMS), khiến đầu ra staking chỉ có thể được thanh toán qua đường dẫn script.
Đầu ra staking có thể được chi tiêu theo ba đường dẫn script, tương ứng với sơ đồ quy trình:
1. Đường dẫn khóa thời gian (Time-lock Path)
Đường dẫn này thực hiện chức năng staking và đồng thời đảm bảo tính sẵn sàng hoạt động.
<Staker_PK> OP_CHECKSIGVERIFY <Timelock_Blocks> OP_CHECKSEQUENCEVERIFY
Script khóa thời gian sẽ khóa BTC của người staking trong một số lượng khối nhất định. Đường dẫn khóa thời gian không cần bất kỳ thực thể nào khác, do đó đảm bảo tính sẵn sàng cho người staking. Ngay cả khi nhà cung cấp tính cuối cùng (finality provider) và hội đồng tín thác (covenant committee) ngừng hoạt động, người staking vẫn có thể lấy lại BTC sau thời gian khóa.
2. Đường dẫn rút vốn (Unbonding Path)
Nếu BTC bị khóa bởi thời gian, làm thế nào để người dùng kết thúc staking sớm? Babylon giải quyết vấn đề này bằng cách giới thiệu đường dẫn rút vốn.
<StakerPk> OP_CHECKSIGVERIFY
<CovenantPk1> OP_CHECKSIG <CovenantPk1> OP_CHECKSIGADD ... <CovenantPkN> OP_CHECKSIGADD
<CovenantThreshold> OP_GREATERTHANOREQUAL
Đường dẫn này không chỉ yêu cầu chữ ký của người staking mà còn cần chữ ký từ ít nhất CovenantThreshold thành viên của hội đồng tín thác. Việc đưa vào hội đồng tín thác nhằm mục đích tạo ra một khoảng thời gian rút vốn nhân tạo, ngăn người staking trốn tránh hình phạt bằng cách rút vốn sớm.
3. Đường dẫn phạt (Slashing Path)
Để đảm bảo an toàn cho PoS, việc trừng phạt là cần thiết. Nếu nhà cung cấp tính cuối cùng hành xử ác ý, cần tịch thu cả tài sản tự có lẫn được ủy quyền để đảm bảo an toàn kinh tế. Babylon cung cấp chức năng phạt thông qua đường dẫn phạt.
<StakerPk> OP_CHECKSIGVERIFY
<FinalityProviderPk> OP_CHECKSIGVERIFY
<CovenantPk1> OP_CHECKSIG <CovenantPk1> OP_CHECKSIGADD ... <CovenantPkN> OP_CHECKSIGADD
<CovenantThreshold> OP_GREATERTHANOREQUAL
Trước khi trạng thái staking chuyển sang Active, người staking phải ký trước giao dịch đường dẫn phạt, để tránh việc họ từ chối ký khi nhà cung cấp tính cuối cùng hành xử ác ý nhằm né tránh mất BTC. Sau khi nhận được chữ ký từ người staking, hội đồng tín thác sẽ xác minh trước, và nếu hợp lệ, sẽ công bố chữ ký của mình.
Hành vi bị phạt trong staking BTC là khi nhà cung cấp tính cuối cùng ký hai khối mâu thuẫn tại cùng một độ cao. Lúc này, bất kỳ người dùng nào cũng có thể sử dụng EOTS để lấy được khóa riêng của nhà cung cấp tính cuối cùng ác ý. Vì người staking và hội đồng tín thác đã ký trước giao dịch phạt, người dùng có được khóa riêng có thể ký giao dịch và dùng đường dẫn phạt để gửi một phần tài sản staking đến địa chỉ đốt như hình phạt.
Đầu ra OP_RETURN
Mặc dù đầu ra Taproot biểu đạt điều kiện sử dụng phức tạp bằng ScriptPubKeys nhỏ, điều này cũng khiến việc phân biệt giao dịch staking với các giao dịch khác trên mạng Bitcoin trở nên khó khăn. Do đó, cần phải tiết lộ thông tin liên quan đến staking bằng cách khác, để người dùng có thể nhận diện giao dịch phạt dựa trên thông tin này.
Babylon serializes các thông tin cần công bố, nhúng chúng vào script OP_RETURN và thêm vào đầu ra khác của giao dịch staking. Định dạng như hình dưới, dữ liệu phải khớp với dữ liệu trong script Taproot.
type V0OpReturnData struct {
MagicBytes []byte
Version byte
StakerPublicKey []byte
FinalityProviderPublicKey []byte
StakingTime []byte
}
Theo ảnh chụp giao dịch trước đó, dữ liệu hiệu lực mang trong đầu ra OP_RETURN thực sự là 4+1+32+32+2=71 byte. Trong hình, khóa công khai FinalityProviderPublicKey của giao dịch staking là f4940b238dcd00535fde9730345bab6ff4ea6d413cc3602c4033c10f251c7e81, thuộc về Chakra.
MagicBytes dùng để định vị nhanh giao dịch staking, còn Version là trường dành riêng cho cập nhật trong tương lai để phân biệt.
Giao dịch Rút vốn (Unbonding Transaction)
Khi người staking muốn mở khóa BTC đang staking sớm hơn, họ có thể gửi giao dịch rút vốn bằng cách chi tiêu theo đường dẫn rút vốn từ đầu ra staking. Giao dịch rút vốn yêu cầu chỉ chấp nhận một giao dịch staking đơn lẻ làm đầu vào và xuất ra một đầu ra Taproot duy nhất đến script rút vốn.
Dưới đây là ảnh chụp màn hình giao dịch rút vốn, tương ứng với đầu ra staking trước đó.

Trong đó, đoạn trường thứ hai từ dưới lên bắt đầu bằng '20' là tapscript của đường dẫn rút vốn, còn đoạn bắt đầu bằng 'c1' là khóa nội tại Taproot và Merkle Proof của đường dẫn rút vốn, trong đó có thể thấy rõ điểm NUMS 0x50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0. Trong trường Witness của giao dịch rút vốn, ta có thể thấy chữ ký của người staking và chữ ký từ hội đồng tín thác.
Đầu ra rút vốn có thể được chi tiêu theo hai điều kiện: đường dẫn khóa thời gian và đường dẫn phạt, giống hệt như ở đầu ra staking. Về mặt tổng thể, đầu ra rút vốn là một trạng thái trung gian, nhằm ngăn người staking rút cổ phần ngay lập tức và trốn tránh hình phạt, dẫn đến trạng thái ổn định là giao dịch rút tiền (withdrawal transaction).
Giao dịch Phạt
Giao dịch phạt lấy một giao dịch staking hoặc giao dịch rút vốn làm đầu vào, chi tiêu theo đường dẫn phạt trong script Taproot, và tạo ra hai đầu ra. Một đầu ra gửi một phần BTC đang staking đến địa chỉ đốt, đầu ra còn lại trả phần BTC còn lại về cho người staking.
Chính xác hơn, Babylon thực hiện tịch thu một phần thay vì đốt toàn bộ BTC mà người staking đã gửi. Cách tiếp cận này cung cấp tỷ lệ sai sót cao hơn và bảo vệ lợi ích của người staking.
Giao dịch phạt chỉ xảy ra khi có chữ ký liên hợp từ người staking, hội đồng tín thác và nhà cung cấp tính cuối cùng. Do đó, ngay cả khi một bên bị xâm phạm, hệ thống staking cũng không sụp đổ hoàn toàn. Giao dịch phạt đóng vai trò răn đe, ngăn chặn kinh tế đối với hành vi ác ý của các bên tham gia. Miễn là hình phạt lớn hơn lợi ích tiềm tàng, người tham gia sẽ có xu hướng tuân thủ quy tắc.
Phân tích An toàn
An toàn liên quan đến Babylon có hai loại:
Loại thứ nhất liên quan đến người staking, đảm bảo rằng miễn là người staking và nhà cung cấp tính cuối cùng mà họ ủy quyền không hành xử ác ý, tài sản staking của họ sẽ không bao giờ bị phạt.
Loại thứ hai liên quan đến bản thân hệ thống PoS, đảm bảo rằng nếu người tham gia hành xử ác ý, giao thức phải có khả năng nhận diện và trừng phạt họ.
Góc nhìn của Người Staking
Đối với người staking, một khi đã staking BTC qua giao dịch của Babylon, tiền chỉ có thể di chuyển theo ba cách.
Thứ nhất là đường dẫn khóa thời gian, chỉ cần chữ ký của người dùng là có thể rút tiền. Điều này đảm bảo rằng ngay cả khi FP và Babylon ngừng hoạt động, người staking vẫn có thể lấy lại BTC gốc sau khi hết thời gian staking.
Thứ hai là đường dẫn rút vốn, như một trạng thái trung gian, tạo ra một đầu ra rút vốn và cho phép thời gian mở khóa ngắn hơn. Điều này cung cấp chức năng rút sớm tài sản staking cho người dùng.
Thứ ba là đường dẫn phạt — con đường duy nhất có thể gây tổn hại đến lợi ích của người staking. Nếu kẻ tấn công bên ngoài cố gắng khai thác đường dẫn phạt, họ phải cung cấp đồng thời chữ ký của người staking, chữ ký của nhà cung cấp tính cuối cùng và chữ ký từ vượt ngưỡng của hội đồng tín thác — điều cực kỳ khó khăn. Ngay cả khi hội đồng tín thác hành xử ác ý, miễn là nhà cung cấp tính cuối cùng trung thực, BTC của người staking vẫn an toàn.
Góc nhìn của Hệ thống PoS
Từ góc nhìn hệ thống PoS, an toàn đến từ khả năng trừng phạt khi nhà cung cấp tính cuối cùng hành xử ác ý.
Babylon sử dụng cơ chế EOTS: nếu nhà cung cấp tính cuối cùng ký hai khối mâu thuẫn, bất kỳ người dùng nào cũng có thể trích xuất khóa riêng của họ từ hai chữ ký khác nhau. Điều này cho phép họ ký và gửi một giao dịch phạt, phạt một phần BTC tương ứng với toàn bộ quyền biểu quyết mà nhà cung cấp tính cuối cùng nắm giữ.
Biện pháp trừng phạt này ngăn chặn hành vi ác ý của nhà cung cấp tính cuối cùng, từ đó đảm bảo động cơ của họ phù hợp với việc cung cấp tính cuối cùng cho dịch vụ đồng thuận PoS liên kết với Babylon, bảo vệ an toàn cho các hệ thống PoS có TVL staking lớn.
Trong tương lai, Chakra sẽ tiếp tục hợp tác với Babylon triển khai loạt hoạt động staking, mang lại lợi nhuận đa tầng cho người dùng, đồng thời giải quyết các thách thức về tính thanh khoản và khả năng tương tác, khai phá giá trị to lớn của Bitcoin trong mọi hệ sinh thái mã hóa.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














