Jak działa u nas pochodzenie

W skrócie: każdy zarejestrowany u nas plik otrzymuje odcisk cyfrowy, większość katalogu ma też drugi odcisk, tym razem samego kształtu, a twórca może umieścić odcisk pliku w blockchainie, dzięki czemu zapisu nie da się później po cichu zmienić. Wszystko możesz sprawdzić samodzielnie, bez zakładania konta.

Co przechowujemy

Głównie prawdziwe pliki. Przesłane pliki przechowujemy tu w całości, w magazynie obiektów, gdzie oryginalne bajty nigdy nie są modyfikowane. Zindeksowany katalog również jest przechowywany jako prawdziwe pliki wszędzie tam, gdzie pozwala na to źródło. Mniejsza część to same dane indeksowe: metadane i odcisk bez samych bajtów pliku. Każdy zindeksowany wpis prowadzi z powrotem do strony, z której pochodzi.

Odcisk cyfrowy dla każdego pliku

Gdy plik trafia do rejestru, przepuszczamy go przez SHA-256. W efekcie powstaje krótki ciąg znaków, który reprezentuje dokładne bajty pliku. Zmień jeden trójkąt w modelu, a odcisk zmieni się całkowicie. Zostaw plik bez zmian, a odcisk pozostanie taki sam, na zawsze.

Odcisk odpowiada więc na wąskie, ale użyteczne pytanie: czy to ten sam plik, czy nie? Nie musisz nam wierzyć na słowo. Możesz obliczyć ten sam hash na własnym komputerze i porównać wyniki.

Drugi odcisk, dla samego kształtu

SHA-256 ma jednak swoją słabość. Wyeksportuj ten sam model z innego programu albo przesiatkuj go, a bajty się zmienią, więc zmieni się też hash. Ten sam kształt, nowy odcisk. Hash pliku nigdy nie powie Ci, że dwa różne pliki zawierają ten sam obiekt.

Dlatego większość katalogu ma drugi odcisk: zwięzłe, liczbowe podsumowanie samej geometrii, próbkowane z powierzchni modelu. Dziś ma go ponad 275 000 modeli. Rozpoznaje ten sam kształt niezależnie od ponownego eksportu, przesiatkowania, decymacji, skalowania czy obrotu, a my wykorzystujemy go w naszym procesie do wykrywania duplikatów w całym katalogu, dzięki czemu ten sam kształt nie prześlizgnie się dwa razy pod innymi bajtami. Ponieważ indeks obejmuje kilka platform, rejestr często potrafi też wskazać, gdzie dany plik pojawił się najpierw.

Dopasowywanie, które idzie dalej, śledzące remiksy i wspólne części między modelami, jest w budowie. Wolimy publikować zmierzone wyniki niż obietnice, więc ta strona powie więcej, gdy będzie już coś realnego do pokazania.

Zakotwiczenie w blockchainie

Sam odcisk żyje w naszej bazie danych. Przydatny, ale nasz. Kolejny krok to zapisanie tego odcisku w publicznym blockchainie, gdzie otrzymuje znacznik czasu i transakcję, których nikt nie może nadpisać. Właśnie to nazywamy zakotwiczeniem.

Korzystamy z dwóch sieci. Polygon daje szybką, tanią, publiczną transakcję, którą odczytasz na PolygonScan. Bitcoin, przez OpenTimestamps, daje najbardziej trwały zapis, jaki istnieje, taki, który przetrwa dowolną pojedynczą firmę. Nie każdy model w katalogu jest zakotwiczony. Duża część katalogu jest zindeksowana z innych serwisów, a te wpisy mają odcisk, ale nie mają stempla on-chain. Gdy model jest zakotwiczony, jego strona modelu i punkt końcowy dowodu mówią o tym wprost.

Co dowodzi zakotwiczenie, a czego nie

Dowodzi, że konkretny plik istniał w konkretnym dniu i że zapis nie został od tamtej pory zmieniony. Samo w sobie nie dowodzi, kto zaprojektował model ani kto ma do niego prawa. Autorstwo to osobna kwestia. Celowo rozdzielamy te dwie sprawy.

Sprawdź to wszystko samodzielnie

  1. Otwórz stronę weryfikacji. Upuść plik. Twoja przeglądarka oblicza jego hash lokalnie, więc plik nigdy nie zostaje przesłany.
  2. Sprawdzamy odcisk w rejestrze i mówimy Ci, co mamy: czy jest zarejestrowany, kto go zarejestrował i czy jest zakotwiczony on-chain.
  3. Jeśli jest zakotwiczony, przejdź do publicznego eksploratora bloków i sam odczytaj transakcję.

Masz już dowód OpenTimestamps w Bitcoinie? Możesz go sprawdzić na weryfikatorze OpenTimestamps.

Co jest zakotwiczone i gdzie

Wolimy powiedzieć za mało niż za dużo. Jeśli strona twierdzi, że model jest zakotwiczony, potwierdzi to punkt końcowy dowodu.

Dla programistów i agentów

Jeśli czytasz to za pomocą kodu, nie musisz scrapować tych stron. Istnieje API do odczytu, które zwraca te same fakty w formacie JSON, bez klucza i bez logowania:

Wolisz sam przeprowadzić sprawdzenie? Jest do tego mały, otwartoźródłowy skrypt na github.com/ModelDirectory/verify. Hashuje Twój plik lokalnie i odczytuje kontrakt rejestru przez dowolny publiczny węzeł Polygon, jaki wybierzesz, więc odpowiedź nigdy nie zależy od naszych serwerów. Licencja MIT, na tyle krótki, by przeczytać go przed uruchomieniem.

Prowadzisz platformę?

Wszystko na tej stronie może działać w tle Twojego własnego procesu przesyłania plików. Jedno zapytanie POST w momencie publikacji nadaje każdemu przesłanemu plikowi na Twojej platformie niezależny, oznaczony czasowo dowód pierwszej publikacji oraz małą odznakę, na którą Twoi twórcy mogą wskazać, gdy ich praca pojawi się tam, gdzie nie powinna. Nigdy nie prosimy o sam plik, tylko o jego hash, a odznaka nie niesie ze sobą żadnych ciasteczek ani śledzenia. Integracja jest celowo nieskomplikowana: jeden sekret, dwa wywołania, gotowe w jedno popołudnie.

Szczegóły, dokładne zapytania i sposób uzyskania klucza: strona dla platform.

Gdzie plik pojawił się najpierw?

Ponieważ indeks obejmuje kilka platform, rejestr często potrafi odpowiedzieć na proste pytanie, popierając to dowodami: gdzie ten dokładny plik pojawił się najpierw? Wypróbuj to na stronie pierwszej emisji. Upuść plik (hashowany w Twojej przeglądarce, nigdy nie przesyłany) albo wklej hash i przeczytaj oś czasu.

Pełna lista znajduje się w manifeście maszynowym pod adresem /.well-known/ai-agent.json, a prosty przewodnik dla modeli językowych jest dostępny pod adresem /llms.txt.