Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

Π₯Сј Π₯Π°Π±Ρ€!

Π£ Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½ ΠΌΡ€Π΅ΠΆΠΈ, сви Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ сС консСнзусом слаТу ΠΎΠΊΠΎ скупа УВКБО-Π°: ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΊΠΎΠ²Π°Π½ΠΈΡ†Π° јС доступно Π·Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡšΡƒ, ΠΊΠΎΠΌΠ΅ Ρ‚Π°Ρ‡Π½ΠΎ ΠΈ ΠΏΠΎΠ΄ којим условима. УВКБО скуп јС ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ скуп ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° који јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π°Π½ Π·Π° Ρ‡Π²ΠΎΡ€ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π°, Π±Π΅Π· којСг Ρ‡Π²ΠΎΡ€ Π½Π΅Ρ›Π΅ ΠΌΠΎΡ›ΠΈ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ валидност Π΄ΠΎΠ»Π°Π·Π½ΠΈΡ… Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π° који ΠΈΡ… садрТС.

Π‘ Ρ‚ΠΈΠΌ Ρƒ Π²Π΅Π·ΠΈ, ΠΏΠΎΠΊΡƒΡˆΠ°Π²Π°Ρ˜Ρƒ сС Π½Π° свС ΠΌΠΎΠ³ΡƒΡ›Π΅ Π½Π°Ρ‡ΠΈΠ½Π΅ Π΄Π° сС смањи сачувана Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° ΠΎΠ²ΠΎΠ³ скупа, Π΄Π° сС ΠΊΠΎΠΌΠΏΡ€Π΅ΡΡƒΡ˜Π΅ Π±Π΅Π· Π³ΡƒΠ±ΠΈΡ‚ΠΊΠ° бСзбСдносних Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Π°. Π¨Ρ‚ΠΎ јС мањи ΠΎΠ±ΠΈΠΌ ΡƒΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Π½ΠΈΡ… ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°, мањи су Π·Π°Ρ…Ρ‚Π΅Π²ΠΈ Π·Π° простором Π½Π° диску ΠΊΠΎΠ΄ Ρ‡Π²ΠΎΡ€Π° Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π°, ΡˆΡ‚ΠΎ Ρ‡ΠΈΠ½ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ валидаторског Ρ‡Π²ΠΎΡ€Π° Ρ˜Π΅Ρ„Ρ‚ΠΈΠ½ΠΈΠΌ, ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΡƒ ΠΈ Π½Π° Ρ‚Π°Ρ˜ Π½Π°Ρ‡ΠΈΠ½ ΠΏΠΎΠ²Π΅Ρ›Π°Ρ‚Π΅ стабилност ΠΌΡ€Π΅ΠΆΠ΅.

Π£ ΠΎΠ²ΠΎΠΌ посту Ρ›Π΅ΠΌΠΎ ΠΎΠ±Ρ˜Π°Π²ΠΈΡ‚ΠΈ Руст ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π½Π΅Π΄Π°Π²Π½ΠΎΠ³ ΠΏΡ€Π΅Π΄Π»ΠΎΠ³Π° ΠΊΠΎΠ°ΡƒΡ‚ΠΎΡ€Π° Π›ΠΈΠ³Ρ…Ρ‚Π½ΠΈΠ½Π³ НСтворк ΠŸΠ°ΠΏΠ΅Ρ€, ВхаддСус Π”Ρ€ΠΈΡ˜Π° - Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡ΠΊΠΈ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ заснован Π½Π° Ρ…Π΅ΡˆΡƒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΎΠ²Π°Π½ Π·Π° Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½ УВКБО сСт, ΡˆΡ‚ΠΎ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° смањСњС Π·Π°Ρ…Ρ‚Π΅Π²Π° Π·Π° простором Π½Π° диску Π·Π° Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π°.

Π£ Ρ‡Π΅ΠΌΡƒ јС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ?

ЈСдан ΠΎΠ΄ Π²ΠΈΡˆΠ΅Π³ΠΎΠ΄ΠΈΡˆΡšΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π° јС њСгова скалабилност. ИдСја β€žΡΠΎΠΏΡΡ‚Π²Π΅Π½Π΅ Π±Π°Π½ΠΊΠ΅β€œ Π·Π°Ρ…Ρ‚Π΅Π²Π° ΠΎΠ΄ учСсника ΠΌΡ€Π΅ΠΆΠ΅ Π΄Π° Π²ΠΎΠ΄Π΅ Π΅Π²ΠΈΠ΄Π΅Π½Ρ†ΠΈΡ˜Ρƒ ΠΎ свим срСдствима доступним Π·Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅. Π£ Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Ρƒ, располоТива срСдства су ΠΈΠ·Ρ€Π°ΠΆΠ΅Π½Π° ΠΊΠ°ΠΎ скуп Π½Π΅ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ΅Π½ΠΈΡ… ΠΈΠ·Π»Π°Π·Π° - УВКБО-сСт. Иако ΠΎΠ²ΠΎ нијС Π½Π°Ρ€ΠΎΡ‡ΠΈΡ‚ΠΎ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π°Π½ ΠΏΡ€ΠΈΠΊΠ°Π·, ΠΎΠ½ јС користан Ρƒ смислу пСрформанси ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ Ρƒ односу Π½Π° Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Ρƒ Ρƒ којој сваки β€žΠ½ΠΎΠ²Ρ‡Π°Π½ΠΈΠΊβ€œ ΠΈΠΌΠ° β€žΡ€Π°Π²Π½ΠΎΡ‚Π΅ΠΆΡƒβ€œ ΠΊΠ°ΠΎ посСбан унос, Π° Ρ‚Π°ΠΊΠΎΡ’Π΅ додајС приватност (Π½ΠΏΡ€. ЦоинЈоин).

Π’Π°ΠΆΠ½ΠΎ јС Ρ€Π°Π·Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΠΈ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ˜Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° (ΠΎΠ½ΠΎ ΡˆΡ‚ΠΎ сС Π½Π°Π·ΠΈΠ²Π° Π±Π»ΠΎΠΊΡ‡Π΅Ρ˜Π½) ΠΈ Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ ΡΡ‚Π°ΡšΠ΅ систСма. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ˜Π° Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ Π·Π°ΡƒΠ·ΠΈΠΌΠ° ΠΎΠΊΠΎ 200 Π“Π‘ простора Π½Π° диску ΠΈ наставља Π΄Π° растС. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΡΡ‚Π°ΡšΠ΅ систСма јС ΠΌΠ½ΠΎΠ³ΠΎ мањС, Ρ€Π΅Π΄Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ 4 Π“Π‘, ΠΈ ΡƒΠ·ΠΈΠΌΠ° Ρƒ ΠΎΠ±Π·ΠΈΡ€ само Ρ‡ΠΈΡšΠ΅Π½ΠΈΡ†Ρƒ Π΄Π° Π½Π΅ΠΊΠΎ Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΎ ΠΏΠΎΡΠ΅Π΄ΡƒΡ˜Π΅ Π½ΠΎΠ²Ρ‡ΠΈΡ›Π΅. Обим ΠΎΠ²ΠΈΡ… ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° сС Ρ‚Π°ΠΊΠΎΡ’Π΅ ΠΏΠΎΠ²Π΅Ρ›Π°Π²Π° Ρ‚ΠΎΠΊΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡ€ΠΈΡ˜Π΅ ΠΈ ΠΏΠΎΠ½Π΅ΠΊΠ°Π΄ Ρ‡Π°ΠΊ ΠΈΠΌΠ° Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡ˜Ρƒ Π΄Π° сС смањи (Π²ΠΈΠ΄ΠΈ Π¦Π”ΠŸΠ’).

Π›Π°ΠΊΠΈ ΠΊΠ»ΠΈΡ˜Π΅Π½Ρ‚ΠΈ (Π‘ΠŸΠ’) Ρ‚Ρ€Π³ΡƒΡ˜Ρƒ бСзбСдносним Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Π°ΠΌΠ° Π·Π° могућност Ρ‡ΡƒΠ²Π°ΡšΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΠ³ ΡΡ‚Π°ΡšΠ° (УВКБО-сСт) осим ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΈΡ… ΠΊΡ™ΡƒΡ‡Π΅Π²Π°.

УВКБО ΠΈ УВКБО-сСт

УВКБО (УнспСнт Врансацтион ΠžΡƒΡ‚ΠΏΡƒΡ‚) јС ΠΈΠ·Π»Π°Π· Π½Π΅ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ΅Π½Π΅ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅, ΠΊΡ€Π°Ρ˜ΡšΠ° Ρ‚Π°Ρ‡ΠΊΠ° ΠΏΡƒΡ‚ΠΎΠ²Π°ΡšΠ° сваког Π‘Π°Ρ‚ΠΎΡΡ…ΠΈΡ˜Π° ΠΏΡ€Π΅Π½Π΅Ρ‚ΠΎΠ³ Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ°. ΠΠ΅ΠΏΠΎΡ‚Ρ€ΠΎΡˆΠ΅Π½ΠΈ ΠΈΠ·Π»Π°Π·ΠΈ ΠΏΠΎΡΡ‚Π°Ρ˜Ρƒ ΡƒΠ»Π°Π·ΠΈ Π½ΠΎΠ²ΠΈΡ… Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΈ Π½Π° Ρ‚Π°Ρ˜ Π½Π°Ρ‡ΠΈΠ½ сС Ρ‚Ρ€ΠΎΡˆΠ΅ (Ρ‚Ρ€ΠΎΡˆΠ΅) ΠΈ ΡƒΠΊΠ»Π°ΡšΠ°Ρ˜Ρƒ ΠΈΠ· УВКБО скупа.

Нови УВКБО сС ΡƒΠ²Π΅ΠΊ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ°:

  • цоинбасС Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ Π±Π΅Π· ΡƒΠ»Π°Π·Π°: ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π½ΠΎΠ²Π΅ УВКБО ΠΊΠ°Π΄Π° Ρ€ΡƒΠ΄Π°Ρ€ΠΈ ΠΈΠ·Π΄Π°Ρ˜Ρƒ Π½ΠΎΠ²Ρ‡ΠΈΡ›Π΅
  • Ρ€Π΅Π΄ΠΎΠ²Π½Π΅ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅: ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π½ΠΎΠ²Π΅ УВКБО Π΄ΠΎΠΊ Ρ‚Ρ€ΠΎΡˆΠΈΡ‚Π΅ ΠΎΠ΄Ρ€Π΅Ρ’Π΅Π½ΠΈ скуп ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›ΠΈΡ… УВКБО

ΠŸΡ€ΠΎΡ†Π΅Ρ Ρ€Π°Π΄Π° са УВКБО:
Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

Новчаници Π±Ρ€ΠΎΡ˜Π΅ Π±Ρ€ΠΎΡ˜ ΠΊΠΎΠ²Π°Π½ΠΈΡ†Π° доступних Π·Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡšΡƒ (биланс) Π½Π° основу ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π΅ УВКБО-Π° који јС доступан ΠΎΠ²ΠΎΠΌ Π½ΠΎΠ²Ρ‡Π°Π½ΠΈΠΊΡƒ Π·Π° ΠΏΠΎΡ‚Ρ€ΠΎΡˆΡšΡƒ.

Π‘Π²Π°ΠΊΠΈ Ρ‡Π²ΠΎΡ€ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π°, Π΄Π° Π±ΠΈ сС спрСчили ΠΏΠΎΠΊΡƒΡˆΠ°Ρ˜ΠΈ двоструког Ρ‚Ρ€ΠΎΡˆΠ΅ΡšΠ°, ΠΌΠΎΡ€Π° Π΄Π° Π½Π°Π΄Π³Π»Π΅Π΄Π° скуп свС УВКБО ΠΏΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅ сваки Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ сваки Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‚ΠΈ.

Π§Π²ΠΎΡ€ ΠΌΠΎΡ€Π° ΠΈΠΌΠ°Ρ‚ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ:

  • Π”ΠΎΠ΄Π°Ρ†ΠΈ Π·Π° УВКБО-сСт
  • Π‘Ρ€ΠΈΡΠ°ΡšΠ° ΠΈΠ· УВКБО-сСта
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π° присуства јСдног УВКБО Ρƒ сСту

ΠŸΠΎΡΡ‚ΠΎΡ˜Π΅ Π½Π°Ρ‡ΠΈΠ½ΠΈ Π΄Π° сС смањС Π·Π°Ρ…Ρ‚Π΅Π²ΠΈ Π·Π° ΡƒΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Π½Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π΅ ΠΎ скупу, ΡƒΠ· Π·Π°Π΄Ρ€ΠΆΠ°Π²Π°ΡšΠ΅ могућности додавања ΠΈ ΡƒΠΊΠ»Π°ΡšΠ°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π°, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅ ΠΈ доказивања ΠΏΠΎΡΡ‚ΠΎΡ˜Π°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Ρƒ скупу ΠΏΠΎΠΌΠΎΡ›Ρƒ криптографски Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ.

Π‘Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π΅ Π·Π° УВКБО

ИдСја ΠΎ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΡƒ Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ΅ вишС УВКБО расправљали Ρ€Π°Π½ΠΈΡ˜Π΅.

УВКБО-сСт сС Π³Ρ€Π°Π΄ΠΈ Ρƒ Ρ…ΠΎΠ΄Ρƒ, Ρ‚ΠΎΠΊΠΎΠΌ ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΎΠ³ ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ° Π±Π»ΠΎΠΊΠ° (Π˜Π‘Π”), Ρ‡ΡƒΠ²Π° сС Ρƒ потпуности ΠΈ Ρ‚Ρ€Π°Ρ˜Π½ΠΎ, Π΄ΠΎΠΊ сС њСгов ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ мСња Π½Π°ΠΊΠΎΠ½ ΠΎΠ±Ρ€Π°Π΄Π΅ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΈΠ· сваког Π½ΠΎΠ²ΠΎΠ³ ΠΈ исправног Π±Π»ΠΎΠΊΠ° ΠΌΡ€Π΅ΠΆΠ΅. Овај процСс Π·Π°Ρ…Ρ‚Π΅Π²Π° ΠΏΡ€Π΅ΡƒΠ·ΠΈΠΌΠ°ΡšΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ 200 Π“Π‘ Π±Π»ΠΎΠΊ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Ρƒ стотина ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Π΄ΠΈΠ³ΠΈΡ‚Π°Π»Π½ΠΈΡ… потписа. Након ΡˆΡ‚ΠΎ јС Π˜Π‘Π” процСс Π·Π°Π²Ρ€ΡˆΠ΅Π½, ΡΡƒΡˆΡ‚ΠΈΠ½Π° јС Π΄Π° Ρ›Π΅ УВКБО-сСт Π·Π°ΡƒΠ·ΠΈΠΌΠ°Ρ‚ΠΈ ΠΎΠΊΠΎ 4 Π“Π‘.

ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΊΠΎΠ΄ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° сС ΠΏΡ€Π°Π²ΠΈΠ»Π° консСнзуса Π·Π° срСдства сводС Π½Π° Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡΠ°ΡšΠ΅ криптографских Π΄ΠΎΠΊΠ°Π·Π°, Π° Ρ‚Π΅Ρ€Π΅Ρ‚ ΠΏΡ€Π°Ρ›Π΅ΡšΠ° располоТивих срСдстава ΠΏΡ€Π΅Π±Π°Ρ†ΡƒΡ˜Π΅ сС Π½Π° власника Ρ‚ΠΈΡ… срСдстава, који дајС Π΄ΠΎΠΊΠ°Π· ΠΎ ΡšΠΈΡ…ΠΎΠ²ΠΎΠΌ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°ΡšΡƒ ΠΈ Π²Π»Π°ΡΠ½ΠΈΡˆΡ‚Π²Ρƒ.

Акумулатор сС ΠΌΠΎΠΆΠ΅ Π½Π°Π·Π²Π°Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΌ прСдставом скупа. Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° сачуванС Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅ ΠΌΠΎΡ€Π° Π±ΠΈΡ‚ΠΈ ΠΈΠ»ΠΈ константна Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°, ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ›Π°Ρ‚ΠΈ сублинСарно Ρƒ односу Π½Π° кардиналност скупа ΠΈ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ самог Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°, Π½ΠΏΡ€. Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°, Π³Π΄Π΅ јС Π½ кардиналност сачуваног скупа.

Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡΠ°ΡšΠ΅ Π΄ΠΎΠΊΠ°Π·Π° ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Ρƒ скуп (Π΄ΠΎΠΊΠ°Π· ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°ΡšΠ°) ΠΈ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Ρƒ ΠΎΠ²ΠΎΠ³ Π΄ΠΎΠΊΠ°Π·Π°.

Π‘Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π° сС Π·ΠΎΠ²Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π°Π½ ΠΈΡ„ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° Π΄ΠΎΠ΄Π°Ρ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π΅ ΠΈ ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π΅ ΠΈΠ· скупа.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠ²Π΅ Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π΅ Π±ΠΈ Π±ΠΈΠΎ РБА Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ који су ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π‘ΠΎΠ½Π΅Ρ…, Π‘ΡƒΠ½Π·, Ѐисцх Ρƒ Π΄Π΅Ρ†Π΅ΠΌΠ±Ρ€Ρƒ 2018. Π’Π°ΠΊΠ°Π² Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠ° константну Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΡƒΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Π½Π΅ Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π΅, Π°Π»ΠΈ Π·Π°Ρ…Ρ‚Π΅Π²Π° присуство Π·Π°Ρ˜Π΅Π΄Π½ΠΈΡ‡ΠΊΠ° Ρ‚Π°Ρ˜Π½Π° (ΠΏΠΎΡƒΠ·Π΄Π°Π½ΠΎ подСшавањС). Овај Π·Π°Ρ…Ρ‚Π΅Π² Π½Π΅Π³ΠΈΡ€Π° примСнљивост Ρ‚Π°ΠΊΠ²ΠΎΠ³ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π·Π° ΠΌΡ€Π΅ΠΆΠ΅ Π±Π΅Π· ΠΏΠΎΠ²Π΅Ρ€Π΅ΡšΠ° ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½, ΠΏΠΎΡˆΡ‚ΠΎ Ρ†ΡƒΡ€Π΅ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Ρ‚ΠΎΠΊΠΎΠΌ Ρ‚Π°Ρ˜Π½ΠΎΠ³ Π³Π΅Π½Π΅Ρ€ΠΈΡΠ°ΡšΠ° ΠΌΠΎΠΆΠ΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΠΈ Π½Π°ΠΏΠ°Π΄Π°Ρ‡ΠΈΠΌΠ° Π΄Π° створС Π»Π°ΠΆΠ½ΠΈ Π΄ΠΎΠΊΠ°Π· ΠΏΠΎΡΡ‚ΠΎΡ˜Π°ΡšΠ° УВКБО, ΠΎΠ±ΠΌΠ°ΡšΡƒΡ˜ΡƒΡ›ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅ са УВКБО-сСтом заснованим Π½Π° Ρ‚Π°ΠΊΠ²ΠΎΠΌ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Ρƒ.

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ

Π”ΠΈΠ·Π°Ρ˜Π½ Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ који јС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΎ ВхаддСус Π”Ρ€ΠΈΡ˜Π° ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° ΡΡ‚Π²Π°Ρ€Π°ΡšΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π°Π½ Π°ΠΊΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ Π±Π΅Π· ΠΏΠΎΡƒΠ·Π΄Π°Π½ΠΎ подСшавањС.

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ јС ΡˆΡƒΠΌΠ° ΡΠ°Π²Ρ€ΡˆΠ΅Π½Π΅ бинарности ΠœΠ΅Ρ€ΠΊΠ»Π΅ ВрССс ΠΈ прСдставља Ρ€Π°Π·Π²ΠΎΡ˜ идСја прСдстављСних Ρƒ Ефикасни асинхрони Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π·Π° дистрибуиранС ΠΏΠΊΠΈ, Π΄ΠΎΠ΄Π°Ρ˜ΡƒΡ›ΠΈ могућност ΡƒΠΊΠ»Π°ΡšΠ°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π° ΠΈΠ· скупа.

Π›ΠΎΠ³ΠΈΡ‡ΠΊΠ° структура Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π΅

Π‘Π°Ρ‚Π΅Ρ€ΠΈΡ˜ΡΠΊΠ΅ Ρ›Π΅Π»ΠΈΡ˜Π΅ су распорСђСнС Ρƒ ΡˆΡƒΠΌΠΈ ΠΈΠ΄Π΅Π°Π»Π½ΠΈΡ… Π±ΠΈΠ½Π°Ρ€Π½ΠΈΡ… стабала. Π”Ρ€Π²Π΅Ρ›Π΅ јС ΠΏΠΎΡ€Π΅Ρ’Π°Π½ΠΎ ΠΏΠΎ висини. Ова Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° јС ΠΈΠ·Π°Π±Ρ€Π°Π½Π° ΠΊΠ°ΠΎ Π½Π°Ρ˜Π²ΠΈΠ·ΡƒΠ΅Π»Π½ΠΈΡ˜Π° ΠΈ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π²Π°ΠΌ Π΄Π° Π²ΠΈΠ·ΡƒΠ΅Π»ΠΈΠ·ΡƒΡ˜Π΅Ρ‚Π΅ ΡΡ‚Π°ΠΏΠ°ΡšΠ΅ Π΄Ρ€Π²Π΅Ρ›Π° Ρ‚ΠΎΠΊΠΎΠΌ Ρ€Π°Π΄Π° Π½Π° Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜ΠΈ.

Аутор напомињС Π΄Π° ΠΏΠΎΡˆΡ‚ΠΎ су сва стабла Ρƒ ΡˆΡƒΠΌΠΈ ΠΈΠ΄Π΅Π°Π»Π½Π°, ΡšΠΈΡ…ΠΎΠ²Π° висина сС ΠΈΠ·Ρ€Π°ΠΆΠ°Π²Π° стСпСном Π΄Π²Π°, ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ сС сваки ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π°Π½ Π±Ρ€ΠΎΡ˜ ΠΌΠΎΠΆΠ΅ прСдставити ΠΊΠ°ΠΎ Π·Π±ΠΈΡ€ стСпСна двојкС. Π‘Ρ…ΠΎΠ΄Π½ΠΎ Ρ‚ΠΎΠΌΠ΅, Π±ΠΈΠ»ΠΎ који скуп листова ΠΌΠΎΠΆΠ΅ сС груписати Ρƒ Π±ΠΈΠ½Π°Ρ€Π½Π° стабла, Π° Ρƒ свим ΡΠ»ΡƒΡ‡Π°Ρ˜Π΅Π²ΠΈΠΌΠ° додавањС Π½ΠΎΠ²ΠΎΠ³ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π·Π°Ρ…Ρ‚Π΅Π²Π° знањС само ΠΎ корСнским Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈΠΌΠ° ΡƒΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Π½ΠΈΡ… стабала.

Π”Π°ΠΊΠ»Π΅, сачувана Ρ€Π΅ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° јС листа корСнских Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° (ΠœΠ΅Ρ€ΠΊΠ»Π΅ ΠΊΠΎΡ€Π΅Π½), Π° Π½Π΅ Ρ†Π΅Π»Π° ΡˆΡƒΠΌΠ° Π΄Ρ€Π²Π΅Ρ›Π°.

Π₯ајдС Π΄Π° прСдставимо листу основних Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π° ΠΊΠ°ΠΎ 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]:

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

Код

new_roots[0].extend_from_slice(insertions);

  • ΠžΠ±Ρ˜Π΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ставкС Π΄ΠΎΠ΄Π°Ρ‚Π΅ Ρƒ ΠΏΡ€Π²Ρƒ ΠΊΠΎΡ€ΠΏΡƒ са остатком:
    • Π—Π° сва ΠΊΠΎΠ»ΠΈΡ†Π° са вишС ΠΎΠ΄ јСднС ставкС:
      1. Π£Π·ΠΌΠΈΡ‚Π΅ Π΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° са ΠΊΡ€Π°Ρ˜Π° ΠΊΠΎΡ€ΠΏΠ΅, ΠΈΠ·Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ˜Ρ‚Π΅ ΡšΠΈΡ…ΠΎΠ² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Ρ™, ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚Π΅ ΠΎΠ±Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°
      2. Π”ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ ΠΈΠ·Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ‚ΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Ρ™ Ρƒ слСдСћа ΠΊΠΎΠ»ΠΈΡ†Π°

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

Код

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
    }
}

ΠŸΡ€ΠΎΡ†Π΅Ρ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ° Π΄ΠΎΠΊΠ°Π·Π°

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

ΠŸΡ€ΠΎΠ²Π΅Ρ€Π° Π΄ΠΎΠΊΠ°Π·Π° Π·Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚

ΠŸΡ€ΠΎΠ²Π΅Ρ€Π° Π΄ΠΎΠΊΠ°Π·Π° ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° сС своди Π½Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ ΠœΠ΅Ρ€ΠΊΠ»Π΅ ΠΏΡƒΡ‚Π°ΡšΠ΅ свС Π΄ΠΎΠΊ Π½Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›Π΅Π³ основног Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°:

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
    }
}

јасно:

ΠŸΡ€ΠΎΡ†Π΅Ρ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅ Π΄ΠΎΠΊΠ°Π·Π° Π·Π° А

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

УклањањС ставки

Π”Π° бистС ΡƒΠΊΠ»ΠΎΠ½ΠΈΠ»ΠΈ Ρ›Π΅Π»ΠΈΡ˜Ρƒ ΠΈΠ· Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π΅, ΠΌΠΎΡ€Π°Ρ‚Π΅ ΠΏΡ€ΡƒΠΆΠΈΡ‚ΠΈ Π²Π°Π»ΠΈΠ΄Π°Π½ Π΄ΠΎΠΊΠ°Π· Π΄Π° јС Ρ›Π΅Π»ΠΈΡ˜Π° Ρ‚Π°ΠΌΠΎ. ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ›ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ ΠΈΠ· Π΄ΠΎΠΊΠ°Π·Π°, ΠΌΠΎΠ³ΡƒΡ›Π΅ јС ΠΈΠ·Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ‚ΠΈ Π½ΠΎΠ²Π΅ корСнскС Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π΅ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° Π·Π° којС Π΄Π°Ρ‚ΠΈ Π΄ΠΎΠΊΠ°Π· вишС Π½Π΅Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Ρ‚Π°Ρ‡Π°Π½.

Алгоритам јС слСдСћи:

  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;
    }
}

ΠŸΡ€ΠΎΡ†Π΅Ρ ΡƒΠΊΠ»Π°ΡšΠ°ΡšΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° "А":
Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Ρƒ ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›Ρƒ ΠΌΡ€Π΅ΠΆΡƒ

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ›ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€, Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ ΠΌΠΎΠ³Ρƒ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Ρƒ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π”Π‘-Π° Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ΅ свих УВКБО-Π°, Π° Π΄Π° ΠΈ Π΄Π°Ρ™Π΅ ΠΌΠΎΠ³Ρƒ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ УВКБО-сСт. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, Ρ˜Π°Π²Ρ™Π° сС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ€Π°Π΄Π° са Π΄ΠΎΠΊΠ°Π·ΠΈΠΌΠ°.

Позовимо Ρ‡Π²ΠΎΡ€ Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€Π° који користи УВКБО Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π°Π½ (Ρ‡Π²ΠΎΡ€ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠ³ ΡΡ‚Π°ΡšΠ°), Π° Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ Π±Π΅Π· Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° јС ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚Π°Π½ (ΠΏΡƒΠ½ Ρ‡Π²ΠΎΡ€). ΠŸΠΎΡΡ‚ΠΎΡ˜Π°ΡšΠ΅ Π΄Π²Π΅ класС Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° ствара ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π° ΡšΠΈΡ…ΠΎΠ²Ρƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Ρƒ Ρƒ Ρ˜Π΅Π΄Π½Ρƒ ΠΌΡ€Π΅ΠΆΡƒ, ΠΏΠΎΡˆΡ‚ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ Π·Π°Ρ…Ρ‚Π΅Π²Π°Ρ˜Ρƒ Π΄ΠΎΠΊΠ°Π· ΠΏΠΎΡΡ‚ΠΎΡ˜Π°ΡšΠ° УВКБО-Π° који сС Ρ‚Ρ€ΠΎΡˆΠ΅ Ρƒ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°ΠΌΠ°, Π΄ΠΎΠΊ ΠΏΡƒΠ½ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ Π½Π΅. Ако сви ΠΌΡ€Π΅ΠΆΠ½ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ Π½Π΅ ΠΏΡ€Π΅Ρ’Ρƒ истоврСмСно ΠΈ Π½Π° координисан Π½Π°Ρ‡ΠΈΠ½ Π½Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ-Π°, ΠΎΠ½Π΄Π° Ρ›Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ Π±ΠΈΡ‚ΠΈ остављСни ΠΈ Π½Π΅Ρ›Π΅ ΠΌΠΎΡ›ΠΈ Π΄Π° Ρ€Π°Π΄Π΅ Π½Π° Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½ ΠΌΡ€Π΅ΠΆΠΈ.

Π”Π° Π±ΠΈ сС Ρ€Π΅ΡˆΠΈΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π΅ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈΡ… Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° Ρƒ ΠΌΡ€Π΅ΠΆΡƒ, ΠΏΡ€Π΅Π΄Π»Π°ΠΆΠ΅ сС ΡƒΠ²ΠΎΡ’Π΅ΡšΠ΅ Π΄ΠΎΠ΄Π°Ρ‚Π½Π΅ класС Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° - мостови. ΠœΠΎΡΡ‚Π½ΠΈ Ρ‡Π²ΠΎΡ€ јС ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚Π°Π½ Ρ‡Π²ΠΎΡ€ који Ρ‚Π°ΠΊΠΎΡ’Π΅ Ρ‡ΡƒΠ²Π° Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Ρƒ ΠΈ Π΄ΠΎΠΊΠ°Π· Π·Π° ΡƒΠΊΡ™ΡƒΡ‡Π΅ΡšΠ΅ свС УВКБО ΠΈΠ· УВКБО-сСта. ΠœΠΎΡΡ‚ΠΎΠ²ΠΈ ΠΈΠ·Ρ€Π°Ρ‡ΡƒΠ½Π°Π²Π°Ρ˜Ρƒ Π½ΠΎΠ²Π΅ Ρ…Π΅ΡˆΠΎΠ²Π΅ ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ˜Ρƒ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ ΠΈ Π΄ΠΎΠΊΠ°Π·Π΅ ΠΊΠ°ΠΊΠΎ стигну Π½ΠΎΠ²ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°. ΠžΠ΄Ρ€ΠΆΠ°Π²Π°ΡšΠ΅ ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π°ΠΊΡƒΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° ΠΈ Π΄ΠΎΠΊΠ°Π·Π° Π½Π΅ Π½Π°ΠΌΠ΅Ρ›Π΅ Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΎ рачунарско ΠΎΠΏΡ‚Π΅Ρ€Π΅Ρ›Π΅ΡšΠ΅ Ρ‚Π°ΠΊΠ²ΠΈΠΌ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈΠΌΠ°. ΠœΠΎΡΡ‚ΠΎΠ²ΠΈ ΠΆΡ€Ρ‚Π²ΡƒΡ˜Ρƒ простор Π½Π° диску: ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄Π° ствари Π±ΡƒΠ΄Ρƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π΅ Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π° Ρ…Π΅Ρˆ, Ρƒ ΠΏΠΎΡ€Π΅Ρ’Π΅ΡšΡƒ са Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π° Ρ…Π΅Ρˆ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅, Π³Π΄Π΅ јС Π½ снага УВКБО скупа.

АрхитСктура ΠΌΡ€Π΅ΠΆΠ΅

Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ: ΠΊΠΎΠΌΠΏΡ€ΠΈΠΌΠΎΠ²Π°ΡšΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… УВБО Π‘ΠΈΡ‚Ρ†ΠΎΠΈΠ½-Π°

ΠœΠΎΡΡ‚ΠΎΠ²ΠΈ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π°Ρ˜Ρƒ постСпСно додавањС ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈΡ… Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° Ρƒ ΠΌΡ€Π΅ΠΆΡƒ Π±Π΅Π· ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ софтвСра ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›ΠΈΡ… Ρ‡Π²ΠΎΡ€ΠΎΠ²Π°. ΠŸΡƒΠ½ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ Ρ€Π°Π΄Π΅ ΠΊΠ°ΠΎ ΠΈ Ρ€Π°Π½ΠΈΡ˜Π΅, Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΠΈΡ€Π°Ρ˜ΡƒΡ›ΠΈ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ ΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅ ΠΌΠ΅Ρ’Ρƒ собом. ΠœΠΎΡΡ‚ΠΎΠ²ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ су ΠΏΡƒΠ½ΠΈ Ρ‡Π²ΠΎΡ€ΠΎΠ²ΠΈ који Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΎ Ρ‡ΡƒΠ²Π°Ρ˜Ρƒ Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ ΠΎ Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜ΠΈ ΠΈ скуп Π΄ΠΎΠΊΠ°Π·Π° ΠΎ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°ΡšΡƒ Π·Π° свС УВКБО Π·Π° сада. ΠœΠΎΡΡ‚Π½ΠΈ Ρ‡Π²ΠΎΡ€ сС Π½Π΅ оглашава ΠΊΠ°ΠΎ Ρ‚Π°ΠΊΠ°Π², ΠΏΡ€Π΅Ρ‚Π²Π°Ρ€Π°Ρ˜ΡƒΡ›ΠΈ сС Π΄Π° јС ΠΏΡƒΠ½ Ρ‡Π²ΠΎΡ€ Π·Π° свС ΠΏΡƒΠ½Π΅ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈ Ρ‡Π²ΠΎΡ€ Π·Π° свС ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅. Иако мостови ΠΏΠΎΠ²Π΅Π·ΡƒΡ˜Ρƒ ΠΎΠ±Π΅ ΠΌΡ€Π΅ΠΆΠ΅ зајСдно, ΠΎΠ½ΠΈ Π·Π°ΠΏΡ€Π°Π²ΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΈΡ… ΠΏΠΎΠ²Π΅ΠΆΡƒ само Ρƒ јСдном ΠΏΡ€Π°Π²Ρ†Ρƒ: ΠΎΠ΄ ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›ΠΈΡ… ΠΏΡƒΠ½ΠΈΡ… Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° Π΄ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈΡ… Ρ‡Π²ΠΎΡ€ΠΎΠ²Π°. Ово јС ΠΌΠΎΠ³ΡƒΡ›Π΅ Ρ˜Π΅Ρ€ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ Π½Π΅ ΠΌΠΎΡ€Π° Π΄Π° сС мСња, Π° УВКБО Π΄ΠΎΠΊΠ°Π·ΠΈ Π·Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅ ΠΌΠΎΠ³Ρƒ Π΄Π° сС ΠΎΠ΄Π±Π°Ρ†Π΅, Ρ‚Π°ΠΊΠΎ Π΄Π° сваки ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈ Ρ‡Π²ΠΎΡ€ ΠΌΠΎΠΆΠ΅ Π½Π° сличан Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π΅ΠΌΠΈΡ‚ΡƒΡ˜Π΅ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π΅ свим учСсницима ΠΌΡ€Π΅ΠΆΠ΅ Π±Π΅Π· ΡƒΡ‡Π΅ΡˆΡ›Π° Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° Π·Π° ΠΏΡ€Π΅ΠΌΠΎΡˆΡ›ΠΈΠ²Π°ΡšΠ΅.

Π—Π°ΠΊΡ™ΡƒΡ‡Π°ΠΊ

ПоглСдали смо Π£Ρ‚Ρ€Π΅Π΅ΠΊΠΎ Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Ρƒ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π»ΠΈ њСн ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Ρƒ Руст. ПоглСдали смо ΠΌΡ€Π΅ΠΆΠ½Ρƒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ која Ρ›Π΅ ΠΎΠΌΠΎΠ³ΡƒΡ›ΠΈΡ‚ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Ρƒ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° заснованих Π½Π° Π±Π°Ρ‚Π΅Ρ€ΠΈΡ˜Π°ΠΌΠ°. ΠŸΡ€Π΅Π΄Π½ΠΎΡΡ‚ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΈΡ… Ρ…Π²Π°Ρ‚Π°Ρ‡Π° јС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΡƒΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Π½ΠΈΡ… ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°, која логаритамски зависи ΠΎΠ΄ снагС скупа УВКБО, ΡˆΡ‚ΠΎ Ρƒ вСликој ΠΌΠ΅Ρ€ΠΈ ΡΠΌΠ°ΡšΡƒΡ˜Π΅ Π·Π°Ρ…Ρ‚Π΅Π²Π΅ Π·Π° простором Π½Π° диску ΠΈ пСрформансама ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅ΡšΠ° Π·Π° Ρ‚Π°ΠΊΠ²Π΅ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π΅. НСдостатак јС Π΄ΠΎΠ΄Π°Ρ‚Π½ΠΈ ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜ Ρ‡Π²ΠΎΡ€ΠΎΠ²Π° Π·Π° ΠΏΡ€Π΅Π½ΠΎΡˆΠ΅ΡšΠ΅ Π΄ΠΎΠΊΠ°Π·Π°, Π°Π»ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ΅ Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡ˜Π΅ Π΄ΠΎΠΊΠ°Π·Π° (ΠΊΠ°Π΄Π° јСдан Π΄ΠΎΠΊΠ°Π· Π΄ΠΎΠΊΠ°Π·ΡƒΡ˜Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°ΡšΠ΅ вишС Π΅Π»Π΅ΠΌΠ΅Π½Π°Ρ‚Π°) ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠΌΠΎΡ›ΠΈ Π΄Π° сС ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜ Π·Π°Π΄Ρ€ΠΆΠΈ Ρƒ ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚Ρ™ΠΈΠ²ΠΈΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠ°.

Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†Π΅:

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€