Диплом: Применение технологии блокчейн для создания криптографических токенов

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
42
Каждый но заголовок блока но содержит три но структуры префиксного
но дерева для:
состояния но (stateRoot)
проведения но транзакции (transactionsRoot)
получения но информации об но оплате (receiptsRoot)
Такие но структуры префиксного но дерева являются но префиксным деревом
но Меркла.
Сложность но блока но понятие, используемое для но обеспечения
согласованности но времени, которое но необходимо для но валидации блоков. Для
но первоначального блока но сложность составляет 131 072 но единиц. Для
но вычисления сложности но любого из но блоков применяется но специальная
формула. В том но случае если но валидация одного из но блоков произошла но более
быстро но чем, например, но валидация последующего, то но протокол,
используемый в но Ethereum, увеличивает но сложность последнего.
Сложность но блока также но влияет на но nonce – но хэш, выполнение но которого
необходимо в но течение отображения но блока, при но этом для но данной цели
но применяются алгоритмы но проверки безопасности.
Зависимость но одного параметра, но сложности блока, от но другого, nonce,
но представлена в но данной формуле:
Формула но 3
где но Hdэто но сложность блока.
Единственный но способ определить но параметр nonce, но который будет
но отвечать представленному но формуле условию, но заключается в
но использовании алгоритма но проверки работоспособности для но поиска всех
его но возможных значений. но Ожидаемое время но поиска всех но соответствующих
данному но условию значений – это и но есть сложность но блока. Чем но большее
43
значение но сложности блока, тем но сложнее найти но параметр nonce, и, но таким
образом, тем но сложнее провести но валидацию блока, в но результате чего, в но свою
очередь, но увеличивается время, но необходимое для но валидации последующих
но блоков. Значит, на но основании значения, но полученного в но ходе определения
но сложности блока, но используемый протокол но определяет, сколько
но необходимо времени для но валидации текущего но блока.
В но том случае но если время, но требуемое для но валидации блока,
но оказывается меньше, чем но ожидалось, то но протокол занижает но сложность
текущего но блока. Таким но образом, время, но требуемое для но валидации блока,
но задается автоматически для но постоянного соответствия но текущим
параметрам (в но среднем такое но время составляет 15 но секунд).
Алгоритм, но благодаря которому но возникло понятие но сложность блоков,
но называется доказательство но выполнения работы но (PoW от но англ. Proof of
но Work). Алгоритм но PoW, используемый в но системе Ethereum, но носит название
но Ethash (ранее, но но назывался Dagger-Hashimoto). но Данный алгоритм но имеет
следующий но вид:
Формула но 4
где но m – это но mixHash; n но nonce; Hn – но заголовок нового но блока (nonce и
но mixHash не но входят сюда, но поскольку данные но значения должны
но высчитываться); Hn но nonce для но заголовка блока; d – но комплект данных
но DAG.
Таким но образом PoW но необходимо для но подсчета значений но mixHash и
но nonce.
Окончательное но оформление блоков но может происходить по но двум
вариантам, в но зависимости от но того, создается ли но блок, или он уже но создан. В
том но случае если но блок только но создается, то но окончательное оформление
но означает процесс но майнинга текущего но блока. С но другой стороны, но если блок
44
уже но создан, то но такое определение но означает процесс но валидации текущего
но блока. В но обоих из но представленных выше но случаев необходимо но выполнить
четыре но условия для но окончательного оформления но блока.
1) но Валидация но (или, в но случае майнинга – но определение) оммеров:
но каждый блок но оммеров, который но находится в но заголовке блока, но должен
иметь но валидный заголовок но блока и но быть шестым но потомком текущего
но блока.
2) но Валидация но транзакций: значение но gasUsed для но текущего блока
но должно быть но равным значению но общего количества но горючего,
использованного для но проведения всех но перечисленных в но данном блоке
но транзакций.
3) но Назначение но оплаты (только в но случае майнинга): В но адрес
бенефициара но назначается 5 но единиц эфира за но майнинг каждого но блока (в
но соответствии с но предложением EIP-649 но данная оплата но будет уменьшена до
3 но единиц эфира). но Более того, за но каждый оммер, но бенефициару текущего
но блока назначается но оплата в но виде дополнительных но 1/32 от но общей оплаты за
но текущий блок. И но последнее: бенефициару но блока оммеров но также
назначается но оплата в но виде определенной но суммы, для но определение которой
но существует специальная но цифра.
4) но Верификация но состояния и но значения nonce: Для но проведения данной
но процедуры необходимо но обеспечить выполнение но всех транзакций, а но также
изменение но результирующих состояний. но После чего но также потребуется
но задать новый но блок после но того, как но оплата за но данный блок но была отправлена.
но Процесс верификации но происходит посредством но сравнения завершающего
но состояния с но состоянием префиксного но дерева, хранящегося в но заголовке.
45
2.3.5. но Платежные единицы
Для но того чтобы но стимулировать вычисления в но пределах сети,
но необходимо выбрать но согласованный способ но передачи ценности. Для
но решения этой но проблемы, Ethereum но имеет свою но внутреннюю валюту.
но Обменные единицы но Ethereum называются но эфиром (англ. но ether). Для
но обозначения используется но сокращение ETH и но символ в но виде Ξ[63]
но (греческая буква но Кси). Дробные но части имеют но свои названия: но 1/1000 —
Finney, но 1/10
6
но
Szabo, но 1/10
18
но
Wei. но Наименьшим номиналом но Эфира
является но Wei. Все но целые значения но валюты могут но быть выражены с
но помощью него. но Один ETH но определяется как 10
18
но
Wei.
Эфир но торгуется среди но криптовалют. Он но также используется для
но оплаты транзакционных но сборов и но вычислительных услуг в но сети Ethereum.
В но отличие от но других криптовалют, но авторы не но ограничивают роль
но эфира платежами, а но предлагают его, но например, в но качестве средства для
но обмена ресурсами или но регистрации сделок с но активами при но помощи умных
но контрактов, в но частности авторы но назвали эфир «криптотопливом» для
но исполнения умных но контрактов одноранговой но сетью[62]. Эфир но продаётся на
но сервисах по но обмену, а но капитализация общего но количества эфира но превысила
тридцать но миллиардов долларов[63].
Для но того, чтобы но избежать проблем но злоупотреблений в но сети и но обойти
неизбежные но вопросы, вытекающие из но полноты Тьюринга, все
но программируемые расчеты в но Ethereum подлежат но пошлине. Пошлина
но указывается в но единицах газа но (gas). Таким но образом, любой но заданный
фрагмент но программируемого вычисления но (включая создание но контрактов и
но использование учетной но записи для но хранения и но выполнения операций на
но виртуальной машине) но имеет конкретную но стоимость в но единицах газа.
Каждая но сделка требует но определенное количество но газа: gasLimit. Это
но количество газа, но которое неявно но списывается с но баланса счета но отправителя.
46
Покупка но происходит в но соответствии с но gasPrice, также но указанной в
но транзакции. Транзакция но считается недействительной, но если баланс но счета не
но позволяет осуществить но такую покупку. но Любой неиспользованный газ в
но конце транзакции но возвращается на но счет отправителя. Газ не но существует
вне но выполнения транзакции. но Таким образом, для но доверенных учетных
но записей, может но быть единожды но установлен достаточно но высокий предел
но газа, чтобы но этот параметр но далее не но влиял на но выполнение транзакций.
Рисунок но 12 Схема но распределения газа
Таким но образом, Эфир но используется для но покупки газа, но который
доставляется на но адрес получателя. Как но правило, это но адрес аккаунта
но майнера. После но транзакции газ не но возвращается. Участники но транзакции
могут но указать любое но значение величины но gasPrice, однако но майнеры могут
но игнорировать условия но транзакции. Поэтому но транзакция с но более высокой
но ценой газа но потребует от но отправителя больше но Эфира и но большее Эфира
но достанется майнеру. но Поэтому транзакции с но высокой ценой но газа с но большей
вероятностью но будут поддержаны но большим количеством но майнеров.
47
2.3.6. но Виртуальная машина но Ethereum
Виртуальная но машина Ethereum но (EVM, Ethereum но Virtual Machine)
но среда выполнения для но интеллектуальных контрактов в но Ethereum.
Формальное но определение EVM но указано в но «Желтом документе Ethereum».
Она но изолирована песочницей, а но также полностью но изолирована от но сети,
файловой но системы или но других процессов но хост-компьютерной системы.
но Каждый узел но Ethereum в но сети выполняет но реализацию EVM и но выполняет те
же но инструкции. EVM - но часть протокола, но который выполняет но обработку
транзакций в но операционной системе но Ethereum.
EVM но является машиной но Тьюринга. Единственное но отличие EVM от
но типичной машины но Тьюринга заключается в но том, что для но работы первой
но требуется виртуальное «горючее» ( gas). но Таким образом, все но вычисления,
которые но могут быть но выполнены в но EVM, так или но иначе ограничены
но количеством циркулирующего в ней «горючего».
Кроме но того, EVM но присущи все но особенности стековой но архитектуры.
Стековая но машина – это но компьютер, в но котором применяется но алгоритм LIFO.
но Размер любого но элемента стека в EVM но равен 256 но битам, а но максимальный
размер но стека достигает но 1024 битов.
Для но EVM предусмотрен но некоторый объем но памяти, который не
но является постоянным. В нем но элементы хранятся в но виде массивов но байтов с
но обращением к но словам.
Для но EVM также но предусмотрено определенная но область хранения. В
но отличие от но объема памяти, но такое хранилище но (или область но хранения) не
но изменяется и но является частью но состояния системы. В EVM но программный
код но хранится в но отдельной виртуальной но ROM, доступ в но которую можно
но получить только с но помощью определенных но инструкций. С но этой точки
но зрения такая EVM но отличается от но типичной архитектуры фон но Неймана, в
но которой программный код но хранится в но памяти компьютера.
48
Для но EVM предусмотрен но свой специальный но язык – но низкоуровневый
stack-based но байткод-язык, "EVM-код". По но факту, смарт-контракт но пишется
на но одном из но высокоуровневых языков, но например Solidity, и но затем
компилируется до но EVM-кода
Код но состоит из но последовательности байтов, и но каждый байт
но представляет какую-то но операцию. В но общем случае, но выполнение кода — это
но бесконечный цикл, но состоящий из но выполнения операции но текущего байта и
но последующего увеличения но номера обрабатываемого но байта на 1; но прерваться
этот но процесс может при но достижении конца но кода, ошибке в но коде, или
но выполнении встретившейся в но коде инструкции STOP/RETURN. но Операции
могут но обращаться к но трём типам но мест для но размещения информации:
Стек, но last-in-first-out но контейнер, куда но можно записывать и но откуда
можно но извлекать значения
Память, но байтовый массив но произвольного размера
Хранилище но контракта, но информация в но котором хранится но парами
"ключ-значение". В но отличие от но стека и но памяти, которые но очищаются
после но выполнения кода, в но хранилище параметры но могут находиться
но долговременно.
Код но также имеет но доступ к но денежной сумме, но отправителю и
но информации входящего но сообщения, а но также к но информации в но заголовке
блока; код но может вернуть, в том но числе байтовый но массив на но выходе.
Принцип но выполнения EVM-кода но довольно прост. Во но время
вычисления всё но текущее состояние но содержится в но наборе (block_state,
но transaction, message, но code, memory, но stack, pc, но gas), где но block_state — но полное
состояние, но содержащее информацию о но балансах и но состояниях хранилищ
но всех аккаунтов. При но каждом раунде но выполнения берётся но pc-ый байт но code и
но выполняется инструкция, но соответствующая этому; но каждая из но инструкций
по-своему но действует на но этот набор. Для но примера, ADD но достаёт два
но элемента из но стека и но возвращает туда их но сумму, после но чего уменьшает gas
49
на 1 и но увеличивает pc на 1; а, но скажем, SSTORE но берёт верхние два но элемента
стека и но помещает второй но элемент в но хранилище контракта под но адресом,
равным но первому элементу.
2.4. но Смарт-контракты
Смарт-контракт но (англ. Smart но contract — но умный контракт) —
но компьютерный алгоритм, но предназначенный для но заключения и
но поддержания коммерческих но контрактов в но технологии блокчейн.
Смарт-контракты но это но детерминированные механизмы но обмена,
управляемые но цифровыми средствами, но которые могут но осуществлять
прямую но транзакцию стоимости но между ненадежными но агентами. Они но могут
использоваться для но облегчения, проверки и но обеспечения выполнения
но переговоров или но выполнения экономических но инструкций и, но возможно,
обхода но цензуры, сговора и но контрагента . В но Ethereum смарт-контракты
но рассматриваются как но автономные сценарии или но децентрализованные
приложения с но сохранением состояния, но которые хранятся в но блочной
цепочке но Ethereum для но последующего выполнения но EVM. Инструкции,
но заключенные в но контрактах Ethereum, но оплачиваются Эфиром ( gas) но и могут
но быть реализованы в но различных полных но языках программирования.
Принцип но работы
Стороны но подписывают умный но контракт, используя но аналогичные
подписанию но отправки средств в но действующих криптовалютных но сетях
методы. но После подписания но сторонами контракт но вступает в но силу. Для
но обеспечения автоматизированного но исполнения обязательств но контракта
непременно но требуется среда но существования, которая но позволяет полностью
но автоматизировать выполнение но пунктов контракта. Это но означает, что но умные
контракты но смогут существовать но только внутри но среды, имеющей
но беспрепятственный доступ но исполняемого кода к но объектам умного
50
но контракта. Все но условия контракта но должны иметь но математическое описание
и но ясную логику но исполнения. В но связи с но этим первые но умные контракты
но имеют задачу но формализации наиболее но простых взаимоотношений,
но состоящих из но небольшого количества но условий. Имея но беспрепятственный
доступ к но объектам контракта, но умный контракт но отслеживает по но указанным
условиям но достижения или но нарушения пунктов и но принимает
самостоятельные но решения, основываясь на но запрограммированных
условиях. но Таким образом, но основной принцип но умного контракта но состоит в
но полной автоматизации и но достоверности исполнения но договорных
отношений но между людьми
История
Первые но идеи умных но контрактов были но предложены в но 1996 году
но Ником Сабо[64]. но Практические реализации но стали возможными, но благодаря
появлению в но 2008 году но технологии блокчейн. но Некоторые принципы но умных
контрактов но были заложены в но протоколе первой но блокчейн-валюты Bitcoin,
но однако они не но были реализованы в но клиентском программном но обеспечении,
не но обладали полнотой по но Тьюрингу из но соображений безопасности и не
но использовались на но практике. С но появлением технологии, но стали
высказываться но идеи, что но поверх протокола но биткойна могут но быть созданы
но различные протоколы но более высокого но уровня, включая но полноценные
умные но контракты, по но аналогии с тем как но поверх TCP/IP но существуют
множество но протоколов прикладного но уровня. Умные но контракты впервые
но начали применяться на но практике в но проекте Ethereum.
Объекты но умного контракта
Подписанты но стороны но умного контракта, но принимающие или
но отказывающиеся от но условий с но использованием электронных но подписей.
Прямым но аналогом является но подпись отправителя но средств в но сети Bitcoin,
но которая подтверждает но внесение транзакции в но цепочку блоков.
51
Предмет но договора. но Предметом договора но может являться но только
объект, но находящийся внутри но среды существования но самого умного
но контракта, или же но должен обеспечиваться но беспрепятственный, прямой
но доступ умного но контракта к но предмету договора без но участия человека.
Это но является наиболее но сложным вопросом, но который невозможно но было
решить до но появления криптовалют в но 2009 году.
Условия. но Условия умного но контракта должны но иметь полное
но математическое описание, но которое возможно но запрограммировать в
но среде существования но умного контракта. но Именно в но условиях
описывается но логика исполнения но пунктов предмета но договора.
Среда но для работы но умных контрактов
Для но того, чтобы но умные контракты но могли существовать, но требуются
определённые но условия:
1. Использование но широко распространенных но методов электронной
но подписи на но основе публичных и но приватных ключей но (асимметричное
шифрование).
2. Существование но открытых, децентрализованных и но доверительных
сторонам но контракта баз но данных для но исполняемых транзакций, но работа
которых но полностью исключает но человеческий фактор.
3. Децентрализация но среды исполнения но умного контракта.
4. Достоверность но источника цифровых но данных.
Экономический но смысл
Технология но Ethereum даёт но возможность регистрации но любых сделок с
но любыми активами на но основе распределенной но базы контрактов но типа
блокчейн, не но прибегая к но традиционным юридическим но процедурам. Эта
но возможность является но конкурентной по но отношению к но существующей
системе но регистрации сделок. По но мнению журнала The но Economist,
технология но «умных контрактов» но знаменует собой но новую эру в но финансовых
технологиях.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран