今天在社區裡看到一個傳聞,說的是 Linus Torvalds 參與了$zailgo 項目,也帶了 github 的連結https://github.com/notwedtm/zailgo
看到這則訊息還挺讓我驚訝的,Linus Torvalds 是何許人也?我們來看看 wiki 上的介紹:
Linus Torvalds 是 linux 核心的作者,開源專案 git 也是他的,這種古巨神怎麼會來web3參與一個小項目,實在讓人費解,真相永遠只有一個,讓我們來找出它。
我們先點開“commit”,看看巨神提交了些什麼:
點開後會發現這條 commit 的狀態是“Unverified”,標示這條提交並沒有被驗證。
我們透過點這個狀態也能看到提示,Linus Torvalds 並沒有用他的公鑰來簽署。
那這種提交是怎麼偽造的呢?其實也很簡單,github 記錄提交資訊的所有人只需要 GIT_AUTHOR_NAME、GIT_AUTHOR_EMAIL 等欄位即可,那我們是不是可以偽造這些資訊呢?
我們來做個實驗,設定相關的幾個環境變量,這些都是 Linus Torvalds 公開資訊:
export GIT_AUTHOR_NAME=Linus Torvalds
export GIT_AUTHOR_EMAIL=torvalds@linux-foundation.org
export GIT_COMMITTER_NAME=Linus Torvalds
export GIT_COMMITTER_EMAIL=torvalds@linux-foundation.org
然後我們隨便在原始檔中改一些內容,然後 commit,讓我們看看 log 是什麼:
最上面那一條是我測試的信息,可以看出在 log 中的作者信息變成了 Linus Torvalds,這時候如果我要提交的話,在 github 上顯示的就是 Linus Torvalds 參與了這個項目。第二個訊息是我們目前在 github 上看到的偽造訊息。
那麼針對這種偽造的提交該怎麼判斷呢?有以下幾種方法:
1.我們點開 commit,看看目前提交的狀態是什麼,如果是真實的提交,狀態那裡什麼都不會有,如果是偽造的,就會出現上面的“Unverified”
2.我們也可以去 Linus Torvalds 的 github 主頁上,看看他的活動提交都有哪些項目。他的 github 是https://github.com/torvalds , 在「Contribution activity」裡可以看到他參與的專案中並沒有 zailgo。
3.專案的管理員可以看到詳細的提交日誌,這時候偽造者的資料也能發現,不過咱們也沒有管理權限。
zailgo 項目是個好項目,為了宣傳而偽造資訊可要不得,大家也得注意不要被這種假消息欺騙。