
Segregated Witness (SegWit) là một nâng cấp kỹ thuật quan trọng đối với blockchain của Bitcoin, được chính thức triển khai vào tháng 8 năm 2017. SegWit tái cấu trúc dữ liệu block bằng cách tách riêng phần chữ ký giao dịch (dữ liệu witness) khỏi dữ liệu giao dịch, lưu trữ chúng trong một cấu trúc dữ liệu độc lập. Thiết kế này giúp giải quyết vấn đề thay đổi dữ liệu giao dịch (transaction malleability) trên mạng lưới Bitcoin, tăng dung lượng block, tối ưu hóa hiệu quả mạng và tạo tiền đề cho các giải pháp mở rộng lớp thứ hai như Lightning Network.
Khái niệm Segregated Witness lần đầu được Pieter Wuille, nhà phát triển Bitcoin Core, đưa ra vào tháng 12 năm 2015 tại hội thảo Scaling Bitcoin ở Hồng Kông. Thời điểm đó, mạng Bitcoin đối mặt với vấn đề về khả năng mở rộng, khi giới hạn kích thước block 1MB gây tình trạng tắc nghẽn giao dịch và tăng phí giao dịch. Ngoài ra, lỗ hổng transaction malleability cho phép thay đổi ID giao dịch trước khi xác nhận, ảnh hưởng đến phát triển các kênh thanh toán nâng cao.
Trong quá trình thảo luận trong cộng đồng Bitcoin về các giải pháp mở rộng, SegWit được đề xuất như một bản nâng cấp soft fork, vừa tăng dung lượng block mà không ảnh hưởng đến sự đồng thuận, vừa khắc phục được vấn đề transaction malleability. Sau khoảng một năm rưỡi phát triển và kiểm thử, SegWit đã được triển khai qua BIP (Bitcoin Improvement Proposal) 141, và chính thức kích hoạt vào tháng 8 năm 2017 khi đạt ngưỡng đồng thuận cần thiết.
Cơ chế chính của SegWit là tái cấu trúc giao dịch với các điểm nổi bật:
Tách dữ liệu - Dữ liệu "witness" (chữ ký và script) được tách khỏi phần dữ liệu giao dịch chính và lưu vào một cấu trúc witness riêng biệt.
Điều chỉnh cách tính trọng số - Trong quá trình tính kích thước block, dữ liệu witness chỉ được tính trọng số 0,25 đơn vị trọng số trên mỗi byte, trong khi dữ liệu không phải witness vẫn tính 1 đơn vị. Nhờ đó, block có thể chứa nhiều giao dịch hơn, nâng giới hạn thực tế lên khoảng 4MB.
Định dạng địa chỉ mới - Địa chỉ Bech32 bắt đầu bằng "bc1" được giới thiệu, dành riêng cho giao dịch SegWit, giúp phát hiện lỗi tốt hơn và mã QR ngắn hơn.
Thay đổi cách tính ID giao dịch - Dữ liệu chữ ký không còn tính vào quá trình tạo ID giao dịch (txid), loại bỏ lỗ hổng transaction malleability và đảm bảo ID giao dịch không thay đổi sau khi phát đi.
Về mặt kỹ thuật, SegWit đưa ra quy tắc phiên bản mới cho hệ thống script của Bitcoin: giao dịch định dạng cũ mang phiên bản 0, còn giao dịch SegWit là phiên bản 1. Điều này giúp duy trì khả năng tương thích ngược, cho phép các node chưa nâng cấp vẫn xác thực được blockchain.
Dù mang lại nhiều lợi ích, quá trình triển khai SegWit vẫn gặp một số rủi ro và thách thức:
Tỷ lệ áp dụng - SegWit là tính năng tùy chọn, cần sự hỗ trợ chủ động từ ví và sàn giao dịch để phát huy hiệu quả nên tốc độ áp dụng ban đầu khá chậm.
Độ phức tạp kỹ thuật - Triển khai SegWit đòi hỏi thay đổi lớn đối với phần mềm ví, làm tăng gánh nặng cho nhà phát triển và nguy cơ lỗi kỹ thuật.
Sự phân hóa cộng đồng - Việc kích hoạt SegWit gây chia rẽ trong cộng đồng Bitcoin, cuối cùng dẫn đến việc tách nhánh blockchain, tạo ra Bitcoin Cash.
Yêu cầu bảo mật - Quy tắc xác thực script và định dạng địa chỉ mới cần được kiểm thử nghiêm ngặt để phòng tránh lỗ hổng bảo mật mới.
Giai đoạn chuyển đổi mạng - Trước khi toàn bộ mạng lưới chuyển sang SegWit, phải đảm bảo khả năng tương thích giữa hai loại giao dịch, làm tăng độ phức tạp hệ thống.
Việc SegWit được kích hoạt là một sự kiện quan trọng trong quá trình phát triển kỹ thuật của Bitcoin, cho thấy các nâng cấp lớn có thể được triển khai thông qua soft fork.
SegWit đóng vai trò quan trọng trong quá trình phát triển công nghệ của Bitcoin, giải quyết các vấn đề kỹ thuật và tạo điều kiện cho các giải pháp mở rộng lớp thứ hai như Lightning Network. Việc triển khai qua soft fork của SegWit cũng phản ánh sự phức tạp của quản trị và nâng cấp kỹ thuật trên blockchain, cũng như những thách thức trong việc đạt đồng thuận ở hệ thống phi tập trung. Hiện nay, SegWit đã được chấp nhận rộng rãi và trở thành tiêu chuẩn trên mạng lưới Bitcoin.
Mời người khác bỏ phiếu


