CAT20: Giao thức mã thông báo trên BTC Fractal

avatar
ZAN Team
2tháng trước
Bài viết có khoảng 4180từ,đọc toàn bộ bài viết mất khoảng 6 phút
Gần đây, trong hệ sinh thái Bitcoin, Fractal BTC cuối cùng đã ra mắt mainnet vào tháng 9 sau khi trải qua nhiều testnet...

Bài viết này chỉ nhằm mục đích chia sẻ kỹ thuật và không mang tính chất tư vấn đầu tư.

BTC cũng sẽ có hợp đồng thông minh của riêng mình chứ?

Trong hệ sinh thái Bitcoin gần đây, Fractal BTC cuối cùng đã ra mắt mạng chính vào tháng 9 sau khi trải qua nhiều mạng thử nghiệm. Một tính năng chính của Fractal là khả năng có hợp đồng thông minh và gần như cùng lúc với mạng chính được ra mắt, giao thức mã thông báo CAT 20 mới cũng được ra mắt. CAT 20 có sự khéo léo về mặt kỹ thuật gì? Chúng ta có thể học được gì?

Bitcoin phân dạng

Trước khi hiểu CAT 20, chúng ta cần hiểu ngắn gọn về Fractal Bitcoin. Mối quan hệ của chúng giống như ERC 20 và ETH. Giao thức CAT 20 được triển khai trên Fractal Bitcoin.

Fractal Bitcoin, còn được gọi là Fractal Bitcoin, là mạng lớp thứ hai hoàn toàn tương thích với BTC. So với BTC, thời gian xác nhận khối của nó nhanh hơn, chỉ mất 1 phút. Nguyên tắc cơ bản của nó đơn giản như tên gọi của nó, đó là sao chép mạng BTC nhiều lần. Mỗi chuỗi sẽ xử lý các giao dịch càng nhiều thì tốc độ càng nhanh. Tuy nhiên, các chi tiết cụ thể, chẳng hạn như cách các chuỗi khác nhau giao tiếp vẫn chưa rõ ràng và không có tài liệu kỹ thuật chính thức tương ứng để tham khảo.

Nếu chỉ giao dịch chuỗi lớp thứ hai nhanh hơn thì dường như không có hứng thú. Tuy nhiên, việc kích hoạt OP_CAT trong Fractal, vốn đã bị BTC bỏ rơi từ lâu vì lý do bảo mật, đã đưa khả năng của Fractal Bitcoin lên một tầm cao hơn. Một số người cho rằng OP_CAT có thể cho phép BTC có khả năng hợp đồng thông minh trong vấn đề này. cách này, có chỗ cho trí tưởng tượng.

Bây giờ, ai đó đã triển khai một giao thức tương tự như ERC 20 trên Fractal Bitcoin.

Về lý do OP_CAT bị bỏ rơi và tại sao nó có thể được sử dụng trên Fractal Bitcoin, chúng ta có thể nói về nó sau. Ở đây chúng ta tập trung vào CAT 20.

Giao thức CAT Vui lòng tham khảo sách trắng để biết nội dung sau: Giới thiệu Giao thức CAT ( https://catprotocol.org/ )

Và kho lưu trữ github: GitHub - CATProtocol/cat-token-box: Monorepo cho các gói triển khai giao thức CAT ( https://github.com/CATProtocol/cat-token-box )

Với sự hỗ trợ cơ bản của OP_CAT, giao thức tương ứng, Giao thức CAT, sẽ sớm có sẵn. Hiện tại, một giao thức thực sự đang chạy là giao thức CAT 20 và một bảng tương ứng đã được thêm vào Unisat: https://explorer.unisat.io/fractal-mainnet/cat20 .

Mọi người sẽ có thể phản ứng khi nhìn thấy tên CAT 20. Nó sẽ giống với ERC 20 hơn. So với giao thức ERC 20 hoàn thiện, việc triển khai Token rất thuận tiện cho mọi người. CAT 20 triển khai vòng đời tương tự như ERC 20 như thế nào?

Triển khai

Trước khi triển khai, người dùng cần chỉ định địa chỉ ví và thông tin cơ bản về mã thông báo. Thông tin cơ bản về mã thông báo tương tự như ERC 20:

CAT20: Giao thức mã thông báo trên BTC Fractal

Sẽ có một số khác biệt. CAT 20 có thể đặt giới hạn khai thác trước và số lượng cho mỗi Mint. Tất nhiên, ERC 20 cũng có thể hiện thực hóa những khả năng này thông qua khả năng hợp đồng.

Trong giai đoạn triển khai, hai giao dịch sẽ được bắt đầu, có thể coi là hai giai đoạn: cam kết và tiết lộ. Trích dẫn sơ đồ chính thức, các giai đoạn triển khai như sau:

CAT20: Giao thức mã thông báo trên BTC Fractal

Ở giai đoạn cam kết, thông tin cơ bản của mã thông báo sẽ được ghi vào tập lệnh đầu ra của giao dịch, chẳng hạn như tên, ký hiệu, v.v. của mã thông báo. HashId của giao dịch được bắt đầu trong giai đoạn cam kết sẽ được sử dụng làm ký hiệu của mã thông báo để phân biệt các mã thông báo khác.

CAT20: Giao thức mã thông báo trên BTC Fractal

Bạn có thể thấy rằng utxo của giao dịch này bc 1 pucq...ashx tương ứng với cam kết. Sau đó, có hai giao dịch còn lại trỏ đến bc 1 pszp...rehc 4. Giao dịch đầu tiên được sử dụng để thanh toán phí gas cho giai đoạn tiết lộ sau và giao dịch còn lại là tiền lẻ.

Trong giai đoạn tiết lộ, bạn có thể thấy có hai đầu vào utxo, tương ứng với hai đầu ra đầu tiên của giai đoạn cam kết trước đó. Giao dịch này trước tiên sẽ xuất ra OP_RETURN, trong đó Hash của trạng thái ban đầu của CAT 20 sẽ được lưu. Sau đó một Minter sẽ được xuất ra, nó sẽ đóng vai trò quan trọng trong quy trình Mint tiếp theo và được sử dụng để duy trì các thay đổi trạng thái của quy trình Mint.

CAT20: Giao thức mã thông báo trên BTC Fractal

Nhìn lại toàn bộ quá trình Triển khai, cam kết và tiết lộ tuân theo hai bước gửi và tiết lộ thường được sử dụng trên blockchain. Đây là một cách tương đối phổ biến để triển khai các dự án. Một số dữ liệu của dự án chỉ ở dạng tiết lộ. các giai đoạn sẽ được tiết lộ.

bạc hà

Khi chúng ta xem xét Mint Token trước tiên, giao dịch sẽ trông như thế này.

CAT20: Giao thức mã thông báo trên BTC Fractal

Như bạn có thể thấy trong hình trên, quy trình của Mint có các đặc điểm sau.

  • Đầu vào của mint là một miner, được tạo ban đầu trong quá trình triển khai.

  • Mỗi máy đúc có một và chỉ một máy đúc làm đầu vào và bất kỳ số máy đúc nào làm đầu ra (một vấn đề nhỏ)

  • Mỗi xưởng đúc tiền chỉ có một mã thông báo (có một chút vấn đề)

  • Thứ tự đầu ra là bắt buộc, miner phải được theo sau bởi token

Biết được quy trình Mint, chúng ta thực sự có thể tìm thấy một số tình huống đặc biệt sẽ làm cho toàn bộ quy trình Mint trở nên thú vị.

Ví dụ: miner là đầu ra của giao dịch mint, nó có thể là 1, bội số hoặc thậm chí là 0. Nếu Mint được đặt thành 1 mỗi lần, thì số lượng máy đào có thể được sử dụng trong toàn bộ mạng sẽ không thay đổi (1), điều này sẽ khiến Mint trở nên đông đúc và mọi người cần phải lấy máy đào này để tránh điều này. trường hợp, cần phải đặt số lượng đầu ra của máy đúc mỗi lần lớn hơn 1, để sau khi đúc, ngày càng có thể sử dụng nhiều máy đúc hơn.

Tuy nhiên, mỗi sản lượng bổ sung của máy đúc tiền có nghĩa là bạn cần phải trả nhiều tiền hơn. Vì lý do kinh tế, sẽ có nhiều người vui lòng đặt máy đúc tiền về 0, điều này chắc chắn sẽ khiến máy đúc tiền giảm phát, điều này đòi hỏi một số người phải đến quyên góp và trả tiền. thêm thợ đúc một cách tự nguyện.

Trong phiên bản V2, hai máy đúc được tạo theo mặc định và trạng thái của hai máy đúc sẽ giống nhau nhất có thể.

Cấu trúc giao dịch

Một số bạn bè có thể đã phát hiện ra một vấn đề, đó là tại sao utxo của minter có thể được sử dụng để xây dựng các giao dịch? Để hiểu vấn đề này, bạn cần phân tích mã nguồn của “hợp đồng”.

1.tiết lộ bí mật

Đầu tiên, chúng tôi phân tích giao dịch trong quy trình tiết lộ và chúng tôi thấy rằng anh ấy sử dụng cam kết đầu ra của giao dịch trước đó làm đầu vào. Tại sao chúng tôi có thể sử dụng utxo không phải là địa chỉ của chúng tôi để xây dựng đầu vào của giao dịch?

Theo lẽ thường, khóa riêng tương ứng với khóa chung và khóa chung lấy địa chỉ. Khi xác minh xem UTXO đầu vào có hợp lệ hay không, nó thường được xác định bằng cách so sánh xem chữ ký được giải mã bằng khóa chung có nhất quán với giao dịch ban đầu hay không. Phần logic này được viết bằng tập lệnh Bitcoin. Vì vậy, chúng ta có thể viết lại logic của tập lệnh một cách khéo léo. Các cặp khóa công khai và riêng tư được viết trong tập lệnh là địa chỉ của chính chúng ta, để chúng ta có thể kiểm soát utxo của hai địa chỉ khác nhau.

Nhìn vào mã nguồn chúng ta có thể thấy điều gì đã xảy ra:

CAT20: Giao thức mã thông báo trên BTC Fractal

Có một vấn đề khác ở đây, đó là khóa riêng tương ứng với khóa chung, vậy tại sao địa chỉ cam kết được tạo lại khác với địa chỉ của chúng ta? Ở đây bạn có thể thấy nó từ mã nguồn

CAT20: Giao thức mã thông báo trên BTC Fractal

Nói cách khác, khóa riêng của chúng ta sẽ điều chỉnh khóa chung theo ISSUE_PUBKEY, đây cũng là một đặc điểm của địa chỉ P 2 TR.

2. bạc hà utxo

Trong quá trình tiết lộ, chúng tôi sử dụng các utxo khác nhau làm đầu vào nhưng trên thực tế, khóa mã hóa giống nhau, đó là khóa riêng của người triển khai. Nhưng trong giai đoạn khai thác, mọi người đều có thể sử dụng các utxo này làm đầu vào. Việc này được thực hiện như thế nào?

Tôi đoán phần này là khả năng của OP_CAT đã đề cập trước đó, tức là khả năng của hợp đồng thông minh. Mỗi minter là một hợp đồng thông minh. Tuy nhiên, hiện tại mã nguồn của phần này vẫn chưa được công bố và chưa biết cách triển khai cụ thể.

Trạng thái giao dịch (V2)

Trong minter, trạng thái cũng được bảo tồn. Trạng thái này tồn tại ở hai nơi: một nằm trong OP_RETURN của đầu ra giao dịch và trạng thái còn lại được lưu trữ trong hợp đồng thông minh, đó là Minter và Token được đề cập ở trên.

Những gì được lưu trữ trong OP_RETURN là Hash của trạng thái đầu ra giao dịch hiện tại và thời gian Mint còn lại của Mã thông báo sẽ được lưu trữ trong hợp đồng. Sau mỗi Mint, số lượng Mint của Minter mới được tạo sẽ bằng số lượng Mint còn lại chia cho hai. Biểu diễn bằng sơ đồ:

CAT20: Giao thức mã thông báo trên BTC Fractal

Khi kết thúc trò chơi, số Minter còn lại là 0.

Quay trở lại hình ảnh ban đầu, ngoài Minter là hợp đồng thông minh thì Token được tạo ra cũng là hợp đồng thông minh, đó là CAT 20. CAT 20 có hai trạng thái cơ bản: số lượng và địa chỉ chủ sở hữu Token. Bạn có thể thấy rằng không giống như BRC 20 hoặc dòng chữ trước đó, CAT 20 không có trên UTXO trong địa chỉ của bạn.

Chuyển khoản

Khi chuyển, mã thông báo đầu vào và đầu ra của giao dịch phải nhất quán. Tất nhiên, có thể có nhiều mã thông báo khác nhau trong cùng một giao dịch, miễn là số lượng đầu vào và đầu ra của các mã thông báo khác nhau là nhất quán.

CAT20: Giao thức mã thông báo trên BTC Fractal

Đốt cháy

Nếu muốn đốt Token, bạn chỉ cần chuyển Token về địa chỉ bình thường.

Tóm tắt

Có thể thấy mọi thao tác đều do người dùng tự xây dựng nên rất linh hoạt nên cần thực hiện rất nhiều logic xác minh trong phần hợp đồng. Một số lỗ hổng đã lộ diện cho đến nay cũng là do sơ suất trong logic xác minh.

Thiết kế như vậy có thể có một số lợi ích:

  • Nếu muốn tìm trạng thái nắm giữ của tất cả các Token, bạn chỉ cần kiểm tra utxo của token và không cần tiếp tục kiểm tra.

  • Nếu bạn muốn kiểm tra tình hình hiện tại của mint, bạn có thể tìm kiếm các giao dịch với cat trong OP_RETURN.

ZAN ở đây để lấy nước mà không cần bất kỳ ngưỡng nào!

Mẹo: Bạn có thể nhận 0,01 ETH testnet miễn phí cứ sau 24 giờ để hỗ trợ bạn trải nghiệm và thử nghiệm các dự án Web3 trong hệ sinh thái Ethereum. Nhấp để nhận ngay: https://zan.top/faucet?chInfo=ch_WZ.

Nhiều chuỗi công khai khác sẽ sớm được hỗ trợ ~

Bài viết này được viết bởi Yeezo (tài khoản X @GaoYeezo 75065 ) của ZAN Team (tài khoản X @zan_team )

Bài viết gốc, tác giả:ZAN Team。Tuyển dụng: Nhân viên kinh doanh phần mềm theo dự án report@odaily.email;Vi phạm quy định của pháp luật.

Odaily nhắc nhở, mời đông đảo độc giả xây dựng quan niệm đúng đắn về tiền tệ và khái niệm đầu tư, nhìn nhận hợp lý về blockchain, nâng cao nhận thức về rủi ro; Đối với manh mối phạm tội phát hiện, có thể tích cực tố cáo phản ánh với cơ quan hữu quan.

Đọc nhiều nhất
Lựa chọn của người biên tập