Hệ thống phân tán trên blockchain

Tram Ho

chặn-blockchain-300h.png

Hệ thống phân tán trên blockchain

Theo định nghĩa trên Wiki, điện toán phân tán là một nhánh của khoa học máy tính nghiên cứu các hệ thống phân tán. Hệ thống phân tán là một hệ thống phần mềm có các thành phần được đặt trên các máy tính khác nhau, được kết nối trong mạng. Các máy tính này hoạt động cùng nhau như một thực thể duy nhất để hoàn thành một nhiệm vụ chung bằng cách trao đổi tin nhắn. Điện toán phân tán là điện toán song song phi tập trung. Các loại phần cứng, ngôn ngữ lập trình, hệ điều hành và các tài nguyên khác được sử dụng có thể rất khác nhau. Nó tương tự như phân cụm máy tính với sự khác biệt chính là sự phân bố tài nguyên theo địa lý.

Các hệ thống phân tán dường như rất phổ biến trong thực tế. Hầu hết các ứng dụng ngày nay, đặc biệt là các ứng dụng Internet, được triển khai dưới dạng Hệ thống phân tán. Triển khai phần mềm, đặc biệt là các hệ thống lớn, trên nhiều đơn vị tính toán (thay vì sử dụng một máy tính) có nhiều lợi ích, chẳng hạn như:

  • Cung cấp thêm tài nguyên khi hệ thống cần xử lý khối lượng công việc lớn hơn.
  • Chỉ sử dụng một bộ máy tính đồng nghĩa với nguy cơ phần mềm bị sập (crash) nếu bộ máy đó gặp sự cố. Sử dụng nhiều đơn vị máy sẽ cho phép bạn tiếp tục vận hành phần mềm ngay cả khi xảy ra sự cố.
  • Khi hệ thống của bạn trở nên phức tạp và cần sự kết hợp của nhiều thành phần khác nhau, sử dụng DS cho phép bạn chia một hệ thống lớn thành nhiều đơn vị nhỏ. Mỗi đơn vị có thể hoạt động độc lập, thậm chí có thể được phát triển bởi các nhóm khác nhau với chuyên môn khác nhau.

Người dùng hệ thống có thể phân tán về mặt địa lý trên toàn cầu. Để đảm bảo chất lượng dịch vụ và hạn chế độ trễ, hệ thống máy móc cũng cần được phân bổ sao cho gần người dùng nhất có thể.

Ưu điểm của hệ thống phân tán:

  • Khả năng mở rộng: Có hai loại chia tỷ lệ: chia tỷ lệ ngang và chia tỷ lệ dọc:
  • Độ tin cậy: Độ tin cậy là khả năng chịu lỗi của hệ thống, nghĩa là hệ thống sẽ tiếp tục cung cấp dịch vụ ngay khi một hoặc nhiều thành phần (phần mềm/phần cứng) của hệ thống gặp sự cố.
  • Tính khả dụng: là tổng thời gian một hệ thống vẫn hoạt động bình thường trong một khoảng thời gian cụ thể. Thước đo tính khả dụng là tỷ lệ phần trăm thời gian hệ thống hoạt động liên tục trong một khoảng thời gian (thường là 1 năm).
  • Hiệu quả: Hiệu quả của một hệ thống phân tán là tải cao và độ trễ thấp. Điều này có nghĩa là một hệ thống có thể xử lý nhiều yêu cầu đồng thời với độ trễ thấp là một hệ thống có hiệu năng cao.
  • Khả năng quản lý: đó là khả năng dễ dàng mở rộng và bảo trì hệ thống. Nói cách khác, đó là thời gian để thực hiện sửa chữa (sửa chữa) hoặc bảo trì (maintain) khi cần thiết, thời gian càng cao thì tính khả dụng càng thấp.

Lỗi máy (lỗi nút)

Mỗi máy tính vật lý, vì nhiều lý do khác nhau, có thể gặp sự cố khi đang hoạt động. Những sự cố này được chia thành nhiều loại chính:

  • Fail-stop: Đây là dạng sự cố khiến tiến trình trên máy ngừng hoạt động (ngưng tính toán cũng như giao tiếp). Nguyên nhân của vấn đề này có thể là do máy bị treo (lỗi phần mềm, lỗi hệ điều hành…), lỗi phần cứng, hoặc do các nguyên nhân bên ngoài (ví dụ như mất điện). Đây là loại vấn đề phổ biến nhất, vì vậy khi mọi người nói về ‘thất bại’ mà không nói bất cứ điều gì khác, nó thường được hiểu là loại vấn đề này. Hầu hết các thuật toán được phát triển trong DS nhằm giải quyết loại vấn đề này.
  • Khôi phục không thành công: Quá trình có thể ngừng hoạt động trong một thời gian nhất định, nhưng sau đó quá trình khôi phục hoạt động trở lại. Nguyên nhân của loại sự cố này có thể là do máy tự động khởi động lại vì một lý do nào đó. Thường khi nói về dạng hư hỏng này, người ta cho rằng máy có khả năng lưu trữ thông tin trên ổ cứng và phục hồi các thông tin này sau khi hư hỏng.
  • Lỗi Byzantine: Sự cố máy tính không hoạt động theo yêu cầu đặt ra. Ví dụ, máy có thể gửi tin nhắn tùy ý, hoặc thay đổi trạng thái tùy ý, không như những gì được lập trình sẵn. Đây là loại sự cố khó chịu nhất, có thể xảy ra khi hệ thống gặp sự cố mà không có lý do rõ ràng (ví dụ: RAM có thể bị hỏng gây ra hiện tượng lật bit) hoặc do hệ thống bị tấn công bởi các tác nhân độc hại. .

Vấn đề mạng

Mạng máy tính cũng là sản phẩm vật chất nên cũng có thể xảy ra sự cố. Một loại sự cố phổ biến là sự cố “phân vùng mạng”, được mô phỏng bằng hình trên. Sự cố này xảy ra khi đường truyền của một hoặc nhiều máy chủ bị cắt khỏi phần còn lại của hệ thống khiến hệ thống bị chia cắt thành nhiều phần không thể giao tiếp với nhau. Trên thực tế, trong các trung tâm dữ liệu, một cụm máy chủ thường được kết nối với nhau bằng một hoặc nhiều thiết bị chuyển mạch. Lỗi cổng hoặc dây switch có thể dẫn đến một hoặc nhiều máy chủ bị ngắt kết nối, dẫn đến tình trạng chia vùng nói trên.

Hệ thống phân tán trong chuỗi khối

Chuỗi khối là một sổ cái phân tán, có nghĩa đơn giản là một sổ cái được trải rộng trên mạng giữa tất cả các đồng nghiệp (nút) trong mạng. Mỗi nút có một bản sao của Chuỗi khối và khi một khối đạt đến một số lượng giao dịch được phê duyệt nhất định thì một khối mới sẽ được hình thành

Bất kỳ máy tính nào cũng có thể tham gia mạng blockchain và trở thành trình xác thực bằng cách kết nối với internet và khởi chạy ứng dụng. Sự khác biệt là để trở thành một nút trên mạng, máy tính cần đáp ứng một số yêu cầu nhất định về tốc độ kết nối, tốc độ lưu trữ và dung lượng lưu trữ. Đối với mạng bitcoin hiện tại, do có quá nhiều thợ mỏ tham gia vận hành nên mạng đòi hỏi sức mạnh tính toán rất lớn, nếu muốn tham gia mạng cần chạy dịch vụ thông qua các mỏ để đóng góp sức lực.

Phần mềm phân tán trên blockchain

“Máy ảo Ethereum ([[EVM]]) là môi trường thời gian chạy để thực hiện giao dịch trong Ethereum. Nó bao gồm ngăn xếp, bộ nhớ, cân bằng gas (xem bên dưới), bộ đếm chương trình và bộ nhớ liên tục cho tất cả các tài khoản (bao gồm cả mã hợp đồng ). Khi một giao dịch gọi hàm của hợp đồng, các đối số trong lệnh gọi sẽ được thêm vào ngăn xếp và EVM chuyển mã byte của hợp đồng thành các thao tác ngăn xếp. Các mục trong ngăn xếp có thể được lưu trữ trong bộ nhớ hoặc bộ lưu trữ và dữ liệu từ bộ nhớ/bộ lưu trữ có thể được thêm vào vào ngăn xếp. EVM được cách ly với các tệp và quy trình khác trên máy tính của nút để đảm bảo rằng đối với trạng thái trước giao dịch và giao dịch nhất định, mọi nút đều tạo ra trạng thái sau giao dịch giống nhau, do đó cho phép đồng thuận mạng như [[PoS ]]. Định nghĩa chính thức của EVM được chỉ định trong Sách vàng Ethereum. EVM đã được triển khai trong C++, C#, Go, Haskell, Java, JavaScript, Python, Ruby, Rust, Elixir, Erlang và sắp tới là WebAssembly.”

Tập lệnh của EVM là Turing-đầy đủ. Các ứng dụng phổ biến của Ethereum bao gồm việc tạo ra các token có thể thay thế (ERC20) và không thể thay thế (ERC721) với nhiều thuộc tính khác nhau, huy động vốn từ cộng đồng (ví dụ: cung cấp tiền xu ban đầu), tài chính phi tập trung, trao đổi phi tập trung, các tổ chức tự trị phi tập trung (DAO), trò chơi, thị trường dự đoán, và cờ bạc.

Làm thế nào về quy mô cho blockchain?

Liên quan đến sức mạnh tính toán thuần túy, điện toán phân tán cung cấp khả năng mở rộng dễ dàng hơn so với điện toán tập trung. Tương đối dễ dàng để thêm nhiều máy hơn để có thêm sức mạnh tính toán và giảm bớt chúng khi nhu cầu năng lượng thấp hơn.

Tuy nhiên, blockchain có các vấn đề về khả năng mở rộng khác nhau. Trong một chuỗi khối, số lượng giao dịch được xử lý trong một khoảng thời gian cố định sẽ giới hạn tốc độ giao dịch. Do đó, vấn đề về khả năng mở rộng là một trong những vấn đề về tốc độ giao dịch. Hạn chế về khả năng mở rộng này là do các nút trong chuỗi khối cần phải đạt được sự đồng thuận về các giao dịch đang diễn ra. Do đó, mặc dù bản thân điện toán phân tán mang lại khả năng mở rộng ở mức độ cao, nhưng yếu tố lý thuyết trò chơi của chuỗi khối nói chung là thứ cản trở khả năng mở rộng về tốc độ giao dịch.

Điều này dẫn đến một khái niệm về độ khó, khi có quá nhiều máy tính tham gia xử lý giao dịch. Mạng sẽ thay đổi độ khó để giảm tranh chấp. Máy tính sẽ phải tính toán với độ khó cao hơn.

Nhược điểm là các vấn đề về hiệu suất phát sinh do mọi nút tính toán tất cả các hợp đồng thông minh trong thời gian thực. Kể từ tháng 1 năm 2016, giao thức Ethereum có thể xử lý khoảng 25 giao dịch mỗi giây. Để so sánh, nền tảng thanh toán Visa xử lý 45.000 khoản thanh toán mỗi giây. Ethereum 2.0 tiếp theo có thể phục vụ hơn 100.000 giao dịch

Ngày nay chúng ta có một loạt giải pháp để cải thiện tốc độ giao dịch trên ethereum như: Layer 2.

Thẩm quyền giải quyết

https://en.wikipedia.org/wiki/Ethereum https://www.youtube.com/user/cbcolohan https://www.worldbank.org/en/topic/financialsector/brief/blockchain-dlt https:/ /en.wikipedia.org/wiki/Distributed_ledger https://www.youtube.com/playlist?list=PLrw6a1wE39_tb2fErI4-WkMbsvGQk9_UB

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo