Web 3 là gì – phần 2 – Kiến trúc của Web 3

Trong phần trước, chúng ta đã biết đến 2 khái niệm khác nhau về Web 3, phần này chúng ta sẽ đi sâu vào kiến trúc của Web 3 theo hướng decentralize trên blockchain.

Kiến trúc của Web 2

Mọi người đã quen với việc vào Meta (Facebook) để đăng bài, tương tác với những bài khác. Một Web 2 như Meta cần có những gì:

  • Database (cơ sở dữ liệu): Database là nơi lưu tất cả những nội dung của Web2 như: bài đăng, comment, tương tác, người dùng, tag, like… Database này tập trung ở một số máy chủ khác nhau tại trung tâm của Meta, nó được cập nhật liên tục, bổ sung mỗi khi có dữ liệu mới.
  • Back-end: Back-end là chương trình máy tính được viết bằng các ngôn ngữ lập trình (như Java, Node js, Python) xác định cách thực hiện những nghiệp vụ cần có. Ví dụ như khi có người dùng đăng kí mới thì làm gì, người dùng đăng nhập thì làm gì, người dùng post bài, like, share thì điều gì sẽ xảy ra. Backend này thường cũng là các máy chủ tập trung tại trung tâm của Meta.
  • Front-end: Front-end là chương trình máy tính được viết bằng các ngôn ngữ lập trình (như Javascript. Html, CSS…) để đưa ra giao diện của Web cho người sử dụng. Website nhìn như thế nào, người dùng bấm vào các nút trên đó thì nó hiện ra gì chính là công việc của Front-end. Đây cũng là máy chủ tập trung tại trung tâm của công ty.

Với 3 phần này, khi một người dùng viết bài mới, họ sẽ tương tác với Front-end, Front-end lúc này sẽ gửi thông tin sang Back-end để xử lí nghiệp vụ, sau đó Back-end sẽ gửi thông tin sang Database để lưu lại thông tin. Người dùng sẽ đọc được thông tin gửi đến qua trình duyệt của họ. Đây là cách hoạt động hiện tại của các web 2 ngày nay.

Web 3 khác biệt ở điểm nào

  • Database: Web 3 không có những máy chủ tập trung như web 2, tức là không có máy chủ tập trung lưu dữ liệu, không có máy chủ tập trung thực hiện lệnh ở back-end và front-end. Thay vào đó web 3 được xây dựng và lưu trữ trên blockchain là nơi được duy trì và xử lí bởi rất nhiều node không định danh trên khắp thế giới. Chúng ta có thể coi như blockchain là một chiếc “máy tính lớn” lưu trữ các chương trình được chạy trên nó, máy tính này được vận hành bởi số đông theo một luật được định ra từ đầu (gọi là đồng thuận – consensus), không có thực thể nào sở hữu máy tính này cả.
  • Backend: Thay vì các server tập trung như Web 2, Web 3 sử dụng smart contract để định nghĩa ra các nghiệp vụ cần thiết của ứng dụng và cài đặt ứng dụng lên “máy tính lớn” này. Có nghĩa là tất cả mọi người đều có thể sử dụng blockchain để xây dựng ứng dụng web 3, và tất cả các ứng dụng đều chia sẻ chung nó.
  • Front-end: front-end có thể như web 2 nhưng có một số điểm khác mà chúng ta sẽ nói ở phần sau.
Cấu trúc của web3
Cấu trúc của web3

Kiến trúc của web3 hiện tại.

Chúng ta cùng đi sâu vào kiến trúc này chút nhé, lấy ví dụ điển hình của Ethereum, Các giải pháp đi sau Ethereum cố gắng đưa ra các cải tiến tốt hơn nhưng cấu trúc cũng tương tự:

  • Blockchain:Một Blockchain như Ethereum thường giống như một máy tính toàn cầu “World Computer” vì khả năng truy cập từ mọi nơi trên thế giới, trạng thái của nó được duy trì bởi các node ngang hàng nhau ở khắp nơi trên thế giới. Các thay đổi về trạng thái trên Ethereum được thiết lập và quản trị bởi các luật của quy tắc đồng thuận giữa các bên tham gia vào nó.Tất cả mọi người đều có thể truy cập và ghi dữ liệu lên Blockchain, chính vì thế nó không thuộc về bất cứ một tổ chức nào mà là sở hữu chung của tất cả mọi người trong mạng lưới.Có một điều thú vị bạn cần biết là: dữ liệu chỉ được ghi mới lên Blockchain chứ không thể sửa được dữ liệu cũ.
  • Smart Contract :Smart Contract là một chương trình chạy trên Blockchain (máy tính toàn cầu), nó định nghĩa các quy tắc về thay đổi về trạng thái xảy ra trên Blockchain. Smart Contract thường được viết bằng ngôn ngữ lập trình cấp cao như Solidity… Bởi vì Smart Contract được lưu trên Blockchain cho nên ai cũng có thể tạo ra nó và ai cũng có thể xem được nội dung của Smart Contract trên Blockchain thế nào.
  • Ethereum Virtual Machine: Máy ảo Ethereum (EVM)

         EVM là nơi xử lí các thao tác được định nghĩa trong Smart Contract, và xử lí việc thay đổi trạng thái của Ethereum trên toàn hệ thống sau các thao tác này.

         EVM sẽ không hiểu được về ngôn ngữ lập trình cấp cao thế nên bạn sẽ phải biên dịch các Smart Contract thành các kí tự mã máy để EVM có thể đọc được.

  • Front-end: Front end cũng đưa ra giao diện cho người dùng, nhưng nó sẽ trao đổi thông tin với ứng dụng được viết trong Smart Contract. 

Tuy nhiên không đơn giản thế, thiết kế phi tập trung hoạt động phức tạp hơn trên sơ đồ đơn giản này nhiều, chúng ta phải kể đến một số thứ khác như:

  • Provider: Để có thể thông báo về dữ liệu, giao dịch mới trên Blockchain cho toàn mạng lưới, cần sử dụng Provider. Đây là một node mạng trong hệ thống Blockchain, có thể tự xây dựng hoặc sử dụng dịch vụ của bên thứ 3 như Alchemy, Infura, Quicknode… 
  • Signer: Mọi người có thể thoải mái đọc thông tin trên Blockchain nhưng khi một người dùng đưa thông tin lên blockchain bằng cách ghi dữ liệu lên đó, đó có thể là một giao dịch, một bài blog, vote… thì người dùng cần phải “ký” vào giao dịch đó sử dụng khóa bí mật của mình. Signer nổi tiếng nhất là Metamask, hiện có rất nhiều Signer khác nhau trên các blockchain khác nhau.
  • Storage: Vì nếu để dữ liệu trên blockchain, với một ứng dụng cần ghi dữ liệu liên tục vào blockchain thì sẽ rất tốn phí (nhất là đối với nền tảng như Ethereum) thế nên, người ta có thể chọn cách sử dụng những nơi lưu trữ bên ngoài blockchain nhưng vẫn đảm bảo tính phi tập trung như giải pháp của IPFS, Filecoin, Chia, Swarm…
  • Query Blockchain: Để ghi dữ liệu vào blockchain thì đã có giải pháp, nhưng để đọc dữ liệu từ blockchain thì sao? Có thể sử dụng những giải pháp sắp xếp dữ liệu trên Blockchain như The Graph để ứng dụng có thể dễ dàng đọc các thông tin trên Blockchain một cách nhanh chóng hơn.
  • Oracles: Các ứng dụng trên Blockchain có thể lấy dễ dàng các thông tin trên Blockchain, tuy nhiên các thông tin ngoài blockchain (offchain) lại không có sẵn. Muốn có các thông tin này, các ứng dụng sẽ cần đến giải pháp Oracle. Oracle nổi tiếng nhất là Chainlink, hiện có một số giải pháp oracle khác như API3, Band, Kylin, Flux…
Cấu trúc của web3
Cấu trúc của web3

Kết luận

Như các bạn cũng thấy, để chạy được một ứng dụng web3 hoàn chỉnh cần đến rất nhiều thứ, nhiều thành phần. Các cơ sở hạ tầng cho Web 3 ngày một hoàn thiện và trong tương lai rất có thể chúng ta sẽ thấy các ứng dụng web 3 đi vào đời sống và trở nên gần gũi, gắn bó với cuộc sống con người.

 

Coin79 – kênh thông tin thị trường tiền mã hoá đa ngôn ngữ (tiếng Việt, tiếng Anh và tiếng Thái) duy nhất tại Việt Nam, đảm bảo tính cập nhật và chính xác.

Tham Gia Các Cộng Đồng Của Coin79

Hotline Chat Zalo Telegram Group