Segregated Witness (SegWit) là gì?

Hướng dẫn dành cho người mới bắt đầu về Bitcoin SegWit 💭
Segregated Witness (SegWit) là một bản nâng cấp được thực hiện cho mã nguồn của Bitcoin vào ngày 1 tháng 8 năm 2017.
Mặc dù mang lại những cải tiến mà nhiều người coi là tích cực cho blockchain Bitcoin, SegWit đã vấp phải sự phản đối mạnh mẽ, gây chia rẽ cộng đồng.
Cốt lõi của vấn đề là sự xung đột lợi ích giữa lợi nhuận của thợ đào và các nhà phát triển mạng muốn làm cho Bitcoin rẻ hơn và nhanh hơn khi sử dụng.
Căng thẳng đã gây ra rạn nứt trong cộng đồng, đỉnh điểm là đợt soft fork do người dùng kích hoạt đầu tiên của mạng và một cuộc chia tách đầy thù địch. Sự chia rẽ này đã khai sinh ra một loạt các dự án phân nhánh Bitcoin mới, bao gồm Bitcoin Cash.
Cho đến nay, SegWit vẫn là một trong những sự kiện gây tranh cãi nhất trong lịch sử Bitcoin. Nhưng nó cũng đã chứng tỏ là một trong những bản cập nhật quan trọng nhất đối với khả năng tồn tại lâu dài của giao thức.
Hàng năm, nhiều người trong cộng đồng Bitcoin kỷ niệm ngày 1 tháng 8 là “ngày độc lập của Bitcoin”. Sự kiện này đánh dấu thời điểm ý chí của người dân đã chiến thắng lợi ích tập trung của các công ty khai thác bitcoin đã thành lập.
Hãy cùng khám phá từng sự kiện này khi chúng diễn ra và tìm hiểu lịch sử đằng sau SegWit.
Bitcoin trước SegWit ⏮️
Trước khi SegWit được kích hoạt, dung lượng khối của Bitcoin đã không thay đổi trong nhiều năm. Dung lượng khối đề cập đến số lượng giao dịch tối đa có thể được ghi lại trong một khối nhất định.
Khi Bitcoin ra mắt vào năm 2009, người tạo ra nó Satoshi Nakamoto đã không đặt bất kỳ thông số nào về kích thước khối bitcoin.
Tuy nhiên, vào năm 2010, Nakamoto đã bí mật thêm giới hạn kích thước khối 1 megabyte (MB) mà không có sự chấp thuận của các nhà đóng góp Bitcoin khác.
Nhiều người tin rằng Nakamoto đã đưa ra giới hạn này để ngăn chặn các cuộc tấn công từ chối dịch vụ phân tán (DDoS) trong tương lai có thể ảnh hưởng đến mạng.
Giới hạn cố định về dung lượng khối này đã gây ra tác động không mong muốn là hạn chế tiềm năng mở rộng của Bitcoin theo nhiều cách.
Thông lượng thấp và thời gian giao dịch chậm
Chỉ một số lượng giao dịch hạn chế có thể nằm gọn trong khối 1MB tương đối nhỏ mà Bitcoin hiện đã áp dụng. Dung lượng nhỏ này có nghĩa là mạng Bitcoin chỉ có thể xử lý khoảng 2–3 giao dịch bitcoin (BTC) mỗi giây — một con số rất xa so với các mạng thanh toán kỹ thuật số truyền thống có thể xử lý hàng chục nghìn giao dịch mỗi giây.
Ngoài ra, để một khối giao dịch được coi là hợp lệ như một phần của quá trình khai thác bitcoin, nó phải nhận được sáu xác nhận. Nói cách khác, sáu khối mới phải được thêm vào blockchain sau khối đang được đề cập trước khi nó được hoàn tất. Với thời gian khối trung bình là mười phút, điều này có nghĩa là việc xác nhận khối bitcoin mất khoảng một giờ.
Vào thời điểm đó, khi chỉ một số ít nhà mật mã học “Cypherpunk” biết về bitcoin, đó không nhất thiết là một vấn đề lớn. Nhưng, nếu mạng Bitcoin trở thành một “hệ thống tiền mặt điện tử ngang hàng” toàn cầu như Satoshi đã hình dung trong sách trắng Bitcoin, mọi thứ cần phải thay đổi.
Phí cao
Thông lượng thấp của Bitcoin, bị hạn chế bởi dung lượng khối nhỏ, có nghĩa là phí cũng tương đối cao hơn nhiều so với hiện nay.
Đây là một cách dễ hiểu về vấn đề này. Hãy tưởng tượng bạn đang đứng giữa đám đông sau khi xem một buổi biểu diễn sân khấu. Mọi người từ nhà hát đều muốn đi taxi về nhà cùng một lúc. Nếu có nhiều taxi xung quanh, mọi người sẽ dễ dàng về nhà. Nhưng, nếu chỉ có một vài chiếc taxi, mọi người có thể cố gắng trả giá cao hơn cho tài xế taxi để khuyến khích tài xế đưa họ về nhà trước. Tùy thuộc vào nhu cầu, giá taxi có thể tăng đáng kể so với mức bình thường.
Phí Bitcoin hoạt động dựa trên các nguyên tắc cung và cầu tương tự. Nếu nhiều người muốn giao dịch của họ được xử lý cùng một lúc, một số có thể chọn trả nhiều phí hơn để giao dịch của họ được thợ đào xử lý sớm hơn. Trong thời gian mạng Bitcoin được sử dụng nhiều, tắc nghẽn có thể dẫn đến cạnh tranh giữa những người dùng, điều này có thể khiến phí giao dịch tăng mạnh.
Tính dễ uốn của giao dịch
Một sắc thái cố hữu khác với cách hoạt động của các khối Bitcoin được gọi là tính dễ uốn của giao dịch. Trước SegWit, mọi người có thể thay đổi ID của một giao dịch trước khi nó nhận đủ xác nhận trên blockchain.
Lấy thông tin liên quan đến một giao dịch cụ thể và chạy nó qua một hàm băm sẽ tạo ra một ID giao dịch. Bạn có thể tìm hiểu thêm về các hàm băm trong bài viết của chúng tôi Tiền điện tử sử dụng mật mã như thế nào?
Nhưng để đơn giản, bạn có thể coi các ID giao dịch này là dấu vân tay kỹ thuật số được sử dụng để xác định và tham chiếu các giao dịch trên blockchain.
Việc thay đổi ID giao dịch tạo ra một hàm băm hoàn toàn mới, đôi khi có thể gây nhầm lẫn cho phần mềm máy khách blockchain. Tất cả các nút đều chạy phần mềm máy khách để tương tác với blockchain và thực hiện các vai trò quan trọng như xác minh dữ liệu.
Lỗi dễ uốn này trong mã của Bitcoin đã mở ra cánh cửa cho các cuộc tấn công độc hại. Một trong những ví dụ khét tiếng nhất về cuộc tấn công dễ uốn giao dịch là vụ hack sàn giao dịch Mt. Gox năm 2014 — nổi tiếng là vụ hack bitcoin lớn nhất trong lịch sử.
Các chuyên gia đã báo cáo một hacker, hoặc một nhóm hacker, đã rút cạn ví bitcoin của sàn giao dịch Mt. Gox. Họ đã làm điều này một phần bằng cách thay đổi ID giao dịch của các khoản rút tiền của họ.
Cuộc tấn công dễ uốn giao dịch đã khiến các khoản rút tiền dường như không được xác nhận trên blockchain, trong khi thực tế chúng đã được xác nhận.
Lỗ hổng này, cùng với các vectơ tấn công khác, đã cho phép (các) hacker rút hơn 840.000 BTC từ sàn giao dịch.
SegWit đã mang lại những cải tiến nào? ⚙️
Nhà đóng góp Bitcoin Pieter Wuille lần đầu tiên trình bày bản nâng cấp SegWit tại một sự kiện Bitcoin Hồng Kông vào năm 2015.
Giải pháp của ông đổi mới trên ba phương diện. SegWit đã cải thiện khả năng mở rộng của Bitcoin, loại bỏ tính dễ uốn và cho phép các nút áp dụng cấu trúc giao dịch mới. Hơn hết, điều này có thể được thực hiện mà không cần hard fork mạng.
Tách biệt chữ ký số và thông tin giao dịch
Đề xuất của Wuille đã tăng dung lượng khối Bitcoin bằng cách “tách biệt” dữ liệu “chứng thực” khỏi một khối và chuyển nó sang giao dịch coinbase. Giao dịch coinbase là những giao dịch đầu tiên trong mỗi khối Bitcoin mới. Giao dịch coinbase chịu trách nhiệm phát hành tiền điện tử mới được đúc vào lưu thông như một phần thưởng cho quá trình khai thác bitcoin.
Các thợ đào thành công trong việc giành chiến thắng trong cuộc thi bằng chứng công việc dựa trên mật mã của Bitcoin sẽ kiếm được các token mới được đúc này dưới dạng “phần thưởng khối”.
Dữ liệu chứng thực, còn được gọi là ScriptSig hoặc Unlocking Script, bao gồm thông tin chữ ký số và khóa công khai cần thiết để mở khóa bitcoin đã chuyển. Bản nâng cấp SegWit đã giới thiệu một “trường chứng thực” riêng cho phần ScriptSig của một giao dịch.
Bằng cách xử lý thông tin chữ ký số riêng biệt với trường nhập giao dịch, có nhiều không gian hơn cho các giao dịch để phù hợp với mỗi khối.
Nhiều giao dịch hơn trên mỗi khối tương đương với khả năng thông lượng giao dịch cao hơn. Vì vậy, thay vì 2-3 giao dịch mỗi giây, Bitcoin có thể xử lý từ 7-10 giao dịch SegWit mỗi giây. Tăng dung lượng cũng có nghĩa là phí thấp hơn, vì blockchain Bitcoin có thể xử lý khối lượng giao dịch cao hơn.
Mặc dù có sự tách biệt, điều quan trọng cần lưu ý là các nút vẫn xử lý cả dữ liệu giao dịch và dữ liệu chứng thực trên chuỗi. Không có sidechain hoặc giao thức Lớp 2 nào được sử dụng.
Trọng lượng khối
Trước SegWit, các thợ đào đo các khối bitcoin theo kích thước (tính bằng byte). Hệ thống này hoạt động tốt khi các khối chứa cả dữ liệu chứng thực và dữ liệu giao dịch, nhưng gặp vấn đề khi chúng bị tách rời.
Để khắc phục điều này, bản nâng cấp đã giới thiệu một chỉ số gọi là trọng lượng khối để quản lý kích thước của các khối.
Với khái niệm này, mỗi khối 1 megabyte bao gồm 4.000.000 đơn vị trọng lượng (WU). Mỗi giao dịch được gán một trọng lượng dựa trên công thức sau:
Kích thước giao dịch cơ sở tính bằng byte (không có dữ liệu chứng thực) * 3 + Tổng kích thước giao dịch tính bằng byte.
Bằng cách loại bỏ dữ liệu trường chứng thực khỏi tính toán, các giao dịch SegWit có trọng lượng thấp hơn nhiều. Mặt khác, một giao dịch không phải SegWit vẫn chứa dữ liệu chứng thực. Điều này có nghĩa là các giao dịch không phải SegWit luôn nặng gấp 4 lần so với các giao dịch SegWit.
Khái niệm này về mặt lý thuyết làm tăng kích thước của một khối bitcoin từ 1MB lên 4MB, nếu một khối gần như hoàn toàn bao gồm dữ liệu chứng thực. Tuy nhiên, điều này không thể thực hiện được trong thực tế.
Lợi ích chính của hệ thống trọng số là nó khuyến khích các thợ đào xử lý các khối chủ yếu chứa các giao dịch SegWit. Giả sử các giao dịch SegWit có cùng mức phí với các khối cũ, một thợ đào có thể xử lý nhiều giao dịch SegWit hơn trên mỗi khối. Càng xử lý nhiều giao dịch trên mỗi khối, họ càng kiếm được nhiều phí.
Một tình huống đôi bên cùng có lợi. Hoặc bạn có thể nghĩ vậy.
Không còn vấn đề dễ uốn giao dịch
Theo cấu trúc SegWit, ID giao dịch được băm chỉ chứa thông tin giao dịch, không phải thông tin trường chứng thực.
Thay đổi này loại bỏ thành phần có thể sửa đổi của một giao dịch bitcoin mà trước đây đã cho phép các cuộc tấn công dễ uốn.
Kết quả là, các giải pháp mở rộng thứ cấp như Mạng Lightning Bitcoin đã trở nên khả thi.
Tại sao SegWit lại gây tranh cãi? 🤔
Nhiều người trong cộng đồng phát triển cảm thấy rằng SegWit chưa đủ để giải quyết các vấn đề mở rộng của Bitcoin.
Các lập luận chính chống lại việc kích hoạt SegWit bao gồm:
- Thông lượng tăng lên của Bitcoin là 7-10 giao dịch mỗi giây vẫn chưa đủ cao cho một hệ thống thanh toán toàn cầu, phi tập trung.
- Phí sẽ vẫn tương đối cao, khiến những thứ như giao dịch vi mô không khả thi về mặt tài chính.
- Các thợ đào vẫn có thể xử lý các khối giao dịch cũ, nghĩa là tính dễ uốn vẫn là một mối đe dọa.
- Sau đó, người ta phát hiện ra rằng SegWit sẽ vô hiệu hóa cơ chế ASICBOOST của Bitmain; một lỗ hổng được sử dụng để tăng đáng kể hiệu quả của giàn khai thác.
Khoảng một năm sau đề xuất của Wuille, ông và các nhà phát triển Bitcoin Core khác bao gồm Eric Lombrozo đã chuẩn bị mã để đưa vào hoạt động trong bản cập nhật Bitcoin Core 0.13.1 sắp tới. Bước cuối cùng còn lại để kích hoạt SegWit là các thợ đào bắt đầu xử lý các khối SegWit mới.
Để củng cố việc triển khai, hơn 95% tất cả các thợ đào bitcoin sẽ cần thể hiện sự ủng hộ đối với SegWit trong vòng hai tuần đầu tiên kể từ khi nó được khởi xướng — một trở ngại lớn khi xem xét các hoàn cảnh vào thời điểm đó.
Soft fork do người dùng kích hoạt
Không cần phải nói, các công ty khai thác lớn như Bitmain vẫn không hài lòng với những thay đổi được đề xuất và từ chối hỗ trợ kích hoạt SegWit.
Đầu năm 2017, một nhà phát triển ẩn danh tên là “Shaolinfry” đã nêu khả năng các nút Bitcoin thực thi một soft fork trong một bài đăng trên bitcoin-dev trực tuyến.
Một soft fork do người dùng kích hoạt chưa từng được thử nghiệm trên mạng Bitcoin trước đây, nhưng nó sẽ cho phép các nhà phát triển triển khai SegWit với khoảng 51% sự hỗ trợ từ các thợ đào. Những người từ chối hỗ trợ các khối mới có nguy cơ bị các nút từ chối khối của họ. Giải pháp này không phải là không có rủi ro. Nếu SegWit không nhận được sự hỗ trợ đầy đủ từ các thợ đào, kết quả chắc chắn sẽ dẫn đến việc phân tách chuỗi.
Những người phản đối SegWit đã đề xuất một bản nâng cấp hard fork SegWit 2X khác. Một bản sẽ triển khai SegWit và tăng kích thước khối của Bitcoin lên 2MB.
Không giống như bản nâng cấp trước, SegWit 2X sẽ không tương thích ngược với các phiên bản trước của ứng dụng khách Bitcoin. Những thay đổi này có nghĩa là các nút sẽ phải cập nhật phần mềm của họ để tiếp tục hoạt động trên mạng.
SegWit & thỏa thuận New York 🗽
Các công ty hàng đầu trong ngành đã gặp nhau tại Consensus 2017 và cùng ký một bản ghi nhớ có tên "Thỏa thuận New York." Tài liệu này đã đưa ra kế hoạch để SegWit đi vào hoạt động vào mùa hè và để kích thước khối của Bitcoin tăng lên 2MB vào tháng 11.
Trước tháng 11, Shaolinfry đã soạn thảo hai Đề xuất cải tiến Bitcoin (BIP); BIP148 và BIP149. Đề xuất trước đại diện cho một giải pháp nhanh chóng và dứt khoát; báo hiệu hỗ trợ cho các khối SegWit hoặc các nút sẽ từ chối các khối của bạn. Đề xuất sau cung cấp một thời gian dài hơn để các thợ đào tham gia, đặt thời hạn kích hoạt vào tháng 7 năm sau.
Khi ngày đó đến gần, kỹ sư bảo hành của Bitmain, James Hillard, đã đề xuất một BIP mới; BIP91. Giải pháp của ông nhằm mục đích làm cho cả SegWit 2X và BIP148 tương thích với nhau. Tại sao phải mạo hiểm phân tách chuỗi vì hai bản cập nhật SegWit cạnh tranh khi bạn có thể làm cho cả hai tương thích?
Vào ngày 1 tháng 8, sự hỗ trợ khai thác đầy đủ đã củng cố việc kích hoạt SegWit. Tuy nhiên, giai đoạn thứ hai của Thỏa thuận New York đã không nhận được sự ủng hộ tương tự.
Việc không tăng kích thước khối của Bitcoin lên 2MB đã dẫn đến sự hình thành của Bitcoin Cash (BCH) — một dự án phân nhánh mới từ blockchain Bitcoin.
Tầm quan trọng của ngày độc lập Bitcoin
Việc giới thiệu SegWit và quyết định của cộng đồng về việc từ chối tăng kích thước khối đã đánh dấu một khoảnh khắc quan trọng đối với cộng đồng Bitcoin rộng lớn hơn.
SegWit đã cho thấy tầm quan trọng của sự đồng thuận khi nói đến những thay đổi đối với blockchain Bitcoin cũng như mức độ phân quyền mà bitcoin mang lại.
Không một cá nhân nào có thể chiếm quyền kiểm soát mạng lưới và thực hiện đề xuất của họ.
Thay vào đó, cộng đồng đã tranh luận, lặp lại và tiếp tục quá trình dài đạt được sự đồng thuận với tư cách là một nhóm tập thể — không theo sự chỉ đạo của một cá nhân duy nhất.
Bắt đầu mua Bitcoin
Bây giờ bạn đã tìm hiểu tất cả về SegWit, bạn đã sẵn sàng tiếp tục hành trình tiền điện tử của mình và mua bitcoin chưa?
Hãy xem hướng dẫn của Kraken Learn Center để biết thêm thông tin về Cách mua Bitcoin (BTC) và đăng ký tài khoản với Kraken ngay hôm nay.