2020/02/05
Cryptocurrency-related

Sharding là gì? Giải thích về công nghệ là giải pháp cho vấn đề về khả năng mở rộng Ethereum!

​“Sharding là gì?”, “Ngay cả Ethereum cũng có vấn đề về khả năng mở rộng (Scalability problem) ư?”

Chắc hẳn có nhiều người có cùng suy nghĩ như vậy.

Sharding là một trong những giải pháp cho vấn đề mở rộng của Ethereum.

Bài viết này sẽ giải thích chi tiết về cơ chế của Sharding và vấn đề mở rộng (Scalability problem) của Ethereum

Vấn đề về khả năng mở rộng (Scalability problem) của Ethereum

Ethereum vốn dĩ là gì?

Ethereum là tên gọi của 1 nền tảng phi tập trung xây dựng và thực hiện Hợp đồng thông minh (Smart contract) hay các ứng dụng phi tập trung (Dapps).

Smart contract là đặc trưng lớn nhất của Ethereum. Nó cho phép đăng lên blockchain “hợp đồng được viết bằng lập trình”, hứa hẹn sẽ rất phát triển trong tương lai.

Loại tiền được sử dụng trong nền tảng Ethereum này cũng được gọi với cùng cái tên là “Ethereum”, và hiện tại là loại tiền ảo đứng thứ 2 về tổng kim ngạch giá thị trường..

Vấn đề về khả năng mở rộng (Scalability problem)

Nói 1 cách đơn giản, đó là “ việc phát sinh các vấn đề như chậm trễ khi chuyển tiền, tăng phí, giảm tốc độ xử lý… do sự gia tăng số lượng user hay số lượng nút”.

Khi số lượng user tăng lên, số lượng giao dịch cũng sẽ tăng lên. Nếu như vậy, Blockchain sẽ không thể xử lý hết và phát sinh ra vấn đề chậm trễ khi chuyển tiền.

Ngoài ra, Ethereum lại là nền tảng ứng dụng phi tập trung.

Trên thực tế, số lượng nút đang là hơn 20 nghìn, nhiều áp đảo hơn so với số lượng nút của Bitcoin, vì vậy có thể nói rằng nó chỉ được phân tán ở mức độ như vậy. Nếu số lượng nút quá nhiều, nó sẽ dẫn đến sự chậm trễ khi xử lý giao dịch.

Tôi nghĩ là vấn đề về khả năng mở rộng của Bitcoin thường được đưa ra bằng sự khuấy động phân tách của Bitcoin, nhưng Ethereum cũng gần như chắc chắn sẽ phải đối diện với vấn đề về khả năng mở rộng trong tương lai.

Bên cạnh đó, Ethereum ngoài các giao dịch tiền còn cho phép viết cả nội dung hợp đồng bằng Smart contract, vì vậy dung lượng dữ liệu cho phần đó cũng tăng lên nhiều, do đó rất dễ xảy ra vấn đề về khả năng mở rộng.

Kỹ thuật Sharding mà chúng tôi giới thiệu lần này đang được triển khai như 1 giải pháp cho vấn đề mở rộng của Ethereum.

Sharding là gì?

​​Chúng tôi đã giới thiệu Sharding là 1 trong những giải pháp cho vấn đề về khả năng mở rộng của Ethereum. Vậy hãy cùng tìm hiểu sâu hơn về Sharding nhé!

​Nguồn gốc là 1 thuật ngữ hệ thống cơ sở dữ liệu

Sharding vốn dĩ là 1 thuật ngữ của hệ thống cơ sở dữ liệu, nó chỉ ra phương pháp tải cân bằng cơ sở dữ liệu.

Chúng phân tán gánh nặng bằng việc phân chia dữ liệu thành một vài cơ sở dữ liệu. Khi đó, mỗi cơ sở liệu được gọi là một phân đoạn (shard).

Tất cả các phân đoạn (shard) cùng tạo thành một cơ sở dữ liệu logic đồng nhất, gọi là cơ sở dữ liệu phân tán (shard data base).

Sharding của Ethereum là gì?

Như đã đề cập ở phần trước, Ethereum đang phải đối diện với vấn đề về khả năng mở rộng (Scalability problem).

Hơn nữa, Vitalik – nhà phát triển Ethereum cũng đề cập rằng “Hiện tại, tất cả các nút đang xử lý tất cả các giao dịch. Điều này khiến cho khả năng xử lý của Ethereum cũng chỉ giống như khả năng xử lý của 1 nút”.

Một trong những phương pháp giải quyết vấn đề đó một cách hiệu quả chính là “Sharding”.

Trong bài viết này, chúng tôi sẽ giải thích về Sharding một cách đơn giản theo thứ tự.

  1. Các nút trên Blockchain được phân chia ngẫu nhiên vào các shard – đó là các nhóm được tạo thành từ nhiều nút khác nhau.
  2. Mỗi shard sẽ chỉ xử lý các giao dịch đã được phân chia.
  3. Kết quả đó được chia sẻ giữa các shard để có sự đồng thuận chung.
  4. Các nút trong shard được thay thế định kỳ, ngẫu nhiên.

Dựa vào sharding, số lượng giao dịch mỗi 1 nút phải xử lý sẽ giảm đi, nhờ đó mà thời gian xử lý được rút ngắn đáng kể.

Cơ chế của Sharding

Ở trên chúng tôi đã giải thích sơ lược về Sharding, còn ở phần này, chúng tôi sẽ đi vào giải thích chi tiết đến tận cơ chế hoạt động của Sharding.

Chúng tôi xin sắp xếp lại một lần nữa trình tự của Sharding như sau.

Trình tự của Sharding

  • 1. Các nút trên Blockchain được phân chia ngẫu nhiên vào các shard – đó là các nhóm được tạo thành từ nhiều nút khác nhau
  • 2. Mỗi shard chỉ xử lý giao dịch đã được phân chia.
  • 3. Kết quả đó được chia sẻ giữa các shard để có sự đồng thuận chung.
  • 4. Các nút trong shard được thay thế định kỳ, ngẫu nhiên.

Sự hình thành các Shard

Đây là phần tương ứng với trình tự 1 và 2 của Sharding.

Ở trên, tôi đã giải thích rằng Ethereum là một nền tảng ứng dụng phi tập trung (Dapps) và đang có hơn 20000 nút.

Hãy nhìn vào sơ đồ ở trên.Ở đây giả sử tổng số nút của Ethereum là 20000 nút.

Ví dụ, khi 100 giao dịch được tạo ra và không được trang bị tính năng Sharding, mỗi nút sẽ cần phải xác nhận 100 lần.

Vậy điều gì sẽ xảy ra khi Sharding được trang bị?

Theo như hình minh hoạ ở trên, nhờ có Sharding, tất cả 20000 nút sẽ được chia vào 4 shard, mỗi shard có 5000 nút.

Nếu như vậy, mỗi shard sẽ được chia làm 25 (=100÷4) giao dịch, do đó mỗi nút chỉ cần thực hiện xác nhận 25 lần.

Trao đổi biên lai (Receipt)

Đây là phần tương ứng với trình tự 3 của Sharding.

Cơ chế giảm tải cho mỗi nút bằng việc chia tất cả các nút thành các nhóm tập hợp nhiều nút (các shard) và phân phối các giao dịch như đã giải thích như ở trên.

Thế nhưng, Sharding không dừng lại ở đây.

Cần thiết phải có sự giao tiếp với nhau để biết được shard nào đang xử lý giao dịch nào.

“Biên lai” sẽ được tạo ra dựa trên giao dịch và cũng có thể nhìn thấy từ các shard khác.

Đây là cơ chế thực hiện giao tiếp bằng việc trao đổi biên lai như là dữ liệu của giao dịch.

Cần có Pos

Ethereum hiện đang sử dụng thuật toán đồng thuận gọi là PoW (Proof of Work), nhưng sau này sẽ chuyển sang PoS (Proof of Stake).

Sharding được thiết kế lấy việc đưa PoS vào sử dụng làm tiền đề.

Mỗi shard là độc lập, vì vậy sức mạnh phân bổ (hash power) của mỗi loại là khác nhau.

Ở trạng thái như vậy, có khả năng sức mạnh phân bổ sẽ bị biến dạng trong khi quá trình xác nhận.

Ở trạng thái đó, nếu cứ giữ nguyên PoW thì có thể dễ dàng công kích 51% . PoW quyết định liệu thuật toán đồng thuận có thể phê duyệt khối bằng sức mạnh tính toán hay không.

quyết định có thể phê duyệt khối theo khối lượng và thời gian nắm giữ tiền, nên không thể công kích bằng việc nắm giữ các shard có sức mạnh phân bổ (hash power) như PoW với ý đồ xấu.

Lộ trình thực hiện Sharding

Lộ trình Sharding đã được công bố vào tháng 3 năm 2018.

Theo đó, Sharding được thực hiện theo 3 giai đoạn.

Dự định sẽ công bố đầu tiên là “Ruby”, tiếp theo là “Sapphire”, Diamond và cuối cùng là hướng đến thực hiện trên toàn bộ mạng lưới.

Ruby

​Thời gian thực hiện: 2018

Ở giai đoạn đầu tiên “Ruby”, dự định tạo ra phiên bản đơn giản của Sharding và hiện nay đang trong quá trình tạo.

Sapphire

Thời gian thực hiện: 2020?

Ở giai đoạn 2 “Sapphire”, sẽ mài giũa để Ruby có thể sử dụng được cả trên mạng Ethereum.

Diamond

Thời gian thực hiện: chưa xác định

Điều chỉnh phần tốt nhất của lần công bố trước đây. Đây được cho là phần công bố khó khăn và mất nhiều thời gian nhất.

Hỏi đáp ​​về Sharding

Có giải pháp nào khác cho vấn đề về khả năng mở rộng của Ethereum không?

ESong song với Sharding, Ethereum cũng đang triển khai giải pháp “Casper” và “Plasma”.

Hiện tại, Ethereum đang sử dụng PoW trong thuật toán đồng thuận, và dự án để chuyển nó sang PoS gọi là “Casper”.

Ngoài ra, “Plasma” là dự án được công bố bởi Vitalik Buterin-nhà sáng lập Ethereum và Joseph Poon-nhà sáng lập Lightning Network, được kỳ vọng có thể cải thiện đáng kể số lượng giao dịch và khối lượng dữ liệu trong 1 giây bằng công nghệ side-chain có nền tảng là cây phân cấp.

Trang bị Sharding có ảnh hưởng đến giá ETH không?

Ehrsam, đồng sáng lập Coinbase-một sàn giao dịch tiền ảo quy mô lớn, đã phát ngôn rằng: trong tương lai, Ethereum “cần phải cải thiện khả năng mở rộng hơn 100 lần so với hiện tại để có thể hỗ trợ Dapps”.

Ethereum khắc phục được vấn đề về khả năng mở rộng và để có thể đáp ứng được nhu cầu của một nền tảng ứng dụng phi tập trung thì có lẽ giá trị của nó sẽ tăng.

 


TỔNG KẾT

Các bạn thấy sao?

Giải quyết vấn đề về khả năng mở rộng là điều bắt buộc để Ethereum có thể phát triển hơn nữa.

Sau này hãy chú ý đến sự phát triển công nghệ liên quan đến Ethereum!