Що таке протоколи з відкритим вихідним кодом і як вони працюють?

Розуміння протоколів із відкритим вихідним кодом

Протоколи з відкритим вихідним кодом стали основою у світі технологій і набувають все більшої популярності завдяки численним перевагам, які вони пропонують у порівнянні з їх пропрієтарними аналогами.

Такі протоколи зазвичай створюються для загального користування, дозволяючи кожному вивчати, змінювати та поширювати їхній код. Переваги протоколів із відкритим вихідним кодом багатогранні: від їхньої вродженої прозорості до ширшої доступності. 

Крім того, вони базуються на оцінці спільноти, що є економічно вигідною та інклюзивною моделлю, яка відрізняє їх від пропрієтарних аналогів. Відомі приклади програмного забезпечення з відкритим кодом включають широко використовувані операційні системи, такі як Linux і Android, а також популярний браузер Firefox. 

Якщо говорити про криптографічні протоколи з відкритим вихідним кодом, такі мережі, як Bitcoin, Ethereum, Cardano і Polkadot, виділяються як помітні приклади блокчейн-протоколів.

Протоколи з відкритим вихідним кодом проти пропрієтарних протоколів

Протоколи з відкритим вихідним кодом і пропрієтарні протоколи представляють два різних підходи до розробки протоколів, кожен із яких має свій набір принципів щодо впровадження протоколу. 

Нижче представлено аналіз ключових відмінностей між ними: 

Який процес розробки протоколів із відкритим вихідним кодом?

Процес розробки протоколів із відкритим вихідним кодом складається з кількох окремих етапів, кожен із яких є важливим для еволюції протоколу. Все починається з етапу концептуалізації, коли розробники закладають фундамент, який визначає стандарти та мету протоколу.

Зазвичай основна концепція базується на існуючому протоколі з певними покращеннями. Етап концептуалізації слугує основою, на якій розробники ретельно окреслюють архітектуру та функції, створюючи потужну теоретичну базу. На цьому етапі розробники складають чітко визначену дорожню карту, подібну до стратегічного плану, яка спрямовує траєкторію проєкту.

Наступним кроком у процесі розробки зазвичай є етап прототипування. На цьому етапі розробники створюють функціональну модель протоколу, яка включає ключові запропоновані функції. Прототип зазвичай стає доступним для громадськості у вигляді бета-версії.

Випуск бета-версії піддає програмне забезпечення реальним сценаріям використання та взаємодії з користувачами, що дозволяє розробникам визначити його сильні та слабкі сторони. Цей етап також дозволяє розробникам отримати відгуки від спільноти з відкритим кодом щодо потенційних нових функцій, які слід включити перед остаточним релізом протоколу. Тому цей етап доречно називають бета-тестуванням або тестуванням на прийнятність користувачами (UAT).

Безперервний зворотний зв’язок і оновлення гарантують, що протокол залишається чутливим до зростаючих потреб і очікувань своєї аудиторії. Після впровадження відповідних оновлень протокол досягає рівня стабільності, достатньої для отримання статусу «стабільного релізу». Стабільна версія є зазвичай максимально надійною, наскільки це можливо зробити розробникам.

Однак процес не завершується на стабільних релізах. Проєкти з відкритим кодом потребують постійного обслуговування протоколів. Це зазвичай передбачає випуск виправлень помилок, таких як оновлення безпеки, та оновлення коду для поліпшення сумісності.

Чи захищені авторським правом протоколи з відкритим вихідним кодом?

Коли розробник публікує свій код з відкритим вихідним кодом, він ділиться ним із громадськістю, дозволяючи іншим використовувати, модифікувати та поширювати його. Однак це не означає необмеженого використання.

Закони про авторське право застосовуються тут так само, як і до пропрієтарного програмного забезпечення. Вони автоматично захищають будь-яку оригінальну творчість, включаючи протоколи з відкритим вихідним кодом, надаючи розробнику ексклюзивні права на контроль їх використання та розповсюдження.

Щодо ліцензування протоколів із відкритим вихідним кодом, розробник зазвичай додає до нього ліцензію, яка виступає у ролі набору вказівок, що чітко визначають дозволені та заборонені дії щодо коду.

Ліцензії відкритого коду часто надають користувачам широкі дозволи без необхідності отримувати явний дозвіл від оригінального автора. Існує два основних типи ліцензій із відкритим кодом: дозволяючі та копілефт. 

Дозволяюча ліцензія, яку іноді називають ліцензією BSD-стилю або Apache-стилю, передбачає мінімальні вимоги до модифікації або розповсюдження програмного забезпечення. При цьому проєкти, які використовують цей тип ліцензії, повинні додавати застереження щодо відсутності гарантії. Класичним прикладом дозволяючої ліцензії є MIT License. Ця ліцензія дозволяє будь-кому використовувати, змінювати й поширювати код без попередньої згоди.

Проєкти, які застосовують код з ліцензією MIT, зазвичай повинні включати оригінальне повідомлення про авторське право та застереження про те, що програмне забезпечення надається без будь-якої гарантії. У цьому застереженні зазначено, що власники авторських прав не несуть відповідальності за будь-які претензії чи зобов’язання, пов’язані з використанням програмного забезпечення.

Ліцензія є надзвичайно дозволяючою та створена для надання максимальної свободи розробникам, включаючи дозвіл на використання коду в комерційних продуктах.

Щодо копілефт-ліцензій, проєкти, які їх використовують, також зобов’язані додавати застереження про відповідальність. Вони передбачають більше обмежень, особливо щодо розповсюдження модифікованих версій протоколу. Наприклад, копілефт-ліцензія GNU General Public License (GPL), що є широко поширеною в проєктах з відкритим вихідним кодом, гарантує, що програмне забезпечення залишатиметься відкритим і безкоштовним. Як і ліцензія MIT, GPL вимагає застереження про відсутність гарантій.

Копілефт-ліцензії гарантують, що протоколи або програмне забезпечення з відкритим вихідним кодом можуть використовуватися, змінюватися та поширюватися без обмежень. Однак будь-яка модифікована робота повинна дотримуватися тих самих умов, зберігаючи відкритість протоколу у всіх майбутніх версіях.

Коли мова йде про пропрієтарні протоколи, ситуація змінюється радикально. Такі протоколи накладають жорсткі обмеження на документацію протоколу, що часто включає заборону на зміну або зворотне проектування коду.

З метою забезпечення безпеки часто включають конфіденційні умови, що забороняють користувачам розкривати місце дії цих протоколів. Що стосується вартості -спектр.