Dstecm что такое простыми словами
О стеке простыми словами — для студентов и просто начинающих
Привет, я студент второго курса технического университета. После пропуска нескольких пар программирования по состоянию здоровья, я столкнулся с непониманием таких тем, как «Стек» и «Очередь». Путем проб и ошибок, спустя несколько дней, до меня наконец дошло, что это такое и с чем это едят. Чтобы у вас понимание не заняло столько времени, в данной статье я расскажу о том что такое «Стек», каким образом и на каких примерах я понял что это такое. Если вам понравится, я напишу вторую часть, которая будет затрагивать уже такое понятие, как «Очередь»
Теория
На Википедии определение стека звучит так:
Стек (англ. stack — стопка; читается стэк) — абстрактный тип данных, представляющий собой список элементов, организованных по принципу LIFO (англ. last in — first out, «последним пришёл — первым вышел»).
Поэтому первое, на чем бы я хотел заострить внимание, это представление стека в виде вещей из жизни. Первой на ум мне пришла интерпретация в виде стопки книг, где верхняя книга — это вершина.
На самом деле стек можно представить в виде стопки любых предметов будь то стопка листов, тетрадей, рубашек и тому подобное, но пример с книгами я думаю будет самым оптимальным.
Итак, из чего же состоит стек.
Стек состоит из ячеек(в примере — это книги), которые представлены в виде структуры, содержащей какие-либо данные и указатель типа данной структуры на следующий элемент.
Сложно? Не беда, давайте разбираться.
На данной картинке схематично изображен стек. Блок вида «Данные/*next» и есть наша ячейка. *next, как мы видим, указывает на следующий элемент, другими словами указатель *next хранит адрес следующей ячейки. Указатель *TOP указывает на вершину стек, то есть хранит её адрес.
С теорией закончили, перейдем к практике.
Практика
Для начала нам нужно создать структуру, которая будет являться нашей «ячейкой»
Новичкам возможно будет не понятно, зачем наш указатель — типа comp, точнее сказать указатель типа структуры comp. Объясню, для того чтобы указатель *next мог хранить структуру comp, ей нужно обозначить тип этой структуры. Другими словами указать, что будет хранить указатель.
После того как у нас задана «Ячейка», перейдем к созданию функций.
Функции
Функция создания «Стека»/добавления элемента в «Стек»
При добавлении элемента у нас возникнет две ситуации:
Разберем чуть чуть по-подробнее.
Во-первых, почему функция принимает **top, то есть указатель на указатель, для того чтобы вам было наиболее понятно, я оставлю рассмотрение этого вопроса на потом. Во-вторых, по-подробнее поговорим о q->next = *top и о том, что же означает ->.
-> означает то, что грубо говоря, мы заходим в нашу структуру и достаем оттуда элемент этой структуры. В строчке q->next = *top мы из нашей ячейки достаем указатель на следующий элемент *next и заменяем его на указатель, который указывает на вершину стека *top. Другими словами мы проводим связь, от нового элемента к вершине стека. Тут ничего сложного, все как с книгами. Новую книгу мы кладем ровно на вершину стопки, то есть проводим связь от новой книги к вершине стопки книг. После этого новая книга автоматически становится вершиной, так как стек не стопка книг, нам нужно указать, что новый элемент — вершина, для этого пишется: *top = q;.
Функция удаления элемента из «Стека» по данным
Данная функция будет удалять элемент из стека, если число Data ячейки(q->Data) будет равна числу, которое мы сами обозначим.
Здесь могут быть такие варианты:
Для лучшего понимания удаления элемента проведем аналогии с уже привычной стопкой книг. Если нам нужно убрать книгу сверху, мы её убираем, а книга под ней становится верхней. Тут то же самое, только в начале мы должны определить, что следующий элемент станет вершиной *top = q->next; и только потом удалить элемент free(q);
Если книга, которую нужно убрать находится между двумя книгами или между книгой и столом, предыдущая книга ляжет на следующую или на стол. Как мы уже поняли, книга у нас-это ячейка, а стол получается это NULL, то есть следующего элемента нет. Получается так же как с книгами, мы обозначаем, что предыдущая ячейка будет связана с последующей prev->next = q->next;, стоит отметить что prev->next может равняться как ячейке, так и нулю, в случае если q->next = NULL, то есть ячейки нет(книга ляжет на стол), после этого мы очищаем ячейку free(q).
Так же стоит отметить, что если не провести данную связь, участок ячеек, который лежит после удаленной ячейки станет недоступным, так как потеряется та самая связь, которая соединяет одну ячейку с другой и данный участок просто затеряется в памяти
Функция вывода данных стека на экран
Самая простая функция:
Здесь я думаю все понятно, хочу сказать лишь то, что q нужно воспринимать как бегунок, он бегает по всем ячейкам от вершины, куда мы его установили вначале: *q = top;, до последнего элемента.
Главная функция
Хорошо, основные функции по работе со стеком мы записали, вызываем.
Посмотрим код:
Вернемся к тому, почему же в функцию мы передавали указатель на указатель вершины. Дело в том, что если бы мы ввели в функцию только указатель на вершину, то «Стек» создавался и изменялся только внутри функции, в главной функции вершина бы как была, так и оставалась NULL. Передавая указатель на указатель мы изменяем вершину *top в главной функции. Получается если функция изменяет стек, нужно передавать в нее вершину указателем на указатель, так у нас было в функции s_push,s_delete_key. В функции s_print «Стек» не должен изменяться, поэтому мы передаем просто указатель на вершину.
Вместо цифр 1,2,3,4,5 можно так-же использовать переменные типа int.
Заключение
Полный код программы:
Так как в стек элементы постоянно добавляются на вершину, выводиться элементы будут в обратном порядке
В заключение хотелось бы поблагодарить за уделенное моей статье время, я очень надеюсь что данный материал помог некоторым начинающим программистам понять, что такое «Стек», как им пользоваться и в дальнейшем у них больше не возникнет проблем. Пишите в комментариях свое мнение, а так же о том, как мне улучшить свои статьи в будущем. Спасибо за внимание.
На данный момент насчитывается свыше 8,5 тысяч разных криптовалют и токенов. Однако много людей не знает, в чем их отличие. Попробуем сегодня разобраться, что такое токены, сколько они стоят и чем же они отличаются от таких криптовалют, как Bitcoin и Ethereum.
реклама
Вообще, токены – это общепринятый термин, который частую используют как общее название всех криптовалют. Однако токены значительно отличаются от Bitcoin и альткоинов.
Про токены простым языком
Токены являются цифровыми виртуальными единицами, выпускающимися кем-либо. Стоимость определяют их создатели. Они действуют на основе технологии blockchain. Так как криптовалюты тоже основаны на этой технологии, то именно это многих и сбивает с толку.
Кем могут быть выпущены токены? Токены выпускаются определенными лицами, в их ценности вкладываются товары, различные услуги, акции предприятий, какие-либо действия и др. Названия же могут быть любыми. У такого процесса есть свое название – токенизация, то есть каждый актив в виде токенов. Можно токенизировать ценные бумаги, акции предприятий, различную продукцию, консультации и т.д. Токены находятся в электронных кошельках своих создателей. Они передаются на условиях, поставленных их создателями.
Зачем они нужны?
реклама
Если говорить попроще, главное предназначение токена –бартер неких ценностей, реализация которого в реальности осложнена расстоянием между сторонами сделок, размерами тех самых ценностей, участвующих в сделках.
Часто токены могут быть источником заработка. Для этого вам нужно знать, какие активы могут увеличить свою стоимость. Чтобы дать ответ на данный вопрос, важно понимать, почему стоимость предлагаемых продуктов или услуг может увеличиться в будущем. Это могут быть или дефицитные активы, или активы, которые будут расти самостоятельно.
Это заложено во всех ICO. Первоначально, когда его дальнейшая судьба неизвестна, ICO предлагает купить токены по низкой цене в качестве инвестора в конкретный проект, описывая, как он может принести прибыль в будущем. Если проект будет развиваться, цена токенов увеличится, если они связаны с активами проекта или применяются в бизнесе.
реклама
Большое количество токенов создано на основе blockchain Ethereum, что в один момент подтолкнуло к росту Эфира.
Виды токенов
Токены можно разделить на 3 основные группы:
Utility tokens. Тут как пример можно привести начисление каких-либо баллов за совершение определенных действий, которые начисляются в играх.
реклама
Utility tokens – это токены на основе товаров или услуг.
Третий тип токенов наиболее обеспеченный, так как компании, которые предоставляют товары и услуги, или же отдельные лица, выступают гарантом совершения сделок. В данном случае один или несколько товаров (услуг) равняются одному токену.
То есть, токены, простыми словами представляют собой валюту в закрытой экосистеме, использующуюся для покупок товаров и услуг, выступают как вознаграждение за определенные действия.
Токены предназначены для упрощения и удобности проведения транзакций между сторонами, а также для ускорения процесса транзакции при помощи технологии blockchain. Это альтернативный способ инвестиции в акции.
Отличие токенов от монет
Токены отличаются от монет тем, как они выпускаются. Если монеты децентрализованы, они выпускаются разными компьютерами, то выпуском токенов занимается руководство одной или нескольких организаций, или же какое-либо конкретное лицо. Бывают и исключения, но чаще всего все транзакции, связанные с токенами, полностью подконтрольны, поскольку транзакции часто порождают обязательства.
Вторым существенным отличием является их стоимость, а именно факторы, которые ее определяют. Допустим, если стоимость Bitcoin напрямую зависит от спроса и предложения, то стоимость токена определяется, вложенным в него активом.
Bitcoin и альткоины функционируют на основе собственных blockchain, токены же функционируют на основе blockchain других криптовалют. Это дает пользователям даже с минимальными знаниями в этой сфере возможность создания своих токенов.
Если говорить проще, то у токенов более широкий спектр применения, нежели у криптовалют. Но у токенов меньший масштаб использования.
Покупка токенов и их хранение
Покупка и хранение токенов схожи с покупкой и хранением криптовалюты. Покупка осуществляется с помощью бирж, обменников или же напрямую у продавцов.
Хранение токенов осуществляется с помощью специальных электронных кошельков, на которых происходит хранение и обработка ключей, а формирование транзакций.
Но тут никак без рисков и проблем, связанных с:
Из-за чего так много токенов
В связи с тем, что токены являются цифровыми активами, основанными на blockchain каких-либо криптовалют, их намного легче создать. Помимо этого, этот метод удобен, поскольку он намного безопаснее, устраняет посредников в сделке, а также ускоряет процесс торговли.
С помощью существующих проверенных алгоритмов вы можете создавать токены и проводить ICO. В Интернете есть много конструкторов. Вы всего лишь нужно выбрать наиболее подходящий для вас конструктор, после чего перейти к созданию смарт-контракта.
Смарт-контракты представляют собой набор определенных функций, осуществляющихся внутри структуры: владение токенами, их передачи, пополнения балансов и др.
Их выпуск стандартизирован, что снижает риск потери денежных средств в случае возникновения ошибок смарт-контрактов. При выпуске выбираются наименование, символ, их количество. После всего этого информация добавляется в сеть.
Вывод
Существует большое количество ситуаций, где можно использовать токены. С помощью этих активов пользователям доступна покупка токенизированных акций, предметов искусства и др. Надеюсь, теперь вам стало хоть чуточку понятнее суть токенов, их предназначение.
Что такое стекинг и чем он отличается от майнинга
Что такое стекинг
Стекинг — это способ пассивного заработка, при котором пользователи хранят монеты на алгоритме Proof of Stake (PoS) и обеспечивают работоспособность блокчейна. Это дает им право получать прибыль. Такая возможность доступна только криптовалютам, которые работают на PoS, например, EOS, Tezos, TRON и Cosmos. В будущем на алгоритм PoS планирует перейти крупнейший по капитализации альткоин Ethereum.
Стекинг полностью заменяет майнинг и делает возможным добычу новых блоков без использования больших вычислительных мощностей. Смысл стекинга заключается в обеспечении всех операций на блокчейне и поддержке работы сети. За это держатели цифровых монет получают вознаграждение. Чем больше токенов у держателя, тем больше вероятность, что он станет создателем нового блока.
Чем стекинг отличается от майнинга
Майнинг — это процесс, обеспечивающий работоспособность блокчейнов, работающих на алгоритме Proof of Work (PoW). На этом алгоритме работает первая криптовалюта — биткоин. С помощью вычислительных мощностей майнеры поддерживают работу сети и выполнение транзакций в ней, а за это получают вознаграждение. Если майнинг можно назвать соревнованием вычислительных мощностей, то стекинг — это соревнование владельцев монет определенного блокчейна, считает Максим Крупышев, СЕО криптоплатежной системы Coinspaid.
По его словам, главное отличие стекинга от майнинга заключается в том, что для стекинга не требуется больших вычислительных мощностей, покупки видеокарт или ASIC-майнеров. Соответственно, стекинг — более экологичный и энергоэффективный способ создания новой цепочки блоков в блокчейне, отметил Крупышев. Еще одним преимуществом стекинга он считает тот факт, что владельцу криптовалюты не обязательно обладать техническими навыками, необходимыми для запуска и поддержания работоспособности вычислительной машины.
«Майнинг требует большей включенности в процесс, надо постоянно держать руку на пульсе. В случае стекинга процесс упрощен и открыт для большего числа участников блокчейн-сообщества, порог входа в стекинг ниже, чем порог входа в майнинг», — добавил СЕО Coinspaid.
Риски в стекинге
В целом, стекинг выглядит менее рисковым способом инвестирования, поскольку не надо покупать физическое оборудование, но пока по стекингу нет адекватной информации — как он работает, какие риски и какой доход приносит, пояснил руководитель дата-центра Six Nines Сергей Трошин. Он утверждает, что в стекинг никто не планирует «кидаться с головой» пока тот не приносит сверхприбыль. Как в майнинге есть риск вложения в оборудование, которое может стать неликвидным, так и в стекинге есть риск изменения стоимости удерживаемой монеты, добавил Трошин.
Как начать и выбрать монету для стекинга
Чтобы начать заниматься стекингом, нужно иметь свободные средства для покупки монет и возможность на длительное время заморозить их на специальном депозитном смарт-контракте, объяснил Максим Крупышев. Нужно понимать, что вложения могут потребоваться довольно существенные, подчеркнул руководитель финтех компании Exantech Денис Восквицов. По его словам, для стекинга DASH нужно 1000 монет ($225,3 тыс., по данным Coingecko на 1 апреля). Поэтому Денис Восквицов советует выбирать криптовалюты для стекинга исходя из бюджета.
Больше новостей о криптовалютах вы найдете в нашем телеграм-канале РБК-Крипто.
Что такое NFT и как на них можно заработать миллионы
С каждым годом новые технологии все больше проникают в нашу жизнь, изменяют ее, заставляют людей пересматривать свои взгляды и уже по-другому воспринимать привычные для нас вещи. Что такое NFT, почему искусство перешло в виртуальную реальность и как люди зарабатывают на этом миллионы долларов?
Что такое NFT и откуда он взялся?
NFT (non-fungible token) – это уникальный невзаимозаменяемый цифровой ключ, созданный на основе криптовалюты. NFT не может быть уничтожен или заменен на другой такой токен. Он представляет собой некий сертификат уникальности и неповторимости какого-либо цифрового объекта. Стоит отметить, что невзаимозаменяемый токен никак не влияет на копирование файла. Он только подтверждает, что тем или иным цифровым объектом обладает конкретный пользователь.
При помощи технологии NFT можно продать или купить любой цифровой объект – музыку, изображение, 3D-модель, текст, игровой предмет и пр. Его суть состоит в регистрации некоего права собственности на конкретный виртуальный объект в блокчейне. Информацию о владельце невозможно заменить или удалить.
Иными словами, это схоже с покупкой дорогой картины. То есть, она принадлежит вам, но при этом может быть выставлена в какой-то известной галерее на всеобщее обозрение любителей изобразительного искусства. Стоит также отметить, что фотографировать данную картину или использовать ее копию в интернете может любой желающий.
Первые эксперименты с технологией NFT начались еще в 2013-2014 годах на скриптовом языке Bitcoin. В 2017 году компьютерный алгоритм для создания, контроля и предоставления информации о владении чем-либо был создан на блокчейне Ethereum.
Первая продажа виртуального объекта при помощи NFT
«Ежедневно: первые 5000 дней» / «Everydays: The First 5000 days» — это коллаж из 5000 изображений, создаваемых Beeple на протяжении 13 лет, начиная с мая 2007 года. Однажды иллюстратор принял решение ежедневно делать и выкладывать в интернет новое изображение. Необычайно ответственный Майк Винкельманн с того момента не пропустил ни единого дня. В результате у него собралось уже более 5000 работ.
Коллаж «Ежедневно: первые 5000 дней» / «Everydays: The First 5000 days» Майка Винкельманна (Beeple)
Человек, который приобрел цифровой объект на основе NFT, получил не только само изображение, а и уникальный токен, который содержит в себе цифровую подпись художника, время создания произведения искусства, записи о всех предыдущих продажах и владельцах, и прочую не менее важную информацию.
В настоящее время предметы цифрового искусства можно продавать и покупать на таких крупных площадках как OpenSea, Rarible, Mintable и пр. Чтобы создать NFT виртуального предмета необходимо завести кошелек Ethereum и загрузить в него свой лот. Токен может быть создан сразу или уже после того, как покупатель решит приобрести права собственности на цифровой объект. NFT-маркетплейсы со своей стороны берут комиссии за успешные сделки.
Так что такое NFT и есть ли у него будущее?
Примечательно то, что эта работа 2007 года высмеивает коллекционеров, которые покупают предметы искусства за огромные деньги. На трафарете изображены люди, принимающие участие в аукционе, на котором ведутся торги за картину с надписью «I can’t believe you morons actually buy this shit» / «Я не могу поверить, что вы, кретины, реально покупаете это дерьмо».
Трафарет «Morons» (White) стрит-арт художника Banksy
Ethereal Flames Pink War Dog из игры DOTA 2
Заядлые коллекционеры готовы платить сумасшедшие суммы за право обладать редким предметом. В числе таких артефактов могут оказаться и цифровые объекты NFT. Единственным отличием является только носитель. В любом случае посмотреть на объект и использовать его копию могут все желающие, но право собственности остается только у одного человека. В случае с NFT это право хранится в криптокошельке единственного владельца.
Игра CryptoKitties (Криптокотики) на основе блокчейна Ethereum
Достаточно сложно понять, что такое NFT и почему эта технология постепенно становится нашей новой реальностью. Но вполне возможно, что уже через несколько лет она будет такой же привычной и доступной для пользователей, как оплата покупок при помощи банковской карты или телефона.
Не стоит также забывать о том, что NTF – это всего лишь новый инструмент, который можно использовать для различных целей. Сейчас его все активнее применяют для распространения цифровых коллекционных объектов. Такими являются, например, уникальные видео-моменты спортивных матчей или фильмов, аудиозаписи известных исполнителей, оцифрованные предметы искусства, популярные мемы и даже сообщения из социальных сетей.
Да, давайте покупать жипеги. Отличный план, надёжный как швейцарские часы.
Только не факт, что лично твой nft будет что то стоить. Как видим дорогущие нфт идут от уже распиаренных личностей или структур.
Хотя с котиками попробовать можно, но что-то мне подсказывает что там тоже не всё чисто.
Робопес Spot и творческие порывы
Американская компания роботехники Boston Dynamics существует с 1992 года. Сначала услугами бывших инженеров Массачусетского технологического университета пользовались в основном американские же военные.
Boston Dynamics, Spot 3.0
Есть их первый громоздкий прототип BigDog, финансируемый DARPA, пока он остается только опытным образцом. Его четырехногая шагающая конструкция предполагает схожие со строением собаки бионические элементы, заменяющие колеса или гусеницы, необходимые для устойчивого положения и движения.
Boston Dynamics, тесты WildCat, 2013
На разных этапах эволюции милой желтой собачки были резвая дикая кошка и ее неторопливый вариант LS3, приспособленный для переноски больших грузов, больше напоминающий покладистого мула.
Boston Dynamics, тесты LS3 (Legged Squad Support System), 2012
На стройплощадке аэропорта Сан-Франциско, пресс-служба американской компании HoloBuilder
В первую очередь это работяга, способный выполнять сложную и нудную работу, состоящую из однотипных многократно повторяющихся задач. Как например, подробные геодезические замеры для строительства аэропорта в Сан-Франциско.
Видео с камеры Spot (слава), тест на ориентирование в пространстве в лаборатории Boston Dynamics
Рабочие канадской компании Pomerleau с помощниками Спот
Еще пес используется на морских подстанциях, где необходимо регулярно проводить осмотр оборудования в опасных для человека условиях.
И с помощью удаленного оператора ищет утечки нефти на морской платформе в Норвежском море для скандинавского нефтегазового оператора Aker BP. В таких случаях задействуют Spot Enterprise с функцией самозарядки и передачи данных.
Его даже завели на техасском полигоне SpaceX в Бока-Чика: кому охота первым осматривать место аварии, особенно если в повалившемся набок топливном баке ракеты был жидкий азот.
Инженеры компании ласково называют механического компаньона Зевс и поставили ему будочку.
С началом пандемии женская больница Массачусетского технологического университета в качестве эксперимента проводит бесконтактное измерение жизненных показателей пациентов.
Когда-то нечаянный пиар на YouTube помог Boston Dynamics привлечь коммерческое внимание к своим разработкам. Пришлось немного подыграть, превратив Спота в фирменную фишку, мастера на все манипуляторы. Теперь их продукцию используют для рекламы себя.
По крайней мере у нас: Сбер не стал мелочиться и купил робопса за 5,4 млн рублей как только он появился в продаже зимой 2021 года. Пока четвероногий осваивается в просторных коридорах корпоративного университета банка.
Иногда раскладывает книги в архивах Российской государственной библиотеки.
Например, Go1 от китайской Unitree Robotics, которого можно купить от 2 700 долларов. Есть еще AlphaDog от Weilan за 2 400, но они пока выпущены ограниченным тиражом для тестирования.
А что же искусство?
На спине робота был установлен пейнтбольный маркер с краской. Через специальный сайт любой желающий методом лотереи мог на 2 минуты получить доступ к удаленному управлению механизмом и повеселиться вволю, раскрашивая все, что попадется под ногу.
Не будем расстраиваться, балет все-таки будет. Spot не только умеет открывать двери, собирать мелкие предметы в корзину на спине, сажать цветочки и рисовать мелками на асфальте. Он еще отличный танцор.
В конце 2020 года Boston Dynamics сделала всем отличный подарок: два гуманоидных робота Atlas, механический пес и складской трудоголик Handle зажгли под хит «Do You Love Me?» модной в 60-е группы Contours.
В июне 2021 контрольный пакет акций BD купил за 1,1 млд долларов азиатский гигант Hyundai Motor и сразу запустил для западных покупателей промо-кампанию экологичного гибрида Ioniq, который с прошлой весны рекламируют амбассадоры компании BTS.
Встречайте синхронный ансамбль пластичных четвероногих роботов под корейский k-pop «I m on it». Кстати, песиков в танце кружится столько же, сколько участников слащавой мальчуковой группы.
Фиксики уже не те.
За криптовалюту теперь можно купить колбасу в ближайшем магазине
Биржа Coinbase ввела поддержку систем Apple Pay и Google Pay, и теперь расплатиться биткоином или любой другой криптовалютой можно в любом месте, где принимают Visa.
Достаточно выпустить виртуальную карту биржи, деньги будут конвертироваться автоматически.
Часть 3. Упадок. Акварель 42х60
Компания Geometric Energy Corporation (GEC) объявила сегодня о запуске миссии DOGE-1 к Луне на борту ракеты Falcon 9 в первом квартале 2022 года. В качестве полезной нагрузки миссии будет выступать 40-килограммовый кубсат. Он получит разнообразные датчики и камеры на своём борту. Дополнительное пространство для полезной нагрузки будет выделено для объектов цифрового искусства в виде табличек, предоставленных GeometricLabs Corporation и Geometric Gaming Corporation.
Отметим, что это одна из т.н. Rideshare-миссий, поэтому позднее должны появится и другие полезные нагрузки. Руководство миссией будет осуществляться Geometric Space Corporation (GSC) в сотрудничестве со SpaceX.
«Официально заключив сделку с DOGE Geometric Energy Corporation и SpaceX укрепили DOGE в качестве расчётной единицы лунного бизнеса в космическом секторе», — сказал главный исполнительный директор Geometric Energy Сэмуэль Рид (Samuel Reid).
«Эта миссия продемонстрирует применение криптовалюты за пределами околоземной орбиты и заложит основу для мультипланетарной торговли. Мы рады запустить DOGE-1 на Луну!», — сказал вице-президент SpaceX по коммерческим запускам Том Очинеро (Tom Ochinero).
Скрытые особенности Биткоина
Обзор неочевидных для многих отличий Биткоина от существующих платежных систем
Ранее в статье «Почему Биткоин — это принципиально новая монетарная система» речь шла о том, что любая денежная (монетарная) система базируется на трех основных составляющих — денежной массе, денежных транзакциях и владении деньгами. В отличие от управляемой и монополизированной государством традиционной монетарной системы, основанной на фиатных (фидуциарных) деньгах, Биткоин является децентрализованной денежной системой и управляется правилами (протоколом), зашитыми в его программный код. Это в корне меняет три основных составляющих, лежащих в основе этой системы — деньги эмитирует программный код, а не государство; транзакции между контрагентами осуществляются напрямую, без посредников; распоряжаться деньгами на биткоин-адресах может только владелец их приватных ключей, никто другой не может получить к ним доступ.
Но помимо этого Биткоин, как платежная система, имеет ряд других уникальных особенностей о которых либо не знают, либо не придают им значения.
1. В Биткоин-сети нет аккаунтов.
В отличие от других платежных систем, у пользователей Биткоина нет своего аккаунта, т.е. счета, который был бы каким-то образом привязан к пользователю. Клиенты банков имеют аккаунты в виде банковских счетов, идентифицируемых по паспорту и/или налоговому номеру клиента. Банковские карты платежных сетей Visa и MasterCard также связаны с аккаунтами их пользователей. Клиенты электронной платежной сети PayPal имеют аккаунты, связанные с адресом их электронной почты. Во всех других платежных системах существуют какие-то способы идентификации личности и её счетов. В Биткоине этого нет!
С одной стороны это делает пользование Биткоином псевдонимным. С другой — в случае утраты приватных ключей восстановить доступ к биткоин-адресам невозможно. В Биткоине только приватный ключ дает право пользования деньгами, хранящимися на соответствующем ему биткоин-адресе. Нет ключа — нет биткоинов! Или, как говорится в популярной среди биткоинеров поговорке — ”Not your keys, not your coins” (Не твои ключи, — не твои биткоины).
Из этого следует, что вся ответственность за хранение денег в Биткоине лежит только на владельце приватных ключей от биткоин-адреса. Никто не сможет помочь ему восстановить доступ при утрате ключей!
Отчасти эта проблема решается сторонними сервисами верхнего уровня, которые предоставляют доступ к аккаунту клиента и через него — к приватным ключам, которые хранятся на серверах этих сервисов. Это делается за счет утраты анонимности — пользователь должен указать свои реквизиты для восстановления доступа к аккаунту, как правило, — e-mail и/или номер телефона. А по требованиям KYC/AML и свои личные данные — имя и фамилию, адрес проживания и т.п.
Например, в популярном веб-кошельке Blockchain.info приватные ключи от биткоин-адресов клиентов хранятся в зашифрованном виде на серверах сервиса, а клиенты получают к ним доступ, войдя в свой аккаунт на сайте или приложении для смартфона по паролю и используя для надежности двухфакторную авторизацию. Кроме того, клиенты могут скачать свои приватные ключи (точнее — seed-фразу) и хранить у себя. Это дает им возможность воспользоваться любым другим кошельком, который поддерживает seed.
2. В биткоин-кошельках не хранятся биткоины.
Эта парадоксальная фраза сбивает с толку многих начинающих (и не только) пользователей Биткоина. Но в действительности это так! В Биткоин кошельках хранятся приватные ключи от биткоин-адресов, а не сами монеты. Более того, см. п.3…
3. Биткоины не существуют как сущности.
4. Биткоины не отправляются ни на адреса, ни с адресов.
В отличие от банковских транзакций, которые суть перевод денежных средств с одного банковского счета на другой, транзакция в Биткоине реализована по-другому — это разблокирование неизрасходованных средств выхода осуществленной ранее транзакции (UTXO — unspent transaction output) при помощи приватного ключа биткоин-адреса отправителя и блокирование переводимой суммы при помощи публичного ключа адреса получателя. Поскольку можно использовать только всю сумму на неизрасходованном выходе, остаток (сдача) блокируется публичным ключом адреса отправителя.
После этого получатель может таким же образом разблокировать своим приватным ключом неизрасходованный выход этой новой транзакции (UTXO) и заблокировать публичным ключом нового получателя переводимую ему сумму, осуществляя новый перевод.
Ниже на картинке приведен пример простой транзакции. У отправителя (его принято называть Элис/Alice) на неизрасходованном выходе (UTXO) ранней транзакции есть 10 BTC. Элис переводит 8 BTC получателю (принято называть Бобом/Bob), а остаток (сдача) в размере 2 BTC возвращается на биткоин-адрес отправителя (Элис). При этом выход с 10 BTC становится израсходованным и создаются два новых неизрасходованных выхода (UTXO) — c 8 BTC и 2 BTC. Но первый может теперь разблокировать только Боб, а второй — только Элис.
Пример транзакции в Биткоине.
Из этого следует, что баланс любого биткоин-адреса — это сумма всех неизрасходованных выходов транзакций (UTXO), которые заблокированы публичным ключом владельца этого адреса.
Пусть вас не пугает эта сложность, Биткоин использует криптографические алгоритмы и, с точки зрения криптографии, это достаточно простая схема. К тому же, позволяющая отследить всю цепочку транзакций вплоть до первой эмиссионной.
По сути, это выглядит как перевод с одного биткоин-адреса на другой с возвратом остатка (сдачи) на биткоин-адрес отправителя (не обязательно тот, с которого был осуществлен перевод). Но, как вы теперь понимаете, в реальности это осуществляется путем разблокирования приватным ключом отправителя и нового блокирования переводимых сумм публичными ключами получателей.
Из этого следует очередная особенность:
5. Биткоины никогда не бывают в пути.
Банковские транзакции подразумевают реальное движение сумм переводов между счетами. Сначала со счета отправителя снимается переводимая сумма и он уменьшается на эту сумму. Затем средства перемещаются по банковским и межбанковским каналам, проходя через транзитные счета, пока не поступят на счет получателя, который увеличивается на переводимую сумму. Т.е. какое-то время существует ситуация при которой деньги со счета отправителя уже сняты, а на счет получателя еще не зачислены.
В Биткоине такого нет! До тех пор, пока биткоин-транзакция не будет в составе нового блока записана в блокчейн, средства остаются на биткоин-адресе отправителя. Фактически самого движения нет, есть одновременный акт передачи монет с адреса на адрес в момент записи блока с транзакцией в блокчейн.
А как же «двойная трата», спросите вы? Да, действительно, если я отправляю средства на адрес получателя, а они сразу с моего адреса не списываются, значит я могу снова отправить их на адрес другого получателя. Одними и теми же монетами купить пиццу и пиво к ней!
На самом деле, большинство программных кошельков это не позволяют делать. Но никто не мешает это сделать напрямую, послав подписанное распоряжение о переводе средств в Биткоин-сеть. Что же произойдет в этом случае? Да всё просто! Одна из двух транзакций не пройдет. И не обязательно это будет вторая. Тут возможны два случая:
1. Обе транзакции попали в один мемпул. Майнер пропустит одну и забракует по нехватке средств вторую.
2. Транзакции попали в разные мемпулы (к разным майнерам). В блокчейн будет записан блок только с одной транзакцией. После этого вторая транзакция станет невалидной.