Đối với một Thuật toán f, hai bên không tin tưởng lẫn nhau, Alice và Bob, có thể xác định niềm tin như sau:
Đối với 2, 3 và 4, giả sử x là giao dịch Layer2 và trạng thái ban đầu, f là chương trình Nhận thức chung Layer2, y là trạng thái cuối cùng của giao dịch, tương ứng với giải pháp mở rộng Layer2 của blockchain.
Bảng 1: Phương pháp xây dựng niềm tin
Ngoài ra, cần chú ý đặc biệt là:
Hiện tại, nhờ vào các hợp đồng thông minh Turing hoàn thành của Solidity, các công nghệ bằng chứng gian lận và bằng chứng hợp lệ đang được áp dụng rộng rãi trong việc mở rộng Layer2 trên Ethereum. Tuy nhiên, trong bối cảnh của BTC, do các hạn chế về chức năng mã hoạt động của BTC bị hạn chế, số lượng phần tử trong ngăn xếp chỉ là 1000 và các hạn chế khác, việc áp dụng các công nghệ này vẫn đang ở giai đoạn khám phá. Bài viết này tóm tắt về các hạn chế và công nghệ đột phá dưới cấu trúc BTC, nghiên cứu về các công nghệ bằng chứng hợp lệ và bằng chứng gian lận, và tổng quan về công nghệ đoạn mã script độc đáo dưới cấu trúc BTC.
Trong khung của Bitcoin tồn tại nhiều hạn chế, nhưng có thể vượt qua những hạn chế này thông qua các phương pháp hoặc công nghệ tinh tế khác nhau. Ví dụ, sử dụng Bit cam kết có thể vượt qua hạn chế vô trạng thái của UTXO, Taproot có thể giải quyết hạn chế không gian kịch bản, đầu ra kết nối có thể vượt qua hạn chế của cách tiêu thụ UTXO, trong khi hợp đồng thông minh có thể vượt qua hạn chế của chữ ký trước.
BTC sử dụng mô hình UTXO, trong đó mỗi UTXO đều bị khóa trong một kịch bản khóa, kịch bản này xác định các điều kiện cần đáp ứng để tiêu thụ UTXO đó. Kịch bản BTC có các hạn chế sau:
Hiện tại, kịch bản BTC là hoàn toàn không có trạng thái. Khi thực hiện kịch bản BTC, môi trường thực thi của mỗi kịch bản sẽ được thiết lập lại sau khi hoàn thành. Điều này làm cho kịch bản BTC không thể hỗ trợ nguyên sinh cho việc chia sẻ giá trị x giữa kịch bản hạn chế 1 và 2. Tuy nhiên, vấn đề này có thể được giải quyết thông qua một số phương pháp, ý tưởng cốt lõi là ký một giá trị theo một cách nào đó. Nếu có thể tạo ra chữ ký cho một giá trị, thì có thể thực hiện kịch bản BTC có trạng thái. Nói cách khác, thông qua việc kiểm tra chữ ký của giá trị x trong kịch bản 1 và 2, có thể đảm bảo rằng cùng một giá trị x được sử dụng trong hai kịch bản này. Nếu có chữ ký xung đột, nghĩa là ký hai giá trị khác nhau cho cùng một biến x, thì có thể áp đặt hình phạt. Phương pháp này được gọi là Bit承诺.
Bit承诺的原理相对简单。每个Bit都对应两个不同的哈希值,hash0 和 hash1。如果待签名的Bit值为 0,则揭示 hash0 的前像;如果Bit值为 1,则揭示 hash1 的前像。
Với một tin nhắn Bit đơn lẻ m ∈ {0,1} làm ví dụ, tập lệnh mở khóa Bit tương ứng chỉ bao gồm một số tiền ảo trước: nếu giá trị Bit là 0, thì tập lệnh mở khóa là preimage0 - “0xfa7fa5b1dea37d71a0b841967f6a3b119dbea140”; nếu giá trị Bit là 1, thì tập lệnh mở khóa là preimage1 - “0x47c31e611a3bd2f3a7a42207613046703fa27496”. Do đó, thông qua Bit cam kết, ta có thể vượt qua hạn chế không có trạng thái của UTXO, thực hiện tập lệnh BTC có trạng thái, từ đó tạo ra khả năng cho các tính năng mới thú vị.
OP_HASH160
OP_DUP
0xf592e757267b7f307324f1e78b34472f8b6f46f3> // Đây là hash1
OP_EQUAL
OP_DUP
OP_ROT
0x100b9f19ebd537fdc371fa1367d7ccc802dc2524> // Đây là hash0
OP_EQUAL
OP_BOOLOR
OP_VERIFY
// Giá trị Bit được cam kết hiện đang trên ngăn xếp. Có thể là “0” hoặc “1”.
Hiện tại, Bit cam kết có hai cách thực hiện:
Hiện tại, thư viện BitVM2 đã thực hiện chức năng ký Winternitz dựa trên hàm băm Blake3. Độ dài chữ ký tương ứng với mỗi Bit khoảng 26 byte. Do đó, có thể thấy rằng việc đưa trạng thái thông qua Bit cam kết mang lại chi phí. Do đó, trong việc triển khai BitVM2, thông điệp được hàm băm trước để có giá trị hàm băm 256 bit, sau đó cam kết Bit đối với giá trị hàm băm đó để tiết kiệm chi phí, thay vì cam kết trực tiếp đối với mỗi Bit của thông điệp ban đầu dài hơn.
Cải cách mềm Taproot của BTC được kích hoạt vào tháng 11 năm 2021 và bao gồm ba đề xuất: Chữ ký Schnorr (BIP 340), Taproot (BIP 341) và TapScript (BIP 342). Cải cách này giới thiệu một loại giao dịch mới - giao dịch Pay-to-Taproot (P2TR). Bằng cách kết hợp lợi ích của Taproot, MAST (Cây cú pháp trừu tượng Merkel) và chữ ký Schnorr, giao dịch P2TR có thể tạo ra định dạng giao dịch bảo mật hơn, linh hoạt hơn và có khả năng mở rộng hơn.
P2TR hỗ trợ hai cách chi tiêu: thông qua Chìa khoá bảo mật hoặc đường dẫn script. Theo quy định của Taproot (BIP 341), khi chi tiêu thông qua đường dẫn script, độ dài của đường dẫn Merkle tương ứng không thể vượt quá 128. Điều này có nghĩa là số lượng tapleaf trong taptree không thể vượt quá 2^128. Kể từ nâng cấp SegWit vào năm 2017, mạng BTC đo lường kích thước Khối bằng đơn vị trọng số, hỗ trợ tối đa 400 triệu đơn vị trọng số (khoảng 4MB). Khi đầu ra P2TR được chi tiêu thông qua đường dẫn script, chỉ cần tiết lộ một script tapleaf duy nhất, điều này có nghĩa là Khối chỉ chứa một script tapleaf. Do đó, đối với giao dịch P2TR, kích thước tối đa của mỗi script tương ứng với mỗi tapleaf có thể đạt tới khoảng 4MB. Tuy nhiên, theo chính sách mặc định của BTC, nhiều Nút chỉ chuyển tiếp giao dịch nhỏ hơn 400K; giao dịch lớn hơn cần hợp tác với Người khai thác để đóng gói.
TAPROOT mang lại một giá trị script space premium, làm cho việc mô phỏng các hoạt động mật mã như phép nhân và Hàm băm bằng các mã hoạt động hiện tại trở nên có giá trị hơn. Khi xây dựng tính toán có thể xác minh dựa trên P2TR, kích thước script không còn bị giới hạn bởi 4MB, mà có thể được chia thành nhiều chức năng con, phân phối trên nhiều tapleaf khác nhau, qua đó vượt qua hạn chế không gian script 4MB. Thực tế, kích thước của Thuật toán xác minh Groth16 được thực hiện trong BitVM2 hiện nay lên đến 2GB. Tuy nhiên, nó có thể được chia thành khoảng 1000 tapleaf và phân phối thông qua kết hợp với Bit承诺, ràng buộc tính nhất quán giữa đầu vào và đầu ra của mỗi chức năng con, đảm bảo tính toàn vẹn và đúng đắn của toàn bộ tính toán.
Hiện tại, BTC cung cấp hai phương thức thanh toán nguyên gốc cho mỗi đầu ra giao dịch chưa được sử dụng (UTXO): thanh toán thông qua script hoặc thanh toán thông qua Khóa công khai. Do đó, chỉ cần đáp ứng chính xác chữ ký của Khóa công khai hoặc điều kiện script, UTXO có thể được thanh toán. Hai UTXO có thể được thanh toán độc lập và không thể giới hạn bằng cách áp dụng các ràng buộc cho hai UTXO này, điều này có nghĩa là phải đáp ứng các điều kiện bổ sung để thanh toán chúng.
Tuy nhiên, người sáng lập giao thức ARK, Burak, đã thông minh sử dụng biểu tượng SIGHASH để thực hiện kết nối đầu ra của kết nối. Cụ thể, Alice có thể tạo một chữ ký để gửi BTC của cô ấy cho Bob. Vì chữ ký có thể cam kết nhiều đầu vào, Alice có thể đặt chữ ký của mình dưới điều kiện: chỉ khi đầu vào thứ hai được tiêu tốn, chữ ký giao dịch Taketx mới hợp lệ. Đầu vào thứ hai được gọi là kết nối, nó kết nối UTXO A và UTXO B với nhau. Nói cách khác, giao dịch Taketx chỉ hợp lệ khi UTXO B chưa bị giao dịch Challengetx tiêu tốn. Do đó, bằng cách phá hủy đầu ra của kết nối, có thể ngăn chặn tính hợp lệ của giao dịch Taketx.
Hình 1: Sơ đồ đầu ra của bộ kết nối
Trong giao thức BitVM2, đầu ra của bộ kết nối đóng vai trò như một hàm if…else. Một khi đầu ra của bộ kết nối đã được chi tiêu bởi một giao dịch nào đó, nó sẽ không thể được chi tiêu bởi các giao dịch khác nữa, đảm bảo tính độc quyền của nó. Trong triển khai thực tế, để cho phép chu kỳ thách thức-phản hồi, đã được giới thiệu một UTXO bổ sung với khóa thời gian. Ngoài ra, đầu ra của bộ kết nối cũng có thể được cài đặt với các chiến lược chi tiêu khác nhau theo nhu cầu, ví dụ như cho phép bất kỳ bên nào chi tiêu trong trường hợp giao dịch thách thức, trong khi chỉ cho phép người điều hành chi tiêu hoặc cho phép bất kỳ ai chi tiêu sau khi hết thời gian chờ.
Hiện tại, mã BTC chủ yếu giới hạn các điều kiện mở khóa, trong khi không giới hạn cách Mã BTC chi tiêu các giao dịch chưa được tiêu (UTXO). Điều này là do Mã BTC không thể đọc nội dung của giao dịch chính nó, không thể tự giám định giao dịch. Nếu Mã BTC có thể kiểm tra bất kỳ nội dung nào của giao dịch (bao gồm cả đầu ra), thì có thể thực hiện chức năng hợp đồng.
Hiện tại, việc triển khai hợp đồng có thể chia thành hai loại:
bằng chứng hợp lệ và bằng chứng gian lận đều có thể được sử dụng cho việc mở rộng Layer2 của BTC, sự khác biệt chính xem trong bảng 2.
Bảng 2: bằng chứng hợp lệ与bằng chứng gian lận
Dựa trên cam kết của Bit, Taproot, chữ ký trước và đầu ra kết nối, có thể xây dựng bằng chứng gian lận dựa trên BTC. Đồng thời, bằng cách giới thiệu các mã hoạt động hợp đồng (ví dụ OP_CAT), cũng có thể xây dựng bằng chứng hợp lệ dựa trên Taproot của BTC. Ngoài ra, bằng chứng gian lận có thể được phân thành bằng chứng gian lận có sự cho phép và bằng chứng gian lận không có sự cho phép dựa trên việc xem xét hệ thống lên xe của Bob. Trong bằng chứng gian lận có sự cho phép, chỉ có nhóm cụ thể mới có thể thách thức Bob, trong khi trong bằng chứng gian lận không có sự cho phép, bất kỳ bên thứ ba nào cũng có thể thách thức Bob. Bảo mật của bằng chứng gian lận không có sự cho phép tốt hơn so với bằng chứng gian lận có sự cho phép, vì nó thả rủi ro của việc kết hợp giữa các bên tham gia.
Dựa vào số lần tương tác thách thức-phản hồi giữa Alice và Bob, bằng chứng gian lận có thể được chia thành bằng chứng gian lận đơn lẻ và bằng chứng gian lận đa vòng, như được hiển thị trong hình 2.
Hình 2: Bằng chứng gian lận đơn và bằng chứng gian lận đa vòng
Như đã thể hiện trong bảng 3, bằng chứng gian lận có thể được thực hiện thông qua các mô hình tương tác khác nhau, bao gồm mô hình tương tác một lượt và mô hình tương tác nhiều lượt.
Bảng 3: Tương tác một lượt và tương tác nhiều lượt
Trong mô hình mở rộng Layer2 của BTC, BitVM1 sử dụng cơ chế gian lận đa vòng, trong khi BitVM2 sử dụng cơ chế gian lận một vòng, bitcoin-circle stark sử dụng bằng chứng hợp lệ. Trong những cơ chế này, BitVM1 và BitVM2 có thể thực hiện mà không cần thay đổi giao thức BTC, trong khi bitcoin-circle stark cần phải giới thiệu Mã thao tác OP_CAT mới.
Đối với hầu hết các tác vụ tính toán, signet, testnet và mainnet của BTC không thể hoàn toàn hỗ trợ tập lệnh 4MB, do đó cần sử dụng kỹ thuật phân tách mã lệnh, tức là phân tách toàn bộ mã lệnh tính toán thành các khối nhỏ hơn 4MB và phân phối chúng trên các Tapleaf khác nhau.
Như đã thấy ở Bảng 3, bằng chứng gian lận nhiều vòng phù hợp với những người muốn giảm thiểu tính toán xét xử on-chain hoặc không thể xác định vấn đề tính toán một cách đơn bước. Bằng chứng gian lận nhiều vòng, như tên gọi, yêu cầu sự tương tác nhiều vòng giữa người chứng minh và người xác thực để tìm ra đoạn tính toán có vấn đề, sau đó thực hiện xét xử dựa trên những đoạn đó.
BitVM White Paper của Robin Linus trong giai đoạn đầu (thường được gọi là BitVM1) đã áp dụng nhiều vòng bằng chứng gian lận. Giả sử mỗi giai đoạn thách thức kéo dài một tuần và sử dụng phương pháp tìm kiếm nhị phân để xác định phân đoạn tính toán có vấn đề, thời gian phản hồi thách thức trên chuỗi của trình xác thực Groth16 có thể kéo dài lên đến 30 tuần, dẫn đến việc kém hiệu quả về thời gian. Mặc dù hiện tại có nhóm nghiên cứu về phương pháp tìm kiếm n-ary hiệu quả hơn so với tìm kiếm nhị phân, nhưng hiệu quả thời gian của nó vẫn thấp đáng kể so với chu kỳ 2 tuần của bằng chứng gian lận đơn vòng.
Hiện tại, Bitcoin (BTC) đang sử dụng cả bằng chứng gian lận nhiều vòng trong phương pháp thử thách có giấy phép, trong khi bằng chứng gian lận một vòng đã thực hiện phương pháp thử thách không cần giấy phép, từ đó Thả rủi ro việc kết hợp giữa các bên tham gia và tăng cường tính an toàn. Vì vậy, Robin Linus đã tận dụng lợi thế của Taproot để tối ưu hóa BitVM1, không chỉ giảm số vòng tương tác xuống còn một vòng, mà còn mở rộng phương pháp thử thách thành không cần giấy phép, mặc dù điều này làm tăng chi phí tính toán tranh chấp on-chain.
Trong mô hình này, chứng minh gian lận chỉ cần một lần tương tác giữa người chứng minh và người xác thực. Người xác thực chỉ cần đưa ra một thách thức một lần và người chứng minh chỉ cần phản hồi một lần. Trong phản hồi đó, người chứng minh phải cung cấp bằng chứng để chứng minh tính chính xác của tính toán của họ. Nếu người xác thực phát hiện ra sự không nhất quán trong bằng chứng, thì thách thức được coi là thành công; nếu không, thì thách thức thất bại. Đặc điểm của chứng minh gian lận trong một vòng tương tác đơn như bảng 3.
Hình 3: Bằng chứng gian lận đơn lẻ
Ngày 15 tháng 8 năm 2024, Robin Linus đã phát hành White Paper kỹ thuật “BitVM2: Kết nối BTC với Lớp hai”, trong đó thực hiện một phương pháp cầu nối Cross-chain tương tự như phương pháp gian lận đơn vòng được mô tả trong hình 3.
OP_CAT là một phần của ngôn ngữ kịch bản được phát hành cùng với BTC, nhưng đã bị vô hiệu hóa vào năm 2010 do lỗ hổng bảo mật. Tuy nhiên, cộng đồng BTC đã thảo luận về khả năng kích hoạt lại OP_CAT trong nhiều năm qua. Hiện tại, OP_CAT đã được gán mã 347 và đã được kích hoạt trên mạng lưới signet của BTC.
Chức năng chính của OP_CAT là kết hợp hai phần tử trong ngăn xếp và đẩy kết quả trở lại ngăn xếp. Chức năng này mở ra những khả năng mới cho hợp đồng trên BTC và máy xác minh STARK:
Mặc dù sau bằng chứng SNARK/STARK, khối lượng tính toán cần thiết cho bằng chứng xác nhận là thấp hơn nhiều so với việc chạy trực tiếp tính toán ban đầu f, nhưng lượng script cần thiết để chuyển đổi nó thành BTC script để thực hiện thuật toán của trình xác thực vẫn rất lớn. Hiện tại, dựa trên các mã hoạt động BTC hiện có, kích thước script trình xác thực Groth16 và Fflonk đã được tối ưu hóa đều vượt quá 2GB, trong khi kích thước của một khối BTC duy nhất chỉ là 4MB, do đó không thể chạy toàn bộ script trình xác thực trong một khối duy nhất. Tuy nhiên, kể từ khi nâng cấp Taproot, BTC hỗ trợ thực thi script thông qua tapleaf, điều này cho phép script trình xác thực được chia thành nhiều khối, mỗi khối được xây dựng như một tapleaf để xây dựng taptree. Sự nhất quán giữa các khối có thể được đảm bảo thông qua cam kết bit.
Trong trường hợp hợp đồng OP_CAT, trình xác minh STARK có thể chia thành nhiều giao dịch tiêu chuẩn nhỏ hơn 400KB, từ đó cho phép việc xác minh bằng chứng hợp lệ của toàn bộ STARK được thực hiện mà không cần phải hợp tác với Người khai thác.
Phần này sẽ tập trung giới thiệu về kỹ thuật tách rời BTC script trong điều kiện hiện tại mà không đưa ra hoặc kích hoạt bất kỳ mã hoạt động mới nào.
Trong quá trình phân tách script, cần cân nhắc thông tin từ một số phương diện sau:
Hiện tại, phương pháp tách kịch bản có thể chia thành ba loại sau đây:
Ví dụ, sau nhiều vòng tối ưu hóa, kích thước kịch bản của nhà xác thực Groth16 đã được giảm từ khoảng 7GB Thả xuống còn khoảng 1.26GB. Ngoài việc tối ưu tính toán tổng thể, mỗi khối cũng có thể được tối ưu riêng để tận dụng tối đa không gian ngăn xếp. Ví dụ, bằng cách áp dụng thuật toán bảng tra cứu hiệu quả hơn và tải và gỡ bỏ bảng tra cứu theo cách động, kích thước kịch bản của mỗi khối có thể được giảm thêm.
Vì chi phí tính toán và môi trường chạy của ngôn ngữ lập trình Web2 khác hoàn toàn so với kịch bản BTC, do đó, việc chuyển đổi đơn giản các thuật toán hiện có sang kịch bản BTC không khả thi. Do đó, cần xem xét tối ưu hóa cụ thể cho tình huống BTC:
Bài viết này đầu tiên thảo luận về giới hạn của kịch bản BTC và thảo luận về một số giải pháp: sử dụng cam kết BTC để vượt qua giới hạn trạng thái không có của UTXO, sử dụng Taproot để vượt qua giới hạn không gian kịch bản, bằng cách kết nối đầu ra để vượt qua giới hạn phương pháp chi UTXO, và giải quyết giới hạn của chữ ký trước bằng hợp đồng. Tiếp theo, bài viết tổng quan toàn diện về đặc điểm của bằng chứng gian lận và bằng chứng hợp lệ, bao gồm đặc điểm của bằng chứng gian lận được cấp phép và không được cấp phép, sự khác biệt giữa một vòng và nhiều vòng của bằng chứng gian lận và các nội dung liên quan đến công nghệ phân tách kịch bản BTC.