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: 

 

Việc làm blockchain - web3

3D Artist (Junior)

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 15 triệu đồng

(Hà Nội) Junior/Middle Business Analyst

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 30 triệu đồng

Nhân Viên Tester (AppotaPay)

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

(Hà Nội) Junior/Middle Scrum Master

Hạn ứng tuyển 29/11/2024
Mức lương: Lên đến 25 triệu đồng

Chuyên Viên Media

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

(Hà Nội) CTV Media (OTA Network)

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

(REMOTE/Hà Nội) Game Designer (Game Casual)

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

Project Manager (Adsota)

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

Digital Marketing Executive (Adsota)

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

Chuyên Viên Digital Marketing (Có Tiếng Trung)

Hạn ứng tuyển 29/11/2024
Mức lương: 12 - 20 triệu đồng

(Hà Nội) Marketing Manager _upto $1500

Hạn ứng tuyển 29/11/2024
Mức lương: 1200 - 1800 USD

(Hà Nội) Junior/Middle/Senior IOS Developer (Salary: 15 - 40M)

Hạn ứng tuyển 30/12/2024
Mức lương: 15 - 40 triệu đồng

(Hà Nội) Junior/Middle/Senior Data Analyst (Salary: 15 - 30M)

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

(Hà Nội) Junior/Middle Product Owner (Net Salary: 15 - 30M)

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

(Hà Nội) Junior/Middle Flutter Developer (Upto 30M)

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

(Hà Nội) Junior System Admin (Kdata)

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

(Hà Nội) Senior Java Developer

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

(Hà Nội) Senior Automation Tester

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

Game Designer (net Salary: 10 - 35m)

Hạn ứng tuyển 30/12/2024
Mức lương: 10 - 35 triệu đồng

Middle Business Analyst

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