同樣是「換幣」,按下「Swap」和按下「Bridge」走的是兩套完全不同的底層機制:Swap 是在同一條鏈上、透過智能合約把一種代幣換成另一種;Bridge(跨鏈橋)則要把資產從一條鏈「搬」到另一條鏈,所以更慢、風險也更高。這篇文章把它們拆開講清楚:一筆 swap 交易裡到底發生了什麼、跨鏈橋怎麼把一個幣搬到另一條鏈、為什麼跨鏈比較慢也比較危險,以及你按下按鈕時錢包實際上簽了什麼、該注意哪些坑。

先講一個關鍵前提:區塊鏈之間天生互不相通。以太坊不知道 Solana 上發生了什麼,比特幣也讀不到以太坊的帳本。每條鏈都是一個封閉的帳本世界。理解這一點,後面所有的「為什麼」都會變得很自然。

一、同鏈換幣(Swap):沒有對手方的買賣

傳統交易所 vs. DEX

在傳統交易所,你要賣 ETH 換 USDC,系統得「撮合」——找到另一個剛好想用 USDC 買 ETH 的人,這叫訂單簿(order book)。沒有對手方,你的單子就掛在那裡成交不了。

去中心化交易所(DEX,如 Uniswap)走的是另一條路:自動做市商(AMM, Automated Market Maker)。這裡沒有買賣雙方互相等待,你永遠是在跟一個「資金池」交易。

流動性池與恆定乘積

想像一個池子裡放了兩種幣,比如 ETH 和 USDC,由很多人(流動性提供者,LP)一起存進去。這個池子用一條簡單到不可思議的數學公式決定價格:

x × y = k(恆定乘積公式)

x 是池裡 ETH 的數量,y 是 USDC 的數量,k 是一個固定的乘積。任何一筆交易都必須讓 x 乘以 y 維持等於 k。

舉個具體例子。假設池裡有 10 顆 ETH 和 20,000 USDC,那麼 k = 10 × 20,000 = 200,000。此時 1 顆 ETH 的「價格」就是 20,000 / 10 = 2,000 USDC。

現在你要用 USDC 買 1 顆 ETH。買走後池裡剩 9 顆 ETH,為了讓乘積維持 200,000,USDC 必須變成 200,000 / 9 ≈ 22,222。也就是說,你得付 22,222 − 20,000 ≈ 2,222 USDC 才能換到那 1 顆 ETH——比「牌價」2,000 貴。

滑點(slippage)就是這樣來的

你付的 2,222 比牌價 2,000 貴的這一段,就是價格衝擊(price impact),俗稱滑點。原因很直觀:你的買單把池子裡的 ETH 變少了,東西變稀有,價格自然往上跑。交易量相對池子越大,滑點越嚴重;池子越深(流動性越多),同樣一筆交易的滑點越小。 這就是為什麼大池子能讓價格穩、小池子一動就劇烈跳動。

這也回答了「為什麼能即時換」:因為你不需要等任何對手方,那條曲線本身就是你的對手方。公式隨時都能算出一個成交價,合約收下你的幣、按公式吐出對應數量的另一個幣,一筆交易就結束了。

手續費去哪了

每筆 swap 會被抽一小段費用(Uniswap V2 是 0.3%),這筆錢不歸平台,而是分給把幣存進池子的 LP——這是他們願意提供流動性的誘因。新一代的 AMM(如 Uniswap V3)讓 LP 可以把資金集中在某個價格區間,提高資金效率、進一步壓低滑點,但核心邏輯仍是同一條「用公式取代訂單簿」的思路。

一筆 swap 實際發生什麼

當你在介面按下 swap,背後其實常常是兩筆動作:

  1. Approve(授權):ERC-20 代幣有個規定——你要先「准許」某個合約動用你錢包裡的這個幣,DEX 合約才碰得到它。所以第一次用某個幣去 swap,錢包會先跳一個 approve 簽名。
  2. Swap(兌換):授權後,真正的兌換交易才送出。合約把你的 A 幣收進池子、按 x×y=k 算出 B 幣、扣掉手續費,把 B 幣轉給你。

整個過程在同一條鏈上、同一個區塊時間內完成,所以「即時」。

二、跨鏈(Cross-chain):把幣「搬」到另一條鏈

同鏈 swap 再快,也跨不出那條鏈。問題來了:以太坊上的 USDC 要怎麼跑到 Solana 上?

答案是——它根本沒有「跑過去」。 幣不會真的離開原本的鏈。跨鏈橋做的事,本質上是一套「在 A 鏈鎖住、在 B 鏈生出對應物」的把戲。以下是幾種主流機制。

機制 1:鎖定 + 鑄造(Lock-and-Mint)

最常見的模式,可以用「寄物櫃 + 提領憑證」來理解:

  • 你把 100 顆原生代幣存進 A 鏈上的橋接合約,它們被鎖住(lock),動不了。
  • 橋在 B 鏈上**鑄造(mint)**出 100 顆「包裝代幣(wrapped token)」給你。

這個 wrapped token(例如 WBTC、wrapped ETH)就是一張「提領憑證」——它代表「A 鏈那邊有 100 顆真貨被鎖著」。要換回去時,B 鏈上的 wrapped token 被銷毀(burn),A 鏈上的鎖才解開、把原幣還你。鎖住的真幣數量,永遠等於外面流通的包裝幣數量,這個 1:1 對應是整個系統的命根子。

機制 2:銷毀 + 鑄造(Burn-and-Mint)

如果發幣方自己同時掌控多條鏈上的代幣合約(像 Circle 的 USDC 用 CCTP 這樣做),就能更乾淨:

  • A 鏈上把你的 100 顆幣直接銷毀
  • B 鏈上鑄造出 100 顆原生的真幣給你。

沒有寄物櫃、沒有包裝幣,兩邊的總供應量永遠一致。好處是不必養一大筆鎖定資金,缺點是只有「握有鑄幣權」的發行方才能這麼做。

機制 3:流動性池橋(Liquidity Pool / Lock-and-Unlock)

這種橋兩邊各備好一桶資金(流動性池):

  • 你在 A 鏈把幣存進池子。
  • 橋直接從 B 鏈那桶現成的資金裡,把等值的原生幣解鎖給你。

你拿到的是 B 鏈上「真正的原生幣」而不是包裝幣,通常更快、體驗更好,但代價是橋必須在每條鏈都預先囤著足夠的資金,否則池子被抽乾就換不了。

橋怎麼「知道」對面發生了什麼?驗證層

上面三種機制都有一個共同的致命問題:B 鏈的合約憑什麼相信「A 鏈上真的鎖了 100 顆」? 兩條鏈互不相通,B 鏈看不到 A 鏈的帳本。中間一定要有人或某種機制來「傳話並擔保」,這就是橋的驗證層(messaging / verification layer),常見幾種:

  • 外部驗證者(多簽 / MPC):一群指定的節點盯著 A 鏈,看到鎖定事件後共同簽名,通知 B 鏈放行。信任假設是「這群簽名者不會作惡、私鑰不會外洩」——這也是最常被攻破的一環。
  • 輕客戶端(light client)+ 中繼者(relayer):在 B 鏈上跑一個能驗證 A 鏈區塊頭與密碼學證明的精簡程式,由中繼者把證明搬過來。信任假設最接近底層鏈本身,安全性較高,但開發複雜、成本也高。
  • 樂觀式(optimistic):先假設訊息是真的,留一段「挑戰期」讓任何人提出反證。安全但慢。

一句話總結:跨鏈橋的安全性,等於它「驗證對面狀態」這套機制的安全性。

為什麼跨鏈比同鏈慢

同鏈 swap 在一個區塊內就結束;跨鏈卻牽涉兩條鏈各自的出塊與確認,外加中間的驗證與中繼。橋通常要等來源鏈「確認到一定區塊數」才敢放行(避免來源鏈發生重組讓鎖定被反悔),這段等待從幾分鐘到更久都有可能。慢,是為了安全買的保險。

三、實際操作層面:你按下按鈕時發生什麼

把前面拼起來,從使用者視角看一次完整流程:

  • Approve(授權):跟 swap 一樣,動用 ERC-20 代幣前要先授權橋接合約。很多釣魚就藏在這一步(後面詳述)。
  • 簽名送出交易:你在錢包簽的,是「把幣鎖進 / 銷毀於來源鏈合約」這筆交易。簽名代表你授權這個動作,不是「把私鑰給對方」。
  • Gas 怎麼算:gas 是付給區塊鏈本身(礦工 / 驗證者)的運算費,不是給 DEX 或橋。費用 ≈ 這筆交易的運算複雜度 × 當下的網路擁擠程度(gas price)。跨鏈通常兩條鏈都要付 gas:來源鏈付鎖定 / 銷毀,目的鏈付鑄造 / 解鎖(有些橋會把目的鏈那段折算進費用裡)。
  • 到帳要等什麼:等來源鏈確認 → 等驗證層傳話並擔保 → 等目的鏈把幣鑄造 / 解鎖給你。任何一段塞車,到帳就變慢。

四、安全與常見的坑

跨鏈與 swap 的便利背後,藏著幾個真實會讓人賠錢的地雷:

  1. 滑點設定:滑點容忍度設太低,價格稍動交易就失敗、白付 gas;設太高(或用「無限滑點」),則可能被三明治攻擊 / MER 機器人夾在中間,用極差的價格成交。一般主流幣設 0.5%–1% 即可,冷門小池才需放寬。

  2. 代幣授權(approve)風險:這是最大的坑。很多介面預設請你授權無上限額度(unlimited approval),圖方便。問題是只要你授權過的那個合約有漏洞、或它根本是釣魚合約,對方就能在日後把你錢包裡那個幣全部搬走。對策:盡量只授權「這次要用的數量」,並定期到 Etherscan 之類的工具撤銷(revoke)不再用的舊授權。

  3. 假代幣 / 假合約:任何人都能發一個叫「USDC」的山寨幣,或架一個長得一模一樣的釣魚網站。永遠從官方管道取得合約地址,別在搜尋廣告、空投連結裡隨手點 approve。

  4. 橋的信任假設:這是跨鏈獨有的系統性風險。2022 年是橋的災難年——Ronin 橋因為多簽驗證者的私鑰被社交工程釣走(駭客拿到 9 個驗證節點中的 5 個控制權),被盜超過 6 億美元;Wormhole 橋則因為合約沒有正確驗證簽名,讓攻擊者無中生有鑄造代幣,損失約 3.26 億美元。共通教訓是:橋把大量資產集中在少數驗證者或一段合約邏輯上,一旦那個信任點被攻破,鎖在裡面的真幣就全沒了,而你手上的包裝幣會瞬間變成沒有抵押的廢紙。用橋前,先問一句:「這座橋的安全靠誰擔保?那個擔保者被攻破會怎樣?」

五、實戰流程拆解:從 USDT 到 YES/NO 份額

前面的 swap、bridge、wrap 不是各自獨立的概念,真實操作裡它們常常一個接一個串成一條鏈路。最典型的例子,是到預測市場(以 Polymarket 為例)下注:你手上是穩定幣 USDT,最後要變成「某個事件會發生 / 不會發生」的 YES/NO 結果份額。整條路徑長這樣:

USDT
  │  swap(同鏈兌換)

USDC
  │  bridge(跨鏈到 Polygon)

USDC(Polygon)
  │  wrap(包裝成協議抵押品)

pUSD(Polymarket USD)
  │  CTF split(拆分成互補的結果代幣)

1 份 YES + 1 份 NO

四個箭頭,對應四種完全不同的鏈上動作。逐一拆開,看每一步你手上實際握著什麼、為什麼非走這步不可。

① USDT →(swap)→ USDC:同鏈把穩定幣換成「對的那一種」

USDT 和 USDC 都是錨定美元的穩定幣,但它們是不同公司發行、不同的合約地址,對協議來說是兩種完全不同的代幣。目標協議只認 USDC 當抵押品,你手上卻是 USDT,所以第一步要先在同一條鏈上把 USDT 換成 USDC。

這就是文章開頭那段 swap:在 DEX 上跟資金池交易,按 x×y=k(穩定幣對通常用 Curve 那種專為「兩個幣價格幾乎相等」設計的曲線,滑點極小)換出 USDC。換完,你錢包裡的代幣從 USDT 變成 USDC,還在原本那條鏈上(例如以太坊主網)。

② USDC →(bridge)→ USDC(Polygon):把抵押品搬到協議所在的鏈

Polymarket 跑在 Polygon 上,而你的 USDC 還在以太坊。這一步就是第二節講的跨鏈橋:以太坊上的 USDC 被鎖定 / 銷毀,Polygon 上對應生出等量的 USDC。

要特別認清一件事——「Polygon 上的 USDC」不一定等於 Circle 原生發行的 USDC。很多情況下它是透過橋過來的 bridged USDC(USDC.e),本質上是一張「以太坊那邊有等量 USDC 被鎖著」的提領憑證(就是第二節的 wrapped token 概念)。對使用者來說它一樣是 1 美元,但它的價值是靠那座橋擔保的。走完這步,你手上是一筆躺在 Polygon 上的 USDC,但它還不是 Polymarket 內部能直接使用的抵押品。

③ USDC(Polygon) →(wrap)→ pUSD:包裝成協議自己的抵押單位

這裡的 wrap(包裝)和跨鏈無關,是發生在同一條鏈(Polygon)上的「換殼」:把 USDC 存進 Polymarket 的 CollateralOnramp 合約、呼叫 wrap(),合約鎖住你的 USDC,鑄給你等量的 pUSD(Polymarket USD)。pUSD 是 Polymarket 自己的 ERC-20 抵押代幣,1:1 由 USDC 撐腰,沒有演算法錨定、沒有部分準備,純粹就是「一張 USDC 的提領憑證」,隨時能透過 CollateralOfframpunwrap() 換回 USDC(2026 年的交易所升級後,pUSD 取代了舊的 bridged USDC.e,成為平台統一的結算單位)。

協議為什麼要多這一層?因為當所有市場、所有訂單都用同一種內部抵押品結算,帳務、撮合與清算的邏輯會乾淨非常多,資金效率也更好。對你而言,pUSD 不是什麼新的風險資產,它的價值始終等於背後那 1 顆 USDC。走完這步,你手上是 pUSD,終於是能拿去「下注」的抵押品了。

④ pUSD →(CTF split)→ YES/NO 份額:把抵押品拆成互補的結果代幣

這是整條鏈路的核心,也是「預測市場份額」真正被造出來的一步。Polymarket 的份額建立在 Gnosis 條件代幣框架(Conditional Token Framework, CTF) 上,核心合約繼承自 ERC-1155

關鍵動作叫 split(splitPosition,拆分):你把 1 pUSD 交給 CTF 合約,合約把它鎖住,回鑄給你一組互補的結果代幣——在一個二元市場裡,就是 1 份 YES + 1 份 NO。這組代幣有兩個關鍵性質:

  • 同時握有整組(1 YES + 1 NO),等於沒下注:因為無論結果是 YES 還是 NO,你都拿得到那 1 美元,所以隨時可以把這組合併(mergePositions)換回 1 pUSD。
  • 下注 = 只留你看好的那一邊:你把不要的那一份(例如 NO)在訂單簿上賣掉,換回一些 pUSD,手上就只剩 YES。這時你才真正押注「YES 會發生」。

所以「買份額」在底層其實是兩件事的組合:先 split 把抵押品拆成 YES+NO,再把另一邊賣掉。實務上你在 App 上只按一個「Buy」,這些拆分與撮合都被交易所合約包在背後一次做完。

市場結算後怎麼領錢? 等預言機(oracle)回報結果(reportPayouts),你就能用 redeemPositions(贖回) 把手上的代幣換回抵押品:贏的那一邊每份兌 1 美元,輸的那一邊歸零。 這就是為什麼一份 YES 的市價會落在 0 到 1 美元之間——它本質上是「這件事會發生」的機率,乘上結算時的 1 美元。

為什麼要這麼多步?

每一步只解決一個問題,串起來才走得通:swap 解決「穩定幣種類不對」、bridge 解決「資產不在協議的鏈上」、wrap 解決「不是協議的內部結算單位」、CTF split 則把一筆死的抵押品,變成一個能漲能跌、可買賣、可贖回的「部位」。看懂這條鏈,你按下那顆「Buy」時,就知道你的錢實際上經過了哪四道關卡。

一句話收尾

同鏈 swap 是跟一條數學曲線做沒有對手方的買賣;跨鏈不是搬錢,而是「這邊鎖住、那邊生出對應物」,再靠一套驗證機制讓兩條互不相通的鏈彼此相信。 看懂這兩件事的差別,你就能判斷一筆操作的速度、成本與風險各自來自哪裡。

🔗 參考連結

💬 想深入?複製下面這段到 AI(ChatGPT、Claude…),再打上你的問題

你是我的「區塊鏈」學習教練。我正在搞懂「換幣(swap)與跨鏈(bridge)的實際運作原理」,重點包括:AMM 與恆定乘積公式 x×y=k、流動性池與滑點、為什麼能即時換、跨鏈橋的鎖定+鑄造/銷毀+鑄造/流動性池橋三種機制、wrapped token、驗證層(多簽/MPC、輕客戶端、樂觀式)、approve 授權風險、橋為什麼會被攻擊。請用淺白、可操作的方式回答我接下來的問題,需要時給例子和步驟。我的問題是:

↑ 複製整段,貼到 AI,最後接上你的問題即可。