P2PKH
Чтобы потратить такие средства, владелец должен предоставить публичный ключ (соответствующий данному хешу) и цифровую подпись, подтверждающую владение соответствующим приватным ключом.
1. Принцип работы
P2PKH является наиболее распространённым способом создания «обычных» адресов (начинающихся с 1 в Биткоине). Процесс включает два этапа:
- Создание выхода (Locking script):В момент отправки транзакции формируется скрипт вида:OP_DUP OP_HASH160 <20-байтовый хеш публичного ключа> OP_EQUALVERIFY OP_CHECKSIGЭтот скрипт «запирает» монеты, требуя, чтобы при их трате были выполнены условия:
- Предоставленный публичный ключ после хеширования должен совпасть с заданным хешем.
- Подпись, сделанная соответствующим приватным ключом, должна пройти проверку.
- Трата (Unlocking script):Плательщик предоставляет: <Подпись> <Публичный ключ>.Эти данные подставляются в скрипт выхода, и если всё корректно, транзакция признаётся действительной.
2. Преимущества
- Компактность: Адрес содержит только хеш ключа (20 байт), а не полный публичный ключ, что уменьшает размер адреса и повышает удобство использования.
- Безопасность: Даже если публичный ключ когда-либо будет раскрыт (при трате), средства, отправленные на этот же адрес после раскрытия, становятся теоретически уязвимыми к атакам на эллиптическую криптографию, но до момента траты сам ключ скрыт.
- Простота: Логика понятна и легко реализуется в кошельках.
3. Недостатки и ограничения
- Фиксированная структура: P2PKH поддерживает только один тип условия — подпись одного конкретного ключа. Для мультиподписи или более сложных условий требуются другие модели (например, P2SH).
- Раскрытие публичного ключа при трате: Как только транзакция траты попадает в блокчейн, публичный ключ становится общедоступным, что может быть нежелательно с точки зрения приватности.
Для майнера P2PKH — это самый простой для валидации скрипт. Он требует минимальных вычислительных затрат на проверку подписи и хеширования, что снижает нагрузку на узлы. Однако каждый выход такого типа несёт фиксированный размер, и при массовом использовании (например, в микроплатежах) избыточность данных может влиять на рост блокчейна.
Вывод:
Pay-to-Public-Key-Hash (P2PKH) — базовый формат адресации, обеспечивающий одноключевую защиту средств через хеш публичного ключа. Надёжность, простота и минимальный размер адреса сделали его стандартом для личных транзакций, но для сложных сценариев (мультиподпись, смарт-контракты) используются более гибкие конструкции, такие как P2SH и P2MR.
Лучшие посты














