Ĭˠʲ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

Ĭˠĺ˼䌍ܺ:һ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,Чϰٱ!

ĬˠcyY
ȾSĬˠϣбyM
Crg}sO(log N)O(N)O(N)
惦Ч(H惦·)е(惦)
۸ęzyO(ϣ׃)^һȌ
֔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:

  1. O:С֙C؎X̼֧0.5BTCُIƷ,̼ҪC@P֧Ƿ挍Ч

  2. d^K^:̼ҵSPVXѽdЅ^Ką^K^Ϣ,ÿ^K^аԓ^KнטɵĬˠϣ

  3. @ȡĬˠ·:SPVcȫcՈ@P׵Ĭˠ·CŮ߶Oԓ^K2048P,SPVcֻҪlog2(2048)=11ϣֵ

  4. ӋC:SPVcʹ@11ϣֵ,ĬˠĘҎt,ԵӋϣֵ

  5. Ȍ_J:Ӌõĸϣֵcش惦ą^K^еĬˠMбȌȥĿŮԼᡣһ,h@P״_ԓ^K

  6. _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)(Martin Hellman)Mо,@뷨ŵԏͻԸƬ ͼ塣

1976,߀Dzʿx˵ĬˠcϷơՠһ_lɹܼgϷ-ՠ-Ĭˠ耽Qŷģ̫ҫˡ@헼gɞˬF“WȫͨŵĻʯʮŮŮ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еđÌ
ϵyCЧͰ
؎/̫SPVpcC״d^K֙CXC֧
Gitļٌȴa汾GitHubaӚ
IPFSȥĻ惦ļKֶ֧๝cdցʽļϵy
BitTorrentP2PļKC߅d߅CNļd
SSLCӋCIٙzyCHTTPSȫ
ܺϼ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ԸƬ˽ƬŮӰ֮̎:

  1. CֻṩĿ˔c·ϵıҪc

  2. Cʹ@ЩcԪӋϣֵ

  3. ͨ^ȌӋYc֪ĸϣ,ܴ_J挍

@NCCʽ,׌Ĭˠɞpͻ˺ƄOĸŷ˰

ĬˠڬF^Kе׃

SŅ^K朼gİlչ,ĬˠҲڲM,FһЩ׃w:

  • ϡĬˠ(Sparse Merkle Tree):HCij,߀CijʮŮ͡ڂyĬˠПoCijײڅ^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خطϵŮױͼƬࡣ