Segwit là gì? - BlockchainWork Insider

Segwit là gì?

Segwit là gì?

Chúng ta đã biết nhiều về những lợi ích nổi trội của blockchain, song không có gì là hoàn hảo. Blockchain cũng có vài vấn đề về khả năng mở rộng và SegWit được ra đời để giải quyết vấn đề này. Trong bài viết này hãy cùng BlockchainWork tìm hiểu xem SegWit là gì và nó khắc phục vấn đề này của blockchain như thế nào.

Ổ khoá và chìa khoá trong Bitcoin (scriptSig and scriptPubKey)

Để hiểu Segwit, trước tiên bạn cần có một số kiến ​​thức về giao dịch Bitcoin. 

Các giao dịch (dữ liệu giao dịch) được ghi lại trên chuỗi khối Bitcoin bao gồm hai phần: đầu vào và đầu ra. Giao dịch khi gửi tiền là đầu vào và chứa thông tin của người gửi. Mặt khác, giao dịch khi nhận tiền là đầu ra và chứa thông tin của đích. Đầu vào và đầu ra cũng được mô tả trong các bài viết sau.

Trong một giao dịch Bitcoin, input (đầu vào) đề cập đến số tiền được chi tiêu và output (đầu ra) đề cập đến số tiền nhận được. Mỗi đầu vào chứa tham chiếu đến đầu ra giao dịch trước đó, được gọi là “ID giao dịch” và “index” xác định đầu ra nào trong giao dịch đó đang được chi tiêu. Nó cũng chứa một chữ ký điện tử, được gọi là scriptSig, chứng minh rằng người chi tiêu bitcoin được ủy quyền để làm như vậy. 

Mặt khác, mỗi output chứa địa chỉ đích (script PubKey) và số lượng bitcoin sẽ được chuyển. ScriptPubKey chỉ định cụ thể các điều kiện phải được đáp ứng để chi tiêu bitcoin trong tương lai.

Cả scriptSig và scriptPubKey đều được viết bằng ngôn ngữ lập trình dành riêng cho Bitcoin được gọi là “transaction script”. ScriptSig còn được gọi là ” unlocking script (tập lệnh mở khóa)” vì nó chứa chữ ký số và bất kỳ dữ liệu cần thiết nào khác để chứng minh rằng người chi tiêu bitcoin được phép làm như vậy. Chữ ký này được tạo bởi chủ sở hữu khóa riêng được liên kết với địa chỉ Bitcoin. ScriptSig sử dụng chữ ký và bất kỳ dữ liệu cần thiết nào khác để “mở khóa” số bitcoin được sử dụng. 

Mặt khác, script PubKey được gọi là “locking script (tập lệnh khoá)” vì nó chứa các điều kiện phải đáp ứng để chi tiêu bitcoin trong tương lai. Các điều kiện này thường là một phương trình toán học chỉ có thể được giải bởi người có khóa riêng (private key) được liên kết với địa chỉ đích. scriptPubKey “khóa” bitcoin chủ yếu để chỉ người có khóa riêng tư chính xác mới có thể giao dịch chúng. Tóm lại, scriptSig được sử dụng để chứng minh quyền sở hữu số bitcoin được chi tiêu, trong khi scriptPubKey được sử dụng để chỉ định các điều kiện phải đáp ứng để chi tiêu bitcoin trong tương lai.

o-do-minh-hoa-scriptSig-va-scriptPubkey-Segwit

 

Sơ đồ minh hoạ ScriptSig và scriptPubkey 

Vậy SegWit là gì?

Segwit là từ viết tắt của “Segregated Witness”, dịch theo nghĩa đen là “tách chữ ký”. Hiểu theo một cách khác, Segwit tách chữ ký có trong scriptSig của Bitcoin và lưu trữ ở một khu vực riêng. Sự tách chữ ký này cho phép xử lý nhiều giao dịch hơn trong mỗi khối, tăng không gian của mạng. Dữ liệu chữ ký được lưu trữ trong một khu vực riêng gọi là “witness (tạm dịch: nhân chứng)” và không được đưa vào tính toán kích thước của giao dịch, vì thế nó giúp giải phóng không gian trong mỗi khối và cho phép xử lý nhiều giao dịch hơn.

SegWit được đề xuất bởi nhà phát triển Peter Wuille và có thể triển khai thông qua một soft fork. Điều này nghĩa là nó có thể được thêm vào giao thức Bitcoin mà không gây ra sự phân chia trong chuỗi khối. Đây là một thay đổi tương thích ngược, nghĩa là nó duy trì khả năng tương thích với tất cả dữ liệu trong quá khứ. Trước SegWit, dữ liệu chữ ký chiếm khoảng 60% chuỗi khối Bitcoin, cản trở khả năng mở rộng từ góc độ dung lượng dữ liệu. Bằng cách tách riêng dữ liệu chữ ký, SegWit cho phép sử dụng không gian chuỗi khối hiệu quả hơn và cải thiện khả năng mở rộng. Ngoài ra, nó cũng giúp giải quyết các vấn đề liên quan đến tính linh hoạt của giao dịch và là điều kiện tiên quyết để triển khai Lightning Network, một giải pháp mở rộng quy mô được đề xuất cho phép giao dịch ngoài chuỗi nhanh hơn và rẻ hơn.

>> Xem thêm: Lightning Network là gì?

Ưu điểm của SegWit

Tóm tắt hai ưu điểm chính của SegWit như sau:

Tăng kích thước khối

Một trong những lợi ích chính của SegWit là khả năng tăng dung lượng của từng khối trên chuỗi khối Bitcoin. Bằng cách tách dữ liệu chữ ký (hoặc dữ liệu “witness”) khỏi phần còn lại của dữ liệu giao dịch, SegWit cho phép đưa nhiều giao dịch hơn vào mỗi khối mà không làm tăng kích thước khối. Do đó, việc thay đổi về cách lưu trữ dữ liệu này sẽ cho phép lưu trữ lượng thông tin nhiều gấp bốn lần trong kích thước khối 1 MB.

Một công thức tính kích thước mới được đưa ra dựa vào SegWit như sau:

Dữ liệu khác ngoài witness + witness/4 ≤ 1MB (witness: dữ liệu liên quan đến chữ ký)

Phần chữ ký và phần dữ liệu không phải chữ ký được phân tách như trong công thức trên mà không làm thay đổi giới hạn quy ước về kích thước khối ≤ 1MB. Do đó, nếu tất cả thông tin trong dữ liệu là chữ ký, thì về mặt lý thuyết, có thể lưu trữ tối đa 4MB dữ liệu giao dịch. Tuy nhiên, sẽ không thực tế lắm nếu tính toán theo trường hợp tất cả dữ liệu giao dịch là dữ liệu chữ ký, nên kích thước khối trung bình thực tế dự kiến ​​sẽ rơi vào khoảng 1,7 MB.

Giải quyết tính linh hoạt của giao dịch

Bitcoin có một lỗ hổng được gọi là “tính linh hoạt trong giao dịch”. Để xác định từng giao dịch, Bitcoin sử dụng giá trị băm của toàn bộ dữ liệu giao dịch được gọi là ID giao dịch. Đây là giá trị băm được mô tả khi kiểm tra nội dung chuyển tiền trên Blockchain.com, v.v. Tuy nhiên, ID giao dịch này thực sự có thể bị thay đổi bởi một nút độc hại. Tính linh hoạt của giao dịch là một lỗ hổng trong mạng Bitcoin cho phép một nút độc hại thay đổi ID giao dịch của một giao dịch mà không thay đổi các chi tiết giao dịch như điểm đến, số tiền và địa chỉ. Điều này có thể gây nhầm lẫn và gây khó khăn cho việc theo dõi các giao dịch trên mạng. Và vấn đề này cũng là lý do SegWit được tạo ra. SegWit là một bản nâng cấp phần mềm cho Bitcoin, giải quyết lỗ hổng này bằng cách cô lập tập lệnh đầu vào gây ra tính linh hoạt và tạo một vùng tập lệnh mới được tham chiếu thay vì tập lệnh đầu vào trước đó. Điều này ngăn chặn các nỗ lực thay đổi chi tiết giao dịch và giải quyết hiệu quả vấn đề về tính linh hoạt của giao dịch.

Kết luận

Segwit được xem là một bước phát triển lớn trong thế giới công nghệ chuỗi khối. Nó giúp tăng hiệu quả các giao dịch, cải thiện khả năng mở rộng của chuỗi cũng như giúp người dùng có thể giảm đáng kể các chi phí giao dịch và làm tăng độ tin cậy khi lưu trữ dữ liệu. 

Với việc đưa vào blockchain, Segwit đã cách mạng hóa cách các công ty xử lý các giao dịch kỹ thuật số và lưu trữ dữ liệu, điều này chắc chắn sẽ định hình tương lai của công nghệ blockchain. Hy vọng bài viết trên hữu ích với các bạn và đừng quên đón chờ các bài viết sau thú vị hơn.

BlockchainWork biên dịch

Nguồn: Gaiax Blockchain, Blockchain101

>> Có thể bạn quan tâm: 

 

Top 6 Blockchain Applications in Vietnam

Phạm Ngân 05/01/2025

Blockchain has become a promising technology in many fields in Vietnam, especially in education, health, entertainment, manufacturing, state administration and banking. In particular, blockchain is not simply a data storage technology but also a means to verify and…

Việc làm blockchain - web3

(Hà Nội) Senior Business Development Tại Công Ty Agency The20 - Lương Upto 22 Triệu VNĐ

Hạn ứng tuyển 29/09/2025
Mức lương: 17 - 22 triệu đồng

(Remote - Parttime) Senior Game Developer

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(Hà Nội) Trợ Lý Phân Tích Kinh Doanh

Hạn ứng tuyển 24/04/2025
Mức lương: 20 - 30 triệu đồng

(Hà Nội) Business Analyst (Lead)

Hạn ứng tuyển 29/04/2025
Mức lương: Lên đến 60 triệu đồng

(HCM) React Native (Senior)

Hạn ứng tuyển 29/04/2025
Mức lương: Lên đến 50 triệu đồng

(Hà Nội) IT Comtor

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(Hà Nội) PadiTech TUYỂN KỸ SƯ CẦU NỐI - BRSE

Hạn ứng tuyển 29/04/2025
Mức lương: 50 - 70 triệu đồng

(Hà Nội) Trợ Lý Giám Đốc

Hạn ứng tuyển 29/04/2025
Mức lương: 15 - 20 triệu đồng

(Hà Nội) Test Lead

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(Hà Nội) Test Leader

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(Hà Nội) IT Comtor (từ 6 Tháng Kinh Nghiệm)

Hạn ứng tuyển 29/04/2025
Mức lương: 18 - 30 triệu đồng

(Hà Nội) Java Developer (Middle)

Hạn ứng tuyển 29/04/2025
Mức lương: 20 - 30 triệu đồng

(Hà Nội) Project Manager (English Fluent)

Hạn ứng tuyển 29/04/2025
Mức lương: Lên đến 60 triệu đồng

(HCM) React Native (Lead)

Hạn ứng tuyển 29/04/2025
Mức lương: Lên đến 50 triệu đồng

(Hà Nội) Blockchain Developer (Fluent In English)

Hạn ứng tuyển 11/04/2025
Mức lương: 16 - 30 triệu đồng

(Hà Nội) Middle Node JS Developer

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(Hà Nội) Tester (Fresher)

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(HCM) VIDEO EDITOR [KHỐI GFI RESEARCH]

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(HCM) VIDEO CONTENT CREATOR [KHỐI GFI RESEARCH]

Hạn ứng tuyển 29/04/2025
Mức lương: Thỏa thuận

(Hà Nội) PHP DEVELOPER (MIDDLE)

Hạn ứng tuyển 29/04/2025
Mức lương: 15 - 30 triệu đồng