Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

ሃይ ሀብር!

በ Bitcoin አውታረመረብ ውስጥ ፣ ሁሉም አንጓዎች ፣ በስምምነት ፣ በ UTXOs ስብስብ ላይ ይስማማሉ-ምን ያህል ሳንቲሞች ለወጪ እንደሚገኙ ፣ በትክክል ለማን እና በምን ሁኔታዎች። የUTXO ስብስብ ለአረጋጋጭ መስቀለኛ መንገድ የሚያስፈልገው ዝቅተኛው የውሂብ ስብስብ ነው፣ ያለዚህ መስቀለኛ መንገድ የገቢ ግብይቶችን እና የያዙትን ብሎኮች ትክክለኛነት ማረጋገጥ አይችልም።

በዚህ ረገድ, የዚህን ስብስብ የተከማቸ ውክልና ለመቀነስ, የደህንነት ዋስትናዎችን ሳያጡ ለመጭመቅ በሁሉም መንገዶች ሙከራዎች እየተደረጉ ነው. አነስተኛ መጠን ያለው የተከማቸ መረጃ መጠን፣ የአረጋጋጭ መስቀለኛ መንገድ ዝቅተኛው የዲስክ ቦታ መስፈርቶች ዝቅተኛ ነው፣ ይህም አረጋጋጭ መስቀለኛ መንገድ ማስጀመር ርካሽ ያደርገዋል፣ አውታረ መረቡን ለማስፋት እና በዚህም የአውታረ መረቡ መረጋጋት ይጨምራል።

በዚህ ልኡክ ጽሁፍ ላይ በቅርቡ ከአንድ ተባባሪ ደራሲ የቀረበ ሀሳብ የዝገት ምሳሌ እንለጥፋለን። የመብረቅ አውታር ወረቀት, ታዴዎስ ድሪጃ - Utreexo፡ ለBitcoin UTXO ስብስብ የተመቻቸ ተለዋዋጭ ሃሽ ላይ የተመሰረተ ክምችት, ይህም ለአረጋጋጭ አንጓዎች የዲስክ ቦታ መስፈርቶችን ለመቀነስ ያስችላል.

ቫቺም ፕሮብሌማ?

የBitcoin የቋሚነት ችግሮች አንዱ የመጠን አቅም ነው። "የራስህ ባንክ" የሚለው ሃሳብ የአውታረ መረብ ተሳታፊዎች ሁሉንም የገንዘብ ድጎማዎች ለአገልግሎት መዛግብት እንዲይዙ ይጠይቃል። በ Bitcoin ውስጥ, የሚገኙ ገንዘቦች ያልተጠቀሙባቸው ውጤቶች ስብስብ - UTXO-set ይገለፃሉ. ምንም እንኳን ይህ በተለይ ሊታወቅ የሚችል ውክልና ባይሆንም፣ እያንዳንዱ “የኪስ ቦርሳ” እንደ የተለየ ግቤት “ሚዛን” ካለው እና እንዲሁም ግላዊነትን በሚጨምርበት የውክልና አፈፃፀም ላይ ጠቃሚ ነው (ለምሳሌ CoinJoin).

የግብይቶችን ታሪክ (ብሎክቼይን ተብሎ የሚጠራው) እና የስርዓቱን ወቅታዊ ሁኔታ መለየት አስፈላጊ ነው. የ Bitcoin ግብይት ታሪክ በአሁኑ ጊዜ 200 ጂቢ የዲስክ ቦታን ይይዛል እና ማደጉን ቀጥሏል። ይሁን እንጂ የስርዓቱ ሁኔታ በ 4 ጂቢ ቅደም ተከተል በጣም ትንሽ ነው, እና አንድ ሰው በአሁኑ ጊዜ ሳንቲሞችን የመያዙን እውነታ ብቻ ግምት ውስጥ ያስገባል. የዚህ መረጃ መጠን ከጊዜ ወደ ጊዜ እየጨመረ ይሄዳል, ነገር ግን በጣም ቀርፋፋ እና አንዳንዴም የመቀነስ አዝማሚያ አለው (CDPV ይመልከቱ).

ከግል ቁልፎች ውጭ ምንም ዝቅተኛ ሁኔታ (UTXO-set) ለማከማቸት ቀላል ደንበኞች (SPVs) የንግድ ደህንነት ዋስትናዎች።

UTXO እና UTXO-ስብስብ

UTXO (ያልተከፈለ ግብይት ውፅዓት) ያልዋለ የግብይት ውፅዓት ነው፣ በግብይቶች ውስጥ የተላለፈው የእያንዳንዱ ሳቶሺ የጉዞ የመጨረሻ ነጥብ ነው። ያልተከፈሉ ውጤቶች የአዳዲስ ግብይቶች ግብዓቶች ይሆናሉ እና በዚህም ወጪ (ወጭ) እና ከ UTXO-ስብስብ ይወገዳሉ።

አዲስ UTXOዎች ሁልጊዜ የሚፈጠሩት በግብይቶች ነው፡-

  • ያለ ግብዓቶች የcoinbase ግብይቶች፡- ማዕድን አውጪዎች ሳንቲም ሲያወጡ አዲስ UTXO ይፍጠሩ
  • መደበኛ ግብይቶች፡ የተወሰኑ የUTXO ስብስቦችን በሚያወጡበት ጊዜ አዲስ UTXO ይፍጠሩ

ከ UTXO ጋር የመሥራት ሂደት፡-
Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

የኪስ ቦርሳዎች ለዚህ የኪስ ቦርሳ ባለው የ UTXO መጠን ላይ በመመስረት ለወጪ (ሚዛን) ያሉትን የሳንቲሞች ብዛት ይቆጥራሉ።

እያንዳንዱ አረጋጋጭ መስቀለኛ መንገድ፣ ድርብ ወጪ ሙከራዎችን ለመከላከል፣ ስብስቡን መከታተል አለበት። всех UTXO ሲፈተሽ እያንዳንዱ ግብይቶች እያንዳንዳቸው አግድ

መስቀለኛ መንገድ ሎጂክ ሊኖረው ይገባል፡-

  • ወደ UTXO-ስብስብ ተጨማሪዎች
  • ከUTXO-ስብስብ ስረዛዎች
  • በአንድ ስብስብ ውስጥ ነጠላ UTXO መኖሩን ማረጋገጥ

ኤለመንቶችን የመጨመር እና የማስወገድ ችሎታን በመጠበቅ ስለ ስብስብ የተከማቸ መረጃ ለማግኘት የሚያስፈልጉትን መስፈርቶች የሚቀንስባቸው መንገዶች አሉ፣ በአንድ ስብስብ ውስጥ ያለውን ንጥረ ነገር ያረጋግጡ እና ያረጋግጡ። ክሪፕቶግራፊክ ማጠራቀሚያዎች.

ባትሪዎች ለ UTXO

ብዙ UTXOዎችን ለማከማቸት ባትሪዎችን የመጠቀም ሀሳብ የሚል ውይይት ተደርጎበታል። ቀደም ብሎ.

የ UTXO-ስብስብ በበረራ ላይ የተገነባው በመጀመርያ የማገጃ ማውረጃ (IBD) ጊዜ ሙሉ በሙሉ እና በቋሚነት የተከማቸ ሲሆን ይዘቱ ከእያንዳንዱ አዲስ እና ትክክለኛ የአውታረ መረብ እገዳ ግብይቶችን ካስኬደ በኋላ ይለዋወጣል። ይህ ሂደት በግምት 200 ጂቢ የማገጃ ውሂብ ማውረድ እና በመቶ ሚሊዮኖች የሚቆጠሩ ዲጂታል ፊርማዎችን ማረጋገጥ ይፈልጋል። የ IBD ሂደቱ ከተጠናቀቀ በኋላ, የታችኛው መስመር የ UTXO-ስብስብ 4 ጂቢ ገደማ ይይዛል.

ይሁን እንጂ, accumulators ጋር, ገንዘብ ለማግኘት ስምምነት ደንቦች ወደ ማረጋገጫ እና ምስጠራ ማረጋገጫ ትውልድ ቀንሷል ናቸው, እና የመከታተያ የሚገኙ ገንዘብ ያለውን ሸክም ያላቸውን ሕልውና እና የባለቤትነት ማረጋገጫ ይሰጣል እነዚያን ገንዘብ ባለቤት, ዞሯል.

አንድ ክምችት የአንድ ስብስብ ውክልና ተብሎ ሊጠራ ይችላል። የተከማቸ ውክልና መጠን ቋሚ መሆን አለበት Utreexo: ብዙ UTXO Bitcoin በመጭመቅ፣ ወይም ከስብስቡ ካርዲናዊነት እና ከራሱ የንጥሉ መጠን ጋር በተያያዘ በንዑስ-ላይን ይጨምሩ ፣ ለምሳሌ Utreexo: ብዙ UTXO Bitcoin በመጭመቅ, n የተከማቸ ስብስብ ካርዲናሊቲ የት ነው.

በዚህ ሁኔታ, ሰብሳቢው በስብስቡ ውስጥ ያለውን ንጥረ ነገር (የማካተት ማረጋገጫ) ማካተት ማረጋገጫ እንዲያመነጭ መፍቀድ እና ይህንን ማረጋገጫ በብቃት ማረጋገጥ እንዲችል ማድረግ አለበት።

ባትሪው ተጠርቷል ተለዋዋጭ ኤለመንቶችን ለመጨመር እና ንጥረ ነገሮችን ከስብስብ ለማስወገድ ከፈቀደ።

የዚህ አይነት ባትሪ ምሳሌ ይሆናል የRSA accumulator በ Boneh, Bunz, Fisch በታህሳስ 2018 የቀረበ. እንዲህ ዓይነቱ ክምችት ቋሚ መጠን ያለው የተከማቸ ውክልና አለው, ግን መገኘትን ይጠይቃል የጋራ ሚስጥር (የታመነ ማዋቀር)። ይህ መስፈርት በሚስጥር ትውልድ ጊዜ የውሂብ መፍሰስ አጥቂዎች UTXO መኖሩን የውሸት ማረጋገጫ እንዲፈጥሩ ስለሚያስችላቸው እንደ Bitcoin ላሉ እምነት ለሌላቸው ኔትወርኮች የእንደዚህ ዓይነቱን ክምችት ተፈጻሚነት ውድቅ ያደርገዋል።

ዩትሬክሶ

በታድየስ ድሪጃ የቀረበው የUtreexo ንድፍ ለመፍጠር ያስችላል ተለዋዋጭ የማጠራቀሚያ ያለ የታመነ-ማዋቀር.

Utreexo ፍጹም የሁለትዮሽ ደን ነው። የመርክል ዛፎች እና የቀረቡት ሀሳቦች እድገት ነው። ለተከፋፈለ pki ቀልጣፋ ያልተመሳሰለ አከማቸ, ንጥረ ነገሮችን ከስብስብ የማስወገድ ችሎታ መጨመር.

የባትሪ አመክንዮአዊ መዋቅር

የባትሪ ሴሎች ተስማሚ የሆኑ ሁለትዮሽ ዛፎች ባሉበት ጫካ ውስጥ ተደርድረዋል። ዛፎች በከፍታ ታዝዘዋል. ይህ ውክልና በጣም ምስላዊ ሆኖ ተመርጧል እና በባትሪው ላይ በሚሰሩ ስራዎች ወቅት የዛፎችን ውህደት እንዲመለከቱ ያስችልዎታል.

ደራሲው በጫካ ውስጥ ያሉት ዛፎች በሙሉ ተስማሚ ስለሆኑ ቁመታቸው በሁለት ሃይል እንደሚገለፅ ሁሉ ማንኛውም የተፈጥሮ ቁጥር እንደ ሁለት ሃይሎች ድምር ሊወከል እንደሚችልም ገልጿል። በዚህ መሠረት ማንኛውም የቅጠሎች ስብስብ በሁለትዮሽ ዛፎች ሊመደብ ይችላል, እና በሁሉም ሁኔታዎች, አዲስ ንጥረ ነገር መጨመር እውቀትን ይጠይቃል ስለ የተከማቹ ዛፎች ሥር አንጓዎች ብቻ.

ስለዚህ፣ የተከማቸ የUtreexo accumulator ውክልና የስር ኖዶች ( Merkle root) ዝርዝር ነው። እና ሙሉውን የዛፎች ጫካ አይደለም.

የስር አካላትን ዝርዝር እንደ እንወክል Vec<Option<Hash>>. አማራጭ ዓይነት Option<Hash> የስር ኤለመንት ሊጠፋ እንደሚችል ይጠቁማል, ይህም ማለት በማከማቻው ውስጥ ተገቢውን ቁመት ያለው ዛፍ የለም.

/// SHA-256 хеш
#[derive(Copy, Clone, Hash, Eq, PartialEq)]
pub struct Hash(pub [u8; 32]);

#[derive(Debug, Clone)]
pub struct Utreexo {
    pub roots: Vec<Option<Hash>>,
}

impl Utreexo {
    pub fn new(capacity: usize) -> Self {
        Utreexo {
            roots: vec![None; capacity],
        }
    }
}

ንጥረ ነገሮችን መጨመር

በመጀመሪያ, ተግባሩን እንግለጽ parent()ለሁለት የተሰጡ አካላት የወላጅ መስቀለኛ መንገድን የሚያውቅ።

የወላጅ () ተግባር

የመርክል ዛፎችን እየተጠቀምን ስለሆነ የሁለቱም አንጓዎች ወላጅ አንድ መስቀለኛ መንገድ ሲሆን የልጆቹን ኖዶች መገጣጠሚያ ሃሽ ያከማቻል።

fn hash(bytes: &[u8]) -> Hash {
    let mut sha = Sha256::new();
    sha.input(bytes);
    let res = sha.result();
    let mut res_bytes = [0u8; 32];
    res_bytes.copy_from_slice(res.as_slice());

    Hash(res_bytes)
}

fn parent(left: &Hash, right: &Hash) -> Hash {
    let concat = left
        .0
        .into_iter()
        .chain(right.0.into_iter())
        .map(|b| *b)
        .collect::<Vec<_>>();

    hash(&concat[..])
}

ደራሲው በቻርለስ ቡዪላጌት፣ ፒየር-አላይን ፎኩ፣ አዲ ሻሚር እና ሴባስቲን ዚመር የተገለጹትን ጥቃቶች ለመከላከል እ.ኤ.አ.
ሁለተኛ ፕሪሜጅ ጥቃቶች በተበላሹ የሃሽ ተግባራት ላይ, ከሁለቱ ሃሽዎች በተጨማሪ, በዛፉ ውስጥ ያለው ቁመት ወደ ኮንቴይነሩ መጨመር አለበት.

ንጥረ ነገሮቹን ወደ ማጠራቀሚያው ሲጨምሩ ፣ የትኛዎቹ ስርወ አካላት እንደተቀየሩ መከታተል ያስፈልግዎታል። ለሚጨምሩት እያንዳንዱ ንጥረ ነገር የስር አባሎችን የመቀየር መንገድን በመከተል፣ በኋላ የእነዚህ ንጥረ ነገሮች መኖር ማረጋገጫ መገንባት ይችላሉ።

ለውጦቹን ሲያክሉ ይከታተሉ

የተደረጉትን ለውጦች ለመከታተል, መዋቅሩን እናውጅ Updateስለ መስቀለኛ መንገድ ለውጦች መረጃን የሚያከማች።

#[derive(Debug)]
pub struct Update<'a> {
    pub utreexo: &'a mut Utreexo,
    // ProofStep хранит "соседа" элемента и его положение
    pub updated: HashMap<Hash, ProofStep>,
}

አንድ ኤለመንት ወደ ባትሪው ለመጨመር የሚከተሉትን ያስፈልግዎታል

  • የስር ንጥረ ነገሮች ቅርጫቶች ድርድር ይፍጠሩ new_roots እና ነባር የስር ንጥረ ነገሮችን እዚያ አስቀምጡ, ለእያንዳንዱ ባልዲ አንድ:

ኮድ

let mut new_roots = Vec::new();

for root in self.roots.iter() {
    let mut vec = Vec::<Hash>::new();
    if let Some(hash) = root {
        vec.push(*hash);
    }

    new_roots.push(vec);
}

  • የሚጨመሩትን ንጥረ ነገሮች አያይዝ (ድርድር insertions) ወደ መጀመሪያው ጋሪ new_roots[0]:

Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

ኮድ

new_roots[0].extend_from_slice(insertions);

  • በመጀመሪያው ቅርጫት ላይ የተጨመሩትን እቃዎች ከቀሪው ጋር ሰብስብ፡
    • ከአንድ በላይ ዕቃ ላላቸው ሁሉም ጋሪዎች፡-
      1. ከቅርጫቱ ጫፍ ላይ ሁለት ንጥረ ነገሮችን ይውሰዱ, ወላጆቻቸውን ያሰሉ, ሁለቱንም አካላት ያስወግዱ
      2. የተሰላውን ወላጅ ወደ ቀጣዩ ጋሪ ያክሉ

Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

ኮድ

for i in 0..new_roots.len() {
    while new_roots[i].len() > 1 {
        // Объединяем два элемента в один и удаляем их
        let a = new_roots[i][new_roots[i].len() - 2];
        let b = new_roots[i][new_roots[i].len() - 1];
        new_roots[i].pop();
        new_roots[i].pop();
        let hash = self.parent(&a, &b);

        // Наращиваем количество корзин если требуется
        if new_roots.len() <= i + 1 {
            new_roots.push(vec![]);
        }

        // Помещаем элемент в следующую корзину
        new_roots[i + 1].push(hash);

        // Не забываем отслеживать изменения;
        // это пригодится для генерации доказательства добавления элементов
        updated.insert(a, ProofStep { hash: b, is_left: false });
        updated.insert(b, ProofStep {hash: a, is_left: true });
    }
}

  • የስር አባሎችን ከባንኮች ወደ ውጤቱ የማጠራቀሚያ ድርድር ያንቀሳቅሱ

ኮድ

for (i, bucket) in new_roots.into_iter().enumerate() {
    // Наращиваем аккумулятор если требуется
    if self.roots.len() <= i {
        self.roots.push(None);
    }

    if bucket.is_empty() {
        self.roots[i] = None;
    } else {
        self.roots[i] = Some(bucket[0]);
    }
}

ለተጨመሩ ንጥረ ነገሮች ማረጋገጫ መፍጠር

በባትሪው ውስጥ ያለው ሕዋስ ስለመካተቱ ማረጋገጫ (Proof) ሰንሰለትን ያካተተ እንደ መርክል መንገድ ሆኖ ያገለግላል ProofStep. መንገዱ የትም የማይመራ ከሆነ, ማስረጃው የተሳሳተ ነው.

/// Единичный шаг на пути к элементу в дереве Меркла.
#[derive(Debug, Copy, Clone)]
pub struct ProofStep {
    pub hash: Hash,
    pub is_left: bool,
}

/// Доказательство включения элемента. Содержит сам элемент и путь к нему.
#[derive(Debug, Clone)]
pub struct Proof {
    pub steps: Vec<ProofStep>,
    pub leaf: Hash,
}

ኤለመንትን ሲጨምሩ ቀደም ሲል የተገኘውን መረጃ መጠቀም (መዋቅር Update), አንድ ኤለመንት ወደ ባትሪው መጨመሩን ማረጋገጫ መፍጠር ይችላሉ. ይህንን ለማድረግ በተደረጉት ለውጦች ሰንጠረዥ ውስጥ እናልፋለን እና እያንዳንዱን እርምጃ ወደ መርክል መንገድ እንጨምራለን ፣ ይህም በመቀጠል እንደ ማረጋገጫ ይሆናል ።

ኮድ

impl<'a> Update<'a> {
    pub fn prove(&self, leaf: &Hash) -> Proof {
        let mut proof = Proof {
            steps: vec![],
            leaf: *leaf,
        };

        let mut item = *leaf;
        while let Some(s) = self.updated.get(&item) {
            proof.steps.push(*s);
            item = parent(&item, &s);
        }

        proof
    }
}

ማስረጃን የመፍጠር ሂደት

Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

ለአንድ ኤለመንት ማረጋገጫውን በመፈተሽ ላይ

የአንድን ንጥረ ነገር ማካተት ማረጋገጫ ወደ ነባር ስርወ አካል እስኪያመራ ድረስ የመርክልን መንገድ ለመከተል ይቆማል፡

pub fn verify(&self, proof: &Proof) -> bool {
    let n = proof.steps.len();
    if n >= self.roots.len() {
        return false;
    }

    let expected = self.roots[n];
    if let Some(expected) = expected {
        let mut current_parent = proof.leaf;
        for s in proof.steps.iter() {
            current_parent = if s.is_left {
                parent(&s.hash, &current_parent)
            } else {
                parent(&current_parent, &s.hash)
            };
        }

        current_parent == expected
    } else {
        false
    }
}

በእይታ፡

ማስረጃውን የማጣራት ሂደት ለኤ

Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

እቃዎችን በማስወገድ ላይ

አንድን ሕዋስ ከባትሪ ለማስወገድ ህዋሱ እንዳለ ትክክለኛ ማስረጃ ማቅረብ አለቦት። ከማስረጃው የተገኘውን መረጃ በመጠቀም፣ የተሰጠው ማረጋገጫ ከአሁን በኋላ እውነት የማይሆንባቸውን አዲስ የማከማቻ ስርወ አካላትን ማስላት ይቻላል።

ስልተ ቀመር እንደሚከተለው ነው

  1. እንደ በተጨማሪም ፣ ከቅርጫት መረጃ ጠቋሚው ከሁለት ኃይል ጋር እኩል የሆነ ቁመት ያላቸውን ከመርክሌ ዛፎች ጋር የሚዛመዱ ባዶ ቅርጫቶችን እናደራጃለን።
  2. ከመርክል መንገድ ደረጃዎች ውስጥ ንጥረ ነገሮችን ወደ ቅርጫቶች እናስገባለን; የቅርጫቱ መረጃ ጠቋሚ አሁን ካለው ደረጃ ቁጥር ጋር እኩል ነው
  3. ከማስረጃው መንገዱ የሚመራበትን የስር አካል እናስወግደዋለን
  4. እንደመደመር ሁሉ፣ ከቅርጫት ውስጥ ያሉትን ንጥረ ነገሮች በጥንድ በማጣመር የህብረቱን ውጤት ወደሚቀጥለው ቅርጫት በማሸጋገር አዲስ ስርወ አካላትን እናሰላለን።

ኮድ

fn delete(&self, proof: &Proof, new_roots: &mut Vec<Vec<Hash>>) -> Result<(), ()> {
    if self.roots.len() < proof.steps.len() || self.roots.get(proof.steps.len()).is_none() {
        return Err(());
    }

    let mut height = 0;
    let mut hash = proof.leaf;
    let mut s;

    loop {
        if height < new_roots.len() {
            let (index, ok) = self.find_root(&hash, &new_roots[height]);
            if ok {
                // Remove hash from new_roots
                new_roots[height].remove(index);

                loop {
                    if height >= proof.steps.len() {
                        if !self.roots[height]
                            .and_then(|h| Some(h == hash))
                            .unwrap_or(false)
                        {
                            return Err(());
                        }

                        return Ok(());
                    }

                    s = proof.steps[height];
                    hash = self.parent(&hash, &s);
                    height += 1;
                }
            }
        }

        if height >= proof.steps.len() {
            return Err(());
        }

        while height > new_roots.len() {
            new_roots.push(vec![]);
        }

        s = proof.steps[height];
        new_roots[height].push(s.hash);
        hash = self.parent(&hash, &s);
        height += 1;
    }
}

ኤለመንቱን የማስወገድ ሂደት;
Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

ወደ ነባር አውታረ መረብ ውህደት

የታቀደውን accumulator በመጠቀም, አሁንም UTXO-ስብስብ መቀየር እየቻሉ ሁሉ UTXOs ለማከማቸት አንጓዎች ዲቢ ከመጠቀም መቆጠብ ይችላሉ. ነገር ግን በማስረጃ የመሥራት ችግር ይፈጠራል።

የ UTXO አከማቸን የሚጠቀመውን አረጋጋጭ ኖድ እንጥራ የታመቀ (ኮምፓክት-ግዛት መስቀለኛ መንገድ)፣ እና አረጋጋጭ ያለአከማቸ ነው። ተጠናቀቀ (ሙሉ አንጓ). ሁለት የአንጓዎች ክፍል መኖሩ ወደ ነጠላ አውታረመረብ ለማዋሃድ ችግር ይፈጥራል ፣ ምክንያቱም የታመቁ አንጓዎች ሙሉ አንጓዎች አያደርጉም ፣ በግብይቶች ውስጥ የሚውሉ UTXOs መኖራቸውን የሚያረጋግጡ ናቸው። ሁሉም የአውታረ መረብ ኖዶች በአንድ ጊዜ እና በተቀናጀ መልኩ ወደ ዩትሬክሶ ካልቀየሩ፣ የታመቁ ኖዶች ወደ ኋላ ይቀራሉ እና በBitcoin አውታረ መረብ ላይ መሥራት አይችሉም።

የታመቁ ኖዶችን ወደ አውታረ መረቡ የማዋሃድ ችግር ለመፍታት ተጨማሪ የአንጓዎችን ክፍል ለማስተዋወቅ ይመከራል - ድልድዮች. የድልድይ መስቀለኛ መንገድ ሙሉ መስቀለኛ መንገድ ሲሆን የUtreexo ባትሪ እና የማብራት ማረጋገጫን የሚያከማች ነው። всех UTXO ከ UTXO-ስብስብ. ድልድዮች አዲስ ሃሽ ያሰሉ እና አዲስ የግብይቶች ብሎኮች ሲመጡ ክምችት እና ማረጋገጫዎችን ያዘምኑ። ማጠራቀሚያውን እና ማረጋገጫዎችን ማቆየት እና ማዘመን በእንደዚህ ያሉ አንጓዎች ላይ ተጨማሪ የሂሳብ ጭነት አይጫኑም። ድልድዮች የዲስክ ቦታን ይሠዉታል፡ ነገሮችን ማደራጀት ያስፈልጋል Utreexo: ብዙ UTXO Bitcoin በመጭመቅ hashes, ጋር ሲነጻጸር Utreexo: ብዙ UTXO Bitcoin በመጭመቅ hashes ለ የታመቁ አንጓዎች, የት n የ UTXO ስብስብ ኃይል ነው.

የአውታረ መረብ አርክቴክቸር

Utreexo: ብዙ UTXO Bitcoin በመጭመቅ

ድልድዮች የነባር አንጓዎችን ሶፍትዌር ሳይቀይሩ ቀስ በቀስ የታመቁ ኖዶችን ወደ አውታረ መረቡ ለመጨመር ያስችላሉ። ሙሉ አንጓዎች ልክ እንደበፊቱ ይሰራሉ፣ ግብይቶችን እና ብሎኮችን በራሳቸው መካከል ያሰራጫሉ። የድልድይ ኖዶች በተጨማሪ የUtreexo ባትሪ መረጃን የሚያከማቹ እና የማካተት ማረጋገጫዎች ስብስብ ናቸው። всех UTXO ለአሁን። የድልድዩ መስቀለኛ መንገድ እራሱን እንደዚያ አያስተዋውቅም፣ ለሁሉም ሙሉ አንጓዎች ሙሉ መስቀለኛ መንገድ እና ለሁሉም የታመቀ መስቀለኛ መንገድ መስሏል። ምንም እንኳን ድልድዮች ሁለቱንም ኔትወርኮች አንድ ላይ የሚያገናኙ ቢሆኑም፣ እነርሱን በአንድ አቅጣጫ ብቻ ማገናኘት አለባቸው፡ ከነባር ሙሉ ኖዶች እስከ የታመቀ አንጓዎች። ይህ ሊሆን የቻለው የግብይቱን ፎርማት መቀየር ስለማያስፈልግ እና የ UTXO የታመቁ ኖዶች ማረጋገጫዎች ሊወገዱ ስለሚችሉ ማንኛውም የታመቀ መስቀለኛ መንገድ ድልድይ ኖዶች ሳይሳተፉ ለሁሉም የኔትወርክ ተሳታፊዎች ግብይቶችን ማስተላለፍ ይችላል።

መደምደሚያ

የ Utreexo ባትሪን ተመልክተናል እና ፕሮቶታይፕን በሩስት ውስጥ ተግባራዊ እናደርጋለን። በባትሪ ላይ የተመሰረቱ ኖዶችን ለማዋሃድ የሚያስችል የኔትወርክ አርክቴክቸርን ተመልክተናል። የታመቁ መያዣዎች ጥቅሙ የተከማቸ መረጃ መጠን ነው, ይህም በሎጋሪዝም በ UTXOs ስብስብ ኃይል ላይ የተመሰረተ ነው, ይህም ለዲስክ ቦታ እና ለእንደዚህ ዓይነቶቹ አንጓዎች የማከማቻ አፈፃፀም መስፈርቶችን በእጅጉ ይቀንሳል. ጉዳቱ ማስረጃዎችን ለማስተላለፍ ተጨማሪ የመስቀለኛ መንገድ ትራፊክ ነው፣ ነገር ግን የማስረጃ ማሰባሰቢያ ቴክኒኮች (አንድ ማስረጃ የበርካታ ንጥረ ነገሮች መኖራቸውን ሲያረጋግጥ) እና መሸጎጫ ትራፊክ ተቀባይነት ባለው ገደብ ውስጥ ለማቆየት ይረዳል።

ማጣቀሻዎች:

ምንጭ: hab.com

አስተያየት ያክሉ