Foresight Ventures: Kiến trúc DApp gốc tiền điện tử
Tác giả gốc: msfew@Foresight Ventures
Tác giả gốc: msfew@Foresight Ventures
tiêu đề cấp đầu tiên

0. Kiến trúc ứng dụng Web2
Khi chúng tôi phát triển một ứng dụng toC hiện đại, cho dù đó là Ứng dụng web, Ứng dụng dành cho thiết bị di động hay Ứng dụng dành cho máy tính để bàn, kiến trúc cơ bản của chúng có thể được tóm tắt bằng ba thiết bị đầu cuối sau:
Từ trái qua phải là:
Front-end: Còn được gọi là client. Front-end của ứng dụng là trang mà người dùng nhìn thấy trong trình duyệt hoặc Ứng dụng được sử dụng trong thiết bị di động. Front-end kiểm soát chế độ xem và hiển thị.
Cơ sở dữ liệu: Như tên gợi ý, cơ sở dữ liệu được dành riêng để lưu trữ dữ liệu, phần phụ trợ sẽ đọc hoặc sửa đổi nội dung của cơ sở dữ liệu.
Tại sao phần mềm cần ba thiết bị đầu cuối này? Tại sao giao diện người dùng không được kết nối trực tiếp với cơ sở dữ liệu? Tại sao lại có một giao diện điều khiển ở giữa? Thực tế có nhiều lý do cho việc này:
tiêu đề phụ
a) Kỹ thuật
Quan điểm của nhà phát triển: Mặt trước của một ứng dụng hiện đại không có năng lượng để xử lý các mô hình dữ liệu phức tạp và quản lý trạng thái của các chế độ xem cùng một lúc.Từ góc độ kỹ thuật, sẽ không tốt nếu mọi kỹ sư duy trì một hệ thống cồng kềnh với tất cả kiến thức và toàn năng. Ngoài ra, nhiều logic khác không yêu cầu giao diện người dùng tham gia vào màn hình, chẳng hạn như hàng tồn kho của nền tảng thương mại điện tử.
Phối cảnh kiến trúc: mỗi đầu có bộ quy tắc và ngôn ngữ riêng để mô tả dữ liệu. Mặt trước sử dụng các ý tưởng mà con người có thể hiểu được để xây dựng các trang, mặt sau sử dụng ngôn ngữ hướng đối tượng để thao tác dữ liệu và cơ sở dữ liệu sử dụng ngôn ngữ đại số quan hệ để truy cập lưu trữ vật lý .Không có cách nào để chỉ định một bộ quy tắc chung để thống nhất ba thiết bị đầu cuối.Đồng thời, do mỗi ngôn ngữ thực hiện nhiệm vụ riêng của mình nên điểm nhấn về hiệu suất cũng khác nhau.Hasurab) giao tiếpODataPhối cảnh giao thức: Quan sát hình, bạn có thể thấy rằng hai phương thức kết nối kết nối ba thiết bị đầu cuối là khác nhau.Thông thường, phần đầu và phần cuối của ứng dụng toC giao tiếp bằng giao thức HTTP, trong khi phần cuối và cơ sở dữ liệu có các giao thức khác nhau, chẳng hạn như MySQL và MongoDB có một giao thức khác.Chúng tôi có thể chuyển một chương trình phụ trợ mỏng (GraphQL +
) để đạt được hiệu quả tương tự như kết nối trực tiếp từ mặt trước đến cơ sở dữ liệu, cũng có một giao thức như CouchDB cho giao tiếp như vậy, nhưng nó vẫn không giải quyết được những thiếu sót khác.
Phối cảnh ánh xạ dữ liệu: giao diện người dùng xử lý giao diện người dùng, giao diện người dùng xử lý các đối tượng ở mặt sau và cơ sở dữ liệu xử lý dữ liệu. Kết nối giữa giao diện người dùng và giao diện người dùng sử dụng ánh xạ giữa giao diện người dùng và đối tượng và kết nối giữa giao diện người dùng và giao diện người dùng. cơ sở dữ liệu cần được ánh xạ bằng các mối quan hệ đối tượng.
c) An ninh
Quan điểm về dữ liệu: Bởi vì hiện nay các ứng dụng chúng ta sử dụng ngày càng nhiều là ứng dụng dựa trên web, nếu front-end được kết nối trực tiếp với cơ sở dữ liệu thì rất khó để ngăn chặn rò rỉ dữ liệu và Hacking. các phương thức xác thực khác nhau, nhưng một ý nghĩa to lớn khác của sự tồn tại của phần phụ trợ là đảm bảo rằng phần phụ trợ hoạt động trong một môi trường đáng tin cậy và theo cách được thiết kế sẵn, đồng thời loại trừ câu hỏi bảo mật đã biết.
tiêu đề phụ
d) Khai sáng kiến trúc ứng dụng Web2 cho DApp
Từ ba quan điểm trên, chúng tôi đã phân tích lý do tại sao các ứng dụng Web2 có kiến trúc ba thiết bị đầu cuối và điều này cũng mang lại cho chúng tôi một số suy nghĩ về DApps blockchain:
Giao tiếp: Tương ứng với các cơ chế đồng thuận khác nhau của mạng chuỗi khối. Các cơ chế khác nhau này cũng làm cho việc liên lạc của chuỗi khối trở thành một vấn đề khó khăn, nhưng cũng có các giao thức tương tác như Cosmos và Polkadot, cố gắng liên kết toàn bộ mạng. Nhưng từ quan điểm của các ứng dụng Web2 Nói chung, điều này không có nghĩa là nó là giải pháp tốt nhất. Ánh xạ dữ liệu có thể tương ứng với các mẫu thiết kế hướng tài khoản hoặc UTXO, cả hai đều có ưu điểm và nhược điểm riêng về hiệu suất, quyền riêng tư và độ phức tạp phát triển.
Bảo mật: Tương ứng với sự phân cấp của chuỗi khối và ý tưởng Xác minh chứ không phải Tin cậy. Bảo mật quan trọng hơn trong lĩnh vực chuỗi khối, do đó cần có các phương pháp mở và minh bạch hoàn toàn có thể kiểm chứng để xử lý dữ liệu và khả năng hiển thị dữ liệu được điều chỉnh để đạt được DeFi minh bạch và không cần cấp phép, NFT mở và độc quyền cũng như khả năng kết hợp quan trọng nhất của DApp.

tiêu đề cấp đầu tiên
Kiến trúc Web3 DApp
Hầu hết các DApp Web3 đều tuân theo kiến trúc sau:
Các ứng dụng đơn giản (dữ liệu trên chuỗi thuần túy và các tương tác không phức tạp), ví dụ: Uniswap và các dự án NFT hoàn toàn trên chuỗi.
Frontend không khác gì Web2 App.
Chuỗi khối như một cơ sở dữ liệu.
Hầu hết các DApp Web3 đều tuân theo kiến trúc sau:
tiêu đề phụa) Các thành phần sàng lọc Web3 DApp:
Cụ thể hơn, quy trình làm việc của một Web3 DApp hoàn chỉnh bao gồm
nhiều thành phần hơn
Frontend: trình duyệt, ví, trang.
Giao tiếp mặt trước và mặt sau: Nhà cung cấp nút, giao thức chỉ mục.
Giao tiếp cơ sở dữ liệu phía sau: Nhà cung cấp nút, cổng mạng lưu trữ.

Cơ sở dữ liệu: Trạng thái hợp đồng thông minh và Mạng lưu trữ phi tập trung.
tiêu đề phụb) Làm thế nào để Web3 DApp không có phụ trợ?,Sự tồn tại của các hợp đồng thông minh hoàn chỉnh Turing trên mạng blockchain,

Biến blockchain thành nền tảng không có máy chủ tốt nhất
Hoặc nó có thể được coi là Máy tính Thế giới của Trustware, dữ liệu và logic back-end của ứng dụng có thể được thực hiện trong hợp đồng thông minh.
So với các chức năng không có máy chủ, hợp đồng thông minh tốt hơn và chúng cũng tạo ra các kiến trúc và mẫu tốt hơn so với các ứng dụng Web2:
Phương thức thanh toán: Các chức năng không có máy chủ thường do nhà phát triển thanh toán, trong khi hầu hết chi phí tương tác của hợp đồng thông minh do người dùng thanh toán và người dùng sẽ sẵn sàng trả tiền cho không gian trên chuỗi.
Môi trường thực thi: Các chức năng không có máy chủ có môi trường thực thi rất linh hoạt, trong khi môi trường thực thi của hợp đồng thông minh có ít sự lựa chọn, nhưng nó rất nhẹ.
Môi trường triển khai: Các chức năng serverless được triển khai trên nền tảng dịch vụ đám mây tập trung, trong khi hợp đồng thông minh được triển khai trên mạng phi tập trung và không được phép. Hệ thống sẽ tự chủ hơn.
Tuy nhiên, đối với một ứng dụng thực sự hoàn chỉnh, không thể đạt được các chức năng hoàn chỉnh chỉ thông qua hợp đồng thông minh làm phần phụ trợ, do đó, các thành phần khác như mạng Keeper hoặc máy tiên tri là bắt buộc.
2. Kiến trúc DApp gốc tiền điện tử Web3Trên thực tế, ứng dụng phức tạp của Web2 vượt xa ba thiết bị đầu cuối mà chúng tôi đã vạch ra trước đây và yêu cầu rất nhiều mô đun hóa, các lớp trung gian và mở rộng theo chiều ngang..

phân chia kiến trúc
tiêu đề phụ

a) Giao diện người dùng ⇒ Nguồn mở + Giao diện người dùng tự lưu trữ
Đối với sự phát triển của Web3 front-end, tôi nghĩ rằng có hai xu hướng chính:web3-reactVàCenter.devLựa chọn khung: Trong số hai khung front-end React và Vue, React chiếm vị trí thống trị trong Web3, chủ yếu là do sự tích lũy của hệ sinh thái và các thành phần khác nhau, chẳng hạn nhưVà.Nhưng cá nhân tôi cảm thấy rằng sự thống trị của dự án React luôn nằm trong tay Meta,Thay đổi giấy phép nguồn mởNó cũng đã nhiều lần gây ra tranh cãi nên nếu bạn có dịp sử dụng Vue framework với một số
dựa vào càng ít càng tốtĐối với phát triển front-end, nó vẫn tốt hơn React.Lưu trữ giao diện người dùng: Giao diện người dùng bị tấn công DApp (chiếm quyền điều khiển độc hại hoặc chèn tập lệnh) và kiểm duyệt (cả trong mã nguồn của Uniswap và Flashbots)Danh sách đen của OFAC; ) của khu vực bị ảnh hưởng nặng nề nhất. Yearn Finance từ rất sớmKhuyến khích người dùng tự lưu trữ giao diện người dùng của DAppTrustless.fiLưu trữ giao diện người dùng trên mạng lưu trữ liên tục như ArweaveNó cũng có thể đảm bảo rằng giao diện người dùng của mỗi phiên bản sẽ không bị xóa và có thể truy cập vĩnh viễn;,Khái niệm về một Thị trường giao diện người dùng cũng được đề xuất, cho phép người dùng chọn từ nhiều giao diện người dùng do cộng đồng lưu trữ, điều này cũng có thể đảm bảo tính trung lập và "sự đa dạng của giao diện người dùng"; các trình duyệt chuỗi khối khác như Etherscan thực sự được xem xétokcontractNgười dùng có thể tương tác trực tiếp thông qua nó hoặc cũng có các ứng dụng dành riêng cho giao diện người dùng tạo hợp đồng, chẳng hạn nhưcodeisspeechVàtheshake; Gần đây Tornado đã bị kiểm duyệt và có nhiều cộng đồng (chẳng hạn như

Và) ở giao diện người dùng lưu trữ nó một cách tự nhiên.,Giao diện người dùng có khả năng chống kiểm duyệt

Cải thiện đáng kể tính bảo mật và phân cấp tổng thể của DApp.
tiêu đề phụ
b) Phần phụ trợ ⇒ ZKP + Hợp đồng thông minh
Quá trình phát triển của Kiến trúc ứng dụng sẽ như sau:
Ứng dụng Web2: giao diện người dùng ⇒ phụ trợ ⇒ cơ sở dữ liệu

Ứng dụng đơn giản Web3: Giao diện người dùng ⇒ Hợp đồng thông minh
Ứng dụng phức hợp Web3: Giao diện người dùng ⇒ ZKP ⇒ Hợp đồng thông minh
Mặc dù hợp đồng thông minh làm cho toàn bộ ứng dụng trở nên phi tập trung, nhưng việc sử dụng hợp đồng thông minh trên mạng mở để xử lý logic của ứng dụng là con dao hai lưỡi. Dữ liệu và mã được công khai, đảm bảo tính minh bạch, khả năng kiểm tra và khả năng kết hợp, nhưng Nó cũng bộc lộ hoàn toàn các rủi ro về quyền riêng tư và bảo mật, đồng thời chi phí cho không gian và tính toán trên chuỗi là rất cao.
ZKP sẽ trở thành RSA của kỷ nguyên Web3, loại bỏ những thiếu sót về bảo mật và phân cấp giao tiếp ứng dụng, đồng thời thực sự hiện thực hóa các DApp đáng tin cậy và không đáng tin cậy.
Việc bổ sung ZKP làm lớp trung gian và phương thức giao tiếp giữa mặt trước và mặt sau một lần nữa đã phát huy rất tốt hai ưu điểm của nó:
Quyền riêng tư: Trong các ứng dụng Web2, quyền riêng tư luôn là tùy chọn mặc định, nhưng bản chất của mạng chuỗi khối cho phép DApps luôn có "quyền riêng tư" ảo. Là một lớp trung gian, ZKP có thể xử lý dữ liệu nhạy cảm ngoài chuỗi để giải quyết vấn đề này.
Mở rộng: Không gian trên chuỗi bị hạn chế nên không thể triển khai nhiều thuật toán phức tạp trong ứng dụng Web2, ZKP có thể thực thi thuật toán ngoài chuỗi và xác minh thuật toán đó trên chuỗi mà vẫn đảm bảo độ tin cậy của phép tính.
Tính khả thi của tính toán: Các loại tính toán ZKP bị hạn chế và không phải tất cả các phép tính đều có thể được giải quyết bằng ZKP.
Tối ưu hóa: Khi độ phức tạp của hoạt động tăng lên, thời gian và không gian tính toán sẽ tăng lên đáng kể, điều này đòi hỏi rất nhiều sự tối ưu hóa phần mềm và phần cứng, đồng thời, trong nhiều trường hợp, thông lượng chỉ có thể được cải thiện đáng kể và chi phí hoạt động của tổng thể Chứng minh khó giảm.
tiêu đề phụ
c) Cơ sở dữ liệu ⇒ dịch vụ nút phi tập trung
Trước đây chúng tôi đã mô tả cách DApp sử dụng chuỗi khối làm cơ sở dữ liệu và phụ trợ. Để kết nối DApp với mạng chuỗi khối, cần có các dịch vụ nút.
Hiện tại, DApps thường được sử dụng trong NaaS tập trung, chẳng hạn như Alchemy và Infura, theo tầm nhìn của tôi, có ba hướng tốt hơn trong tương lai:
NaaS đa trung tâm, sử dụng nhiều NaaS tập trung làm giải pháp thay thế (tương tự như kết hợp tiên tri Chainlink + Uniswap). Đây là giải pháp khả thi và đáng tin cậy hơn, có thể đảm bảo chống kiểm duyệt và thời gian hoạt động.

NaaS tự lưu trữ. Giải pháp cuối cùng, không chỉ có thể đảm bảo độ tin cậy của kết nối "cơ sở dữ liệu" và quyền riêng tư và chống kiểm duyệt của nhiều dữ liệu khác nhau, mà còn tăng mức độ phân cấp của mạng. Với giao diện người dùng tự lưu trữ , toàn bộ DApp sẽ thay đổi cực kỳ phi tập trung.
tiêu đề phụTornado.cashd) Phiên bản DApp gốc tiền điện tử
bị xử phạt gần đây
(đặc biệt là BossBen) là một DApp rất có nguồn gốc từ tiền điện tử, đáp ứng nhiều định nghĩa của chúng tôi:
Giao diện người dùng sử dụng khung Vue của NuxtJS thay vì khung React thường được sử dụng.Được triển khai đầy đủ bằng cách sử dụng các mạch ZK và hợp đồng thông minh trong mã giao diện người dùng mà không có bất kỳ mã phía máy chủ nào..
Mã này hoàn toàn là mã nguồn mở,
Được lưu trữ trong IPFSTornado.cashTôi tin rằng sẽ có nhiều ứng dụng hơn trong tương lai để
3. Web3 Infra
Đây là kiến trúc ứng dụng Web3 phi tập trung hoàn hảo nhất trong tâm trí tôi.

tiêu đề cấp đầu tiênTrên đây chỉ là phiên bản đơn giản hóa của kiến trúc, sau đây là kiến trúc cụ thể hơn của một ứng dụng DeFi thực tế::
Nó chứa một số dịch vụ khác ngoài nút
cơ sở hạ tầng bổ sung
Người lập chỉ mục: Biểu đồ bên trái. Không có cách nào để dễ dàng truy vấn dữ liệu trên chuỗi, vì vậy cần có người lập chỉ mục để tập hợp dữ liệu liên quan đến hợp đồng.
Oracle: Chainlink ở góc dưới bên phải. Chuỗi cần lấy dữ liệu như hợp đồng hoặc giá bên ngoài mạng, do đó, nó cần cung cấp giá trên chuỗi (Uniswap TWAP) hoặc oracle ngoài chuỗi (Chainlink).

Keeper: Keep3r Network ở góc dưới bên phải Bản thân hợp đồng thông minh không có khả năng tự động kích hoạt việc thực thi các tác vụ, vì vậy cần có một trình kích hoạt bên ngoài để được hỗ trợ.
Các cơ sở hạ tầng này rất quan trọng trong việc xây dựng DApp và chúng tôi sẽ giới thiệu chi tiết các vấn đề cũng như cơ hội đổi mới của Oracle và Indexer trong các bài viết trong tương lai.
Giới thiệu về tầm nhìn xa
Giới thiệu về tầm nhìn xa
Foresight Ventures đặt cược vào sự đổi mới của tiền điện tử trong vài thập kỷ tới. Nó quản lý nhiều quỹ: quỹ VC, quỹ quản lý hoạt động thứ cấp, FOF đa chiến lược, quỹ S có mục đích đặc biệt "Quỹ thứ cấp dự đoán l", với tổng quy mô quản lý tài sản là hơn 4 Một trăm triệu đô la Mỹ. Foresight Ventures tuân thủ khái niệm "Độc đáo, Độc lập, Tích cực, Lâu dài" và cung cấp hỗ trợ rộng rãi cho các dự án thông qua các lực lượng sinh thái mạnh mẽ. Nhóm của nó đến từ các nhân sự cấp cao từ các công ty tài chính và công nghệ hàng đầu bao gồm Sequoia China, CICC, Google, Bitmain, v.v.
Website: https://www.foresightventures.com/
Twitter: https://twitter.com/ForesightVen
Medium: https://medium.com/@foresightventures-zh
Substack: https://foresightventures.substack.com
Discord: https://discord.com/invite/jYtyfxfB
Linktree: https://linktr.ee/foresightventures
Related Links
0:
https://learnblockchain.cn/article/4338
https://www.zhihu.com/question/457087098
0a:
https://www.zhihu.com/question/457087098/answer/1864992254
https://www.zhihu.com/question/457087098/answer/1863665807
0b:https://www.zhihu.com/question/457087098/answer/1911173154
0c:
https://www.zhihu.com/question/457087098/answer/1864258142
https://www.zhihu.com/question/457087098/answer/1910852580
1:
https://medium.com/iearn/self-hosting-web3-services-299306b706ee
1a:
https://twitter.com/suhailkakar/status/1555894207570513920
1b:
https://www.informit.com/articles/article.aspx?p=3006828
2:
https://mp.weixin.qq.com/s/1h6yqCWyzYLM8WPGlGdtVA
2a:
https://twitter.com/ChainLinkGod/status/1562125152506195969
https://github.com/Uniswap/web3-react
https://www.codemag.com/article/1701041/Legal-Notes-What’s-the-Deal-with-ReactJS’s-Licensing-Scheme
https://twitter.com/paulmillr/status/1558578060940791809
https://github.com/Nemusonaneko/projects-with-restrictions/
https://medium.com/iearn/self-hosting-web3-services-299306b706ee
https://twitter.com/samecwilliams/status/1561127191106158592
https://twitter.com/forgivenever/status/1556820240993882112
https://okcontract.com/whitelist
https://twitter.com/lickitungxbt/status/1558477975292715016
https://twitter.com/DotTheShake/status/1557703404574707717
https://twitter.com/mallowsxyz/status/1560655467613143040
2b:
https://twitter.com/LeopoldSayous/status/1515982366635966466
2c:
https://ethereum.org/en/developers/docs/nodes-and-clients/nodes-as-a-service/
2d:
https://mp.weixin.qq.com/s/USa7y6IZRjYXa8mWK4t2Lg
https://ipfs.io/ipfs/QmTFnDJbfZLbopwjowmwNE9LFvK599sxhktAArQUvH7Tex
3:
https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application
https://mp.weixin.qq.com/s/ifaVkhdgmh41zxDKVE68Kw
https://www.usv.com/writing/2018/10/the-myth-of-the-infrastructure-phase/


