ĬˠʲN^KĔC
Ĭˠ䣨Merkle TreeSһNÇCYYϽYȽջĴ߶ŮڕYϷֳɺö༚KÿKùϣ㷨ɡָyһӌӽMϳɘYԸͼƬȫͼ˽ƬӰֻҪȌ픆ϣֵ֪YЃӱ^شȻֲסô졣
? ؎š̫ȅ^K朶ÁڇCהȫŮɧ˽Ƭɰͨ
х^K朱һ~,NĬˠ@~Ŀ
ȥĿƬ҂÷~,ֻҪPI,ܴ_JijPǷ挍ĵİС@ cĔY,䌍ǬFցʽϵyвɻȱĻAOʩı؎ŵ̫,Git汾ƵIPFSHļϵy,ĬˠӰo̎7160ŮͼƬ

Ĭˠĺ˼䌍ܺ:һN춹ϣĶ䔵Y,܉ЧC͔ԺһŮױͼƬģһ,һļҪC,yǰÿļzһ,ĬˠֻҪzׂPIcָy
,ܴ_JļǷ۸^snh48Ӿװʢĺ@NOӋ,ɞցʽӋWjMДCxԸͼƬֽ
ĬˠĽMɲcԭ
ĬˠĽYԷ֞IJ,ÿֶضĽɫ:
~ӹc:λ춘,惦ԭʼK^ϣ\ĹϣֵɧزƬڅ^K,ÿPĹϣֵһ~ӹc
gc(ҲQ֧c):@ЩcֱӴ惦ԭʼ,Ǵ惦ӹcϣֵMٴιϣĽYŷ˰ųφµ,Ӕςf
c(ҲQĬˠ):λ춘픶,Ø
ժҪ
ŮɧزͼƬеӔϢ,κһ~ӹcĸ׃¸cĹϣֵȫͬ
C:ĬˠĘ^¶ϵر˵dzŮȌÿKMйϣ\~ӹc,Ȼጢăɂ~ӹcĹϣֵMٴιϣ,ĸcͼtu963ط@^̌ӌ,ֱֻʣһcϣֵ˵Ŀս㡣ҪCijKǷ춘Еr,ֻҪṩԓKcĬˠ·(merkle path)ϵĎׂPIc,ܿCŮ˽hpvȾͼƬ
OһĬˠN~ӹc,yCҪzNc,rg}sȞO(N)ijԸƬʹĬˠ·,ֻҪzlog2(N)c͉ˡ@ζC1024PֻҪz10c,Чϰٱ!
| ȾS | Ĭˠ | ϣб | yM |
|---|---|---|---|
| Crg}s | O(log N) | O(N) | O(N) |
| 惦Ч | (H惦·) | е | (惦) |
| ۸ęzy | O(ϣ׃) | ^ | һȌ |
| ֔C | ֧(ĬˠC) | ֧ | ֧ |
| Wjݔɱ | (Hݔ·) | е | (ݔȫ) |
| ͑È | ^K朡P2PGit | У | A惦 |
Ĭˠ挍ð
؎SPV֧C:֙CҲC
Ĭˠڅ^KIđ,Ī^춱؎ŵSPV(Simplified Payment Verification,֧C)CȫƬ@б؎ŰƤĄOӋ,TQƄOpͻ˵ʹy}12ŮױͼƬƵ
Pб:@λصı؎ń2008l˸׃Փ؎:һNccʽӬFϵyͼƬՓЌ:\ȫcҲC֧,ûֻҪеą^K^Ϳ
ɧ˽Ƭɰ@OӋͨûod^200GB^K朔,Hͨ^惦ÿ^K80ֹą^K^(2025s50f^K,ӋH40MB),C挍Ů֮ա
SPVCČH:
O:С֙C؎X̼֧0.5BTCُIƷ,̼ҪC@P֧Ƿ挍Ч
d^K^:̼ҵSPVXѽdЅ^Ką^K^Ϣ,ÿ^K^аԓ^KнטɵĬˠϣ
@ȡĬˠ·:SPVcȫcՈ@PĬˠ·CŮ߶Oԓ^K2048P,SPVcֻҪlog2(2048)=11ϣֵ
ӋC:SPVcʹ@11ϣֵ,ĬˠĘҎt,ԵӋϣֵ
Ȍ_J:Ӌõĸϣֵcش惦ą^K^еĬˠMбȌȥĿŮԼᡣһ,h@P״_ԓ^K
_Jz:鿴ԓ^K֮֮a˶ق ^K(_J)˽ŮͼһJ6_J,ױ۸ĵĸʎ
@C^̵ľ֮̎:̼ҲҪdԓ^Kеȫ2048P(s500KB),ֻҪ11ϣֵ(s352ֹ),ܴ_JС֧Ƿ挍cctv4졣@ʹ֙CƄO\б؎Xɞ,OƄ˱؎ŵռԸдİ̾䡣
Git汾ϵy:TĕrC
GitȫTÿ춼ʹõİ汾ƹ,ĵӌFҲ\Ĭˠ(GitзQĬˠohD)ֽԸŮԸиȫύar,Gitÿļɹϣֵ,Ȼጢ@ЩϣֵMɘYŮͼƬ塣@ʹGit܉:
ٱ^ɂ汾֮gIJ(ֻ^ϣ֪Ƿͬ)
ЧؙzyļǷ۸(κļĸĄӶ׃ϣ)
Fݔ(ֻݔ׃IJ,a)
IPFSHļϵy:ȥĻ惦Ļʯ
IPFS(InterPlanetary File System)ʹĬˠohDM惦ļŭŮѹۿ߿ÿļָɶK,ÿKԼĹϣR溵tsnh48IPFSWjdļr,ԏĶcͬrdͬĔK,ȻʹĬˠCÿKŮ߶dzƴȫʹijЩcṩe`Ĕ,ҲzyŮɧ˽Ƭ˸塣
ĬˠĚvʷԴclչ
Ĭˠ@׃ĔY,һλܴaWҵĄŮƬʵ˽ƬͼƬˡ頖˹Ĭˠ(Ralph Charles Merkle)195222ճݲ,ǬFܴaW;Wjȫĵ֮һ
ĬˠČWgĘOҫŮ˷Ƭʲô˼1970MݴWУӋCƌW,1974@ÌWʿWλ¶աȤ,ڱAξ˹ܴaWڷĬˠi}(Merkle's Puzzles),@nIsJdzy
ܽ^ԸиЦֱ h˹̹WطƠ¡Ϸ(Whitfield Diffie)Rՠ(Martin Hellman)Mо,@뷨ŵԏͻԸƬ ͼ塣
1976,߀Dzʿx˵ĬˠcϷơՠһ_lɹܼgϷ-ՠ-Ĭˠ耽Qŷģ̫ҫˡ@헼gɞˬFWȫͨŵĻʯʮŮŮ1977,Ĭˠ@ôTʿWλ,1979˹̹W@늙C̲ʿWλ,ʿՓ}Ŀܡڙc_ϵy,ָRՠս㡣
ĬˠQ:1979,ĬˠĬˠ䔵YՈˌ,KuܴaϣİlŮͼƬزءmȻ^,@YărֵvÏŮ߶˵ͼƬĬˠOӋĿǞ˘õĔֺϵy,đhhOԼŮ
ֵһ,ĬˠоdȤD˼{gwgߴ߶Ƶʩ尢Ӛо(Xerox PARC)оƌW,WԺܳŮ˽ƬɧʵͼƬȫ2010,lܴaW@IEEE Richard W. Hamming,2011xҾWjȫ,2020@зJ,ԱܴaWϣ㷨ĬˠֺİlչĸؕI
С´߶ŮΨ
| ϵy | w; | C | Ч | Ͱ |
|---|---|---|---|---|
| ؎/̫ | SPVpcC | ״ | d^K | ֙CXC֧ |
| Git | 汾 | ļ | ٌȴa汾 | GitHubaӚ |
| IPFS | ȥĻ惦 | ļK | ֶ֧cd | ցʽļϵy |
| BitTorrent | P2Pļ | KC | ߅d߅C | Nļd |
| C | SSLCӋ | CI | ٙzyC | HTTPSȫ |
| ܺϼs | ַC | ûY | σHϣ | NFTͶIDO |
ܳZ:ĬˠՓA
ܴaWĽǶȁ,ĬˠһNܳZ(cryptographic commitment scheme)Ů˽ƬͼƬ˰䡣ZSһxһмsֵ,o¶ԓֵľwݡһڼ,bMŷܷo,õŷ֪挑ʲN,Ҳoٸ׃ŷYăĽϵŮͷ˽Ƭ
Z_lܴafhPҪ,V:
ֺϵy:_ߟoJԼĺ
ܹ:ָܷɶ,Ҫһķ~ܻ֏
֪RC:ڲй¶ϢrCij}
ĬˠڱZЪһ,SֽʾZֵպŮա@ζCijض,Ҫ¶ăŮƬ㿴ʲô˼@ʹĬˠɞ^K机ͷցʽϵyДCxԸбֽͼƬȫ
ĬˠC:Cˇg
ĬˠC(Merkle Proof)Ĭˠđ֮һ˫˲ıCװlKϣֵρһϣֵr,@^̾ͱQĬˠCԸƬ˽ƬŮӰ֮̎:
CֻṩĿ˔c·ϵıҪc
Cʹ@ЩcԪӋϣֵ
ͨ^ȌӋYc֪ĸϣ,ܴ_J挍
@NC
Cʽ,Ĭˠɞpͻ˺ƄOĸŷ˰
ĬˠڬF^Kе׃
SŅ^K朼gİlչ,ĬˠҲڲM,FһЩ׃w:
ϡĬˠ(Sparse Merkle Tree):HCij,߀CijʮŮ͡ڂyĬˠПoC
ijײڅ^K
,ϡĬˠͨ^ÿܵĔλAc(ʹǿչc),Q@}Ĭˠɽ}(Merkle Mountain Ranges):mֻӡĵĔY,ijЩ^K月Ч
Ĭˠ-Ę(Merkle Patricia Tree):̫ʹõ׃w,YĬˠǰY(Trie),܉Чش惦ͲԃIֵ
@Щ׃wǞmͬđÈ,CЧʡ惦g֮gҵƽc˵ ѹۿ
ʲNĬˠҪʹùϣֱӴ惦
ϣPI:̶Lݔ(oՓԭʼ,ϣֵLȹ̶)(oĹϣֵԭʼ)ѩЧ(ԭʼС׃¹ϣֵ׃)ŮɧزͼƬ@ЩʹĬˠ܉ù̶СĹϣֵСĔ,ȹʡ惦g,ܿٙzy۸ر˵dzŮ
ĬˠܙzyY۸ˆ
Ĭˠ䱾ֻܙzyǷ۸,oֱӶλwĂKıش߶Ƶ^,ͨ^ȌĬˠIJͬӼ,ӿsС,Kλ۸ĵľwKظŮԼᡣ@^̵ĕrg}sȞO(log N),ЧȻܸŮ¡
Ĭˠ~ӹc攵Nk
~ӹc攵r,ЃɷNҊ̎ʽ:һ}uһc,ʹ䜐ż;攵cֱcԼϣŮ˹˽Ƭ塣؎ŒõǵһN,}uһĹϣֵԼԸƬôġ@ӿԱCĘ^ʼKɌM,ֶĽYձŮ
ʹĬˠCȫ죿
ĬˠİȫԻܴaWϣİȫmn131ͼȫĿǰ؎ŵϵyʹSHA-256ϣ㷨,ӋώҵɂͬݔaͬĹϣֵ(@NrQϣײ)snh48ӾװֻҪϣǰȫ,Ĭˠ͟o˵Ů߶աʹߴ۸ij,ϣֵҲȫͬ,zyŮ˽ƬͼƬ
Ĭˠͅ^K朹ϣʲN^e
^Kÿ^KĹϣֵnj^K^Ϣ(ǰһ^Kϣrgyֵ)Mйϣõ,춌^KŮɧ˽ƬŮĬˠDž^KȲÁMCĔY,Ĭˠ^K^һօc^KϣӋȫh,^KϣC^K朵ɴ۸,Ĭˠ䱣C^KȽԵȫȻͼƬ
ʲNGitҲʹĬˠ䣿ͅ^K朵÷һӆ
GitʹĬˠ(ʴ_hĬˠohD)ۙa׃vʷ¶աÿύr,GitļݡĿ䛽YύϢɹϣֵ,γɘYԸƬİôд@ʹGit܉ٱȌ汾zypġFЧĔݔŮ˵ƬmȻԭ,GitĬˠs,ļ(tree object)ύ(commit object)ȶӽY,^KеĬˠֻͨǺεĶ享ҹŮƵ\
5NFT؟ăH,ͶYhŷŮˡYa^,Ո֔Q߁KخطϵŮױͼƬࡣ