Хэш в криптовалюте

Обновлено: 21.11.2024

Джейк Франкенфилд — опытный писатель, освещающий широкий круг тем, связанных с бизнес-новостями. Его работы публиковались, в частности, в Investopedia и The New York Times. Он проделал обширную работу и исследования в области Facebook и сбора данных, Apple и пользовательского опыта, блокчейна и финансовых технологий, а также криптовалюты и будущего денег.

Амилкар Чаварриа — предприниматель в области финансовых технологий и блокчейна, обладающий более чем десятилетним опытом запуска компаний. Он преподает криптографию, блокчейн и финтех в Корнелле с 2019 года и в Массачусетском технологическом институте и Уортоне с 2021 года. Он консультирует правительства, финансовые учреждения, регулирующие органы и стартапы. Он также занимал руководящие должности в Goldman Sachs и BlackRock.

Скайлар Кларин — специалист по проверке фактов и специалист по личным финансам с обширным опытом, включая ветеринарные технологии и изучение фильмов.

Что такое хэш?

Хеш – это математическая функция, которая преобразует входные данные произвольной длины в зашифрованные выходные данные фиксированной длины. Таким образом, независимо от исходного объема данных или размера файла, его уникальный хэш всегда будет одного размера. Более того, хэши нельзя использовать для «реинжиниринга» входных данных из хешированных выходных данных, поскольку хеш-функции являются «односторонними» (как мясорубка: вы не можете положить говяжий фарш обратно в стейк). Тем не менее, если вы используете такую ​​функцию для тех же данных, ее хеш будет идентичным, поэтому вы можете проверить, что данные те же (т. е. неизмененные), если вы уже знаете их хеш.

Хеширование также необходимо для управления блокчейном в криптовалюте.

Ключевые выводы

  • Хеш – это функция, отвечающая зашифрованным требованиям, необходимым для решения вычислений в блокчейне.
  • Хэши имеют фиксированную длину, поскольку практически невозможно угадать длину хэша, если кто-то пытается взломать блокчейн.
  • Одни и те же данные всегда будут давать одно и то же хеш-значение.
  • Хэш, как одноразовый номер или решение, является основой сети блокчейна.
  • Хеш создается на основе информации, содержащейся в заголовке блока.

Как работают хэши

Обычные хеш-функции принимают входные данные переменной длины для возврата выходных данных фиксированной длины. Криптографическая хеш-функция сочетает в себе возможности передачи сообщений хэш-функции со свойствами безопасности.

Хеш-функции – это структуры данных, которые обычно используются в вычислительных системах для таких задач, как проверка целостности сообщений и аутентификация информации. Хотя они считаются криптографически «слабыми», поскольку могут быть решены за полиномиальное время, их нелегко расшифровать.

Криптографические хеш-функции добавляют функции безопасности к обычным хеш-функциям, что затрудняет обнаружение содержимого сообщения или информации о получателях и отправителях.

В частности, криптографические хеш-функции обладают следующими тремя свойствами:

  • Они не допускают столкновений. Это означает, что никакие два входных хэша не должны сопоставляться с одним и тем же выходным хэшем.
  • Их можно скрыть. Должно быть трудно угадать входное значение хеш-функции по ее выходным данным.
  • Они должны подходить для головоломок. Должно быть сложно выбрать вход, который обеспечивает предопределенный выход. Таким образом, входные данные должны быть выбраны из как можно более широкого распределения.

Из-за особенностей хэшей они широко используются в онлайн-безопасности — от защиты паролей до обнаружения утечек данных и проверки целостности загруженного файла.

Хеширование и криптовалюты

Основой криптовалюты является блокчейн, представляющий собой глобальную книгу, образованную путем связывания отдельных блоков данных транзакций. Блокчейн содержит только проверенные транзакции, что предотвращает мошеннические транзакции и двойное расходование валюты. Полученное зашифрованное значение представляет собой ряд цифр и букв, не похожих на исходные данные, и называется хэшем. Майнинг криптовалют предполагает работу с этим хешем.

Хеширование требует обработки данных из блока с помощью математической функции, что приводит к выходным данным фиксированной длины. Использование выходных данных фиксированной длины повышает безопасность, поскольку любой, кто пытается расшифровать хэш, не сможет определить, насколько длинным или коротким является ввод, просто взглянув на длину выходных данных.

Расчет хэша начинается с данных, доступных в заголовке блока, и по сути представляет собой решение сложной математической задачи. Заголовок каждого блока содержит номер версии, метку времени, хэш, использованный в предыдущем блоке, хэш корня Merkle, одноразовый номер и целевой хеш.

Майнер сосредотачивается на одноразовом номере, строке чисел. Это число добавляется к хешированному содержимому предыдущего блока, которое затем хэшируется.Если этот новый хэш меньше или равен целевому хешу, то он принимается в качестве решения, майнер получает вознаграждение, и блок добавляется в цепочку блоков.

Процесс проверки транзакций в блокчейне основан на шифровании данных с использованием алгоритмического хеширования.

Особые соображения

Расчет хэша требует от майнера определить, какую строку использовать в качестве одноразового номера, что само по себе требует значительного количества проб и ошибок. Это связано с тем, что одноразовый номер представляет собой случайную строку. Крайне маловероятно, что майнер успешно найдет правильный одноразовый номер с первой попытки, а это означает, что майнер потенциально может протестировать большое количество вариантов одноразового номера, прежде чем получить его правильно. Чем выше сложность — мера того, насколько сложно создать хэш, отвечающий требованиям целевого хэша, — тем больше времени может потребоваться для создания решения.

Пример хеша

Хеширование слова "привет" приведет к получению вывода той же длины, что и хэш для "Я иду в магазин". Функция, используемая для генерации хэша, является детерминированной, что означает, что она будет давать один и тот же результат каждый раз, когда используется один и тот же ввод. Он может эффективно генерировать хэшированный ввод; это также усложняет определение входных данных (что приводит к майнингу), а небольшие изменения во входных данных приводят к неузнаваемому, совершенно другому хешу.

Обработка хэш-функций, необходимых для шифрования новых блоков, требует значительной вычислительной мощности компьютера, что может быть дорогостоящим. Чтобы побудить отдельных лиц и компании, называемые майнерами, инвестировать в необходимые технологии, криптовалютные сети вознаграждают их как новыми токенами криптовалюты, так и комиссией за транзакцию. Майнеры получают компенсацию только в том случае, если они первыми создают хэш, соответствующий требованиям, указанным в целевом хеше.

Часто задаваемые вопросы

Что такое хэш-функция?

Хеш-функции – это математические функции, которые преобразуют или "отображают" заданный набор данных в битовую строку фиксированного размера, известную также как "хэш-значение".

Как рассчитывается хеш-значение?

Хэш-функция использует сложные математические алгоритмы, которые преобразуют данные произвольной длины в данные фиксированной длины (например, 256 символов). Если вы измените один бит где-либо в исходных данных, изменится все значение хеш-функции, что делает его полезным для проверки точности цифровых файлов и других данных.

Для чего в блокчейнах используются хэши?

Хэши используются в нескольких частях системы блокчейн. Во-первых, каждый блок содержит хэш заголовка предыдущего блока, что гарантирует, что при добавлении новых блоков ничего не было изменено. Кроме того, майнинг криптовалюты с использованием доказательства работы (PoW) использует хэширование случайно сгенерированных чисел для получения определенного хеш-значения, содержащего серию ведущих нулей. Эта произвольная функция требует больших ресурсов, что затрудняет захват сети злоумышленником.

Криптографические хеш-функции генерируют строку символов фиксированной длины из записей данных любой длины. Запись данных может быть словом, предложением, более длинным текстом или целым файлом.

  • Криптографическая хеш-функция используется в целях безопасности и составляет основу криптозащиты.
  • Хеш-функция превращает случайный ввод данных (ключей) в строку байтов фиксированной длины и структуры (значение хеш-функции).
  • Хэш транзакции позволяет легко идентифицировать транзакции в блокчейне.

В этом уроке вы подробно узнаете о хеш-функциях.

Что такое хэш-функция?

Как вы узнали из урока 6 промежуточного раздела Bitpanda Academy, сеть Биткойн зависит от набора правил, называемого алгоритмом консенсуса Proof of Work. Этот алгоритм консенсуса представляет собой набор правил, которые управляют сетью блокчейн. Помимо криптовалют, хеш-функции чаще всего используются для хранения паролей.

Давайте вернемся к самым основам. Математическая функция используется для иллюстрации выражения или отношения, включающего одну или несколько переменных или наборов. Следовательно, функция связывает вход с выходом.

Примером этого может быть размер и цена гамбургеров в ресторане.

Стоимость бургера определяется его размером.

Поэтому в данном случае стоимость зависит от размера.

Допустим, вы можете купить маленькие, средние и большие гамбургеры, и их стоимость составляет 1,50, 2,50 и 3,50 доллара США соответственно.

Введите размер гамбургера.

Выход — это стоимость бургера.

Хеш-функция превращает ввод (например, текст) в строку байтов фиксированной длины и структуры. Результат или созданное значение называется «хеш-значением» или «контрольной суммой». Любое хеш-значение, созданное из данных с использованием определенного алгоритма хеширования, всегда имеет одинаковую длину и является однонаправленным — его нельзя обратить.

Готовы получить свой крипто-значок? Проверьте свои знания здесь

Термин "хеш-функция" происходит от французского слова "hacher", что означает "разбивать на мелкие кусочки". Это указывает на то, что хеш-функция предназначена для "разбивания" данных. Другой тип структуры данных, хэш-таблица, часто используется для быстрого обнаружения любых двух идентичных хэшей (значений хэшей).

После того, как Диффи и Хеллман впервые определили необходимость однонаправленной хеш-функции в своей основополагающей статье 1976 года по криптографии с открытым ключом, в течение следующих двух десятилетий развитие криптографии быстро развивалось. В 1990 году криптограф и профессор Массачусетского технологического института Рональд Ривест изобрел хеш-функцию MD4, а затем функции MD5 и MD6. В 1995 году АНБ (Агентство национальной безопасности) разработало алгоритм SHA-1 (Secure Hash Algorithm 1) на основе разработки Ривеста, за которым последовало обновление SHA-2 в 2001 году. в качестве основы алгоритма консенсуса Биткойн.

Назначение хеш-функций

Хэш-функции возникли из-за необходимости сделать содержимое одинаковым по длине, с одной стороны, и для использования в качестве уникальных идентификаторов, с другой. Типичные варианты использования хеш-функций вне сферы криптовалюты включают:

  • Вычисление (короткой) контрольной суммы для объекта, например контрольной суммы для ISBN (международного стандартного номера книги)
  • Идентификация любого контента почти без двусмысленности, но все же «кратко», не раскрывая ничего о контенте в криптографических приложениях

Свойства хеш-функций

Криптографическая хеш-функция должна быть эффективной с точки зрения вычислений, то есть она должна быстро создавать хэш-значение. Он должен быть детерминированным — каждый раз, когда вы вводите определенный ввод, он должен производить один и тот же вывод и быть устойчивым к прообразу, что означает, что он не может раскрывать какую-либо информацию о вводе в выводе.

Наконец, хэш-функция должна быть устойчивой к коллизиям, что гарантирует невозможность получения одинаковых выходных данных двумя разными входными данными. Это детерминированная функция, устойчивость к прообразу и устойчивость к коллизиям, которые составляют три наиболее важных свойства хеш-функций в процессе майнинга биткойнов.

Хэш-функция должна быть устойчивой к коллизиям, что гарантирует невозможность получения одинаковых выходных данных двумя разными входными данными.

Хэш-функции в процессе майнинга

При повторном быстром прохождении процесса проверки в сети Биткойн блок объединяется и содержит несколько транзакций, а также информацию о предыдущем блоке. Это означает, что если кто-то захочет изменить реестр или дважды потратить транзакцию, ему или ей придется изменить хэш во всех предыдущих блоках.

Чтобы связанный блок был добавлен в цепочку блоков, майнерам необходимо найти хеш, соответствующий целевой сложности. Каждый блок содержит заголовок блока с номером блока, хэш предыдущего блока и «одноразовый номер», включающий отметку времени. Назначение одноразового номера — изменение входных данных для криптографической хэш-функции, то есть увеличение случайности вычислений в процессе майнинга.

Решение хеша

Затем узел начинает «хешировать» данные, преобразовывая их в хэш-значение или «хэш», который всегда должен содержать определенное количество нулей. Узел проверяет, соответствует ли хеш критериям сложности. Хэш должен начинаться с правильного количества нулей. Если хэш соответствует критериям сложности, он передается другим майнерам в сети. Первый майнер, который найдет действительный хэш, проверяет блок на новый блок и получает вознаграждение за блок и комиссию в биткойнах.

Если хэш не соответствует критериям сетевой сложности, выбирается и хэшируется другой одноразовый номер. Майнерам, вероятно, придется генерировать много хэшей с большим количеством одноразовых номеров, пока они не найдут одноразовый номер, отвечающий трудностям. Это повторяющийся и энергоемкий процесс, известный как майнинг биткойнов, который требует большой вычислительной мощности.

Хеш-функции составляют основу процесса Proof-of-Work. Без подтверждения и производства хеш-транзакций блокчейн не будет защищенным от несанкционированного доступа и неизменным, и будет невозможно доказать, кто и в какое время владел какой суммой биткойнов.

Все, что вы всегда хотели знать о хешировании биткойнов, но боялись спросить.

19 февраля 2017 г., 12:35. Всемирное координированное время

Любой, кто интересуется биткойнами, когда-либо слышал фразу "криптографическая хэш-функция". Но что именно это означает и как это связано с криптовалютой?

Хэш-функции – важная часть не только протокола биткойн, но и информационной безопасности в целом.

В следующей статье мы рассмотрим несколько простых примеров их работы, а также простую демонстрацию.

Что такое хеш-функция?

Говоря абстрактно, хеш-функция — это математический процесс, который принимает входные данные любого размера, выполняет над ними операцию и возвращает выходные данные фиксированного размера.

В более конкретном примере это можно использовать для получения в качестве входных данных последовательности букв любой длины, которую мы называем строкой, и возврата последовательности букв фиксированной длины. Независимо от того, является ли входная строка одной буквой, словом, предложением или целым романом, выходные данные, называемые дайджестом, всегда будут одинаковой длины.

Хеш-функция такого типа обычно используется для хранения паролей.

Когда вы создаете учетную запись пользователя в любой веб-службе, для которой требуется пароль, пароль проходит через хэш-функцию, и хеш-дайджест сообщения сохраняется. Когда вы вводите свой пароль для входа в систему, та же хеш-функция запускается для введенного вами слова, и сервер проверяет, соответствует ли результат сохраненному дайджесту.

Это означает, что если хакер сможет получить доступ к базе данных, содержащей сохраненные хэши, он не сможет немедленно скомпрометировать все учетные записи пользователей, поскольку нет простого способа найти пароль, который создал любой заданный хэш.

Простые хеш-функции в Python

Вы можете поэкспериментировать со значениями хэша, используя Python, язык программирования, установленный по умолчанию в операционных системах Mac и Linux. (В этом руководстве предполагается, что вы используете какую-либо версию OS X или Linux, поскольку использование Python в Windows более сложно.)

Сначала откройте терминал, введите python и нажмите ENTER.

Это перенесет вас в Python REPL, среду, в которой вы можете опробовать команды Python напрямую, а не писать программу в отдельном файле.

Затем введите следующее, нажимая клавишу ВВОД после каждой строки и клавишу TAB там, где отмечено:

Теперь вы создали функцию hash() , которая будет вычислять и распечатывать хеш-значение для заданной строки, используя алгоритм хеширования MD5. Чтобы запустить его, поместите строку между круглыми скобками в кавычки, например:

И нажмите ENTER, чтобы увидеть хеш-дайджест этой строки.

Вы увидите, что вызов хэш-функции для одной и той же строки всегда будет генерировать один и тот же хэш, но добавление или изменение одного символа приведет к созданию совершенно другого хеш-значения:

Хэш-функции в биткойнах

В протоколе биткойн хеш-функции являются частью алгоритма хеширования блоков, который используется для записи новых транзакций в блокчейн в процессе майнинга.

В майнинге биткойнов входными данными для функции являются все самые последние, еще не подтвержденные транзакции (наряду с некоторыми дополнительными входными данными, относящимися к метке времени и ссылке на предыдущий блок).

В приведенном выше примере кода мы уже видели, что изменение небольшой части входных данных для хэш-функции приводит к совершенно другому результату. Это свойство имеет решающее значение для алгоритма «доказательства работы», используемого в майнинге: чтобы успешно «решить» блок, майнеры пытаются объединить все входные данные со своей собственной произвольной частью входных данных таким образом, чтобы результирующий хэш начинался с определенное количество нулей.

В качестве базовой демонстрации мы могли бы попробовать «майнинг» с помощью нашей хэш-функции Python, вручную добавив восклицательные знаки после «CoinDesk рулит!» пока не найдем хэш, начинающийся с одного нуля.

Конечно, вычисление хэша для биткойн-блока, который на момент написания должен начинаться с 18 нулей, требует чрезвычайно большого объема вычислений (и поэтому совокупная вычислительная мощность всех компьютерам в сети по-прежнему требуется около 10 минут для решения блока).

Потребность в такой большой вычислительной мощности означает, что новые биткойны добываются в течение длительного периода времени, а не сразу.

Чтобы заработать биткойны с помощью майнинга, вам нужно проделать огромный объем работы, необходимый для решения блока, и, зарабатывая это вознаграждение, вы фиксируете все новые транзакции в блоке, который добавляется в постоянную запись всех предыдущих транзакций: блокчейн.

Криптовалюты, такие как Биткойн и Эфириум, представляют собой цифровые активы, которые вы можете покупать или продавать без использования посредников, таких как банк или брокер.Вместо этого вы выполняете транзакции через сеть блокчейнов, состоящую из майнеров криптовалюты со всего мира. Эта сеть защищена путем добавления уровня криптографии к каждой транзакции. Майнеры должны решать сложные математические головоломки, чтобы добавить их в блокчейн, и когда они это делают, генерируется хэш.

Безопасность и работоспособность криптовалютной сети можно измерить по скорости хеширования. Это относится к количеству майнеров, работающих над проверкой транзакций, и скорости, с которой они могут генерировать хэши в сети с доказательством работы. Вот подробнее о том, что такое хешрейт и что нужно знать об этом важном показателе.

Что такое хешрейт?

Скорость хэширования — это показатель общей вычислительной мощности, используемой криптовалютной сетью с доказательством работы для обработки транзакций в блокчейне. Это также может быть показателем того, насколько быстро машины майнеров криптовалюты выполняют эти вычисления.

Майнеры используют компьютеры для решения сложных математических задач на основе данных о транзакциях. Эти системы генерируют миллионы или триллионы предположений в секунду о том, какими могут быть решения этих головоломок. Это хэши, буквенно-цифровые коды, рандомизированные для идентификации одного уникального фрагмента данных.

Цель состоит в том, чтобы стать первым майнером, создавшим блок данных о транзакциях, который содержит правильное решение и соответствует всем критериям, которые считаются действительными. Действительные хэши в сетях с доказательством работы должны быть аутентифицированы другими майнерами путем измерения того, использовалось ли соответствующее количество вычислительной мощности для создания хэша. После проверки блока он добавляется в цепочку, и майнер получает вознаграждение в новой криптовалюте.

«Блокчейну нужны компьютеры для обработки и проверки транзакций, — говорит Дэвид Кеммерер, генеральный директор и соучредитель CoinLedger. «Чем больше компьютеров соревнуются в проверке транзакций, пытаясь угадать следующий хэш, тем более безопасной становится сеть. атаки это."

Биткойн и Эфириум, две крупнейшие криптовалюты в мире, в настоящее время используют доказательство работы для подтверждения блоков транзакций, прежде чем они будут добавлены в сетевой блокчейн. Другие криптовалюты, включая Bitcoin Cash, Bitcoin SV, Dogecoin, Litecoin и Monero, также используют доказательство работы.

Примечание. Эфириум планирует в 2022 году перейти от доказательства работы к системе подтверждения доли. Именно здесь майнеры выделяют определенное количество токенов, чтобы получить шанс быть выбранными для записи следующего блока в цепочке вместо этого. участвовать в гонке, чтобы первым сгенерировать действительный хэш.

Как измеряется хешрейт?

Скорость хеширования – это количество вычислений, которое может быть выполнено в секунду, которое может измеряться миллиардами, триллионами, квадриллионами и квинтиллионами и представлено следующими обозначениями:

  • KH/s (kilo): количество хэшей в секунду в тысячах.
  • MH/s (мега): количество хэшей в секунду в миллионах.
  • GH/s (гига): количество хэшей в секунду в миллиардах.
  • TH/s (тера): количество хэшей в секунду в триллионах.
  • PH/s (пета): количество хэшей в секунду в квадриллионах.
  • EH/s (exa): количество хэшей в секунду в квинтиллионах.

То, как представлены скорости хеширования, может варьироваться от сети к сети и даже от майнера к майнеру, потому что это зависит от скорости используемых компьютеров и/или количества майнеров в сети. Например, Биткойн использует криптографический алгоритм SHA-256 для вычисления хэшей и измеряет скорость хеширования в эксахешах в секунду (EH/s). Один экзахэш равен одному квинтиллиону хэшей. Ethereum в настоящее время измеряется в терахешах в секунду (TH/s). Один терахеш равен 1 триллиону хэшей.

"Общая скорость хэширования сети приблизительно определяется путем сравнения среднего времени между добытыми блоками и сложности сети в определенный момент времени", – – говорит Мэтт Кунке, CFA и аналитик Global X ETF. «Сегодня биткойн-сеть имеет скорость хеширования примерно 190 EH/с, поэтому все майнеры в сети вычисляют выходные данные криптографической хеш-функции SHA-256 в среднем примерно 190 квинтиллионов раз в секунду».

Почему важен хешрейт?

Скорость хеширования невероятно важна для майнеров криптовалюты. Поскольку они постоянно соревнуются с другими майнерами за то, чтобы первыми сгенерировать действительный хэш, они хотят, чтобы их машины решали головоломки как можно быстрее. Если они используют оборудование с хэшрейтом ниже, чем у конкурентов, они не будут выигрывать гонку за первое место так часто. Если они работают в сети с высокой скоростью хеширования, они также конкурируют с большим количеством других майнеров. И то, и другое влияет на прибыльность майнеров.

«Хешрейт — это один из способов измерить вероятность того, что майнер добудет блок, — говорит Кунке.«Это также показатель того, насколько дорого обходится добыча блока, что делает его одной из ключевых переменных, определяющих прибыльность майнинга биткойнов. такая же фиксированная доля нового биткойна. Если майнер поддерживает постоянный уровень хэширования, в то время как скорость хеширования сети растет, ожидаемое будущее вознаграждение этого майнера в биткойнах уменьшится, в то время как его затраты останутся постоянными, что приведет к снижению прибыльности."

Инвесторы также рассматривают скорость хэширования как меру безопасности сети. Чем выше скорость хеширования, тем сложнее злоумышленнику начать атаку на сеть, потому что больше компьютеров проверяют транзакции.

"Чтобы взломать криптовалюту, хакер должен владеть более чем 51 % сети, то есть более чем половиной хэш-мощности", – говорит Санг Ли, генеральный директор и соучредитель VegaX Holdings. «Чем выше скорость хэширования, тем дороже становится атака на сеть, так как требуется больше мощности».

Примечание. Майнер или группа майнеров могут приобрести или арендовать достаточно оборудования для майнинга, чтобы контролировать более половины вычислительной мощности блокчейна. Это известно как атака 51%. Чем выше скорость хеширования блокчейна, тем меньше вероятность того, что такая атака будет возможна.

Почему хешрейт важен для инвесторов?

Хотя иногда может показаться, что цены на криптовалюты изменяются в тандеме со скоростью хеширования, корреляция не всегда очевидна. Некоторые эксперты не видят никаких признаков того, что скорость хэширования влияет на цены криптовалюты, если смотреть в долгосрочной перспективе.

По словам Габриэля Вонга, соучредителя Cyberdyne Tech Exchange, цены на криптовалюту часто влияют на скорость хэширования.

"Когда цены на биткойн высоки, скорость хэширования имеет тенденцию к увеличению, так как все больше майнеров присоединяются к сети из-за более высокой маржи", – говорит Вонг. "По мере снижения цены маржа сокращается, и все меньше майнеров (особенно менее эффективных) могут оставаться прибыльными".

В долгосрочной перспективе скорость хэширования имеет тенденцию расти со временем. Увеличение прибыльности, вероятно, приведет к увеличению количества майнеров в сетях. Достижения в области вычислительных технологий также сделают майнинг более эффективным и менее затратным для майнеров. Тем не менее, в 2024 году Биткойн сократит вознаграждение за майнинг вдвое, что потребует больше ресурсов, используемых для проверки блоков, что может привести к снижению прибыльности. Неизвестно, как это повлияет на скорость хеширования криптовалюты.

Робин Кавана — писатель-фрилансер из Южной Каролины. Последние 20 лет она писала о личных финансах, здоровье, бизнесе и образе жизни для The New York Times, Yes! Magazine, Next Tribe, Parenting и различные специализированные журналы.

Читайте также: