3 января 2021

Путь к DashPay (часть 4 из 4)

Продолжение… (часть 4 из 4)
Публикуем личный взгляд на проект DashPay разработчика  DCG, quantumexplorer

 

Профили Dash

Помимо платежей между Блокчейн-ID, мы также прилагали все усилия, чтобы предоставить высокий уровень удобства пользователям. Профили — это ещё один тип документов в контракте DashPay. Они хранят некоторую информацию о Блокчейн-ID, какую обычно можно ожидать от платёжного приложения. Пользователь сможет настроить изображение своего профиля, отображаемое имя и публичное сообщение.

Хранение изображений профиля находится вне сферы охвата DashPay. В наших приложениях DashWallet мы разрешаем пользователям загружать изображения на различные сторонние хостинговые сервисы, например, Imgur, Gravatar или на их собственный Google Drive. Изображение получит прикреплённый к нему перцептуальный хеш, так что даже миниатюры изображений смогут проверяться на подлинность. Механизм создания подобного в децентрализованной среде довольно сложен и требует отдельного поста о себе из-за интересных проблем, с которыми он сопряжён.

Контракт DashPay открывает возможности и для других функций, которые я тоже не стану подробно рассматривать в этой публикации, в основном потому, что они не настолько интересны, или кратко объяснить их может быть довольно затруднительно. Но я должен упомянуть, что когда контракт DashPay создан, его нельзя удалить, поскольку такое действие лишит пользователя возможности узнать, как получить его предыдущие платежи. На уровне интерфейса, однако, мы разрешаем пользователям DashWallet скрывать контакты, которые они ранее приняли. 

 

Доказательство оплаты

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

С DashPay эту ситуацию можно разрешить намного проще. Если биржа запросит доказательство происхождения средств, вы можете просто показать ей транзакцию с оплатой, и доказательство DashPay, что этот адрес получен от конкретного Блокчейн-ID. Мы не сделали DIP, объясняющий точный механизм и подтверждение требуемого доказательства, но я надеюсь сделать это в будущем, потому что, по-моему, это отличная функция.

 

Синхронизация порядка блоков

До этого момента мы разбирали DIP13, 14 и 15, и вы, возможно, задаётесь вопросом, что же делает DIP16? Обычный кошелёк Bitcoin SPV синхронизирует блоки Меркла в таком порядке, чтобы восстановить представляющие интерес транзакции. Это делается за счёт добавления адресов в фильтр Блума и отправления этого фильтра Блума на загрузку. Для каждой транзакции в каждом блоке, такая информация о транзакции как адрес платежа, будет найдена на основе фильтра. Любые совпадения будут отправлены на пославший запрос кошелёк. Для краткости это объяснение было сильно упрощено. Итак, такой подход работает хорошо, когда адреса последовательно получаются из фразы восстановления. Однако в DashPay адреса получаются из расширенного публичного ключа в запросе на добавление в контакты.

Это означает, что перед синхронизацией блоков Меркла необходимо знать все запросы на добавление в контакты. Чтобы знать подтверждённые запросы на добавление в контакты, у устройства должен быть список мастернод. Далее, чтобы знать список мастернод, кошелёк должен обладать заголовками из конца цепочки. Хотя может показаться, что мы находимся в ситуации с курицей и яйцом, мы можем легко её разрешить, просто получив заголовки в первую очередь, затем список мастернод и кворумов через DIP4. После того, как они стали известны, клиент может послать запрос DAPI, чтобы получить запросы на добавление в контакты, создать фильтр Блума и затем синхронизировать блоки Меркла. 

Здесь DIP16 объясняет всё это на более техническом уровне. 

 

Предстоящий путь

Как я упомянул ранее, в этой первоначальной версии DashPay все взаимоотношения между контактами публичны. Но это не совсем идеальное решение. Кто-то может не захотеть, чтобы мир знал, что он контактирует с кем-то конкретным. Я, несомненно, считаю, что в публичных контактах всегда будет определённая ценность, но я также верю, что мы должны проделать работу до конца и выяснить, как интегрировать в систему и приватные контакты тоже. Мы ещё не исследовали тему приватных контактов глубоко, но я уже думаю, что решение должно быть нетривиальным. Наша нынешняя цель — выпустить версию нашего ПО, которая в любом случае станет огромным шагом вперёд по сравнению с нынешнем состоянием индустрии криптовалютных платежей и затем двигаться дальше, постепенно добавляя в Dash улучшения.

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

 

Ссылка на первую часть: https://hub.forklog.com/put-k-dashpay-chast-1-iz-4/
Первоисточник: https://blog.dash.org/the-journey-to-dashpay-3e604d17814c