BIP to skrót od Bitcoin Improvement Proposal. Dokument opisuje rozwiązanie techniczne, procedurę lub ważne informacje dotyczące Bitcoina. Można go przeanalizować, zakwestionować i ewentualnie wykorzystać; publikacja nie zmienia automatycznie oprogramowania ani zasad sieci.
Anna przygotowuje płatność na komputerze, ale chce ją podpisać portfelem sprzętowym innego producenta. Oba programy muszą rozumieć przekazywane dane. Właśnie taki problem rozwiązuje BIP 174: opisuje PSBT, wspólny format przekazywania nieukończonej transakcji i informacji potrzebnych do podpisu. Programiści mogą korzystać z jednego dokumentu, zamiast osobno wymyślać niezgodne formaty. To jeden z praktycznych powodów istnienia BIP. [8]
Różne numery dotyczą różnych zadań. BIP39 opisuje tworzenie słów odzyskiwania i przekształcanie ich w seed, dane początkowe do wyprowadzania kluczy portfela. BIP 141 opisuje SegWit, zmianę zasad przetwarzania transakcji, która zaczęła obowiązywać po aktywacji w sieci. BIP 174 pomaga przekazywać transakcje do podpisu bez zmiany zasad poprawności bloków. BIP 50 dokumentuje przyczyny i rozwiązanie incydentu z marca 2013 roku, gdy sieć tymczasowo się podzieliła. Nie każdy BIP proponuje więc nową regułę Bitcoina. [6] [7] [8] [9]
Opisanie rozwiązania, napisanie programu i jego używanie to odrębne kroki. Opis to specyfikacja, a kod — implementacja. Portfel może eksperymentować ze szkicem; inny dokument może jeszcze nie mieć żadnego używanego programu. Zmiany zasad poprawności bloków wymagają ponadto aktywacji, czyli momentu, od którego właściwe oprogramowanie zaczyna je egzekwować. Publikacja dokumentu nie aktualizuje automatycznie twojego węzła, komputera sprawdzającego reguły sieci. [7] [10]
Numer przede wszystkim ułatwia znalezienie właściwego dokumentu i udział w tej samej dyskusji. Wyższy numer nie oznacza lepszej propozycji ani zalecanej aktualizacji. Nawet ponumerowany dokument może pozostać niedokończony lub zostać odłożony. Gdy usługa reklamuje obsługę BIP, nadal trzeba sprawdzić, jaką funkcję ma na myśli i czy konkretna wersja programu rzeczywiście ją oferuje. [2]
Autorzy najpierw przeglądają wcześniejsze prace i omawiają pomysł na Bitcoin Development Mailing List, publicznej liście dyskusyjnej programistów. Uwagi mogą ujawnić problem, zanim powstanie długi tekst. Odpowiednio rozwiniętą propozycję zgłasza się następnie do wspólnego repozytorium bitcoin/bips na GitHubie jako pull request, czyli prośbę o włączenie. Autorzy nie wybierają numeru: przydziela go redaktor po sprawdzeniu tematu, formatu i dojrzałości dokumentu. [1]
BIP Editors dbają o publikowane dokumenty: sprawdzają wcześniejsze dyskusje, zrozumiałość, format i licencję, przydzielają numery i utrzymują wpisy. Nie decydują w ten sposób, jakiego programu masz używać ani jakie reguły ma przyjąć twój węzeł. Obecność w repozytorium nie gwarantuje bezpieczeństwa ani zgody społeczności. O faktycznym użyciu decydują poszczególne projekty i uczestnicy sieci. [1]
Jeżeli wiadomość mówi, że zatwierdzono nowy BIP, otwórz dokument i ustal, co się wydarzyło. Dostał tylko numer, autorzy zakończyli pracę czy użytkownicy korzystają już z tego rozwiązania w konkretnym programie? Dla funkcji portfela szukaj dowodów w dokumentacji i wydaniach programu; przy zmianie reguł sieci sprawdź również warunki i przebieg aktywacji. Pozwala to odróżnić ciekawy pomysł od funkcji, z której można już skorzystać. [10] [2]
Obecną procedurę opisuje BIP 3, Updated BIP Process, ze statusem Deployed. Zastąpił BIP 2 oraz uprościł typy i statusy dokumentów. Starsze artykuły mogą więc wspominać Standards Track albo Final, nazwy niepasujące do dzisiejszego podziału. Liczy się aktualny plik i jego historia. Repozytorium publikuje i przechowuje propozycje, nie jest systemem głosowania nad przyszłością Bitcoina. [1] [5]
Specification opisuje techniczne reguły pozwalające tworzyć zgodne ze sobą programy. Przed ukończeniem wymaga działającej implementacji referencyjnej, czyli programu pokazującego, jak zrealizować rozwiązanie, oraz wektorów testowych, czyli przykładowych danych wejściowych z oczekiwanymi wynikami. Informational zawiera informacje, analizę lub zalecenia. Process określa sposób pracy, na przykład publikację samych BIP. Do tej ostatniej grupy należy BIP 3; nie opisuje nowego formatu transakcji Bitcoin. [1]
Draft to praca w toku. Complete oznacza, że autorzy ukończyli zaplanowane zadania i zalecają przyjęcie. Deployed wskazuje potwierdzone aktywne użycie; dla Process może oznaczać wymagany rough consensus, szerokie porozumienie po dyskusji i rozpatrzeniu rzeczowych zastrzeżeń, a nie zwykłe liczenie głosów. Closed to dokument historyczny, którego nie rozwija się, nie promuje ani nie używa aktywnie. Pozostaje w archiwum. Nawet Deployed nie oznacza obsługi przez każdy portfel. [1]
Nagłówek podaje autorów, typ, status, datę przydzielenia numeru, licencję i dyskusje. Requires wymienia potrzebne inne BIP, Replaces propozycje przeznaczone do zastąpienia, a Proposed-Replacement możliwego następcę. Po osiągnięciu statusu Complete kolejne zmiany zapisuje się w Changelog, czyli historii zmian, wraz z datą i numerem wersji. Pole Version w nagłówku wskazuje aktualną wersję dokumentu. Zmiana niezgodna z wcześniejszym rozwiązaniem powinna zazwyczaj otrzymać nowy BIP, żeby ten sam numer nie zaczął po cichu oznaczać czegoś innego. [1]
Pełniejszy obraz uzyskasz, czytając to hasło razem z Soft Fork, Reguły konsensusu, Bitcoin Core, Bitcoin, Hard Fork, BIP 39. Do tego hasła prowadzą również odsyłacze z Soft Fork, Wojna o rozmiar bloków, Bitcoin Core, Edukacja o Bitcoinie.