Bài viết này sẽ giới thiệu cách triển khai kỹ thuật về tính nhất quán nhanh và mạnh trong mạng DFINITY. Các từ khóa cốt lõi là: nhóm ngưỡng, chuyển tiếp ngưỡng, đồng thuận khe thẻ xác suất và chuyển tiếp ngưỡng.
Giới thiệu bối cảnh
DFINITY sử dụng cơ chế đồng thuận PoS. Việc tham gia vào mạng yêu cầu một lượng cổ phần nhất định (tức là mã thông báo DFINITY) làm tiền gửi. Tất cả các nút đều bình đẳng và cách duy nhất để tăng lợi nhuận là thêm nhiều nút hơn vào mạng. Cần nhấn mạnh rằng tiền gửi cho tất cả các nút DFINITY là như nhau và sẽ không có lợi ích bổ sung nào khi trả thêm tiền gửi.
Một phần lợi thế của PoS là tất cả các nút đều được biết đến trên nền tảng, vì vậy nền tảng có thể gọi các nút để thực hiện một số chức năng nhất định và mong đợi các nút này trực tuyến. Nếu nút được gọi ngoại tuyến, nút đó có thể mất một phần tiền gửi.
Bởi vì chúng tôi biết ai đang tham gia vào mạng và giả sử rằng hầu hết tất cả các nút đều trực tuyến, chúng tôi có thể phân công nhiệm vụ một cách ngẫu nhiên cho các nút và tương đối tin tưởng rằng các nhiệm vụ này sẽ được hoàn thành. Đây cũng là cơ sở của DFINITY.
nhóm ngưỡng
Ủy ban
Nhóm ngưỡng là một khái niệm rất quan trọng trong toàn bộ quá trình tạo sự đồng thuận của DFINITY. Các nhóm ngưỡng cho phép chúng tôi tránh tình trạng chỉ có một người ra quyết định duy nhất và là cốt lõi của DFINITY. Tại bất kỳ thời điểm nào, luôn có một nhóm nhóm ngưỡng đang hoạt động trong mạng. Mỗi nhóm ngưỡng được lấy mẫu ngẫu nhiên từ tất cả các nút được kết nối với mạng và một nút có thể được đưa vào nhiều nhóm ngưỡng cùng một lúc.
Tất cả các nút của một nhóm ngưỡng làm việc cùng nhau để tạo ra tính ngẫu nhiên; mỗi vòng, một nhóm ngưỡng mới được chọn từ nhóm các nhóm ngưỡng.

Nhóm ngưỡng được chọn ngẫu nhiên trước và đưa vào nhóm. Như minh họa trong hình bên dưới, trong khoảng thời gian 1, nhóm ngưỡng cho khoảng thời gian 2 được chọn. Khi kết thúc khoảng thời gian 1, nhóm ngưỡng của khoảng thời gian này tan rã và nhóm ngưỡng của khoảng thời gian 2 bắt đầu hoạt động. Quá trình tương tự lặp đi lặp lại vô tận.
rơle ngưỡng
Rơle ngưỡng
Tính ngẫu nhiên của DFINITY được tạo ra bởi hàm ngẫu nhiên có thể xác minh được chuyển tiếp ngưỡng. Hãy tưởng tượng bạn đang chơi một ván bài poker - bạn cần có khả năng xác minh rằng người chia bài không thể dự đoán hoặc thao túng các lá bài ra khỏi bộ bài. Đây là lý do tại sao bạn xáo trộn trong mắt công chúng. Xáo trộn là một chức năng ngẫu nhiên có thể kiểm chứng được đối với một mạng lưới các nút không đáng tin cậy - người chơi poker.
Để tạo rơle ngưỡng, chúng tôi sử dụng mã hóa ngưỡng. Nhưng trước tiên, chúng ta hãy xem mã hóa khóa công khai. Hãy tưởng tượng bạn có hai chìa khóa mở cửa, một để khóa cửa và một để mở cửa. Bạn có thể đưa chìa khóa cửa nhà mình cho bất kỳ ai, ai quan tâm liệu người khác có thể khóa cửa nhà bạn không? Điều quan trọng là chỉ có bạn mới có thể mở được cửa.
Chữ ký số trong mật mã khóa công khai về cơ bản là như thế này nhưng trừu tượng hơn. Bạn có hai khóa, một khóa có thể ký một phần dữ liệu và khóa còn lại có thể được sử dụng để xác minh chữ ký. Thật tốt nếu người khác có thể xác minh chữ ký của bạn trên một phần dữ liệu, miễn là bạn là người duy nhất có thể tạo chữ ký. Đây là nơi xuất phát của "mật mã khóa riêng tư khóa công khai". Khóa ký phải ở chế độ riêng tư.
Mã hóa ngưỡng về cơ bản là cùng một nguyên tắc, ngoại trừ một điểm khác biệt: trong mã hóa ngưỡng, khóa riêng hoặc khóa ký được chia thành nhiều phần (share) và mỗi phần có thể được sử dụng để tạo chữ ký. Sau khi tổng hợp một tỷ lệ ngưỡng chia sẻ chữ ký, chúng sẽ tạo ra một chữ ký số hoàn chỉnh có thể được xác minh bằng khóa chung.
Nếu không có đủ tỷ lệ cổ phần để tạo ra một chữ ký số hoàn chỉnh thì không thể xác minh được. Trong quá trình triển khai DFINITY thực tế, chúng ta chỉ cần làm cho tỷ lệ tổng hợp đạt đa số (51%). Ở đây chúng ta cần biết: mỗi nhóm ngưỡng có một khóa chung và mỗi thành viên trong nhóm có một phần khóa riêng.

Sau đây là quá trình chữ ký ngưỡng. Một đặc điểm tuyệt vời của chữ ký ngưỡng là bất kể chữ ký nào được tổng hợp để tạo thành chữ ký hoàn chỉnh thì chữ ký thu được đều giống nhau.
Sau đó, chúng tôi thu được một loạt chữ ký điện tử, đây là một nguồn ngẫu nhiên tuyệt vời nếu không ai biết trước những gì trong đó. Chúng tôi sẽ sử dụng chữ ký này làm đèn hiệu ngẫu nhiên sau này.

Vậy các đèn hiệu ngẫu nhiên được tạo ra như thế nào? Chúng tôi bắt đầu với một nguồn ngẫu nhiên, sử dụng nó để chọn nhóm ngưỡng và các thành viên trong nhóm ngưỡng ký vào tính ngẫu nhiên (dùng để chọn nhóm ngưỡng).
Chữ ký ngưỡng đó (hãy nhớ rằng chúng tôi chỉ cần ngưỡng 51% và không có thành viên nhóm ngưỡng nào ở đây có bất kỳ ảnh hưởng nào đến chữ ký), được sử dụng để chọn nhóm ngưỡng tiếp theo. Quá trình này tiếp tục vô thời hạn.

Sắp xếp ngẫu nhiên - Đồng thuận khe thẻ xác suất
Đồng thuận khe xác suất
Vì giao thức có danh sách tất cả các nút được kết nối với mạng nên nó có thể lấy danh sách này và các đèn hiệu ngẫu nhiên làm đầu vào và đầu ra một danh sách được sắp xếp ngẫu nhiên. Việc sắp xếp ngẫu nhiên này cần được thực hiện thông qua sự đồng thuận về khe cắm thẻ xác suất.
Nút trên cùng được coi là có mức độ ưu tiên (xếp hạng) cao hơn. Mức độ ưu tiên ảnh hưởng đến xác suất nút thêm một khối vào chuỗi. Mức độ ưu tiên càng cao thì xác suất càng lớn.

Các nút có thể tự thực hiện việc này và ưu tiên các khối trước khi tạo và phát chúng. Điều này tiết kiệm tài nguyên mạng và tính toán vì trên thực tế chỉ có một vài nút (ví dụ: năm) có thể phải tạo và phát các khối.
Chặn ký
Trong mạng DFINITY, việc tạo các nhóm ngưỡng ngẫu nhiên cũng đóng vai trò trong việc ký các khối.
Mỗi thành viên trong nhóm ngưỡng tuân theo các quy tắc giống nhau: họ nhận được một khối và nếu khối đó không hợp lệ thì khối đó sẽ bị loại bỏ. Nếu hợp lệ, mức độ ưu tiên của nó sẽ được kiểm tra.
Nếu mức độ ưu tiên thấp hơn khối mà họ nhận được trước đó, họ sẽ loại bỏ khối đó. Nếu mức độ ưu tiên cao hơn, họ ký nó bằng cách sử dụng chia sẻ khóa riêng, sau đó phát khối và chia sẻ chữ ký.

Khi một khối đã thu thập đủ số lượng chia sẻ chữ ký cần thiết để tạo ra một chữ ký hoàn chỉnh, có thể xác minh được, nó được coi là "được công chứng" và khối được thêm vào chuỗi.
Sau đây là toàn bộ quá trình tạo khối:

Xác nhận khối hiệu quả của DFINITY
Dựa trên việc sử dụng các chức năng ngẫu nhiên có thể xác minh chuyển tiếp ngưỡng, thời gian xác nhận khối của mạng DFINITY chỉ có hai khối, thời gian xác nhận có thể thấp tới 2,5 giây và khối lượng xử lý giao dịch mỗi giây là khoảng 50. Nhìn chung, tốc độ xác nhận khối thực sự rất nhanh và chúng ta cũng phải thấy vai trò to lớn của VRF trong đó.
Cách tạo nhóm ngưỡng
1) Các máy khách mới tham gia mạng được phân ngẫu nhiên vào các nhóm khác nhau thông qua thuật toán VRF.
2) Khởi tạo các tham số của nhóm ngưỡng (bao gồm kích thước nhóm, ngưỡng, v.v.).
3) Sau khi quá trình khởi tạo hoàn tất, khóa chung của nhóm được tạo thành công sẽ được đăng ký trên mạng.
4) Việc tạo các nhóm ngưỡng được tách rời khỏi quy trình kinh doanh blockchain nên có thể được thực hiện song song. Như minh họa trong hình, chúng tôi tạo các nhóm màu đỏ và màu xanh lá cây cùng một lúc.
5) Các nhóm ngưỡng mới được thêm vào và khách hàng (hoặc người khai thác) cần đợi 2 chu kỳ EPOCH trước khi chúng có thể được kích hoạt.
Cách chọn độ dài Epoch phù hợp: Để đảm bảo tính chính xác, một Epoch phải chứa nhiều khối hơn một nhánh chuỗi. Tuy nhiên, vì máy khách hạng nhẹ chỉ lưu thông tin tiêu đề khối của các khung chính nên vì lý do hiệu quả, kỷ nguyên cần được xác định càng lâu càng tốt, chẳng hạn như một tuần.
Việc tạo khối được đảm bảo theo giao thức khe xác suất và tránh phân nhánh
Việc đưa giao thức khe xác suất vào cấu trúc chuyển tiếp chữ ký ngưỡng đảm bảo rằng các thợ đào trong mạng luôn tạo ra các khối trên chuỗi chính tối ưu, đồng thời kết hợp với thuật toán VRF đạt được tính nhất quán cao và thời gian xác nhận khối hiệu quả.
Quá trình tạo khối cho mỗi độ cao h như sau:
1) Sắp xếp các tiến trình thuộc nhóm ngưỡng độ cao hiện tại thông qua thuật toán VRF.
2) Chia các quy trình đã sắp xếp thành các vị trí khác nhau và đánh dấu chúng theo thứ tự ưu tiên trong hệ thống.
3) Cho điểm các quy trình vào các vị trí khác nhau và đánh dấu trọng số.
4) DFINITY cũng giới thiệu cơ chế dựa trên thời gian chờ, tức là phải đợi bao lâu cho quy trình được chọn đầu tiên. Nếu khối không được tạo, quy trình tiếp theo sẽ thực hiện việc sản xuất khối.
Như được hiển thị trong hình, một quy trình sản xuất khối hoàn chỉnh: ① Phân loại ngẫu nhiên; ② Nhóm (khe); ③ Chấm điểm; ④ Chọn quy trình có điểm cao nhất để đóng gói khối và phát nó; ⑤ Chuyển tiếp nhóm ngưỡng, tiếp tục tìm kiếm; chuỗi điểm số cao nhất lặp đi lặp lại.
câu hỏi còn lại
Thông qua cấu trúc chuyển tiếp ngưỡng và giao thức khe xác suất, có thể đạt được việc tạo khối hiệu quả và xác suất xảy ra các sự kiện rẽ nhánh chuỗi cực kỳ thấp. Tuy nhiên, chúng ta vẫn sẽ gặp phải các cuộc tấn công do các tác nhân độc hại cố gắng thực hiện trên mạng, chẳng hạn như hai tình huống sau:
1) Tấn công khai thác ích kỷ: Đối thủ độc hại sẽ giữ lại có chọn lọc các khối đã khai thác và dần dần giải phóng chúng, đạt được lợi thế kiểm soát giao dịch so với các nút trung thực, đồng thời, các cuộc tấn công khai thác ích kỷ làm tăng xác nhận cần thiết để đạt được số lượng nhất quán cuối cùng;
2) Không có cổ phần: Đối thủ độc hại chỉ cần đủ may mắn để được chọn thành một chuỗi 0 vị trí (tức là có mức độ ưu tiên cao nhất), sau đó nó có thể bỏ phiếu cho tất cả các fork bất cứ lúc nào và tạo fork từ độ cao h trở đi. thực hiện các cuộc tấn công lặp lại.
Mạng DFINITY đề xuất một giải pháp thay thế:
Ý tưởng cốt lõi là giới thiệu một công chứng viên và chữ ký của công chứng viên phải tồn tại ở mức cao hiện tại. Bằng cách này, nếu việc phát hành khối bị trì hoãn, chữ ký của công chứng viên sẽ không được lấy và khối sẽ bị coi là không hợp lệ.
Quá trình tạo khối chế độ công chứng
Để giải quyết hai mối đe dọa tiềm ẩn, chúng tôi đã giới thiệu các công chứng viên thực hiện chữ ký trên các khối và phân tích nguyên tắc tạo khối:
1) Sau khi chiều cao hiện tại h nhận được chữ ký ngưỡng của nhóm trước, các thành viên trong nhóm bắt đầu tính giờ riêng và thu thập thông tin giao dịch trong vòng BLOCK_TIME (không thực hiện xử lý. Lưu ý: DFINITY không dựa vào đồng bộ hóa đồng hồ nghiêm ngặt).
2) Trong khi chờ BLOCK_TIME, giao thức khe xác suất sẽ chấm điểm quy trình và chọn quy trình được đóng gói.
3) BLOCK_TIME, tức là sau khi hết 5 giây chờ đợi, sau phán đoán thứ hai: ① Chuỗi có số điểm cao nhất đã được ghi chưa; ② Xác minh xem khối có hợp lệ hay không và vị trí được chọn làm quy trình chịu trách nhiệm; ③ Công chứng viên xác minh khối, quá trình phát sóng phân đoạn được ký bởi nhóm ngưỡng của khối.
Khi nào việc ký kết sẽ chấm dứt? Sau khi đạt đến ngưỡng và chữ ký nhóm của chiều cao hiện tại được kết hợp, đoạn chữ ký của chiều cao hiện tại sẽ không còn được ký nữa.
Một số điểm tóm tắt:
1) Trong hoạt động mạng bình thường, nếu BLOCK_TIME được đặt đủ lớn có tính đến việc đồng bộ hóa mạng thì mỗi thành viên trong nhóm sẽ chỉ ưu tiên chuỗi có số điểm cao nhất.
2) Tổ công chứng chỉ chứng nhận khối đại diện cho chuỗi có số điểm cao nhất.
3) Phương pháp này có thể ngăn ngừa tình trạng phân nhánh và đạt được tính nhất quán cuối cùng một cách nhanh chóng.
Giải quyết vấn đề về điểm tương tự
Một tiến trình trong slot 0 được điều khiển bởi một đối thủ độc hại có thể phát tán một số lượng lớn các phiên bản khác nhau của các khối của nó vào DOS. Mặc dù quá trình độc hại này sẽ nhanh chóng bị trục xuất khỏi mạng do hành vi của Byzantine nhưng làm cách nào để ngăn chặn trước khi nó xảy ra?
Giải pháp: Nếu một quy trình tìm thấy một khối có cùng số điểm cao nhất, chỉ chuyển tiếp khối đó đến các nút chưa phát hiện được cùng số điểm. Nếu một thành viên trong nhóm tìm thấy một khối có cùng số điểm cao nhất, việc ký kết sẽ không được thực hiện mà bắt đầu ký vào khối có điểm cao nhất tiếp theo từ một vị trí khác.
bản tóm tắt
Thông qua thiết kế kiến trúc tổng thể, mạng DFINITY cung cấp khả năng tạo khối một cách hiệu quả. Bất kỳ hành vi xấu nào sẽ bị mạng bỏ qua và bị công chứng viên trừng phạt.
Trong một thế giới lý tưởng, mạng DFINITY chỉ yêu cầu 2 khối và chuyển tiếp nhóm ngưỡng để đạt được tính nhất quán cuối cùng, đây là một lợi thế rất lớn cho các nền tảng blockchain cạnh tranh. Khi BLOCK_TIME được đặt thành 5 giây, thời gian xác nhận trung bình chỉ là 7,5 giây.
Phiên bản phát hành đồng của DFINITY có lợi thế về hiệu suất rõ ràng so với công nghệ chuỗi khối thế hệ thứ nhất (Bitcoin) và thế hệ thứ hai (Ethereum) về thời gian tạo khối, thời gian xác nhận giao dịch và mức tiêu thụ nhiên liệu.
câu hỏi
Câu hỏi: Nhóm ngưỡng của khoảng thời gian 2 được chọn trong khoảng thời gian 1. Trong trường hợp này, các thành viên của nhóm ngưỡng của khoảng thời gian 2 có dễ bị tấn công DDOS không?
Trả lời: Câu trả lời là không. Bởi vì trong DFINITY, những thành viên này đều bị ẩn. Nền tảng đã chọn những thành viên này nhưng không ai biết họ là ai.
Sự cố: Sự cố giao tiếp là điểm nghẽn khi tạo khóa BLS. DFINITYCó bao nhiêu nút trong một nhóm ngưỡng? Làm thế nào để cải thiện vấn đề này?
Trả lời: Có 400 nút trong một nhóm ngưỡng. Truyền thông tuy tốn kém nhưng chưa đủ để trở thành một vấn đề chúng ta cần giải quyết.
Câu hỏi: Tôi nên làm gì nếu một thành viên trong nhóm ngưỡng bị lộ khóa riêng của mình?
Trả lời: Bởi vì chúng tôi cần một ngưỡng nhất định (51%) cổ phiếu khóa riêng để đạt được sự đồng thuận nên việc rò rỉ một cổ phiếu không thành vấn đề.
Câu hỏi: Có bao nhiêu nút được chọn để bắt đầu khối?
Trả lời: Câu trả lời là 0. Mỗi nút có thể được chọn để bắt đầu một khối. Xác suất cụ thể được xác định bởi thuật toán sắp xếp ngẫu nhiên trước đó. Mức độ ưu tiên càng cao thì xác suất càng cao. Nếu một khối được bắt đầu, khoảng 5 nút sẽ được triển khai thực sự.

Nội dung IC bạn quan tâm
Tiến độ Công nghệ Thông tin Dự án |

Thu thập và theo dõi Kênh IC Binance
Luôn cập nhật những thông tin mới nhất

