
SegWit là gì? Segregated Witness là một thay đổi định dạng giao dịch trong Bitcoin, được triển khai dưới dạng một đợt soft fork và kích hoạt vào ngày 24 tháng 8 năm 2017. SegWit tách phần chữ ký chứng thực (witness) ra khỏi phần dữ liệu giao dịch chính, giúp giải quyết đồng thời hai vấn đề lớn của Bitcoin: khả năng giao dịch bị biến đổi (malleability) và giới hạn khả năng mở rộng do khối lượng khối bị chặn. Bài viết này giải thích cơ chế SegWit hoạt động ra sao, vì sao nó ra đời và ảnh hưởng thực tế đến giao dịch Bitcoin như thế nào.

Vấn đề SegWit giải quyết
Để hiểu vì sao SegWit quan trọng, cần nhìn lại hai hạn chế cốt lõi của thiết kế Bitcoin ban đầu.
Giới hạn khả năng mở rộng
Ban đầu, Bitcoin không giới hạn kích thước khối. Tuy nhiên, điều này cho phép các kẻ tấn công tạo dữ liệu khối giả rất dài như một kiểu tấn công từ chối dịch vụ. Các khối giả đó dù có bị phát hiện hay không thì việc kiểm tra cũng mất rất lâu, làm chậm toàn hệ thống. Vì vậy giới hạn 1 MB cho mỗi khối được đưa vào. Cùng với giới hạn này, trung bình mười phút cho mỗi khối mới, số giao dịch xử lý được trong một đơn vị thời gian bị khóa cứng lại. Đây chính là nút thắt khiến phí giao dịch tăng cao trong thời kỳ nhu cầu giao dịch lớn.
Khả năng bị biến đổi
Mỗi giao dịch Bitcoin sử dụng các đầu ra chưa chi tiêu (UTXO) của giao dịch trước đó. Điều này tạo nên một chuỗi các giao dịch liên kết với nhau bằng mã định danh giao dịch (txid). Vấn đề là có thể thay đổi một giao dịch chưa xác nhận mà vẫn không làm nó trở nên không hợp lệ, và việc thay đổi đó lại làm thay đổi txid, khiến các giao dịch con trở nên không hợp lệ. Hiện tượng đổi txid một cách không chủ ý như vậy chính là tính biến đổi của giao dịch.
SegWit thay đổi gì
SegWit mang số đề xuất BIP 141 và được kích hoạt bằng một soft fork, nghĩa là các nút cũ vẫn chạy được vì chỉ cần tín hiệu xác nhận theo quy ước mà vẫn giữ nguyên quy tắc cũ. Mục tiêu tuyên bố gồm ba điểm: ngăn chặn tính biến đổi giao dịch không chủ ý, cho phép truyền dữ liệu tuỳ chọn, và vượt qua một số giới hạn giao thức như giới hạn kích thước khối.
Ý tưởng cốt lõi là tách giao dịch thành hai phần. Phần dữ liệu gốc tiếp tục chứa thông tin người gửi và người nhận. Phần chữ ký và script được gọi là witness được chuyển ra cuối, đóng gói trong một cấu trúc riêng biệt. Dữ liệu gốc vẫn được tính dung lượng bình thường, còn vùng witness được tính chỉ bằng một phần tư kích thước thực tế. Nói cách khác, mỗi byte trong witness chỉ tương đương với một phần tư đơn vị dung lượng. Nhờ vậy, cùng một khối 1 MB có thể chứa nhiều giao dịch hơn, đồng thời chữ ký không còn nằm trong dữ liệu giao dịch chính nên txid không bị biến đổi.
Việc tách riêng chữ ký ra khỏi cây Merkle giúp cho txid trở nên bất biến. Đây là điểm mấu chốt, bởi vì nhiều kỹ thuật mở rộng cấp hai phía trên, chẳng hạn như mạng Lightning, phụ thuộc vào việc txid không thể bị thay đổi sau khi phát. Nếu txid có thể bị biến đổi, các kênh thanh toán sẽ dễ bị giả mạo hoặc bị phá. Vì vậy SegWit thường được xem là điều kiện tiên quyết cho làn sóng mở rộng của Bitcoin.

SegWit tác động ra sao tới người dùng
Đối với người dùng phổ thông, tác động rõ nhất của SegWit là thông lượng giao dịch cao hơn và phí thấp hơn. Khi phần lớn giao dịch trên mạng dùng định dạng có witness, dung lượng hiệu dụng của mỗi khối tăng lên đáng kể so với trước đó. Sức chứa thực tế của một khối có thể lớn hơn nhiều so với mức 1 MB thô khi tính theo quy ước tính witness. Kết quả là phí giao dịch trung bình giảm và thời gian xác nhận được cải thiện.
SegWit cũng mở ra khả năng cho các hệ thống mở rộng cấp hai dựa trên nó. Nhờ txid bất biến, các kênh thanh toán off-chain như Lightning Network có thể đóng và bùng nổ an toàn hơn, vì trạng thái kênh không thể bị can thiệp bằng cách thay đổi txid gốc. Nhiều ví điện tử và sàn giao dịch hiện hày đã hỗ trợ giao dịch SegWit, và việc sử dụng nó ngày càng phổ biến.
So sánh với các hướng thay thế
Khi Bitcoin bị giới hạn, cộng đồng đề xuất nhiều hướng. SegWit chọn hướng soft fork, giữ được khả năng tương thích ngược, trong khi một số đề xuất khác đòi hỏi thay đổi không tương thích ngược, buộc toàn mạng phải nâng cấp đồng loạt. Có những dự án cố làm giao dịch gọn hơn bằng cách mô tả lại giao dịch theo hệ thống nhãn, cho phép nhiều giao dịch hơn mỗi khối, nhưng cách làm này không tương thích với các nút chưa nâng cấp. Nguyên lý của SegWit là nới lỏng mà không phá vỡ: vẫn giữ nguyên quy tắc cũ cho phần dữ liệu, chỉ đánh dấu phần chứng thực theo cách mới để tiết kiệm không gian tính phí.
Kết luận
SegWit là một trong những nâng cấp quan trọng nhất của Bitcoin, được kích hoạt từ năm 2017 và giờ đã trở thành nền tảng mặc định của mạng. Nó tách chữ ký ra khỏi dữ liệu giao dịch để giải quyết tính biến đổi của txid, đồng thời tính phần chứng thực theo tỷ lệ nhỏ hơn để nới lỏng giới hạn mà không cần thay đổi không tương thích. Bạn có thể đọc thêm chi tiết đặc tả kỹ thuật trong bài Segregated Witness trên Wikipedia và văn bản đề xuất BIP 141 trên GitHub. Bài giải thích về cây Merkle và tính toàn vẹn dữ liệu cũng có thể giúp bạn hiểu rõ hơn cách phần chứng thực được tách khỏi cây Merkle trong bài viết về cây băm Merkle.
