欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

當(dāng)前位置:主頁 > 區(qū)塊鏈 > 區(qū)塊鏈技術(shù) > CAT20 Fractal BTC上的代幣協(xié)議

CAT20有什么技術(shù)上的巧妙設(shè)計?CAT20-Fractal BTC上的代幣協(xié)議

2024-09-29 10:03:41 | 來源: | 作者:佚名
Fractal 的一大特點就是具備「智能合約」的能力,并且?guī)缀踉谕瞥鲋骶W(wǎng)的同時,上線了一個新的代幣協(xié)議 CAT20,CAT20 有什么技術(shù)上的巧妙設(shè)計呢?我們又可以學(xué)到什么

CAT20有什么技術(shù)上的巧妙設(shè)計?CAT20-Fractal BTC上的代幣協(xié)議!BTC 上也要有自己的智能合約了?最近比特幣生態(tài)上,F(xiàn)ractal BTC 在經(jīng)歷了多次測試網(wǎng)之后,終于在 9 月份上線主網(wǎng)。Fractal 的一大特點就是具備「智能合約」的能力,并且?guī)缀踉谕瞥鲋骶W(wǎng)的同時,上線了一個新的代幣協(xié)議 CAT20。CAT20 有什么技術(shù)上的巧妙設(shè)計呢?我們又可以學(xué)到什么?下面就和腳本之家詳細了解下吧!

Fractal Bitcoin

在了解 CAT20 之前我們需要簡單了解一下 Fractal Bitcoin,他們的關(guān)系就像 ERC20 和 ETH 一樣,CAT20 協(xié)議是部署在 Fractal Bitcoin 上的。

Fractal Bitcoin 又稱作分形比特幣,是一個完全兼容 BTC 的「二層」網(wǎng)絡(luò)。相比于 BTC,它的區(qū)塊確認(rèn)時間更快,僅需要 1 分鐘。它的基本原理簡單來說就如它的名字所言,就是將 BTC 網(wǎng)絡(luò)復(fù)制了幾份,每條鏈都會處理交易,可以處理交易的節(jié)點多了,速度也就自然快了。不過具體的細節(jié)比如不同鏈之間是如何通信的目前還不是很清楚,官方也沒有對應(yīng)的技術(shù)文檔可以參考。

如果只是一個二層鏈交易更快,似乎沒有讓人興奮的點。但是,在 Fractal 中啟用了 BTC 很久之前就因為安全原因棄用的操作碼 OP_CAT,讓 Fractal Bitcoin 的能力上升了一個臺階,有人說 OP_CAT 能讓 BTC 具有智能合約的能力,這樣的話可以遐想的空間就更多了。

現(xiàn)在,就有人在 Fractal Bitcoin 上實現(xiàn)了一個類似 ERC20 的協(xié)議。

關(guān)于 OP_CAT 為什么棄用以及為什么又可以在 Fractal Bitcoin 上使用,后續(xù)可以展開講講,這里我們關(guān)注 CAT20。

CAT Protocol

  • 以下內(nèi)容參考白皮書:Introduction | CAT Protocol (https://catprotocol.org/)
  • 以及 github 倉庫:
  • GitHub - CATProtocol/cat-token-box: A monorepo for packages implementing CAT protocol (https://github.com/CATProtocol/cat-token-box)

有了底層的 OP_CAT 支持,很快就有了對應(yīng)的協(xié)議,CAT Protocol。目前一個已經(jīng)在實際跑的協(xié)議是 CAT20 協(xié)議,在 Unisat 上也新增了對應(yīng)的面板:https://explorer.unisat.io/fractal-mainnet/cat20。

看到 CAT20 的名字大家應(yīng)該也能反應(yīng)過來,它應(yīng)該和 ERC20 比較像。相比于成熟的 ERC20 協(xié)議,大家部署一個 Token 已經(jīng)非常的方便,CAT20 是如何實現(xiàn) ERC20 類似的生命周期呢。

Deploy

在部署之前,用戶需要指定自己的錢包地址以及代幣的基本信息,代幣的基本信息和 ERC20 的類似:

會有一些不同點 CAT20 可以設(shè)置預(yù)挖和每次 Mint 的數(shù)量限制。當(dāng)然 ERC20 可以通過合約的能力也可以實現(xiàn)這些能力。

在部署階段,會發(fā)起兩筆交易,可以認(rèn)為是兩個階段:「 commit 」和「 reveal 」。引用官方上的圖,部署的階段如下:

在「 commit 」階段,交易的輸出腳本中會將代幣的基本信息寫入,比如代幣的名稱、符號等。在「 commit 」階段發(fā)起的交易 hashId 會作為該代幣的標(biāo)志,用于區(qū)分其他代幣。

可以看到這筆交易「 bc1pucq...ashx 」這個 utxo 就是對應(yīng)了 commit。然后剩下的兩筆指向「 bc1pszp...rehc4 」的交易,第一筆是用于支付下面「 reveal 」階段的 gas 費,另一筆則是找零。

在「 reveal 」階段,可以看到有兩筆 utxo 輸入,對應(yīng)了之前 commit 階段的前兩個輸出。這筆交易首先會輸出一個 OP_RETURN,在 OP_RETURN 中會保存 CAT20 的初始狀態(tài)的 Hash。之后會再輸出一個 Minter,它會在后續(xù)的 Mint 過程中發(fā)揮重要作用,用來維護 Mint 過程的狀態(tài)變化。

回過頭看整個 Deploy 的過程,「 commit 」和「 reveal 」遵循了區(qū)塊鏈上常用的提交和揭示兩個步驟,是一種比較常見的部署項目的方式,項目的一些數(shù)據(jù)只在「 reveal 」階段才會揭露出來。

Mint

我們先看一下 Mint Token 的時候,交易是這么樣的。

在上圖中可以看到,Mint 的過程有以下幾個特征。

  • mint 的輸入是一個 minter,最開始是由 deploy 的時候生成的。
  • 每一次 mint 都有且只有一個 minter 作為輸入,有任意個 minter 作為輸出(有點點問題)
  • 每一次 mint 都有且只有一個 token(有點點問題)
  • 輸出的順序是有要求的,minter 后面必須是 token

知道了 Mint 的過程,其實我們可以發(fā)現(xiàn)一些特殊情況,會讓整個 Mint 的過程變得有趣。

比如,minter 作為 mint 交易的輸出,他可以是 1 個、多個甚至是 0 個。如果每次 Mint 的時候都設(shè)置為 1 個,那么整個網(wǎng)絡(luò)中可以使用到的 minter 數(shù)量就會保持不變(1 個),這會讓 Mint 變得擁擠,大家都需要搶這個 minter,為了避免這種情況,是需要將每次輸出的 minter 數(shù)量設(shè)置為大于 1 ,這樣 mint 之后,大家可以使用的 minter 就會越來越多。

不過,每多輸出一個 minter 意味這你需要多支付一筆 utxo,出于經(jīng)濟考慮,更多的人會樂意將 minter 設(shè)置為 0,就會不可避免的讓 minter 變得通縮,這就需要一些人來進行奉獻了,自愿支付多出來的 minter。

在 V2 版本,默認(rèn)是生成兩個 Minter,并且兩個 Minter 的狀態(tài)會盡可能相近。

交易的構(gòu)建

可能有小伙伴發(fā)現(xiàn)了一個問題,那就是為什么可以使用 minter 的 utxo 進行交易的構(gòu)建?想要了解這個問題就需要對“合約”的源碼進行分析。

1、reveal utxo

首先我們對 reveal 過程中的交易進行分析,我們發(fā)現(xiàn)他使用了前一個交易的輸出 commit 作為輸入。為什么可以拿一個不是我們地址的 utxo 構(gòu)建交易的輸入呢?

按照常理,一個私鑰對應(yīng)一個公鑰,公鑰派生出地址。當(dāng)驗證一個輸入的 utxo 是否有效的時候,一般是通過比較簽名用公鑰解密之后是否和原本的交易一致來確定。這部分的邏輯是寫在比特幣腳本中的。所以我們可以巧妙的改寫腳本的邏輯,在腳本中寫的公私鑰對是我們自己地址的,這樣我們就可以控制兩個不同地址的 utxo 了。

看源碼我們就能知道發(fā)生了什么:

這里還會有一個問題,就是一個私鑰對應(yīng)一個公鑰,那么為什么生成的 commit 地址會和我們地址不一樣呢?這里從源碼中可以看到

也就是說,我們的私鑰會根據(jù)一個 ISSUE_PUBKEY 來調(diào)整公鑰,這也是 P2TR 地址的一個特性。

2、minter utxo

reveal 過程中,我們使用不同的 utxo 的作為輸入,但其實加密的密鑰是同一把,也就是部署者的私鑰。但是在 minter 階段,所有的人都可以使用這些 utxo 作為輸入,這又是怎么做到的呢?

這部分我猜測是之前說的 OP_CAT 的能力,也就是智能合約的能力,每一個 minter 就是一個智能合約。不過目前這部分的源碼沒有公開,暫時不知道具體的實現(xiàn)是怎么樣的。

交易的狀態(tài)(V2)

在 minter 中,還保留了狀態(tài)。這個狀態(tài)存在兩個地方:一個是交易輸出的 OP_RETURN 中,另外就是存儲在智能合約中,也就是上述提到的 Minter 以及 Token。

在 OP_RETURN 中存儲的是當(dāng)前交易輸出狀態(tài)的 Hash,在合約中會存儲 Token 剩余的 Mint 次數(shù)。每次 Mint 之后,新生成的 Minter 的 mint 數(shù)量會等于剩余可以 mint 的數(shù)量除以二。用圖表示:

最后打完的時候,所有 Minter 的剩余數(shù)量為 0。

回到最開始的那張圖上,除了 Minter 是一個智能合約之外,生成的 Token 也是智能合約,也就是 CAT20。CAT20 有兩個基本的狀態(tài):數(shù)量以及 Token 的歸屬者地址。可以看到不像之前的 BRC20 或者銘文,你的 CAT20 并不是在你地址的 UTXO 上。

Transfer

Transfer 的時候,構(gòu)建交易的輸入和輸出的 token 其里面的數(shù)量需要保持一致。當(dāng)然同一筆交易里面可以有多個不同的 token,只需要不同 token 的其輸入輸出的數(shù)量保持一致就行。

Burn

想要燃燒掉 Token 的話,只需要將 Token 轉(zhuǎn)到一個普通地址上即可。

總結(jié)

可以看到,所有的操作都是由用戶自己去構(gòu)建,靈活性非常大,所以在合約部分需要做很多的校驗邏輯。目前爆出的一些漏洞也是因為校驗邏輯出現(xiàn)了疏忽。

這樣的設(shè)計可以有一些好處:

  1. 如果想要查找所有的 Token 的持有情況,只需要查一下 token 的 utxo 就行,不需要繼續(xù)往上查。

  2. 如果想要查看 mint 的當(dāng)前情況,可以搜索 OP_RETURN 中數(shù)據(jù)帶有 cat 的交易就好。

以上就是腳本之家小編給大家分享的CAT20有什么技術(shù)上的巧妙設(shè)計?CAT20-Fractal BTC上的代幣協(xié)議的詳細介紹了,希望大家喜歡!

聲明:文章內(nèi)容不代表本站觀點及立場,不構(gòu)成本平臺任何投資建議。本文內(nèi)容僅供參考,風(fēng)險自擔(dān)!
Tag:Cat20   Fractal   BTC  

你可能感興趣的文章

更多

熱門幣種

  • 幣名
    最新價格
    24H漲幅
  • bitcoin BTC 比特幣

    BTC

    比特幣

    $ 113579.65¥ 816512.74
    -0.78%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 3574.56¥ 25697.15
    -2.12%
  • ripple XRP 瑞波幣

    XRP

    瑞波幣

    $ 2.9094¥ 20.9153
    -4.04%
  • tether USDT 泰達幣

    USDT

    泰達幣

    $ 0.9998¥ 7.1874
    +0.01%
  • binance-coin BNB 幣安幣

    BNB

    幣安幣

    $ 751.21¥ 5400.37
    -1.27%
  • solana SOL Solana

    SOL

    Solana

    $ 162.4¥ 1167.47
    -3.02%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 0.9999¥ 7.1881
    -0.01%
  • tron TRX 波場

    TRX

    波場

    $ 0.3318¥ 2.3852
    -0.54%
  • dogecoin DOGE 狗狗幣

    DOGE

    狗狗幣

    $ 0.1962¥ 1.4104
    -4.71%
  • cardano ADA 艾達幣

    ADA

    艾達幣

    $ 0.713¥ 5.1256
    -4.49%

幣圈快訊

  • 以太坊基金會更新擴展進展:主網(wǎng)Gas上限已升至4500萬,邁向更高擴展目標(biāo)

    2025-08-06 12:47
    ChainCatcher消息,以太坊基金會近日發(fā)布博客文章,更新“擴展L1”相關(guān)工作進展,主要包括:MariusvanderWijden加入AnsgarDietrichs和TimBeiko,共同領(lǐng)導(dǎo)L1擴展方向; Berlinterop測試后,以太坊主網(wǎng)Gas上限提升至4500萬,為未來邁向1億Gas及更高目標(biāo)奠定基礎(chǔ); 所有主流執(zhí)行層客戶端已集成預(yù)合并歷史記錄到期功能,顯著降低節(jié)點磁盤使用量。據(jù)悉,基金會于今年6月重組研發(fā)團隊并更名為“Protocol”,專注于L1擴展、Blob擴展和用戶體驗優(yōu)化三大戰(zhàn)略方向,同時兼顧安全性與去中心化。
  • 以太坊基金會更新擴展進展:Berlinterop活動后已將Gas上限提升至4500萬

    2025-08-06 12:42
    金色財經(jīng)報道,以太坊基金會發(fā)布博客文章,更新近期在“ScaleL1/擴展L1”方面的最新工作進展,主要包括以下3點:1、MariusvanderWijden加入AnsgarDietrichs和TimBeiko,共同領(lǐng)導(dǎo)L1擴展工作;2、以太坊主網(wǎng)在Berlinterop活動后已將Gas上限提升至4500萬;3、所有主要執(zhí)行層客戶端都搭載了預(yù)合并歷史記錄到期功能,顯著減少了節(jié)點磁盤使用量;據(jù)了解,為應(yīng)對以太坊網(wǎng)絡(luò)需求增長,基金會于6月重組研發(fā)團隊并更名為「Protocol」,聚焦三大戰(zhàn)略目標(biāo):L1擴展(ScaleL1)、Blob擴展及用戶體驗/UX改進,同時確保安全性和去中心化。
  • 數(shù)據(jù):Cumberland與Abraxas_Capital累計提取逾4.6萬枚ETH

    2025-08-06 12:36
    ChainCatcher消息,據(jù)THEDATANERD監(jiān)測,10小時前,Cumberland從Coinbase提取36,918枚ETH,價值約1.3286億美元;4小時前,Abraxas_Capital繼續(xù)從幣安累計提取7,191枚ETH,價值約2,597萬美元。
  • 香港金洲資管在以太坊鏈上推出代幣化有限合伙基金

    2025-08-06 12:25
    金色財經(jīng)報道,香港持牌資產(chǎn)管理公司金洲資產(chǎn)管理宣布推出以美元計價、投資于多元化傳統(tǒng)金融資產(chǎn)的代幣化有限合伙基金“全球紐帶代幣化收入有限合伙基金”,該基金在以太坊公鏈進行發(fā)行,基金份額將同時記錄在區(qū)塊鏈和香港法律認(rèn)可的登記簿上。據(jù)悉,金洲資管目前持有香港證監(jiān)會頒發(fā)的第9類(提供資產(chǎn)管理)牌照。
  • 數(shù)據(jù):某鯨魚10分鐘前向Kraken存入12.5億枚PUMP,或?qū)⑻潛p近100萬美元

    2025-08-06 12:24
    ChainCatcher消息,據(jù)Lookonchain監(jiān)測,鯨魚BfL4vh10分鐘前向Kraken存入了12.5億枚PUMP(409萬美元)。這位巨鯨在5個錢包的公開銷售中花費了500萬USDC購買了12.5億枚PUMP?,F(xiàn)在出售將導(dǎo)致近100萬美元的損失。
  • 查看更多