Safescript – 面向人工智慧時代的程式語言
Safescript 是一種為 AI 代理設計的程式語言,透過靜態分析在執行前證明所有安全屬性,無需沙箱或虛擬機器,徹底消除供應鏈攻擊。它編譯成有向無環圖(DAG),可追蹤資料流和宿主機呼叫,效能開銷為零,啟動時間為零。
文章情報
要點
- Safescript 透過靜態分析確保程式碼安全,無需執行時沙箱。
- 編譯器生成靜態 DAG,可追蹤所有資料流和宿主機呼叫。
- 匯入依賴時,透過簽名和雜湊鎖定行為,任何變化都會導致構建失敗。
- 與容器和微VM相比,Safescript 實現了零冷啟動和零記憶體開銷。
為什麼重要
這條新聞值得關注,因為Safescript 透過靜態分析確保程式碼安全,無需執行時沙箱。
技術影響
可能影響模型選型、推理成本、產品能力和評測基準。
Safescript 是一種專為 AI 代理設計的程式語言,其核心理念是透過靜態分析在程式碼執行前證明所有安全屬性,從而避免使用沙箱或虛擬機器。該專案目前處於 v0.1.0 階段,提供了安裝包(支援 Deno 和 npm),並配有文件和 GitHub 倉庫。
Safescript 的語法類似於 JavaScript,但它是基於 DAG(有向無環圖)的描述語言。每個程式編譯成靜態 DAG,沒有動態分發或執行時意外。這意味著可以在不執行任何程式碼的情況下追蹤每一條資料從來源到目的地的路徑。例如,一個簡單的 HTTP 請求函式中,呼叫的宿主機必須是字串字面量,不能是變數,這使得靜態分析成為可能。
在匯入外部程式碼時,Safescript 要求宣告依賴的許可權,包括允許訪問的宿主機和資料流路徑,並可選地鎖定原始碼的雜湊值。這樣,任何未宣告的宿主機或資料流變更都會導致構建失敗,從而將供應鏈攻擊轉化為構建錯誤。
與其他沙箱方案相比,Safescript 採取了不同的方法。容器(如 Docker)有 500ms 到 10 秒的冷啟動和約 35MB 的記憶體開銷;微VM(如 Firecracker)冷啟動約 125ms,記憶體約 5MB;V8 隔離區(如 Cloudflare Workers)啟動約 5ms,記憶體約 3MB,但需要特定平臺。Deno 的許可權系統是程序級別的,但無法預見程式碼行為。JavaScript 沙箱庫要麼不輕量,要麼不安全。WebAssembly 記憶體安全但需要額外工具鏈和繫結。
Safescript 的解決方案是限制程式碼可以表達的內容,而非執行時行為。編譯器靜態證明所有安全屬性,無需沙箱,因此零開銷、零冷啟動、零逃逸面。只需在自己的程序中呼叫函式即可。
語言特性包括:函式定義、型別系統(字串、數字、布林、物件、陣列)、運算呼叫(如 httpRequest 要求宿主機為字面量)、控制流(if/else,分支僅執行選中路徑,靜態分析時保守聯合)、內建 map/filter/reduce(函式引用,非 lambda,並行執行 map 和 filter,序列執行 reduce)。此外,還有 override 功能,允許替換被呼叫函式,替換會傳遞到整個呼叫圖。
Safescript 的設計使其非常適合 AI 代理執行小段程式碼的場景,無需擔心安全性和效能開銷。