✓ SubscribeSubscribers: 3133

Telegram channel blind_dev
😎 Незрячий web3 программист


#размышления
Доказательства авторства с использованием блокчейна

Как вы знаете, я являюсь разработчиком разных проектов, причём как своих, так и под заказ.

Со своими всё просто:
Опубликовал в GitHub исходный код или сослался на себя и всё - авторство подтверждено.

Но вот с проектами под заказ, которые имеют закрытый код всё сложнее:
1. Не везде уместна ссылка на разработчика.
2. Заказчик после внедрения ссылки может её убрать через некоторое время, а постоянно проверять не получится. Плюс, может быть закрыт доступ к скрипту бота.
3. Это может быть не бот или сайт, а фоновый скрипт...
В этом случае вовсе никак не продемонстрировать принадлежность к себе...
Разве что в самом коде, но к нему доступа может и не быть.

Выход: создавать приватные репозитории (каталоги исходного кода с историей), к которым причём есть доступ и у разработчика, и у заказчика.
Но опять же, не все на это могут согласиться под предлогом возможного получения доступа к коду внешними лицами.

Блокчейн - место, где всё неизменяемо.
Это сеть, которая распределена во множестве мест.
И это был бы идеальный метод подтверждения авторства.

Но есть факторы, которые мешают этому:
1. Все адреса в блокчейнах не привязаны к людям:
Заказчик может сказать, что это не его адрес (или никогда ему не принадлежал, или недавно так стало).
2. Сложности с самим доказательством:
2.1. Функционал проекта не может быть свидетельством того, что я его создал.
Потому что функции могут быть реализованы абсолютно по-разному и на разных языках программирования.
2.2. Если публиковать хэш[1] кода, опять же возникнет необходимость в размещении кода где-то...

Выход есть:
1. Размещаем в зашифрованном контейнере[2] код.
2. Создаём перед этим и после этого ZK[3] доказательство:
2.1. Что код там есть, и он соответствует хэшу.
2.2. Что зашифрованный контейнер не менялся после создания.
2.3. При этом, контейнер публикуется мультисигом разработчика и заказчика.
2.4. При обновлении обе стороны подписывают транзакцию обновления контейнера и доказательства.
3. Но есть проблема: кто будет хранить контейнер с кодом?
Ведь это не 10 КБ и не 1 МБ бывает...
Заказчику это особо не надо (разве что для бекапа), т. к. ему придётся подписывать с разработчиком, которого он может сменить.
Для разработчика, особенно если он фрилансер, расходы могут быть большими...
4. Ну и ещё одна проблема: где этот контейнер размещать...
В настоящее время, как уже писал, достаточно распределённых хранилищ, но они все не очень...
К тому же нет системы публикации доказательств...

Да и в целом, такой механизм может и не работать...
Но думаю направление размышлений в верную сторону...

А да: для чего это?
Для демонстрации полноценного портфолио. Пусть даже часть его будет без кода, но с функционалом.
Конечно в этом случае потребуется, чтоб система такого размещения проектов была адаптирована на случай изменения разных частей кода разными людьми, но это ещё более сложная реализация, чем описанная выше...
Хотя теоретически, опираясь на мультисиги с разными весами для каждого участника, можно построить систему с пониманием, кто сколько процентов проекта сделал.

Если же у вас есть мнение иное, идеи, варианты, пишите в чат @blind_dev_chat.
Тем более, что за это награждаю.

Благодарю за внимание. Всем хорошего дня.

Примечания:
1. Хэш - специальная строка, которая отражает данные.
Хэшировав строку, код или что ещё, можно потом сравнить, были ли изменения.
2. Контейнер - архив или иной формат передаваемых данных.

3. ZK доказательство - доказательство с нулевым разглашением.
Вы доказываете, что что-то было, не передавая самой информации о действии или событии...
4. GitHub - сайт, где публикуют Git репозитории.
5. Git - система хранения исходного кода с сохранением истории.


---
Канал, Чат, Бот, Twitter, Youtube, Github
Донат автору канала
t.me
😎 Незрячий web3 программист
В канале узнаете от незрячего программиста аналитику по web3 проектам (снизит вероятность потерь) и новости по разработкам. Подписывайтесь - буду рад ☺. Связь для рекламы и услуг: @blind_dev_contact_bot
🕒 10.02.2022 09:48👍 8≈0.518 Ƶ👎 0