SegWit và Taproot là hai nâng cấp lớn nhất của giao thức Bitcoin kể từ khi mạng ra đời. SegWit, viết tắt của Segregated Witness, kích hoạt năm 2017, tách dữ liệu chữ ký ra khỏi phần chính của giao dịch, qua đó sửa lỗi biến dạng giao dịch và tăng dung lượng hiệu dụng của khối. Taproot, kích hoạt năm 2021, đưa chữ ký Schnorr vào Bitcoin và cho phép biểu diễn những điều kiện chi tiêu phức tạp một cách gọn hơn, riêng tư hơn. Cả hai đều là chia tách mềm, nghĩa là nút chưa nâng cấp vẫn tiếp tục chấp nhận chuỗi.
Bài viết giải thích từng nâng cấp sửa vấn đề gì, vì sao được thiết kế như vậy, quá trình kích hoạt, và ảnh hưởng thực tế đến người dùng. Nội dung kỹ thuật, không liên quan đến giá cả.
Vấn đề biến dạng giao dịch
Trước SegWit, mã giao dịch được tính từ toàn bộ dữ liệu giao dịch, kể cả chữ ký. Một số cách biểu diễn chữ ký có thể bị thay đổi nhỏ bởi bên thứ ba mà chữ ký vẫn hợp lệ, làm cho mã giao dịch thay đổi.
Vấn đề này gọi là biến dạng giao dịch. Nó không cho phép đánh cắp bitcoin, nhưng gây rối cho phần mềm theo dõi giao dịch theo mã, và đặc biệt cản trở việc xây dựng những giao thức dựa trên chuỗi giao dịch chưa phát tán, như các kênh thanh toán.
Mạng Lightning, chẳng hạn, cần tạo trước những giao dịch chi tiêu đầu ra của một giao dịch chưa xác nhận. Nếu mã giao dịch có thể thay đổi, các giao dịch tạo trước đó trở nên vô hiệu.
Sửa biến dạng giao dịch là một trong những mục tiêu chính của SegWit.
SegWit hoạt động thế nào
SegWit chuyển phần dữ liệu chứng thực, chủ yếu là chữ ký, ra một cấu trúc riêng gọi là witness. Mã giao dịch được tính không kèm dữ liệu witness, nên thay đổi chữ ký không làm đổi mã giao dịch.
Với nút cũ, giao dịch SegWit trông như giao dịch mà ai cũng chi tiêu được, nhưng vì nút cũ không thấy dữ liệu witness, chúng vẫn chấp nhận khối. Nút mới kiểm tra đầy đủ chữ ký trong witness. Đây là lý do SegWit là chia tách mềm.
SegWit cũng thay giới hạn kích thước khối một megabyte bằng giới hạn trọng lượng bốn triệu đơn vị. Dữ liệu witness được tính nhẹ hơn, mỗi byte witness chỉ tính một đơn vị, trong khi mỗi byte dữ liệu khác tính bốn đơn vị. Kết quả là khối có thể chứa nhiều giao dịch hơn, dung lượng thực tế có thể vượt một megabyte.
SegWit cũng giới thiệu địa chỉ dạng mới bắt đầu bằng bc1q, dùng mã hoá bech32, ít lỗi gõ hơn và phí rẻ hơn cho người dùng.
Quá trình kích hoạt SegWit
SegWit được đề xuất từ năm 2015 và phát hành trong phần mềm năm 2016. Cơ chế kích hoạt ban đầu chờ đủ phần lớn thợ đào báo hiệu ủng hộ, nhưng tỷ lệ báo hiệu dừng ở mức thấp trong thời gian dài.
Giai đoạn này trùng với cuộc tranh cãi gay gắt về kích thước khối, chủ đề của bài sau. Một phong trào người dùng đe doạ chạy nút từ chối khối không báo hiệu SegWit từ một ngày nhất định, gây áp lực lên thợ đào.
Cuối cùng, SegWit được khoá kích hoạt vào mùa hè và chính thức có hiệu lực vào tháng 8 năm 2017.
Quá trình này để lại bài học lớn về quản trị: nâng cấp Bitcoin không chỉ do thợ đào quyết định, mà là sự tương tác phức tạp giữa nhà phát triển, người chạy nút, thợ đào, doanh nghiệp và người dùng.
Taproot và chữ ký Schnorr
Taproot gồm ba đề xuất cải tiến liên quan: chữ ký Schnorr, Taproot, và Tapscript. Nó được kích hoạt vào tháng 11 năm 2021, sau một quá trình báo hiệu suôn sẻ hơn nhiều so với SegWit.
Chữ ký Schnorr có cấu trúc toán học đơn giản hơn chữ ký ECDSA trước đó, và có tính chất cộng gộp: nhiều khoá có thể kết hợp thành một khoá, ký chung thành một chữ ký trông như chữ ký của một người. Điều này giúp giao dịch đa chữ ký gọn hơn và riêng tư hơn.
Taproot cho phép một đầu ra được chi tiêu theo hai cách: hoặc bằng một chữ ký của khoá kết hợp, trường hợp thông thường, hoặc bằng việc tiết lộ một trong nhiều điều kiện chi tiêu được giấu trong một cây Merkle. Chỉ điều kiện thực sự dùng mới bị tiết lộ.
Khi mọi bên đồng ý, giao dịch Taproot trông giống hệt một giao dịch chuyển khoản đơn giản, dù phía sau có thể là hợp đồng phức tạp. Địa chỉ Taproot bắt đầu bằng bc1p.
So sánh nhanh SegWit và Taproot
Năm kích hoạt SegWit tháng 8 năm 2017; Taproot tháng 11 năm 2021.
Loại nâng cấp Cả hai đều là chia tách mềm, tương thích ngược với nút cũ.
Mục tiêu chính của SegWit Sửa biến dạng giao dịch, tăng dung lượng hiệu dụng của khối.
Mục tiêu chính của Taproot Chữ ký Schnorr, điều kiện chi tiêu gọn và riêng tư hơn.
Thay đổi giới hạn khối SegWit thay giới hạn một megabyte bằng trọng lượng bốn triệu đơn vị.
Dạng địa chỉ SegWit dùng bc1q; Taproot dùng bc1p.
Mã hoá địa chỉ SegWit dùng bech32; Taproot dùng bech32m.
Lợi ích cho Lightning SegWit loại bỏ biến dạng giao dịch, điều kiện cần cho kênh thanh toán.
Lợi ích về riêng tư Taproot làm giao dịch phức tạp trông giống giao dịch đơn giản khi các bên đồng ý.
Lợi ích về phí Cả hai giảm dung lượng tính phí cho nhiều loại giao dịch.
Quá trình kích hoạt SegWit gặp tranh cãi kéo dài; Taproot diễn ra suôn sẻ hơn.
Tỷ lệ sử dụng Tăng dần theo thời gian, phụ thuộc việc ví và dịch vụ hỗ trợ.
Vì sao mỗi nâng cấp mất nhiều năm
Từ khi một ý tưởng được đề xuất đến khi kích hoạt trên mạng chính, SegWit mất khoảng hai năm, Taproot còn lâu hơn nếu tính từ những ý tưởng ban đầu. Với người quen nhịp cập nhật ứng dụng điện thoại hằng tháng, tốc độ này có vẻ chậm chạp.
Lý do nằm ở bản chất của luật đồng thuận. Một lỗi trong thay đổi đồng thuận có thể làm tách mạng, làm mất tài sản, hoặc mở ra lỗ hổng mà kẻ tấn công khai thác. Không có cách thu hồi bản cập nhật một khi các nút đã chấp nhận khối theo luật mới.
Vì vậy, mỗi đề xuất phải qua nhiều vòng rà soát, viết mã thử nghiệm, chạy trên mạng thử, và thảo luận công khai về cả mặt kỹ thuật lẫn mặt quản trị. Người chạy nút phải tự nguyện cập nhật; không ai ép được.
Sự chậm chạp này là một lựa chọn có chủ đích, đánh đổi tốc độ đổi mới lấy sự ổn định và an toàn. Nhiều blockchain khác chọn ngược lại, nâng cấp nhanh hơn với rủi ro tương ứng.
Ảnh hưởng đến người dùng
Với người dùng thông thường, ảnh hưởng dễ thấy nhất là dạng địa chỉ. Ví hiện đại thường mặc định dùng địa chỉ SegWit gốc bắt đầu bằng bc1q, hoặc Taproot bắt đầu bằng bc1p, thay vì địa chỉ cũ bắt đầu bằng số 1 hoặc số 3.
Giao dịch từ địa chỉ mới thường rẻ hơn vì dữ liệu chữ ký được tính nhẹ. Đây là lý do nhiều ví khuyến khích dùng địa chỉ mới.
Một số dịch vụ cũ có thể chưa hỗ trợ gửi đến địa chỉ dạng mới. Nếu gặp lỗi, đó thường là vấn đề tương thích, không phải địa chỉ sai.
Bài học chung: Bitcoin có thay đổi, nhưng chậm, thận trọng, tương thích ngược, và mỗi thay đổi lớn đều trải qua nhiều năm thảo luận.
Câu hỏi thường gặp
SegWit là gì?
Là nâng cấp năm 2017 tách dữ liệu chữ ký ra cấu trúc witness, sửa lỗi biến dạng giao dịch và tăng dung lượng hiệu dụng của khối.
Taproot là gì?
Là nâng cấp năm 2021 đưa chữ ký Schnorr và cách biểu diễn điều kiện chi tiêu gọn, riêng tư hơn vào Bitcoin.
Chia tách mềm nghĩa là gì?
Là thay đổi siết luật mà nút cũ vẫn chấp nhận khối mới, mạng lưới không bị tách thành hai chuỗi.
Địa chỉ bc1q và bc1p khác nhau thế nào?
bc1q là địa chỉ SegWit gốc mã hoá bech32, bc1p là địa chỉ Taproot mã hoá bech32m.
SegWit có tăng kích thước khối không?
SegWit thay giới hạn 1 MB bằng giới hạn trọng lượng 4 triệu đơn vị, cho phép dung lượng thực tế vượt 1 MB.