Viết bởi Robin Linux Người dịch: Nhóm dịch thuật cộng đồng Denlink
Tóm tắt
BitVM là một mô hình tính toán được sử dụng để thể hiện các hợp đồng Bitcoin hoàn chỉnh Turing. Điều này không yêu cầu bất kỳ thay đổi nào đối với các quy tắc đồng thuận của mạng Bitcoin. Không giống như thực hiện các tính toán trên Bitcoin, chúng được xác minh đơn giản, tương tự như các bản tổng hợp lạc quan. Người chứng minh tuyên bố rằng một hàm nhất định đánh giá một số đầu vào nhất định cho một đầu ra cụ thể. Nếu khiếu nại là sai, thì người xác minh có thể đưa ra bằng chứng ngắn gọn về gian lận và phạt những người chứng minh. Sử dụng cơ chế này, bất kỳ chức năng tính toán nào cũng có thể được xác minh trên Bitcoin.
Hứa hẹn một chương trình lớn trên địa chỉ Taproot đòi hỏi rất nhiều tính toán và giao tiếp ngoài chuỗi, nhưng dấu chân của nó trên chuỗi là nhỏ. Miễn là hai bên làm việc cùng nhau, họ có thể thực hiện các tính toán ngoài chuỗi phức tạp, trạng thái tùy ý mà không để lại bất kỳ dấu vết nào trên chuỗi. Thực thi trên chuỗi chỉ được yêu cầu trong trường hợp tranh chấp.
1 Giới thiệu
Theo thiết kế, chức năng hợp đồng thông minh của Bitcoin được giới hạn trong các hoạt động cơ bản như chữ ký, khóa thời gian và khóa băm. BitVM tạo ra một không gian thiết kế mới cho các hợp đồng Bitcoin biểu cảm hơn và điện toán ngoài chuỗi. Các ứng dụng tiềm năng bao gồm các trò chơi như cờ vua, cờ vây hoặc poker, cũng như xác minh bằng chứng về tính hợp lệ trong hợp đồng Bitcoin. Ngoài ra, có thể kết nối Bitcoin với các chuỗi bên ngoài, xây dựng thị trường dự đoán hoặc mô phỏng các opcode mới.
Nhược điểm chính của mô hình được trình bày ở đây là nó chỉ hoạt động với hai thiết lập, người chứng minh và trình xác minh. Một hạn chế khác là đối với người chứng minh và người xác minh, rất nhiều tính toán và giao tiếp ngoài chuỗi được yêu cầu để thực thi chương trình. Tuy nhiên, những vấn đề này dường như hứa hẹn sẽ được giải quyết bằng nghiên cứu sâu hơn. Trong công việc này, chúng tôi chỉ tập trung vào các thành phần chính của BitVM hai bên.
2 Lược đồ
Với Rollups 1 lạc quan[2] [3] và đề xuất MATT (Merkelize All The Things) 2 Tương tự, hệ thống của chúng tôi dựa trên các giao thức chống gian lận và phản hồi thách thức. Tuy nhiên, BitVM không yêu cầu bất kỳ thay đổi nào đối với các quy tắc đồng thuận của Bitcoin. Các nguyên thủy cơ bản tương đối đơn giản. Nó chủ yếu dựa trên khóa băm, khóa thời gian và cây taproot lớn.
Người chứng minh gửi chương trình từng chút một vào chuỗi, nhưng xác thực mọi thứ trên chuỗi sẽ tiêu tốn tài nguyên tính toán quá mức, vì vậy người xác minh thực hiện một loạt các thách thức phức tạp để làm sai lệch ngắn gọn các tuyên bố sai của câu tục ngữ. Cùng nhau, người chứng minh và người xác minh ký trước một loạt các thách thức - phản hồi các giao dịch để giải quyết mọi tranh chấp sau này.
Mô hình này nhằm mục đích minh họa đơn giản rằng cách tiếp cận này cho phép tính toán phổ quát trên Bitcoin. Đối với các ứng dụng thực tế, chúng ta nên xem xét các mô hình hiệu quả hơn.
Giao thức rất đơn giản: đầu tiên, người chứng minh và người xác minh biên dịch chương trình thành một mạch nhị phân khổng lồ. Người chứng minh gửi mạch đến một địa chỉ Taproot với một tập lệnh lá cho mỗi cổng logic tại địa chỉ đó. Ngoài ra, họ ký trước một loạt các giao dịch để hỗ trợ các trò chơi phản hồi thách thức giữa người chứng minh và người xác minh. Bây giờ họ đã trao đổi tất cả các dữ liệu cần thiết, họ có thể chuyển khoản tiền gửi trên chuỗi của mình sang địa chỉ Taproot được tạo.
Điều này kích hoạt hợp đồng và họ có thể bắt đầu hoán đổi dữ liệu ngoài chuỗi để kích hoạt các thay đổi trạng thái trong mạch. Nếu người chứng minh đưa ra bất kỳ tuyên bố sai sự thật nào, người xác minh có thể nhận tiền đặt cọc của họ. Điều này đảm bảo rằng những kẻ tấn công sẽ luôn mất tiền gửi của họ.
Cam kết giá trị 3 bit
Cam kết giá trị bit là thành phần cơ bản nhất của hệ thống này. Nó cho phép người chứng minh đặt giá trị của một bit cụ thể thành "0" hoặc "1". Đặc biệt, nó cho phép prover đặt giá trị của một biến giữa các tập lệnh và UTXO khác nhau. Điều này rất quan trọng vì nó mở rộng thời gian chạy thực thi bằng cách chia thời gian thực hiện máy ảo của Bitcoin thành nhiều giao dịch.
Lời hứa chứa hai giá trị băm, hash0 và hash1. Tại thời điểm sau, người chứng minh đặt giá trị của bit thành "0" bằng cách tiết lộ preimage0 (preimage của hash0) hoặc thành "1" bằng cách tiết lộ preimage1 (preimage của hash1). Nếu, tại một thời điểm nào đó, họ tiết lộ cả preimage0 và preimage1, thì trình xác thực có thể sử dụng chúng làm bằng chứng gian lận và lấy tiền gửi của người chứng minh. Đây được gọi là một tuyên bố mâu thuẫn. Có thể trừng phạt các tuyên bố mâu thuẫn là điều làm cho một cam kết ràng buộc - đó là một "cam kết dựa trên khuyến khích".
Kết hợp các lời hứa giá trị bit với khóa thời gian cho phép trình xác thực buộc người chứng minh quyết định giá trị của một bit cụ thể trong một khung thời gian nhất định.
Hình 1: Thực hiện cam kết bit-valueHình 1: Thực hiện cam kết 1-bit. Để mở khóa tập lệnh này, người chứng minh phải tiết lộ một trong các hình ảnh trước của hash0 hoặc hash1. Trong thực thi ví dụ này, prover tiết lộ hash1 và đặt giá trị của bit thành "1". Chúng ta có thể nhân rộng lời hứa này để thực thi một giá trị cụ thể trong các tập lệnh khác nhau.
ĐỂ ĐƠN GIẢN HÓA, TỪ ĐÂY, HÃY GIẢ SỬ RẰNG CÓ MỘT OPCODE ĐƯỢC GỌI LÀ OP BITCOMMITMENT, VIẾT TẮT CỦA TẬP LỆNH TRÊN. Opcode tiêu thụ hai hàm băm và một preimage được băm. Dựa trên hàm băm phù hợp với hình ảnh trước, nó đặt một giá trị bit trên ngăn xếp.
4 Cổng logic hứa hẹn
Bất kỳ hàm tính toán nào cũng có thể được biểu diễn dưới dạng mạch Boolean. Cổng NAND là một cổng logic phổ quát, vì vậy bất kỳ hàm Boolean nào cũng có thể bao gồm chúng. Để giữ cho mô hình của chúng tôi đơn giản, chúng tôi chỉ ra cách tiếp cận của chúng tôi hoạt động với các cổng NAND đơn giản. Ngoài ra, chúng tôi chỉ ra cách kết hợp cửa tùy ý. Tất cả điều này chứng minh rằng BitVM có thể đại diện cho bất kỳ mạch nào.
Việc thực hiện lời hứa cổng NAND rất đơn giản. Nó chứa hai lời hứa bit đại diện cho hai đầu vào và một cam kết bit đại diện cho đầu ra. Tập lệnh tính toán giá trị NAND của hai đầu vào để đảm bảo rằng nó khớp với các bit đầu ra đã hứa.
Hình 2: Cam kết cổng cho các hoạt động NAND Hình 2: Cam kết cổng cho các hoạt động NAND. Thực thi tập lệnh này cần tiết lộ các giá trị của bit hứa A, B và C sao cho A NAND B = C là đúng.
(Ở đây, để đơn giản, hãy giả sử rằng một opcode có tên OP NAND tồn tại.) TRÊN THỰC TẾ, NÓ KHÔNG TỒN TẠI, NHƯNG NÓ CÓ THỂ DỄ DÀNG THỰC HIỆN BẰNG CÁCH SỬ DỤNG OP BOOLAND VÀ OP NOT. )
5 Hứa hẹn mạch nhị phân
Trong phần trước, chúng ta đã định nghĩa cam kết cổng NAND. Chúng ta có thể đại diện cho bất kỳ mạch nào bằng cách kết hợp các lời hứa cổng. Mỗi bước thực hiện được cam kết trong Tapleaf. Tất cả chúng đều được hợp nhất vào cùng một địa chỉ Taproot để người chứng minh có thể thực hiện bất kỳ cổng nào trong mạch. Thực hiện cổng yêu cầu người chứng minh mở lời hứa cổng tương ứng và đặt giá trị cho các bit đầu vào và đầu ra của nó.
Taptree có thể trở nên khổng lồ và có một tỷ tập lệnh Tapleaf, nhưng dấu chân trên chuỗi của nó là nhỏ.
Hình 3: Một mạch ví dụ ngẫu nhiên Hình 3: Một mạch ví dụ ngẫu nhiên với 8 cổng NAND khác nhau và 4 đầu vào A, B, C và D. Sử dụng hàng tỷ cổng, về cơ bản bất kỳ chức năng nào cũng có thể được xác định.
Hình 4Hình 4: Đối với mỗi cổng, địa chỉ Taproot của câu tục ngữ chứa một tập lệnh lá với lời hứa cổng tương ứng. Điều này cho phép người chứng minh đặt các giá trị đầu vào của mạch tại bất kỳ thời điểm nào (ở đây là A, B, C và D).
6 thách thức và phản ứng
Nó không đủ để cam kết với một mạch. Để bác bỏ các tuyên bố sai lầm, người xác minh phải có khả năng thách thức tuyên bố của câu tục ngữ. Điều này có thể đạt được bằng cách ký trước một loạt các giao dịch trong quá trình thiết lập. Các giao dịch này đáp ứng những thách thức → →→ ứng phó với →... cách liên kết. Nếu một trong các bên ngừng tham gia, thì sau một khoảng thời gian chờ, bên kia sẽ thắng thử thách và có thể nhận tiền gửi của cả hai bên. Miễn là cả hai bên làm việc cùng nhau, họ có thể làm việc cùng nhau để giải quyết bất kỳ hợp đồng nào thông qua chữ ký 2-of-2. Các cơ chế sau đây chỉ được yêu cầu nếu có gian lận.
Hình 5: Một loạt các giao dịch được ký trướcHình 5: Một chuỗi các giao dịch được ký trước để thực hiện nhiều vòng thử thách và phản hồi. Trình tự này được tạo trong quá trình thiết lập.
Vicky chọn một thử thách bằng cách mở một khóa băm trong lá Tap của cô ấy. Điều này sẽ mở khóa một Tap cụ thể cho Paul và buộc anh ta thực hiện nó. Kịch bản buộc Paul phải tiết lộ lời hứa cửa của thử thách Vicky. Bằng cách lặp lại quy trình này cho nhiều vòng truy vấn, bạn có thể nhanh chóng bác bỏ mọi tuyên bố không nhất quán.
Nếu người chứng minh ngừng hợp tác ngoài chuỗi với trình xác thực, trình xác thực cần một cách để buộc người chứng minh hành động trên chuỗi. Trình xác thực đạt được điều này bằng cách mở khóa khóa băm: mỗi NAND Tapleaf trong UTXO của tục ngữ chỉ có thể được sử dụng nếu người chứng minh biết hình ảnh trước do người chứng nhận nắm giữ. Do đó, người chứng minh có thể chứng minh rằng một Tapleaf nhất định hoạt động chính xác bằng cách tiết lộ đầu vào và đầu ra của nó, nhưng chỉ khi trình xác minh "mở khóa" nó bằng cách tiết lộ hình ảnh trước của hàm băm bảo vệ Tapleaf đó. Bằng cách áp dụng tìm kiếm nhị phân, người xác thực có thể nhanh chóng xác định lỗi của câu tục ngữ chỉ sau một vài vòng thử thách và phản hồi.
Hình 6: Sau mỗi câu trả lời, Vicky có thể phạt những hành vi mơ hồ. Nếu Paul phơi bày hai giá trị mâu thuẫn với một biến, Vicky ngay lập tức chiến thắng thử thách và được phép nhận tiền gửi của mình. Vicky chứng minh sự mơ hồ của Paul bằng cách tiết lộ bất kỳ hình ảnh nào trong số hai hình ảnh nguyên mẫu được hứa hẹn bởi các bit của anh ta.
7 Đầu vào và đầu ra
Người chứng minh có thể đặt đầu vào bằng cách tiết lộ lời hứa bit tương ứng. Lý tưởng nhất, họ tiết lộ các cam kết ngoài chuỗi để giảm thiểu tỷ lệ lấp đầy trên chuỗi. Trong trường hợp không hợp tác, người xác thực có thể buộc người chứng minh tiết lộ đầu vào của họ trên chuỗi.
Một lượng lớn dữ liệu có thể được xử lý bằng cách trao đổi mã hóa trước. Bằng cách này, người chứng minh có thể tiết lộ khóa giải mã tại một thời điểm sau đó.
Đầu vào đa bên cũng có thể. Cửa có thể có cam kết bit từ cả hai phía.
8 Hạn chế và Outlook
Nó không hiệu quả để biểu diễn các chức năng trong các mạch NAND đơn giản. Bằng cách sử dụng các opcode nâng cao hơn, các chương trình có thể được biểu diễn hiệu quả hơn. Ví dụ: Bitcoin Script hỗ trợ thêm số 32 bit, vì vậy chúng tôi không cần mạch nhị phân. Chúng ta cũng có thể có những lời hứa bit lớn hơn, ví dụ: 32 bit trong một hàm băm duy nhất. Ngoài ra, kích thước của tập lệnh có thể đạt khoảng 4 MB. Do đó, chúng ta có thể thực hiện nhiều hơn một lệnh NAND trong mỗi tập lệnh lá.
Mô hình được trình bày ở đây được giới hạn cho hai bên. Tuy nhiên, có thể có các kênh hai chiều và liên kết chúng lại với nhau để tạo thành một mạng tương tự như Lightning Network. Khám phá cả hai cài đặt có thể mang lại khả năng khái quát hóa thú vị. Ví dụ, chúng ta có thể khám phá cấu trúc liên kết sao từ 1 đến n cho một mạng. Một câu hỏi nghiên cứu khác là liệu chúng ta có thể áp dụng mô hình của mình vào thiết lập n-to-n và tạo ra các nhà máy kênh phức tạp hơn hay không. Ngoài ra, chúng tôi có thể kết hợp các hệ thống của mình với các giao thức ngoài chuỗi khác nhau như Lightning Network hoặc Rollups.
Các hướng nghiên cứu khác bao gồm bộ nhớ ứng dụng chéo, cách đưa ra tuyên bố về dữ liệu tùy ý được khắc trên chuỗi hoặc các mạch lập trình ngoài chuỗi, tức là các máy ảo ngoài chuỗi. Các kỹ thuật lấy mẫu phức tạp hơn, tương tự như STARK, cũng có thể được áp dụng, để kiểm tra các mạch trong một lượt.
Cột mốc quan trọng tiếp theo là hoàn thành thiết kế và triển khai BitVM cụ thể, cũng như Tree ++, một ngôn ngữ cấp cao để viết và gỡ lỗi các hợp đồng Bitcoin.
9 Kết luận
Bitcoin là Turing-complete theo một nghĩa nào đó, vì bằng chứng gian lận mã hóa trong Taptrees lớn xác minh việc thực hiện bất kỳ chương trình nào. Một hạn chế lớn của mô hình này là nó chỉ hoạt động trong trường hợp của cả hai bên. Hy vọng rằng khái quát hóa có thể được thực hiện trong công việc tiếp theo.
Lời cảm ơn
Đặc biệt cảm ơn Super Testnet và Sam Parker, những người luôn tin rằng Bitcoin sẽ không hoàn thành Turing.
Tham khảo
[1] Nghiên cứu Ethereum. Rollups lạc quan. 2022.
[2] Salvatore Ingala. Merkleize tất cả mọi thứ. , 2022.
Tài nguyên
[1] Nhóm dịch thuật:
[2] Bản tổng hợp lạc quan 1:
[3] MATT 提案(Merkelize All The Things)2:
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
BitVM: Tính toán mọi thứ trên Bitcoin
Viết bởi Robin Linux Người dịch: Nhóm dịch thuật cộng đồng Denlink
Tóm tắt
BitVM là một mô hình tính toán được sử dụng để thể hiện các hợp đồng Bitcoin hoàn chỉnh Turing. Điều này không yêu cầu bất kỳ thay đổi nào đối với các quy tắc đồng thuận của mạng Bitcoin. Không giống như thực hiện các tính toán trên Bitcoin, chúng được xác minh đơn giản, tương tự như các bản tổng hợp lạc quan. Người chứng minh tuyên bố rằng một hàm nhất định đánh giá một số đầu vào nhất định cho một đầu ra cụ thể. Nếu khiếu nại là sai, thì người xác minh có thể đưa ra bằng chứng ngắn gọn về gian lận và phạt những người chứng minh. Sử dụng cơ chế này, bất kỳ chức năng tính toán nào cũng có thể được xác minh trên Bitcoin.
Hứa hẹn một chương trình lớn trên địa chỉ Taproot đòi hỏi rất nhiều tính toán và giao tiếp ngoài chuỗi, nhưng dấu chân của nó trên chuỗi là nhỏ. Miễn là hai bên làm việc cùng nhau, họ có thể thực hiện các tính toán ngoài chuỗi phức tạp, trạng thái tùy ý mà không để lại bất kỳ dấu vết nào trên chuỗi. Thực thi trên chuỗi chỉ được yêu cầu trong trường hợp tranh chấp.
1 Giới thiệu
Theo thiết kế, chức năng hợp đồng thông minh của Bitcoin được giới hạn trong các hoạt động cơ bản như chữ ký, khóa thời gian và khóa băm. BitVM tạo ra một không gian thiết kế mới cho các hợp đồng Bitcoin biểu cảm hơn và điện toán ngoài chuỗi. Các ứng dụng tiềm năng bao gồm các trò chơi như cờ vua, cờ vây hoặc poker, cũng như xác minh bằng chứng về tính hợp lệ trong hợp đồng Bitcoin. Ngoài ra, có thể kết nối Bitcoin với các chuỗi bên ngoài, xây dựng thị trường dự đoán hoặc mô phỏng các opcode mới.
Nhược điểm chính của mô hình được trình bày ở đây là nó chỉ hoạt động với hai thiết lập, người chứng minh và trình xác minh. Một hạn chế khác là đối với người chứng minh và người xác minh, rất nhiều tính toán và giao tiếp ngoài chuỗi được yêu cầu để thực thi chương trình. Tuy nhiên, những vấn đề này dường như hứa hẹn sẽ được giải quyết bằng nghiên cứu sâu hơn. Trong công việc này, chúng tôi chỉ tập trung vào các thành phần chính của BitVM hai bên.
2 Lược đồ
Với Rollups 1 lạc quan[2] [3] và đề xuất MATT (Merkelize All The Things) 2 Tương tự, hệ thống của chúng tôi dựa trên các giao thức chống gian lận và phản hồi thách thức. Tuy nhiên, BitVM không yêu cầu bất kỳ thay đổi nào đối với các quy tắc đồng thuận của Bitcoin. Các nguyên thủy cơ bản tương đối đơn giản. Nó chủ yếu dựa trên khóa băm, khóa thời gian và cây taproot lớn.
Người chứng minh gửi chương trình từng chút một vào chuỗi, nhưng xác thực mọi thứ trên chuỗi sẽ tiêu tốn tài nguyên tính toán quá mức, vì vậy người xác minh thực hiện một loạt các thách thức phức tạp để làm sai lệch ngắn gọn các tuyên bố sai của câu tục ngữ. Cùng nhau, người chứng minh và người xác minh ký trước một loạt các thách thức - phản hồi các giao dịch để giải quyết mọi tranh chấp sau này.
Mô hình này nhằm mục đích minh họa đơn giản rằng cách tiếp cận này cho phép tính toán phổ quát trên Bitcoin. Đối với các ứng dụng thực tế, chúng ta nên xem xét các mô hình hiệu quả hơn.
Giao thức rất đơn giản: đầu tiên, người chứng minh và người xác minh biên dịch chương trình thành một mạch nhị phân khổng lồ. Người chứng minh gửi mạch đến một địa chỉ Taproot với một tập lệnh lá cho mỗi cổng logic tại địa chỉ đó. Ngoài ra, họ ký trước một loạt các giao dịch để hỗ trợ các trò chơi phản hồi thách thức giữa người chứng minh và người xác minh. Bây giờ họ đã trao đổi tất cả các dữ liệu cần thiết, họ có thể chuyển khoản tiền gửi trên chuỗi của mình sang địa chỉ Taproot được tạo.
Điều này kích hoạt hợp đồng và họ có thể bắt đầu hoán đổi dữ liệu ngoài chuỗi để kích hoạt các thay đổi trạng thái trong mạch. Nếu người chứng minh đưa ra bất kỳ tuyên bố sai sự thật nào, người xác minh có thể nhận tiền đặt cọc của họ. Điều này đảm bảo rằng những kẻ tấn công sẽ luôn mất tiền gửi của họ.
Cam kết giá trị 3 bit
Cam kết giá trị bit là thành phần cơ bản nhất của hệ thống này. Nó cho phép người chứng minh đặt giá trị của một bit cụ thể thành "0" hoặc "1". Đặc biệt, nó cho phép prover đặt giá trị của một biến giữa các tập lệnh và UTXO khác nhau. Điều này rất quan trọng vì nó mở rộng thời gian chạy thực thi bằng cách chia thời gian thực hiện máy ảo của Bitcoin thành nhiều giao dịch.
Lời hứa chứa hai giá trị băm, hash0 và hash1. Tại thời điểm sau, người chứng minh đặt giá trị của bit thành "0" bằng cách tiết lộ preimage0 (preimage của hash0) hoặc thành "1" bằng cách tiết lộ preimage1 (preimage của hash1). Nếu, tại một thời điểm nào đó, họ tiết lộ cả preimage0 và preimage1, thì trình xác thực có thể sử dụng chúng làm bằng chứng gian lận và lấy tiền gửi của người chứng minh. Đây được gọi là một tuyên bố mâu thuẫn. Có thể trừng phạt các tuyên bố mâu thuẫn là điều làm cho một cam kết ràng buộc - đó là một "cam kết dựa trên khuyến khích".
Kết hợp các lời hứa giá trị bit với khóa thời gian cho phép trình xác thực buộc người chứng minh quyết định giá trị của một bit cụ thể trong một khung thời gian nhất định.
Hình 1: Thực hiện cam kết bit-valueHình 1: Thực hiện cam kết 1-bit. Để mở khóa tập lệnh này, người chứng minh phải tiết lộ một trong các hình ảnh trước của hash0 hoặc hash1. Trong thực thi ví dụ này, prover tiết lộ hash1 và đặt giá trị của bit thành "1". Chúng ta có thể nhân rộng lời hứa này để thực thi một giá trị cụ thể trong các tập lệnh khác nhau.
ĐỂ ĐƠN GIẢN HÓA, TỪ ĐÂY, HÃY GIẢ SỬ RẰNG CÓ MỘT OPCODE ĐƯỢC GỌI LÀ OP BITCOMMITMENT, VIẾT TẮT CỦA TẬP LỆNH TRÊN. Opcode tiêu thụ hai hàm băm và một preimage được băm. Dựa trên hàm băm phù hợp với hình ảnh trước, nó đặt một giá trị bit trên ngăn xếp.
4 Cổng logic hứa hẹn
Bất kỳ hàm tính toán nào cũng có thể được biểu diễn dưới dạng mạch Boolean. Cổng NAND là một cổng logic phổ quát, vì vậy bất kỳ hàm Boolean nào cũng có thể bao gồm chúng. Để giữ cho mô hình của chúng tôi đơn giản, chúng tôi chỉ ra cách tiếp cận của chúng tôi hoạt động với các cổng NAND đơn giản. Ngoài ra, chúng tôi chỉ ra cách kết hợp cửa tùy ý. Tất cả điều này chứng minh rằng BitVM có thể đại diện cho bất kỳ mạch nào.
Việc thực hiện lời hứa cổng NAND rất đơn giản. Nó chứa hai lời hứa bit đại diện cho hai đầu vào và một cam kết bit đại diện cho đầu ra. Tập lệnh tính toán giá trị NAND của hai đầu vào để đảm bảo rằng nó khớp với các bit đầu ra đã hứa.
Hình 2: Cam kết cổng cho các hoạt động NAND Hình 2: Cam kết cổng cho các hoạt động NAND. Thực thi tập lệnh này cần tiết lộ các giá trị của bit hứa A, B và C sao cho A NAND B = C là đúng.
(Ở đây, để đơn giản, hãy giả sử rằng một opcode có tên OP NAND tồn tại.) TRÊN THỰC TẾ, NÓ KHÔNG TỒN TẠI, NHƯNG NÓ CÓ THỂ DỄ DÀNG THỰC HIỆN BẰNG CÁCH SỬ DỤNG OP BOOLAND VÀ OP NOT. )
5 Hứa hẹn mạch nhị phân
Trong phần trước, chúng ta đã định nghĩa cam kết cổng NAND. Chúng ta có thể đại diện cho bất kỳ mạch nào bằng cách kết hợp các lời hứa cổng. Mỗi bước thực hiện được cam kết trong Tapleaf. Tất cả chúng đều được hợp nhất vào cùng một địa chỉ Taproot để người chứng minh có thể thực hiện bất kỳ cổng nào trong mạch. Thực hiện cổng yêu cầu người chứng minh mở lời hứa cổng tương ứng và đặt giá trị cho các bit đầu vào và đầu ra của nó.
Taptree có thể trở nên khổng lồ và có một tỷ tập lệnh Tapleaf, nhưng dấu chân trên chuỗi của nó là nhỏ.
Hình 3: Một mạch ví dụ ngẫu nhiên Hình 3: Một mạch ví dụ ngẫu nhiên với 8 cổng NAND khác nhau và 4 đầu vào A, B, C và D. Sử dụng hàng tỷ cổng, về cơ bản bất kỳ chức năng nào cũng có thể được xác định.
6 thách thức và phản ứng
Nó không đủ để cam kết với một mạch. Để bác bỏ các tuyên bố sai lầm, người xác minh phải có khả năng thách thức tuyên bố của câu tục ngữ. Điều này có thể đạt được bằng cách ký trước một loạt các giao dịch trong quá trình thiết lập. Các giao dịch này đáp ứng những thách thức → →→ ứng phó với →... cách liên kết. Nếu một trong các bên ngừng tham gia, thì sau một khoảng thời gian chờ, bên kia sẽ thắng thử thách và có thể nhận tiền gửi của cả hai bên. Miễn là cả hai bên làm việc cùng nhau, họ có thể làm việc cùng nhau để giải quyết bất kỳ hợp đồng nào thông qua chữ ký 2-of-2. Các cơ chế sau đây chỉ được yêu cầu nếu có gian lận.
Vicky chọn một thử thách bằng cách mở một khóa băm trong lá Tap của cô ấy. Điều này sẽ mở khóa một Tap cụ thể cho Paul và buộc anh ta thực hiện nó. Kịch bản buộc Paul phải tiết lộ lời hứa cửa của thử thách Vicky. Bằng cách lặp lại quy trình này cho nhiều vòng truy vấn, bạn có thể nhanh chóng bác bỏ mọi tuyên bố không nhất quán.
Nếu người chứng minh ngừng hợp tác ngoài chuỗi với trình xác thực, trình xác thực cần một cách để buộc người chứng minh hành động trên chuỗi. Trình xác thực đạt được điều này bằng cách mở khóa khóa băm: mỗi NAND Tapleaf trong UTXO của tục ngữ chỉ có thể được sử dụng nếu người chứng minh biết hình ảnh trước do người chứng nhận nắm giữ. Do đó, người chứng minh có thể chứng minh rằng một Tapleaf nhất định hoạt động chính xác bằng cách tiết lộ đầu vào và đầu ra của nó, nhưng chỉ khi trình xác minh "mở khóa" nó bằng cách tiết lộ hình ảnh trước của hàm băm bảo vệ Tapleaf đó. Bằng cách áp dụng tìm kiếm nhị phân, người xác thực có thể nhanh chóng xác định lỗi của câu tục ngữ chỉ sau một vài vòng thử thách và phản hồi.
7 Đầu vào và đầu ra
Người chứng minh có thể đặt đầu vào bằng cách tiết lộ lời hứa bit tương ứng. Lý tưởng nhất, họ tiết lộ các cam kết ngoài chuỗi để giảm thiểu tỷ lệ lấp đầy trên chuỗi. Trong trường hợp không hợp tác, người xác thực có thể buộc người chứng minh tiết lộ đầu vào của họ trên chuỗi.
Một lượng lớn dữ liệu có thể được xử lý bằng cách trao đổi mã hóa trước. Bằng cách này, người chứng minh có thể tiết lộ khóa giải mã tại một thời điểm sau đó.
Đầu vào đa bên cũng có thể. Cửa có thể có cam kết bit từ cả hai phía.
8 Hạn chế và Outlook
Nó không hiệu quả để biểu diễn các chức năng trong các mạch NAND đơn giản. Bằng cách sử dụng các opcode nâng cao hơn, các chương trình có thể được biểu diễn hiệu quả hơn. Ví dụ: Bitcoin Script hỗ trợ thêm số 32 bit, vì vậy chúng tôi không cần mạch nhị phân. Chúng ta cũng có thể có những lời hứa bit lớn hơn, ví dụ: 32 bit trong một hàm băm duy nhất. Ngoài ra, kích thước của tập lệnh có thể đạt khoảng 4 MB. Do đó, chúng ta có thể thực hiện nhiều hơn một lệnh NAND trong mỗi tập lệnh lá.
Mô hình được trình bày ở đây được giới hạn cho hai bên. Tuy nhiên, có thể có các kênh hai chiều và liên kết chúng lại với nhau để tạo thành một mạng tương tự như Lightning Network. Khám phá cả hai cài đặt có thể mang lại khả năng khái quát hóa thú vị. Ví dụ, chúng ta có thể khám phá cấu trúc liên kết sao từ 1 đến n cho một mạng. Một câu hỏi nghiên cứu khác là liệu chúng ta có thể áp dụng mô hình của mình vào thiết lập n-to-n và tạo ra các nhà máy kênh phức tạp hơn hay không. Ngoài ra, chúng tôi có thể kết hợp các hệ thống của mình với các giao thức ngoài chuỗi khác nhau như Lightning Network hoặc Rollups.
Các hướng nghiên cứu khác bao gồm bộ nhớ ứng dụng chéo, cách đưa ra tuyên bố về dữ liệu tùy ý được khắc trên chuỗi hoặc các mạch lập trình ngoài chuỗi, tức là các máy ảo ngoài chuỗi. Các kỹ thuật lấy mẫu phức tạp hơn, tương tự như STARK, cũng có thể được áp dụng, để kiểm tra các mạch trong một lượt.
Cột mốc quan trọng tiếp theo là hoàn thành thiết kế và triển khai BitVM cụ thể, cũng như Tree ++, một ngôn ngữ cấp cao để viết và gỡ lỗi các hợp đồng Bitcoin.
9 Kết luận
Bitcoin là Turing-complete theo một nghĩa nào đó, vì bằng chứng gian lận mã hóa trong Taptrees lớn xác minh việc thực hiện bất kỳ chương trình nào. Một hạn chế lớn của mô hình này là nó chỉ hoạt động trong trường hợp của cả hai bên. Hy vọng rằng khái quát hóa có thể được thực hiện trong công việc tiếp theo.
Lời cảm ơn
Đặc biệt cảm ơn Super Testnet và Sam Parker, những người luôn tin rằng Bitcoin sẽ không hoàn thành Turing.
Tham khảo
[1] Nghiên cứu Ethereum. Rollups lạc quan. 2022.
[2] Salvatore Ingala. Merkleize tất cả mọi thứ. , 2022.
Tài nguyên
[1] Nhóm dịch thuật:
[2] Bản tổng hợp lạc quan 1:
[3] MATT 提案(Merkelize All The Things)2: