Tiến gần hơn đến BTC: kiến thức nền tảng bạn cần hiểu về BitVM
Bài viết này sẽ giới thiệu những ý tưởng cơ bản về BitVM, tập lệnh Bitcoin và Segregated Witness.

Tác giả: Nickqiao & Faust Wang, geek web3
Tóm tắt:< / strong>Gần đây, Delphi Digital đã phát hành một báo cáo nghiên cứu kỹ thuật về lớp thứ hai của Bitcoin có tiêu đề "Bình minh của khả năng lập trình Bitcoin: Mở đường cho việc cuộn lên". Hệ thống đã sắp xếp một cách có hệ thống các vấn đề liên quan đến Bitcoin Rollup Các khái niệm cốt lõi, chẳng hạn như nhóm nhóm BitVM, các hạn chế của OP_CAT và Covenant, lớp DA sinh thái Bitcoin, cầu nối và bốn lớp Bitcoin thứ hai chính sử dụng BitVM, bao gồm Bitlayer, Citrea, Yona và Bob.
Mặc dù báo cáo nghiên cứu này nhìn chung cho thấy bức tranh chung về công nghệ lớp thứ hai của Bitcoin nhưng nhìn chung nó vẫn chung chung và thiếu mô tả chi tiết. Con người hình như hiểu mà không hiểu. Geek web3 đã tiến hành khai thác chuyên sâu trên diện rộng dựa trên các báo cáo nghiên cứu của Delphi, cố gắng giúp nhiều người hiểu được BitVM và các công nghệ khác một cách có hệ thống.
Chúng tôi sẽ cùng ra mắt một loạt chuyên mục có tên "Tiếp cận BTC" với nhóm nghiên cứu Bitlayer và cộng đồng BitVM Trung Quốc, tập trung vào BitVM, OP_CAT và Phổ biến khoa học về các chủ đề chính như cầu nối chuỗi chéo Bitcoin,cam kết phổ biến các công nghệ liên quan đến lớp thứ hai của Bitcoin đến với nhiều người hơn và mở đường cho nhiều người đam mê hơn.
Văn bản:Vài tháng trước, người đứng đầu ZeroSyncRobin Linus đã phát hành một blog có tiêu đề "" chính thức đề xuất khái niệm về BitVM và thúc đẩy sự tiến bộ của công nghệ lớp thứ hai của Bitcoin. Có thể nói đây là một trong những đổi mới mang tính cách mạng nhất trong hệ sinh thái Bitcoin, nó đã làm bùng nổ toàn bộ hệ sinh thái lớp thứ hai Bitcoin, thu hút sự tham gia của các dự án ngôi sao như Bitlayer, Citrea, BOB, v.v. và mang lại sức sống cho nó. toàn bộ thị trường.
Sau đó,nhiều nhà nghiên cứu hơn đã tham gia cải tiến BitVM và liên tiếp tung ra các phiên bản lặp khác nhau như BitVM1, BitVM2, BitVMX và BitSNARK. Tình hình chung như sau:
Sách trắng về triển khai BitVM được Robin Linus đề xuất lần đầu tiên vào năm ngoái là một triển khai BitVM dựa trên các mạch cổng logic hư cấu, được gọi là BitVM0;
Robin Linus cũng đề xuất BitVM2, một bước không cần cấp phép một bước -giao thức chống gian lận tương tác.
Các thành viên của Rootstock Labs và Fairgate Labs đã phát hành sách trắng BitVMX , Tương tự như BitVM1, họ hy vọng có thể mô phỏng tác động của CPU đa năng (ngoài chuỗi) thông qua các tập lệnh Bitcoin.
Hiện tại, việc xây dựng hệ sinh thái nhà phát triển liên quan đến BitVM ngày càng trở nên phổ biến rõ ràng và sự phát triển của các công cụ ngoại vi Các cải tiến lặp đi lặp lại cũng có thể nhìn thấy bằng mắt thường. So với năm ngoái, hệ sinh thái BitVM ngày nay đã trở nên "mơ hồ" ngay từ "lâu đài trên không" ban đầu, điều này cũng ngày càng thu hút nhiều nhà phát triển hơn. và các nhà đầu tư mạo hiểm lao vào hệ sinh thái Bitcoin.
Nhưng đối với hầu hết mọi người, không dễ để hiểu các thuật ngữ kỹ thuật liên quan đến BitVM và lớp thứ hai của Bitcoin, vì trước tiên bạn phải hiểu Have xung quanh sự hiểu biết có hệ thống về kiến thức cơ bản, đặc biệt là kiến thức nền tảng như tập lệnh Bitcoin và Taproot. Các tài liệu tham khảo hiện có trên Internet hoặc quá dài và đầy những điều vô nghĩa, hoặc giải thích chưa thấu đáo, khiến người ta tưởng chừng như hiểu nhưng lại không hiểu. Chúng tôi cam kết giải quyết các vấn đề trên và cố gắng sử dụng ngôn ngữ rõ ràng nhất có thể để giúp nhiều người hiểu được kiến thức xung quanh lớp thứ hai của Bitcoin và thiết lập sự hiểu biết có hệ thống về hệ thống BitVM.
MATT và Cam kết: Ý tưởng cơ bản của BitVM
Trước hết, chúng tôi muốn nhấn mạnh rằng ý tưởng cơ bản của BitVM là MATT, có nghĩa là Merkleize All The Things chủ yếu đề cập đến việc hiển thị quy trình thực thi chương trình phức tạp thông qua cấu trúc lưu trữ dữ liệu dạng cây như Merkle Tree và cố gắng tạo bằng chứng gian lận xác minh của Bitcoin Native.
Mặc dù MATT có thể thể hiện một chương trình phức tạp và dấu vết xử lý dữ liệu của nó, nhưng nó sẽ không trực tiếp xuất bản những dữ liệu này trên chuỗi BTC vì quy mô tổng thể của những dữ liệu này rất lớn. lớn. Giải pháp sử dụng MATT chỉ lưu trữ dữ liệu ngoài chuỗi của cây Merkle và chỉ xuất bản bản tóm tắt hàng đầu (Merkle Root) của cây Merkle lên chuỗi. Cây Merkle này chủ yếu chứa ba nội dung cốt lõi:
· Mã tập lệnh hợp đồng thông minh
· Dữ liệu được yêu cầu bởi hợp đồng
· Dữ liệu còn lại trong quá trình thực hiện hợp đồng Dấu vết ( bản ghi các thay đổi đối với bộ nhớ và CPU đăng ký khi hợp đồng thông minh được thực thi trong các máy ảo như EVM)
(Một sơ đồ cây Merkle Tree đơn giản có Merkle Root được hiển thị trong hình 8 đoạn dữ liệu ở giữa và dưới cùng được tính toán thông qua hàm băm nhiều lớp)
Theo sơ đồ MATT, chỉ có Merkle Root rất nhỏ Được lưu trữ trên chuỗi, tập dữ liệu hoàn chỉnh có trong Cây Merkle được lưu trữ ngoài chuỗi, chuỗi này sử dụng ý tưởng gọi là "cam kết". Dưới đây là giải thích về “Cam kết” là gì.
Một lời hứa tương tự như một tuyên bố ngắn gọn Chúng ta có thể hiểu nó như một "dấu vân tay" thu được bằng cách nén một lượng lớn dữ liệu. . Nói chung, người đưa ra "cam kết" trên chuỗi sẽ khẳng định rằng một số dữ liệu nhất định được lưu trữ ngoài chuỗi là chính xác. Những dữ liệu ngoài chuỗi này phải tương ứng với một tuyên bố ngắn gọn và tuyên bố này là "cam kết".
Tại một thời điểm nào đó, hàm băm của dữ liệu có thể được sử dụng làm "cam kết" đối với chính dữ liệu đó. Các sơ đồ cam kết khác bao gồm cam kết KZG hoặc Cây Merkle. Trong giao thức chống gian lận thông thường của Layer2, nhà xuất bản dữ liệusẽ xuất bản tập dữ liệu hoàn chỉnh ngoài chuỗi và cam kết xuất bản tập dữ liệu trên chuỗi. Nếu ai đó phát hiện ra dữ liệu không hợp lệ trong tập dữ liệu ngoài chuỗi, cam kết dữ liệu trên chuỗi sẽ bị thách thức.
Thông qua cam kết (Commitment), lớp thứ hai có thể nén một lượng lớn dữ liệu và chỉ công bố "cam kết" của mình trên chuỗi Bitcoin. Tất nhiên, cũng cần phải đảm bảo rằng bộ dữ liệu hoàn chỉnh được phát hành ngoài chuỗi có thể được thế giới bên ngoài quan sát được.
Các giải pháp BitVM chính hiện nay như BitVM0, BitVM1, BitVM2 và BitVMX về cơ bản áp dụng các cấu trúc trừu tượng tương tự:
1. Phân tách và cam kết chương trình:Trước tiên, hãy phân tách chương trình phức tạp thành một số lượng lớn các mã hoạt động cơ bản hơn (biên dịch), sau đó ghi lại các dấu vết do các mã hoạt động này tạo ra trong quá trình thực thi cụ thể . (Nói một cách thẳng thắn, khi một chương trình đang chạy trong CPU và bộ nhớ, toàn bộ bản ghi thay đổi trạng thái được gọi là Trace). Sau đó, chúng tôi sắp xếp tất cả dữ liệu, bao gồm dấu vết và mã hoạt động, thành một tập dữ liệu, sau đó tạo cam kết cho tập dữ liệu đó.
Các giải pháp cam kết cụ thể có thể có nhiều dạng, chẳng hạn như: Cây Merkle, PIOP (các thuật toán ZK khác nhau), hàm băm
2. Cầm cố tài sản và ký trước: Nhà xuất bản và người xác minh dữ liệu cần khóa một lượng tài sản nhất định trên chuỗi thông qua ký trước và sẽ có những hạn chế. Các điều kiện này sẽ được kích hoạt cụ thể cho các tình huống có thể xảy ra trong tương lai. Nếu nhà xuất bản dữ liệu làm điều xấu, người xác minh có thể gửi chứng chỉ để lấy đi tài sản của nhà xuất bản dữ liệu
3.Xuất bản dữ liệu và cam kết:Nhà xuất bản dữ liệu xuất bản cam kết trên chuỗi, bộ dữ liệu hoàn chỉnh được xuất bản ngoài chuỗi và người xác thực truy xuất tập dữ liệu và kiểm tra xem có lỗi nào không. Mọi phần của tập dữ liệu ngoài chuỗi đều có mối tương quan với cam kết trên chuỗi.
4. Thách thức và hình phạt: Khi người xác minh phát hiện ra rằng có lỗi trong dữ liệu do nhà xuất bản dữ liệu cung cấp , nó sẽ Một phần dữ liệu được xác minh trực tiếp trên chuỗi (phần dữ liệu này trước tiên phải được cắt thật tinh xảo). Đây là logic của bằng chứng gian lận. Nếu kết quả xác minh cho thấy nhà xuất bản dữ liệu thực sự đã cung cấp dữ liệu không hợp lệ ngoài chuỗi, thì nội dung của nó sẽ bị người xác thực thách thức anh ta lấy đi.
Tóm lại,nhà xuất bản dữ liệu Alice tiết lộ tất cả dấu vết được tạo trong quá trình thực hiện giao dịch lớp thứ hai ngoài chuỗi và công bố các cam kết tương ứng với chuỗi vượt trội. Nếu bạn muốn chứng minh rằng một phần dữ liệu nhất định là sai, trước tiên hãy chứng minh với nút Bitcoin rằng phần dữ liệu này có liên quan đến cam kết trên chuỗi, nghĩa là chứng minh rằng dữ liệu được chính Alice tiết lộ và sau đó hãy để nút Bitcoin xác nhận rằng phần dữ liệu này sai.
Bây giờ chúng ta đã hiểu đại khái về ý tưởng tổng thể của BitVM và tất cả các biến thể BitVM về cơ bản không thể tách rời khỏi mô hình trên. Vì vậy, tiếp theo, chúng ta hãy bắt đầu tìm hiểu và hiểu một số công nghệ quan trọng được sử dụng trong quy trình trên, bắt đầu với các tập lệnh Bitcoin cơ bản nhất, Taproot và ký trước.
Bitcoin Script là gì
Kiến thức liên quan đến Bitcoin còn nhiều hơn thế khó hiểu hơn Ethereum. Ngay cả hành vi chuyển tiền cơ bản nhất cũng liên quan đến một loạt khái niệm, bao gồm UTXO (đầu ra giao dịch chưa được xác định), tập lệnh khóa (còn được gọi là ScriptPubKey) và tập lệnh mở khóa (còn được gọi là ScriptSig). Trước tiên hãy giải thích những khái niệm chính này.
(Ví dụ về mã tập lệnh Bitcoin bao gồm các mã hoạt động cấp thấp hơn ngôn ngữ cấp cao )
Ethereum Cách thể hiện tài sản giống Alipay hoặc WeChat hơn. Mỗi lần chuyển chỉ cần cộng và trừ số dư của các tài khoản khác nhau. Phương pháp này tập trung vào tài khoản và số dư tài sản chỉ là một con số dưới tên tài khoản của Bitcoin. Giống như vàng, mỗi miếng vàng (UTXO) sẽ được đánh dấu chủ sở hữu của nó. Việc chuyển giao thực chất sẽ phá hủy UTXO cũ và tạo ra UTXO mới (chủ sở hữu sẽ thay đổi).
Bitcoin UTXO chứa hai trường chính:
Số tiền, tính bằng "satoshi" (một trăm triệu satoshi là một BTC);
Khóa tập lệnh, còn được gọi là Khóa "tập lệnh công ty" (ScriptPubKey)" sẽ xác định các điều kiện mở khóa của UTXO.
Cần lưu ý rằng quyền sở hữu Bitcoin UTXO được thể hiện thông qua tập lệnh khóa. Nếu bạn muốn sở hữu. Nếu bạn chuyển UTXO cho Sam, bạn có thể bắt đầu một lệnh khóa. giao dịch để hủy một trong các UTXO của riêng bạn và viết điều kiện mở khóa của UTXO mới được tạo là "Chỉ Sam mới có thể mở khóa."
Sau đó, Nếu Sam muốn sử dụng số Bitcoin này, anh ấy cần gửi tập lệnh mở khóa (ScriptSig). Sam cần Hiển thị chữ ký số của bạn để chứng minh rằng bạn là Sam. Nếu tập lệnh mở khóa khớp với tập lệnh khóa nói trên, Sam có thể mở khóa và chuyển bitcoin cho người khác.
(Tập lệnh mở khóa phải khớp với tập lệnh khóa)
Từ quan điểm trình bày,bit Mỗi giao dịch trên chuỗi tiền tệ tương ứng với nhiều Đầu vào và Đầu ra. Trong mỗi Đầu vào, bạn phải khai báo một UTXO nhất định mà bạn muốn mở khóa và gửi tập lệnh mở khóa để mở khóa và hủy UTXO; tiết lộ nội dung của tập lệnh khóa ra thế giới bên ngoài.
Ví dụ: khi nhập giao dịch, bạn chứng minh rằng mình là Sam, mở khóa nhiều UTXO do người khác cung cấp cho bạn, tiêu diệt chúng một cách thống nhất và tạo ra nhiều UTXO UTXO mới tuyên bố rằng xxx sẽ được mở khóa trong tương lai.
Cụ thể, trong Dữ liệu đầu vào của giao dịch, bạn phải khai báo những UTXO nào bạn muốn mở khóa và cho biết "vị trí lưu trữ" của những dữ liệu UTXO này. Cần lưu ý ở đây rằng Bitcoin và Ethereum hoàn toàn khác nhau. Ethereum cung cấp hai loại tài khoản: tài khoản hợp đồng và tài khoản EOA để lưu trữ dữ liệu. Số dư tài sản được ghi dưới dạng số dưới tên tài khoản hợp đồng hoặc tài khoản EOA. được đặt trong một tệp thống nhất có tên "Thế giới Trong cơ sở dữ liệu của "Trạng thái thế giới", các tài khoản cụ thể có thể được sửa đổi trực tiếp từ "Trạng thái thế giới" khi truyền, để tạo điều kiện thuận lợi cho việc định vị vị trí lưu trữ dữ liệu;
Bitcoin không có thế giới Do thiết kế trạng thái, dữ liệu tài sản được lưu trữ phân tán trong các khối trước đó (nghĩa là dữ liệu UTXO đã mở khóa được lưu trữ riêng trong Đầu ra của mỗi giao dịch ).
Nếu bạn muốn mở khóa UTXO, bạn phải cho biết Đầu ra của giao dịch nào có thông tin UTXO tồn tại trong quá khứ, hiển thị ID của giao dịch (là hàm băm của giao dịch đó) và để nút Bitcoin Tìm kiếm trong lịch sử. Nếu bạn muốn truy vấn số dư Bitcoin của một địa chỉ nhất định, bạn cần duyệt qua tất cả các khối ngay từ đầu để tìm UTXO đã mở khóa được liên kết với địa chỉ xx.
Khi bạn thường sử dụng ví Bitcoin, bạn có thể nhanh chóng kiểm tra số dư Bitcoin thuộc sở hữu của một địa chỉ nhất định. Điều này nhiều khi là do dịch vụ ví tự quét các khối. kiểm tra tất cả các địa chỉ. Một chỉ mục đã được tạo để hỗ trợ truy vấn nhanh chóng của chúng tôi.
(Khi bạn tạo một tuyên bố giao dịch để cung cấp UTXO của mình cho người khác, bạn phải đánh dấu vị trí của UTXO trong lịch sử Bitcoin dựa trên mã băm/ID giao dịch mà các UTXO này thuộc về)< /p>
Thật thú vị, kết quả của giao dịch Bitcoin được tính toán ngoài chuỗi, khi người dùng tạo giao dịch trên thiết bị cục bộ của họ, đó là cần thiết để trực tiếp tạo ra tất cả các đầu vào và đầu ra, tương đương với việc tính toán kết quả đầu ra của giao dịch. Các giao dịch được phát lên mạng Bitcoin và được các nút xác minh trước khi đưa vào chuỗi. Mô hình "tính toán ngoài chuỗi - xác minh trên chuỗi" này hoàn toàn khác với Ethereum, bạn chỉ cần cung cấp các tham số đầu vào giao dịch và kết quả giao dịch sẽ được nút Ethereum tính toán và xuất ra. .
Ngoài ra, Tập lệnh khóa của UTXO có thể được tùy chỉnh Bạn có thể đặt UTXO thành “một mức nhất định "Có thể mở khóa bởi chủ sở hữu Bitcoin. địa chỉ", chủ sở hữu địa chỉ cần cung cấp chữ ký số và khóa chung (P2PKH). Trong Loại giao dịch Pay-to-Script-Hash (P2SH), bạn có thể thêm Hash Script trong tập lệnh khóa UTXO. Ai có thể gửi hình ảnh gốc của tập lệnh tương ứng với Hash này và đáp ứng tập lệnh UTXO. có thể được mở khóa dựa trên các điều kiện đặt trước trong ảnh gốc. Tập lệnh Taproot mà BitVM dựa vào sử dụng các tính năng tương tự như P2SH.
Cách kích hoạt tập lệnh Bitcoin
Ở đây, trước tiên chúng tôi sử dụng P2PKH làm ví dụ để giới thiệu phương pháp kích hoạt tập lệnh Bitcoin. Chỉ bằng cách hiểu phương pháp kích hoạt của nó, chúng tôi mới có thể hiểu được Taproot và BitVM phức tạp hơn. Tên đầy đủ của P2PKH là "Trả tiền cho hàm băm khóa công khai". Theo sơ đồ này, hàm băm khóa công khai sẽ được đặt trong tập lệnh khóa UTXO. Khi mở khóa, bạn cần gửi khóa chung tương ứng với hàm băm. Điều này khác với việc chuyển Bitcoin thông thường. Về cơ bản, các ý tưởng đều giống nhau.
Tại thời điểm này, nút Bitcoin phải xác nhận rằng khóa chung trong tập lệnh mở khóa khớp với hàm băm khóa chung được chỉ định trong tập lệnh khóa, / mạnh>Nói cách khác, đảm bảo rằng "khóa" do trình mở khóa gửi và "khóa" được đặt trước bởi UTXO khớp với nhau.
Hơn nữa, theo sơ đồ P2PKH, sau khi nút Bitcoin nhận được giao dịch, nó sẽ kết hợp tập lệnh mở khóa ScriptSig do người dùng cung cấp với tập lệnh mở khóa để được mở khóa. Tập lệnh khóa UTXO ScriptPubkey được ghép lại với nhau và thực thi trong môi trường thực thi của tập lệnh BTC. Hình sau đây hiển thị kết quả ghép nối trước khi thực hiện:
Có thể bạn đọc chưa biết về môi trường thực thi script của BTC. Sau đây chúng tôi sẽ giới thiệu sơ lược về nó. Đầu tiên, tập lệnh BTC chứa hai thành phần:
dữ liệu và opcode. Các dữ liệu và mã thao tác này sẽ được đẩy vào ngăn xếp theo thứ tự từ trái sang phải và thực thi theo logic đã chỉ định để thu được kết quả cuối cùng (chi tiết về ngăn xếp là gì sẽ không được trình bày chi tiết tại đây. Bạn đọc có thể chatgpt tự họ làm).
Lấy hình trên làm ví dụ, phía bên trái là đoạn mã mở khóa ScriptSig do ai đó tải lên, bao gồm chữ ký số và khóa chung của người đó, strong> và Tập lệnh khóa ScriptPubkey ở bên phải chứa opcode và dữ liệudo người tạo UTXO đặt khi tạo UTXO (ở đây chúng ta không cần hiểu ý nghĩa của từng opcode, chỉ cần hiểu khái quát thôi) mạnh> .
DUP, HASH160, EQUALVERIFY và các mã hoạt động khác trong tập lệnh khóa ở bên phải trong hình trên chịu trách nhiệm tìm nạp Khóa công khai có trong tập lệnh mở khóa ở bên trái. Hash, so sánh nó với hàm băm khóa công khai đặt trước trong tập lệnh khóa. Nếu cả hai bằng nhau, điều đó có nghĩa là khóa chung được tải lên trong tập lệnh mở khóa khớp với hàm băm khóa chung đặt trước trong tập lệnh khóa. bước đầu tiên xác minh.
Tuy nhiên, có một vấn đề. Nội dung của tập lệnh khóa UTXO thực sự được công khai trên chuỗi và bất kỳ ai cũng có thể quan sát hàm băm khóa chung có trong đó. Bất kỳ ai cũng có thể tải khóa công khai tương ứng lên và tuyên bố sai rằng mình là người được "chỉ định". Do đó, sau khi xác minh khóa chung và hàm băm khóa chung, cũng cần xác minh xem người khởi tạo giao dịch có thực sự là người kiểm soát khóa chung hay không, điều này yêu cầu xác minh chữ ký số. Mật mã CHECKSIG trong tập lệnh khóa có nhiệm vụ xác minh chữ ký số.
Tóm lại, theo sơ đồ P2PKH, tập lệnh mở khóa do người khởi tạo giao dịch gửi chứa khóa chung và chữ ký số, và khóa chung phải giống với khóa. Mã băm khóa công khai được chỉ định trong tập lệnh khớp và chữ ký số của giao dịch là chính xác. Chỉ khi đáp ứng các điều kiện này thì UTXO mới có thể được mở khóa thành công.
(Bức ảnh này rất động: sơ đồ của kịch bản mở khóa Bitcoin theo sơ đồ P2PKH
Nguồn: / mạnh>https://learnmeabitcoin.com/technology/script )
Tất nhiên, mạng Bitcoin hỗ trợ nhiều loại giao dịch, không chỉ Trả tiền cho khóa công khai/băm khóa chung mà còn cả P2SH (Trả tiền cho tập lệnh băm), v.v.Mọi thứ phụ thuộc vào tùy chỉnh khi UTXO được tạo. tập lệnh khóa được đặt thành.
Ở đây cần lưu ý rằng theo sơ đồP2SH, Băm tập lệnh có thể được đặt trước trong tập lệnh khóa và tập lệnh mở khóa yêu cầu gửi đầy đủ nội dung tập lệnh tương ứng với Tập lệnh băm. Các nút bitcoin có thể thực thi tập lệnh này.Nếu logic xác minh đa chữ ký được xác định trong tập lệnh này, thì hiệu ứng của ví đa chữ ký có thể đạt được trên chuỗi Bitcoin.
Tất nhiên, theo sơ đồ P2SH, người tạo UTXO muốn những người mở khóa UTXO trong tương lai biết trước nội dung tập lệnh tương ứng với Script Hash, miễn là cả hai bên đều biết nội dung của Tập lệnh này thì chúng ta có thể triển khai logic nghiệp vụ phức tạp hơn so với việc ký nhiều chữ.
Một điều cần lưu ý ở đây là chuỗi (khối) Bitcoin không ghi trực tiếp UTXO nào được liên kết với địa chỉ nào. Nó chỉ ghi lại UTXO nào. có thể là Hash khóa công khai/băm tập lệnh nào được mở khóa, nhưng chúng ta có thể nhanh chóng tính toán địa chỉ tương ứng dựa trên hàm băm khóa công khai/băm tập lệnh (phần hiển thị trên giao diện ví trông giống như các ký tự bị cắt xén).
Lý do tại sao chúng tôi có thể thấy số lượng xx Bitcoin dưới địa chỉ xx trên giao diện ví và block explorer là vì dự án block explorer và ví giúp bạn sau khi phân tích dữ liệu này , tất cả các khối sẽ được quét và "địa chỉ" tương ứng sẽ được tính toán dựa trên hàm băm/băm tập lệnh khóa công khai được khai báo trong tập lệnh khóa và sau đó số Bitcoin dưới tên của địa chỉ xx sẽ được hiển thị.
Nhân chứng và nhân chứng tách biệt
Khi chúng ta hiểu P2SH After nghĩ về điều đó, chúng ta đang tiến gần hơn một bước tới Taproot, thứ mà BitVM dựa vào. Nhưng trước đó, chúng ta cần hiểu một khái niệm quan trọng: Nhân chứng và Nhân chứng tách biệt.
Xem lại script mở khóa và script khóa được đề cập trước đó, cũng như quy trình mở khóa UTXO, bạn sẽ thấy một vấn đề: chữ ký số của giao dịch được bao gồm trong tập lệnh mở khóa và tập lệnh mở khóa được tạo không thể bị ghi đè khi ký (các tham số được sử dụng để tạo chữ ký không thể bao gồm chính chữ ký), do đó chữ ký số chỉ có thể bao gồm các phần không phải tập lệnh mở khóa, nghĩa là nó có thể chỉ được liên kết với phần chính của dữ liệu giao dịch không thể được bao phủ hoàn toàn.
Bằng cách này, ngay cả khi tập lệnh mở khóa giao dịch bị người trung gian thao túng một chút, nó sẽ không ảnh hưởng đến kết quả xác minh chữ ký. Ví dụ: các nút Bitcoin hoặc nhóm khai thác có thể chèn dữ liệu khác vào tập lệnh mở khóa của giao dịch, gây ra những thay đổi nhỏ trong dữ liệu giao dịch mà không ảnh hưởng đến xác minh chữ ký và kết quả giao dịch, đồng thời hàm băm giao dịch được tính toán cuối cùng/ID giao dịch sẽ cũng thay đổi. Điều này được gọi làVấn đề về khả năng linh hoạt trong giao dịch.
Nhược điểm của điều này là nếu bạn dự định bắt đầu nhiều giao dịch liên tiếp và có sự phụ thuộc vào trình tự (ví dụ: giao dịch 3 đề cập đến đầu ra của giao dịch 2, giao dịch 2 tham chiếu đầu ra của giao dịch 1), thì các giao dịch tiếp theo phải tham chiếu ID (băm) của giao dịch trước đó. Bất kỳ trung gian nào như nhóm khai thác hoặc nút Bitcoin đều có thể tinh chỉnh nội dung của tập lệnh mở khóa để sau giao dịch. được tải lên chuỗi Hàm băm không nhất quán với những gì bạn mong đợi, khi đó nhiều giao dịch liên quan tuần tự mà bạn đã tạo trước sẽ không hợp lệ.
Trên thực tế, trong cầu nối DLC và giải pháp BitVM2, các giao dịch có tương quan tuần tự sẽ được xây dựng theo đợt nên tình huống nêu trên không phải là hiếm.
Nói một cách đơn giản, vấn đề về khả năng mở rộng giao dịch là do khi tính toán ID/băm giao dịch, dữ liệu của tập lệnh mở khóa sẽ được đưa vào và các trung gian như nút Bitcoin có thể tinh chỉnh nội dung của tập lệnh mở khóa , dẫn đến ID giao dịch không khớp với những gì người dùng mong đợi. Trên thực tế, đây là dấu vết lịch sử do sự thiếu cân nhắc kỹ lưỡng của Bitcoin trong thiết kế ban đầu để lại.
Bản nâng cấp Segregated Witness/SegWit được tung ra sau đó thực sự đã tách hoàn toàn ID giao dịch và tập lệnh mở khóa. Không cần phải tính toán giao dịch hash. Dữ liệu tập lệnh mở khóa cần được đưa vào. Tập lệnh khóa UTXO sau khi nâng cấp SegWit sẽ đặt một mã hoạt động có tên "OP_0" ở vị trí đầu tiên theo mặc định, đóng vai trò như một dấu hiệu; và tập lệnh mở khóa tương ứng đã được đổi tên từ SigScript thành Witness.
Sau khi tuân theo các quy tắc Segregated Witness, vấn đề về khả năng mở rộng giao dịch sẽ được giải quyết hợp lý và bạn không cần phải lo lắng về việc dữ liệu giao dịch được gửi đến nút Bitcoin sẽ được tinh chỉnh. Tất nhiên, chúng ta không cần phải suy nghĩ quá phức tạp. Chức năng của P2WSH về cơ bản không khác biệt so với P2SH đã đề cập trước đó. Bạn có thể đặt trước hàm băm tập lệnh trong tập lệnh khóa UTXO và đợi người gửi tập lệnh mở khóa gửi. nội dung tập lệnh tương ứng với hàm băm vào chuỗi và được thực thi.
Nhưng nếu nội dung của tập lệnh bạn muốn triển khai đặc biệt lớn và chứa nhiều mã thì tập lệnh hoàn chỉnh không thể được gửi tới Bitcoin thông qua các phương pháp thông thường Trên chuỗi(mỗi khối có giới hạn kích thước). Phải làm gì? Điều này yêu cầu Taproot hợp lý hóa nội dung tập lệnh trên chuỗi và BitVM là một giải pháp phức tạp được xây dựng dựa trên Taproot.
Bài viết này sẽ giới thiệu những ý tưởng cơ bản về BitVM, tập lệnh Bitcoin và Segregated Witness.
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.
BitVM, Lớp 2, BTC, IOSG |BitVM: Buổi bình minh của khả năng lập trình Bitcoin Golden Finance, sự mở rộng nhanh chóng của các kế hoạch mở rộng Bitcoin
BitVM2 là một biến thể táo bạo: bất kỳ ai cũng có thể đóng vai trò là người xác thực.
Mặc dù công nghệ BitVM có lợi thế lớn trong việc mở rộng Bitcoin nhưng nó vẫn đang ở giai đoạn đầu và vẫn còn một số vấn đề về hiệu quả và bảo mật.
Mục tiêu chính của thiết kế này là xây dựng mạng Lớp 2 được tùy chỉnh đặc biệt cho chuỗi khối Bitcoin.
Vậy làm cách nào để đưa một phần logic của Trình xác minh vào mạng Bitcoin?
BitVM tập trung vào việc nâng cao khả năng mở rộng của Bitcoin và giải quyết các hạn chế của Lightning Network mà không cần sao chép DeFi của Ethereum, duy trì các nguyên tắc và bảo mật cốt lõi của Bitcoin
BitVM, được giới thiệu bởi ZeroSync, nhằm mục đích nâng cao các hợp đồng thông minh của Bitcoin, làm cho nó trở nên biểu cảm và có khả năng hơn mà không cần nâng cấp đồng thuận