在2018年,Telegram 團隊推出了一個革命性的公鏈專案——TON,一經發布即吸引了大量眼球,原因在於其背後巨大的潛在Web2用戶群。
TON 的發展幾經波折,在2023年,TON 推出了DeFi 流動性激勵計劃,舉辦了Hack-a-TON 黑客松,旨在吸引全球頂尖開發者為TON 生態注入新鮮血液,共同探索DeFi、NFT 等前沿技術領域。現如今,其正成為一個快速發展、充滿活力的生態系統。
TON 發展歷史
在2018年,Telegram 創立了Telegram Open Network 項目,透過ICO募資約17億美元,但後續Telegram 受到SEC 指控非法募款。在2020年Telegram 團隊同意支付1,850萬美元的罰款與SEC 達成和解,放棄Telegram Open Network 計畫並將資金退還。
Telegram 團隊隨後將Telegram Open Network 網路中所有的代幣鎖進智慧合約中,任何人都可以參與挖礦獲得TON 代幣(2022年6月,TON挖礦結束,TON網路已完全轉變為PoS)。 Telegram 此舉將Telegram Open Network 交給了社區,由名為NewTON社區的開發人員繼續開發。之後NewTON 社區更名為TON 基金會,Telegram Open Network 也更名為The Open Network,這就是現在的TON 公鏈。
而在2020年Telegram 等待SEC 判決時,TON Labs 對Telegram Open Network 進行了分叉,發布了”Free TON” 版本。目前Free TON 已更名為Everscale,且其發展路線和代碼與原先的TON 也有很大不同。
TON 鏈上數據
目前鏈上的驗證器數量為357個,PoS 機制下總質押$TON 數量為5億多個,分佈在24個國家當中。
https://www.tonstat.com/#toncoin
source: https://www.tonstake.com/#/
TON 代幣數據
$TON 在ETH 和BSC 鏈上均有代幣合約。根據EagleEye 平台的數據,在9月17日,$TON 的鏈上交易出現短期峰值,Buy/Sell Ratio 接近1.17。 $TON 價格在9月20日達到近期高點2.6美元。
source: https://eagleeye.space/detail/toncoin
此外,EagleEye 平台監控到中心化交易所MEXC 上近期交易$TON 非常活躍。 10月5日,TON 宣布獲得MEXC Ventures 千萬美元投資,同時雙方建立策略夥伴關係。 MEXC 將為TON 生態提供行銷服務和推廣,提供$TON 抵押借款服務。
source: https://eagleeye.space/detail/toncoin
TON 設計特點
1. 智能合約的呼叫為非同步
與以太坊等公鏈不同,TON 的智能合約之間的呼籲是異步的。這樣的設計提高了可拓展性,因為當一個智慧合約呼叫另一個智慧合約的函數時,這個呼叫不會立即執行,不需要在一個區塊中處理完所有的交易。但同時異步性也增加了開發者在TON 鏈上開發和維護應用的門檻。
source: Beosin
3. 分散式哈希表
區塊鏈網路資料儲存和存取方式會影響其網路的資料一致性、可存取性和安全性。 TON 採用哈希表進行資料儲存。
首先,哈希表是一種資料結構,它透過使用雜湊函數將鍵(key)映射到儲存桶(bucket)中,從而實現快速資料存取。在TON 中,雜湊表是分散式的,意味著資料儲存在網路中的多個節點上。
當需要儲存一個資料項時,TON 使用一個雜湊函數來確定應該將資料項儲存在哪個節點上。
當需要檢索資料時,使用相同的雜湊函數來快速找到儲存資料的節點,允許高效的資料插入、刪除和查找操作。
資料被加密和冗餘地儲存在多個節點上,即使某些節點發生故障或被攻擊,資料仍然可以從其他節點恢復,確保了資料的安全性和持久性。與傳統的雜湊表相比,分散式雜湊表在分散式和大規模環境中提供了更高的效能和可靠性。
以下是TON 與Ethereum、Bitcoin 網路的比較:
Telegram 中推出的「Secret Chats”功能採用端對端加密技術,旨在提高用戶之間訊息傳輸的安全性。進入2022年年末,Telegram 進一步更新,推出了基於區塊鏈的匿名號碼登錄功能,允許用戶無需手機號註冊,僅透過保存TON 錢包的助記詞進行登錄,從而提供一個額外的隱私選項。
2023年1月,TON 進一步擴展其功能,發布了TON Storage。這是一個點對點的檔案共享系統,與Dropbox 和torrents 有某些相似之處。這個系統的特點是簡化文件交換過程,並為儲存在區塊鏈上的文件提供加密保護。同時,為了確保文件的持久存儲,託管這些文件的節點運營商也能獲得相應激勵。
TON 開發語言
在TON 上開發智慧合約,開發者有三種程式語言選擇:Fift、FunC 和Tact。 Fift 偏底層,包含TVM 和Fift 彙編指令,使用Fift 進行開發難度較高,極少開發者選擇使用Fift 語言開發智慧合約。 Tact 是TON 新推出的高階語言,語法類似Typescript,旨在降低開發難度。目前使用最多的開發語言為FunC,它是類似C語言的程式語言。
source: Beosin
在開發TON 智能合約時,Beosin安全團隊建議開發者需要注意以下7點:
1. FunC 與Tact 均為靜態類型語言,開發者需要非常清楚知道其程式碼中變數儲存的資料類型。讀取非預期的類型和值都會造成錯誤。
2. TON 區塊鏈不包含revert訊息。因此開發者需要考慮好程式碼運行的結束路徑。
3. TON 區塊鏈有多個交易階段:計算階段(computational phase),執行階段(actions phase)和反彈階段(bounce phase)。計算階段會執行合約程式碼,執行階段才會發送訊息。因此,開發者在測試程式碼時需要注意交易執行目前位於第幾個階段。
4. FunC 中有method_id 標識符的函數可用於接收區塊鏈內部和外部訊息。
5. TON 區塊鏈是非同步的,開發者需注意處理失敗的呼叫資訊。
6. 注意智能合約中處理反彈資訊(bounced message)的程式碼。如果智能合約發送帶有TON 資產的反彈訊息到其它帳戶,建議在智能合約中扣除gas費。
7. 對於外部訊息,開發者需要注意重播攻擊的風險。可以透過設定計數器或是標識符來避免重播攻擊。
Beosin 安全團隊正式推出針對TON 智慧合約的安全審計服務,旨在提前發現並協助專案方修復專案中的安全風險,以保障使用者與專案方的資產安全。其主要安全審計項包括:
1. 重播攻擊
保護智慧合約不遭受外部資訊(external messages)重播攻擊的最簡單方法是在智慧合約的持久資料中儲存一個32 位元計數器cur-seqno,並在任何入站外部資訊(簽章部分)中預期一個req -seqno 值。只有當簽章有效且req-seqno 等於c007r-seqno 時,外部資訊才會被接受。處理成功後,持久性資料中的cur-seqno 值會增加一個,因此同一外部資訊將不會再被接受。
如果沒有seqno(或其他防止重播攻擊的機制),任何人(通常是資金接收方)都可以讀取交易資料(例如來自區塊鏈瀏覽器)並創建另一筆虛假交易並將其重新發送到原始錢包智能合約並強制其執行再次重新發送TON,最終耗盡其所有資金。
2. 存取控制
在合約中應該只有特定的使用者擁有特定操作的權限。例如操作NFT 轉賬,應該只能由NFT 的owner(或被owner授權的帳戶)進行。合約應該嚴格檢查權限,如果通過,則進行轉帳操作。如果不通過,交易應該回退。
3. 變數覆蓋
FunC 合約中透過set_data 函數寫入變量,如果變量順序或變量名編寫錯誤,則很容易意外地寫入錯誤變量並將原來的變量覆蓋。
4. 業務設計
部分項目合約在設計上就存在被攻擊的風險,需要嚴格地從攻擊者的角度考慮設計上是否有攻擊的可能性。
5. 業務實現
在一些專案中,設計上並不存在攻擊風險,但是在具體實施時,並未按照原有設計或實現方式存在問題,導致了漏洞的產生。
6. 錯誤處理
由於TON 的設計,程式碼的結束路徑需要開發者考慮。合約可能會收到回退訊息(bounced messages),合約需要對這些訊息進行正確的處理。另外,在處理回退訊息時還需要考慮gas耗盡的情況,這同樣會產生意外的錯誤。
7. 校驗缺失
訊息流每個階段都需要檢查,攻擊者可以在訊息流第一階段執行的同時啟動另一個訊息流,導致先前的檢查失效。
8. 訊息流錯誤
應該確保訊息流符合設計,否則會帶來意外的錯誤和損失。
9. 資料結構檢查
FunC 裡面會有函數進行訊息傳遞和階段,可能有問題,(例如:end_parse() 函數,檢查切片是否為空,否則拋出異常。它可以確保切片具有預期的效果。拋異常的邏輯在程式碼中編寫時可能會寫的有問題,例如拋異常但是沒回傳值。其他函數也可能會有一樣的問題)。
10. 序列化訊息傳遞問題
可能會有接收或get函數中序列化訊息錯誤,例如send_raw_message函數。
a. 函數命名,配置命名,私有變數命名,get函數是否合理回傳值,revert判斷,0位址檢查。
b. 一些特權風險,func中也會有這樣的函數,可以提中心化或權限過高。
FunC 中的msg 呼叫和常規不太一樣,簽章和呼叫長度是按照位置發送的,可能有問題。
TON 生態
TON 生態中目前擁有551 個apps, 分佈在19個以上的細分領域中。
錢包
Ton Space 是@wallet 中的非託管錢包,是Telegram 中嵌入式的原生錢包,可用於導入現有的TON 區塊鏈錢包或創建新的TON 區塊鏈錢包。用戶還可以選擇使用TG帳號和郵箱保存對應的私鑰,並進行NFT 的檢視、傳送和交易。 Ton Space 即將支援更多功能,包括DeFi 應用程式如DEX、質押和借貸協議等,用戶可以使用TON Connect 存取TON上的第三方dApp。
https://wallet.tg/
目前支援平台數量最多的TON 區塊鏈錢包為Tonkeeper,支援網頁端與行動端,在行動端還可查看用戶持有的TON 鏈上的NFT。值得注意的是,TON 的錢包為智慧合約錢包,除了為實現TON 網路的更多分片外,還為錢包提供了實現更多複雜應用的可能。
https://tonkeeper.com/
DEX
目前TON 生態上共有6個主要的去中心化交易所,包括Megaton Finance、ION Finance、DeDust、STON.fi 、Flex 和Tegro Finance。這些DEX 在用戶受眾方面都有不同重點,Ston.fi 和DeDust 擁有最大的用戶群(進行swap的用戶),而DeDust 和Megaton 則有更活躍的用戶。
https://megaton.fi/pool
此外,去中心化訂單簿模式的交易所Storm Trade 正在測試中,支援網頁端的同時也支援Telegram bot 模式,用戶未來可直接使用Storm Trade 開發的bot進行互動。
借貸
TON 鏈的第一個借貸項目Evaa Protocol 預計在10月10日上線Beta版本。 7月19日,Evaa Protocol 宣布TONcoin.fund 成為其策略投資者,10月2日在Tonstarter 平台完成了私募融資13萬美元。借貸協議Evaa Protocol 的加入將有益於TON 生態系統的資產流動性。
https://evaa.finance/
跨鏈橋
目前TON 官方跨鏈橋支援資產在TON 與ETH、與BSC 之間的互跨,其它鏈的官方跨鏈橋仍在開發中。
此外,第三方跨鏈橋有Orbit Bridge,Wallet Bridge 和Tontake Bridge。 Orbit Bridge 與Megaton Finance 皆由韓國公鏈Klaytn 上的DEX 平台KlaySwap 團隊開發,支援11條公鏈的互跨。 Wallet Bridge 與Tontake Bridge 為Telegram bot 形式,但使用人數較少,使用者需注意互動風險。
數據平台
https://beta.redoubt.online/
其開發團隊Devnull 在今年7月Beosin 支持的Hack-a-Ton 黑客松中獲得二等獎,後續將支援更多TON 相關的數據分析。
TON的現在與未來
目前,TON 正在大力發展DeFi 生態。今年,TON 已經舉辦了兩場大型黑客松,主題都與DeFi相關。 Beosin作為Hack-a-ton x DWF Labs x AWS 的獨家安全夥伴為開發者提供workshop 指導與每週答疑,解決開發者建置TON 生態專案的挑戰。
Beosin成為TON黑客松合作夥伴
此外,TON 在各地區大力舉辦社區聚會與開發者訓練營,旨在吸引更多開發者參與TON 生態建設。 Beosin 分別在今年7月和8月在新加坡、巴厘島作為本地合作夥伴承辦了TON 線下meetup,並為首爾Tact BootCamp 的參賽隊伍進行了合約開發培訓和獲獎項目安全審計折扣。
Beosin 與 TON 社區合作
在第二次黑客松進行的同時,TON 在6月6日開啟了生態項目流動性激勵計劃的申請,以支持TON 生態的DeFi項目方和吸引更多用戶。
Unibot、Banana Gun 等Telegram trading bot,它們後續支持TON 生態代幣的交易並非難事。
Beosin 的EagleEye 鏈上監測平台在未來也計劃上線Telegram bot,為廣大用戶提供快速的專案資訊與資料查詢。目前,EagleEye 已支援分析鏈上巨鯨位址,檢測合約風險,監控專案社媒平台,為使用者提供全面的專案資訊。
https://eagleeye.space/detail/toncoin
綜上,隨著生態的逐步建構和TON 在行動端的優勢,TON 依然具有非常大的潛力,在未來有很大機會吸引海量的用戶參與其生態。