През 2001 г., когато е изобретен BitTorrent, друга p2p мрежа, която вече е добре позната и работи по същата повечето принципи, започнаха да се отказват от позициите си. Тя беше жертва на собствения си успех: имаше почти 150 000 потребители и поддържаните от общността директории сървъри не можеха да се справят с натоварването. Три часа след свързването, новият „сървър“ достигна ограниченията на честотната лента и прекъсна връзката.
свързана статия: Той беше тормозен в училище, но сега води охолен начин на живот благодарение на търговията с биткойн и други криптовалути
Как криптовалутата може (не) да се учи от грешките на другите
Как е свързано това с криптовалутите? Може да срещнете подобни проблеми, когато се опитвате да синхронизирате напълно крипто портфейла, например, пълния клиент на Ethereum. Разпространената технология има проблеми с мащабируемостта. За тези, които започнаха своята „онлайн кариера“ с несъзнателно документиране на спада на p2p мрежата, споменат по-горе, тази ситуация е изненадващо позната.
свързана статия: Австралийски инвеститор купи имот от 2800 кв.м в Чарлевил с пари, които спечели чрез иновативен финансов инструмент
В тази статия ще се опитам да опиша коренитепроблеми, идентифицирайте връзката му с криптовалутите, анализирайте как е било решено в p2p мрежата, а също така помислете защо тези решения са частично или напълно неподходящи за криптовалутата.
История на разпределената скалируемост
Можете да направите много паралели на криптосферата сp2p споделяне на файлове. Много от тях чудесно са описани в серия от четири части от статиите на „Саймън Морис за„ Криминални уроци за крипто “. Съгласен съм с повечето му точки, с изключение на едно: BitTorrent беше не първата система, която предоставя проста инадеждно споделяне на файлове по бавни и ненадеждни канали. Дори да не вземете предвид Z-модема от 1986 г., който вече имаше много функции за стабилност, BT беше само опростена версия на съществуваща технология: система, която позволява на много хора да качват един файл и да споделят фрагменти помежду си, за да увеличат скоростта на изтегляне и най-важното - да намалят натоварването на този, който е изтеглил файла. Тази система също така ви позволи да поставяте хипервръзки към споделени файлове на редовни сайтове. Имаше поне една такава система - eDonkey 2000 или eDonkey, или ed2k. Принципите на работа на BitTorrent и eDonkey са толкова сходни, че BitTorrent трудно може да се нарече клон на последния.
Основната разлика между BT и ed2k ече в ed2k можете да получите достъп до файлове без уебсайт на трета страна. Няма нужда да ходите в Пиратския залив. Можете просто да търсите свързания сървър на директории eDonkey и да получите достъп до всички файлове, споделени от други членове. Това може да стане с помощта на добрата стара лента за търсене. Това, което се случи извън тази линия за търсене, беше както щастието, така и проклятието в мрежата.
Ако нямате технически познания, просто пропуснете текста по-долу в курсив.
За да изтеглите файл от BitTorrent, първо трябва да намерите и изтеглите торент файл от някакъв уеб сървър, и го поставете в BT клиента. Тогава самият той ще се справи с всички доста прости неща: ще се свърже с тракера или тракера, за да получи достъп до желания файл, след това ще получи списък с всички, които могат да изтеглят фрагменти от този файл и да започне да изтегля.
Нито тракерът, нито участниците не могат да бъдат намерени без торент файл, който трябва да бъде публикуван от някой в уебсайта. Това означава, че ако искате да публикувате файл, трябва да:
- стартирайте тракер за този файл
- създайте торент файл с пътя към тракера
- качване на торент файл на уебсайта
- разпространете връзката към торент файла
Тук възниква допълнително ниво на сложност, допълнителен посредник. Разбира се, сайтове, които публикуват такива връзки, като Пират Бей, много често нарушават закона.
За да публикувате файл в eDonkey, трябва да:
- стартирайте eDonkey клиент
- поставете файла в желаната папка на компютъра
И това е всичко! Всеки може да се свърже със същия „eDonkey сървър“, като просто напише част от името на файла в лентата за търсене. Натиснете бутона и сте готови. Всеки, качил един и същ файл, автоматично споделя фрагменти от него, както в BitTorrent. По този начин, ed2k сървърът играе ролята както на уебсайт, така и на тракер.
Моля, обърнете внимание, че нито една от страните не съхранява валидни данни за файлове, следователно това не нарушава авторските права пряко, Разбира се, всеки, който качи или изтегли истински файл, нарушава тези права.
В допълнение, да се използва ed2k беше възможноПубликувайте хипервръзки към уебсайтове. Ако за потребителите беше по-удобно да получат връзка през надежден уебсайт, тогава те биха могли да използват и тази опция.
Разбира се, никой не мисли, че само един сървърще свърши цялата работа на услугата за търсене и ще проследи информация за всички файлове в Интернет. Следователно всеки може да стартира своя eDonkey сървър. Сървърите се свързват помежду си, образувайки собствена мрежа, както е при криптовалутите.
Имаше обаче един малък проблем. Как да намеря файловете, които „моят сървър“ - сървърът, към който се свързвам, не проследява?
Как BitTorrent реши този проблем? Няма как, поне в началото. Ако вашият торент файл няма активен тракер, нищо няма да работи. (Тази функция на системата също предотврати появата на някои проблеми с BT, но ще говоря за това друг път *.)
От друга страна, eDonkey сървърите изпратиха списък на всички сървъри, които познаваха по време на връзката. Това позволи ... изпратете заявка за файл до всички сървъри. Затова мрежата на eDonkey е починала.
В Интернет може да съществува неограничен брой сървъри на eDonkey. Всеки клиент може да поиска файл от вашия сървър. Добавянето на нов сървър не намаля натоварването на други сървъри, а само увеличи общия трафик за търсене на eDonkey в Интернет. Тъй като все повече и повече клиенти научиха за eDonkey сървъра, неговата интернет връзка и често това беше домашна DSL връзка стана твърде заета. Единственият начин да продължите беше да получите различен IP адрес от доставчика.
допълнение нов клиент също засегна всеки сървър, който този клиент може да намери. Но ще ви разкажа как се случи това откритие друг път. Оказа се, че максималната сума клиенти в цялата мрежаче сървърите могат да издържат е около 150 000. Това не е нищо в сравнение със съвременните стандарти, но трябва да помним, че пропускателната способност на DSL връзката тогава е била 256 Kbps.
Участвах в общността eDonkey ибеше в разгара на това бедствие. Опитах се да намеря решения на проблема и се опитах безуспешно да убедя хората, че не използват инструменти за зареждане на мрежи, които увеличават трафика и така излязоха извън контрол.
Ето защо, когато за първи път чух какБиткойн работи, което се случи много преди официалната му поява, смях се. И трябваше да започнеш да копаеш. Разбирането на техническите ограничения не гарантира разбирането на принципа на алчността.
Проблемът с мащабируемостта на криптовалутите
Ако знаете нещо за разпространените регистри, тогава може да знаете, че всички пълен клиентът на такива мрежи трябва да има пълно копие на регистъра (или поне текущата версия на всякаакаунт в регистъра и известна история), което означава, че трябва да изтеглите всички актуализации в мрежата. Както в случая на сървърите на edonkey, създаването на друг пълноправен клиент не намалява натоварването на други пълноценни клиенти, а само обременява всички, тъй като клиентите трябва да изпращат копия от транзакции на още един компютър, който също генерира транзакции.
Създаването на „лесен“ клиент или „лич“ няма положителен ефект върху пълните клиенти. В случая всички също трябва да обработвате транзакциите на друг клиент, но поне един от тях вече получава искания от леки клиенти всеки път, когато трябва да проверят баланса.
По този начин натоварването в мрежата се увеличава споявата на всеки нов клиент, независимо дали е пълен или лек клиент. Тя не може да бъде намалена по никакъв начин, вграден в инструментите. Не прилича на нищо?
Ако има миньори в мрежата, тогава същият проблемсе появява и при тях: те трябва да обработват и подписват всяка транзакция. Обикновено тези компютри и техните връзки са по-подходящи за ролята на сървъра, в крайна сметка те печелят пари от транзакции. Но дори и в този случай претоварването на връзката е само въпрос на време. Особено, ако миньорите станат действителни сървъри в мрежата, когато всички клиенти се превърнат в леки, тъй като изискванията за пълни клиенти са твърде високи за нетърговска употреба.
Файл хостинг решение
Ако сте запален техник, може да си помислите: „Защо просто не използваха разпределени хеш-таблици?“
И ето защо: всичко се случи преди да бъдат изобретени разпределените хеш-таблици.
DHT (Distributed Hash Tables - „Distributed Hash Tables“) разпространява хеш-таблици, по същество обикновени бази данни, в мрежа от компютри, така че всеки от тях носи отговорност за част данни. Поглеждайки напред, ще кажа, че по този начин можете да съхранявате много повече данни, отколкото да се поберат в паметта на някой от участващите компютри. Ако всичко е направено правилно, тогава всеки участник ще получава заявки само на „тяхната“ част от хеш-таблицата, която разпределя натоварването между много възли. Добавяне на възли към DHT намалява зареждане на всеки възел, но не го увеличава. Ето защо днес опциите за DHT се използват почти навсякъде, започвайки от Google.
Всъщност DHT също е решение за ed2k(или по-скоро за протокола Overnet) и за проблема със сегрегацията на BitTorrent тракера. В Overnet, както и в DHT BitTorrent, всеки клиент става тракер за определена част от мрежата, предоставяйки много повече ресурси за търсене. Overnet елиминира нуждата от цяла мрежа от eDonkey сървъри.
Може ли криптовалутата да се поучи от грешките на другите?
Разпределените хеш-таблици са като магияпръчката. Те ви позволяват да "изостряте" почти цялата информация, предпазвайки възлите от твърде много заявки. Може ли това решение да се използва за криптовалути?
Накратко, не (по-подробен отговор е даден по-долу). По-дълъг отговор: възможно, но всички първоначални блокчейн обещания трябва да бъдат спазени.
Надеждност на „разпределения регистър“ в по-голямата си частчасти се осигурява от факта, че разпределените регистри, за разлика от разпределените хеш-таблици, се разпространяват само както се случва с вестниците - всеки получава своето копие. Разделянето на регистрите ще намали достъпността на данните и съответно тяхната надеждност.
Ето още една аналогия с споделянето на файлове: Можете да изтеглите филм само ако има достатъчно източници в мрежата едновременно, за да изтеглите целия файл. Ако 300 източника имат началото на файла и 50 имат неговия край, а никой няма средата на файла, тогава целият филм няма да се зареди. Тъжно е, но не и краят на света. Много по-лошо е, когато част от парите не е достатъчна в портфейла.
Разбира се, можете да копирате части многократнорегистър, за да се гарантира присъствието на достатъчен брой клиенти ... Но достатъчно - колко? Добре ли е, когато всичките ви пари могат да излизат офлайн с шанс 1 на хиляда? 1 до милион? Докато всички възли принадлежат на обикновените хора, никога не знаете колко участници могат да излизат офлайн в даден момент. Какво става, ако в Судан се случи мащабен прекъсване на тока и всички копия на портфейла ви ще се съхраняват там, дори и да сте в Съединените щати?
Разбира се, винаги можете да си служитепълен клиент и протоколът за фрагментиране ще осигури постоянна наличност на копие от портфейла и историята на транзакциите на вашия компютър. Но можете да погледнете от другата страна: да кажем, че продавате нещо, а купувачът е единственият участник, който има доказателства за наличието на средства ... Съгласен ли сте за такава сделка?
Има и лек проблем със сигурността.мрежа - тя се осигурява от миньори. Разбира се, в този случай блокът не може да бъде подписан от всеки миньор. В противен случай в мрежа без сървъри, ролята на сървъра ще трябва да бъде прехвърлена към миньори: всеки миньор ще трябва да обработва всички транзакции в мрежата, като силно зарежда връзката си.
Това означава, че фрагментирането става автоматичноще намали разходите за сигурност на криптовалутната мрежа и ще стане по-лесно да се атакува. Днес има само две криптовалутни мрежи, които могат да си позволят да намалят разходите за сигурност: Bitcoin и Ethereum. Почти всички други криптовалутни мрежи вече са атакувани с 51%. Това доказва едно: изчислителната сила на нападателите е просто невероятна.
Всичко това ни води до следното. Ако фрагментирате регистъра на криптовалутите, тогава кой може да гарантира, че фрагментът, който имате, наистина е част от системния регистър? В крайна сметка се оказва мрежа от ненадеждни възли, на които не може да се вярва. Какво се случва, ако част от регистъра е „в ръцете“ на нападател?
Тук се разграничават три аргумента:
- Логическа небрежност (никой няма да може да улови всички възли, върху които се съхранява определен фрагмент).
- Статистика (вероятността всички възли с определен фрагмент да бъдат в една и съща мрежа е много малка).
- Шифроване (криптографската защита предотвратява този проблем).
Проблемът е, че хората са склонни значително да подценяват размера и силата на злонамерените мрежи в света на криптовалутите. Например, в началото на 2019 г. имаше 51% атака срещу Ethereum Classic, която могъл струва нападателите 55 милиона долара (или понепоне половината от тази сума, като се има предвид спадът в цените на криптовалутите). По-късно нападателите върнаха откраднатите жетони за $ 100 хил. Оказа се, че това е просто тест или предупреждение. Изглежда, че за нападателя тази атака струва не повече от 1 милион долара, защото уж е имало приблизително тази сума в портфейла му.
Ако някой може да получи огромна сумаобработваща мощност на сравнително ниска цена (в сравнение с парите, които могат да бъдат откраднати), тогава тя предлага невероятни възможности. Елементи 1 и 2 могат да се обработват с DDOS атака на „истински“ възли, заемайки тяхното място. Що се отнася до параграф 3, предлагам да се обърна към историята.
В мрежата на eDonkey името на файла не беше ключово за него. Всеки член може да промени името на файла. Пътят на файла се получава с помощта на криптографски хеши. Да предположим, че сте кликнали върху проверена връзка например, за да изтеглите нов блокбастър. Ще получите размера на хеша и файла.
След няколко часа или дни филмът се зареди,направихте пуканки в микровълновата и, седнали на дивана с вашата сродна душа, включихте филма и ... Затвориха го веднага, защото се оказа хардкор порно.
След дълги обяснения с, вероятно, вашитесродна душа, ще започнеш да разбираш какво се е случило. И се случи следното. За адресиране на файла е използван хеш алгоритъмът MD4. Не можете обаче да дешифрирате хеша в данни поради загуба на информация можешс известни усилия за намиране на данни,които имат еднакъв хеш и размер. Трудно е да се разчупи хеш чрез изчерпателно търсене, отнема много компютърна мощност и време. Но за разбиване на хеша на MD4 не е необходимо да се извършва изчерпателно търсене: преди няколко години беше открита уязвимост в алгоритъма, която позволи да се пресъздадат данните на конкретен хеш.
Хакването на съвременни хешове изисква повечепроцесорна мощност от преди. Но, както вече видяхме, размерът на изчислителната мощ на нападателите е просто колосален и, изглежда, да го придобиете е много по-лесно, отколкото изглежда. За сигурността ви трябват повече от няколко криптовалути.
Не казвам, че е невъзможно мащабиранетоблокчейна мрежа. Това може да стане с помощта на преобразуване, жертвайки определени свойства, които вече бяха споменати по-горе. Резултатът ще бъде нещо различно от най-добрия дублиран разпределен регистър в света, копие от което всички имат. Защо това изобщо е необходимо? Много по-лесно е да решите всички проблеми с традиционните бази данни или частни блокчейн, без да харчите огромно количество електроенергия, за да докажете свършената работа.
*: Бях един от онези хора, които предоставяха ed2k услуги на общността, от които BitTorrent просто нямаше нужда: сървърни списъци. Торент файловете бяха грозна междинна стъпка и включваха път към намирането на тракери. Връзките ed2k: // не бяха такива и по това време почти всички имаха динамични IP адреси и DNS поддръжката в протокола edonkey силно липсваше, което направи невъзможно дори да влезете в мрежата на eDonkey без действителен списък със сървъри.