Tổng quan
Flow Blockchain là một blockchain nhanh, phi tập trung, và thân thiện với lập trình viên, được thiết kế và phát triển bởi Dapper Labs, nhà phát triển của CryptoKitties và NBA Top Shot. Là một nền tảng Blockchain layer 1 vận hành thế hệ trò chơi, ứng dụng và tài sản kỹ thuật số mới.
Khi công nghệ Blockchain ngày càng được phổ biến rộng rãi tới cộng đồng người tiêu dùng. Sự thành công của các ứng dụng như NBA Top Shot là một trong những minh chứng cụ thể cho sự phát triển đầy hứa hẹn này của công nghệ Blockchain. Một lượng lớn người tiêu dùng đang đánh thức tiềm năng mà công nghệ này mang lại và toàn bộ cộng đồng xung quanh các thương hiệu, nhà phát triển, người sáng tạo, ngôi sao và người hâm mộ đang tham gia vào các ứng dụng phi tập trung mỗi ngày.
Tuy nhiên, đối với các giao thức Blockchain cung cấp năng lượng cho các ứng dụng này, khối lượng giao dịch ngày càng tăng này đặt ra một thách thức lớn: Khả năng mở rộng là thời điểm quyết định cho toàn bộ ngành công nghiệp blockchain- chỉ khi các nền tảng Blockchain có thể mở rộng quy mô lên đến hàng triệu thậm chí hàng tỷ người dùng. Vấn đề về khả năng mở rộng được giải đáp như thế nào chắc chắn sẽ định hình vai trò của blockchain đối với một lượng lớn người tiêu dùng.
Phần lớn các dự án hiện đang dựa vào hai giải pháp cho nhiệm vụ này về khả năng mở rộng ở cấp độ người tiêu dùng: Sharding (Lớp 1) và Rollup (Lớp 2). Những câu trả lời này có thể giải quyết các nhu cầu kỹ thuật tức thì, nhưng khi được đưa vào áp dụng thực tế, chúng đưa ra những rủi ro lớn hơn, giảm thiểu lợi ích của việc phân quyền và tăng thêm độ phức tạp cho các nhà phát triển và người dùng cuối trong dài hạn.
Flow Blockchain xây dựng dựa trên cấu trúc đa vai trò độc đáo, và được thiết kế để mở rộng mà không sử dụng giải pháp Sharding, cho phép cải thiện lớn về tốc độ và thông lượng trong khi vẫn bảo toàn môi trường thân thiện với lập trình viên, tuân thủ ACID.
Mọi người hãy cũng GFS Blockchain giải mã các thành phần khác nhau trong kiến trúc công nghệ của Flow Blockchain từ góc độ kỹ thuật và cập nhật ngắn và những kiến thức cơ bản trước khi phân tích các vấn đề với giải pháp mở rộng Sharding, đồng thời so sánh cách mô hình mới của Flow về các loại nút chuyên biệt của đường ống vượt qua những hạn chế này trong bài viết sau nhé!
*** Tìm hiểu chi tiết về hệ sinh thái Flow–> Click Tại đây
Kiến trúc đa nút của FLow
Kiến trúc đa nút của FLow mở rộng quy mô phù hợp với tương lai cho việc áp dụng chính thống
Bằng cách giới thiệu mô hình pipelining, Flow đề xuất một giải pháp có khả năng mở rộng hơn, phi tập trung hơn và an toàn hơn so với các giải pháp mở rộng hiện tại mà không làm tăng độ phức tạp cho các nhà phát triển hoặc không cần dựa vào các giải pháp ngoài chuỗi: Các loại nút chuyên biệt. Thay vì mỗi nút phải thực hiện tất cả công việc, các nút của Flow được chuyên biệt hóa dọc theo một đường ống giao dịch.
Flow blockchain phân chia ra làm 4 loại node theo thuật toán “Four-node-staking”, mỗi node sẽ có 1 vai trò khác nhau và từ đó các node có thể cùng lúc thực hiện các nhiệm vụ:
- Collection Nodes(Nút Thu Thập): Nhiệm vụ là thu thập thông tin sau đó sẽ được gởi đến Consensus Nodes. Có khả năng năng hiệu suất, cải thiện khả năng kết nối mạng và dữ liệu sẵn có cho các ứng dụng xây dựng trên protocol
- Consensus Nodes(Nút Đồng Thuận): Sẽ sắp xếp sự hiện diện và thứ tự ưu tiên các giao dịch trên blockchain.
- Execution Nodes(Nút Thực Hiện) : Execution sẽ là nơi xử lý và phân tích các thông tin đã được sự chấp thuận trước, sau khi phân tích xong sẽ đưa đến node cuối là Verification
- Verification Nodes(Nút Xác Minh): Verification là node có nhiệm vụ xác minh lại toàn bộ quá trình. Sau khi đã được xác minh thành công thì node này sẽ đưa ra block seal, gán cùng Consensus tạo ra 1 block hoàn chỉnh đã được xử lý và xác minh.
Ưu điểm của kiến trúc đa nút
- Quy mô đến hàng triệu theo mặc định bằng cách cung cấp một lớp cơ sở hoạt động hiệu quả cao
- Giúp cho việc tham gia mạng trở nên dễ tiếp cận hơn bằng cách giảm yêu cầu đối với một số loại nút nhất định, chúng thậm chí có thể chạy trên máy tính xách tay cấp dành cho người tiêu dùng
- Tăng khả năng phân quyền bằng cách giảm rào cản chạy một nút, điều này làm tăng khả năng có nhiều nút tham gia hơn
- Tóm tắt sự phức tạp vào giao thức để duy trì sự dễ dàng phát triển, cho phép các nhà phát triển vận chuyển các ứng dụng nhanh hơn mà không cần lo lắng về các yêu cầu cơ sở hạ tầng
- Đảm bảo trải nghiệm người dùng cuối tuyệt vời bằng cách tránh các giải pháp Lớp 2, giúp người dùng không cần phải xem xét hàm ý kỹ thuật và giữ cho việc giới thiệu đơn giản
- Duy trì tính bảo mật trên quy mô lớn , vì không có giao dịch nào phải dựa vào các tính toán ngoài chuỗi có khả năng bị hỏng và tất cả các tương tác giữa các thực thể có thể xảy ra trong một giao dịch nguyên tử, nhất quán, cô lập và lâu bền (ACID)
Bộ ba bất khả thi về khả năng mở rộng
Trong kinh tế học, có bộ ba bất khả thi cho rằng không thể thực hiện được cùng một lúc đồng thời ba chính sách gồm: chế độ tỷ giá hối đoái cố định, chính sách tiền tệ độc lập để ổn định giá cả và tự do lưu chuyển vốn. Chỉ có thể thực hiện hai trong ba chính sách này mà thôi. Thuật ngữ này dùng để chỉ tính dễ đổ vỡ của một quốc giá cố tình thi hành ba chính sách này cùng một lúc.
Còn trong ngành Blockchain, cũng có một bộ ba bất khả thi như vậy bao gồm Khả năng mở rộng (Scalability), vấn đề Bảo mật (Security) và tính Phi tập trung (Decentralization).Cho tới thời điểm hiện tại vẫn chưa một nền tảng Blockchain nào thực hiện được toàn vẹn ba tính năng trên.
“Để một blockchain được phi tập trung, điều tối quan trọng đối với người dùng thông thường là có thể chạy một nút và có một nền văn hóa nơi chạy các nút là một hoạt động phổ biến.” – Vitalik Buterin nhận định trong Giới hạn đối với khả năng mở rộng của Blockchain
Nhiệm vụ về khả năng mở rộng của blockchain luôn liên quan đến thách thức là cố gắng vượt qua những hạn chế này và thoát ra khỏi tam giác này. Trong trường hợp của Ethereum, Vitalik Buterin mô tả một giải pháp để loại bỏ những hạn chế này: Sharding.
- Phi tập trung (Decentralization) là một thuộc tính luôn cần có ở các Blockchain hiện tại. Tính năng có thể kiểm duyệt và cho phép bất kỳ ai cũng có thể tham gia vào một hệ sinh thái phi tập trung mà không gây ảnh hưởng đến hệ thống.
- Khả năng mở rộng (Scalability) liên quan đến khả năng xử lý giao dịch trên bất kỳ mạng cụ thể nào. Nếu public blockchain (như Bitcoin và Ethereum) không giới hạn đối tượng và số người sử dụng, thì hệ thống nhất định phải được thiết lập khả năng xử lý tình huống nền tảng có hàng triệu người dùng internet tham gia.
- Vấn đề an ninh (Security) liên quan đến việc đảm bảo sự an toàn cho hệ thống. Sức đề kháng trung bình tối thiểu của các Blockchain cần đạt được là phải chống lại được các cuộc tấn công như tấn công Sybil, tấn công DDoS, v.v.
Sharding
Ý tưởng về Sharding không có gì cụ thể đối với Blockchain – các hệ thống cơ sở dữ liệu thường sử dụng kiểu chia tỷ lệ theo chiều ngang này. Ý tưởng chính đằng sau chiến lược này là chia trạng thái của một blockchain thành nhiều phần nhỏ hơn và phân phối chúng trên các nút. Do đó, trạng thái được trải rộng trên nhiều chuỗi phân đoạn riêng lẻ, trong khi một chuỗi báo hiệu trung tâm đảm nhận việc điều phối và sắp xếp các chuỗi phân đoạn này.
Trong giải pháp Sharding, mỗi nút phải đảm nhận hai việc: theo dõi một chuỗi phân đoạn cụ thể và cũng theo dõi chuỗi báo hiệu chính. Yêu cầu này đưa ra một giới hạn cứng về mức độ có thể tăng khả năng mở rộng của sharding: Nếu các phân đoạn quá lớn, các nút không còn có thể xử lý các phân đoạn riêng lẻ và nếu có quá nhiều phân đoạn, các nút không thể xử lý chuỗi báo hiệu nữa.
Chính vì lý do này, Vitalik Buterin đã tuyên bố rằng chỉ có sự kết hợp giữa sharding với các chiến lược mở rộng quy mô khác – đặc biệt là các giải pháp lớp 2 như Rollup – sẽ đảm bảo mức thông lượng đủ trong dài hạn. Do sự phức tạp to lớn mà việc thực hiện các nhu cầu của Sharding (có thể thấy bằng cách nhìn vào hành trình cồng kềnh từ Ethereum đến ETH 2.0), đây là một suy nghĩ khá tỉnh táo về hiệu quả của sharding, đặc biệt là khi xem xét rằng nó đưa ra những rủi ro mới cho một mạng lưới Blockchain.
Một trong những rủi ro này là yêu cầu về số lượng người tham gia tối thiểu. Một Blockchain không Sharding luôn có thể chạy miễn là chỉ có một nút hoạt động, nhưng trong một mạng Blockchain Sharding không có nút nào có thể quản lý tất cả trạng thái của Blockchain một mình. Vitalik Buterin đưa ra cái nhìn tổng quan chi tiết hơn về vấn đề này trong bài đăng trên blog này , nhưng về cơ bản rủi ro nằm ở chỗ số lượng người tham gia mạng đột ngột giảm xuống dưới ngưỡng này – trong trường hợp như vậy, tính toàn vẹn của toàn bộ mạng đang gặp nguy hiểm.
Nhưng vấn đề chính của Sharding nằm ngoài những giới hạn và rủi ro này: Lý do tại sao Flow lại quyết định chống lại sharding như một giải pháp cho vấn đề khả năng mở rộng là vì Sharding làm tăng chi phí, độ phức tạp và cản trở các giao dịch và khả năng kết hợp tuân thủ ACID .
Để hiểu được điểm này, điều quan trọng cần ghi nhớ là một trong những chất xúc tác tuyệt vời của sự đổi mới là khả năng kết hợp: Ý tưởng rằng một ứng dụng có thể xây dựng dựa trên một ứng dụng đã tồn tại hoặc sử dụng một số chức năng của nó. Một trường hợp sử dụng phổ biến là việc nhập các giao diện tiêu chuẩn hóa (ví dụ ERC-20) từ các hợp đồng khác, giải phóng các nhà phát triển khỏi việc phát minh lại bánh xe nhiều lần; hoặc giao dịch các mã thông báo có thể thay thế được trên nhiều hợp đồng thông minh.
Trong một Blockchain không Sharding, những tương tác này trên các hợp đồng thông minh khác nhau rất đơn giản, vì chúng đều sống trong một không gian trạng thái duy nhất. Một giao dịch có thể dễ dàng là nguyên tử, nhất quán, cô lập và bền (ACID).
Tuy nhiên, trên một Blockchain Sharding, hợp đồng thông minh bên ngoài được gọi có thể sống trong một không gian trạng thái khác, trên một Sharding khác, yêu cầu các kế hoạch khóa hoặc ký quỹ phức tạp vì thông tin về bất kỳ Sharding cụ thể nào có thể thay đổi trước khi giao dịch kết thúc. Những gì từng là một giao dịch đơn lẻ, đơn giản, có thể tăng lên thành mười hoặc hai mươi tương tác chéo phân đoạn, với mỗi giao dịch này chạy mã không đồng bộ mỏng manh. Đồng thời, giao tiếp chéo phân đoạn tạo ra độ trễ bổ sung có thể làm vô hiệu hóa thông lượng bổ sung của hiệu ứng khả năng mở rộng ngay từ đầu.
Điều này cho thấy rằng sharding làm tăng độ phức tạp cho các nhà phát triển ứng dụng, ảnh hưởng đến trải nghiệm người dùng và khiến các giao dịch tuân thủ ACID khó thực hiện . Ở một nơi tập trung vào giá trị và nơi mà sự tự tin về kết quả của một giao dịch là then chốt, thì điều này đặt ra một mô hình phản đối rất lớn, giống như việc sử dụng các cấu trúc dữ liệu có thể thay đổi tùy ý cho các tài sản kỹ thuật số có giá trị . Do những hạn chế, rủi ro và chống lại các mô hình được giới thiệu này, sharding không phải là giải pháp lý tưởng để mở rộng mạng lưới blockchain để áp dụng hàng loạt trên toàn cầu.
Mô hình mới của Flow: Pipelining với các loại nút chuyên biệt
Kiến trúc đa nút của Flow cung cấp mức độ cao hơn của thông lượng và phân cấp hơn các giải pháp hiện có, trong khi vẫn giữ một cách dễ dàng phát triển, kinh nghiệm người dùng và an ninh tài sản kỹ thuật số – mà không dựa vào sharding hoặc lớp 2 giải pháp. Những tính năng cần có sự thay đổi cơ bản trong mô hình kiến trúc của giao thức: Thay vì tỉ lệ ngang, lưu lượng thúc đẩy sự phân chia dọc của lao động, một quá trình cũng được gọi là pipelining .
Pipelining được xây dựng dựa trên ý tưởng giống như Henry Ford đã có trong những năm đầu của thế kỷ 19 tại nhà máy ô tô của ông ở Highland Park, phát minh ra một khái niệm đặt nền móng cho sản xuất quy mô tiêu dùng toàn cầu: Chủ nghĩa Ford . Bí quyết thành công là sự phân công lao động theo một quy trình chuẩn hóa – khi một công nhân không phải lắp ráp tất cả các bộ phận của ô tô mà chỉ tập trung vào một nhiệm vụ cụ thể, họ có thể chuyên sâu và yêu cầu công nhân này phải mang đến bảng giảm đáng kể.
Tương tự như vậy, các mạng như Ethereum hoạt động như thể một công nhân chế tạo toàn bộ một chiếc ô tô; Mỗi nút phải thực hiện công việc kết hợp của sự đồng thuận và tính toán. Về vấn đề này, sharding chỉ đơn thuần là một ảo tưởng về lao động bộ phận: Trong khi mọi nút chỉ phải tính toán một phần của trạng thái được chia sẻ, chúng vẫn chịu trách nhiệm cho từng hoạt động tính toán của khối này và tham gia vào sự đồng thuận.
Ngược lại, kiến trúc đa nút của Flow có thể được coi như một đường ống cho phép mức độ chuyên môn hóa cao cho từng loại nút riêng lẻ, mỗi loại nút tập trung vào một nhiệm vụ cụ thể – cùng nhau, đường ống này có thể khắc phục được vấn đề nan giải về khả năng mở rộng.
Mỗi giao dịch được gửi đến mạng thông qua một nút truy cập trước tiên được đưa vào các lô, được gọi là các bộ sưu tập, bởi các nút bộ sưu tập . Các nút thu thập này chịu trách nhiệm về tính khả dụng của dữ liệu; mỗi giao dịch được hình thành tốt được lưu trữ trên một trong các nút bộ sưu tập này cho đến khi nó được đưa vào một khối.
Các bộ sưu tập được tạo thành các khối bởi các nút đồng thuận . Các nút này đảm nhận nhiệm vụ chủ quan là đặt hàng các giao dịch. Trong khi được cho là loại nút quan trọng nhất liên quan đến bảo mật giao thức, loại nút này đặc biệt nhẹ về việc sử dụng tài nguyên. Bởi vì họ chỉ yêu cầu ID giao dịch từ các nút thu thập – chứ không phải toàn bộ mã của giao dịch – yêu cầu về thông lượng dữ liệu có thể được giữ ở mức tối thiểu.
- Các nút thực thi yêu cầu mã giao dịch đầy đủ từ các nút thu thập sau khi tìm ra từ các nút đồng thuận khối nào sẽ chạy tiếp theo. Các nút này có tỷ lệ cao nhất trong tất cả các loại nút và được dành riêng để chạy các tính toán của khối nhanh nhất có thể. Số lượng nút nhỏ hơn làm giảm sự dư thừa của công việc, tăng tốc thời gian của các tính toán này. Bởi vì chúng được các nút xác minh theo dõi chặt chẽ, con số nhỏ hơn này không ảnh hưởng đến sự phân cấp tổng thể của toàn bộ giao thức. Ngoài ra, ít nút hiệu suất cao hơn có nghĩa là tiêu thụ ít năng lượng hơn và do đó ít gây hại cho môi trường hơn.
- Các nút xác minh là con mắt quan sát chặt chẽ từng bước của các nút thực thi. Sau nhiệm vụ chủ quan là sắp xếp thứ tự các giao dịch (các nút đồng thuận), bản thân các giao dịch là xác định và kết quả của chúng có thể được biết một cách khách quan. Mỗi nút trong số nhiều nút xác minh hiện đánh giá một phần con của các tính toán khối tổng thể. Nếu một bước dẫn đến kết quả sai, nút xác minh sẽ kích hoạt cảnh báo, có thể khởi tạo thử thách chặt chém (quá trình mà các nút có hại bị trừ một số tiền nhất định của chúng). Cũng giống như các nút đồng thuận, các yêu cầu phần cứng để xác minh là vừa phải, thúc đẩy người dùng chạy nút của riêng họ.
Sau khi kết quả tính toán của các nút thực thi đã được kiểm tra kỹ lưỡng bởi các nút xác minh, khối được niêm phong bởi một nút đồng thuận. Tại thời điểm này, người ta có thể hoàn toàn tin tưởng vào kết quả của một giao dịch được lưu trong khối.
Cũng giống như sự phân chia quyền lực ở các nước cộng hòa dân chủ, các nút thực thi, nút đồng thuận và nút xác minh tạo ra một hệ thống kiểm tra và cân bằng , trong đó một số ít nút thực thi quy mô cao được quan sát chặt chẽ bởi một số lượng lớn các nút xác minh, trong khi các nút đồng thuận đóng dấu cuối cùng Giao dịch.
Kết luận
Về bản chất, các loại nút chuyên biệt của Flow làm tăng đáng kể động lực của những người tham gia mạng để chạy một nút do yêu cầu phần cứng thấp hơn, do đó tăng khả năng phân quyền và bảo mật của toàn mạng. Điều này làm cho việc tham gia vào mạng blockchain trở nên dễ tiếp cận hơn và ít tốn tài nguyên hơn, trong khi vẫn có ít máy hoạt động hiệu quả để thực thi tính toán nhanh nhất có thể – tất cả trong khi vẫn giữ độ phức tạp được tóm tắt vào giao thức. Điều này có nghĩa là trải nghiệm người dùng cuối tốt được duy trì trong khi các nhà phát triển có thể tập trung vào việc vận hành ứng dụng của họ nhanh chóng.
Kiến trúc đa nút của Flow là kế hoạch chi tiết cho các giao thức Blockchain quy mô người tiêu dùng, có thể chứng minh được trong tương lai.
*** Để cập nhật thêm tất cả các thông tin về thế giới của Hệ sinh thái Flow. Hãy theo dõi Flow Universe Series -> Click tại đây
Hy vọng với những thông tin trên sẽ giúp các bạn có cái nhìn chi tiết hơn về cấu trúc của dự án Flow. GFS Blockchain sẽ liên tục cập nhật thông tin mới về thị trường, mọi người hãy theo dõi thường xuyên chuyên mục thông tin dự án tại website và đừng quên tham gia vào nhóm cộng đồng của GFS để thảo luận với các thành viên khác nhé :
- Nhóm Telegram của GFS Blockchain -> Click tại đây
- Nhóm Facebook của GFS Blockchain -> Click tại đây
- Kênh thông tin Telegram của GFS Blockchain -> Click tại đây