2018-02-07
程式員破解畫作密碼
獲得5個比特幣獎金
文: Carmen Leung
文章索引: 生活娛樂 其它

2015年4月,Twitter用戶 coin_artist貼出她跟藝術家Rob Myers聯手創作的畫作,題目為TORCHED H34R7S,而畫作隱藏了重要資訊, 一個數位貨幣 Bitcoin 比特幣地址(簡稱為1FLAMEN6)的私鑰,只要找到這個私鑰就可以取走1FLAMEN6內的4.87個比特幣,當時獎金價值僅為46,831美元,作為破解謎題的獎金。去年11月中,一名黑客匯款到這個地址,令總數由4.87個比特幣變成5個比特幣。

TORCHED H34R7S

而TORCHED H34R7S謎題公布兩年多以來,有興趣破解的人持續關注1FLAMEN6這個地址,但獎金一直無人能領取,直到今年的2月1日一位30歲程式員Isaac(化名)進過一個月左右時間拆解,終於成功破解,其破解方法也獲得coin_artist確認,可以獲得5個比特幣的獎金,去年底比特幣升至近2萬美元的高位,然而今年初開始不斷下跌,目前已跌穿7千美元關口。

 

要破解這張畫作,首先要注意的是右下角綁上鎖匙的紅色絲帶,短絲帶代表0,長絲帶代表1,對應的數值就是011010,而整串密鑰的重點,就在於邊框的「火焰」。

 

TORCHED H34R7S

 

為方便理解,以下先講述這些火焰如何設計,反過來就是破解方法。作為謎底的私鑰本身採用WIF格式,一是個52位的字串,以58位制編碼——即採用數字1至9,所有I、O及l以外的大小寫字母編碼,主要是避免字母及數字相似而引起混淆。coin_artist及Myers兩人為這個52位的私鑰前面加上一些資料,包括放在最開頭的「b34u7y, truth, and rarity」(即「beauty, truth and rarity」,出自莎士比亞的詩作〈鳳凰與斑鳩〉),得出76位的字串,再轉成二進碼,每個字母換成8位元的字串,總共608位元。

 

然後這608位元需要用紅色絲帶代表的字串「011010」去「改頭換面」,方法是每6個位元跟「011010」進行「異或運算」(exclusive or/XOR operation)。這個運算是比對兩個字串相應的位元是否相同,如果相同就寫成0,不同就寫成1。舉個例,「111000」跟「011010」進行異或運算的結果是「100101」、「100101」跟「011010」進行異或運算的結果則是「111111」。

 

經「011010」以異或運算改寫後,得出一個新的608位元字串,然後兩人將這608個位元分為152個4位元的字串,仔細數一下四邊紅色或黃色框的「火舌」,就會發現剛好是152,他們正是把每個4位元字串編碼到一條火舌上。

 

TORCHED H34R7S

 

每條火舌有四組特徵,每項特徵按次序對應一個位元(括號內的數字)︰

1.短(0)/長(1);2.紅色框(0)/黃色框(1);3.闊(0)/窄(1);4.紫色內部(0)/綠色內部(1)

 

例如「1010」就代表一條「長、紅色框、窄、紫色內部」的火舌。畫作四邊的火焰就是按這個編碼方式繪製出來,由左上角內部開始,順時針繞一個圈,再從左上的外部逆時針走,安排好152條火舌。

TORCHED H34R7S

 

Issac也不是獨力解決問題,在花了一段時間徒勞無功後,他專注在火焰上,因為看起來像編碼,但仍然無法破譯。後來他找到同道中人Trin,兩人同屬一個為破解謎題而設的Telegram群組。而Trin表示,在去年12月當coin_artist發放圖片的高清版本時,他意識到火焰代表4位元的字串,但不知道如何處理,他的直覺認為需要以紅色絲帶的6位元密碼作異或運算,然而在為火焰解碼方面未有進展。聽到Trin的線索後,Isaac以Java寫了個小程式運算,按Trin的說法他在20分鐘後成功破解謎題。

 

為答謝Trin的提示,Isaac送了0.5個比特幣給Trin。他的獎金亦不限於那5個比特幣,由於比特幣經歷多次「分家」,他同樣獲得相應的比特幣現金(Bitcoin Cash)及比特幣黃金(Bitcoin Gold),Issac則對記者表示,他計劃繼續持有這些破解謎題得來的比特幣,無意放售。

發表評論