Tôi đã ngồi lại với Mahnush, người từ lâu đã là thành viên của nhóm DFINITY, để thảo luận về những cải tiến khác nhau mà DFINITY sẽ phát hành. Các chủ đề bao gồm các thuật ngữ như chữ ký ngưỡng, đèn hiệu ngẫu nhiên và tạo khóa phân tán. Chúng tôi không chỉ thảo luận về những khái niệm này mà còn thảo luận lý do tại sao chúng lại quan trọng đến vậy.
Xin chào và chào mừng đến với tập khác của Inside DFINITY. Hôm nay, tôi sẽ nói chuyện với Mahnush, người đã tham gia cùng chúng tôi từ rất sớm với tư cách là một nhà nghiên cứu. Cô ấy đến từ Yale và hôm nay chúng ta sẽ xem những gì cô ấy làm tại DFINITY, những gì cô ấy đã làm trước đây, sau đó cô ấy cũng sẽ cung cấp cho chúng ta một số hiểu biết sâu sắc về một số công nghệ và đổi mới mà DFINITY đã phát triển.
Cảm ơn bạn, bạn đã tham gia DFINITY từ rất sớm. Bạn đã là thành viên chủ chốt trong nhóm nghiên cứu của chúng tôi ngay từ những ngày đầu. Có thể đối với những người chưa biết đến bạn, "Bạn đang làm gì ở đây?"
Vì vậy, tôi là một nhà nghiên cứu và những gì tôi làm là giúp đỡ và thiết kế lớp đồng thuận cũng như chứng minh tính bảo mật của lớp đồng thuận và các tín hiệu ngẫu nhiên.
Công việc hàng ngày của tôi là thu thập ý tưởng từ nhóm, làm cho chúng trang trọng hơn để chúng ta có thể hiểu nhau, viết chúng ra một cách chính thức và sau đó tôi muốn chứng minh rằng chúng an toàn để chúng ta có thể sử dụng chúng.
Tôi nghĩ một cách hay mà bạn đã mô tả về tôi ngày hôm qua là: "Tôi thực hiện mọi thứ chúng tôi đề xuất và đảm bảo rằng nó an toàn." Tôi chứng nhận rằng nó an toàn cho những gì chúng tôi đang cố gắng xây dựng bằng DFINITY Một điều gì đó mà tôi nghĩ là một thuộc tính rất quan trọng.
Điều gì đã đưa bạn đến vị trí này? Trước đây bạn đã làm gì? Bạn đến từ đâu?
Trước khi gia nhập DFINITY, tôi là nghiên cứu sinh sau tiến sĩ tại Đại học Yale. Trước đó, tôi là nghiên cứu sinh tiến sĩ. Để lấy bằng Tiến sĩ, tôi đã nghiên cứu về bảo mật, chẳng hạn như tính toán nhiều bên.
Tính toán an toàn của nhiều bên
Tính toán an toàn của nhiều bên là nơi bạn phải đảm bảo rằng tất cả các bên đều đi đến thỏa thuận. Một phần quan trọng của điện toán là đầu ra mà mọi người đều phải đồng ý. Do đó, sự đồng thuận và thỏa thuận Byzantine là những phần quan trọng của giao thức MPC. Đó là lý do tại sao tôi quan tâm đến các giao thức đồng thuận.
Sau đó, khi ở Yale, tôi đã cố gắng xây dựng một giao thức đồng thuận có quy mô cho hàng triệu bên sử dụng giao thức dựa trên ủy ban. Sau đó, tôi gặp Timo và Dominic và tôi biết được rằng DFINITY cũng đang cố gắng làm điều tương tự, điều này rất thú vị đối với tôi.
Thật tuyệt khi có bạn. Tôi biết chúng tôi đã đạt được nhiều tiến bộ kể từ khi bạn tham gia, bao gồm cả sách trắng mà chúng tôi đã phát hành vào đầu năm nay và tôi biết bạn đã mất nhiều đêm mất ngủ để hoàn thành nó.
điện toán đám mây
Câu đố hoặc câu hỏi thú vị nào chúng ta đang cố gắng giải quyết ở đây? Tôi nghĩ điều chúng tôi đang cố gắng thực hiện tại DFINITY là một phiên bản mới của điện toán đám mây, mà nếu bạn nghĩ về nó, nó thực sự là một công cụ sao chép trạng thái.
Bởi vì bạn phải có rất nhiều bản sao để đảm bảo không bị mất tính toán hoặc dữ liệu, nhưng tất cả chúng đều phải có sự thống nhất. Bởi vì nếu một số người trong số họ cho rằng điều gì đó là cuối cùng và một số bản sao khác cho rằng điều gì đó khác là cuối cùng thì người dùng sẽ không biết phiên bản nào là đúng.
Do đó, việc đảm bảo rằng tất cả các bản sao này nhất quán là một phần rất quan trọng của DFINITY. Đây là lý do tại sao các giao thức đồng thuận thường rất quan trọng đối với DFINITY.
Bây giờ, nếu tất cả các bản sao đều trung thực thì việc này dễ dàng hơn nhiều vì chúng tôi có thể đảm bảo rằng, chẳng hạn như trong Google Cloud, bạn có một số bản sao và bạn chắc chắn rằng tất cả các bản sao đều được Google kiểm soát, thì... đúng rồi, Vì vậy, vì chúng đều do Google kiểm soát nên bạn có thể chắc chắn rằng mọi máy tính đều có thể áp dụng cùng một thuật toán.
Đó là những gì bạn đang nói, "Tất cả họ đều trung thực!" Vâng, điều đó dễ dàng hơn nhiều đối với họ vì tất cả họ đều thuộc sở hữu của một nhóm trung tâm, nhưng đồng thời bạn phải tin tưởng vào Google để đảm bảo thuật toán mà họ đưa ra. chạy là trung thực của.
bản sao
Tuy nhiên, trong DFINITY, chúng tôi muốn đảm bảo rằng mọi người trên thế giới đều có thể có một bản sao, thay vì cho rằng tất cả các bản sao đều thuộc quyền sở hữu của DFINITY. Vì vậy, nó giống như một cách tiếp cận cởi mở hơn đối với điện toán đám mây.
Người dùng không cần phải tin tưởng vào DFINITY nhưng họ có thể tin tưởng vào các giao thức mà DFINITY chạy. Tại một thời điểm nào đó, nó cũng sẽ là nguồn mở, phải không? Điều đó có nghĩa là gì khi mọi người đều có thể xem mã và mọi người đều có thể có một bản sao?
Về cơ bản, điều này có nghĩa là mọi người đều có thể trở thành người khai thác trong hệ thống của chúng tôi, trong khi DFINITY vẫn cần có người khai thác. Mặc dù chúng sẽ không giải được câu đố về bằng chứng công việc nhưng chúng tạo thành sức mạnh tính toán phân tán trên DFINITY.
Họ đang trợ giúp việc tính toán, họ đang giúp duy trì dữ liệu và họ đang giúp duy trì các phép tính trên dữ liệu.
Giao thức dung sai lỗi Byzantine thực tế
Nếu các bản sao khác nhau, chẳng hạn như các máy tính trên các miền khác nhau, một số bản sao có thể bị hỏng hoặc có tính chất đối địch. Trong khoa học máy tính, chúng tôi gọi nó là Byzantine vì nó xuất phát từ Bài toán các tướng Byzantine.
Giải tốt bài toán này là một bài toán rất khó đã tồn tại dai dẳng trong khoa học máy tính suốt 40 năm qua. Và mọi người đang cố gắng cải thiện giải pháp vì đây là một vấn đề cơ bản.
Nếu bạn giải quyết vấn đề đó một cách hiệu quả, bạn sẽ giải quyết được rất nhiều vấn đề khác. Giờ đây, những nỗ lực khác nhau là những cách mới để giải quyết vấn đề.
Vì vậy, khi bạn nói vấn đề đã tồn tại từ lâu, theo tôi có một giải pháp là nếu tôi có ba bản độc lập, hai bản nói một điều và bản thứ ba nói điều khác, tôi luôn tin đa số. Điều gì thực sự đang xảy ra trong mạng ngay bây giờ? Nó hoàn toàn khác nhau ở mức độ nào?
Đây là câu trả lời đầu tiên mà các nhà khoa học máy tính nghĩ ra, nếu bạn có nhiều bản sao, chẳng hạn như ba bản sao, thì bạn không thể đạt được đa số. Vì vậy, sau khi đã có đa số, mọi người nên gửi ý kiến đóng góp của mình cho mọi người và nó giống như một mạch có chiều sâu giao tiếp cao.
Vẫn vì nếu bạn đồng ý chỉ một điểm tương tự thì đa số sẽ có tác dụng. Nhưng nếu bạn đồng ý như một sợi dây thì ngay cả những nhóm trung thực nhất cũng có thể không đồng ý. Do đó, một trong những giải pháp sử dụng giao thức PBFT là chọn người dẫn đầu.
Giao thức PBFT (Byzantine Fault Tolerance)
PBFT có nghĩa là gì? Nó giống như Byzantine Fault Tolerance (BFT), người ta gọi đó là “mặt xấu” hay “mặt Byzantine”, và chữ P trong PBFT xuất phát từ tính thực tiễn.
Trong giao thức này, các máy chủ bản sao sẽ bầu ra một người lãnh đạo, vì vậy, giống như trong thế giới thực, nếu bạn muốn đi đến một thỏa thuận, cách tốt nhất là bầu ra một người lãnh đạo, sau đó người lãnh đạo sẽ nói những gì cần làm tiếp theo, Mọi người đều làm như vậy điều tương tự và họ đi đến một thỏa thuận.
Vì vậy, tương tự như giao thức PBFT, họ chọn một người lãnh đạo và nếu người lãnh đạo trung thực, anh ta sẽ đưa ra giá trị như nhau cho mọi người trong mạng trước khi họ có thể đạt được thỏa thuận.
Nhưng vấn đề là, nếu người lãnh đạo không trung thực thì họ không thể đạt được sự đồng thuận và người lãnh đạo phải bị thay thế. Kiểm tra xem người lãnh đạo có trung thực và đưa ra giá trị như nhau cho mọi người hay không và đó là một thỏa thuận rất tốn kém nếu không thay đổi người lãnh đạo (họ gọi đó là thay đổi quan điểm) vì vậy nó đòi hỏi sự giao tiếp xuyên suốt và rất tốn kém.
Giao thức chuỗi khối
Sau đó, các giao thức blockchain xuất hiện giống như Bitcoin và họ quyết định không thay đổi người lãnh đạo miễn là anh ta không trung thực, và họ quyết định, à, không, chúng ta thực sự chỉ cần thay đổi người lãnh đạo nếu người lãnh đạo không trung thực, Chúng tôi cho rằng giao thức đó là đồng bộ nên chúng tôi thay đổi người dẫn đầu ở mỗi kỷ nguyên mới, mỗi vòng mới.
Sau đó, họ cần một cách để chọn một người lãnh đạo, bởi vì bạn phải chọn người lãnh đạo, rồi người lãnh đạo tiếp theo, và người lãnh đạo tiếp theo.
Bạn không cần phải liên tục kiểm tra xem người lãnh đạo có trung thực hay không, bạn chỉ cần tiếp tục xây dựng dựa trên giao thức, trên nhật ký. Rất có thể một trong những nhà lãnh đạo này sẽ đạt được một thỏa thuận trung thực và lành mạnh. Vấn đề bây giờ giảm xuống còn việc chọn một người dẫn đầu yêu cầu các số ngẫu nhiên.
Bởi vì nếu bạn có một số ngẫu nhiên, chẳng hạn như một con súc sắc, thì bạn có thể sử dụng số ngẫu nhiên đó để chọn người dẫn đầu và đó là lúc Bằng chứng công việc (POW) giúp ích.
bằng chứng làm việc
Về cốt lõi, các giao thức blockchain là các giao thức Byzantine vì về cơ bản chúng sử dụng bằng chứng công việc để lựa chọn các nhà lãnh đạo. Chỉ bằng cách chạy bằng chứng công việc, người đầu tiên đưa ra giải pháp bằng chứng công việc là người lãnh đạo, đây là một quy trình ngẫu nhiên.
Vì vậy, khi tôi nói chuyện với cha mẹ hoặc những người khác quan tâm đến blockchain và tôi làm điều này rất nhiều, tôi hỏi họ: Làm thế nào để bạn chọn ngẫu nhiên một trong những người trong phòng này, giả sử có 10 người trong phòng?
Đầu tiên, mọi người đều nghĩ nó dễ dàng, giống như chúng ta chỉ đang tung xúc xắc. Tôi nghĩ. Vậy ai là người tung xúc xắc? Họ nói, chúng tôi chỉ cần cộng tất cả các ngày sinh, bắt đầu từ bạn, sau đó chúng tôi khoanh tròn cho đến khi đạt được con số đó. Nhưng sau đó, bạn chọn ai để bắt đầu?
Vì vậy, điều này nghe có vẻ như một câu hỏi rất đơn giản. Nhưng nếu bạn thực sự muốn làm nó ngẫu nhiên thì thật khó. Đó là sự đổi mới tuyệt vời của Bitcoin, tìm cách thống nhất về cơ bản các lựa chọn ngẫu nhiên giữa các đồng nghiệp.
Về cơ bản, sử dụng bằng chứng công việc để tạo ra sự ngẫu nhiên là một cách rất tốn kém để tạo ra sự ngẫu nhiên vì bạn phải tiêu tốn rất nhiều điện.
Vì vậy, đối với những nỗ lực hiện tại như Bitcoin, nó giống như một cường quốc đang nỗ lực giải quyết bằng chứng công việc, đó là lý do tại sao nó vốn rất đắt đỏ.
Chúng tôi thực sự không sử dụng Bitcoin nhiều đến vậy và nếu bạn muốn mở rộng quy mô sử dụng Bitcoin cho nhiều hoạt động tính toán, bạn sẽ phải đốt cháy toàn bộ thế giới của nó. Nếu chúng ta so sánh Bitcoin hiện đang ở đâu và nó phải đi đâu để đạt được tầm nhìn, bạn vẫn sẽ phải sử dụng Bitcoin mười lần hoặc một trăm lần.
Bạn đã đề cập rằng về cơ bản nó tiêu thụ rất nhiều năng lượng. Vì vậy, chúng tôi đang tìm kiếm một phương pháp hiệu quả hơn để lựa chọn người lãnh đạo để chọn những người ngẫu nhiên trong số các đồng nghiệp.
Bằng chứng công việc như một giao thức đồng bộ hóa
Một lý do khác mà chúng tôi đang cố gắng thay đổi cách Bitcoin tạo ra tính ngẫu nhiên là vì bằng chứng công việc vốn là một giao thức đồng bộ, vì vậy về cơ bản, thời gian bạn phải dành để thực hiện bằng chứng công việc lớn hơn độ trễ của mạng rất nhiều.
Mặt khác, bạn không biết liệu mọi người thích đốt điện để giải quyết bằng chứng công việc hay dành thời gian giải quyết bằng chứng công việc hay thông tin của họ bị mất trên mạng.
Về cơ bản, chuỗi bằng chứng công việc hoặc sự đồng thuận bằng chứng công việc có thông lượng thấp và bạn không thể thực hiện tích tắc nhanh chóng vì về cơ bản, bạn phải đợi lâu hơn độ trễ của mạng để phần ngẫu nhiên tiếp theo được tạo.
Đó là lý do tại sao bạn không thể có giao thức thông lượng cao trên hết và đó là lý do tại sao các giao dịch cũng trở nên rất tốn kém, bởi vì chỉ một số lượng giao dịch hạn chế mới có thể phù hợp với mỗi khối. Chúng ta không thể tăng số lượng khối trên một đơn vị thời gian mà không làm rối loạn giao thức.
Cách DFINITY tạo số ngẫu nhiên
DFINITY đang cố gắng giải quyết vấn đề này nên suy nghĩ đầu tiên là bây giờ chúng ta cần một cách mới để tạo ra sự ngẫu nhiên, nhưng bây giờ làm cách nào để tạo ra sự ngẫu nhiên?
Như tôi đã nói, đây là một câu hỏi rất khó. Vì vậy, một cách tiếp cận là yêu cầu một người tạo ra tính ngẫu nhiên, nhưng nếu người đó không trung thực thì anh ta không thể thiên vị tính ngẫu nhiên.
Bây giờ chúng ta cần một nhóm để tạo ngẫu nhiên, nhưng nếu chúng ta chọn một nhóm thì nếu tôi là người đầu tiên tạo ngẫu nhiên và bạn là người thứ hai thì người cuối cùng có thể nhìn vào số ngẫu nhiên của chúng ta và chọn số của mình ngẫu nhiên, kết quả là điều anh ta mong muốn, chúng ta gọi đó là sự thiên vị người cuối cùng.
Chúng tôi không thể có một nhóm mà người cuối cùng chọn ngẫu nhiên, đó là lý do tại sao chúng tôi sử dụng mật mã ngưỡng.
mật mã ngưỡng
Mật mã ngưỡng nghĩa là thay vì có một nhóm n người nhưng tất cả n người cần tạo sự ngẫu nhiên thì lại có một nhóm n người nhưng chỉ có K người trong số họ cần tham gia.
Nếu bạn đang đợi K người, thì nếu bạn nhận được đầu vào từ K trừ 1 người tham gia, bạn đang đợi một đầu vào. Nhưng bất kỳ bên nào khác có n trừ K đều có thể là người cuối cùng. Vì vậy, không có sự thiên vị người cuối cùng.
Nếu người cuối cùng quyết định “Tôi không muốn tham gia” thì sẽ có bên khác, nhưng như vậy vẫn chưa đủ. Bởi vì bây giờ nếu các thành viên của nhóm K người này tạo ra sự ngẫu nhiên và hành vi của một nhóm K người khác tạo ra sự ngẫu nhiên, nếu hai sự ngẫu nhiên này khác nhau, đối thủ (bằng cách xác định xem tôi có muốn tham gia vào nhóm này hay không) có thể thiên vị giao thức . Đó là lý do tại sao chúng ta cần sự độc đáo.
sự độc đáo
Tính duy nhất của tính ngẫu nhiên có nghĩa là không quan trọng bên K nào tham gia tạo ra tính ngẫu nhiên, kết quả luôn là duy nhất và kết quả luôn giống nhau. Trước hết, đây là một tài sản đáng kinh ngạc. Nghe có vẻ phản trực giác, "Làm thế nào để chúng ta đến đó?"
Nếu bạn có một tin nhắn và nếu bạn sử dụng chữ ký BLS để ký ngưỡng thì bạn cần K người tham gia. Nếu ngưỡng là K, bạn cần K người tham gia ký vào đó, bất kể k người tham gia ký tên là ai thì bạn sẽ nhận được kết quả nhận dạng duy nhất. Đây là thuộc tính chính của chữ ký BLS.
Đây là công nghệ mã hóa dựa trên ghép nối. Vì vậy, nó mới, nhưng không quá mới, bởi vì nếu kế hoạch quá mới, bạn lo lắng về tính bảo mật và bạn lo lắng liệu nó có được chứng minh là đúng hay không. Nếu đủ người xem xét nó, hãy để lại nhận xét và kiểm tra nó.
Tại Stanford, đã có đủ người xem xét nó và nhóm đã làm việc trong một thời gian dài để đảm bảo rằng nó an toàn và giống như một giao thức rất an toàn với các triển khai tốt xung quanh nó. Vì vậy, chúng tôi có triển khai BLS rất nhanh, là nguồn mở và mọi người đều có thể sử dụng nó.
Có lẽ, chỉ cần đưa ra một số thông tin tổng quan, sau đó chúng ta cũng có thể nói về các tín hiệu ngẫu nhiên và chính xác chúng là gì. Nhưng bạn đã đề cập đến điều đó và tôi nghĩ đó là lời giải thích hợp lý về việc nên bắt đầu từ đâu và khi nào bằng chứng công việc không vượt quá một điểm nhất định về mặt thông lượng và mức sử dụng năng lượng.
Khi đó bài toán sử dụng thiên vị của người cuối cùng để tạo ra số ngẫu nhiên này, ta giải bằng k từ chữ ký ngưỡng của n người. Và chữ ký BLS mà chúng tôi sử dụng là duy nhất cho k người trong số n người và vẫn là ngẫu nhiên. Đây là hai đặc tính mà tôi vẫn gặp khó khăn khi luôn thấy chúng khớp với nhau như thế nào.
Vậy chúng ta nên làm gì? Hãy quay lại các blockchain của Satoshi Nakamoto và xem chúng hoạt động như thế nào. Vì vậy, chuỗi khối của Nakamoto giống như tạo ra sự ngẫu nhiên hoàn toàn cho mọi khối, nghĩa là với mỗi khối, bạn giải quyết bằng chứng công việc ngay từ đầu và bạn không sử dụng lại bất kỳ tính ngẫu nhiên nào ở đó.
Đó là một trong những lý do tại sao nó rất đắt. Vì vậy, chúng tôi không muốn làm điều đó ở đây vì chúng tôi biết mã hóa ngưỡng rất tốn kém, giống như trong thế giới bằng chứng công việc. Nó không quá đắt, nhưng nó vẫn là một hoạt động rất tốn kém.
Chúng tôi muốn đảm bảo rằng hầu hết các hoạt động tốn kém có thể được thực hiện ngoại tuyến và khi chúng tôi trực tuyến, chúng tôi thực hiện rất ít trong số đó. Nếu bạn nhìn vào sơ đồ chữ ký, có nhiều phương pháp khác nhau cần được xử lý và chúng cần hoạt động. Vì vậy, một trong số đó là tạo khóa, chúng tôi gọi đó là Tạo khóa phân tán (DKG).
DKG (Tạo khóa phân tán)
DKG (Tạo khóa phân tán) là một hoạt động rất tốn kém vì bạn phải đồng ý với mọi người về khóa chung mà họ muốn ký và mọi người xuất ra một khóa cho chính họ, đó là một phần của khóa lớn hơn cho nhóm để họ có thể sử dụng nó để ký. đầu vào.
Tất cả quá trình này là một quá trình tốn kém, bạn cần sử dụng chìa khóa để xác thực, vì vậy đây là một quá trình tốn kém. Chỉ để thảo luận nhanh thôi, tôi nghĩ đây cũng là một chủ đề thú vị, về cơ bản nó có nghĩa là tất cả chúng ta đều ở bên ngoài, tất cả chúng ta đều đang nói chuyện với nhau, nhưng tất cả chúng ta đều đã đồng ý về một khóa không công khai.
Thật ngạc nhiên khi chúng ta có thể nói về điều này... nhưng điều đó cũng có nghĩa là cả hai chúng ta đều đã tạo chính xác khóa riêng để sử dụng với khóa chung đó và mặc dù chúng tôi không đề cập đến khóa riêng của mình với bất kỳ ai khác, Tất cả thông tin riêng tư của chúng tôi các phím cũng hoạt động cùng nhau theo một cách nào đó.
Điều tốt là bạn có thể chạy quy trình DKG một lần và sau đó ký nhiều lần bằng cùng một khóa, điều đó có nghĩa là bạn cần phải khấu hao chi phí của DKG đắt tiền nhiều lần. Bạn có thể thực hiện một vòng và chạy DKG trên một nhóm và sau đó, sau khi có khóa riêng, họ có thể sử dụng khóa đó để ký các đầu vào khác nhau.
Mỗi lần họ đăng nhập lại thì họ nhận được một số ngẫu nhiên mới, đó là số giả ngẫu nhiên mới, thực ra nó không còn là số ngẫu nhiên nữa vì số đầu tiên là ngẫu nhiên, nhưng sau đó là hàm giả ngẫu nhiên. Nó hoạt động như một số giả ngẫu nhiên cho bạn.
Sau đó, theo cách này, chúng ta có thể làm cho sơ đồ chữ ký không tương tác, có nghĩa là "Tôi không cần nói chuyện với bạn để ký."
Tôi làm hết sức mình, tôi ký, bạn làm phần việc của mình, bạn ký, nhưng chúng ta có thể ghép những chữ ký đó lại với nhau rồi ghép lại với nhau để có được chữ ký hợp nhất mà không cần phải nói chuyện với nhau.
Đây là những gì họ gọi là không tương tác. Đây là một thuộc tính hay vì nó làm cho sơ đồ ký kết nhanh hơn nhiều so với phiên bản không tương tác.
Cách thức hoạt động của DFINITY là chúng tôi tạo nhóm, sau đó chúng tôi thực hiện DKG, bây giờ chúng tôi ký vào ngẫu nhiên đầu tiên, sau đó chúng tôi nhận được một ngẫu nhiên cho vòng này, sau đó ở vòng tiếp theo, chúng tôi ký vào ngẫu nhiên trước đó cho vòng tiếp theo Tạo một vòng mới ngẫu nhiên và sau đó, chúng tôi tiến hành ký kết.
Chúng ta muốn sử dụng lại tính ngẫu nhiên ban đầu trong bao lâu? Bạn có thể tái sử dụng lâu dài, có thể tái sử dụng vài tháng, cũng có thể khoảng một, hai tháng. Vì vậy, tính ngẫu nhiên tương tự có thể được sử dụng lại miễn là trong nhóm có đủ người tham gia vẫn tích cực và trung thực. Bạn cũng đã đề cập đến các nhóm.
Có các nhóm khác nhau về cách thức hoạt động của DFINITY không? Chúng tôi có mật mã ngưỡng này, chúng tôi có quy trình DKG, nhưng nếu bạn muốn chạy quy trình này trên một số lượng lớn người tham gia như 5 triệu Bitcoin, thì đó là một quy trình rất tốn kém vì bạn phải gửi tin nhắn cho mọi người, mọi người đều phải ký .
Đây vẫn là một quá trình rất tốn kém. Chúng tôi đã xem xét hệ thống và nhận thấy rằng bạn không cần chữ ký của mọi người, bạn không cần sự tham gia của mọi người vào sự ngẫu nhiên. Bạn có thể tham gia vào tính ngẫu nhiên bằng cách chọn ngẫu nhiên các đảng phái, giống như tổ chức bầu cử ở một quốc gia.
Vậy nếu muốn quyết định một việc gì đó mà không yêu cầu mọi người phải đưa ra luật hay đưa ra quyết định thì có thể có ủy ban, có thể có người đại diện thay vì mọi người, chúng ta nên chọn một nhóm, nhưng chọn một nhóm như thế nào? nhóm?
Tuy nhiên, chúng ta vẫn có thể sử dụng lại tính ngẫu nhiên của chính mình, vì vậy vì một nhóm được chọn ngẫu nhiên nên nhóm đó có các thuộc tính tương tự với tổng số bình phương thực tế. Thay vì chạy toàn bộ giao thức trong số 5 triệu người, bạn có thể chạy giao thức trong số 500 người và nhanh hơn gấp 10 lần.
Dù có 100.000 người tham gia toàn bộ mạng lưới hay 100 triệu người tham gia thì quá trình mà nhóm trải qua luôn giống nhau vì quy mô của nhóm không đổi. Một lợi ích khác của việc chọn nhóm là bạn không chỉ có được khả năng mở rộng mà còn có được tính song song vì giờ đây chúng ta có thể có nhiều chuỗi thay vì chỉ một chuỗi.
Sự phân mảnh
Mỗi nhóm chịu trách nhiệm về một chuỗi, sau đó bạn có thể tạo nhiều chuỗi song song, mà chúng tôi thường gọi là các phân đoạn trong một chuỗi khối. Đây là một cách tự nhiên để phân mảnh.
Vì vậy, đó là lý do tại sao tôi nghĩ DFINITY có một cách phân chia tuyệt vời vốn có trong DFINITY bởi vì chúng tôi có các nhóm và sau đó mỗi nhóm có thể có phân đoạn riêng. Vậy, vấn đề lớn hơn mà chúng ta đang giải quyết hiện nay là gì?
Hiện tại, chúng tôi có bằng chứng đầy đủ trong cài đặt đồng bộ hóa. Trong mô hình tính toán đồng bộ hoặc mô hình truyền thông đồng bộ, khi một bên trung thực gửi tin nhắn, tất cả các bên trung thực trong phạm vi Delta sẽ nhận được tin nhắn đó.
Ví dụ: trong Bitcoin, khi một bên trung thực gửi tin nhắn, nó sẽ được nhận trong khoảng một phút, tức là chưa đến một phút đối với mọi người trên thế giới. Giao thức biết nó và sử dụng nó.
Vì vậy, trong Bitcoin, độ dài của bằng chứng công việc phụ thuộc vào độ trễ của mạng và nó sẽ dài hơn rất nhiều, khoảng 10 phút đối với Bitcoin vì họ cho rằng Bitcoin dài hơn 10 lần.
Giả định đồng bộ hóa là hợp lệ, nhưng vấn đề là nếu giả định đồng bộ hóa không chính xác trong mạng thực thì giao thức hiện không còn an toàn nữa.
Hoàn thành bằng chứng trong mạng không đồng bộ
Những gì chúng tôi đã làm trong DFINITY là chúng tôi có bằng chứng về bảo mật trong mô hình đồng bộ hoàn toàn và chúng tôi đang cập nhật bằng chứng của mình để làm cho chúng có thể sử dụng được trên các mạng không đồng bộ.
Đó là một trong những lĩnh vực tôi đang làm việc hiện nay và lĩnh vực khác tôi đang làm là quy trình DKG tương tác mà chúng tôi đang tiến hành ngay bây giờ trong quy trình DKG, nghĩa là mọi người tham gia muốn tham gia hoạt động đang chạy DKG Có thể sử dụng DKG khi thực hiện thỏa thuận.
DKG không tương tác (Tạo khóa phân tán)
Chúng tôi muốn làm cho nó không tương tác, nghĩa là các bên có thể tham gia và quay lại và quay lại khi thỏa thuận hoàn tất. Vì vậy, nó giống như một cách chạy tự nhiên hơn, DKG là phiên bản không tương tác hơn là phiên bản tương tác.
Điều thứ ba tôi đang làm là phần sharding mà tôi vừa nói đến. Chúng tôi đang thiết kế một hệ thống sharding cho DFINITY. Chúng tôi đã thiết kế một hệ thống bảo vệ cho một mạng giống như Bitcoin và chúng tôi sử dụng khái niệm tương tự và bài báo của chúng tôi sẽ được xuất bản tại CCS. Đây là một bài báo hay, vì vậy bạn nên đọc nó.
Có lẽ chỉ để trả lời câu hỏi "Các yêu cầu đối với DFINITY là gì? Có bao nhiêu người có thể không trung thực và mạng vẫn tồn tại?" Đó là một câu hỏi hay.
Thông thường, nếu bạn đang làm việc trong môi trường không đồng bộ hoặc môi trường bán đồng bộ, số lượng bên mà một giao thức có thể chấp nhận là một phần ba. Vì vậy, tỷ lệ các bên không trung thực luôn là một phần ba trong mô hình không đồng bộ, là giới hạn dưới nên không thể chấp nhận bất cứ điều gì cao hơn thế.
Hệ thống sharding của DFINTY
DFINITY đang hoạt động theo mô hình này, có nghĩa là tỷ lệ các bên không trung thực trong toàn mạng phải là một phần ba, nhưng trong mỗi nhóm, chúng tôi chỉ có thể chấp nhận một nửa tỷ lệ đó, vì vậy chúng tôi sẽ tăng từ một phần ba xuống một nửa . “Chúng ta có biết những nhóm này sẽ lớn đến mức nào không?”
Kích thước của nhóm phụ thuộc vào mức độ bảo mật mà bạn muốn đạt được, nhóm càng lớn thì bạn càng đạt được mức độ bảo mật tốt hơn. Hiện tại, đối với mức bảo mật khoảng 86-90, kích thước được đặt từ 400 đến 800 có vẻ hợp lý, nghĩa là xác suất lỗi sẽ vào khoảng 86. Bạn không bao giờ mất token của mình.
Khối thời gian và tính hữu hạn
Một câu hỏi khác trước khi kết thúc là, chúng ta đã nói về hiệu quả sử dụng năng lượng và đề cập đến một số thời gian tạo khối cho chuỗi khối Bitcoin mà bạn đã đề cập là khoảng mười phút. Vậy thời gian khối chúng ta đạt được trong DFINITY là bao nhiêu?
Hiện tại, trên mạng thử nghiệm của chúng tôi, thời gian chặn là khoảng một giây, chưa đến một giây.
Một điểm khác biệt giữa DFINITY và Bitcoin là để đạt được mục đích cuối cùng với Bitcoin, vì chúng không có giao thức đồng thuận thực sự nên bạn cần phải đợi sáu khối. Đối với DFINITY, chúng ta cần hai khối.
Vì vậy, điều đó có nghĩa là 2 giây, 1 giây cho mỗi khối, 2 giây cuối cùng, nghĩa là chúng ta có 2 giây cuối cùng, trong khi thời gian cuối cùng của Bitcoin là khoảng 1 giờ.
Về cơ bản, đây là những gì xảy ra trên DFINITY với Bitcoin để kích hoạt giao dịch giống như thẻ tín dụng và hoàn tất giao dịch, nếu tôi đến quán cà phê để mua cà phê, trong trường hợp xấu nhất tôi phải đợi một giờ trước khi có thể sử dụng Bitcoin của tôi. Đảm bảo giao dịch thực sự được thực hiện, quá trình này có thể mất tối đa hai giây trên DFINITY.
Trong trường hợp tốt nhất, nếu người tạo khối lạc quan và trung thực, bạn chỉ phải đợi hai giây để đạt được trạng thái cuối cùng trong DFINITY, thì đây giống như một hệ thống có thông lượng cao.
Cảm ơn Mahnush vì đã dành thời gian hướng dẫn chúng tôi vượt qua một số thách thức và đổi mới của DFINITY.

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
