Web3 School
Друзья, мои поздравления 😊! Мы дожили до момента, когда блокчейн разработки таки осознали важность удобства для пользователя и реализовали функционал, позволяющий больше не переживать о приватном ключе 🥳🙏❤️! Я верю что теперь блокчейн технология станет доступна…
This media is not supported in your browser
VIEW IN TELEGRAM
Дополнительные ссылки по Account Abstraction:
About ERC-4337: https://beincrypto.com/learn/erc-4337
Benefits: https://fiftyfinney.substack.com/p/account-abstraction-a-pivotal-step
Stackup example: https://github.com/stackup-wallet/erc-4337-examples
Bundler: https://github.com/stackup-wallet/stackup-bundler
Wallets with Social: https://docs.zerodev.app/create-wallets/social/overview
Pay Gas for Users example: https://docs.zerodev.app/use-wallets/improve-gas-experience/pay-gas-for-users
Account example: https://mumbai.polygonscan.com/address/0xC8FD4d20Dd0c646AB7A4A97C19B591e02d76963a
SimpleAccount.sol: https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/samples/SimpleAccount.sol
Transfer transaction example: https://mumbai.polygonscan.com/tx/0x8069a0db7cde4491707e7af1e063682cff928fc25d1baa3880b9aa8d8f9f00fe
Safe: https://safe.global
NextJS example: https://github.com/zerodevapp/zerodev-nextjs-example
@web3_school
About ERC-4337: https://beincrypto.com/learn/erc-4337
Benefits: https://fiftyfinney.substack.com/p/account-abstraction-a-pivotal-step
Stackup example: https://github.com/stackup-wallet/erc-4337-examples
Bundler: https://github.com/stackup-wallet/stackup-bundler
Wallets with Social: https://docs.zerodev.app/create-wallets/social/overview
Pay Gas for Users example: https://docs.zerodev.app/use-wallets/improve-gas-experience/pay-gas-for-users
Account example: https://mumbai.polygonscan.com/address/0xC8FD4d20Dd0c646AB7A4A97C19B591e02d76963a
SimpleAccount.sol: https://github.com/eth-infinitism/account-abstraction/blob/develop/contracts/samples/SimpleAccount.sol
Transfer transaction example: https://mumbai.polygonscan.com/tx/0x8069a0db7cde4491707e7af1e063682cff928fc25d1baa3880b9aa8d8f9f00fe
Safe: https://safe.global
NextJS example: https://github.com/zerodevapp/zerodev-nextjs-example
@web3_school
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Внимание знатоки, что бы вы ответили на #вопрос:
Как так получилось что по этому адресу https://mumbai.polygonscan.com/address/0xC8FD4d20Dd0c646AB7A4A97C19B591e02d76963a#code существует смарт контракт, но нет транзакции, которая бы его создала?
@web3_school
Как так получилось что по этому адресу https://mumbai.polygonscan.com/address/0xC8FD4d20Dd0c646AB7A4A97C19B591e02d76963a#code существует смарт контракт, но нет транзакции, которая бы его создала?
@web3_school
Подборка ссылок для изучения и практики по Solidity + много полезного
https://link.medium.com/SkeEjHq3yyb
https://link.medium.com/SkeEjHq3yyb
🔥4
Forwarded from Incrypted
Что такое EIP-4337? Новый стандарт кошельков Ethereum
https://youtu.be/IW4YlS3PZ0c
Обновление EIP-4337 было представлено на конференции WalletCon и развернуто в сети Ethereum. Главным его нововведением стала реализация так называемой абстракции аккаунтов и появление нового стандарта кошелька.
В этом видео мы разберем что это такое и как оно работает. Приятного просмотра!
Airdrops | Instagram | YouTube | News
https://youtu.be/IW4YlS3PZ0c
Обновление EIP-4337 было представлено на конференции WalletCon и развернуто в сети Ethereum. Главным его нововведением стала реализация так называемой абстракции аккаунтов и появление нового стандарта кошелька.
В этом видео мы разберем что это такое и как оно работает. Приятного просмотра!
Airdrops | Instagram | YouTube | News
👍5❤2
Web3 School
Друзья, мои поздравления 😊! Мы дожили до момента, когда блокчейн разработки таки осознали важность удобства для пользователя и реализовали функционал, позволяющий больше не переживать о приватном ключе 🥳🙏❤️! Я верю что теперь блокчейн технология станет доступна…
This media is not supported in your browser
VIEW IN TELEGRAM
Продолжаю изучать Account Abstraction и мне встретилась классная серия из четырёх статей где автор вместе с читателем пошагово заново изобретает АА, отличный образовательный материал 🙂
You Could Have Invented Account Abstraction Series
https://www.alchemy.com/blog/account-abstraction
@web3_school
You Could Have Invented Account Abstraction Series
https://www.alchemy.com/blog/account-abstraction
@web3_school
👍3🔥2
Forwarded from Artem
Привет! 🕺
Открывается набор на MixBytes Farm!
Над программой курса «Smart Contract Auditor» трудились практикующие аудиторы и исследователи из компании MixBytes, чтобы у тебя была возможность:
– обучиться работе с низкоуровневым кодом и эффективными алгоритмами;
– разбираться в логике DeFi;
– освоить новую профессию, где средний уровень з/п - $7K
Старт обучения: 1 мая 2023
Стоимость: бесплатно
Условие поступления: входное тестирование
Длительность: 1.5 месяца
Программа:
*лекции размещены в записи, поэтому ты сможешь проходить теорию в удобное время.
По завершении обучения ты получишь сертификат в виде SBT (soulbound token), который сможет стать твоей опорой в поиске работы аудитором смарт-контрактов.
Также ты попадешь в MixBytes.Camp - закрытое сообщество единомышленников, где проходят аудит-контесты и другие специализированные активности.
📌 Почитать подробнее о курсе и зарегистрироваться можно ➡️ тут
Заявки принимаются до 27.04.2023 включительно.
Количество мест ограничено.
Этапы поступления:
1. Анкета регистрации
2. Входное тестирование
3. Добавление в группу потока (telegram), при успешном завершении входного теста.
Будем рады увидеть тебя на MixBytes.Farm!
Для связи: @gogolevdms, @kudryaviyartemiy.
Открывается набор на MixBytes Farm!
Над программой курса «Smart Contract Auditor» трудились практикующие аудиторы и исследователи из компании MixBytes, чтобы у тебя была возможность:
– обучиться работе с низкоуровневым кодом и эффективными алгоритмами;
– разбираться в логике DeFi;
– освоить новую профессию, где средний уровень з/п - $7K
Старт обучения: 1 мая 2023
Стоимость: бесплатно
Условие поступления: входное тестирование
Длительность: 1.5 месяца
Программа:
– Ethereum architecture;
– Solidity low-level patterns;
– Solidity high-level patterns;
– DeFi protocols code review;
– DeFi typical vulnerabilities;
– DeFi hacks;
– CTF (capture the flag);
– Test audit.*лекции размещены в записи, поэтому ты сможешь проходить теорию в удобное время.
По завершении обучения ты получишь сертификат в виде SBT (soulbound token), который сможет стать твоей опорой в поиске работы аудитором смарт-контрактов.
Также ты попадешь в MixBytes.Camp - закрытое сообщество единомышленников, где проходят аудит-контесты и другие специализированные активности.
Заявки принимаются до 27.04.2023 включительно.
Количество мест ограничено.
Этапы поступления:
1. Анкета регистрации
2. Входное тестирование
3. Добавление в группу потока (telegram), при успешном завершении входного теста.
Будем рады увидеть тебя на MixBytes.Farm!
Для связи: @gogolevdms, @kudryaviyartemiy.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1😢1
Artem
Привет! 🕺 Открывается набор на MixBytes Farm! Над программой курса «Smart Contract Auditor» трудились практикующие аудиторы и исследователи из компании MixBytes, чтобы у тебя была возможность: – обучиться работе с низкоуровневым кодом и эффективными алгоритмами;…
How does Ethereum work, anyway?
Статья рекомендованная к прочтению на Mixbytes курсе. И действительно статья толковая. Резюме от AI:
Автор объясняет, что Ethereum - это как младший, крутой брат Биткоина. У него есть все те же блокчейновые прелести, но с несколькими дополнительными фишками.
В статье объясняется, как работает Ethereum, используя много больших слов, таких как "узлы" и "умные контракты". Но не волнуйтесь - это не так сложно, как может показаться. В основном, Ethereum - это как большой компьютер, который может использовать каждый. Люди могут отправлять деньги друг другу, как и с Биткоином, но они также могут использовать Ethereum для создания своих собственных цифровых валют или построения децентрализованных приложений.
В конце статьи объясняется, что Ethereum имеет огромный потенциал использования, от финансов до управления цепочками поставок и проверки личности.
@web3_school
Статья рекомендованная к прочтению на Mixbytes курсе. И действительно статья толковая. Резюме от AI:
Автор объясняет, что Ethereum - это как младший, крутой брат Биткоина. У него есть все те же блокчейновые прелести, но с несколькими дополнительными фишками.
В статье объясняется, как работает Ethereum, используя много больших слов, таких как "узлы" и "умные контракты". Но не волнуйтесь - это не так сложно, как может показаться. В основном, Ethereum - это как большой компьютер, который может использовать каждый. Люди могут отправлять деньги друг другу, как и с Биткоином, но они также могут использовать Ethereum для создания своих собственных цифровых валют или построения децентрализованных приложений.
В конце статьи объясняется, что Ethereum имеет огромный потенциал использования, от финансов до управления цепочками поставок и проверки личности.
@web3_school
❤1👍1🔥1
Artem
Привет! 🕺 Открывается набор на MixBytes Farm! Над программой курса «Smart Contract Auditor» трудились практикующие аудиторы и исследователи из компании MixBytes, чтобы у тебя была возможность: – обучиться работе с низкоуровневым кодом и эффективными алгоритмами;…
Следующая рекомендованная статья:
MEV: DeFi Transaction Ordering for Profit and Fun
Уже пару лет как существует блокчейн мафия. Если вы успешный трейдер на DEXах и ваш профит выше $5к, то скорее всего вами заинтересуются они, и прийдётся делиться...
Статья объясняет концепцию MEV (Miner/Maximum Extractable Value) в DeFi и как ее можно использовать для получения прибыли, управляя порядком транзакций в блоке. В статье рассматриваются различные стратегии получения прибыли от MEV, как этические, так и неэтические, и заканчивается замечанием о том, что MEV - это двухстороннее оружие, которое можно использовать как для добра, так и для зла.
@web3_school
MEV: DeFi Transaction Ordering for Profit and Fun
Уже пару лет как существует блокчейн мафия. Если вы успешный трейдер на DEXах и ваш профит выше $5к, то скорее всего вами заинтересуются они, и прийдётся делиться...
Статья объясняет концепцию MEV (Miner/Maximum Extractable Value) в DeFi и как ее можно использовать для получения прибыли, управляя порядком транзакций в блоке. В статье рассматриваются различные стратегии получения прибыли от MEV, как этические, так и неэтические, и заканчивается замечанием о том, что MEV - это двухстороннее оружие, которое можно использовать как для добра, так и для зла.
@web3_school
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Набор шаблонов best practice на Solidity с примерами
https://fravoll.github.io/solidity-patterns
@web3_school
https://fravoll.github.io/solidity-patterns
@web3_school
⚡1👍1🔥1
Web3 School
И так, правильный ответ 1 год и $10 миллиардов и вот почему.
Есть такой вот EIP https://eips.ethereum.org/EIPS/eip-3607
EIP-3607 — это предложение отклонять транзакции от отправителей с развернутым кодом в сети Ethereum. Это делается для предотвращения возможной атаки, когда вредоносный контракт может быть развернут на адрес, у которого уже есть ключ EOA (внешняя учетная запись), а затем использовать этот ключ для траты средств от ничего не подозревающих пользователей, которые взаимодействуют с контрактом. В предложении указывается, что любая транзакция, в которой tx.sender использует какой-либо код, должна считаться недействительной и отклоняться сетью. Это простой и эффективный способ повысить безопасность и устойчивость к коллизиям в Ethereum, поскольку он делает невозможным создание коллизии между контрактом и EOA с использованием современных технологий.
Для тек, кто не очень понял о чём речь, поясняю как сам понял. С помощью команды для создания смарт контрактов
@web3_school
Есть такой вот EIP https://eips.ethereum.org/EIPS/eip-3607
EIP-3607 — это предложение отклонять транзакции от отправителей с развернутым кодом в сети Ethereum. Это делается для предотвращения возможной атаки, когда вредоносный контракт может быть развернут на адрес, у которого уже есть ключ EOA (внешняя учетная запись), а затем использовать этот ключ для траты средств от ничего не подозревающих пользователей, которые взаимодействуют с контрактом. В предложении указывается, что любая транзакция, в которой tx.sender использует какой-либо код, должна считаться недействительной и отклоняться сетью. Это простой и эффективный способ повысить безопасность и устойчивость к коллизиям в Ethereum, поскольку он делает невозможным создание коллизии между контрактом и EOA с использованием современных технологий.
Для тек, кто не очень понял о чём речь, поясняю как сам понял. С помощью команды для создания смарт контрактов
CREATE2 можно задеплоить контракт на произвольный адрес, и даже на ваш, на котором уже есть активы. А значит это то, что, поместив контракт по вашему адресу, хакер получает полный контроль над вашими активами посредством этого контракта. Единственная трудность, это подобрать соль с команде CREATE2 так чтобы получить ваш адрес, на это и нужно много времени и усилий. А вот этот EIP предлагает залатать эту дыру в безопасности...@web3_school
👍3🔥2❤1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Внимание знатоки, что бы вы ответили на #вопрос:
Ответ:
Это код создания смарт контракта из другого контракта. Но не простое создание, а с солью, а значит используется op code CREATE2. Я в предыдущих постах упоминал этот op code.
Детали https://solidity-by-example.org/new-contract
Попробовать в ремиксе
@web3_school
Car car = (new Car){value: msg.value, salt: _salt}(_owner, _model);
Что значит эта запись?Ответ:
Детали
@web3_school
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё один #вопрос:
Почему за выполнение этой транзакции пришлось заплатить $23к !??
https://etherscan.io/tx/0x2bde6e654eb93c990ae5b50a75ce66ef89ea77fb05836d7f347a8409f141599f
@web3_school
Почему за выполнение этой транзакции пришлось заплатить $23к !??
https://etherscan.io/tx/0x2bde6e654eb93c990ae5b50a75ce66ef89ea77fb05836d7f347a8409f141599f
@web3_school
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
И ещё один #вопрос:
Как скопировать любой смарт контракт в другом смарт контракте? Например нужно получить копию UniswapV2Pair средствами solidity.
Ответ:
bytes memory bytecode = type(UniswapV2Pair).creationCode;
bytes32 salt = keccak256(abi.encodePacked(token0, token1));
assembly {
pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
}
Ключевая строчка первая, получающая код любого смарт контракта, а потом идёт код создания дубликата
@web3_school
Как скопировать любой смарт контракт в другом смарт контракте? Например нужно получить копию UniswapV2Pair средствами solidity.
Ответ:
bytes32 salt = keccak256(abi.encodePacked(token0, token1));
assembly {
pair := create2(0, add(bytecode, 32), mload(bytecode), salt)
}
Ключевая строчка первая, получающая код любого смарт контракта, а потом идёт код создания дубликата
@web3_school
❤2👍1🔥1
Crypto 101 — это вводный курс по криптографии, доступный бесплатно для программистов всех возрастов и уровней квалификации
@wev3_school
@wev3_school
🔥3
Web3 School
Хотите пример кода чтения приватной переменной любого смарт контракта любого EVM совместимого блокчейна? 👍 -- конечно ❤️ -- мне и так хорошо живётся 😀 -- а кнопку бабло можно, пожалуйста
Первое что важно понимать что приватными переменные являются только для других смарт контрактов. Сам по себе блокчейн это полностью публичные данные и утаить там что либо невозможно. Просто существует правило что к некоторым переменным нет доступа из других смарт контрактов.
Для публичный переменных смарт контрактов на этапе компиляции автоматически генерируются геттеры и мы можем считать их значения через static call нужного четера. А вот для приватных переменных такого удобства нет, и приходиться ковыряться во внутренностях хранилища каждого конкретного контракта.
Итак процесс получения приватной переменной любого смарт контракта можно разбить на два этапа:
1⃣ Выяснение расположения этой переменной в storage (номера слота и место в слоте)
2⃣ Считывание нужного слота данных и декодирование
Начнём с первого. Сначала нужно разобраться как данные хранятся в памяти смарт контракта, это называется storage layout. Вот вам аналогия:
Хранение данных в смарт-контрактах похоже на организацию конфетной фабрики. Давайте представим, что контракт - это огромная комната, а слоты - это полки для размещения сладостей.
Переменные -- это наши разноцветные конфеты, которые мы хотим сохранить. Мы располагаем их на полках (слотах) комнаты (хранилище контракта, storage).
Одна полка может вмещать до 32 конфетных ячеек (байт), поэтому более крупные сладости могут занимать несколько полок.
Когда мы считаем слоты, мы на самом деле считаем, сколько полок занимают наши конфеты.
Маленькие конфеты, такие как целые числа и булевы значения, занимают всего одну ячейку полки.
Но если у нас есть большая шоколадная плитка (массив или структура данных), она может занимать несколько полок в комнате.
Организация конфетной фабрики:
Чтобы оптимизировать нашу конфетную фабрику, мы стараемся упаковывать маленькие конфеты на одной полке и размещать их рядом для более эффективного доступа.
Когда у нас есть большие сладости, мы занимаем несколько полок и стараемся разместить их рядом друг с другом. Это называется packing.
Вот в принципе и все базовые концепции. Вообще про storage layout можно говорить ещё очень много. Вот материал с деталями и картинками:
https://programtheblockchain.com/posts/2018/03/09/understanding-ethereum-smart-contract-storage
Посмотреть storage любого контракта
https://evm.storage
В следующем посте расскажу как этот самый сторадж считывать.
@web3_shool
Для публичный переменных смарт контрактов на этапе компиляции автоматически генерируются геттеры и мы можем считать их значения через static call нужного четера. А вот для приватных переменных такого удобства нет, и приходиться ковыряться во внутренностях хранилища каждого конкретного контракта.
Итак процесс получения приватной переменной любого смарт контракта можно разбить на два этапа:
1⃣ Выяснение расположения этой переменной в storage (номера слота и место в слоте)
2⃣ Считывание нужного слота данных и декодирование
Начнём с первого. Сначала нужно разобраться как данные хранятся в памяти смарт контракта, это называется storage layout. Вот вам аналогия:
Хранение данных в смарт-контрактах похоже на организацию конфетной фабрики. Давайте представим, что контракт - это огромная комната, а слоты - это полки для размещения сладостей.
Переменные -- это наши разноцветные конфеты, которые мы хотим сохранить. Мы располагаем их на полках (слотах) комнаты (хранилище контракта, storage).
Одна полка может вмещать до 32 конфетных ячеек (байт), поэтому более крупные сладости могут занимать несколько полок.
Когда мы считаем слоты, мы на самом деле считаем, сколько полок занимают наши конфеты.
Маленькие конфеты, такие как целые числа и булевы значения, занимают всего одну ячейку полки.
Но если у нас есть большая шоколадная плитка (массив или структура данных), она может занимать несколько полок в комнате.
Организация конфетной фабрики:
Чтобы оптимизировать нашу конфетную фабрику, мы стараемся упаковывать маленькие конфеты на одной полке и размещать их рядом для более эффективного доступа.
Когда у нас есть большие сладости, мы занимаем несколько полок и стараемся разместить их рядом друг с другом. Это называется packing.
Вот в принципе и все базовые концепции. Вообще про storage layout можно говорить ещё очень много. Вот материал с деталями и картинками:
https://programtheblockchain.com/posts/2018/03/09/understanding-ethereum-smart-contract-storage
Посмотреть storage любого контракта
https://evm.storage
В следующем посте расскажу как этот самый сторадж считывать.
@web3_shool
👍2🔥1🤨1