Phân tích ứng dụng và nguyên lý của VRF trong Blockchain
BFTF技术社区联盟
2018-08-02 03:05
本文约4417字,阅读全文需要约18分钟
Nguyên tắc cơ bản của VRF là gì? Sử dụng VRF như thế nào để đạt được sự đồng thuận? VRF có thể được sử dụng trong những tình huống nào khác?

Hoàng Kỳ

Đồng sáng lập & CTO của Tarax Network

Kỹ sư full-stack cao cấp với bằng thạc sĩ khoa học máy tính, hướng nghiên cứu chính của anh là hệ thống phân tán và mạng tự tổ chức P2P.

Mô tả hình ảnh


Ông đã liên tục tham gia nghiên cứu kỹ thuật về chia sẻ dữ liệu phân tán trong Nhóm Khoa học Thông minh của Viện Công nghệ Máy tính, Viện Khoa học Trung Quốc, Viện Nghiên cứu Sony Trung Quốc, Baidu và Toutiao.


Bài chia sẻ hôm nay tôi mang đến cho các bạn có tên là "Phân tích nguyên lý và ứng dụng của VRF trong chuỗi khối", bắt nguồn từ một chuỗi công khai có tên Tarax Network mà nhóm chúng tôi đang thực hiện. Vì mục đích định vị cảnh, chúng tôi muốn tìm cách đạt được sự đồng thuận với mức tiêu thụ điện năng thấp. Thế thì không được xét đến POW, dễ nghĩ đến POS. Sau đó, xem xét rằng cho dù đó là POW hay POS, họ muốn tìm ngẫu nhiên một nút không thể dự đoán được để đóng gói khối và làm cho khối này được toàn bộ mạng nhận ra.

Sau đó, trong vấn đề lựa chọn ngẫu nhiên, VRF là cách trực tiếp nhất để bốc thăm dựa trên lựa chọn ngẫu nhiên có thể kiểm chứng.

Tất nhiên, POW không chỉ có chức năng chọn điểm ngẫu nhiên để đóng gói mà còn có một số cân nhắc về bản chất trò chơi và con người, trong sơ đồ POS hiện tại, chọn điểm ngẫu nhiên sau khi chọn điểm là không ổn, thay vào đó là sơ đồ chọn điểm ngẫu nhiên , đương nhiên Nó cũng sẽ thiết kế lại trò chơi và các vấn đề về bản chất con người từ các khía cạnh khác.

      Nhưng hãy giải quyết từng vấn đề một, tạm gác nội dung game sang một bên, chúng ta hãy nghiên cứu về VRF trước đã.

      Chúng tôi xem xét điều này với hai câu hỏi:

      1. Thế nào là hàm ngẫu nhiên kiểm chứng?


      2. Làm thế nào để một số sơ đồ chuỗi hiện tại sử dụng các chức năng ngẫu nhiên có thể kiểm chứng?


        Hàm ngẫu nhiên có thể kiểm chứng là gìMột chức năng ngẫu nhiên có thể kiểm chứng có thể được xem như là mộttiên tri ngẫu nhiên

      , có nghĩa là tôi có thể nhận được đầu ra số ngẫu nhiên thông qua bất kỳ đầu vào nào:

      1. Đối với các Đầu vào khác nhau, các giá trị Đầu ra là ngẫu nhiên và phân bố đều trong phạm vi giá trị.

        2. Đầu vào giống nhau thì đầu ra phải giống nhau.


        Tuy nhiên, hàm ngẫu nhiên có thể kiểm chứng có thêm một bằng chứng không kiến ​​thức không tương tác so với lời tiên tri ngẫu nhiên, có thể được sử dụng để xác minh tính chính xác của đầu ra số ngẫu nhiên, cho biết rằng số ngẫu nhiên thực sự được tạo bởi ai đó.




      Chức năng ngẫu nhiên có thể kiểm chứng Nó chứa bốn chức năng.

      1. Tạo key và tạo cặp public key-private key sẽ không nói chi tiết ở phần sau

      2. Tạo đầu ra số ngẫu nhiên

      3. Bằng chứng không kiến ​​thức tính toán

        4. Xác minh đầu ra số ngẫu nhiên
        Quá trình tạo một số ngẫu nhiên và bằng chứng của nó được thực hiện cục bộ và đầu vào là khóa riêng và giá trị. Đầu ra là số ngẫu nhiên và bằng chứng không kiến ​​thức của nó.


        Vậy thông qua bốn chức năng này và kết quả đầu ra của chúng, làm thế nào để chúng ta chọn ngẫu nhiên các điểm?

        chữ


        Vẽ chức năng ngẫu nhiên có thể kiểm chứng

        Phương pháp đơn giản nhất, sau khi chúng ta tạo giá trị số ngẫu nhiên thông qua VRF ở trên, chúng ta có thể đặt ngưỡng được toàn mạng nhận biết để xác định xem nó có được chọn hay không.Ví dụ: tất cả chúng ta đều đồng ý rằng giá trị 100 là ngưỡng.Giả sử tôi ngẫu nhiên đạt 101 trong một vòng nhất định Sau đó, tôi được phép chuyển sang bước tiếp theo.
        Tuy nhiên, giải pháp đơn giản nhất này không có cách nào ngăn chặn các cuộc tấn công của Sybil. Do đó, hầu hết các chương trình xổ số VRF hiện tại sẽ phân bổ phiếu bầu dựa trên quyền và lợi ích, sau đó thiết kế thuật toán xổ số.
        Hãy cùng tham khảo cách giải phổ biến nhất hiện nay, đó là tính kết quả xổ số thông qua phân phối nhị thức.Trước hết, chúng tôi đã tạo một giá trị thông qua khóa riêng. Giá trị này thực sự có thể được coi là một số nguyên dương lớn. Giả sử nó là 256 bit, phạm vi giá trị của nó phải nằm trong khoảng từ 0 đến 2 mũ 256. tương ứng với nó
        Chia cho 2 lũy thừa 256 để nhận giá trị từ 0 đến 1.
        Đặt giá trị này vào phân phối tích lũy của phân phối nhị thức để so sánh và bạn có thể nhận được giá trị tương ứng (xem PPT để biết chi tiết).
        Nếu giá trị này lớn hơn 0, nó tương đương với việc rút thăm có thể tiến hành bước tiếp theo.

      Truyền giá trị này cùng với tổng do VRF trước đó tạo ra cho những người khác và bất kỳ người dùng nào khác đã nhận có thể xác minh xem hai điều kiện sau có đúng hay không:

      1. Xác minh có chính xác không

        2. Sử dụng hàm phân phối nhị thức để biết j' có bằng j hay không
        Giả sử cả hai điều kiện đều đúng thì chứng tỏ kết quả xổ số là chính xác và đáng tin cậy.

        Đến nay, quy trình từ lập lô đến xác minh đã hoàn tất.

        Qua mô tả quy trình trên, không khó để nhận thấy cơ chế xổ số dựa trên VRF có một số ưu điểm sau:

        1. Trước hết, quy trình xổ số của nó không cần giao tiếp với người khác và kết quả xổ số có thể được lấy trực tiếp trên máy và mọi người đều nhận ra đầu vào x và giá trị đầu ra cho cùng một x là cố định, vì vậy nó không thể được thông qua nhiều lần cố gắng thay đổi kết quả xổ số

        2. Sau khi một nút nhận được thông tin xổ số từ các nút khác, nó có thể sử dụng chứng chỉ đính kèm để chứng minh tính đúng đắn của số ngẫu nhiên nhằm đảm bảo rằng nó thực sự được tính toán bởi chủ sở hữu khóa riêng. Vì vậy, không thể làm giả kết quả xổ số.


        3. VRF được sử dụng chủ yếu để lấy số giả ngẫu nhiên, phần xổ số chịu trách nhiệm chính cho hàm phân phối nhị thức, bằng cách xây dựng các tham số của phân phối nhị thức, chúng ta có thể dễ dàng kiểm soát các quyền trúng thưởng cần lấy. được điều chỉnh cho các tình huống khác nhau yêu cầu xổ số.


        Sau khi nói về thuật toán xổ số dựa trên VRF, chúng ta hãy xem thuật toán xổ số này mang lại gì cho sự đồng thuận của chuỗi khối.

        Những thay đổi do xổ số VRF mang lại cho sự đồng thuận

        Hãy bắt đầu với một ví dụ cụ thể.
        Ouroboros là thuật toán đồng thuận của Cardano. Nó rất thú vị. Lúc đầu, nó đề xuất một sơ đồ quy trình đồng thuận, nhưng sơ đồ này được chứng minh là an toàn và không liên quan đến việc triển khai mọi phần. Sau đó, nó sẽ dần dần bổ sung các chi tiết triển khai trong bản cập nhật của phiên bản giấy và trong kế hoạch triển khai cụ thể.

        Cho đến nay, phiên bản lý thuyết của ông đã lặp lại ba phiên bản, đó là Ouroboros, Praos và Genesis. Trong phiên bản thứ hai của Praos, một phần của VRF được giới thiệu là khai thác các nút đề xuất khối.

        Đầu tiên, hãy nói ngắn gọn về quy trình đồng thuận của Ouroboros:
        Trước khi bắt đầu mỗi kỷ nguyên, trong vòng cuối cùng của kỷ nguyên, một hạt giống ngẫu nhiên và một số Người nắm giữ cổ phần sẽ được xác định là nút tham gia của vòng này. Theo hạt giống ngẫu nhiên, người dẫn đầu vị trí của tất cả các vị trí trong này round sẽ được lấy và chúng được đóng gói tuần tự.
        Trong vòng trước, các lần gửi Hạt giống ngẫu nhiên được tạo bởi sơ đồ PVSS tương tác. Lấy một ví dụ đơn giản để minh họa, nó tương tự như việc hai người không thể đoán được cú đấm thông qua giao tiếp thời gian thực, nếu một người nhận được kết quả cú đấm của người kia, anh ta có thể tung ra một cú đấm chắc thắng để giành chiến thắng, vì vậy nó không công bằng, vì vậy bây giờ, trước tiên chúng tôi sử dụng thẻ để thay thế cú đấm của mình, sau đó che nó lại, mọi người không biết cú đấm là gì, nhưng chúng tôi có thể đảm bảo rằng mọi người đã chọn cú đấm. Kết quả sẽ được thông báo sau.



        Sau khi Hạt giống ngẫu nhiên được tạo, thuật toán Theo dõi Satoshi được sử dụng để lấy người dẫn đầu vị trí của mỗi vị trí. Theo dõi Satoshi có thể được coi là một cỗ máy tiên tri ngẫu nhiên, có thể sử dụng Hạt giống ngẫu nhiên và giá trị vốn chủ sở hữu của mỗi Người nắm giữ cổ phần để cung cấp mỗi vị trí Chỉ định ngẫu nhiên một người nắm giữ cổ phần làm người dẫn đầu vị trí và kết quả này được biết cho mỗi nút trước khi bắt đầu kỷ nguyên này và họ có thể tự tính toán kết quả đó.Sau đó, sẽ có một vấn đề:

        Tôi có thể biết trước nút đóng gói của một khối nhất định, vì vậy kẻ tấn công có thể tấn công nút đóng gói trước để đạt được mục đích tấn công của mình.

        Sau đó, ở Praos, tức là phiên bản thứ hai của Ouroboros, nó đã giới thiệu VRF để thay thế kế hoạch Theo dõi Satoshi Sau khi chúng ta vừa tìm hiểu về quy trình và đặc điểm của xổ số VRF, chúng ta có thể biết rằng sau khi VRF ra đời, mọi Người đứng đầu vị trí của một vòng vị trí chỉ được biết bởi chính nút đó, sau khi anh ta xuất bản, các nút khác có thể xác minh xem anh ta có thực sự có vai trò này hay không, để có thể tránh được các cuộc tấn công nêu trên.
        Nhưng điều này cũng mang đến những vấn đề mới Như đã đề cập ở trên, Follow the Satoshi có thể chỉ định ngẫu nhiên một người đứng đầu vị trí cho mỗi vị trí, nhưng VRF, một phương pháp xổ số dựa trên xác suất, không thể chắc chắn về điểm này. Cũng có thể xảy ra trường hợp một vòng máy đánh bạc nhất định không rút được quân dẫn đầu hoặc rút ra nhiều quân đánh bạc. Vì vậy, ở Praos đã bổ sung thêm một giải pháp để xử lý tình trạng này.
        So sánh hai giải pháp, VRF giới thiệu hai tình huống bất thường bên cạnh việc nâng cấp bảo mật không thể đoán trước của người dẫn đầu vị trí. Nhưng hai điểm bất thường này có phải là vấn đề mới do VRF đưa ra không? Chúng ta hãy suy nghĩ về nó.

        Trên thực tế, cho dù đó là giải pháp Theo dõi Satoshi hay VRF, thì vấn đề này phải được giải quyết, bởi vì ngay cả khi tôi có thể đảm bảo rằng mỗi vị trí có một vị trí dẫn đầu vị trí, tôi không thể đảm bảo liệu vị trí dẫn đầu có thể in các gói trong vị trí này hay không. Giải pháp để xác minh ngã ba là một vấn đề phải được xem xét miễn là nó là một chuỗi. Giả sử một người dẫn đầu vị trí bị tấn công và một số lượng lớn bao bì lặp đi lặp lại trong vị trí của chính nó cũng sẽ gây ra sự cố ngã ba.


        Do đó, trong trường hợp không có vấn đề mới, việc tăng tính ẩn danh của các nút đóng gói thực sự là một nâng cấp bảo mật cho hệ thống.
        Sau đó, chúng ta hãy xem xét một số thuật toán đồng thuận khác sử dụng hoặc phụ thuộc nhiều vào VRF.

        Ý tưởng chung là sử dụng một chức năng ngẫu nhiên có thể kiểm chứng để rút thăm nhằm giảm số lượng nút đồng thuận tham gia hoặc một số vai trò nhất định.

        1. Trước tiên, Algorand chọn trình đóng gói và sau khi chọn trình đóng gói, ủy ban sẽ được chọn và ủy ban sử dụng BA* để chọn các khối.

        2. Trong Dfinity, ngưỡng được tăng lên bằng cách gửi tiền và số lượng nút tham gia giảm xuống, sau đó người đóng gói được chọn. Sau khi người đóng gói được chọn, công chứng viên được chọn và trọng số khối được sắp xếp để chọn khối.

        chữ


        chữ


        Một số vấn đề


         

        Sau khi chia sẻ VRF và một số ứng dụng hiện tại của nó, có một số câu hỏi mà chúng ta cần cùng nhau suy nghĩ:


      • 1. Có nhất thiết phải sử dụng VRF để đánh lô đề không?

      • Làm thế nào để nó so sánh với oracles ngẫu nhiên?

      • Làm thế nào để nó so sánh với một sơ đồ mã hóa bất đối xứng có quy trình tương tự?


      • 2. Có kịch bản ứng dụng nào khác không?

      • cảm ơn tất cả.


      • cảm ơn tất cả.



        Mô tả hình ảnh

        https://github.com/pinqy520/vrf.js 

        Hiện được sử dụng trong việc triển khai thuật toán đồng thuận Tarax


        người giới thiệu—————————————————————————————————————————————————————

      • Verifiable Random Functions [1999]

      • Ouroboros: A provably secure proof-of-stake blockchain protocol [2017] Algorand: 

      • Scaling Byzantine Agreements for Cryptocurrencies [2017]

      • Ouroboros Praos: An adaptively-secure, semi-synchronous proof-of- stake blockchain [2018]

      • https://github.com/iost-official/Documents/blob/master/ Technical_White_Paper/EN/Tech_white_paper_EN.md

      • https://tools.ietf.org/html/draft-irtf-cfrg-vrf-02

      • https://github.com/Realiserad/fts-tree 

      • https://www.cs.bu.edu/~goldbe/projects/vrf




      • Mô tả hình ảnh

        https://v.qq.com/x/page/e0735yg5l7t.html

        Blockchain Funds-Technology Federation 


        Đồng tổ chức BFTF:

        Mô tả hình ảnh

      BFTF技术社区联盟
      作者文库