paint-brush
Cách chúng tôi phát triển Giao thức Exa và Chuỗi khối Darwintừ tác giả@exaprotocol
375 lượt đọc
375 lượt đọc

Cách chúng tôi phát triển Giao thức Exa và Chuỗi khối Darwin

từ tác giả Exa Protocol7m2023/08/11
Read on Terminal Reader

dài quá đọc không nổi

Câu chuyện này thảo luận về sự phát triển của mạng lưu trữ tệp phi tập trung có tên là Giao thức Exa, sử dụng không gian lưu trữ miễn phí trên thiết bị di động. Chúng tôi đã đối mặt với những thách thức với các giao thức Lớp 1 hiện có và đã thiết kế một giao thức mới có tên là Darwin, sử dụng cách tiếp cận chuỗi khối song song. Darwin đặt mục tiêu đạt được thông lượng cao và khả năng mở rộng với các chuỗi con độc lập. TestNet đã được xây dựng, cung cấp một cách tiếp cận mới để phân cấp, trao quyền cho các cá nhân tham gia bảo trì mạng và đóng vai trò là cơ sở hạ tầng xương sống của internet.
featured image - Cách chúng tôi phát triển Giao thức Exa và Chuỗi khối Darwin
Exa Protocol HackerNoon profile picture

Tôi vẫn nhớ thời điểm Google quyết định thu hồi bộ nhớ MIỄN PHÍ không giới hạn trên Ứng dụng “Google Photos” của họ. Đối với một nhiếp ảnh gia tự xưng như tôi, đó là một tin khủng khiếp và nó chỉ cho thấy một điều duy nhất – mua đăng ký Google Storage. Nó khiến tôi nghĩ: “Ồ, một thuê bao khác để sống trên hành tinh này. Đăng ký với chính phủ bằng cách trả cho họ một phần thu nhập của tôi không đủ sao? (còn gọi là thuế)”


Những lúc như thế này khiến bạn tự hỏi liệu có cách nào để giải quyết vấn đề này không. Đầu tôi có những suy nghĩ này:


  • “Hãy xây dựng một dịch vụ lưu trữ ảnh miễn phí không giới hạn và cung cấp cho mọi người để mọi người sử dụng, sau đó bạn chạy đến các nhà đầu tư để bạn mua và chạy thêm máy chủ, và sau đó khi bạn thua lỗ, bạn nói – tôi đã xây dựng một Kỳ lân” – Thực tế, xây dựng một dịch vụ yêu cầu các nhà đầu tư trả tiền cho việc lưu trữ ảnh của bạn.
  • “Nhưng nếu tôi tính phí dịch vụ thì sao?!” Sau đó, viên gạch thực tế đập vào đầu tôi - "Vậy là bạn muốn xây dựng một Dropbox khác?"
  • Vì vậy, không có dịch vụ SaaSy. Còn gì nữa không?

Rất may, Một câu trả lời nằm trong Thế giới Web3

Điện thoại thông minh ngày nay có khả năng như PC chỉ hai năm trước (về mặt tính toán) – nhưng nằm im trong một khoảng thời gian đáng kể mà không làm gì cả – hoặc tệ hơn nữa là sử dụng tài nguyên máy tính tối thiểu khi xem TikTok hoặc Reels. Điều gì sẽ xảy ra nếu điện thoại không hoạt động này có thể được sử dụng để tạo cơ sở hạ tầng lưu trữ lớn bằng cách sử dụng dung lượng lưu trữ miễn phí có sẵn trên điện thoại?


Phép toán sơ bộ gợi ý rằng mỗi năm, khoảng 80 EXAbyte dung lượng lưu trữ được thêm vào thế giới này thông qua các thiết bị di động mới. Giao thức ở đây để cung cấp một số không gian đó cho công chúng. Do đó, chúng tôi gọi nó là EXA…Giao thức.


Đây là suy nghĩ của chúng tôi “Hãy tạo một mã thông báo trên Ethereum và đặt giá trị nội tại của nó theo dung lượng lưu trữ mà mọi người chia sẻ trên điện thoại của họ. Họ sẽ được đền bù bằng mã thông báo gốc bất cứ khi nào ai đó lưu trữ hoặc truy xuất tệp từ điện thoại của họ.” Với cách tiếp cận ưu tiên thiết bị di động, những người không có phương tiện để khai thác sức mạnh của phân cấp và chuỗi khối sẽ có thể làm điều đó lần đầu tiên. Điều này, theo đúng nghĩa, sẽ là quá trình dân chủ hóa công nghệ chuỗi khối.


Tôi sẽ không phủ nhận rằng trong khi làm việc này, tôi đã nhớ đến câu nói này của Joe Vitale –



“Một mục tiêu sẽ khiến bạn sợ hãi một chút, nhưng lại kích thích bạn rất nhiều.”

Joe Vitale



ý tưởng

Tôi nhớ khi Arpan Garg và tôi ( Saurabh Singh ) ngồi trước bảng trắng trong nhiều tháng và vẫn bối rối không biết làm thế nào để giải quyết vấn đề. Phiên bản sớm nhất của giải pháp là – “Chúng tôi sẽ sử dụng Ethereum và triển khai một hợp đồng thông minh sẽ đền bù cho người dùng bằng mã thông báo của chúng tôi bất cứ khi nào họ cho phép mọi người sử dụng bộ nhớ di động của họ.” và điều này đã được đánh đố với các vấn đề lớn:


  1. Ethereum cung cấp TPS giới hạn là 12 (trước fork PoS). Chúng tôi sẽ làm tắc nghẽn mạng Ethereum chỉ với 10 nghìn người dùng, những người trung bình giao dịch 100 lần một ngày (một yêu cầu tệp có thể có nghĩa là 50 yêu cầu do phân đoạn – được mô tả trước). Điều này sẽ có hiệu ứng phân tầng và đẩy giá gas để thực hiện giao dịch tăng vọt! - Điều này sẽ không mở rộng quy mô!

  2. Làm cách nào để thuyết phục mọi người lưu dữ liệu của họ trên điện thoại của người khác?

  3. Điện thoại cứ bật tắt và chết sau hai năm. Làm cách nào để đảm bảo rằng dữ liệu được an toàn ngay cả khi điện thoại chết?


Đầu tiên, chúng tôi giải quyết vấn đề 2 và 3:


  1. Cho phép người dùng mã hóa tệp trước khi tệp được gửi đến các nút khác để lưu trữ bằng cách sử dụng mã hóa AES 256 cung cấp đủ bảo mật.
  2. Sau khi tệp được mã hóa, chúng tôi có thể chia sẻ tệp và lưu trữ các phần trên các thiết bị khác nhau. Nhiều thiết bị được sử dụng để lưu trữ phân đoạn nhằm mục đích dự phòng và cho kịch bản – “Chuyện gì xảy ra khi một trong số các thiết bị này TẮT, TÔI SẼ MẤT TẤT CẢ DỮ LIỆU CỦA MÌNH!?”. Vâng, chúng tôi nhận được câu hỏi này rất nhiều…

Hình 1: Tệp được chia thành các phân đoạn, được mã hóa và liên kết bởi máy khách và được lưu trên nhiều nút trong mạng. Một phân đoạn có thể được lưu trữ trên nhiều nút để dự phòng trong trường hợp một nút ngoại tuyến


Công bằng mà nói, giải pháp trên đã được thử nghiệm và chúng tôi đặc biệt bình tĩnh khi giải quyết vấn đề này. Vấn đề chính là với các giao thức Lớp 1. Họ đã chậm chạp. Giống như thực sự chậmww. Thông lượng họ cung cấp không đủ để duy trì thậm chí 1000 người dùng trên mạng lưu trữ của chúng tôi. Như đã mô tả trước đó, chúng tôi sẽ dễ dàng bóp nghẹt mạng. L2s cũng không có hy vọng.


Do đó, chúng tôi quyết định thiết kế Lớp 1 mới có thể mở rộng quy mô và chạy trên thiết bị di động nguyên bản. Chúng tôi đang gọi L1 của chúng tôi – Darwin.

Giải pháp

Một buổi sáng đẹp trời, tôi và Arpan đang ngồi trong văn phòng thảo luận, tranh luận về kiến trúc Blockchain mới. Chúng tôi đã tự hỏi mình câu hỏi này, “ Điều gì sẽ xảy ra nếu thay vì 1 chuỗi khối, có nhiều chuỗi khối chạy song song?


Nghe hay đấy, nhưng bạn sẽ quản lý nó như thế nào?


Giống như việc chúng ta quản lý các quốc gia, tiểu bang và thành phố bằng cách cho phép họ làm việc độc lập.


Hãy nghĩ cho kỹ; khi có một vài người trên hành tinh này, cả thế giới là một quốc gia rộng lớn đối với họ .”


Đúng.


Và khi có nhiều người hơn, họ chia cắt đất đai và tạo ra các quốc gia riêng biệt.


Đúng vậy.


Chúng ta cũng làm như vậy với các nút di động thì sao?


Chúng ta có thể thử…


Và chúng tôi đã cố gắng! Chúng tôi đã dành cả tuần trên bảng trắng để thiết kế L1 với những điểm tương đồng từ thế giới thực. Bảng trắng của chúng tôi từng trông như thế này, tìm ra và giải quyết các chi tiết của kiến trúc:


Hình 2: Từ mô hình cây cối trên bảng trắng đến việc tạo ra Darwin.


Một tháng rưỡi sau, chúng tôi hoàn thiện kiến trúc và gọi nó là Darwin.


Darwin đã được kiến trúc giống như cách các nền văn minh đã phát triển theo thời gian và tạo ra các thành phố, tiểu bang và quốc gia như chúng ta biết. Thay vì xem tất cả các nút như một phần của toàn bộ chuỗi khối, Darwin phân chia chúng thành nhiều chuỗi để đạt được khả năng quản trị tốt hơn và cải thiện hiệu suất mạng.

Hình 3: Đối với những người sơ khai, toàn bộ vùng đất có thể được coi là một quốc gia hoàn chỉnh. Khi có nhiều người xuất hiện hơn, các vùng đất được tách biệt thành các phần nhỏ hơn được gọi là các quốc gia có chính quyền riêng.


Các nền văn minh phát triển và tạo ra các nhóm như thành phố; Darwin cũng phát triển khi nhiều nút được thêm vào mạng. Sự phát triển của Chuỗi Darwin chia nó thành nhiều Chuỗi con để nhóm các nút ở gần nhằm cải thiện hiệu suất mạng.


Các nền văn minh cũng có một hệ thống quản trị mạnh mẽ cho phép chúng hoạt động bình thường. Darwin mang đến khả năng quản trị bằng cách sử dụng các nút máy chủ kiểm tra các chuỗi con thường xuyên.

Darwin hoạt động như thế nào?

Chuỗi Darwin liên tục phát triển để tăng TPS khi mạng phát triển, đồng thời phân mảnh và tối ưu hóa chuỗi một cách linh hoạt để tạo các chuỗi con song song hoạt động độc lập và có bộ nút đầy đủ của riêng chúng để xác thực các giao dịch. Các nút này tạo thành chuỗi các nút có thể giao dịch với nhau với độ trễ thấp và mỗi chuỗi sau đó được chia thành các chuỗi khác nhau khi phù hợp với một số điều kiện – được gọi là Đột biến.

Hình 4: Thể hiện sự đột biến trong Chuỗi Darwin khi số lượng nút đầy đủ tăng lên và giao dịch với nhau. Khối hóa thạch được hiển thị ở đây là khối gốc của mỗi chuỗi con.


Khi một chuỗi đột biến, mỗi chuỗi con sẽ phát triển độc lập và có các nút độc lập riêng để xác thực các giao dịch. Các nút được phân phối giữa các chuỗi con bằng cách sử dụng thuật toán để giảm độ trễ giao tiếp và giao dịch trong mỗi chuỗi con. Điều này làm tăng thông lượng chuỗi theo cấp số nhân vì mỗi chuỗi con hoạt động độc lập để tạo và xác thực các giao dịch.


Các tài nguyên có sẵn nhanh hơn khi các nút được nhóm dựa trên khoảng cách gần hơn, giống như nó hoạt động trong trường hợp các ứng dụng Web2 được lưu trữ trên một máy chủ gần khu vực có lưu lượng truy cập tối đa tới các máy chủ. Chuỗi Darwin cũng sử dụng các yếu tố bao gồm sức mạnh tính toán, không gian lưu trữ được chia sẻ và tính khả dụng/danh tiếng của nút trong khi tạo chuỗi con.


Việc tạo ra Darwin đã giải quyết được nút cổ chai lớn nhất đối với chúng tôi: L1 có thể hỗ trợ cơ sở hạ tầng lưu trữ phi tập trung và chạy tự nhiên trên thiết bị di động.

Hiệu suất Darwin (tối đa lý thuyết): ~ 7,8 triệu TPS.


Tất cả điều này đã được chính thức trình bày trong Sách vàng của chúng tôi, có sẵn trên trang web của chúng tôi.

Nhưng liệu nó có hoạt động không?

Hình 5: Ảnh chụp màn hình của nhà thám hiểm chuỗi Darwin. Mỗi dòng trong cây là một chuỗi khối hoạt động độc lập.


Vâng, nó làm!


Gần đây, chúng tôi đã xây dựng TestNet bằng cách chuyển đổi lý thuyết của chúng tôi thành mã thực tế. Trong ảnh chụp màn hình ở trên, bạn có thể thấy giao diện trực quan của chuỗi khối Darwin. Cấu trúc cây chứa từng chuỗi khối độc lập.

Bước tiếp theo

Darwin hiện chỉ là Lớp 1 có thể giao dịch mã thông báo gốc của chúng tôi. Bước tiếp theo của chúng tôi là tích hợp logic DFS (Hệ thống tệp phân tán) sẽ hoàn thành mục tiêu của chúng tôi về cơ sở hạ tầng lưu trữ phi tập trung thực sự sử dụng thiết bị di động.


Xem xét khả năng mở rộng của chuỗi, cho phép triển khai hợp đồng thông minh bằng cách tạo một máy ảo tương thích với EVM có thể là bước tiếp theo sau khi tích hợp DFS.


Đối với một số người, nó có thể chỉ là một chuỗi khối khác; đối với chúng tôi, chúng tôi thấy một cách tiếp cận hoàn toàn mới đối với việc phân cấp. Khi Satoshi viết Bitcoin Paper, anh ấy đã hình dung ra một thế giới nơi những người như bạn và tôi có thể tham gia vào mạng và duy trì nó. Hơn một thập kỷ đã trôi qua và có vẻ như quyền duy trì mạng nằm trong tay một số ít (tôi đang nói về các trang trại khai thác cực lớn).


Với Darwin, chúng tôi dự định trao cho mọi người (không phải tập đoàn, không phải số ít người giàu có) quyền giám sát hệ thống phi tập trung cho phép chuyển tài sản tiền điện tử và sẽ đóng vai trò là cơ sở hạ tầng xương sống của internet.


Bạn sẽ tham gia vào cuộc hành trình này với chúng tôi chứ?


Ngày Arpan (Trái) và tôi hoàn thiện kiến trúc Darwin.


Cũng được xuất bản ở đây .