Solidity. Основы. Блокчейн
477 subscribers
13 photos
8 videos
25 links
Solidity.
Основы.
Блокчейн
Download Telegram
Вопрос для ETH разработчика.

Насколько большим может быть смарт-контракт?

Ответ:
The Solidity max contract size is 24,576 bytes. This contract code size limit was introduced in EIP-170 with the Spurious Dragon hard-fork. The purpose of this limit is to prevent denial-of-service (DOS) attacks.

Максимальный размер контракта Solidity составляет 24 576 байт. Это ограничение размера кода контракта было введено в
EIP-170 с хард-форком Spurious Dragon. Целью этого ограничения является предотвращение DOS aтак.

#вопрос #eth #собеседование
Как работает атака 51%?

Проще говоря, атака 51% «отменяет» существующую сеть. Хакеры управляют протоколами безопасности сети, что может привести к значительному ущербу. Серьезный урон не гарантирован, но вероятен. В конечном счете, все зависит от того, насколько конкретная атака мощна и агрессивна.

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

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

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

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

Итак, чем больше сеть и чем больше в ней нод, тем сложнее ее захватить.


#собеседование
👍4
What prevents infinite loops from running forever?
Почему нет бесконечных циклов в Solidity?

The transaction gas limit prevents infinite loops from running forever.
Так как есть лимит газа.

#вопрос #eth #собеседование
🔥6👍1
Какие бывают типы блокчейна?

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


#собеседование
👍2🔥1
Топ-10 платформ для разработки блокчейна.

▫️Ethereum: Является второй по величине сетью блокчейн и содержит тысячи децентрализованных приложений. Полностью поддерживает смарт-контракты.
▫️Блокчейн IBM: Эта частная сеть была разработана с учетом гибкости и функциональности. Имеет высокий уровень кастомизации, удобный интерфейс и свободное владение несколькими языками программирования.
▫️ConsenSys Quorum: Разработана инвестиционным банком JPMorgan и основана на сети Ethereum, но оптимизирована для поддержки более быстрых транзакций. Известна своей поддержкой GDPR и другими мерами безопасности.
▫️Hydrogen Molecule: Предлагает множество функций, которые делают её хорошим выбором для разработчиков, желающих предоставить пользователям быстрые и безопасные финансовые решения. Токенизированная защита, хэширование и отслеживание данных - лишь некоторые её преимущества.
▫️Hyperledger Fabric: Разработана компанией Linux и предназначена для использования в приложениях различных отраслей. Благодаря модульной архитектуре Fabric процесс создания сложных блокчейн-решений значительно упрощается.
▫️Ripple: Еще одно довольно популярное решение на основе блокчейна. Известная своей прозрачностью, низкими комиссионными за обработку данных и быстрым временем отклика, она используется сотнями финансовых учреждений по всему миру. Не поддерживает смарт-контракты.
▫️Stellar: Это еще одно блокчейн-решение, ориентированное на финансовую сферу. Ключевым отличием от других блокчейн-платформ является то, что оно не принадлежит ни одному человеку, то есть он на 100% децентрализован.
▫️EOSIO: Легкая масштабируемость и быстрое время обработки данных — две основные привлекательные черты платформы EOSIO. Она обладает высокой степенью гибкости, предлагая совместимость со смарт-контрактами и децентрализованными приложениями.
▫️Corda: Отличается от других продуктов в этом списке. Существуют некоторые споры о том, является ли она блокчейном вообще. Самым большим плюсом этой технологии является более быстрое время обработки относительно других традиционных блокчейн-сетей.
▫️Elements: Последний представитель в этом списке, Elements, построен поверх сети Bitcoin, но включает в себя множество новых функций, таких как конфиденциальные транзакции.

А какие платформы вы бы добавили в этот список?
👍3🔥1
Вопрос для solidity разработчика.

What special CALL is required for proxies to work?


DELEGATECALL is required for proxy contracts to work because this type of call will preserve the msg (msg.sender, msg.value, etc…) and run in the context of the calling contract instead of the called contract. This enables the proxy contract to call an implementation contract to modify the proxy contract’s state.
By using DELEGATECALL, the implementation contract can be upgraded without the smart contract system losing any information or having to change the address of the proxy.


Больше про DELEGATECALL по ссылке

#вопрос #eth #собеседование
👌2
Ключевая разница между доказательством работы (PoW) и доказательством доли (PoS)

- что такое PoW?
- что такое PoS?
- PoW против PoS
- что такое Стейкинг?
- как работает PoW?
- как работает PoS?
..........

Читать по ссылке: https://www.guru99.com/ru/pow-vs-pos.html
Как предотвратить атаку 51%?

Существует несколько способов защиты от атаки 51%. Самый эффективный из них - не использовать консенсус Proof-of-Work. Это не только повысит степень защиты от атаки 51%, но также снизит потребление энергии в блокчейне, сделав его безопаснее, экономичнее и быстрее.

Еще один способ предотвратить атаку — значительно увеличить сеть. Чаще всего блокчейны привлекают дополнительные ноды с помощью программ поощрения. Так, в огромной сети (наподобие Bitcoin) практически невозможно провести атаку 51%.

Кроме того, необходим постоянный мониторинг нодов, участвующих в майнинге и стейкинге. Такая система может обнаружить «подставные ноды» еще на стадии подготовки атаки.

Также защититься от атаки 51% можно с помощью запрета майнинга на потребительских графических процессорах. Чего стоит пример Bitcoin Gold (одна из ветвей Bitcoin), которую взломали несколько раз с помощью нод, работающих на потребительских видеокартах. Такие карты используют алгоритм майнинга Zhash. Потребительские видеопроцессоры довольно дешевые, что значительно снижает расходы хакеров на взлом. К слову, Bitcoin полагается на алгоритм, для работы которого требуются ASIC-майнеры.

ASIC-майнеры известны своей довольно высокой ценой, что значительно повышает стоимость атаки. По некоторым оценкам, атака на Bitcoin будет стоить $752 000 в час. Это слишком высокая цена, и вряд ли такой взлом будет прибыльным.

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


#собеседование
👍2🔥1
Вопрос для ETH разработчика.

What are the challenges of creating a random number on the blockchain?

Answer: Random number generation on the blockchain is difficult because of its deterministic and public nature. The Ethereum Virtual Machine (EVM) must produce the same output given the same input, and all data on the blockchain is public.

Как сгенерировать настоящие случайные числа в Solidity с блокчейном

#вопрос #eth #собеседование
👍2
Which is better to use for an address allowlist: a mapping or an array? Why?

Answer: A mapping is better for an address allowlist because it is more gas efficient. With a mapping, it is possible to check if an address is on the allowlist by directly accessing its value. Using an array, verifying an address could be costly because it would require looping through each element.

Mapping в Solidity

Расчет количества газа необходимого для выполнения транзакции в Ethereum

#вопрос #eth #собеседование
👍2
What is the difference between assert and require?

assert and require serve different purposes. The require function is commonly used for input validation or to validate the state before executing certain logic. The assert function is used to check for invariants, to ensure that there’s no error in the contract’s logic and to prevent conditions that should never be possible.

#вопрос #eth #собеседование
👍1
18 нетрадиционных инструментов для Solidity разработчиков. Часть 1

▫️ChainIDE: Как и RemixIDE, оба инструмента предлагают функции подсветки синтаксиса и автозаполнения, но ChainIDE предоставляет дополнительную поддержку в отладке.
▫️ChainList: Это ресурс, который обеспечивает удобное средство для взаимодействия с сетями блокчейна в Ethereum.
▫️Tenderly: Это мощная платформа для мониторинга и отладки смарт-контрактов на Ethereum и не только.
▫️Ethereum Security Toolbox: Это специализированный контейнер Docker, обеспечивающий среду для проведения аудита безопасности и отладки смарт-контрактов Ethereum.
▫️MythX: Это сервис для проверки безопасности смарт-контрактов Ethereum, который выполняет комплексный анализ безопасности, обнаруживая уязвимости на ранних этапах разработки.
▫️Foundry: Это инструмент для разработки блокчейн-проектов, созданный на Rust. Он предлагает модульную структуру, которая позволяет разработчикам легко настраивать и расширять свои блокчейн-приложения.
▫️Evm.codes: Это удобный ресурс, представляющий собой полный список операций (opcodes) Ethereum Virtual Machine (EVM) с подробными описаниями их функциональности.
▫️Openchain: Это библиотека предоставляющая полезные инструменты: инструмент работы с ABI, трассировщик транзакций и библиотека неизвестных селекторов.
▫️OpenZeppelin Defender: Это платформа для автоматизации операций с смарт-контрактами в блокчейне Ethereum.
3
18 нетрадиционных инструментов для Solidity разработчиков. Часть 2

▫️Ethereum Tipper: Это простой виджет для разработчиков, позволяющий получать чаевые. Чтобы начать пользоваться этим инструментом, перейдите на страницу проекта, введите свой адрес кошелька, скопируйте код виджета и разместите его на своем сайте или блоге.
▫️Gelato Network: Это автоматизированная система, которая позволяет пользователям и разработчикам настроить условия для автовыполнения транзакций в блокчейне Ethereum.
▫️Cookbook Dev: Это полностью бесплатный реестр разных смарт-контрактов с открытым исходным кодом.
▫️OSWAR: Это энциклопедия всех видов атак и взломов блокчейн-проектов, смарт-контрактов и инфраструктур.
▫️Builder0x69 JSON-RPC API: Это бесплатный MEV Blocker RPC endpoint, который поможет вам скрыть ваши транзакции от MEV ботов.
▫️EtherMail: Это сервис, который позволяет отправлять сообщения адресатам на Ethereum, используя их Ethereum-адреса вместо традиционных email-адресов.
▫️BUIDLer by Etherspot: Это инструмент, предоставляющий функциональность абстракции аккаунтов (EIP-4337) в сети Ethereum.
▫️Blocktorch: Это многоцепочечная платформа для анализа ваших контрактов в реальном времени.
▫️Moralis: Это платформа для разработки децентрализованных приложений (dApps), предоставляющая широкий набор функций.

Если у вас есть дополнения к этому списку, пожалуйста, напишите в комментариях.
👍1🔥1
What is the minimum amount of Ether required to run a solo staking node?
Каково минимальное количество эфира, необходимое для запуска соло-стейкинга?

32 ETH
Solo staking: The most secure option, you'll need to 32 ETH to stake and have a dedicated computer with a reliable and constant connection.

Staking pools: You join a pool using any amount of ETH, which is used to create a node of 32 ETH.


Статья на русском

#вопрос #eth #собеседование
2👍1🤝1
Blockchain Basics

Автор:
Daniel Drescher
Год издания:
2017

#bc #en

Скачать книгу
2🔥2👍1
Solidity поддерживает все основные концепции объектно-ориентированного программирования (ООП), такие как наследование, абстракция, инкапсуляция и полиморфизм. Он также обладает функциональностью, необходимой для разработки смарт-контрактов, включая возможность работы с переменными, условными операторами, циклами и обработкой исключений.

Пример использования Solidity:

// Простой смарт-контракт на Solidity
pragma solidity ^0.8.0;

contract HelloWorld {
// Объявление переменной
string private message;

// Конструктор контракта
constructor() {
// Инициализация переменной
message = "Hello, World!";
}

// Функция для получения сообщения
function getMessage() public view returns (string memory) {
return message;
}

// Функция для установки нового сообщения
function setMessage(string memory newMessage) public {
message = newMessage;
}
}

👉 Solidity.Основы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2