Liệu giai đoạn phân tách thứ ba, chứng kiến sự phát triển của TAP, có mở ra giai đoạn 2.0 của Bitcoin không?
- 核心观点:TAP协议为比特币实现图灵完备与无限扩容奠定基础。
- 关键要素:
- TAP协议提供无限数据空间与独立虚拟机。
- TAP与主网紧密相连,共享UTXO结构与共识。
- TAP-VM可遵循四阶段路径发展至图灵完备。
- 市场影响:推动比特币生态向更复杂应用扩展,与RGB等方案形成竞争。
- 时效性标注:长期影响
Tác giả gốc: Fu Shaoqing, SatoshiLab, Wanwudao BTC Studio
1. Giới thiệu
Sau khi viết xong bài viết "Hiểu rõ về Công nghệ Segregated Witness của Bitcoin và Ba bản nâng cấp phiên bản của nó", nó đã thôi thúc tôi phải suy nghĩ sâu sắc hơn.
Kể từ khi ra đời, Bitcoin đã và đang khám phá cả khả năng mở rộng quy mô lẫn tăng cường sức mạnh. Sự xuất hiện của TAP (Giao thức Tài sản Taproot) đã đặt nền tảng kiến trúc vững chắc và một lộ trình khả thi cho việc mở rộng quy mô và tăng cường sức mạnh của Bitcoin. Hiện tại, TAP cho phép mở rộng đến không gian dữ liệu vô hạn; vậy liệu việc tăng cường sức mạnh có thể đạt đến vô hạn, tức là đạt đến sự hoàn thiện của Turing hay không? Chúng tôi sẽ phân tích một số hướng đi lý thuyết và thực tiễn có thể khám phá. Nếu Bitcoin có thể đạt được khả năng mở rộng quy mô và tăng cường sức mạnh hoàn chỉnh, thì một kịch bản blockchain thống nhất sẽ xuất hiện. Quá trình này sẽ liên tục, lâu dài và đầy thách thức, đòi hỏi trí tuệ tập thể và kinh nghiệm thực tế. Chúng tôi hoan nghênh những cá nhân quan tâm thảo luận về vấn đề này và tham gia vào quá trình phát triển.
2. Lần cách ly thứ ba chứng kiến sự mở ra một cánh cửa mới.
Để bắt đầu với một kết luận đơn giản: cánh cửa mới được mở ra bởi Segregated Witness thứ ba chính là sự sẵn có của một không gian dữ liệu vô hạn, cho phép phát triển các máy ảo (VM) hoàn chỉnh theo chuẩn Turing.
Trước tiên, chúng ta hãy cùng xem xét những thay đổi quan trọng do công nghệ Segregated Witness thứ ba mang lại, sau đó xem xét sự phát triển tiếp theo của Bitcoin theo góc nhìn của các giao thức nhiều lớp.
2.1. Giao thức TaprootAssets đặt nền tảng gì?
Trong bài viết trước của tôi, "Hiểu rõ về Công nghệ Chứng kiến Phân tách của Bitcoin và Ba Phiên bản Nâng cấp", bạn có thể thấy quá trình khám phá ban đầu về OP_RETURN và ba phiên bản thay đổi tiếp theo của Chứng kiến Phân tách. Xem sơ đồ bên dưới:

Chúng ta sẽ thấy hai thay đổi quan trọng trong bản nâng cấp thứ ba của giao thức Segregated Witness (SegWit):
1. Đã đạt đến giới hạn về khả năng mở rộng – sử dụng không gian dữ liệu không giới hạn.

2. Kiến trúc tách biệt VM của BTCscript khỏi VM của TAP, tạo nền tảng kiến trúc tốt cho việc phát triển tính năng trong tương lai.
Có thể tự mình khám phá khả năng đạt được tính hoàn thiện của Turing trên mạng Bitcoin mà không ảnh hưởng đến mạng chính Bitcoin và quá trình khám phá này có thể được thực hiện theo cách dần dần.

Bài viết này sẽ phân tích tiềm năng mở rộng của Bitcoin. Nếu với sự hỗ trợ của công nghệ TAP, khả năng mở rộng và sức mạnh của Bitcoin có thể đạt được mục tiêu cuối cùng, nó sẽ đặt nền tảng vững chắc cho việc ứng dụng rộng rãi Bitcoin.
2.2. Sự phát triển của Bitcoin đòi hỏi phải có phương pháp thiết kế giao thức theo từng lớp.
Để Bitcoin đạt được tầm ảnh hưởng toàn cầu, nó phải có các kịch bản ứng dụng rộng lớn và hình thành một hệ sinh thái lớn. Đối với những hệ thống lớn và phức tạp như vậy, nhân loại đã sở hữu kinh nghiệm và phương pháp luận liên quan, cụ thể là triết lý thiết kế phân lớp. Các giao thức như TCP/IP đã cung cấp các ví dụ ứng dụng tuyệt vời và những bài học quý giá.
Bài viết của tôi, "Tổng quan Toàn diện về Nguyên tắc Cơ bản của Xây dựng Bitcoin Lớp 2 (V2.0)", cung cấp mô tả chi tiết hơn về giao thức phân lớp. Thiết kế phân lớp là một phương pháp và cách tiếp cận để con người xử lý các hệ thống phức tạp. Bằng cách chia hệ thống thành nhiều lớp và xác định mối quan hệ cũng như chức năng giữa mỗi lớp, nó đạt được tính mô-đun, khả năng bảo trì và khả năng mở rộng, từ đó cải thiện hiệu quả thiết kế và độ tin cậy của hệ thống.
Ưu điểm của giao thức phân lớp: mỗi lớp độc lập, có tính linh hoạt tốt, có thể tách biệt về mặt cấu trúc, dễ triển khai và bảo trì, đồng thời thúc đẩy chuẩn hóa .
Thiết kế mô-đun phân lớp là một phương pháp phổ biến trong lĩnh vực công nghệ để xử lý các dự án kỹ thuật quy mô lớn đòi hỏi sự hợp tác giữa nhiều người và cải tiến liên tục. Đây là một phương pháp đã được chứng minh và hiệu quả. Giao thức TCP/IP là một ví dụ điển hình về một giao thức phân lớp quy mô lớn thành công trong lịch sử loài người, nền tảng mà toàn bộ Internet được xây dựng dựa trên.

Web3.0 tương lai (còn được gọi là Internet of Value) sẽ được xây dựng trên một mạng lưới với Bitcoin là lớp đầu tiên. Khái niệm thiết kế phân lớp của Bitcoin đã được phát triển ban đầu. Đã có một số ví dụ mang tính thăm dò về kiến trúc Lớp 2, điển hình là Lớp 2 dựa trên blockchain và Lớp 2 dựa trên hệ thống phân tán (như Lightning Network), cũng như RGB dựa trên giao thức LNP/BP. Khi RGB dựa trên giao thức BP, nó là kiến trúc Lớp 2; khi nó dựa trên giao thức LNP, nó là kiến trúc Lớp 3.

Tuy nhiên, những thay đổi mà TAP mang lại lần này không giống một giao thức phân lớp mà giống như sự tiến hóa từ phiên bản 1.0 lên 2.0 của một thứ gì đó. Điều này là do giao thức TAP và mạng chính Bitcoin rất giống nhau và có sự kết nối chặt chẽ, như được chứng minh bằng các điểm sau:
1. Về mặt cấu trúc dữ liệu, TAP cũng áp dụng cấu trúc UTXO giống như mainnet, được gọi là vUTXO. Việc tạo, chuyển giao, hợp nhất và chia tách các vUTXO này nhất quán với mainnet Bitcoin, và việc hoán đổi phi tập trung có thể thực hiện được với các UTXO của mainnet. Từ vByte trong SegWit đến vUTXO trong TAP, đây là sự tiếp nối và phát triển của cùng một triết lý thiết kế.
2. Về mặt loại địa chỉ và lệnh tập lệnh được thực thi, TAP cũng duy trì mức độ tương đồng cao với mạng chính Bitcoin, và kiến trúc của nó cho phép mở rộng. Nó không chỉ có thể khôi phục các lệnh bị mạng chính Bitcoin bỏ qua mà còn có thể thêm các lệnh mới khi cần thiết. Hơn nữa, các lệnh này được thực thi trong một máy ảo (VM) riêng biệt.
3. Nó sử dụng giao thức đồng thuận của mạng chính Bitcoin. Mặc dù TAP đã đạt được nhiều đột phá về khả năng mở rộng và sức mạnh, nhưng nó không phải là một blockchain độc lập hay một hệ thống bên ngoài độc lập. Mọi thay đổi của nó đều yêu cầu sử dụng giao thức đồng thuận của mạng chính Bitcoin, và nó là một phần mở rộng dựa trên mạng chính Bitcoin để hoạt động.
Do đó, khi thiết kế các chức năng liên quan đến TAP, chúng tôi đã áp dụng phương pháp giao thức phân lớp để xem xét giao thức TAP và xử lý phân công lao động trong tổ chức. Tuy nhiên, xét từ góc độ phát triển của sự vật, chúng tôi tin rằng việc xem xét sự thay đổi này như sự phát triển của BTC2.0 sẽ giúp duy trì mối quan hệ chặt chẽ và sự phụ thuộc giữa hai bên, đồng thời giúp việc phối hợp và sắp xếp các nguồn lực cần thiết cho việc phát triển BTC2.0 dễ dàng hơn.
Nếu chúng ta phân tích giao thức RGB từ ba góc nhìn trên, chúng ta có thể thấy sự khác biệt. Giao thức RGB hoàn toàn không có đặc điểm 1 và 2, và chỉ có điểm tương đồng trong việc sử dụng giao thức đồng thuận của mạng chính Bitcoin. Điều này xác định rằng RGB là một giao thức hoàn toàn phân lớp, chứ không phải là sự tiếp nối của mạng chính Bitcoin.
3. BTC 1.0 và BTC 2.0
Những thay đổi đáng kể do giao thức TAP mang lại đã tạo nên nền tảng vững chắc và điểm khởi đầu cho sự phát triển mới của Bitcoin. Như phân tích ở phần trước đã chỉ ra, mạng chính Bitcoin phụ thuộc chặt chẽ vào TAP. Trong bài viết này, tôi sẽ sử dụng BTC1.0 và BTC2.0 để phân biệt mạng chính Bitcoin với sự mở rộng và thay đổi của mạng lưới Bitcoin do TAP tạo ra.
3.1. Định nghĩa cơ bản
Ở đây, chúng tôi định nghĩa BTC1.0 là sự phát triển trên mạng chính Bitcoin; mọi thay đổi và khám phá trên mạng chính Bitcoin đều nằm trong phạm vi của BTC1.0. Trước khi công nghệ TAP ra đời, hầu hết các khám phá đều dựa trên BTC1.0. Điều này bao gồm nhiều nhánh Bitcoin khác nhau, cũng nhằm mục đích xác minh một số khả năng của BTC1.0.
BTC2.0 được định nghĩa là việc khám phá bên ngoài mạng chính Bitcoin, đặc biệt là các giao thức như TAP (và có thể là các giao thức tương tự khác trong tương lai). Phạm vi này không liên quan đến việc thay đổi mạng chính Bitcoin; nó chủ yếu tập trung vào việc khám phá khả năng mở rộng và tăng cường sức mạnh bên ngoài mạng chính Bitcoin, tuy nhiên, nó phụ thuộc rất nhiều vào giao thức đồng thuận và các tính năng cơ bản của mạng chính Bitcoin. Mối quan hệ của nó với mạng chính Bitcoin cực kỳ chặt chẽ, khiến việc tách biệt khỏi quá trình phát triển Bitcoin bằng một khái niệm độc lập trở nên khó khăn.
3.2. Cách phân biệt
Nguyên tắc phát triển của BTC 1.0 là duy trì các đặc điểm cơ bản của mạng chính Bitcoin, chẳng hạn như phi tập trung, chống kiểm duyệt và quyền riêng tư, đảm bảo hoạt động an toàn và ổn định của mạng chính Bitcoin. Nếu nguyên tắc phát triển này không được mô tả rõ ràng hoặc phân biệt, chúng ta nên xem xét các đặc điểm mà giao thức cấp thấp nhất nên có từ góc độ giao thức phân lớp. Xem xét các đặc điểm của giao thức cấp thấp nhất, hầu như mọi nỗ lực mở rộng các lệnh và đạt được tính toán Turing-complete đều không tuân thủ nguyên tắc phát triển của BTC 1.0. Theo góc độ của các nguyên tắc biên dịch, mọi nỗ lực phát triển máy ảo lên giai đoạn thứ hai (giới thiệu các nhánh trạng thái và có điều kiện) cũng không phù hợp với nguyên tắc. Hơn nữa, từ tiêu chuẩn này, việc cắt tỉa các lệnh trong lịch sử của Bitcoin nhằm mục đích duy trì tiêu chuẩn BTC 1.0 nghiêm ngặt hơn.
Nguyên tắc phát triển của BTC2.0 là đáp ứng tất cả các thay đổi mong muốn trên mạng chính Bitcoin mà vi phạm các nguyên tắc phát triển của BTC1.0. Ví dụ: mở rộng lệnh OP_CAT; mong muốn phát triển mạng chính Bitcoin thành một hệ thống Turing hoàn chỉnh. Nó cũng có thể được mô tả là bất kỳ yêu cầu mở rộng quy mô và tăng cường sức mạnh nào không phù hợp với mạng chính Bitcoin, có thể được triển khai trong BTC2.0.
Trong giao thức TAP, không gian đã được mở rộng đến vô cực xuyên suốt vũ trụ, chỉ còn lại câu hỏi liệu có nên phát triển TAP-VM thành một hệ thống Turing hoàn chỉnh hay không. Trong phần tiếp theo, chúng tôi sẽ chủ yếu phân tích khả năng phát triển TAP-VM thành một hệ thống Turing hoàn chỉnh và các giai đoạn có thể liên quan.
Lưu ý: TAP là một giao thức hoàn chỉnh, bao gồm TAP-VM, do đó thuật ngữ TAP sẽ được sử dụng trong nội dung sau.
- Các giai đoạn phát triển của TAP thành Turing đã hoàn tất.
Việc thảo luận về sự phát triển của TAP thành Turing hoàn chỉnh là một chủ đề rất chuyên sâu, liên quan đến kiến thức cốt lõi về ngôn ngữ lập trình và thiết kế máy ảo. Từ góc nhìn của lý thuyết trình biên dịch và lịch sử phát triển trình biên dịch, quá trình phát triển của máy ảo (VM) từ non-Turing hoàn chỉnh sang Turing hoàn chỉnh thường bao gồm một quá trình chuyển đổi từ đơn giản sang phức tạp, từ an toàn sang mạnh mẽ, và từ chuyên biệt sang đa năng . (Câu này sẽ được lặp lại nhiều lần trong bài viết này.)
Từ phân tích lý thuyết về các nguyên lý biên dịch, một máy ảo chắc chắn có thể tiến hóa từ hệ thống non-Turing thành hệ thống Turing hoàn chỉnh. Điều này chỉ còn lại một câu hỏi: Liệu TAP có cần thiết phải tiến hóa thành một hệ thống Turing hoàn chỉnh hay không? (Câu hỏi này sẽ không được thảo luận trong bài viết này.)
Nếu TAP phải được phát triển đến mức hoàn thiện Turing, thì có thể tuân theo và học hỏi những quy trình và phương pháp nào từ quá trình phát triển của nó?
4.1. Tính hoàn chỉnh của Turing từ góc nhìn của các nguyên tắc biên dịch
Turing hoàn chỉnh: Một máy ảo hoặc ngôn ngữ lập trình có thể tính toán mọi bài toán tính toán được gọi là Turing hoàn chỉnh. Một hệ thống tính toán có thể tính toán mọi hàm tính toán được của Turing được gọi là Turing hoàn chỉnh. Một ngôn ngữ được gọi là Turing hoàn chỉnh có nghĩa là sức mạnh tính toán của nó tương đương với một Máy Turing Phổ dụng, đây là khả năng cao nhất mà các ngôn ngữ máy tính hiện đại có thể sở hữu.
Trong lý thuyết khả năng tính toán, một tập hợp các quy tắc cho các phép toán dữ liệu (một tập hợp các lệnh, một ngôn ngữ lập trình hoặc một automaton tế bào) cho phép tính toán bất kỳ dữ liệu nào theo một thứ tự cụ thể được gọi là Turing-complete. Một thiết bị có tập lệnh Turing-complete được định nghĩa là một máy tính đa năng. Nếu nó là Turing-complete, nó (thiết bị máy tính) có khả năng thực hiện các lệnh nhảy có điều kiện (câu lệnh "if" và "goto") và sửa đổi dữ liệu bộ nhớ. Nếu một thứ thể hiện tính toàn vẹn Turing, nó có khả năng mô phỏng các máy tính nguyên thủy, và ngay cả những máy tính đơn giản nhất cũng có thể mô phỏng những máy tính phức tạp nhất. Tất cả các ngôn ngữ lập trình đa năng và tập lệnh của máy tính hiện đại đều là Turing-complete (các mẫu C++ là Turing-complete) và có thể giải quyết vấn đề bộ nhớ hạn chế. Máy Turing-complete được định nghĩa là có bộ nhớ vô hạn, nhưng tập lệnh của chúng thường được định nghĩa để chỉ hoạt động trên một lượng RAM hữu hạn, cụ thể.
Quá trình phát triển của máy ảo (VM) từ non-Turing complete sang Turing complete thường liên quan đến quá trình tăng dần độ phức tạp, bảo mật và khả năng ứng dụng chung. Điều này bao gồm hai vấn đề chính:
1. Tại sao nên bắt đầu với các hệ thống hoàn chỉnh không phải Turing? Vì lý do an toàn và độ tin cậy. Các hệ thống hoàn chỉnh không phải Turing đảm bảo tất cả các chương trình sẽ kết thúc (Bài toán Dừng có thể giải quyết được) và sẽ không có vòng lặp vô hạn, điều này rất quan trọng đối với các tình huống như hợp đồng thông minh, ngôn ngữ cấu hình và công cụ mẫu.
2. Tại sao phải phấn đấu đạt đến tính toàn vẹn Turing? Vì tính biểu đạt và chức năng. Chỉ có các hệ thống hoàn chỉnh Turing mới có thể triển khai nhiều logic và thuật toán phức tạp, trở thành một nền tảng lập trình phổ quát.
Do đó, quá trình phát triển của một máy ảo (VM) từ trạng thái không hoàn chỉnh (non-Turing complete) sang trạng thái hoàn chỉnh (Turing complete ) về cơ bản là một quá trình mở rộng mục tiêu thiết kế từ "bảo mật và khả năng kiểm soát tuyệt đối" sang "mạnh mẽ và đa năng" . Mục tiêu cuối cùng của các máy ảo (VM) hiện đại là cố gắng đạt được cả hai cùng lúc: tức là cung cấp khả năng mạnh mẽ của tính hoàn chỉnh Turing đồng thời tối đa hóa bảo mật và khả năng kiểm soát thông qua thiết kế khéo léo.
4.2. Một số giai đoạn riêng biệt trong quá trình tiến hóa của VM từ không hoàn chỉnh Turing đến hoàn chỉnh Turing
Quá trình phát triển của một máy ảo (VM) từ non-Turing complete lên Turing complete thường bao gồm một quá trình tăng dần độ phức tạp, bảo mật và khả năng ứng dụng chung. Quá trình này có thể được tóm tắt thành các giai đoạn điển hình sau:
1. Giai đoạn một: Máy tính thuần túy (Không hoàn chỉnh theo Turing)
Tính năng: Nó chỉ có khả năng tính toán biểu thức cơ bản, không có trạng thái và không có luồng điều khiển.
- Khả năng: Hỗ trợ các phép tính số học cơ bản (cộng, trừ, nhân và chia), các phép tính logic, phép tính bit, v.v. Nó hoạt động giống như một máy tính tiên tiến, trong đó mỗi phép tính đều độc lập và không phụ thuộc vào trạng thái trước đó.
- Không trạng thái: Không có khái niệm về bộ nhớ, hoặc bộ nhớ chỉ đọc và không thể sửa đổi. Biến không thể được định nghĩa hoặc sửa đổi.
- Không có luồng điều khiển: Không có lệnh rẽ nhánh có điều kiện (if/else), vòng lặp (for/while) hay lệnh nhảy. Lệnh chỉ có thể được thực thi tuần tự.
- Tại sao nó không hoàn chỉnh về Turing: Nó không thể triển khai các vòng lặp hoặc phán đoán có điều kiện và không thể mô phỏng băng giấy dài vô hạn và các chuyển đổi trạng thái của máy Turing.
- Ví dụ lịch sử: Một số công cụ đánh giá cấu hình hoặc biểu thức cực kỳ đơn giản và sớm nhất.
2. Giai đoạn hai: Giới thiệu các nhánh trạng thái và nhánh có điều kiện (Bước quan trọng hướng tới sự hoàn thiện)
Tính năng: Đã thêm trạng thái có thể thay đổi (bộ nhớ) và phán đoán có điều kiện đơn giản, nhưng thiếu vòng lặp thực sự.
khả năng:
(1) Trạng thái: Giới thiệu bộ nhớ có thể đọc và ghi (như ngăn xếp, thanh ghi, đống), cho phép định nghĩa và sửa đổi các biến. Điều này làm cho việc tính toán phụ thuộc vào lịch sử, thay vì bị cô lập.
(2) Phân nhánh có điều kiện: Điều này giới thiệu các lệnh nhảy dựa trên điều kiện (chẳng hạn như if_eq, if_lt, jmp đến một vị trí bù trừ được chỉ định). Đây là chìa khóa để triển khai các phán đoán logic.
- Tại sao nó vẫn có thể không hoàn chỉnh theo Turing: Nếu tập lệnh hoặc thiết kế của máy ảo (VM) cố tình cấm các lệnh nhảy lùi, tức là nó chỉ có thể nhảy đến các lệnh tiếp theo (nhảy tiến), thì nó không thể tạo vòng lặp. Nếu không có vòng lặp, tiềm năng "tính toán vô hạn" cần thiết cho tính hoàn chỉnh của Turing sẽ không thể hiện thực hóa (mặc dù nó hữu hạn về mặt vật lý, nhưng về mặt lý thuyết là vô hạn).
- Ví dụ lịch sử/hiện đại: Bitcoin Script, ngôn ngữ lập trình, là một ví dụ kinh điển từ những ngày đầu. Nó được thiết kế một cách có chủ đích để không có vòng lặp, chỉ có các nhánh có điều kiện và các lệnh nhảy về phía trước, nhằm ngăn chặn các vòng lặp vô hạn làm tắc nghẽn mạng, do đó đảm bảo rằng tập lệnh sẽ hoàn tất việc thực thi trong một số bước hữu hạn.
Lưu ý: Cá nhân tôi tin rằng ngôn ngữ kịch bản của Bitcoin chủ yếu hoạt động trong Giai đoạn 1, với một phần nhỏ thể hiện các đặc điểm của Giai đoạn 2. Nói một cách đại khái, Giai đoạn 1 chiếm hơn 90%, và Giai đoạn 2 chiếm chưa đến 10%. Ví dụ, MAST (Cây cú pháp trừu tượng Merkel), sau này được giới thiệu trong Taproot, không hoạt động tốt trên mạng chính Bitcoin nhưng lại đóng một vai trò quan trọng trong TAP. Một lý do chính cho điều này là mạng chính Bitcoin nhằm mục đích giữ cho máy ảo nằm trong khả năng của Giai đoạn 1.
3. Giai đoạn ba: Giới thiệu các vòng lặp hoặc đệ quy (để đạt được tính hoàn chỉnh của Turing)
Tính năng: Cung cấp khả năng tạo cấu trúc vòng lặp.
khả năng:
(1) Nhảy lùi: Cho phép lệnh nhảy quay lại địa chỉ lệnh trước đó. Điều này có thể trực tiếp tạo thành một vòng lặp.
(2) Hướng dẫn vòng lặp: Cung cấp hướng dẫn vòng lặp chuyên dụng (như vòng lặp).
(3) Lệnh nhảy/gọi hàm gián tiếp: Bằng cách hỗ trợ lệnh gọi hàm và đệ quy, hiệu ứng vòng lặp tương tự có thể đạt được. Điều này là do đệ quy có thể thay thế vòng lặp một cách tương đương.
- Tại sao nó lại đạt đến mức Turing hoàn chỉnh tại thời điểm này? Một khi sở hữu khả năng thực hiện phân nhánh có điều kiện và nhảy lùi/vòng lặp/đệ quy, máy ảo này có khả năng thực hiện các phán đoán có điều kiện và thực thi lặp lại. Về mặt lý thuyết, việc kết hợp hai khía cạnh này cho phép nó mô phỏng quy trình tính toán của bất kỳ máy Turing nào, do đó đạt được tính hoàn chỉnh Turing.
- Ví dụ lịch sử: Máy ảo cho hầu hết các ngôn ngữ lập trình đa năng (như JVM, Python VM và .NET CLR) đều đạt chuẩn Turing ngay từ đầu vì chúng được thiết kế để chạy các ngôn ngữ lập trình đa năng. Quá trình phát triển của chúng chủ yếu tập trung vào việc nâng cao hiệu suất và các tính năng bảo mật.
4. Giai đoạn bốn: Cải tiến dựa trên tính hoàn thiện của Turing (bảo mật, hiệu suất, tính năng)
Khi Turing đạt được sự hoàn thiện, trọng tâm phát triển VM sẽ không còn tập trung vào sức mạnh tính toán nữa mà là các khía cạnh khác:
- Hiệu suất: Giới thiệu biên dịch JIT (Just-In-Time), biên dịch AOT (Ahead-of-Time), trình biên dịch được tối ưu hóa và các thuật toán thu gom rác hiệu quả hơn.
- Bảo mật: Cơ chế sandbox được cải tiến, hệ thống năng lực được giới thiệu, cùng với khả năng cô lập và kiểm soát bộ nhớ chi tiết hơn. WebAssembly là một ví dụ hiện đại xuất sắc, cung cấp khả năng Turing-complete đồng thời tăng cường đáng kể tính bảo mật và tính xác định thông qua bộ nhớ tuyến tính, luồng điều khiển có cấu trúc và môi trường sandbox.
- Tính năng: Hỗ trợ các tính năng ngôn ngữ nâng cao như coroutine, async/await, generic và reflection.
- Chủ nghĩa quyết định: Đối với một số máy ảo blockchain (như phiên bản kế nhiệm của Ethereum EVM), dựa trên tính hoàn chỉnh của Turing, việc theo đuổi chủ nghĩa quyết định (kết quả nhất quán trên tất cả các nút) và chấm dứt (giới hạn các bước thực hiện thực tế thông qua cơ chế Gas) trở thành trọng tâm.
Từ góc nhìn của các nguyên tắc biên dịch, chúng ta có thể thấy bốn giai đoạn phát triển của máy ảo (VM). Tham khảo lộ trình phát triển này, chúng ta cũng có thể thấy sơ lược một số giai đoạn phát triển của TAP (tức là một số giai đoạn phát triển của BTC2.0).
4.3. Giai đoạn đầu tiên của TAP: Khám phá sơ bộ các hướng dẫn BTCScript mở rộng
Như đã đề cập trước đó, các lệnh mainnet Bitcoin ban đầu đã vượt quá khả năng của nó, phần nào giống với khả năng giai đoạn hai của máy ảo đa năng (VM). Điều này dẫn đến việc đơn giản hóa lệnh sau đó. Các lệnh BTCScript được tinh giản trên mainnet Bitcoin hiện đáp ứng các yêu cầu về khả năng giai đoạn một của các nguyên tắc biên dịch, tất cả nhằm đảm bảo tính bảo mật và ổn định của mainnet Bitcoin.
Vì TAP là khởi đầu của BTC 2.0, xét theo góc nhìn phân biệt giai đoạn nguyên lý biên dịch, TAP-VM hiện tại nên phát triển theo hướng giai đoạn thứ hai của một VM đa năng. Khi khám phá giai đoạn này, TAP-VM có thể mở rộng các lệnh BTCScript một cách phù hợp, khôi phục các lệnh BTCScript đã bị xóa trước đó, chẳng hạn như dần dần thêm các lệnh được mong đợi rộng rãi như OP_CAT. Mỗi lệnh được thêm vào yêu cầu nhiều ứng dụng hơn để kiểm tra chức năng và bảo mật của nó. Giai đoạn này có thể thực hiện các thao tác đơn giản như TrustlessSwap. Nó cũng có thể tăng cường các trường hợp sử dụng công nghệ Taproot, chẳng hạn như sử dụng cây MAST linh hoạt hơn.
Giai đoạn này sẽ đáp ứng các chức năng cơ bản của BTCFi, chẳng hạn như giao dịch phi tập trung đơn giản, cho vay cơ bản và đặt cược cơ bản. Hiện tại, các chức năng này có thể được thực hiện thông qua TrustlessSwap và một phần của Tapscript.
4.4. Giai đoạn thứ hai của TAP: Xây dựng Bộ hướng dẫn BTCFi phi tập trung
Việc phát triển TAP-VM để hỗ trợ hầu hết các ứng dụng tài chính đòi hỏi phải có các hướng dẫn bổ sung cần thiết từ cả nguyên tắc biên dịch và góc nhìn ứng dụng. Tuy nhiên, giai đoạn này chắc chắn không cần phải hoàn chỉnh theo Turing. Giai đoạn này cần hỗ trợ các ứng dụng BTCFi phổ biến như cho vay, đặt cược, Mint StableCoin và các chức năng hoán đổi phức tạp hơn.
Giai đoạn này rất gần với giai đoạn thứ hai của VM tổng quát, đòi hỏi phải đưa vào các nhánh trạng thái và nhánh điều kiện. Các nhánh trạng thái và nhánh điều kiện này được đưa vào cây cú pháp trừu tượng MAST. Mặc dù cây MAST như vậy đã tồn tại trong công nghệ Taproot của BTC 1.0, các câu lệnh điều kiện này chỉ có thể hoạt động hiệu quả hơn sau khi BTC-VM của mạng chính Bitcoin được tách khỏi TAP-VM độc lập.
4.5. Giai đoạn thứ ba của TAP: một tập lệnh phong phú hơn và sự hoàn thiện Turing sơ bộ
Sự phát triển của TAP-VM để hỗ trợ các ứng dụng phức tạp hơn ngoài các ứng dụng tài chính phụ thuộc vào động lực của ứng dụng trên TAP-VM. Giai đoạn này sẽ dần dần đạt đến mức hoàn thiện Turing hoặc hoàn thiện Turing sơ bộ.
Từ góc độ nguyên lý biên dịch, giai đoạn này đại diện cho giai đoạn thứ ba của máy ảo đa năng, giới thiệu các tính năng như vòng lặp và đệ quy, cho phép nhảy ngược và nhảy gián tiếp, các lệnh vòng lặp chuyên dụng, và thậm chí cả chức năng hàm. Kết hợp với khả năng điều kiện và phân nhánh được hỗ trợ trong giai đoạn hai, TAP-VM tại thời điểm này về mặt lý thuyết có thể mô phỏng tất cả các phép tính, do đó đạt được tính hoàn chỉnh Turing. Mặt khác, do bản chất phát triển của nó, nó có thể vẫn đang ở giai đoạn đầu của tính hoàn chỉnh Turing, nhưng đã sở hữu một tập lệnh phong phú có khả năng thực hiện các hàm phức tạp.
Ngay cả khi TAP-VM phát triển đến mức hoàn thiện Turing ở giai đoạn này, nó vẫn sẽ khác biệt đáng kể so với mức hoàn thiện Turing của RGB. Điều này tương tự như việc so sánh các ngôn ngữ như C++ và Java; chúng ta sẽ có phần so sánh chi tiết hơn trong phần 5.1.
4.6. Giai đoạn thứ tư của TAP: Hoàn thiện Turing trưởng thành + thư viện phong phú
Ở giai đoạn phát triển này, TAP-VM không chỉ đạt được tính hoàn chỉnh của Turing mà còn bắt đầu có một bộ thư viện lớp (hoặc thư viện hàm) phong phú, về mặt lý thuyết có thể hoàn thiện tất cả các chức năng ứng dụng, và có số lượng ví dụ ứng dụng tương đối dồi dào. Nhờ có các ví dụ ứng dụng phong phú và hỗ trợ thư viện lớp, các nhà phát triển có thể dễ dàng phát triển số lượng lớn ứng dụng.
Giống như giai đoạn thứ tư của dự án máy ảo đa năng, trọng tâm phát triển TAP-VM ở giai đoạn này không còn tập trung vào sức mạnh tính toán nữa mà là các chỉ số máy ảo cao cấp hơn như hiệu suất, bảo mật và tính xác định. Liệu đây có phải là một quá trình khá xa vời?
Ở giai đoạn phát triển này, chức năng mạnh mẽ của TAP đã dẫn đến sự chồng chéo đáng kể với RGB. Nhiều ứng dụng có thể được triển khai bằng TAP hoặc RGB. Sự chồng chéo này chủ yếu tập trung trong các ứng dụng tài chính, đặc biệt là các tài sản được phát hành trên mạng chính Bitcoin. Tuy nhiên, TAP và RGB vẫn còn khác biệt đáng kể trong các kịch bản ứng dụng rộng hơn. Chúng tôi sẽ phân tích những khác biệt này trong phần tiếp theo.
5. Hệ thống Turing hoàn chỉnh cũng có nhiều ứng dụng khác nhau.
Trong hệ sinh thái BTC, chúng tôi chủ yếu so sánh hai hệ thống Turing hoàn chỉnh: TAP và RGB, để minh họa hệ thống nào phù hợp với các tình huống ứng dụng khác nhau hoặc tốt hơn nữa là minh họa các tình huống ứng dụng của TAP.
Dựa trên kinh nghiệm trong lĩnh vực Web2 và dữ liệu phong phú về máy ảo (VM), ngôn ngữ phát triển C/C++ + môi trường thời gian chạy có thể được so sánh tốt với ngôn ngữ phát triển Java + môi trường thời gian chạy. Sự so sánh này, tương tự như so sánh giữa TAP và RGB, cung cấp một số thông tin chi tiết có giá trị.
5.1. So sánh các kịch bản ứng dụng giữa C/C++ và Java
Bảng so sánh các tính năng cốt lõi
Tóm tắt các tình huống ứng dụng
1. Lĩnh vực C/C++ (yêu cầu thao tác phần cứng trực tiếp hoặc hiệu suất cực cao)
(1) Phát triển phần mềm/cơ sở hạ tầng cấp hệ thống
- Hệ điều hành (như Linux, nhân Windows)
- Hệ thống quản lý cơ sở dữ liệu (như MySQL, PostgreSQL)
- Trình biên dịch/thông dịch (như GCC và JVM) thực chất được viết bằng C++.
- Máy chủ web/khung mạng hiệu suất cao (như Nginx, lớp nền Node.js)
(2) Trình điều khiển phần cứng và hệ thống nhúng
- Trình điều khiển thiết bị: yêu cầu tương tác trực tiếp với các thanh ghi phần cứng.
- Thiết bị nhúng/Internet vạn vật (IoT): Các thiết bị này có tài nguyên cực kỳ hạn chế (như vi điều khiển, MCU), yêu cầu kiểm soát chính xác bộ nhớ và mức tiêu thụ điện năng, và không đủ khả năng chi trả cho JVM.
(3) Máy tính hiệu suất cao và phát triển trò chơi
- Các công cụ trò chơi (như hệ thống cơ bản của Unreal và Unity) cần tận dụng tối đa hiệu suất phần cứng để thực hiện các phép tính vật lý và đồ họa phức tạp.
- Hệ thống tính toán khoa học/giao dịch tài chính: ngay cả độ trễ ở mức micro giây cũng rất quan trọng.
- Xử lý đồ họa/hình ảnh/âm thanh/video: chẳng hạn như Photoshop, FFmpeg.
(4) Các tình huống đòi hỏi sự kiểm soát chặt chẽ về bộ nhớ và tài nguyên
Trong một số trường hợp, quản lý bộ nhớ thủ công có thể dự đoán được hơn so với thu gom rác và có thể tránh được hiện tượng trễ do GC gây ra.
2. Sân nhà của Java (yêu cầu hiệu quả phát triển cao, khả năng tương thích đa nền tảng và độ tin cậy cấp doanh nghiệp)
(1) Phát triển phần phụ trợ cho các ứng dụng doanh nghiệp quy mô lớn
- Nền tảng ứng dụng web: Spring Boot là nền tảng hàng đầu trong phát triển doanh nghiệp Java, được sử dụng để xây dựng các dịch vụ nền tảng phân tán, quy mô lớn và có tính đồng thời cao.
- Kiến trúc vi dịch vụ: Nhiều khuôn khổ vi dịch vụ dựa trên Java và JVM (như Spring Cloud).
- Hệ thống phân tán: như Hadoop và Kafka trong lĩnh vực dữ liệu lớn.
(2) Phát triển ứng dụng Android
Ngôn ngữ được ưa chuộng chính thức trong lịch sử của Android (mặc dù Kotlin hiện là ngôn ngữ được ưa chuộng, nhưng một lượng lớn mã và hệ sinh thái cơ bản vẫn là Java).
(3) Dữ liệu lớn và điện toán đám mây
Các thành phần cốt lõi của các khuôn khổ xử lý dữ liệu lớn như Hadoop, Spark và Flink chủ yếu được viết bằng Java hoặc Scala (ngôn ngữ JVM).
(4) Hệ thống yêu cầu độ tin cậy cao và vòng đời dài
Đối với các hệ thống cốt lõi như ngân hàng, tài chính và thương mại điện tử, tính mạnh mẽ, bảo mật và sự hỗ trợ mạnh mẽ của hệ sinh thái cộng đồng là rất quan trọng.
(5) Ứng dụng máy tính để bàn đa nền tảng
Mặc dù không phổ biến như Web, Swing/JavaFX vẫn có thể được sử dụng để phát triển các chương trình GUI đa nền tảng.
3. Làm thế nào để lựa chọn?
- Khi chọn C/C++:
Hiệu suất là ưu tiên hàng đầu (trò chơi, hệ thống giao dịch).
Bạn cần tương tác trực tiếp với hệ điều hành hoặc phần cứng (trình điều khiển, hệ thống nhúng).
Tài nguyên cực kỳ hạn chế và không thể chịu được mức sử dụng bộ nhớ và CPU của JVM.
Bạn cần có quyền kiểm soát tuyệt đối đối với hành vi của chương trình (bố trí bộ nhớ, luồng thực thi).
- Khi chọn Java:
Bạn cần phát triển các ứng dụng doanh nghiệp lớn, phức tạp (phần mềm web, dịch vụ siêu nhỏ).
Hiệu quả phát triển, khả năng bảo trì và làm việc nhóm quan trọng hơn hiệu suất tối ưu.
Bạn cần khả năng đa nền tảng mạnh mẽ và không muốn biên dịch riêng cho từng nền tảng.
Bạn muốn tránh các lỗi quản lý bộ nhớ và tận hưởng hệ sinh thái phong phú gồm các thư viện và khuôn khổ mã nguồn mở.
Dự án đòi hỏi độ tin cậy cao và hoạt động ổn định lâu dài.
Tóm lại: C/C++ phù hợp hơn để làm việc ở các cấp thấp hơn, chẳng hạn như lớp phần cứng hoặc lớp hệ điều hành; Java phù hợp hơn để làm việc ở lớp nghiệp vụ và ứng dụng.
5.2. So sánh các kịch bản ứng dụng giữa TAP và RGB
Bảng so sánh các tính năng cốt lõi (Tôi hy vọng sẽ dần cải thiện bảng so sánh này với sự giúp đỡ của mọi người trong tương lai).

Tóm tắt các tình huống ứng dụng (Những điều sau đây đều là suy đoán dựa trên các đặc điểm, vì TAP-VM vẫn chưa được phát triển đầy đủ và không có nhiều trường hợp ứng dụng cho RGB)
1. Sân nhà của TAP (yêu cầu các chức năng cơ bản giống như Bitcoin)
(1) Phát hành tài sản theo mô hình tiền mặt
(2) BTCFi trên mạng Bitcoin
(3) Giao thức cơ bản phi tập trung
2. Sân nhà của RGB (phù hợp với hầu hết các loại Dapp)
(1) Ứng dụng hợp đồng thông minh trên mạng Bitcoin
(2) Phát hành tài sản và ứng dụng DeFi tiên tiến và phức tạp hơn
(3) Các ứng dụng web3 cấp cao hơn, chẳng hạn như danh tính phi tập trung và quản trị DAO.
(4) Các ứng dụng web3 rộng hơn khác
3. Làm thế nào để lựa chọn?
- Chọn TAP-VM:
Tương tác trực tiếp với Bitcoin UTXO.
Phát hành tài sản theo mô hình tiền mặt.
Mở rộng trực tiếp chức năng của các loại tập lệnh Bitcoin.
Ứng dụng tài chính Bitcoin phi tập trung.
- Chọn RGB:
Hợp đồng thông minh đòi hỏi logic phức tạp.
DeFi tiên tiến và phức tạp hơn.
Ứng dụng Web3 phi tài chính.
Tóm lại: TAP-VM gần gũi hơn với các ứng dụng trên mạng chính Bitcoin hoặc là phần mở rộng trực tiếp của các ứng dụng dựa trên mạng chính Bitcoin; RGB phù hợp với các ứng dụng có chức năng logic phức tạp gần với lớp người dùng hơn.
6. Làm thế nào chúng ta có thể phát triển BTC 2.0 tốt hơn?
Phần này chủ yếu dựa trên đánh giá chủ quan của tác giả, chủ yếu xuất phát từ kinh nghiệm làm việc và kỹ thuật dự án trước đây. Do đó, bài viết chắc chắn không tránh khỏi những thiếu sót và thiên kiến. Tác giả hy vọng nhận được thêm phản hồi để hoàn thiện những dự đoán và đánh giá này, đặc biệt là từ những người đã phát triển sản phẩm trong lĩnh vực này.
Dựa trên các thảo luận trước đó, nếu chúng ta có thể chia Bitcoin thành các giai đoạn BTC1.0 và BTC2.0, điều này sẽ mang lại một số lợi thế rõ ràng.
6.1. Phân công lao động rõ ràng và quy trình chuẩn hóa
Một lợi thế khác của sự phân chia theo giai đoạn này là nó làm rõ sự phân công lao động và trách nhiệm.
1. Với các nguyên tắc đã được thiết lập về đánh giá và ra quyết định, các nhà thiết kế có thể dễ dàng tích hợp các tính năng tuân thủ nguyên tắc BTC 1.0 vào mạng chính Bitcoin và các tính năng tuân thủ nguyên tắc thiết kế BTC 2.0 vào giao thức TAP. Điều này không chỉ giảm thiểu tranh chấp mà còn thúc đẩy sự hợp tác giữa các tổ chức tốt hơn.
BTC2.0 cũng có thể tham khảo các nguyên tắc biên dịch và quy trình phát triển của các sản phẩm hoàn thiện khác để lập kế hoạch theo từng giai đoạn rõ ràng hơn cho quá trình phát triển TAP.
2. Một số giao thức và tiêu chuẩn cũng có thể được đặt tên rõ ràng hơn và có tiêu chí đánh giá được thiết lập. Ví dụ, bảy giao thức của TAP hiện được đặt tên như sau:
- BIP-TAP-ADDR:Bản thảo địa chỉ tài sản Taproot trên chuỗi
- BIP-TAP-MS-SMT:Merkle Sum Sparse Merkle Trees Draft
- BIP-TAP-PROOF:Bản thảo định dạng chứng minh tài sản Taproot
- BIP-TAP-PSBT:Bản thảo PSBT của Taproot Assets
- BIP-TAP-UNIVERSE: Bản thảo Vũ trụ Tài sản Taproot
- BIP-TAP-VM: Bản thảo Taproot Asset Script v1
- BIP-TAP:TAP: Bản thảo giao thức tài sản Taproot
Nếu phương pháp phân loại BTC2.0 được mọi người chấp nhận thì chắc chắn có thể bắt đầu bằng BIP2:
- BIP2: Bản thảo địa chỉ tài sản Taproot trên chuỗi
- BIP2: TAP Merkle Sum Cây Merkle thưa thớt Bản thảo
- BIP2: Bản thảo định dạng chứng minh tệp phẳng tài sản Taproot
- BIP2: Bản thảo PSBT về Tài sản Taproot
- BIP2: Bản thảo vũ trụ tài sản Taproot
- BIP2: Bản thảo Taproot Asset Script v1
- BIP2: TAP: Bản thảo giao thức tài sản Taproot
6.2. Lập kế hoạch tích hợp và tổ chức lại nguồn lực
Hiện tại, mạng chính Bitcoin chủ yếu được quản lý bởi nhóm Bitcoin Core (tính đến tháng 6 năm 2025, 90% toàn bộ mạng lưới sử dụng Bitcoin Core). Giao thức TAP được quản lý bởi Lightning Network Labs.
Phần mềm Bitcoin Core đã hoạt động hơn 15 năm và các chức năng cốt lõi của nó tương đối ổn định. Sẽ không có nhiều trường hợp yêu cầu bổ sung tính năng đáng kể trong tương lai, hoặc nếu cần sửa đổi lớn, chúng rất có thể sẽ xảy ra trên giao thức TAP. Giao thức TAP vẫn đang trong giai đoạn phát triển ban đầu và nếu mọi việc diễn ra theo đúng kế hoạch, nó vẫn còn một chặng đường dài phía trước, đòi hỏi nguồn lực phát triển đáng kể. Việc tái sử dụng hiệu quả các nguồn lực phát triển hiện có sẽ thúc đẩy đáng kể sự phát triển của BTC 2.0. Quan trọng hơn, các nhà phát triển của mạng chính Bitcoin có những điểm tương đồng đáng kể với sự phát triển của TAP về môi trường phát triển và ngôn ngữ lập trình; sự khác biệt chính chỉ nằm ở các hướng dẫn phát triển đang thay đổi.
Điều này chắc chắn sẽ đặt ra những thách thức đáng kể, vì TAP hiện là một giao thức trong Lightning Network, chứ không phải toàn bộ mạng lưới. Việc TAP có thể được phát triển thành một dự án BTC 2.0 độc lập hay không, và cách thức phát triển cũng như các nguồn lực của dự án này sẽ được tích hợp như thế nào, sẽ đòi hỏi sự phối hợp chặt chẽ.
Nếu TAP thực sự phát triển thành BTC 2.0, thì dự án mạng chính Bitcoin (BTC 1.0), BTC 2.0 mới và Lightning Network sẽ là ba dự án tương đối độc lập nhưng lại có mối liên hệ chặt chẽ. BTC 2.0 sẽ có sự tích hợp chức năng sâu hơn với Lightning Network, và dựa trên các tính năng mới của BTC 2.0, Lightning Network cũng sẽ được phát triển mạnh mẽ hơn.
6.3. Phát triển và cạnh tranh
Phần 5 mô tả một số đặc điểm của TAP so với các đối thủ cạnh tranh trực tiếp, điều này cũng có thể được coi là sự so sánh giữa BTC 2.0 và các giao thức phân lớp bên ngoài. Ở giai đoạn phát triển hiện tại, RGB và TAP sẽ phải đối mặt với sự cạnh tranh trực tiếp đáng kể trong một số lĩnh vực: phát hành tài sản, giao dịch tài sản và hệ sinh thái BTCFi rộng lớn hơn. Mặc dù TAP vượt trội hơn nhiều giao thức trong các lĩnh vực gắn liền chặt chẽ với mạng chính Bitcoin, nhưng nếu TAP không hoàn thành giai đoạn phát triển 1 một cách nhanh chóng, RGB hoàn chỉnh Turing sẽ thống trị lĩnh vực này trước tiên. Chỉ riêng việc RGB dựa vào giao thức đồng thuận mạng chính Bitcoin cũng đủ để thu hút vô số người đam mê Bitcoin bản địa, vì chức năng của nó hấp dẫn hơn. Nếu TAP không hoàn thành hoặc chậm trễ trong quá trình phát triển Giai đoạn 2, nó cũng sẽ tụt hậu so với RGB.
Liệu TAP có tiến hóa thành BTC 2.0 không? Quá trình phát triển của nó sẽ diễn ra như thế nào? Hình thức cuối cùng của nó phụ thuộc vào nhiều yếu tố bên ngoài. Những phát triển tiềm năng này trong không gian Bitcoin đầy trí tưởng tượng và thách thức, nhưng bất kể quá trình này diễn ra như thế nào, TAP đã mở ra một cánh cửa cho chúng ta.
Tóm lại: Nếu TAP đại diện cho sự phát triển của BTC 2.0, thì cái tên TaprootAssets Protocol chẳng phải quá cụ thể và đại diện cho hiện tại sao? Liệu nó có nên được đổi tên để thể hiện rõ hơn sự phát triển của BTC 2.0 không?
Tài liệu tham khảo
Lưu ý: Vì bài viết này cung cấp dự đoán và phân tích toàn diện về TAP, phần lớn nội dung chỉ là tóm tắt kiến thức chung chứ không cụ thể cho bất kỳ bài viết nào. Một số nội dung trong bài viết này sử dụng trợ lý AI, và độ chính xác của nội dung được xác định dựa trên kinh nghiệm trong ngành của tác giả trước khi được đưa vào bài viết. Bài viết này bao gồm phần so sánh các tình huống ứng dụng giữa C/C++ và Java.
Phần về nguyên tắc biên dịch có tham khảo tài liệu sách giáo khoa từ các chương trình khoa học máy tính của trường đại học cũng như các bài viết trực tuyến rải rác.
Các bài viết liên quan khác như sau:
1. https://github.com/Roasbeef/bips/blob/bip-tap/bip-tap.mediawiki , 7 giao thức liên quan đến Giao thức Taproot Assets.
2. Hiểu biết sâu sắc về Công nghệ Chứng kiến Phân tách của Bitcoin và Ba phiên bản nâng cấp của nó
3. "Tổng quan toàn diện về các nguyên tắc cơ bản của việc xây dựng Bitcoin Layer 2 (V2.0)"


