Tôi biết rồi mà. Có rất nhiều dự án tiền điện tử, có rất nhiều sự đồng thuận: dựa trên lao động và quyền sở hữu, vàng, dầu, bánh nướng (có một, vâng, vâng). Chúng ta cần gì hơn nữa từ một người? Đây là điều tôi đề nghị thảo luận sau khi đọc bản dịch tài liệu kỹ thuật “nhẹ” của dự án *Constellation (). Tất nhiên, đây không phải là mô tả đầy đủ về thuật toán, nhưng tôi quan tâm đến ý kiến của cộng đồng Habr, liệu có chỗ nào cho sự đồng thuận như vậy “có” hay không cần thiết?
Không còn nhiều thư nữa, vì vậy nếu bạn chỉ muốn viết “ôi, càng nhiều càng tốt về tiền điện tử” thì vui lòng kiềm chế. Nếu bạn quan tâm đến những phát triển mới trong lĩnh vực hệ thống phân tán và có điều gì muốn chia sẻ trong phần nhận xét, vui lòng tham khảo cat.
Tái bút Tôi không phải là tác giả của công nghệ, tôi không thể đảm bảo cho việc chuyển giao hoàn toàn bản chất, vì vậy tôi sẽ rất vui khi nhận được các nhận xét kèm theo các sửa đổi, nếu có.
Sự phát triển từ sự đồng thuận đồng bộ đến không đồng bộ
Các nút được chọn bằng cách sử dụng quy trình xác định (quy trình tương tự được sử dụng trong DHT chẳng hạn như bittorrent), quy trình này sẽ tự động điều chỉnh trách nhiệm của các nút để “tạo điều kiện thuận lợi” xác thực hoặc dễ hiểu hơn là để đạt được sự đồng thuận. Chúng tôi chọn các nhóm gồm 3 nút và chạy song song các vòng đồng thuận để một nút có thể đóng vai trò hỗ trợ trong nhiều khối. Điều này cho phép chúng tôi xử lý các giao dịch không đồng bộ, về cơ bản có nghĩa là chúng tôi có nhiều chuỗi khối được hình thành cùng một lúc. Quá trình này giống như mạng nhện, được hình thành bởi nhiều sợi, trái ngược với các nút tạo thành một chuỗi duy nhất theo thời gian. Xử lý không đồng bộ hoặc song song là cơ sở của lập trình có thể mở rộng vì nó cho phép sử dụng tất cả tài nguyên máy tính, tăng tốc độ tính toán tổng thể. Mạng này được gọi là đồ thị chu kỳ có hướng hoặc DAG trong khoa học máy tính.

Độ rộng kênh của chuỗi khối tuyến tính so với hiệu ứng nhân của DAG trong đó chúng tôi có nhiều chuỗi khối song song.

Triển khai hình học của chuỗi khối tuyến tính chống lại DAG. Chấm đen là khối, chấm trắng là nút
Chúng tôi sử dụng 3 nút trong mỗi vòng đồng thuận vì nó cung cấp cho chúng tôi một số quy trình toán học thú vị để suy luận về trạng thái, tạo thành một “mặt phẳng bề mặt” trên dữ liệu dưới dạng các hình tam giác được kết nối. Sau đó, giao thức sử dụng các hình tam giác để ghép lại với nhau một bề mặt tối ưu không chứa dữ liệu dư thừa hoặc không nhất quán và có các hình tam giác nhỏ nhất có thể. Về mặt thuật toán, điều này tương tự như “vết cắt tối thiểu” của đồ thị và về mặt toán học, nó tương tự như hàm đạo hàm hoặc hàm tối ưu hóa (từ đó hàm tìm ra đường đi ngắn nhất mà nó có thể đi dọc theo bề mặt). Đường dẫn ngắn nhất này tương đương với việc lưu trữ dữ liệu (giao dịch) một cách tối ưu trong DAG. Xếp các “gạch” hình tam giác xung đột để bề mặt sự kiện được trơn tru và không có xung đột.

Thực hiện hình học phát hiện/xử lý xung đột. Một khối xung đột sẽ tạo ra một ô bề mặt bổ sung. Chúng tôi loại bỏ các ô bề mặt bổ sung để duy trì bề mặt sự kiện phẳng (= không có xung đột).
Sự đồng thuận dựa trên danh tiếng
Trong hệ thống danh tiếng p2p phi tập trung tối ưu, mỗi nút sẽ có thể xác định độ tin cậy của nó đối với các nút khác một cách độc lập. Hệ thống của chúng tôi sử dụng một mô hình đặc biệt bao gồm các mối quan hệ bắc cầu hoặc các mối quan hệ mà một nút có với các nút khác khi ấn định điểm chung. “Bạn chỉ giỏi như công ty của bạn.” Kết quả cuối cùng là “độ lệch” hoặc độ dốc dựa trên độ tin cậy hoặc danh tiếng bắc cầu trên tất cả các nút trong kênh $DAG hoặc kênh thông thường. Điều này có thể được coi như một bàn chải hoặc một dụng cụ bào phô mai để xóa trên một “mặt phẳng” và chọn “ô hình tam giác” nào để xóa và ô nào để lại. Đây là cách logic xung đột thực sự loại bỏ “các ô hình tam giác”.

Một DAG có một ô xung đột đi qua một không gian “cong” có dạng gradient, tương tự như dụng cụ bào phô mai và sẽ loại bỏ hoặc “xóa” ô xung đột.
Chia tỷ lệ nút một phần/toàn bộ
Trong lý thuyết mạng, sự phân bổ tối ưu thường được gọi là “không có quy mô”, có thể được mô tả như một sự sắp xếp có thứ bậc với các nút trung tâm lớn quản lý nhiều nút ngoại vi nhỏ hơn. Sự phân phối này có thể nhìn thấy được trong tự nhiên và trên hết là trên Internet. Chòm sao sử dụng kiến trúc này để “mở rộng quy mô” hoặc tăng thông lượng hoặc độ rộng của Biểu đồ của chúng tôi.

Tác dụng của việc phân vùng theo cấp bậc. Chúng ta có thể thêm nhiều nút hơn bằng cách tăng băng thông
Hylochain - Hỗ trợ ứng dụng dựa trên kênh
Cách tiếp cận hỗ trợ ứng dụng của chúng tôi có thể được coi là “nền tảng hợp đồng thông minh phi tập trung”. Thay vì mạng trung tâm chạy tất cả logic và xử lý tất cả dữ liệu từ ứng dụng, Constellation điều phối dữ liệu ứng dụng với “các kênh nội bộ”, có thể được coi như một đài truyền hình phát sóng tất cả dữ liệu từ hệ thống nội bộ. Mỗi kênh nhân viên có thể triển khai logic xác minh riêng để giải quyết vấn đề oracle thông qua xác thực đầu cuối của nhà sản xuất dữ liệu và xác minh bắc cầu của hệ thống nhân viên tổng hợp. Mạng kênh trạng thái cung cấp hỗ trợ song song cho các ứng dụng, tăng tốc thời gian áp dụng vốn bị hạn chế bởi sự đồng thuận truyền thống trong mạng hợp đồng thông minh.

Hai kênh tiêu chuẩn “tương thích” qua mạng $DAG. Chúng có thể tương tác hoặc được hiểu vì cả hai đều được “tích hợp” với $DAG bằng cách triển khai các nút Kênh $DAG + lai.
Lý do nó được gọi là Hylochain là vì cách tiếp cận hỗ trợ ứng dụng của chúng tôi đã sử dụng mô hình lập trình chức năng Lược đồ đệ quy để tạo giao diện MapReduce. Đặc biệt, các lược đồ đệ quy Hylomorphism và Metamorphism có thể được tích hợp để tạo các truy vấn có thể xác minh và kết nối luồng qua các kênh gốc bằng cách xác thực các loại dữ liệu đại số giống như cách xác minh mã op cho hợp đồng thông minh. Kết quả cuối cùng là giao diện MapReduce chức năng quen thuộc với các kỹ sư dữ liệu và tương thích với công nghệ dữ liệu lớn hiện có.

Hylomorphic và Metamorphic là các kênh tiêu chuẩn cho độ tương phản. Ở trạng thái biến chất, dữ liệu từ hai kênh thông thường được gửi đến một khối trong siêu kênh. Trong Gilo, chúng tôi lấy trạng thái trước đó của một kênh và sử dụng nó để truy vấn (đặt một câu hỏi cụ thể) hai kênh khác, sau đó lưu trữ kết quả truy vấn vào một khối.
Tokenomics và mối liên hệ của nó với Hylochain
Sau khi kênh gốc được tạo, kênh đó có thể được tích hợp vào kênh $DAG nhưng sử dụng ACI hoặc Giao diện chuỗi ứng dụng. Giao diện này chỉ đơn giản là một đối tượng JSON có thông tin cấu hình và khóa chung được liên kết với chính kênh đó. Lý do chúng tôi liên kết khóa chung với kênh thông thường là để tạo cơ chế môi giới cho dữ liệu kênh thông thường. Khi kênh thông thường được triển khai, các nhà phát triển sẽ tự định cấu hình cách phân phối các khoản thanh toán từ mạng $DAG giữa các nút và nhà điều hành.

Quy trình mua quyền truy cập thông tin hoặc sửa đổi thông tin. Yêu cầu được gửi đến $DAG, tiền được gửi đến tài khoản kênh, kết quả được gửi đến người mua và tổng kiểm tra giao dịch được gửi đến mạng $DAG, sau đó sẽ chuyển tiền vào kênh thông thường.
Nguồn: www.habr.com
