Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Theo đuổi những con số ngẫu nhiên là công lý đơn giản nhất của con người
DfinityFun
特邀专栏作者
2019-07-24 06:41
Bài viết này có khoảng 10156 từ, đọc toàn bộ bài viết mất khoảng 15 phút
Một con số ngẫu nhiên chạy trên 01 máy và được mọi thứ trên thế giới nhận ra chưa bao giờ lại hấp dẫn đến thế trước blockchain.

Tác giả: BlockPunk

lời tựa

lời tựa

Ở lục địa phía Đông 4000 năm trước, pháp sư từ từ nhặt mai rùa từ đống tro tàn của đống lửa trại. Các vết nứt ngẫu nhiên trên mai rùa sẽ quyết định thời gian cho cuộc săn tiếp theo của bộ lạc; Năm trăm công dân ưu tú được chọn ngẫu nhiên để tham gia cuộc thảo luận về các vấn đề chính quyền của thành phố-nhà nước; ở Trung Đông 2.000 năm trước, các thương nhân ngồi quanh bàn đánh bạc, hồi hộp xem con xúc xắc bốn mặt lăn trên bàn, và kết quả cuối cùng của nó sẽ quyết định việc quy kết một gia tài lớn .

Trong lịch sử hàng nghìn năm của loài người, chúng ta đã không ngừng tìm kiếm những con số ngẫu nhiên đáng tin cậy và sử dụng những con số ngẫu nhiên trong mọi mặt của cuộc sống, hệ thống xổ số của nền dân chủ và cộng hòa, truyền thông tin quân sự trong các cuộc chiến tranh, tính toán mô hình sản xuất, và Một tài liệu tham khảo đáng tin cậy khi đánh bạc và giải trí.

tiêu đề cấp đầu tiên

số ngẫu nhiên thực sự

Xét về mặt công nghệ đơn giản của tổ tiên chúng ta, con người đã sáng tạo ra nhiều phương pháp sinh số ngẫu nhiên, nhưng tính ngẫu nhiên và khó đoán của những con số ngẫu nhiên này không cao hơn việc đốt mai rùa.

Mô tả hình ảnh

Hình ảnh "Hàng triệu bảng ngẫu nhiên" đến từ Internet

Mô tả hình ảnh

Hình ảnh đèn dung nham từ Internet

tiêu đề cấp đầu tiên

số giả ngẫu nhiên

Chúng ta có thể nhận được sự ngẫu nhiên bí ẩn và vô hạn từ các hiện tượng vật lý, nhưng một số hiện tượng không thể định lượng chính xác. Nhưng đồng thời, chúng ta cần một lượng lớn số ngẫu nhiên để mã hóa dữ liệu, huấn luyện mô hình và đưa ra phán quyết công bằng.Chỉ số ngẫu nhiên tự nhiên thôi là chưa đủ.

Mô tả hình ảnh

Máy tính ENIAC | Hình từ Internet

Thuật toán này như sau: đầu tiên lấy một giá trị ngẫu nhiên rất ngắn, chẳng hạn như số mili giây tại thời điểm hoạt động, làm "hạt giống" của thuật toán này, sau đó bình phương "hạt giống", xuất phần giữa của kết quả bình phương , sau đó sử dụng nó làm "hạt giống" Lặp lại thao tác trên. Sau khi lặp lại đủ số lần sẽ thu được một "số ngẫu nhiên".

Đây được gọi là phương pháp bình phương và nó chỉ là một trong vô số thuật toán số giả ngẫu nhiên tạo ra một chuỗi chỉ phụ thuộc vào tính ngẫu nhiên của hạt giống ban đầu. Do sự chắc chắn của máy, cùng một hạt giống có thể tính toán cùng một số ngẫu nhiên.

Số chữ số của hạt giống xác định tính ngẫu nhiên của số ngẫu nhiên. Khi bạn đặt hạt giống hai chữ số để tạo số ngẫu nhiên gồm 10 chữ số, bạn chỉ có thể nhận được tối đa 100 số ngẫu nhiên có sẵn trước khi hàm tạo chu kỳ lặp lại; trong khi trong tự nhiên, phải có mười tỷ khả năng cho một số ngẫu nhiên gồm 10 chữ số. Thứ tự lớn của sự khác biệt về độ lớn giữa hai là sự khác biệt giữa các số ngẫu nhiên đúng và sai.

Hình ảnh đến từ Internet

Hình ảnh đến từ Internet

Các số giả ngẫu nhiên có chu kỳ đều đặn và nồng độ của các điểm được biểu thị dưới dạng các tĩnh mạch

Tất nhiên, loại số ngẫu nhiên này là đủ để sử dụng, chúng ta phải giới thiệu một khái niệm rất quan trọng trong khoa học máy tính, ranh giới thời gian, tức là số ngẫu nhiên này an toàn và không lặp lại trong bao lâu. Giống như chúng ta sử dụng khóa ô tô bằng mật khẩu, chúng ta biết rằng mật khẩu chính xác phải có 10.000 tổ hợp, nhưng phải mất vài ngày để thử từng tổ hợp, nó được coi là an toàn trong giới hạn thời gian này và điều này cũng đúng với các số giả ngẫu nhiên .

Các chuỗi ngẫu nhiên mà chúng ta nhắm mắt gõ trên bàn phím thực ra đều có quy tắc phải tuân theo, đây là bố cục bàn phím của QWER, sau khi phân tích, khả năng bẻ khóa các số ngẫu nhiên sẽ rất cao.

tiêu đề cấp đầu tiên

Tại sao Blockchain cần số ngẫu nhiên

Trong Internet truyền thống, các số ngẫu nhiên là cơ sở của mật mã và bảo mật quyền riêng tư. Bằng cách chia sẻ các khóa ngẫu nhiên, các liên lạc riêng tư được mã hóa có thể được thực hiện giữa hai nút. Trong chuỗi khối, việc truyền khóa riêng được sử dụng Thuộc tính; đồng thời, các số ngẫu nhiên cũng được sử dụng rộng rãi trong giao tiếp nhiều nút trong điều kiện băng thông hạn chế. Các số ngẫu nhiên có thể được sử dụng để xác định thứ tự truyền dữ liệu hợp lý để điều phối các nút của nhiều bên. Trên chuỗi khối, đó là sử dụng các thuật toán đồng thuận dựa trên các số ngẫu nhiên để phối hợp Các trình xác nhận giao dịch đảm bảo rằng mọi người chỉ cập nhật thông báo của một số nút trong một khoảng thời gian, để đạt được sự đồng thuận khi số lượng thông báo mạng bị hạn chế.

tóm tắt

tóm tắt

  • Xác định công bằng quyền tạo khối và duy trì sự đồng thuận nhất quán. Theo một số cơ chế PoW và PoS, các số ngẫu nhiên được sử dụng để chọn nhà sản xuất khối hoặc nhà sản xuất khối, bao gồm cả thứ tự sản xuất khối tròn theo cơ chế DPoS, cũng được xác định bằng số ngẫu nhiên.

  • Tạo khóa riêng. Hiện tại, miễn là khóa riêng được tạo theo phương pháp số ngẫu nhiên được xác định bởi mỗi ví, sẽ có rủi ro bảo mật lớn.

  • Nguồn số ngẫu nhiên cho các ứng dụng trên chuỗi. Đảm bảo tính công bằng và công bằng của các ứng dụng như cờ bạc, trò chơi, xổ số, phân phối, khảo sát, v.v., những ứng dụng dễ bị hack.

  • tiêu đề cấp đầu tiên

Độ khó của các số ngẫu nhiên trên chuỗi

Mặc dù blockchain vẫn dựa trên công nghệ Internet trước đây, nhưng có một sự khác biệt lớn trong phần tạo số ngẫu nhiên.

Phương pháp tạo số ngẫu nhiên truyền thống là tập trung và các số ngẫu nhiên được tạo ra có liên quan đến giá trị trạng thái và trạng thái vật lý của một máy cụ thể.Tuy nhiên, các số ngẫu nhiên thu được bằng cùng một thuật toán số ngẫu nhiên trên các nút khác nhau là khác nhau, và cũng là không thể xác minh từng số ngẫu nhiên, vì vậy phương pháp truyền thống không thể tạo ra tính ngẫu nhiên nhất quán, điều này không tương thích với chuỗi khối.

tiêu đề phụ

Nguyên tắc của số ngẫu nhiên trên chuỗi

1. Không thể đoán trước

Vì số ngẫu nhiên quyết định tính công bằng của toàn bộ lớp giao thức bao gồm tất cả các lớp trên nên nếu có thể dự đoán trước số ngẫu nhiên thì có thể chờ cơ hội để phát động tấn công. Tất nhiên, tính không thể đoán trước này có một ranh giới thời gian, nói chung, thời gian chuỗi khối được sử dụng làm ranh giới và độ khó dự đoán được tăng lên bằng cách kiểm soát độ khó tính toán hoặc đặt thời gian chờ. Tóm lại, có hai lựa chọn:

  • Đảm bảo rằng số ngẫu nhiên được tuần tự hóa từ thời gian khối (VRF/VDF)

  • Đảm bảo độ khó của việc tạo số ngẫu nhiên và điều chỉnh độ khó theo tình huống (xung đột băm)

2. Không can thiệp

Số ngẫu nhiên xác định xác nhận đồng thuận của khối (trong hệ thống không chịu lỗi của Byzantine), vì vậy nếu bạn có thể can thiệp vào sự xuất hiện của số ngẫu nhiên, bạn có thể gián tiếp kiểm soát hướng tương lai của chuỗi khối mà không cần làm chủ các nút/ sức mạnh tính toán vượt quá giới hạn trên, mặc dù Nhiễu có thể nhỏ, nhưng việc tích tụ nhiều nhiễu có thể dẫn đến các vấn đề nghiêm trọng hơn ("tấn công khuếch đại"). Có hai giải pháp:

  • Đảm bảo rằng việc tạo số ngẫu nhiên là không tương tác (sơ đồ chữ ký ngưỡng) hoặc được tính toán hoàn toàn dựa trên trạng thái của chính nút (xung đột hàm băm)

  • Đặt độ trễ tạo số ngẫu nhiên, bạn cần đợi một thời gian dài để thực hiện các phép tính phức tạp để lấy số ngẫu nhiên, do đó người gây nhiễu không thể dự đoán tác động của chính họ

3. Có thể kiểm chứng

tiêu đề phụ

Một số giải pháp không tuân theo các nguyên tắc trên

Để giải quyết khó khăn của các số ngẫu nhiên trên chuỗi khối, nhiều giải pháp đã được sản xuất một cách tự phát, sau đây là phần giới thiệu sơ lược về các giải pháp sau không đáp ứng được ba nguyên tắc trên, mặc dù mỗi giải pháp đều có logic tự nhất quán và tính bảo mật nhất định , hiện tại chúng vẫn còn vấn đề trong giai đoạn và nó vẫn có thể được sử dụng ở những nơi yêu cầu bảo mật không quá cao. Điều này không dành riêng cho một dự án cụ thể, nhưng chỉ ra các vấn đề với các mô hình tương tự.

1. Sử dụng số ngẫu nhiên thực ngoài chuỗi

Thay vì tính toán các số ngẫu nhiên trên chuỗi, hãy sử dụng các số ngẫu nhiên thực sự bắt nguồn từ các hiện tượng vật lý như tiếng ồn trong khí quyển, xung điện và dựa vào các chipset chứa các mạch nhiễu nhiệt. Nhưng đối với chuỗi khối, phần ngoài chuỗi là vô hình và mặc định là không đáng tin cậy. Lấy số ngẫu nhiên ngoài chuỗi phải nhờ bên thứ ba tải lên chuỗi, điều này không chỉ vi phạm tinh thần phân cấp của chuỗi khối mà còn là hoàn toàn không thể kiểm chứng, và có rủi ro giả mạo và dự đoán trước. Ngay cả khi máy tiên tri được sử dụng để thu được các số thực sự ngẫu nhiên ngoài chuỗi theo cách phi tập trung, thì vẫn có sự can thiệp vật lý của con người. Vì vậy kế hoạch này là rất không mong muốn.

2. Sử dụng dữ liệu của khối hiện tại làm nguồn ngẫu nhiên

Nhiều Dapp đánh bạc trên chuỗi được sử dụng để tham chiếu trực tiếp giá trị gốc băm của khối mới nhất dưới dạng hạt giống ngẫu nhiên của hợp đồng, sau đó tạo ra các số ngẫu nhiên. Mặc dù phần giới thiệu ngắn gọn dựa trên sự đảm bảo về sức mạnh tính toán trên chuỗi, nhưng các số ngẫu nhiên được tạo theo cách này dường như đủ đáng tin cậy, nhưng cần phải xem xét bảo mật đa chiều. Trước hết, dữ liệu trên khối là minh bạch, tất cả các nút đều có thể lấy được và kẻ tấn công cũng có thể sử dụng dữ liệu đó để tấn công hợp đồng, trở ngại duy nhất là thuật toán số ngẫu nhiên không phải là mã nguồn mở. Điểm thứ hai là sau khi nhà sản xuất khối đủ điều kiện để tạo khối, anh ta có thể thử thay đổi thứ tự của các giao dịch được đóng gói và cố gắng đóng gói các giao dịch khác nhau để tạo ra giá trị gốc băm có lợi nhất cho mình, từ đó mở rộng cơ hội chiến thắng của anh ta , có lợi cho những người tham gia khác không công bằng.

3. Tạo số ngẫu nhiên với sự trợ giúp của các tổ chức phân tán

tiêu đề cấp đầu tiên

Ba loại chương trình

tiêu đề phụ

va chạm băm

Trong hệ thống PoW, máy khách của người khai thác có một bộ tạo số ngẫu nhiên dựa trên trạng thái của nút, có thể xuất ra một chuỗi số ngẫu nhiên và sau đó tính toán giá trị băm của nó. Khi giá trị băm được tạo nằm trong phạm vi kích thước đã chỉ định, Đó là để đạt được tiêu chuẩn tạo ra một khối, các nút khác lấy giá trị ngẫu nhiên này và tính giá trị băm một lần để xác minh, vì vậy việc xác minh của nó rất đơn giản.

Do đó, số ngẫu nhiên này phải trải qua hàng trăm nghìn tỷ lần xuất hiện số ngẫu nhiên mới có cơ hội có được một số ngẫu nhiên đáp ứng yêu cầu, vì vậy mức độ ngẫu nhiên của nó rất cao; gần như không thể dự đoán được số ngẫu nhiên này vài khối. trước; vì số ngẫu nhiên được xuất hoàn toàn theo trạng thái của chính nút, nên số ngẫu nhiên này sẽ không gây trở ngại cho những kẻ tấn công khác; điều chỉnh độ khó tức thời (điều chỉnh phạm vi kích thước của giá trị băm) và sẽ không bị vi phạm trong phạm vi ranh giới thời gian an ninh.

lợi thế:

lợi thế:

  • Tính ngẫu nhiên mạnh nhất, số bảo mật, rất thích hợp để điều khiển lớp đồng thuận;

  • sự thiếu sót:

sự thiếu sót:

  • Dư thừa tính toán, tiêu hao tính toán lớn, lãng phí tài nguyên;

  • Khó sử dụng ở lớp ứng dụng;

  • Không phải là duy nhất, nhiều số ngẫu nhiên đáp ứng các yêu cầu có thể tồn tại cùng một lúc, điều này có thể dẫn đến các nhánh khối;

  • tiêu đề phụ

Chức năng ngẫu nhiên có thể kiểm chứng (VRF)

Thuật toán VRF (Chức năng ngẫu nhiên có thể xác minh) được đề xuất bởi Giáo sư Mocali vào năm 1999. Do tính bảo mật và hiệu quả tốt hơn, nó được ngày càng nhiều dự án blockchain sử dụng để tối ưu hóa quy trình đồng thuận, cho phép phần số ngẫu nhiên của sự đồng thuận chiếm tính toán Các tài nguyên bị giảm và nhiều tài nguyên hơn bị chiếm dụng bởi việc xác nhận các giao dịch và vận hành các hợp đồng.

Đặt hình trên để mô tả ngắn gọn các bước tạo:

0. Tạo cặp khóa công khai dành riêng cho chữ ký số ngẫu nhiên;

1. Có được một hạt giống đủ ngẫu nhiên, có thể sử dụng trực tiếp kết quả của vòng trước và kết hợp với các biến như chiều cao và thời gian của khối;

2. Sử dụng khóa riêng của số ngẫu nhiên để ký (cùng tham gia tạo số ngẫu nhiên), hoặc ký trước rồi kết hợp;

3. Tạo một bản tóm tắt hàm băm của giá trị đã ký để lấy số ngẫu nhiên mới nhất;

4. Kiểm tra xem số ngẫu nhiên có nằm trong phạm vi hợp pháp hay không và đánh giá xem xổ số đã vào nhóm sản xuất khối thành công hay chưa (một số dự án không cần quy trình này)

5. Theo đầu vào của khóa chung và vòng, v.v., bằng chứng được tính toán và người xác minh sử dụng chức năng để xác minh sau khi nhận được số ngẫu nhiên.

Do đó, số ngẫu nhiên được tạo theo cách này, nút có thể dễ dàng xác minh xem nó có tuân theo thuật toán hay không,"Verifiable"Điều này được thực hiện; và sau một thuật toán đủ phức tạp, kết hợp với quy trình phân tích băm, sẽ thu được kết quả phân phối đủ ngẫu nhiên và "Ngẫu nhiên" được đảm bảo.

VRF chủ yếu được sử dụng cùng với cơ chế PoS để chọn ngẫu nhiên các nhà sản xuất khối (nhóm) và trực tiếp xác định việc lựa chọn các khối nhất quán trong các dự án riêng lẻ. Quá trình tạo số ngẫu nhiên có thể chạy hoàn toàn ngoài chuỗi nút và cũng có thể chạy hoàn toàn trên chuỗi.

lợi thế:

lợi thế:

  • Yêu cầu năng lực tính toán thấp, hiệu quả cao trong việc tạo số ngẫu nhiên;

  • Tạo các số ngẫu nhiên duy nhất và xác định, không dễ bị phân nhánh;

  • Việc xác minh có thể chậm hơn so với việc tạo số ngẫu nhiên, thích hợp cho các cuộc bầu cử bí mật;

  • sự thiếu sót:

sự thiếu sót:

  • Có nhiều bước xác minh và cần phải có nhiều xác minh trong các cuộc bầu cử bí mật;

  • Tính đồng nhất của phân bố số ngẫu nhiên chưa tốt, do tính theo khóa đặc trưng;

  • Việc sử dụng băng thông cao và độ trễ dài, điều này cho phép các nút được bầu bí mật xác nhận lẫn nhau và dự án BLS không phải là vấn đề lớn;

Algorand

Mỗi nút lấy hạt giống ngẫu nhiên trong vòng xác nhận khối trước đó, đặt thời gian của vòng, v.v., chạy chức năng VRF riêng biệt trong chuỗi, sau đó thực hiện tóm tắt hàm băm trên kết quả và nút so sánh kết quả với hàm băm phạm vi giá trị trong mạng (Tương tự như so sánh hàm băm PoW), các thành viên trong phạm vi đủ điều kiện tham gia xác minh và tạo khối.

Vì VRF đang chạy ở ranh giới mạng, tức là một phần của chuỗi nút, nên toàn bộ mạng không biết nút nào được chọn. được gửi cho nhau. Và thu thập xác minh để đánh giá danh tính của các nút khác, vì vậy quá trình này được gọi là "bầu cử bí mật".

Đối với việc lựa chọn khối, nó được xác định theo "trình độ" của số ngẫu nhiên của nút tạo khối, đồng thời, nút cần bỏ phiếu cho các khối khác. Quá trình này là lỗi Byzantine được cải tiến- giao thức khoan dung và bỏ phiếu yêu cầu hai vòng, mỗi vòng yêu cầu một "cuộc bầu cử bí mật".

lợi thế:

lợi thế:

  • "Bầu cử bí mật", không thể biết tất cả các nút được chọn ngay lần đầu tiên, vì vậy không thể thông đồng hoặc tấn công vào một điểm cố định trước;

  • sự thiếu sót:

sự thiếu sót:

  • Các nút được chọn mất nhiều thời gian để xác nhận danh tính của nhau và duyệt qua toàn bộ mạng, tốc độ sử dụng băng thông quá cao khiến người bình thường không thể tham gia đồng thuận và ảnh hưởng đến mức độ phân quyền;

  • Do kích thước của nhóm xác minh được phân phối theo phạm vi xác suất, nên không thể chọn đủ nút khi kích thước mạng nhỏ và khi kích thước mạng lớn, nhóm xác minh quá lớn và hiệu suất quá thấp;

tiêu đề phụ

DFINITY

Lần đầu tiên một nút cam kết tham gia mạng, nó sẽ tạo ngẫu nhiên một "khóa số ngẫu nhiên" dành riêng cho mỗi nút theo giao thức tạo khóa phân tán.

Thỏa thuận khóa phân tán này sẽ tạo ra một cặp khóa tổng đáp ứng các yêu cầu và theo quy mô của nhóm ủy ban do hệ thống chỉ định, tổng cặp khóa sẽ được chia và phân phối cho các nút trong nhóm. Các nút được cấp một khóa ký riêng, nhưng không ai biết khóa chính là gì.

Việc phân bổ các nhóm là ngẫu nhiên và một nút có thể tồn tại trong nhiều nhóm cùng một lúc, nhưng các thành viên của nhóm là cố định và được biết trước, điều này khác với "bầu cử bí mật" của Algorand - DFINITY là "tiên nghiệm", Algorand là "posteriori".

Quá trình tạo số ngẫu nhiên của DFINITY hoàn toàn trực tuyến và bạn không thể kiểm soát quá trình tạo số ngẫu nhiên. Số ngẫu nhiên của vòng cuối cùng sẽ chọn nhóm ủy ban cho vòng này từ nhiều nhóm và toàn bộ quá trình đều mở. Nhóm ủy ban sẽ thực hiện nghĩa vụ tạo khối và công chứng. Trong quá trình công chứng, các nút sẽ tiếp tục tìm kiếm khối có "trọng số" cao nhất. "Trọng số" này cũng được xác định bởi số ngẫu nhiên của vòng trước. Khi nào một khối được tìm thấy, nó sẽ được sử dụng. "Khóa số ngẫu nhiên" được ký và phát sóng.

Và có một chương trình chạy trên chuỗi, được gọi là đèn hiệu số ngẫu nhiên, chương trình này liên tục nhận dữ liệu chữ ký của vòng hiện tại, khi chữ ký của một khối vượt quá 50% số nút trong nhóm xác minh, nó sẽ gửi chữ ký Tổng hợp để tạo một số ngẫu nhiên được xác nhận duy nhất. Sự xuất hiện của số ngẫu nhiên này báo hiệu sự kết thúc của vòng đồng thuận này và sẽ tiếp tục chọn người tham gia cho vòng đồng thuận tiếp theo.

lợi thế:

lợi thế:

  • Trong giai đoạn đồng thuận và tạo số ngẫu nhiên, các nút không cần tương tác, chúng được thực thi tự động, không cần khả năng chịu lỗi Byzantine, hiệu quả cao và mức sử dụng băng thông thấp;

  • Quá trình tạo số ngẫu nhiên không thể hoạt động và không tương tác, vì vậy nó không thể bị ảnh hưởng và số ngẫu nhiên công bằng hơn;

  • Nhóm ngưỡng đã được xác định và không thay đổi theo sự đồng thuận, điều này đương nhiên phù hợp với việc phân mảnh, do đó khả năng mở rộng rất tốt;

  • sự thiếu sót:

sự thiếu sót:

  • Về sau, các thành viên trong đội đã được xác định trước khi thống nhất, có thể có thông đồng khả năng;

  • Được thúc đẩy hoàn toàn bởi các số ngẫu nhiên, mặc dù các nút thông đồng không thể kiểm soát chuỗi khối, nhưng chúng có thể ngăn hệ thống ngừng hoạt động;

  • Nền tảng học thuật của thuật toán BLS là đủ, nhưng thiếu triển khai kỹ thuật và không có trường hợp nguồn mở.

Cardano

Dự án này là triển khai đầu tiên của thuật toán Ouroboros nổi tiếng. Giai đoạn đồng thuận được lặp lại theo chu kỳ. Có nhiều vị trí trong mỗi vòng và mỗi vị trí sẽ tạo ra một khối. Nếu có thể bỏ qua một vị trí nếu xảy ra sự cố. Và ai sẽ tạo khối cho mỗi vị trí cần sử dụng hạt giống số ngẫu nhiên được cung cấp bởi khối gốc của vòng này, quyền thế chấp của các nút đủ điều kiện tham gia vào sự đồng thuận, khóa công khai của nút và danh sách các vị trí (chỉ mục) và dữ liệu khác, thu thập các khóa công khai do các nút công bố và tính toán kết quả cuối cùng. Con số xác định nút nào (lãnh đạo vị trí) có thể tạo khối.

Do đó, chìa khóa của Cardano là trong mỗi thời đại, khối gốc chứa số ngẫu nhiên xác định nhà sản xuất khối. Trên thực tế, trong các nút bên dưới máy trạng thái này, việc tạo khối của thời đại này đã được xác định từ đầu việc tạo khối ban đầu. Ai là người chiến thắng? Thuật toán lựa chọn này cần được tính toán trong một thời gian. Quá trình tính toán nhà sản xuất khối có thể được coi là quá trình xác minh sau VRF, vì vậy Cardano cũng có thể được coi là "bí mật cuộc bầu cử".

Chìa khóa nằm ở việc tạo ra các số ngẫu nhiên trong khối genesis, số này cần phải đủ ngẫu nhiên để các nút nhận ra. Cardano sử dụng quy trình cam kết tiết lộ bí mật để cho phép mỗi nút tải lên các số ngẫu nhiên của riêng chúng được tạo từ trạng thái máy. Sau khi bí mật được tiết lộ, các số ngẫu nhiên này được kết hợp để tạo ra một chuỗi ngẫu nhiên. Đây là quá trình tạo số ngẫu nhiên.

Quá trình tiết lộ bí mật phức tạp hơn, đầu tiên, trước giai đoạn tạo khối vị trí, tất cả các nút được chọn theo vốn chủ sở hữu (theo quy mô thế chấp) sẽ bí mật tính toán một chuỗi ngẫu nhiên, sau đó thực hiện mã hóa phức tạp trên chuỗi này, và văn bản mật mã được mã hóa được phát tới toàn bộ mạng (không phát được coi là bỏ phiếu trắng trong thời đại tiếp theo) và hứa hẹn sẽ giải thích bí mật. Sau đó, trong quá trình tạo khối vị trí, nút sẽ tiết lộ Dữ liệu mở chứa dữ liệu giải mã và số ngẫu nhiên ban đầu, có thể được sử dụng để xác minh số ngẫu nhiên của nút. Bằng cách này, có thể đảm bảo rằng trước khi số ngẫu nhiên được tạo, nút đã chuẩn bị số ngẫu nhiên và không sửa đổi nó, thay vì tạo nó sau khi nhận được bí mật của người khác, bởi vì điều đó có thể gián tiếp can thiệp vào việc tạo số ngẫu nhiên. số, do đó gián tiếp kiểm soát blockchain khu vực.

Nhưng có một vấn đề là các nút không thể gửi số Mở và số ngẫu nhiên trong giai đoạn tiết lộ. Điều này có thể khiến điện thoại di động không có đủ số ngẫu nhiên của nút, khối genesis không thể được tạo và cuối cùng chuỗi khối sẽ ngừng hoạt động. Để chống lại rủi ro này, Cardano quy định rằng các nút phải chia Open thành nhiều phần theo thuật toán ở giai đoạn gửi bản mã được mã hóa và sử dụng khóa chung của nhà sản xuất khối thời đại này để mã hóa. Khi một nút biến mất, nút tạo khối có thể sử dụng khóa riêng của chính nó để giải mã các mảnh của Mở, sau đó kết hợp Mở lại với nhau.

Và thuật toán chia Open này được gọi là VSS chia sẻ bí mật có thể kiểm chứng (verifiable secret sharing). Sau khi Open được chia, không thể nhìn thấy bức tranh toàn cảnh của Open bằng cách ăn một mảnh, vì vậy số ngẫu nhiên này không thể lấy trước được ngay cả bởi nhà sản xuất khối. Đồng thời, ưu điểm của thuật toán VSS này tương tự như thuật toán BLS mà DFINITY sử dụng, không cần đặt tất cả các đoạn lại với nhau và chỉ một phần của các đoạn có thể khôi phục Mở hoàn chỉnh.

lợi thế:

lợi thế:

  • Tính ngẫu nhiên tốt và bảo mật cao;

  • sự thiếu sót:

sự thiếu sót:

  • Nhóm xác minh được xác định đầu tiên và được sắp xếp theo quy mô của cổ phần, vì vậy việc phân cấp kém hơn một chút;

  • Thông đồng giữa các nút là có thể;

  • tiêu đề cấp đầu tiên

VDF+Randao

Như đã đề cập trong Hash Collision, do tính minh bạch của dữ liệu khối, rất khó để các số ngẫu nhiên theo cơ chế PoW được sử dụng làm hạt giống trong các hợp đồng lớp trên, vấn đề này cũng tồn tại trong Ethereum 1.0. Do đó, một số người cân nhắc việc sử dụng một tổ chức phi tập trung để thu thập hạt giống một cách phân tán, để nhận ra một số ngẫu nhiên an toàn và không thể đoán trước trên hợp đồng.Đây là Randao. Như đã đề cập ở trên, mặc dù thiết kế kinh tế của nó hạn chế sự thông đồng, nhưng vẫn có những rủi ro về "cuộc tấn công của người tham gia cuối cùng" và "cuộc tấn công khuếch đại".

Tấn công người tham gia cuối cùng: Người cuối cùng tham gia Randao có thể dự đoán một số con số ngẫu nhiên trong tương lai, vì vậy anh ta có thể chọn không tiết lộ bí mật và can thiệp vào nó.

Tấn công khuếch đại: Thực hiện cuộc tấn công của người tham gia cuối cùng nhiều lần để khuếch đại nhiễu thành số ngẫu nhiên, từ đó kiểm soát tổ chức trong thời gian ngắn.

Trong sơ đồ Ethereum 2.0 được công bố gần đây, để xem xét hiệu suất, PoS cần được sử dụng thay vì PoW, vì vậy cần có các số ngẫu nhiên để chọn trình độ khối. Số ngẫu nhiên chạy trên một chuỗi duy nhất được gọi là "chuỗi báo hiệu". Số ngẫu nhiên do nó tạo ra được sử dụng để kiểm soát ngẫu nhiên thành phần của các phân đoạn, từ đó thực hiện song song nhiều phân đoạn và mở rộng hiệu suất của Ethereum. Do đó, các số ngẫu nhiên đã trở thành cơ sở quan trọng để nâng cấp Ethereum, liên quan đến tính công bằng của sharding và khả năng xác nhận cuối cùng.

Sơ đồ sharding của PoW quá phức tạp, vì vậy Ethereum 2.0 sharding dựa trên PoS, và điều này cũng đúng với các số ngẫu nhiên, không thể sử dụng va chạm băm để lấy số ngẫu nhiên ở lớp đồng thuận, vì vậy Ethereum 2.0 mượn ý tưởng từ Randao, nhưng để giải quyết hai vấn đề nêu trên, một chức năng trì hoãn có thể kiểm chứng VDF (Verifiable Delay Function) được giới thiệu, do đó các số ngẫu nhiên do Randao tạo ra cần phải trải qua một khoảng thời gian dài mới có kết quả , tương đối khó tính toán và phải đợi nhiều khối, nó chạy nối tiếp, do đó khi bí mật được truyền ở Randao ngay từ đầu, kẻ tấn công không thể đoán trước tác động của việc ăn bí mật của chính mình đối với trạng thái cuối cùng công nghệ tiên tiến và không thể khởi động cuộc tấn công trên.

Hãy để tôi giới thiệu Randao trước. Các nút trên Ethereum 2.0 đủ điều kiện tham gia Randao bằng cách thế chấp 32 ETH. Mỗi khi họ nhận được một hạt giống số ngẫu nhiên, các nút tham gia Randao sẽ âm thầm đọc một con số bí mật trong trái tim của họ, sau đó mã hóa nó và phát sóng Nó. Sau khi mọi người lấy được bản mã của người khác, các nút sẽ lần lượt tiết lộ bí mật và các số ngẫu nhiên được kết hợp theo một cách nhất định, có thể được sử dụng làm hạt giống số ngẫu nhiên để tạo ra số ngẫu nhiên cuối cùng. Điều này giống như chơi cầu, đầu tiên, các quân bài được chia úp xuống cho người chơi, sau đó chúng được tiết lộ từng quân bài một khi mở quân bài, để ngăn người tham gia cuối cùng dự đoán kết quả và can thiệp, VDF được chọn để tạo số ngẫu nhiên cuối cùng.

Và VDF này có các đặc điểm sau:

1. Tính toán khó khăn và kết quả bị chậm trễ. Quá trình tính toán của VDF tương đối phức tạp, mất nhiều thời gian mới có kết quả nên rất khó dự đoán nhanh kết quả nếu đặt thời gian trễ đủ lâu;

2. Xác minh đơn giản. Quá trình chạy VDF có thể khó khăn và tốn thời gian, nhưng kết quả phải được kiểm tra nhanh chóng;

3. Tính nối tiếp. Việc tính toán VDF được thực hiện từng bước, để tính toán kết quả cuối cùng phải thực hiện từng bước, không thể thực hiện tăng tốc song song, kẻ tấn công dù có nắm giữ nhiều máy cũng không thể đoán trước kết quả trong thời gian ngắn.

Ví dụ sau khi lấy liên tục một số nguyên dài tới lũy thừa 10, tìm số dư của một số nguyên tố lớn nào đó, rồi thực hiện liên tục các bước trên hàng trăm lần, đây là một chức năng của VDF. Vì vậy, thuật toán tính công suất khó, trải qua nhiều chu kỳ phải biết kết quả trước rồi mới tính tiếp nên kết quả cuối cùng của thuật toán này không thể tính nhanh mà phải thực hiện từng bước. bước một cách trung thực. thực hiện. Đồng thời, do kiến ​​​​trúc máy tính của con người, ngay cả khi bạn rất khác nhau, độ khó của phép tính này sẽ không thay đổi theo cấp số nhân và vẫn rất khó giải quyết. Tính không thể đoán trước này đảm bảo tính bảo mật của các số ngẫu nhiên.

Thực ra phần trên chỉ là thuật toán tính kết quả, VDF cũng nên đưa vào thuật toán xác minh kết quả, kết quả của VDF không chỉ là số ngẫu nhiên mà còn là xác minh số ngẫu nhiên, có thể nhanh chóng được xác minh bởi bất kỳ nút nào.

lợi thế:

lợi thế:

  • Hiện tại, số giả ngẫu nhiên khó dự đoán nhất trên blockchain, độ mạnh của số ngẫu nhiên rất cao, nhưng yếu hơn POW;

  • Các số ngẫu nhiên tuân thủ nghiêm ngặt thứ tự nối tiếp, hoạt động tăng tốc chống song song;

  • sự thiếu sót:

sự thiếu sót:

  • Quá trình tính toán VDF rất khó khăn, hiệu quả thu được các số ngẫu nhiên rất thấp và gây lãng phí lớn về hiệu suất tính toán;

  • Mặc dù tính toán rất khó, nhưng nó không có khả năng chống lại điện toán lượng tử như PoW và nó có thể bị hỏng;

  • tóm tắt

tóm tắt

Nhà thống kê Francis Galton đã viết trên tạp chí Nature vào năm 1890: "Là một công cụ để lựa chọn tính ngẫu nhiên, tôi thấy không có gì vượt trội hơn xúc xắc."

Con người không ngừng cố gắng đúc kết ngẫu nhiên bằng các quy luật, nhưng ngẫu nhiên mới sẽ xuất hiện dưới các quy luật mới, chúng ta ngỡ ngàng trước sự hỗn độn, ngẫu nhiên của thế giới lượng tử, kích thích trí tò mò khám phá của chúng ta. Có thể nói, sự hiểu biết về các con số ngẫu nhiên là lịch sử tiến bộ của loài người, việc theo đuổi các con số ngẫu nhiên không chỉ là sự kêu gọi khoa học mà còn là sự bác bỏ thuyết định mệnh.

Đồng thời, chúng tôi đã tạo ra một thế giới ảo nhị phân. Chúng tôi muốn mô phỏng và sao chép vũ trụ của chúng tôi trong thế giới này nhiều nhất có thể, đồng thời thu được những con số ngẫu nhiên tuyệt vời và bí ẩn trong tự nhiên. Điều này có ý nghĩa to lớn—với máy Những con số ngẫu nhiên thực sự, chúng ta có thể mang lại sự sống cho thế giới ảo không? Chúng ta có thể mô phỏng một "ý chí tự do" không? Con người chúng ta có thể tồn tại trong ảo hóa không?

Tính ngẫu nhiên trong vũ trụ là sự công bằng lớn nhất đối với cuộc sống và các con số ngẫu nhiên trên chuỗi khối sẽ trở thành mục tiêu theo đuổi sự công bằng cơ bản và trực quan nhất cho con người. Quá khứ đã được quyết định, hiện tại đang diễn ra, tương lai nói chung là ngẫu nhiên và thế giới trên blockchain cũng vậy.

Một con số ngẫu nhiên chạy trên 01 máy và được mọi thứ trên thế giới nhận ra chưa bao giờ lại hấp dẫn đến thế trước blockchain.

Dfinity
Algorand
PoS
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina