Ръководство за блъфиране в Ethereum: Някои отговори на въпроси …

BulChain.com

Блокчейн – или, както някои биха казали “разпределени счетоводни книги” – е една от онези напълно неразбрани области на технологиите, в които хората често казват, че това е най-доброто нещо след нарязването на хляба, а други казват, че това е катастрофа. Да се каже, че Биткойн представлява съвременната блокчейн мрежа, е все едно да се сравни Ford Model T с автомобил Tesla. За това ще цитирам една известна строфа на Джон Годфри Сакс:

Бяха шестима мъже от Индостан, които бяха много склонни към обучение, които отидоха да видят слона (въпреки че всички бяха слепи), за да може всеки от тях чрез наблюдение да задоволи ума си.

И така, тежи мъже от Индостан спориха дълго и шумно, всеки според собственото си мнение, изключително твърд и силен, макар че всеки от тях беше отчасти прав, а всички грешаха! Така често в богословските войни спорещите, струва ми се, стъпват в пълно неведение какво имат предвид, и разсъждават за слон, който никой от тях не е виждал!

— Джон Годфри Сакс

Цитирам: “Макар че всеки от тях бил отчасти прав, а всички са били в грешка!”. За мен блокчейнът създава най-надеждният свят на цифрово подписване и който преодолява много от недостатъците на методите за цифрово доверие. Виждам чудото на пет десетилетия криптогравски изследвания в областта на публичния ключ и красотата на дърветата Меркъл. Така че нека не затваряме съзнанието си за възможностите, които тя носи, и да научим малко повече по темата.

Не го търсете само в Google!

За съжаление все по-често живеем в свят, изпълнен с повърхностно знание, в който често научаваме нещата повърхностно. Ако искаме мнение за нещо, често просто го търсим в Google и намираме някой, който е отговорил на този въпрос. За един учител разочароващ отговор от страна на ученик е:

“Опитах се да потърся отговор в Google, но не мога да го намеря! Какво да правя сега?”,

на които отговорът от страна на учителите често е нещо подобно:

“Ами направете някои проучвания и разследвания, намерете различни гледни точки, водете си записки и ще намерите своя собствен отговор. Ще се учите, докато проучвате, и ще изграждате собствените си познания… след това го напишете с всички неща, които сте на учили.”

Така че нека сам се хвана в капана си и да ви дам наръчник за блъфиране. Правя това не за да приемите мнението ми, а за да ви накарам да се заинтересувате от темата и да искате да научите повече. Може би това ви изключва от изучаването ѝ? По това няма нищо лошо, тъй като всичко това е част от намирането на неща, които ви интересуват в обучението ви. Ученето се превръща в задължение, когато е скучно и когато няма голяма значимост за придобиване на нови знания.

Искам също така да преодолея предразсъдъците на онези, които смятат, че блокчейн технологиите имат само една страна, и на онези, които никога не са се докосвали до разпределена счетоводна книга. Така че, ето едно ръководство за блъфиране в Ethereum, в няколко въпроса.

1. Струва ли ми пари да използвам Ethereum?

Да. В Мейннет тярбав да платите на миньорите, за да свършат някаква работа за вас. Това е добре, тъй като спира хакването на главната книга, тъй като би било твърде скъпо да се направи това. Така че за всяка малка част от работата, която трябва да се извърши, за да се добави вашият код в Ethereum и да се промени състоянието му, ще ви бъде начислена малка част от Ether. Този Ether трябва да бъде заплатен. Обикновено определяме Ether като газ, който миньорите консумират.

2. Какво е интелигентен договор?

Интелигентния договор е програма, която може да се изпълнява в разпределената мрежа на Ethereum. По този начин тя е надеждна срещу централни точки на отказ. Кодът се управлява добре и трябва да бъде написан на специален език, наречен Solidity. След това компилатор преобразува този код на високо ниво в двоичен код, който работи в Ethereum. Този код е изключително надежден и е проверен, така че да е стабилен в работата си. След това интелигентният договор има функции, които могат да се изпълняват и в които могат да се подават стойности на данни и да се връщат обратно.

3. Моят интелигентен договор ли е личен за мен?

Не. Можете да притежавате интелигентен договор, но след като бъде публикуван, всички в мрежата на Ethereum може да види кода, използван в интелигентния договор. Това е добре от гледна точка на одита, тъй като в кода няма нищо тайно. Все пак може да имате разширени права в рамките на договора, тъй като сте негов собственик. Например, можете да създадете интелигентен договор за създаване на NFT (Non-Fungible Tokens), в който вие сте създателят им и никой друг не може да ги създаде.

4. Как работят заменимите жетони?

Фунгибилните токени позволяват на даден субект да създава свои собствени криптографски токени, които са еднакви и имат еднаква стойност. Например, мога да създам 1000 токена и нито повече, нито по-малко. След това те се създават с интелигентен договор и се присвояват на субект (обикновено лицето, което създава токена). След това мога да поставя стойност на токена и или да го фиксирам, или да му позволя да се търгува на борсата. За футболен мач след това мога да продам 1000 токена, като позицията на токена в нечий портфейл или в счетоводна книга ще определи собствеността на токена и къде той може да докаже, че е закупил токена.

5. Как функционират незаместимите жетони (NFT)?

NFTs се различават от заменимите жетони, тъй като не се създават при стартирането на интелигентния договор. След тава всеки NFT се изсичат и се създават по уникален начин. За тази цел можем да присъдим докторска квалификация като NFT и когато университетът изсече токена за някой, на когото предстои да бъде присъдена докторска степен. Той ще бъде уникален и ще съдържа данни, които не могат да бъдат променени. Ако е необходимо, можем да прехвърлим NFT на друг субект, но това може да бъде направено само от собственика на NFT. По този начин интелигентния договор поддържа функции като създаване и прехвърляне на токени.

6. Как да тествам смарт контракта си, без да се налага да изгарям газ?

За щастие можем да стартираме или локална блокчейн система (с Geth), или да използваме тества мрежа. С локалната блокчейн мрежа можем да стартираме Geth като самостоятелен пакет и след това да взаимодействаме с него чрез интерфейса на командния ред (CLI). Това ни позволява да създадем своя собствен блокчейн и да видим детайлите на нейната работа. Но в много случаи просто трябва да видим дали можем правилно да разгърнем нашия код, затова често използваме пакет с графичен потребителски интерфейс (GUI), известен като Ganache. Той автоматично създава за нас тестови блокчейн и добавя редица сметки. След това можем да видим как се добиват нашите трансакции и да прегледаме работата на счетоводната книга. Като цяло всяко от сметките вече е създадена с Ether, така че това не ни струва нищо.

1*Y3IY1UzdHMj5 NNhoMgF5g

Очевидно това е доста бърз метод за тестване на нашия код, но не позволява на други потребители да извършват своите операции. Затова, за да тестваме кода си в по-представителна мрежа, можем да го разположим в тестова врежа, като например Ropsten. При това положение сега се нуждаем от малко Ether, който можем да поискаме от тестовата мрежа. След това трябва да добавим този Ether в портфейл. Добре познат портфейл MetaMask. След това, когато разгърнем нашия интелигентен договор в тестовата мрежа, ще ни бъде начислен някакъв газ, за да го допием.

След като тестваме всичко, можем да отидем в MainNet и да разгърнем кода. Това ще ни струва малко истински Ether.

7. Колко голям е моят частен ключ и може ли да бъде открит?

Ethereum, използвайки крива sepc256k1, която има 256-битов ключ. Това случайно число има (2²⁵⁶):

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936

възможни ключове. Почти невъзможно е всеки път да се намери частен ключ в това пространство от ключове само чрез използване на методи за груба сила.

8. Какво цифров портфейл?

В Ethereum цифровият портфейл съдържа частен ключ. Това е ключът, с който се подписват трансферите и който не трябва да се разпространява на никого. След това портфейлът извлича публичен идентификатор, който ви определя еднозначно. Когато някой желае да ви изпрати някаква криптовалута или токен, той ще го изпрати на вашия публичен адрес. Това ще бъде записано в главната книга, а след портфейлът ще вземе трансакцията от главната книга и ще я покаже във вашия портфейл. След това и този портфейл ще води отчет за това колко етера имате и колко ще похарчите за всяка трансакция.

9. Мога ли просто да пренеса всяка програма в интелигентен договор?

Не. Ethereum се предпазва от отказ на услуга в мрежата и от неефективен код, като се променя за извършената работа. Колкото повече работа трябва да свърши един миньор, толкова повече ще ви струва в Ether. Следователно интелигентните програми трябва да бъдат проектирани по високоефективен начин и където всяка операция има значение за свръхстойността. Повечето програми обаче са крайно неефективни и би било твърде скъпо да се кодират само за интелигентен договор. Наред с това Solidity поддържа предимно целочислени операции, така че сложните математически операции, които изискват десетична операция, трябва да бъдат внимателно интегрирани – обикновено с външни Solidity библиотеки.

10. Мога ли да добавям друг код на интелигентен договор в моя интелигентен договор?

Да, но внимавайте! Можем лесно да импортираме съществуващ код на интелигентен договор, когато компилираме (но не можем да се свързваме с вече изграден код). По този начин компилираме всеки договор от нов код. Винаги, когато използваме външен код, трябва да го проверяваме, тъй като в него може да има слабости, които да позволят хакването на нашия интелигентен договор.

11. Ще се срине ли в крайна сметка Ethereum или ще стане твърде бавен?

Да. Теоретично всяка компютърна система има лимит и ако има твърде много задачи и недостатъчни ресурси, системата може да се срине или да стане бавна. Следователно не можете магически да създадете изчислителни ресурси, с които не разполагате – дори в разпределена инфраструктура. Следователно се нуждаем от пространство за обработка и памет, за да се справим с броя на задачите, които са необходими във всеки един момент. Досега се справяхме с това, но може да ударим на границата, ако Ethereum стане твърде популярен. Надяваме се, че Ethereum 2.0 ще се справи с този проблем и ще въведе концепцията за sharding, и която разпределя обработката, така че да имаме по-малка зависимост от по-централизиран подход към главната книга.

12. Чух, че доказателството за работа е лошо, какъв е проблемът?

В Ethеreum доказателството за рабата включва възнаграждение за добрата работа на миньорите на трансакции. За това няма толкова голяма конкуренция, каквато има в Bitcoin – и която е силно конкурентен метод за добив. Като цяло Bitcoin е много разточителен и бавен, при създаването на нови блокове, докато Ethereum е много и по-бърз и стимулира потребителите да бъдат ефективни в своя код. Надявам се, че Ethereum 2.0 ще въведе модел на доказване на залог, при който възлите ще предоставят залог в мрежата, за да могат да бъдат работници- След това те ще получават възнаграждение за това, че вършат добра работа.

13. Как да актуализирам интелигентния си договор до нова версия?

Актуализирането на интелигентния договор, който е ангажиран и работи, не е добро нещо, тъй като текущата версия е проверена и всички знаят как работи. Ако ни беше позволено да променяме интелигентен договор до нова версия, така бихме могли да добавим злонамерен код, така че новият договор трябва да бъде публикуван на ново място, а след това да се премаркира в приложенията.

14. Мога ли да се свързвам с външни системи чрез моя смарт контакт?

Работата на интелигентния договор трябва да бъде изолирана от интернет, тъй като всякакви външни връзки могат да компрометират работата на интелигентния договор.

15. Как могат да стана миньор?

В Ethereum имаме разпределена инфраструктура и всеки може да добави свой собствен хардуер към мрежата и да стане миньор.

16. Колко може да струва един възел за доказване на залог?

Тъй като Ethrereum преминава към доказателство за залог, вероятно ще ви трябват около 32 етера, за да се регистрирате като валидатор в мрежата. Тези валидатори ще проверяват създадените трансакции и ще ги добавят към блоковете в мрежата на Ethereum. След това тези валидатори ще бъдат възнаградени за добрата си рабата и, надяваме се, ще изплатят залога си.

17. Чух, че квантовите компютри представляват риск за блокчейн. Вярно ли е това?

Да. Много. Квантовите компютри могат да разбият много от съществуващите ни методи за публични ключове, като например методите на елиптичната крива, използвани в Ethereum. След като бъдат изградени в голям мащаб, теоретично би било възможно да се обърне публичния ключ обратно към частния ключ и след това да може да се прехвърлят всякакви цифрови активи. Все пак имаме много години, за да мигрираме към по-нови методи за публичния ключ, като например с решетъчна криптография. Понастоящем NIST се стреми да стандартизира методите на постквантовата криптография (PQC) за криптиране с публичния ключ и цифрово подписване.

18. Как можем да кажем, че блокчейнът е надежден?

Под капка използваме цифрови подписи, за да проверим дали трансакциите са били подписани с частен ключ и след това проверени от всички със съответния публичен ключ. В основата на това при Ethereum е използването ECDSA (Elliptic Curve Digital Signature Algorithm), при който можем да хешираме трансакцията, след което да създадем цифров подпис, който се добавя в блокчейна заедно с данните за трансакциите.

19. Как изглежда цифровия подпис?

Ethereum използва ECDSA за своя подпис, при което създаваме случайна стойност на нонсе за подписа и след това използваме частен ключ за създаване на подписа. Този подпис има две стойности r и s именно тези стойности, заедно с трансакцията и публичния ключ, се използват за проверка на валидността на подписа.

20. Кои са нещата, за които се споменава в Ethereum?

Частните ключове и контрактите се съхраняват на уникален 256-битов адрес. Когато правим препратката към портфейл или контракт, ние правим препратка към неговия адрес.

21. Как мога да прегледам счетоводната книга?

Ако имате портфейл, той ще ви информира за гледната ви точка в счетоводната книга и за нещата, които са свързани с вас. За да разгледаме цялата счетоводна книга, можем да използваме Etherscam, и която има пълна картина на MainNet и други тестови мрежи (Etherscam). Всяка трансакция показва изпращач и получател.

1*Kot HEBXgBZi9o2W7SDB7w

22. Как да създам интелигентен договор?

Можете да използвате Microsoft Code или Vision Studio, но една от най-надеждните системи Remix (https://remix.ethereum.org). Това е онлайн инструмент, който ви позволява да редактирате, компилирате, разгръщате и тествате интелигентен договор.

1*a7qgfX

23. След като сключа договор, струва ли повече?

Ако интелигентният договор не променя състоянието си, стартирането на кода не струва нищо. Но ако го направи, например като добави нови данни към хранилище да данни, това ще изисква от миньорите да извършат няколко работа и затова ще се таксува газ. Примерът е тук.

В заключение

Давам ви тези блъфиращи не за да можете да заобиколите темата, а за да отворите съзнанието си за възможностите да научите нещо за този невероятен нов свят, който създаваме. Интернет е пълен със стари методи, които наистина не са се наложили добре. Този нов свят ще вгради доверието и устойчивостта във всеки един елемент на най-удивителната машина, която човечеството някога е създавало.

BulChain

Default image
БУЛЧЕЙН
Articles: 319