BitVM là giao thức hấp dẫn mới nhất trong hệ sinh thái Bitcoin, có tiềm năng mang lại lợi ích cho mọi dự án được xây dựng trên Bitcoin. Hãy nói về thiết kế của BitVM và những khả năng mới mà nó mở ra cho Bitcoin.
Giới thiệu bằng chứng gian lận về Bitcoin
" Bitcoin Season 2[3] " Đang tiến hành, các nhà phát triển cũng như người dùng đều rất hào hứng với việc xây dựng các dự án trên Bitcoin và đưa ra các trường hợp sử dụng mới cũng như các phương pháp tiếp cận mới để giải quyết những thách thức muôn thuở của việc xây dựng trên Bitcoin.
Bitcoin không thể mở rộng được. Do không gian khối hạn chế, phí giao dịch có thể dao động đáng kể trong thời gian mạng bị tắc nghẽn. Với chỉ 7 giao dịch được xử lý mỗi giây và mỗi khối chỉ chứa khoảng 1 MB dữ liệu, chỉ riêng Bitcoin là không đủ nếu được hàng tỷ người dùng sử dụng. Bạn cần mở rộng giải pháp [4].
Rất nhiều công việc đã được thực hiện trên Bitcoin L2[5] (chuỗi khối Layer2) để cải thiện độ tin cậy và khả năng mở rộng của Bitcoin. giới thiệu các tính năng mới. Ngày nay, có hàng chục dự án [6] đang được xây dựng trên Bitcoin và một trong những lĩnh vực nghiên cứu và đổi mới hứa hẹn nhất là Bitcoin Rollups[7]. Ở cấp độ cao, Bitcoin Rollups cho phép các giao dịch diễn ra ngoài chuỗi và sau đó được "cuộn" vào một thay đổi trạng thái duy nhất được gửi tới chuỗi khối, với hệ thống bằng chứng mật mã để người tham gia có thể xác minh rằng thay đổi trạng thái đã gửi là chính xác.
Tuy nhiên, có những thách thức trong việc đưa loại hệ thống bằng chứng này vào Bitcoin và đây là lúc BitVM xuất hiện.
BitVM là gì?
BitVM[8] là một bộ giao thức/quy tắc cho phép chống gian lận trên Bitcoin mà các nhà phát triển có thể ngay lập tức sử dụng giao thức này để triển khai nhiều loại các trường hợp sử dụng trên Bitcoin, bao gồm Bitcoin Rollups, cầu nối tin cậy tối thiểu, v.v. Thiết kế cốt lõi của BitVM chuyển tính toán ra khỏi chuỗi và thực hiện cơ chế chống gian lận trên chuỗi khối Bitcoin.
BitVM có thể triển khai bằng chứng gian lận trên Bitcoin.
Sách trắng BitVM được Robin Linus phát hành vào tháng 10 năm 2023 (điều đáng chú ý là Robin là ZeroSync[9] Là thành viên của nhóm làm việc trên hệ thống chứng minh không có kiến thức về Bitcoin, các nhà phát triển đã bắt đầu thử nghiệm giao thức này trong vài tháng qua và ngày càng quan tâm hơn.
Bạn có thể coi BitVM như một giao thức/bộ quy tắc phân tán mà những người tham gia đồng ý trước để tuân theo, thay vì một máy ảo thực tế được triển khai bởi phần mềm (chẳng hạn như Máy ảo Ethereum). Tương tự như cách hoạt động của Bitcoin Ordins, ở đây có một thành phần đồng thuận xã hội, người tham gia chọn tham gia các quy tắc và các quy tắc này không được thực thi đầy đủ ở cấp độ giao thức.
Điều khiến BitVM trở nên thú vị là nó cung cấp giao thức phản hồi thử thách để xác thực các mạch tùy ý trên Bitcoin - bạn có thể đưa ra các yêu cầu ngoài chuỗi ( Ví dụ: điều này bằng chứng hoạt động) và được xác minh bằng Bitcoin L1. "Trên Bitcoin" là chìa khóa vì việc xây dựng trên Bitcoin là rất khó. Nếu được triển khai, giao thức BitVM có thể được sử dụng để xây dựng các bản tổng hợp lạc quan, neo BTC hai chiều, v.v., có thể mang lại lợi ích cho các dự án khác được xây dựng trên Bitcoin.
BitVM giải quyết được vấn đề gì?
Bất kỳ dự án nào xây dựng trên Bitcoin đều biết việc tương tác với chuỗi khó khăn như thế nào (tại Hiro, chúng tôi trực tiếp hiểu rõ nỗi đau này). Một trong những thách thức của việc xây dựng trên Bitcoin là Bitcoin không có khả năng xử lý các phép tính phức tạp.
Không có hợp đồng thông minh. Không có máy ảo. Khả năng lập trình bị giới hạn ở những gì nhà phát triển có thể xây dựng thông qua opcodes [11] (opcodes) và chức năng đó bị hạn chế. Việc giới thiệu các opcode mới yêu cầu BIP và phân nhánh Bitcoin (điều này rất khó).
Do đó, nếu không phân nhánh và mã opcode mới, khả năng lập trình của chúng tôi sẽ bị hạn chế. Trong trường hợp mở rộng quy mô Bitcoin, hạn chế này chủ yếu được phản ánh ở hai khía cạnh:
Nếu bạn muốn xây dựng một chốt BTC hai chiều, rất khó để loại bỏ niềm tin khỏi phương trình. Hầu hết các chốt BTC ngày nay đều liên quan đến người giám sát, có thể là một tổ chức duy nhất hoặc một tập đoàn kiểm soát multisig, để xử lý việc gửi/rút tiền. Đôi khi được mô tả là "viết câu hỏi". Trong hệ sinh thái Stacks, bản nâng cấp Nakamoto sắp tới [12] bao gồm một cầu nối tin cậy tối thiểu được thiết kế để sử dụng - sẽ nói thêm về điều đó sau.
Nếu bạn muốn chuyển các phép tính hoặc giao dịch ra khỏi chuỗi thông qua Rollup, rất khó để xác minh và xác minh dữ liệu ngoài chuỗi trên Bản thân Bitcoin. Đây là một vấn đề xác nhận.
Đối với cả hai vấn đề này, BitVM có thể mở khóa những cải tiến thiết kế ấn tượng bằng cách triển khai giao thức thử thách/phản hồi trên Bitcoin L1.
BitVM hoạt động như thế nào?
Một cách hay để coi BitVM là một giao thức hoặc một bộ quy tắc. Bất kỳ trò chơi phản ứng-thử thách nào cũng có thể được chơi nếu cả hai bên đồng ý trước việc tuân theo các quy tắc này (có nghĩa là họ cần hợp tác với nhau). Về lý thuyết, điều này có thể được sử dụng để xác minh/chứng minh các chương trình phức tạp tùy ý trên Bitcoin (việc thực thi thực tế các chương trình này xảy ra ngoài chuỗi).
Hãy lấy một ví dụ cụ thể.
Giả sử Alice và Bob muốn chơi trò tung đồng xu. Cả hai người chơi, mỗi người bỏ 0,5 BTC vào nhóm giải thưởng. Mặt ngửa thắng 1 BTC. Alice cầm đồng xu và sẽ lật đồng xu trước. Bob muốn chắc chắn rằng Alice không gian lận. Đây là cách họ chơi trò chơi bằng BitVM (nhiều chi tiết được lược bỏ để đơn giản):
Alice and Bob đồng ý tuân theo giao thức BitVM.
Giả sử rằng mặt trước được biểu thị bằng giá trị H0 và mặt sau được biểu thị bằng giá trị H1. Alice tạo ra H0 và H1 bằng cách chọn hai giá trị khác, ví dụ P0 và P1, rồi băm chúng. Do đó, Hash(P0) = H0 và Hash(P1) = H1. P0 được gọi là "tiền ảnh" của H0 và P1 được gọi là tiền ảnh của H1.
Alice chia sẻ các giá trị H0 và H1 với Bob (trên thực tế, Alice "cam kết" không thể hủy ngang với các giá trị băm này, vì vậy cô ấy sau này không thể yêu cầu có một giá trị khác). Bob không biết tiền ảnh P0 và P1 (và việc "đoán" những giá trị này là rất khó, vì vậy chúng ta có thể giả định một cách an toàn rằng Bob sẽ không khám phá ra những giá trị này một cách thần kỳ).
Alice và Bob ký trước hai giao dịch: một cho thử thách và một cho phản hồi.
Trong giao dịch thử thách, Bob sẽ bao gồm một tập lệnh về cơ bản kiểm tra xem dữ liệu đầu vào được cung cấp có băm thành một trong các giá trị băm đã biết H0 hay H1 hay không - nếu hàm băm là H0 thì Bob biết rằng giá trị đó là dương nếu nó là dương; H1 thì ngược lại. Ngoài ra, tập lệnh có khóa thời gian và nếu không nhận được phản hồi trước thời hạn, Bob sẽ nhận được tổng giải thưởng.
Trong giao dịch phản hồi, Alice có thể "tiết lộ" kết quả của việc tung đồng xu bằng cách đưa vào tiền ảnh P0 hoặc P1 tương ứng. Nếu Alice không chứa giá trị, chứa hai giá trị hoặc chứa bất kỳ giá trị nào ngoại trừ P0 hoặc P1, thì Bob sẽ thắng tổng giải thưởng. Ngược lại, nếu giá trị là P0 (ngửa), Alice sẽ thắng tổng giải thưởng.
Bây giờ chúng ta đã sẵn sàng bắt đầu trò chơi. Alice tung đồng xu nhưng vẫn chưa tiết lộ kết quả. Bob đưa ra một giao dịch thử thách và Alice sau đó sẽ phát đi một giao dịch phản hồi. Logic "phát hiện gian lận" được thực hiện trên chuỗi thông qua tập lệnh được mô tả trước đó. Rõ ràng, đây là một ví dụ tầm thường và giả tạo, nhưng nó minh họa được ý chính. Để có một ví dụ phức tạp hơn một chút, hãy xem xét trò chơi Tic-Tac-Toe được thiết kế bởi nhà phát triển có tên Super Testnet. Bạn có thể xem kho lưu trữ GitHub [13] tại đây và thậm chí chơi với "bit tac toe[14]" ngay hôm nay. Super Testnet thực sự đã giới thiệu trò chơi này cho Hiro, bạn có thể xem trò chơi này bên dưới:
Bitvm Crash Course trên Youtube [ 15]
Sau đây là các thành phần cấp cao của trò chơi:
Tic-Tac-Toe là một lưới 9 ô vuông. Người chơi đầu tiên, Alice, có thể thực hiện tối đa 5 nước đi, do đó có 45 hình ảnh trước và băm (9 hình mỗi vòng). Người chơi thứ hai, Bob, có thể thực hiện tối đa 4 nước đi, do đó có 36 giá trị băm.
Tic-Tac-Toe có 3 cách để "gian lận": người chơi có thể đặt nhiều X/O trong lượt của mình; Che một hình vuông mà họ đã sử dụng trước đó; người chơi có thể che một hình vuông mà đối thủ của họ đã sử dụng trước đó. Do đó, các giao thức thách thức/phản hồi được xây dựng xung quanh việc phát hiện những tình huống này.
Thử thách một giao dịch sẽ buộc người chơi khác phải "tiết lộ" ô mà họ đã đặt X hoặc O vào.
Giao dịch phản hồi sẽ có đoạn script kiểm tra cả 3 trường hợp trên: nếu không phát hiện gian lận thì trò chơi tiếp tục (hoặc trò chơi kết thúc vì có người thắng). Nếu phát hiện gian lận, người thách đấu thắng và người chứng minh thua.
Lưu ý rằng trong cả hai trường hợp, bằng chứng gian lận đều được thực hiện thủ công và được thiết kế riêng cho trường hợp sử dụng này: bằng chứng gian lận của Word Chess không hoạt động khi tung đồng xu hoặc bất cứ thứ gì khác.
Quay lại bức tranh toàn cảnh, sách trắng BitVM mô tả cách tiếp cận chung: đối với bất kỳ chương trình nào, nó cung cấp cách xây dựng bằng chứng về tính hợp lệ cho chương trình đó. Những thông tin chi tiết chính như sau:
Từ ví dụ tung đồng xu, chúng ta thấy cách xác minh một bit duy nhất : Hãy gọi nó là bằng chứng “cam kết bit”.
Với các cam kết về bit, chúng ta có thể xây dựng các cam kết về cổng logic: Hãy xem xét toán tử boolean AND/OR - cho hai đầu vào bất kỳ ( Mỗi giá trị là 0 hoặc 1), toán tử này xác định một đầu ra duy nhất. Do đó, bằng cách sử dụng cam kết 2 bit làm đầu vào và cam kết 1 bit làm đầu ra, chúng ta có thể tạo bằng chứng hợp lệ cho bất kỳ cổng logic nào. Sách trắng BitVM sử dụng cổng logic NAND.
Cuối cùng, mọi phép tính tùy ý đều có thể được biểu diễn bằng một chuỗi cổng logic. Sách trắng BitVM gọi đây là "mạch nhị phân". Các mạch như vậy có thể được biểu diễn một cách hiệu quả bằng Tapscript, với mỗi lá trong cây tap đại diện cho một cam kết cổng duy nhất.
Về cơ bản, giao thức thử thách/phản hồi liên quan đến việc xác thực đầu ra được hứa hẹn bởi một cổng cụ thể. Trong trường hợp xấu nhất, bạn có thể cần xác minh đầu ra của từng cổng riêng lẻ.
Hãy xem kho lưu trữ này [16] để biết hướng dẫn chuyển đổi bất kỳ chương trình nào thành mạch tapleaf phương pháp.
Ngăn xếp phù hợp như thế nào?
Hai ứng dụng rõ ràng và phù hợp nhất của BitVM trong hệ sinh thái Stacks là:
Cải thiện các giả định về độ tin cậy của sBTC
Cải thiện các giả định về độ tin cậy trên khối Bitcoin Stacks bổ sung bằng chứng hợp lệ
Tại sao chọn hai ứng dụng này? Thiết kế sBTC hiện tại [17] đã là một trong những chốt hai chiều an toàn nhất, giảm thiểu độ tin cậy đang được phát triển cho Bitcoin. Tuy nhiên, vẫn còn chỗ cần cải thiện về mặt mô hình bảo mật và các giả định về độ tin cậy[18]. Không giống như yêu cầu ít nhất 30% người ký trung thực hoặc tin tưởng vào một nhóm người ký có uy tín cao, cách tiếp cận dựa trên BitVM về mặt lý thuyết có thể cho phép sBTC chạy chỉ với một người tham gia trung thực.
Tương tự, mặc dù mỗi khối Stacks được xử lý bằng Bitcoin, thiết kế hiện tại chỉ cho phép bạn xác minh độc lập dữ liệu Stacks trong khi bạn có bản sao trạng thái chuỗi. Nếu sử dụng BitVM, các khối Stacks cũng bao gồm bằng chứng về tính hợp lệ, do đó bạn có thể kiểm tra không chỉ tính toàn vẹn (dữ liệu trong khối Stacks nhất định phù hợp với hàm băm được lưu trữ trên Bitcoin) mà còn cả tính chính xác (bạn có thể kiểm tra bộ lưu trữ bằng cách xem Bằng chứng trên Bitcoin xác minh rằng các giao dịch trong khối Stacks nhất định thực sự được thực hiện chính xác). Nói cách khác: Điều này sẽ cho phép Stacks phát triển thành một bản tổng hợp lạc quan về Bitcoin.
Các phương pháp cụ thể về cách sử dụng BitVM để triển khai các ứng dụng này đòi hỏi phải nghiên cứu và phát triển nhiều hơn. Nhưng chúng ta có thể cố gắng phác thảo một số ý tưởng ở mức độ cao.
BitVM và sBTC
Hãy xem xét ví dụ về sBTC: quy trình neo rất đơn giản, chỉ cần phát sóng một giao dịch Bitcoin là xong. Tuy nhiên, trong thiết kế hiện tại, quy trình thoát neo dựa vào người ký để xử lý yêu cầu (trên Ngăn xếp). Điều này mang đến một số hạn chế:
Việc thoát có thể mất thời gian tùy thuộc vào số lượng chữ ký của người đó là ngoại tuyến/trung thực.
Bạn cần tin tưởng vào mạng lưới người ký này và rộng hơn là toàn bộ Stacks.
Nếu thay vào đó (hoặc cũng có thể) tạo ra bằng chứng hợp lệ về Bitcoin và sử dụng BitVM[ 19], sau đó:
Việc thoát ra có thể được xử lý một cách lạc quan (vì vậy, hãy đi theo con đường hạnh phúc và có thể được xử lý nhanh hơn).
Người ký tên chỉ cần một người tham gia trung thực để hoạt động; bạn không cần phải tin tưởng 30% mạng lưới người ký.
Điều quan trọng là tìm ra chính xác cách xây dựng bằng chứng về tính hợp lệ. Cách tiếp cận bạo lực được mô tả trong sách trắng BitVM có thể hoạt động nhưng có thể dẫn đến một mạch tapleaf rất lớn (hàng tỷ nút). Điều này có nghĩa là bất kỳ thử thách nào cũng sẽ mất nhiều thời gian (có thể vài tuần hoặc hơn), chưa kể chi phí về sự chú ý và nguồn lực (phí giao dịch!). Như chúng ta đã thấy với ví dụ về Tic-Tac-Toe, có thể xây dựng các bằng chứng ngắn gọn hơn, phù hợp với các trường hợp sử dụng cụ thể và cách tiếp cận tương tự có thể hiệu quả hơn trong trường hợp này.
BitVM và Stacks
Về bằng chứng tính hợp lệ của toàn bộ khối Stacks, có rất nhiều giá trị khám phá không gian thiết kế. Ví dụ: bằng chứng về mức độ chi tiết của một giao dịch đơn lẻ, mức độ chi tiết của toàn bộ khối hay ở đâu đó ở giữa (chẳng hạn như các giao dịch tạo nên một chuỗi phụ thuộc nhân quả)? Có thể thực hiện một cách tiếp cận gia tăng, chẳng hạn như tạo bằng chứng đầu tiên cho việc chuyển mã thông báo đơn giản và sau đó thêm dần các hợp đồng Rõ ràng không? Đây có phải là cách sử dụng tốt không gian khối Bitcoin vì những người khai thác Stacks và những người tham gia mạng đã có động cơ tài chính để duy trì toàn bộ lịch sử của trạng thái chuỗi Stacks?
Kết luận
BitVM là một chủ đề thú vị cần nhiều công việc hơn là một bài đăng trên blog Rất nhiều nghiên cứu, suy nghĩ và thử nghiệm, nhưng tôi hy vọng điều này sẽ giúp làm sáng tỏ một trong những phát triển thú vị gần đây về Bitcoin.
Preview
Có được sự hiểu biết rộng hơn về ngành công nghiệp tiền điện tử thông qua các báo cáo thông tin và tham gia vào các cuộc thảo luận chuyên sâu với các tác giả và độc giả cùng chí hướng khác. Chúng tôi hoan nghênh bạn tham gia vào cộng đồng Coinlive đang phát triển của chúng tôi:https://t.me/CoinliveSG