所有文章
指南

Solana 閃電貸係咩?點運作、成本同限制

Solana 閃電貸唔使抵押,借同還都喺同一筆交易入面完成。出借方點確認你會還、要俾啲咩錢、上限喺邊、有咩風險,呢篇講清楚。

閱讀時間 8 分鐘 J Tools Editorial
閃電交易量的運作方式面板:買入和賣出之後,閃電貸在同一筆交易內完結,借來的 100 SOL 已經還清,錢包餘額仍然是 2.41 SOL

Solana 閃電貸係一種唔使抵押、唔查信用嘅借款,條件得一個:借嚟嘅錢要喺同一筆交易完結之前還返。

還款唔見咗或者失敗,網絡會拒絕成筆交易,呢筆借款就好似從來冇發生過。永遠唔會留低欠款,所以借貸協議敢借俾任何錢包。

聽落似漏洞,其實係兩條普通規則一齊起作用:一筆交易要麼全部成功,要麼乜都冇發生;程式可以讀到佢所在交易入面嘅其他指令。閃電貸嘅一切,包括佢喺邊度會失靈,都係由呢兩點嚟。

Solana 閃電貸點樣喺一筆交易入面完成

Solana 將一筆交易當成一串按次序執行嘅指令。Solana 官方文件對交易嘅說明講得好直接:任何一條指令失敗,成筆交易就失敗,所有狀態改動都會回滾。閃電貸就係圍繞呢條規則砌出嚟嘅一串指令。

  1. 借出:借貸程式將代幣由自己嘅金庫轉入你嘅代幣帳戶。
  2. 使用:你自己嘅指令用咗呢筆錢,例如一次兌換、一次清算、存去第二度。
  3. 還款:借貸程式收返同一個數額,有收手續費嘅話再加埋手續費。

如果第三步行唔到,例如兌換攞返嚟嘅比計劃少,第一步會連同其他步驟一齊撤銷,金庫返到原狀。唔使抵押都係呢個原因:普通貸款要抵押,係因為借同還之間隔住時間,而呢度冇。

閃電交易量的運作方式畫面:一筆鏈上交易剛剛開始,第一步先借入 100 SOL,價格和錢包裏的 2.41 SOL 都未有變動

出借方點知還款一定會嚟

借款指令行先,所以佢要喺還款發生之前就做決定。方法係向後讀:Solana 透過一個叫 instructions sysvar 嘅特殊帳戶,將執行緊嗰筆交易入面每一條頂層指令都擺出嚟。Solana 嘅指令內省文件點名嘅正正係呢個用途:檢查某條指令係咪喺同一筆交易入面。

Kamino Lend 公開咗程式原始碼,檢查過程睇得到。佢嘅閃電借款會逐條掃描自己後面嘅指令,要搵到啱啱好一條配對嘅還款先會放款:

  • 還款寫嘅係同一個數額;
  • 列出嘅帳戶一樣,次序都一樣;
  • 佢指返借款所在嘅位置;
  • 後面冇第二筆閃電借款。

同下面另外兩間一樣,Kamino 會拒絕由另一個程式入面發起嘅借款,因為 sysvar 只列頂層指令。marginfi 嘅設計唔同:開始指令檢查交易後面有冇結束指令,結束指令負責跑帳戶嘅健康檢查。

細節好重要。Kamino 嘅還款用一個數字記低借款嘅位置,所以錢包如果喺借款前面插入自己嘅保護指令,還款就會指錯指令,被拒絕。Jupiter Lend 嘅還款唔帶位置,呢個係閃電交易量工具喺嗰度借款嘅原因之一。

Solana 上邊啲借貸協議有閃電貸

有三個借貸協議喺自己嘅開發者文件入面寫明咗 Solana 閃電貸。

出借方 出借方手續費
Jupiter Lend 按文件冇,但管理員手上有一個手續費設定
Kamino Lend 按儲備(reserve)設定;個別儲備可以閂咗閃電貸
marginfi(文件而家以 Project 0 名義發佈) 按文件冇

閃電貸用嚟做咩

呢啲用途有個共通點:只係喺幾條指令之間需要一大筆錢,之後就唔再需要。

  • 套利。喺平嘅地方買,喺貴嘅地方沽,然後還款。價差已經冇咗的話,沽出所得唔夠還款,成筆交易回滾。
  • 清算。用借嚟嘅錢幫一個唔健康嘅借款人還債,以折扣攞到嘅抵押品兌換返,用嚟還呢筆貸款。
  • 換抵押品同再融資。用借嚟嘅代幣還咗一筆貸款,攞返抵押品,兌換咗或者搬去另一間借貸協議,重新借款,再還款。
  • 自我清算。用自己嘅抵押品將債務還落嚟,慳返清算人會攞走嘅溢價。Kamino 嘅「用抵押品還款」流程就係噉做。
  • 循環槓桿。借款,兌換成抵押資產,存入去,再用佢做抵押借款,然後還款。Kamino 嘅 Multiply 就係建喺呢個上面。
  • 交易量。喺同一個池買入一隻代幣再沽返出去,錢包只係俾呢一來一回嘅成本。

最後呢一種就係閃電交易量工具做緊嘅嘢:佢由 Jupiter Lend 借 SOL,喺 PumpSwap、Raydium、Orca 或者 Meteora 其中一個池買入你嘅代幣再沽返,還款同埋俾埋工具自己嘅費用,成個過程只需要簽一次名,錢包彈出嚟之前已經顯示完整嘅交易價格。任何人睇呢筆交易,都會見到同一個錢包嘅一次借款、一次買入同一次沽出。想留住代幣的話,改用經 Jupiter 路由嘅代幣兌換

一筆 Solana 閃電貸要俾啲咩錢

本金唔係成本,佢喺同一筆交易入面就返咗去。你俾嘅係佢周圍嘅一切。

出借方手續費。Jupiter Lend 同 marginfi 嘅文件寫明閃電貸免手續費,Kamino 按儲備設定手續費。Jupiter Lend 嘅管理員仍然可以改呢個設定,所以閃電交易量每次借款前都會讀一次,唔係零就拒絕構建交易。

兌換費同價格衝擊。貸款入面每一次兌換都要俾個池嘅手續費,大額資金打入淺池,個價會向不利方向郁兩次,買入一次,沽出一次,流動性池嘅深度點樣讀講嘅就係呢樣。每筆兌換都要設最低到手數量,因為還款差少少都會拖冧成筆交易;滑點設定點樣定個數字講咗點樣取捨。

網絡費。基本費係每個簽名 5,000 lamport,另外加優先費,按你申請嘅每個計算單元計價;閃電貸申請嘅計算量遠多過一次轉帳。優先費應該俾幾多講咗點樣定。

失敗嘅閃電貸平,但唔係免費:打包入區塊之後回滾嘅交易照樣要俾網絡費,Solana 文件同 Jupiter 嘅閃電貸指南都係噉寫。模擬失敗、根本冇發出去嘅交易,唔使俾任何費用。

閃電交易量的運作方式畫面:一切仍未開始,價格線平穩,錢包裏有 2.41 SOL,用戶正準備按下 100 SOL 的買入賣出按鈕

簽名前先模擬。會失敗嘅閃電貸會以一次失敗嘅模擬出現,嗰陣佢仲未用過你任何錢。

限制:交易大小、計算量同出借方嘅餘額

閃電貸大極都大唔過一筆交易:呢類貸款用嘅 v0 交易最多 1,232 位元組、1,400,000 個計算單元。借款、還款、兌換同埋佢哋用到嘅帳戶全部要塞得入去,所以開發者要靠地址查找表。

佢亦都唔可以跨兩筆交易。sysvar 只列出執行緊嗰筆交易,所以放喺第二筆交易嘅還款,借款指令睇唔到,就算兩筆喺同一個 Jito bundle 入面都一樣。Jito bundle 到底保證啲咩係另一個問題。

仲有出借方手上有幾多。貸款由佢嘅金庫出,有啲出借方仲設咗單筆上限,借貸亦可能被暫停,所以最多借到幾多係當刻讀出嚟嘅數,唔係常數。Kamino 同 marginfi 仲規定一筆交易只可以有一筆閃電貸。

風險:錢包警告同預言機攻擊

預咗會見到錢包警告。Phantom 喺冇辦法順利模擬一筆交易嗰陣會發出警告,列出嘅原因包括交易大小接近上限同交易會失敗。閃電貸本身數額大,又同時調用一個借貸協議同一個 DEX。價格郁得太勁嗰陣模擬會失敗,即係錢包話你知呢筆貸款還唔到。

每一筆閃電貸都係公開嘅。任何人都可以喺區塊瀏覽器打開呢筆交易,Wallet Scope 嘅批量錢包分析仲睇得到背後嗰啲錢包嘅買賣紀錄同盈虧。

更黑暗嘅歷史屬於其他協議。閃電貸攻擊係喺一筆交易之內將價格扭曲:借嚟嘅大額資金推郁一個淺池,而某個協議將呢個池當作價格來源嚟讀,於是照住扭曲咗嘅數字行事。Kamino 嘅文件將時間加權價格同價格區間列為防線。你自己設嘅最低到手數量,亦都可以限制大額兌換周圍嘅三文治攻擊

閃電貸、普通貸款同保證金交易嘅分別

閃電貸 抵押貸款 保證金交易
抵押 價值高過貸款 你嘅保證金加倉位
維持幾耐 一筆交易 直到你還款 帳戶保持健康期間
還唔到嘅話 交易回滾 抵押品被清算 倉位被清算
你要俾 出借方手續費(如有)、兌換費同網絡費 借款期間嘅利息 利息加交易手續費

抵押貸款同保證金交易嘅風險會隨時間累積,因為佢哋開住嗰陣價格一直郁緊。Solana 閃電貸冇「開住嗰陣」:你可能蝕嘅,係一筆回滾交易嘅網絡費,再加上要你自己餘額補返嘅交易虧損。

本文解釋閃電貸點樣運作,唔構成金融、投資、法律或稅務建議。貸款入面嘅交易可能蝕錢,出借方亦可能修改條款或者暫停借貸。

閃電貸常見問題

Solana 閃電貸係咪免費?

貸款本身可以係免費:Jupiter Lend 同 marginfi 嘅文件寫明閃電貸免手續費,Kamino 就按儲備設定手續費。兌換費、網絡費同你所用工具嘅費用照樣要俾。

要唔要抵押或者信用審查?

唔使。還款只要喺同一筆交易入面而且成功就得。你嘅錢包仍然要有 SOL 俾網絡費,同埋補返交易留低嘅缺口。

還唔到會點?

成筆交易被拒絕,入面每項改動都會撤銷,借款都包埋在內。已經打包入區塊嘅交易照樣俾網絡費;模擬失敗、從來冇發出嘅交易乜都唔使俾。

閃電貸可唔可以跨兩筆交易或者一個 Jito bundle?

唔可以。出借方透過 instructions sysvar 搵還款,而佢只列出執行緊嗰筆交易,所以放喺第二度嘅還款唔計數,同一個 bundle 入面都一樣。

點解閃電貸成日出現喺攻擊事件報告入面?

因為佢令任何人都可以喺一筆交易嘅時間入面調動一大筆錢。中招嘅係嗰啲相信淺池現貨價格嘅協議,借嚟嘅資金足以推郁嗰個價。用時間平均價格,呢類攻擊就難得多。

J
作者
J Tools Editorial

J Tools 團隊的文章。

查看 J Tools Editorial 的全部文章 →

相關文章