原文標題:《火花訪談:區塊鏈中的複雜系統》

本文作者萬紅教授,2004 年開始在普渡大學擔任工業工程學院做應用數學和複雜系統優化的教授,主要研究方向是 simulation,偏重於做仿真實驗設計。現在主要關注如何把區塊鏈作爲一個複雜系統,並試圖用智能體仿真模型來演繹區塊鏈網絡經濟的演化。萬紅教授本科就讀於北大化學系,輔修經濟。後在美國西北大學攻讀材料學碩士和工業工程系博士。

問 :請問您是怎麼理解複雜系統呢?

答 :不同的人對複雜系統有不同的理解,我主要從模擬的角度來理解複雜系統。

第一是從蒙特卡羅模擬的角度來研究。比如說有一個 excel,這裏面有很多函數關係,你就可以做一個很複雜的計算,把隨機數放進去,每次得出的結果實際上是不一樣的。蒙特卡羅模擬在金融上的應用比較多,因爲你需要分析它不同的情況。

第二是從離散事件模擬的角度來研究。比如你設想一個 factory,裏面有各種各樣的 machine, 每個 machine 都有相應的處理時間,裏面的 order 也是不確定的,這個時候它是一個以 queuing theory 爲基礎的這個系統。這個 factory 最大的優點是有不確定的 order,不同的 order 進來這個系統後,你需要開始統籌規劃:每個 station 要放幾個工人?放幾臺 machine?工人要不要 cross training,即可以在這個 station 幹,也可以在那個 station 幹?怎麼優化庫存?怎麼優化供應鏈?怎麼做到需求生產?就像戴爾當年的崛起一樣。

這個系統最關鍵的,一是有一個明確的起始和結束,比如說每天這個商店從早上八點,開到晚上九點;二是 study state analysis,即這個系統一直處於學習狀態。比如說我們用的網絡,這實際上是一個連續不斷的系統。這個系統會有波動,inpidual 的 observtion 也不確定,但是它的冪和整體的分佈實際上是穩定在一個程度了。

從我個人角度來看,複雜系統最特殊的在於它會進化。複雜系統沒有穩定狀態,可能一個個體就會引發一個世界的變化,整個系統的平衡隨時會被打破,這裏面就會有很多有意思的問題。

一個是你怎麼定義這個“變化”?你怎麼確定這個變化會改變整個系統?另一個是什麼東西會觸發這個系統,併發生什麼樣的變化?怎麼來做這個模型?這個模型裏有獨立變量和因變量,那麼前者對後者有什麼樣的影響?這個系統究竟是否可以預測?

在複雜系統模型裏這是不可以的,因爲它有個引爆點,一旦過了這個引爆點,整個系統的機制可能就會發生變化。那麼這個問題就變成了什麼時候是引爆點?然後如何來研究?很多時候你需要知道系統正在發生的變化,所以你要去 monitor,並且後面採取新的舉措。

離散事件模擬和蒙特卡羅模擬基本都是從上向下的,先看數據是如何分佈的,再確定隨機模型,然後設立一系列假設來搭建這個模型。

但是用 ABS model 來研究複雜系統,是正好相反的,它是你決定裏面有哪些 agent。比如在區塊鏈中,每一個礦工,每一次驗證,它就是一個 player。接着你要考慮它有什麼樣的實用功能,這個功能對不同的人來說可能是不一樣的。假如每個人都想優化自己的收益,那麼應該加入聯盟和大家一起做到最後呢,還是單打獨鬥的做下去。你用什麼樣的機制可以激勵大家來保證公平呢?

這是區塊鏈裏面很重要的一個原則,另外就是能避免壟斷。在這種情況下,你是很難對整體有一個特別清楚的思路,你更多知道的實際上是 inpidual player 的,你把它放進去,然後 inpidual player 之間做各種各樣的 interaction,你去觀察這個系統的進化,這是非常不一樣的。

拿社交網絡中 Information 是怎麼來運轉舉例,現在社交網絡裏面存在一些影響力比較大的用戶,他們影響力是很大的。這些人 Information 的傳播,和其它普通用戶是完全不一樣的,所以這是複雜系統本身不一樣的地方。

此外,網絡是會不斷演化的。比如一些有影響力的玩家發了一條消息,熟人的熟人可能變成你的熟人,那麼你和他就會有直接的連接 , 這是一個基於人脈的動態網絡。但在選舉過程中,一些政治傾向特別強的人,可能會冒犯到他的用戶,但是會吸引和他有相同傾向的人。這個時候他就變成了整個網絡的一個節點,網絡就不是基於一個人際的東西了,而是一個 opinion based 的網絡。

問 :您爲什麼會轉向複雜系統的研究?

答 :現在的複雜系統越來越多了。用簡單的 steady state 跟不上形勢。做區塊鏈研究用簡單的離散事件模擬很難 model 系統的 dynamic,steady state 系統現在也越來越少了。我同時也在從事博弈論的研究,不管是從提高社會福利,還是個體納什均衡的角度,如果不從複雜系統的角度去做,很多東西是難以構建模型的。就算有很好的分析結果,都會存在很多假設導致這些結果在現實世界中難以實現。

我們要建立一個 ABSM 的開源平臺,希望最終可以幫助大家來測試共識算法的表現。 這個平臺應該是由一個一個小模塊組成的,由用戶自己去搭建。區塊鏈有很多的數據,但是還沒有什麼特別好的分析,所以現在我們想根據現有的爬蟲去抓數據,看是否可以發現一些 insights。

另外這些數據可以幫助我們構建 ABSM。在博弈論裏面,有很多研究是關於人在什麼情況會有什麼樣的行爲。那麼在 ABSM 裏,會把一些隨機或者非理性的東西放到模型裏面,以期更加接近現實。比如金融市場裏面的理性人假設,在現實中是不成立的。

我們利用數據,去做一個可以模擬人們行爲的模型,這是驗證步驟,接着我們就可以做一些實驗了。比如我們會放出一條消息,根據人們的反應,得出不同人羣的比例會對市場造成什麼影響。在區塊鏈領域,我們希望用模擬來做策略分析或者風險分析。

問:您覺得目前研究的難點是什麼?

答:第一個就是從團隊的組建來說,現在挺難找到統計和編碼都很厲害的人,所以很多事情我還要親自去做。另外一個就是,ABSM 裏 agent design 很重要。也就是說這個 agent 對什麼東西有 respond,怎麼樣改變它的 behaviour。從區塊鏈的角度來說,這個 behaviour 怎麼來設計是現在的一個痛點,同時我也和統計系的同事正在研究,怎麼設計 agent 使得它有學習能力。

原來很多的 ABSM 都是非常虛設的,也就是說遇見一件事情,它就做一個決策,實際上就是基於一個很簡單的 possibility model。但是我們希望做的這個模型實際上是有點類似於馬爾可夫模型,這個模型可以根據我現在的狀態,學習周圍的環境,使這個 agent 更加智能。同時這個決策實際上又要基於博弈論的角度來做,因爲每個人都要使自己效益最優化,所以把這三方面結合到一起其實挺難的,這個 agent 確實能模擬真實情況。

第二就是說對區塊鏈本身這個系統非常瞭解的人現在還不多。我們現在希望能夠更多的瞭解一下區塊鏈系統,使得搭建出來的模型更加合理。如果你查一下這個 AB,它有很多博弈論和網絡的單獨模擬,但是這麼一個複雜系統,無論是從編碼還是後面的分析,我覺得都還是一個挺大的挑戰。

問:那您這個研究在未來可能會有哪些更細分的課題呢?

答:一是 smart agent 的設計,數據庫輸入建模,然後 agent 是會隨着更多的數據進化的。二是我們想做一個分析,看區塊鏈市場和對新聞反應之間的聯繫。現在我們是從大數據的角度來做的,三是我們現在開展的一個研究,實際上是想做一個 multi-stage game theory 的基於代理模型。因爲區塊鏈裏面的人都是長期 play 的,他投資買了礦機以後實際上是需要礦的,還有的人他只是做 validation 來收交易費。那麼如何來搭建這個系統?

我有一個學生正在研究根據現有的各種假設,解決一個利益優化的問題,使我知道怎麼把計算機資源分配到各種幣上。並且信息是不斷變化的,那麼這種情況下根據它價格的不同,它已經被挖出多少了,還剩多少資源,我們假設就把它變成一個回報的變化,我怎麼來預測這個變化?其次有些變化它回報可能很大,但它的這個成本同樣也很大,這個框架策略怎麼來動態更新?

這裏面其實就成爲優化策略設計的一個問題了,這裏面有很多原來在金融方面的研究,同時也有很多在資源配置和設計上研究。它本質上是一個優化組合的問題,但是這個優化組合非常複雜。

首先它肯定是一個大規模優化,我原來一直在做學習方面的特徵選擇,有那麼多的影響因子,我到底選哪些作爲我的關注點,比如說怎麼識別關鍵用戶,怎麼識別關鍵因素。如果能把這個問題簡化成一個只有 5 到 6 個 key factor 的情況下,就很容易做出決策模型,但如果你給我 1200 個 factor,是很難做優化的。

特徵選擇如果要說的更具體一點的話,我們就是在 lasso 或者 ridge regression 這樣的方法來看這個,其中有個 subtopic,我們正在做的就是怎麼把這個 lasso feature selection 放到神經網絡裏面去。

問 :如何將 feature selection 放到 machine learning 裏面去呢?

答 :feature selection 包括 lasso 大部分都是一步性的,你有很多的數據來做一個分析,現在的 trend 的實際上我們也在做。怎麼把這個東西放到神經網絡這部分去,這裏面會有一些問題。深度學習實際上是多級的,包括這個馬爾可夫隨機樹這些東西,而且它不停的有新數據進來,那這種情況下的 feature selection 怎麼能變成一個 adaptive multistage,前面的數據怎麼能儘可能用到這裏。而做模擬的一個獨特的地方,就是說我可以設計我要從哪裏拿到數據。

區塊鏈最大的好處就是你能從各個層面拿到數據,同時保證這個數據的 validity。如果你有 validator 同時還有匿名性。我不用讓你知道我是誰。那麼深入學習能和區塊鏈結合起來,這是非常有前景的。

在現在這個情況下,對我最大的挑戰是要找到一個 focusing 的 area 然後在這個上面做出來。我現在特別 focus 的就是兩個方向,一個就是把 ABSM 和區塊鏈結合起來,因爲這個對業界會是有幫助的,另外就是對教育會很有幫助,你可以想象看它這個系統的運作是怎麼樣的。比如說 ABSM 對社會網絡的研究有貢獻,所以我希望對 blockchain 的研究也能做貢獻。現在泡沫基本都被打掉了,就是做研究的好時候。

還有就是深入學習這方面的研究,因爲區塊鏈如果沒有大數據,注意數據不是存在區塊鏈的,它只是給你一個數據的地址。它能讓你 retrieve back,但是沒有大量的數據,區塊鏈就沒有很大意義。如果你有大量的數據,你總是需要這個學習方法,不管是 supervised 還是 unsupervised,數據要有意義。所以我很希望在這個領域能有學者來做出貢獻。

另外一點,我想盡可能的幫助業界來解決他們真正想應用區塊鏈的痛點,因爲現在講區塊鏈應用的大部分是浮在表面上。我不是說這編碼的細節,現在能做編碼的人也很多。但實際上你要從系統角度去設計它。比如 Amazon 爲什麼那麼成功?就是因爲它做的物流系統還有供應鏈物流系統,做的非常的成功。

那麼區塊鏈根據不同的用途,也需要一個系統設計。舉個特別極端的例子,比如說健康護理,就完全不可能用 POW。因爲如果這樣的話,你就沒有任何隱私可言了。對於研究機構的話,他如果能用區塊鏈看到大量的匿名數據,對吧?那麼就會顯著促進研究的同時沒有任何被騙風險。

現在很多人特別希望食品溯源,這就變成一個完全相反的問題。就是說我拿到餐桌這盤菜,我按一個鍵,通過區塊鏈我就可以看到牛肉是從哪個農場來的,現在有沒有記錄我的 organic 是不是 organic,在這兩個情況下可以想象設計完全不同。

當時在比特幣最火的時候,我每天去開會。在開會的時候大家都在說這是未來,但是我就一直說,第一不是所有的地方都要有區塊鏈,很多人是拿着答案去找問題,這是不對的;第二大家都說區塊鏈最好的就是因爲它是分佈式的,它沒有中央系統。但是在很大部分的無幣應用場景,它實際上應該是一個混合系統,也就是說集中式和分散式系統的一個結合。

很多人現在把區塊鏈就作爲一個私人共享的數據庫,因爲它做這個非常有效,但是它沒有任何 validation,我覺得這一點很值得思考。比特幣本身就設想每個人都想佔其他人的便宜,POW 本身就是基於這個。它那麼大的資源消耗,就是因爲我假設所有人都要害我,所有人都要佔我便宜。POS 又是假設我們完全可以相信羣組裏面掌握最多資源的人,或者是其它的 stakers。

那麼對一個系統的研究,就是根據不同的信任水平,在有些情況下就需要有中央系統。在另外一些情況下你就算是用區塊鏈的話,你假設他們之間有一些信任,比如在同一個組織工作,或者是他們有不同的利益共同體的話,那麼實際上就不需要 POW。你怎麼把共識設計和信任等級組合起來,你又怎麼設計混合系統,這是我一個長期想要達到的目標,也就是從 engineer 和 business 角度來設計這個應用的情況。