SegWit, viết đầy đủ là Segregated Witness, là một thay đổi trong giao thức Bitcoin nhằm tách dữ liệu chứng thực giao dịch — chủ yếu là chữ ký số — khỏi phần dữ liệu cơ sở của giao dịch. Thay đổi này xử lý một dạng biến đổi mã giao dịch và giúp sử dụng không gian khối hiệu quả hơn mà không làm mất yêu cầu xác minh chữ ký.
SegWit được triển khai trên Bitcoin dưới dạng soft fork và được kích hoạt vào năm 2017. Người dùng không cần hiểu toàn bộ mã nguồn để sử dụng, nhưng nên biết SegWit ảnh hưởng đến định dạng địa chỉ, phí giao dịch và khả năng tương thích của ví như thế nào.
SegWit là gì?
Trong một giao dịch Bitcoin, người gửi phải cung cấp dữ liệu chứng minh rằng mình có quyền sử dụng số bitcoin đầu vào. Dữ liệu này thường gồm chữ ký số và thông tin cần thiết để kiểm tra chữ ký, được gọi chung là witness data — dữ liệu chứng thực.
Trước SegWit, dữ liệu chứng thực được lưu cùng các thành phần khác trong cấu trúc giao dịch. SegWit đưa phần witness sang một khu vực riêng khi giao dịch được tuần tự hóa và truyền trong mạng. Chữ ký không bị xóa và các node hỗ trợ SegWit vẫn phải kiểm tra tính hợp lệ của nó trước khi chấp nhận giao dịch hoặc khối.
Nói ngắn gọn:
- SegWit không loại bỏ chữ ký khỏi giao dịch.
- SegWit thay đổi cách chữ ký được sắp xếp và tính vào giới hạn khối.
- SegWit giúp mã giao dịch ổn định hơn trong một số quy trình phụ thuộc vào giao dịch chưa xác nhận.
- SegWit tạo nền tảng kỹ thuật thuận lợi hơn cho các giải pháp mở rộng như Lightning Network, nhưng không đồng nghĩa với Lightning Network.

Vì sao Bitcoin cần SegWit?

SegWit được thiết kế để giải quyết hai vấn đề kỹ thuật đáng chú ý: transaction malleability và việc sử dụng không gian khối chưa tối ưu.
Transaction malleability
Transaction malleability có thể hiểu là khả năng thay đổi một số dữ liệu biểu diễn của giao dịch mà không làm thay đổi kết quả chi tiêu. Trong cấu trúc cũ, sự thay đổi này có thể làm mã giao dịch, hay TXID, thay đổi trước khi giao dịch được xác nhận.
Điều đó không có nghĩa kẻ khác có thể tùy ý đổi người nhận hoặc lấy bitcoin nếu không có khóa riêng hợp lệ. Vấn đề nằm ở việc một hệ thống xây dựng giao dịch mới dựa trên TXID của giao dịch chưa xác nhận có thể gặp khó khăn nếu TXID ban đầu bị thay đổi.
Với giao dịch SegWit, TXID được tính mà không bao gồm phần witness. Việc sửa cách biểu diễn chữ ký vì thế không còn làm thay đổi TXID theo kiểu mà SegWit được thiết kế để xử lý. Ngoài TXID, giao thức còn sử dụng wtxid, là mã nhận dạng có tính đến dữ liệu witness.
Giới hạn dung lượng khối
Chữ ký có thể chiếm một phần đáng kể trong dữ liệu giao dịch. Nếu mọi byte đều được tính như nhau, số giao dịch có thể đưa vào một khối bị hạn chế bởi kích thước dữ liệu.
SegWit thay cách đo từ kích thước byte đơn thuần sang trọng lượng khối. Dữ liệu cơ sở có trọng số cao hơn dữ liệu witness, nhờ đó giao dịch sử dụng SegWit thường cần ít không gian tính phí hơn so với giao dịch cũ có cấu trúc tương đương.
SegWit hoạt động như thế nào?
Để hiểu cơ chế này, cần phân biệt dữ liệu cơ sở và dữ liệu chứng thực.
Tách dữ liệu witness
Một giao dịch Bitcoin sử dụng các đầu ra chưa chi tiêu, thường gọi là UTXO, làm đầu vào. Người gửi cung cấp bằng chứng để chứng minh mình được phép chi tiêu các UTXO đó.
Với SegWit, bằng chứng được đưa vào trường witness riêng. Các node đã nâng cấp đọc và xác minh đầy đủ trường này. Node cũ không diễn giải witness theo cùng cách, nhưng nhờ thiết kế soft fork, chúng vẫn có thể chấp nhận khối theo bộ quy tắc cũ trong khi node mới áp dụng thêm các điều kiện của SegWit.
Vai trò xác minh thuộc về các node trong mạng. Người mới có thể tìm hiểu thêm sự khác biệt giữa full node, light node và validator để hiểu vì sao không phải mọi ứng dụng ví đều tự kiểm tra toàn bộ blockchain.
Trọng lượng và kích thước ảo
SegWit sử dụng công thức trọng lượng:
trọng lượng = kích thước cơ sở × 3 + tổng kích thước giao dịch
Cách viết tương đương là mỗi byte không thuộc witness được tính 4 đơn vị trọng lượng, còn mỗi byte witness được tính 1 đơn vị. Một khối Bitcoin có giới hạn 4.000.000 đơn vị trọng lượng.
Phí thường được biểu diễn theo satoshi trên virtual byte, viết tắt là sat/vB. Kích thước ảo được suy ra từ trọng lượng giao dịch và làm tròn lên theo quy tắc của phần mềm. Vì witness có trọng số thấp hơn, giao dịch SegWit thường có kích thước ảo nhỏ hơn giao dịch legacy tương đương.
Điều này không có nghĩa mọi giao dịch SegWit đều rẻ hơn mọi giao dịch cũ. Phí thực tế còn phụ thuộc vào:
- Số lượng đầu vào và đầu ra.
- Loại script được sử dụng.
- Mức phí mà người gửi lựa chọn.
- Nhu cầu không gian khối tại thời điểm giao dịch.
- Cách ví chọn và gộp các UTXO.
Soft fork và khả năng tương thích
SegWit được triển khai dưới dạng soft fork, tức các quy tắc mới chặt chẽ hơn nhưng vẫn được thiết kế để các node cũ có thể tiếp tục tham gia mạng theo quy tắc mà chúng hiểu. Tuy nhiên, node cũ không tự xác minh đầy đủ những điều kiện mới liên quan đến witness.
Khả năng tương thích ở cấp giao thức không đồng nghĩa mọi ví, sàn hoặc dịch vụ đều hỗ trợ mọi loại địa chỉ. Người dùng vẫn phải kiểm tra định dạng nạp và rút mà từng nền tảng công bố.

SegWit mang lại lợi ích gì?
Sử dụng không gian khối hiệu quả hơn
Do dữ liệu witness được tính trọng số thấp hơn, một khối có thể chứa nhiều dữ liệu giao dịch hữu ích hơn so với trường hợp chỉ dùng giao dịch legacy. Mức cải thiện thực tế thay đổi theo cấu trúc và tỷ lệ giao dịch SegWit trong khối, vì vậy không có một con số tăng dung lượng cố định áp dụng cho mọi khối.
Có thể giảm chi phí giao dịch
Khi so sánh các giao dịch có đầu vào và đầu ra tương đương, định dạng SegWit thường tạo ra kích thước ảo thấp hơn. Nếu cùng chọn một mức sat/vB, tổng phí có thể thấp hơn.
SegWit không bảo đảm phí luôn thấp. Khi mạng có nhu cầu cao, người dùng vẫn có thể phải đặt mức phí cao hơn để giao dịch được xác nhận sớm.
Hạn chế transaction malleability
Việc loại witness khỏi cách tính TXID xử lý dạng transaction malleability mà SegWit nhắm tới. Đây là điều kiện quan trọng đối với các giao thức cần tham chiếu ổn định tới giao dịch chưa xác nhận.
Tuy nhiên, cách diễn đạt “SegWit loại bỏ hoàn toàn mọi khả năng biến đổi giao dịch” là quá rộng. Lợi ích kỹ thuật này chủ yếu liên quan đến TXID và các đầu vào sử dụng SegWit.
Hỗ trợ các giải pháp lớp trên
TXID ổn định hơn giúp việc xây dựng các giao thức thanh toán nhiều bước an toàn và dễ quản lý hơn. Lightning Network là ví dụ thường được nhắc đến, nhưng SegWit chỉ là một phần nền tảng kỹ thuật; nó không tự tạo kênh thanh toán hay tự chuyển giao dịch ra ngoài chuỗi.
Địa chỉ SegWit và địa chỉ Bitcoin cũ khác nhau thế nào?

Người dùng thường gặp SegWit qua định dạng địa chỉ ví. Ba nhóm phổ biến gồm:
| Loại địa chỉ | Dấu hiệu thường gặp | Đặc điểm chính |
|---|---|---|
| Legacy | Bắt đầu bằng 1 |
Định dạng Bitcoin cũ, không sử dụng lợi ích SegWit cho đầu ra tương ứng |
| Nested SegWit | Bắt đầu bằng 3 |
Đầu ra SegWit được bọc trong P2SH để hỗ trợ một số hệ thống cũ |
| Native SegWit | Thường bắt đầu bằng bc1q |
Sử dụng Bech32 và SegWit phiên bản 0, thường hiệu quả hơn nested SegWit |
Không phải mọi địa chỉ bắt đầu bằng 3 đều là SegWit vì tiền tố này cũng được dùng cho các script P2SH khác. Ngoài ra, địa chỉ bắt đầu bằng bc1p thường liên quan đến Taproot, không nên đồng nhất với địa chỉ SegWit phiên bản 0 dạng bc1q, dù Taproot sử dụng cơ chế witness ở phiên bản mới hơn.
Địa chỉ chỉ là cách biểu diễn điều kiện nhận tài sản; khóa riêng mới là thông tin cho phép ký giao dịch. Bài giải thích về vai trò của ví tiền điện tử giúp phân biệt rõ địa chỉ, khóa riêng, seed phrase và số dư hiển thị trong ứng dụng.
Cách nhận biết và sử dụng SegWit an toàn
Khi gửi hoặc nhận Bitcoin qua địa chỉ SegWit, người dùng nên thực hiện các bước sau:
- Xác nhận đúng mạng Bitcoin. Không chọn một blockchain khác chỉ vì ứng dụng hiển thị tên token tương tự.
- Kiểm tra dịch vụ có hỗ trợ định dạng địa chỉ hay không. Một số hệ thống cũ có thể không nhận diện được địa chỉ Bech32.
- Đối chiếu địa chỉ trên thiết bị đáng tin cậy. Không chỉ kiểm tra vài ký tự đầu hoặc cuối nếu có điều kiện xác minh toàn bộ.
- Thử với số tiền nhỏ khi sử dụng nền tảng mới. Chỉ tiếp tục sau khi giao dịch thử được ghi nhận đúng.
- Xem mức phí và thời gian dự kiến. SegWit giúp giao dịch hiệu quả hơn nhưng không bảo đảm xác nhận ngay lập tức.
- Không nhập seed phrase vào trang web hoặc biểu mẫu lạ. Việc nhận Bitcoin không yêu cầu cung cấp khóa riêng hay cụm từ khôi phục.
Việc dùng SegWit không thay thế các nguyên tắc bảo vệ tài sản crypto. Nếu thiết bị, seed phrase hoặc khóa riêng bị lộ, định dạng giao dịch không thể ngăn kẻ khác ký lệnh chuyển tài sản.
Người mới cũng nên hiểu cách ví blockchain quản lý khóa và giao dịch trước khi tự lưu ký Bitcoin. Ví không “chứa đồng coin” theo nghĩa vật lý; nó quản lý thông tin giúp người dùng tương tác với tài sản được ghi nhận trên blockchain.
Những giới hạn cần hiểu về SegWit
SegWit là một cải tiến quan trọng nhưng không giải quyết mọi vấn đề của Bitcoin.
- Không loại bỏ hoàn toàn tình trạng tắc nghẽn: nhu cầu giao dịch vẫn có thể vượt quá không gian khối khả dụng.
- Không ấn định một mức phí cố định: phí phụ thuộc vào cấu trúc giao dịch và thị trường không gian khối.
- Không làm giao dịch được xác nhận tức thì: giao dịch vẫn cần được đưa vào khối và nhận thêm xác nhận theo nhu cầu của bên nhận.
- Không bảo vệ người dùng khỏi lừa đảo: SegWit không thể thu hồi giao dịch gửi nhầm hoặc ngăn người dùng tiết lộ seed phrase.
- Không phải một blockchain riêng: đây là thay đổi quy tắc và cấu trúc giao dịch của Bitcoin; một số mạng khác có thể áp dụng ý tưởng tương tự nhưng cách triển khai không nhất thiết giống nhau.
- Không đồng nghĩa với Taproot hay Lightning Network: các công nghệ này có quan hệ kỹ thuật với quá trình mở rộng Bitcoin nhưng là những khái niệm riêng.
Thuật ngữ liên quan đến SegWit

- Witness: dữ liệu chứng minh quyền chi tiêu đầu vào, thường bao gồm chữ ký và các thành phần cần thiết để thực thi điều kiện khóa.
- TXID: mã nhận dạng giao dịch; với giao dịch SegWit, phần witness không được đưa vào cách tính TXID.
- wtxid: mã nhận dạng được tính từ dạng giao dịch có bao gồm witness.
- UTXO: đầu ra giao dịch chưa được chi tiêu, được dùng làm đầu vào cho giao dịch mới.
- Block weight: đơn vị đo trọng lượng dữ liệu trong khối theo quy tắc SegWit.
- Virtual byte, vB: đơn vị kích thước ảo thường dùng để ước tính và báo giá phí giao dịch.
- P2WPKH: loại đầu ra SegWit phiên bản 0 thường dùng cho giao dịch khóa theo public key hash.
- P2WSH: loại đầu ra SegWit phiên bản 0 khóa theo hash của witness script.
- Bech32: cách mã hóa địa chỉ được dùng cho địa chỉ native SegWit phiên bản 0.
- Soft fork: thay đổi quy tắc được thiết kế để duy trì khả năng tương thích với node chưa nâng cấp ở cấp đồng thuận cũ.

Kết luận
SegWit là cơ chế tách dữ liệu chứng thực khỏi phần cơ sở của giao dịch Bitcoin. Cải tiến này xử lý một dạng transaction malleability, đưa vào cách đo trọng lượng khối và giúp giao dịch sử dụng không gian hiệu quả hơn.
Đối với người dùng phổ thông, tác động dễ nhận thấy nhất là sự xuất hiện của địa chỉ SegWit và khả năng tiết kiệm phí so với giao dịch legacy có cấu trúc tương đương. Dù vậy, trước khi gửi Bitcoin, người dùng vẫn phải kiểm tra đúng mạng, khả năng hỗ trợ địa chỉ của ví hoặc sàn và bảo vệ khóa riêng cẩn thận.
