前言
通信技術讓世界具備了更多的連接,我們每個人都在這樣的連接中被影響和受益著。同時這種連接也產生了更多對于監視需求的便利。許多人的隱私或自由可能會在不經意間受到影響,而這也催生了對于隱私保護的需求。通常,由于中心化服務器的存在,我們很難實現完整的隱私保護,而分布式的存儲等技術,則讓其成為了可能。
無數的開發者加入了Web3的開發實現中,陸續構建一個又一個偉大的Dapp,他們在普通用戶與區塊鏈底層技術中扮演著重要的中間人角色。與此同時,對于普通人接觸的最多的web-ui與IPFS,它們之間的安全也值得被探索。
知道創宇區塊鏈安全實驗室將對此進行詳細解讀。
Web-interface與IPFS
1.Web-interface是什么
在Web3.0中,分布式的公鏈技術設施提供了各種接口供給使用者調用,但這些接口無法直接被普通用戶直接去使用。對用戶來說,Web-interface是用戶和運行在Web服務器上的軟件之間的橋梁。用戶使用瀏覽器連接Web-interfacce后進行展示與交互,同時通過錢包進行身份識別。對底層區塊鏈基礎設施來說,Web-interface是公鏈/智能合約的一層封裝,將其包裝成為友好的頁面可直接可用的功能展示給用戶。其結構功能類似如下的圖片:
2.IPFS是什么
星際文件系統是分布式存儲和共享文件的網絡傳輸協議,它將現有的成功系統分布式哈希表、版本控制系統Git、BitTorrent、自認證文件系統與區塊鏈相結合。正是這些系統的綜合優勢,給IPFS帶來了以下顯著特性:
1.永久的、去中心化保存和共享文件
2.點對點超媒體:P2P保存各種各樣類型的數據
3.版本化:可追溯文件修改歷史
世界人工智能大會法治論壇舉行,聚焦生成式人工智能治理、元宇宙規制等熱點:金色財經報道,昨天,2023世界人工智能大會法治論壇舉行。本次論壇主題為《數字治理:生成式人工智能之法律回應》。論壇發布了《世界人工智能法治藍皮書(2023)》《人工智能法治發展指數4.0》《中國人工智能法治發展評估報告(2022)》。藍皮書聚焦世界人工智能法治發展最新動態,搜集匯總各國有關人工智能法治發展的戰略、政策、法律、理論研究、重大項目應用、典型司法案例等方面的最新資料,尤其是以ChatGPT為代表的最前沿的生成式人工智能治理、元宇宙規制等熱點問題,通過分析、評估,形成了較為客觀、公正、準確、全面的分析報告。[2023/7/8 22:25:43]
4.內容可尋址:通過文件內容生成獨立哈希值來標識文件,而不是通過文件保存位置來標識
當用戶將文件添加到IPFS時,該文件會被拆分為更小的塊,經過加密哈希處理并賦予內容標識符CID作為唯一指紋;當其他節點查找該文件時,節點會詢問對等節點誰存儲了該文件CID引用的內容,當查看、下載這份文件時,他們將緩存一份副本——同時成為該內容的另一個提供者,直到他們的緩存被清除。
IPFS使用實例
網站https://ipfs.io提供一個帶UI界面的客戶端,安裝運行后會啟動IPFS的服務,顯示當前的節點ID、網關和API地址:
我們導入想上傳的文件,上傳文件成功后會生成該文件的CID信息,通過QmHash我們也能查找到指定的文件:
由于IPFS是分布式存儲和共享文件的網絡傳輸協議,因此上傳成功的文件被拷貝到其他節點上后,即使我們本地節點主動刪除,依然可以在IPFS網絡查詢到該文件:
去中心化平臺DYdX考慮推出更多子DAO:金色財經報道,去中心化平臺DYdX現在正在討論創建更多的子DAO,使生態系統的管理更加分散。在討論超越目前的兩個子DAOS,一個負責dYdX的撥款項目,另一個負責其運營活動的時候,dYdX社區正準備在Cosmos區塊鏈上升級到v4。根據一篇博客文章,其目標是使dYdX成為 \"一個完全去中心化的協議版本\"。
此外,根據dYdX基金會(一個旨在促進去中心化治理的獨立非營利組織)的另一篇治理文章,運營子DAO將于6月19日到期。[2023/5/18 15:10:16]
IPFS中的傳統安全問題
根據使用實例,我們知道IPFS允許上傳任意類型的文件,由于允許Web訪問下載文件的特性,導致攻擊者可以像傳統安全一樣使用HTML或SVG文件實現釣魚:
以https://IPFS.io網關為例,上傳一個Metamask釣魚網站,由于存儲在受信域名里,受害者訪問該文件很可能攻擊成功:
但由于IPFS只能通過CID查詢文件,使得釣魚攻擊的利用面很窄,沒辦法定向的實施攻擊。既然CID是發起定向攻擊的關鍵,那我們回頭研究下CID。
IPLD是構建IPFS的數據層,它定義了默克爾鏈接、默克爾有向無環圖(Merkle-DAG)和默克爾路徑三種數據類型,通過IPLD發送到IPFS的數據保存在鏈上,使用者會收到一個CID來訪問該數據。
Web3能力聚合方案Daylight推出Scout社區:4月7日消息,Web3 能力聚合方案 Daylight 宣布推出 Scout 社區,允許任何人向 Daylight 提交能力(abilities),添加能力的 Scout 有資格獲得新的 Daylight NFT。早期 Scout 社群主要為創作者和 Degens。
Daylight 于去年完成 300 萬美元種子輪融資,Framework Ventures 和 Chapter One 領投,參投方包括 6th Man Ventures、Spice Capital 和 OpenSea 等。[2023/4/7 13:50:21]
CID是一個由Version、Codec和Multihash三部分組成的字符串,目前分成V0和V1兩個版本。V0版采用Base58編碼生成CID,V1版包含表明內容的編號種類Codec、哈希算法MhType和哈希長度MhLength共同構成:
`CID::=<multibasetype><cid-version><multicodec><multihash>`
我們以go-cid生成一組CID測試:
packagemain
import(
"fmt"
mc"github.com/multiformats/go-multicodec"
mh"github.com/multiformats/go-multihash"
cid"github.com/ipfs/go-cid"
)
const(
File="./go.sum"
)
funcmain(){
pref:=cid.Prefix{
OpenAI CEO旗下加密項目Worldcoin推出去中心化身份協議World ID:金色財經報道,由 OpenAI 首席執行官 Sam Altman 聯合創立的加密項目 Worldcoin 啟動一個名為 World ID 的開放且無需許可的身份協議。通過 PoP 憑證,World ID 協議使每個人都可以在線證明自己的人性,而無需第三方。該協議利用零知識證明來最大化隱私,并最終將通過 World ID 本身由人們管理。
目前,硬件設備、移動客戶端和部署機制的初始版本已經實現,所有這些都將逐漸去中心化。應用程序可以通過最近推出的SDK與協議上的此證明進行交互。該協議本身是無需許可的,旨在最終支持任何人都可以證明的各種憑證.?World ID 將與經過驗證的憑證標準兼容,允許表示個人社交互動的多樣性(靈魂綁定令牌、交叉社交數據等)。?截至目前,已有超過140 萬人參與。[2023/4/1 13:39:17]
Version:0,
Codec:mc.Raw,
MhType:mh.Base58,
MhLength:-1,
}
c,err:=pref.Sum(byte("CIDTest"))
iferr!=nil{...}
fmt.Println("CID:",c)
}
可以看到在生成CID的過程中,無法實現結果的預測和更換,我們再往上分析上傳文件的部分。將文件上傳到IPFS,通過塊的方式保存到本地blockstore的過程位于/go-ipfs-master/core/commands/add.go:
typeAddEventstruct{
Namestring
Hashstring`json:",omitempty"`
Bytesint64`json:",omitempty"`
穩定幣USDC在過去兩周內市值暴跌100億美元:金色財經報道,隨著穩定幣 USDC 市值跌至約 325 億美元,過去兩周下跌了約 100 億美元,USDC 繼續出現大規模贖回。The Block 研究主管 Steven Zheng 表示,看來 3 月初的事件已經損害了加密貨幣投資者和交易者對穩定幣可靠性的信任,盡管 Circle 為 USDC 提供了沒有延遲的全額贖回。
過去 24 小時內的凈贖回額接近 4.63 億美元,銷毀了 4.87 億美元,鑄造了 2410 萬美元。根據 The Block 的數據,同期 USDC 的市值從 333 億美元左右增至 328 億美元。[2023/3/31 13:37:41]
Sizestring`json:",omitempty"`
}
const(
quietOptionName="quiet"
quieterOptionName="quieter"
silentOptionName="silent"
progressOptionName="progress"
trickleOptionName="trickle"
wrapOptionName="wrap-with-directory"
onlyHashOptionName="only-hash"
chunkerOptionName="chunker"
pinOptionName="pin"
rawLeavesOptionName="raw-leaves"
noCopyOptionName="nocopy"
fstoreCacheOptionName="fscache"
cidVersionOptionName="cid-version"
hashOptionName="hash"
inlineOptionName="inline"
inlineLimitOptionName="inline-limit"
)
把上傳文件信息保存到AddEvent對象中,再通過/go-ipfs-master/core/coreunix/add.go里的addALLAndPin和fileAdder.AddFile方法遍歷文件路徑,讀取文件內容,將數據送入塊中:
func(adder*Adder)AddAllAndPin(ctxcontext.Context,filefiles.Node)(ipld.Node,error){
ctx,span:=tracing.Span(ctx,"CoreUnix.Adder","AddAllAndPin")
deferspan.End()
ifadder.Pin{//knownsec如果被鎖定
adder.unlocker=adder.gcLocker.PinLock(ctx)
}
deferfunc(){
ifadder.unlocker!=nil{
adder.unlocker.Unlock(ctx)
}
}()
iferr:=adder.addFileNode(ctx,"",file,true);err!=nil{
returnnil,err
}
mr,err:=adder.mfsRoot()
iferr!=nil{
returnnil,err
}
varrootmfs.FSNode
rootdir:=mr.GetDirectory()//knownsec獲取路徑
root=rootdir
err=root.Flush()
iferr!=nil{
returnnil,err
}
_,dir:=file.(files.Directory)
varnamestring
if!dir{
children,err:=rootdir.ListNames(adder.ctx)//knownsec展示當前路徑文件名
iferr!=nil{
returnnil,err
}
iflen(children)==0{
returnnil,fmt.Errorf("expectedatleastonechilddir,gotnone")
}
name=children
root,err=rootdir.Child(name)
iferr!=nil{
returnnil,err
}
}
err=mr.Close()
iferr!=nil{
returnnil,err
}
nd,err:=root.GetNode()
iferr!=nil{
returnnil,err
}
err=adder.outputDirs(name,root)
iferr!=nil{
returnnil,err
}
ifasyncDagService,ok:=adder.dagService.(syncer);ok{
err=asyncDagService.Sync()
iferr!=nil{
returnnil,err
}
}
if!adder.Pin{
returnnd,nil
}
returnnd,adder.PinRoot(ctx,nd)
}
最后再利用addFile函數完成文件的上傳:
func(adder*Adder)addFile(pathstring,filefiles.File)error{
varreaderio.Reader=file
ifadder.Progress{
rdr:=&progressReader{file:reader,path:path,out:adder.Out}//knonwsec按字節讀取文件
iffi,ok:=file.(files.FileInfo);ok{
reader=&progressReader2{rdr,fi}
}else{
reader=rdr
}
}
dagnode,err:=adder.add(reader)//knownsec添加上傳文件
iferr!=nil{
returnerr
}
returnadder.addNode(dagnode,path)
}
分析代碼發現,IPFS在打包文件上傳返回CID的整個過程,都沒實現劫持的可能,而成功上傳的文件無法實現修改其內容,同樣無法實現篡改:
后記
Web3建立在區塊鏈技術之上,無需中央機構即可維護。其允許用戶在互聯網上保護他們的數據,并允許網絡平臺的去中心化。而IPFS技術對他來說就如同一臺電腦的硬盤,web-ui就如同主機的顯示器一樣不可或缺,其間亦存在著復雜而多樣的安全風險可能給予不法分子可乘之機,理解其風險并避免發生問題是每一位Web3從業人員的責任與義務。
TRONSCAN最新數據顯示,7月17日至7月23日,波場TRON賬戶數新增100萬,總數達到104,078,094,正式突破1.04億.
1900/1/1 0:00:008月11日,據區塊鏈瀏覽器TRONSCAN數據,波場TRON總質押量為11,730,484,279美元,突破117億美元.
1900/1/1 0:00:00為什么USDC的市場主導地位再次下跌,而Tether的USDT卻在上升?盡管今年加密貨幣市場急劇下滑,但穩定幣發行者之間卻又醞釀著一場新的戰爭.
1900/1/1 0:00:00期待已久的合并將使以太坊從工作量證明(PoW)轉變為基于權益證明(PoS)的網絡。由于早期依賴GPU算力支持的PoW機制,以太坊打造了一個全球分布式的挖礦產業,到2021年將產生近190億美元的.
1900/1/1 0:00:00ChainlinkPriceFeeds在2019年發布,服務智能合約開發者不斷增長的DeFi應用開發需求,為區塊鏈網絡接入安全、精準和實時的金融市場數據.
1900/1/1 0:00:00各位Qredonians,以太坊合并預計將于2022年9月中旬進行,這將是以太坊短暫歷史上最大的里程碑。這篇文章解釋了事件是什么,我們計劃如何支持Qredo用戶,以及與潛在的分叉鏈交互的風險.
1900/1/1 0:00:00