Вы слышали термин адрес Блокчейна, но не уверены, что это такое? Адрес Блокчейна является ключевым понятием технологии Блокчейна и внедрения криптовалюты.
В этом руководстве вы получите более полное представление о том, что это за адреса, как они создаются, а также узнаете некоторые различия между адресами в разных типах Блокчейнов.
Когда Биткоин был впервые создан, он имел возможность отправлять Биткоин-платежи напрямую на IP-адреса. Эта возможность была включена для того, чтобы обычному человеку было удобнее отправлять Биткоины без необходимости иметь дело с открытыми ключами и длинными адресами. Однако разработчики Биткоина вскоре поняли, что это может быть уязвимо для атак «человек посередине», поэтому они удалили эту функцию, и она до сих пор не восстановлена.
Вы, вероятно, задаетесь вопросом, что эта часть истории имеет отношение к адресам Блокчейна, и это просто демонстрация того, каким может быть адрес. Адрес также может быть чем-то вроде кода SWIFT или номера банковского счета.
Формат адреса вообще не имеет значения, важно то, что он служит для определения местоположения - физического или виртуального. А в случае финансовых операций необходимо обеспечить, чтобы платежи достигали надлежащего места назначения. Это уникальный и безопасный идентификатор, который облегчает платежи.
Во-первых, они не централизованы, как адреса, используемые банками. Во-вторых, каждый возможный адрес Блокчейна уже существует. Он существовал в момент создания Blockchain, поскольку адреса Блокчейна являются результатом математических операций.
После того, как Биткоин отказался от идеи Pay to IP, разработчики переключились на формат Pay To Public Key Hash (P2PKH), который вы, вероятно, признаете в качестве текущей системы адресации. Стандартный P2PKH будет иметь 34 буквенно-цифровых символа и начинается с «1», например: 1K31KZXjcochXpRhjH9g5MxFFTHPi2zEXb.
Основная идея заключается в том, что при оплате Биткоинами вы платите хешу какого-то открытого ключа. Вероятно, это звучит как техническая неразбериха, поэтому давайте разберемся с этим и посмотрим, как создается адрес P2PKH, чтобы мы могли лучше понять, что это такое.
Первое, что вы должны знать об адресе P2PKH, - это то, что каждый кошелек способен их создавать, или, точнее, обнаруживать столько, сколько вам нужно. Все это происходит в фоновом режиме как основные криптографические операции.
Весь процесс начинается с того, что ваш кошелек собирает энтропию, а затем использует ее для генерации закрытого ключа ECDSA. Это ключевой алгоритм, используемый для адресов Биткоин. Он известен как алгоритм асимметричной подписи, который позволяет подписывать транзакции с помощью закрытого ключа, а затем подпись проверяется открытым ключом. ECDSA - это криптографический метод, позволяющий доказать, что вы являетесь действительным создателем транзакции, подписав ее цифровой подписью.
Затем, как только закрытый ключ был создан или обнаружен, кошелек использует математический расчет для получения открытого ключа. Хотя существует возможность перехода от частного к открытому ключу, в настоящее время не существует способа получить закрытый ключ на основе открытого ключа. Таким образом, открытый ключ теперь можно использовать в мире для отправки и получения платежей.
Однако вскоре сообщество обнаружило, что эти открытые ключи были довольно громоздкими и состояли из 65 символов. Это также сделало их склонными к ошибкам ввода, и они также более подвержены раскрытию секретного ключа, если когда-либо будут разработаны квантовые вычисления, чтобы ECDSA могла быть взломана. Это привело к разработке метода создания адреса из открытого ключа.
При создании адреса кошелек еще раз использует криптографические алгоритмы. Короче говоря, кошелек начинается с хеширования открытого ключа с помощью SHA-256, а затем получает результат и хэши с помощью RIPEMD-160. Впоследствии байты 00 добавляются в строку в качестве префикса, поэтому все адреса P2PKH начинаются с цифры 1, а также добавляются четыре байта контрольной суммы в конце строки. Наконец, кошелек преобразует все это в строку base58, и в результате получается адрес Биткоин, который вы узнали.
Это звучит довольно сложно, но, честно говоря, вам не нужно понимать криптографию, происходящую на заднем плане. Важно понимать, что адрес на самом деле является представлением открытого ключа с добавленной контрольной суммой, чтобы избежать ошибок при вводе. Каждый раз, когда вы вставляете адрес в свой Биткоин-кошелек, он вычисляет контрольную сумму, а если он не совпадает, он отклоняет адрес. Это позволяет избежать проблемы отправки средств на неправильный адрес из-за ошибки при наборе.
Человек, который владеет закрытым ключом для адреса, является единственным, кто может подписать транзакцию для этого адреса, и любой, кто знает адрес, может проверить подпись с помощью личного ключа, фактически не обнаруживая секретный ключ. Эта простая подпись и проверка транзакции - это почти то же самое, что транзакция криптовалюты.
Это не останавливается на этом, потому что у Биткоина есть другие, более продвинутые типы адресов, такие как адреса P2SH, которые разрешают такие вещи, как транзакции с несколькими подписями. Однако вместо того, чтобы углубляться в Биткоины, давайте взгляним на то, как другие Блокчейны занимаются созданием адресов.
Таким образом, не только Биткоин использует описанный выше метод для создания адресов. Другие монеты используют те же ECDSA, SHA-256 и RIPEMD160 для генерации адресов. Некоторые хорошо известные примеры - Dogecoin, Dash и Litecoin. Единственное отличие состоит в том, что хеш RIPEMD160 приводит к различным префиксам. Таким образом, адреса Dogecoin начинаются с буквы «D», адреса Litecoin начинаются с буквы «L», а адреса Dash начинаются с буквы «X».
Из этого вытекает интересный факт, о котором большинство людей не подозревают, что поскольку эти коды используют один и тот же метод создания адреса, они также могут использовать одни и те же открытые и закрытые ключи. Вы даже можете частично хранить их по тем же адресам. В случае адресов P2SH и Litecoin, и Bitcoin используют префикс 05, что означает, что вы можете хранить оба адреса по одному адресу.
Есть и другие методы, используемые для генерации адресов. Монета конфиденциальности Monero основана на алгоритме Cryptonote и использует другой алгоритм криптографической подписи, известный как EdDSA, для генерации открытого ключа. Он также использует так называемую кольцевую подпись для обеспечения конфиденциальности. Эти кольцевые подписи не позволяют другим увидеть, какой ключ подписал транзакцию. Это также означает, что адреса Cryptonote имеют пару открытых ключей - один ключ расходов и один ключ просмотра.
Crytponote добавляет байтовый префикс и хэширует результат для контрольной суммы, но для этого использует Keccak-256, а не SHA-256. Затем результат преобразуется в base58 и дает гораздо более длинный адрес по сравнению с Биткоин-адресами. Адрес Monero будет выглядеть следующим образом: 43ZZViHQKd42X7cajEtc6NUoxG4AvyMu3ZqpGTBP85uhEfYoPVAuGHxJcomMHEPp3NWiKJRUMnuAJ7dfBrPTcfjYMPJzz2a
Эти различные адреса показывают, что адреса - это не что иное, как способ сообщить другим, куда следует отправить платеж. Из-за этого не имеет значения, какие алгоритмы вы используете, как вы манипулируете открытым ключом, или как на самом деле выглядит результирующий адрес.
Тем не менее, важно отметить, что метод, используемый для создания адреса, может повлиять на удобство использования, конфиденциальность и безопасность. Например, контрольная сумма делает Биткоин более удобным для использования, поскольку позволяет избежать проблем, связанных с неправильным вводом адреса, в то время как ключ просмотра Monero частично объясняет, почему он такой же закрытый, как и он.
Ethereum во многом отличен и уникален, и его создание адресов является таким же. С самого начала пользователи Биткоина были озадачены, увидев адреса Ethereum, представляющие собой длинные шестнадцатеричные строки, начинающиеся с 0x, например: 0x0eb81234567897ec23f1354ec754a2c4e4f9f565.
Действительно, метод создания адресов, используемый Ethereum, не так сильно отличается от Биткоинов. Он начинается с закрытого ключа, который использует ECDSA для создания открытого ключа, как и Биткоин. Открытый ключ затем хэшируется с использованием Keccak-256, который дает нам 32-байтовую строку. Ethereum отбрасывает первые 12 байтов, а оставшиеся 20 байтов дают шестнадцатеричный адрес из 40 символов, к которому добавляется префикс 0x. И это все. Нет преобразования в base58, что означает, что адреса Ethereum остаются шестнадцатеричными.
Есть еще одно критическое различие с адресами Эфириума, и это отсутствие контрольной суммы. Вот почему пользователям Ethereum настоятельно рекомендуется всегда копировать / вставлять адреса, а не вводить их вручную. В Ethereum нет защиты от неправильного ввода только одного символа и бесконечного использования ваших средств.
Когда вы сравниваете метод генерации адресов Ethereum, кажется, что разработчики Ethereum просто ленились и оставили метод незавершенным. Это довольно странно для криптовалюты, которую называют невероятно инновационной. Это также кажется опасным и безрассудным, и для второй по величине криптовалюты крайне непрофессионально.
Есть причина, по которой адреса кажутся незаконченными, и это потому, что они есть. Когда Эфириум был впервые выпущен, никто не заботился о том, были ли адреса незаконченными. И были планы изменить адресную систему, поэтому то, что мы используем сегодня, не является последней итерацией. Разработчики Ethereum все еще планируют создать реестр имен на основе умных контрактов. Как только это будет завершено, криптовалюты вернутся к видению Сатоши, где платежные адреса гораздо проще использовать и запоминать. И, возможно, Ethereum не решил использовать специально созданные адреса, такие как Биткоин, просто потому, что разработчики Ethereum думают, что могут улучшить этот метод. Помните, что адрес - это просто способ направить других в правильное местоположение, поэтому ему нужна только соответствующая информация, чтобы разрешить выделение средств на закрытый ключ. Это можно сделать разными способами.
Фактически, разработчики Ethereum несколько неравнодушны к формату ICAP, который является base58 и использует контрольные суммы, как Биткоины и другие криптовалюты. Действительно, потенциально привлекательная особенность формата ICAP заключается в том, что он совместим с другим существующим форматом - системой международного номера банковского счета (IBAN). Это означает, что все существующие банковские программы и системы могут понимать эти адреса ICAP Ethereum и взаимодействовать с ними.
IBAN используется на международном уровне для идентификации клиентских счетов в банковской сфере. IBAN включает в себя номер счета клиента, банк, код страны и контрольную сумму. ICAP включает в себя всю ту же информацию и использует XE в качестве идентификатора страны.
Интересно, что поскольку ICAP не нужны шестнадцатеричные адреса, когда мы переключаемся на контракты с именами reg, можно использовать удобочитаемую строку, такую как XE42ETHXREGSOMEJOHNDOE, которая находится в банковском формате, но ее также легче запомнить. Это означает, что в конечном итоге адреса Ethereum могут быть легко запоминаемы и совместимы с банковской системой.
Поддержка ICAP растет, и многие клиенты уже поддерживают ее, хотя устаревший адрес обычно используется в качестве стандартного. Также была добавлена контрольная сумма в Ethereum в виде заглавных букв. Таким образом, любой адрес Эфириума с заглавной буквой является контрольной суммой, защищенной от ошибок ввода.
Существует одна криптовалюта, которая уже нашла способ реализовать читаемые человеком адреса, и эта криптовалюта - STEEM. С STEEM ваше имя пользователя также является адресом вашего кошелька.
STEEM был создан на основе той же концепции, что и BitShares. Первоначально он был связан с платформой социальных сетей Steemit, но с тех пор вырос до связи с несколькими другими платформами социальных сетей с различной направленностью. Система STEEM использует то, что называется доказательством мозга, и представляет собой сочетание доказательства работы и доказательства ставки, когда пользователи генерируют монеты, публикуя оригинальные материалы, которые затем «голосуются» или одобряются другими пользователями. В целом, система довольно сложна, имеет возможность делегировать право голоса и систему курирования, которая также платит небольшие сборы за майнинг. Он также включает три различных вида токенов, которые используются по-разному, чтобы избежать инфляции, обеспечить стабильность и стимулировать пользователей не выводить деньги из системы.
STEEM был подвергнут критике как слишком централизованный, но его адресная концепция, тем не менее, очень интригует. Хотя он может быть более централизованным, STEEM, похоже, уже выполнил то, что Ethereum надеется сделать с умными регистраторами имен контрактов. С STEEM каждый пользователь получает закрытый ключ, который можно использовать для подписания транзакций. Адреса не являются производными от этих закрытых ключей, а являются просто именами пользователей, выбранными при создании учетной записи в Steemit. Имена пользователей связаны с открытыми ключами в блокчейне STEEM, что позволяет выполнять проверку подписи и транзакций, но способ, которым это происходит, уникален, поскольку соединение с открытым ключом / адресом не основано на алгоритме, а вместо этого основано на доверии к платформе Steemit.
Хотя платформа Steemit может не выжить, созданная для нее система адресов на основе имени пользователя интересна тем, что обеспечивает практически идеальное удобство использования. К сожалению, системе STEEM не хватает прозрачности и децентрализации, и почти каждый другой Блокчейн предпочитает математическое решение, а не доверие к платформе.
Если бы Ethereum мог обеспечить децентрализованную, ненадежную криптовалюту с простотой системы адресов пользователей STEEM, мы бы сделали большой шаг вперед в Блокчейне и криптовалютах.
Понравилась статья? Пожалуйста, поделитесь:
Вам также будет интересно: