📜 [專欄新文章] Merkle Tree in JavaScript
✍️ Johnson
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
這篇文章會說明 Merkle Tree 的運作原理,以及解釋 Merkle Proofs 的用意,並以 JavaScript / TypeScript 簡單實作出來。
本文為 Tornado Cash 研究系列的 Part 1,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:
Part 2:ZKP 與智能合約的開發入門
Part 3:Tornado Cash 實例解析
Special thanks to C.C. Liang for review and enlightenment.
本文中實作的 Merkle Tree 是以 TypeScript 重寫的版本,原始版本為 tornado-core 以 JavaScript 實作而成,基本上大同小異。
Merkle Tree 的原理
在理解 Merkle Tree 之前,最基本的先備知識是 hash function,利用 hash 我們可以對資料進行雜湊,而雜湊後的值是不可逆的,假設我們要對 x 值做雜湊,就以 H(x) 來表示,更多內容可參考:
一次搞懂密碼學中的三兄弟 — Encode、Encrypt 跟 Hash
SHA256 Online
而所謂的 Merkle Tree 就是利用特定的 hash function,將一大批資料兩兩進行雜湊,最後產生一個最頂層的雜湊值 root。
當有一筆資料假設是const leaves = [A, B, C, D],我們就用function Hash(left, right),開始製作這顆樹,產生H(H(A) + H(B))與H(H(C) + H(D)),再將這兩個值再做一次 Hash 變成 H(H(H(A) + H(B)) + H(H(C) + H(D))),就會得到這批資料的唯一值,也就是 root。
本文中使用的命名如下:
root:Merkle Tree 最頂端的值,特色是只要底下的資料一有變動,root 值就會改變。
leaf:指單一個資料,如 H(A)。
levels:指樹的高度 (height),以上述 4 個資料的假設,製作出來的 levels 是 2,levels 通常會作為遞迴的次數。
leaves:指 Merkle Tree 上的所有資料,如上述例子中的 H(A), H(B), H(C), H(D)。leaves 的數量會決定樹的 levels,公式是 leaves.length == 2**levels,這段建議先想清楚!
node:指的是非 leaves 也非 root 的節點,或稱作 branch,如上述例子中的H(H(A) + H(B)) 和 H(H(C) + H(D))。
index:指某個 leaf 所在的位置,leaf = leaves[index],index 如果是偶數,leaf 一定在左邊,如果是奇數 leaf 一定在右邊。
Merkle Proofs
Merkle Proofs 的重點就是要證明資料有沒有在樹上。
如何證明?就是提供要證明的 leaf 以及其相對應的路徑 (path) ,經過計算後一旦能夠產生所需要的 root,就能證明這個 leaf 在這顆樹上。
因此這類要判斷資料有無在樹上的證明,類似的說法有:proving inclusion, proving existence, or proving membership。
這個 proof 的特點在於,我們只提供 leaf 和 path 就可以算出 root,而不需要提供所有的資料 (leaves) 去重新計算整顆 Merkle Tree。這讓我們在驗證資料有沒有在樹上時,不需要花費大量的計算時間,更棒的是,這讓我們只需要儲存 root 就好,而不需要儲存所有的資料。
在區塊鏈上,儲存資料的成本通常很高,也因此 Merkle Tree 的設計往往成為擴容上的重點。
我們知道 n 層的 Merkle Tree 可以存放 2**n 個葉子,以 Tornado Cash 的設計來說,他們設定 Merkle Tree 有 20 層,也就是一顆樹上會有 2**20 = 1048576 個葉子,而我們用一個 root 就代表了這 1048576 筆資料。
接續上段的例子,這顆 20 層的 Merkle Tree 所產生的 Proof ,其路徑 (path) 要從最底下的葉子 hash 幾次才能到達頂端的 root 呢?答案就是跟一棵樹的 levels 一樣,我們要驗證 Proof 所要遞迴的次數就會是 20 次。
在實作之前,我們先來看 MerkleTree 在 client 端是怎麼調用的,這有助於我們理解 Merkle Proofs 在做什麼。
基本上一個 proof 的場景會有兩個人:prover 與 verifier。
在給定一筆 leaves 的樹,必定產生一特定 root。prover 標示他的 leaf 在樹上的 index 等於 2,也就是 leaves[2] == 30,以此來產生一個 proof,這個 proof 的內容大致上會是這個樣子:
對 verifier 來說,他要驗證這個 proof,就是用裡面的 leaf 去一個一個與 pathElements 的值做 hash,上述就是 H('30', 40) 後得出 node,再 hash 一次 H('19786...', node) 於是就能得出這棵樹的 root。
重點來了,這麼做有什麼意義?它的巧思在於對 verifier 來說,他只需要儲存一個 root,由 prover 提交證明給他,經過計算後產生的 root 如果跟 verifier 儲存的 root 一樣,那就證明了 prover 所提供的資料確實存在於這個樹上。
而 verifier 若不透過 proof ,要驗證某個 leaf 是否存在於樹上,也可以把 leaves = [10, 20 ,leaf ,40]整筆資料拿去做 MerkleTree 的演算法跑一趟也能產生特定的 root。
但由 prover 先行計算後所提交的 proof,讓 verifier 不必儲存整批資料,也省去了大量的計算時間,即可做出某資料有無在 Merkle Tree 上的判斷。
Sparse Merkle Tree
上述能夠證明資料有無在樹上的 Merkle Proofs 是屬於標準的 Merkle Tree 的功能。但接下來我們要實作的是稍微不一樣的樹,叫做 Sparse Merkle Tree。
Sparse Merkle Tree 的特色在於除了 proving inclusion 之外,還可以 proving non-inclusion。也就是能夠證明某筆資料不在某個 index,例如 H(A) 不在 index 2 ,這是一般 Merkle Tree 沒辦法做到的。
而要做到 non-membership 的功能其實也不難,就是我們要在沒有資料的葉子裡補上 zero value,或是說 null 值。更多內容請參考:What’s a Sparse Merkle Tree。
實作細節
本節將完整的程式碼分成三個片段來解釋。
首先,這裡使用的 Hash Function 是 MiMC,主要是為了之後在 ZKP 專案上的效率考量,你可以替換成其他較常見的 hash function 例如 node.js 內建 crypto 的 sha256:
crypto.createHash("sha256").update(data.toString()).digest("hex");
這裡定義簡單的 Merkle Tree 介面有 root, proof, and insert。
首先我們必須先給定這顆樹的 levels,也就是樹的高度先決定好,樹所能容納的資料量也因此固定為 2**levels 筆資料,至於要不要有 defaultLeaves 則看創建 Merkle Tree 的 client 自行決定,如果有 defaultLeaves 的話,constructor 就會跑下方一大段計算,對 default 資料開始作 hash 去建立 Merkle Tree。
如果沒有 defaultLeaves,我們的樹也不會是空白的,因為這是顆 Sparse Merkle Tree,這裡使用 zeroValue 作為沒有填上資料的值,zeros 陣列會儲存不同 level 所應該使用的 zero value。假設我們已經填上第 0 筆與第 1 筆資料,要填上第 2 筆資料時,第 2 筆資料就要跟 zeros[0] 做 hash,第 2 筆放左邊, zero value 放右邊。
我們將所有的點不論是 leaf, node, root 都用標籤 (index) 標示,並以 key-value 的形式儲存在 storage 裡面。例如第 0 筆資料會是 0–0,第 1 筆會是 0–1,這兩個 hash 後的節點 (node) 會是 1–0。假設 levels 是 2,1–0 節點就要跟 1–1 節點做 hash,即可產出 root (2–0)。
後半部份的重點在於 proof,先把 proof 和 traverse 看懂,基本上就算是打通任督二脈了,之後有興趣再看 insert 和 update。
sibling 是指要和 current 一起 hashLeftRight 的值…也就是相鄰在兩旁的 leaf (or node)。
到這裡程式碼的部分就結束了。
最後,讓我們回到一開始 client 調用 merkleTree 的例子:
以及 proof 的內容:
前面略過了 proof 裡頭的 pathIndices,pathIndices 告訴你的是當前的 leaf (or node) 是要放在左邊,還是放在右邊,大概是這個樣子:
if (indices == 0) hash(A, B);if (indices == 1) hash(B, A);
有興趣的讀者可以實作 verify function 看看就會知道了!
原始碼
TypeScript from gist
JavaScript from tornado-core
參考
Merkle Proofs Explained
What’s a Sparse Merkle Tree?
延伸:Verkle Tree
Merkle Tree in JavaScript was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有1部Youtube影片,追蹤數超過7萬的網紅Ryan Wu,也在其Youtube影片中提到,[送你書] 我從「數位形象力」中學到的3種個人品牌經營策略 Instagram | @ryanwu4444 https://instagram.com/ryanwu4444 Facebook https://fb.com/ryanwu4444 Email [email protected]...
「johnson演算法」的推薦目錄:
- 關於johnson演算法 在 Taipei Ethereum Meetup Facebook 的最佳解答
- 關於johnson演算法 在 台灣物聯網實驗室 IOT Labs Facebook 的最佳貼文
- 關於johnson演算法 在 Facebook 的最佳貼文
- 關於johnson演算法 在 Ryan Wu Youtube 的最讚貼文
- 關於johnson演算法 在 Re: [問題] Johnson跟reweighting - 看板Prob_Solve 的評價
- 關於johnson演算法 在 任兩點之間的最短路徑-Johnson's algorithm - YouTube 的評價
- 關於johnson演算法 在 [算法][图论] 约翰逊Johnson 算法全源最短路 的評價
- 關於johnson演算法 在 秋收季節/臉書reels到底要怎麼符合演算法啦 | 花東縱谷國家 ... 的評價
- 關於johnson演算法 在 [請益] 關於Dijkstra SSSP alg.的小問題 的評價
- 關於johnson演算法 在 [理工] 104 成大演算法- 看板Grad-ProbAsk - PTT網頁版 的評價
johnson演算法 在 台灣物聯網實驗室 IOT Labs Facebook 的最佳貼文
用 AI「復活」已故親人,微軟最新專利獲批准
作者 雷鋒網 | 發布日期 2021 年 01 月 28 日 8:30 |
2020 是足以讓人銘記的一年,因為帶走太多珍貴生命。1 月 27 日截至上午 8 時,新冠肺炎全球確診人數突破 1 億,死亡人數超過 214 萬人。
逝去的生命無法挽回,但科技是否能幫助失去親人的人們彌補遺憾?近日微軟通過名為 AI 聊天機器人的專利申請。根據專利描述,AI 聊天機器人可模仿逝者與親人即時互動和聊天。
重現《黑鏡》,與過世親人對話
英劇《黑鏡》「Be right back」這集,女主角瑪莎的新婚丈夫艾許死於車禍,巨大的悲痛之下,她登錄朋友推薦的某網站,開始與網路虛擬丈夫對話。
她沒想到的是,網路艾許的說話口氣、聊天習慣都和真的艾許非常接近。後來他們開始語音通話,再後來瑪莎甚至照著虛擬艾許的指導,把丈夫組成實體機器人。
這種科幻劇情或許不久的將來就會成為現實。
微軟專利目的便是創造艾許版 AI 聊天機器人,能透過語音和文字與人類對話。
2017 年微軟正式申請專利,並於近日通過,專利主要發明人是達斯汀·艾布拉姆森(Dustin Abramson)和小約瑟夫·約翰遜(Joseph Johnson Jr.) 。
據他們介紹,AI 聊天機器人透過個人圖像、語音數據、社群媒體發文、電子資訊及其他類型的資訊大數據分析,盡可能模仿亡者生前性格、特點及語氣。某些情況下,甚至可使用圖像和影像創建人物 3D 模型增加互動真實感。
據專利描述,用戶可使用手機、電腦或 Alexa、Siri 等語音助理與過世親人聊天或表達關心。機器人的回應取決於輸入的數據。
如果交談時,用戶的問題沒有可回答的依據,AI 系統可基於「人群感知」和「心理數據」給予邏輯上可能的回答。
AI 背後,還需注意倫理風險
將過世者轉為數位化的想法並不新鮮。如邁克·傑克森去世 5 年後,透過全像投影還原技術,出現 2014 年告示牌音樂頒獎典禮,並表演新單曲《Slave to The Rhythm》。
同樣地已故音樂巨星惠妮·休士頓(Whitney Houston)也將透過全像投影技術在今年舉辦歐洲巡迴演唱會。
另外,美國明星詹姆斯·迪恩(James Dean)去世整整 64 年,近日也透過 AI 特效完成電影《尋找傑克》的拍攝。
相比之下,微軟的專利有些不同,是首次以「社群媒體數據」創建過世者的 AI 機器人。
照微軟專利說明,AI 聊天機器人不僅能模仿過世者,只要有足夠文字、語音和圖像,還能模仿朋友、明星、虛構人物、歷史人物,或任何實體人類。
但這必然會造成道德和法律問題。
如沒有明確許可,過世者的數位隱私權要怎麼保護?如何界定個人數據和圖像的使用權限?如何確保合法使用,是否會像 Deepfake,出現假冒現實人物的詐騙或造假事件?
不過技術專利距離實現還有一段距離。
面對種種倫理問題,微軟 AI 程式負責人 Tim O’Brien 也表示,目前還沒有任何明確計畫可將演算法付諸實行。
資料來源:https://technews.tw/2021/01/28/microsoft-patent-details-tech-that-could-turn-dead-people-into-ai-chatbots/
johnson演算法 在 Facebook 的最佳貼文
#葉郎每日讀報 #一週大事版
#本週以舊文更新代替週報
─────────────────
「這些電影的成功總是基於兩個元素:
好的故事,以及完善的執行。不是明星,
不是特效,不是勞師動眾,不是不惜
工本,更不是一窩瘋的熱潮」
—— Jeffrey Katzenberg
─────────────────
/ 說明:本文前半來自2020年1月20日原載於端傳媒的「短片平台 Quibi可以在串流大戰殺出生路?迪士尼武俠顛覆電影產業的未竟之夢」一文,後半則更新了 Quibi 在半年內快速殞落的下半場故事。Jeffrey Katzenberg 的N度創業仍然充滿了好萊塢電影的戲劇性(和90分鐘演完的規格),就算要跌倒也要是史詩級的華麗一跤 /
今年1月8日,年近70的 Jeffrey Katzenberg 站上拉斯維加斯的 CES 消費電子展的舞台介紹他最新創業作——短片串流平台 Quibi 時,他心裡一定百感交集。
近30年前這名年輕激進的片廠主管被迪士尼毫不留情地攆出大門,憤恨的他把接下來的人生全耗在用夢工廠動畫來向迪士尼報仇。30年不到,那個他一直想扳倒的好萊塢巨人如今已走到了另外一個混屯未明的十字路口,面臨外來者 Netflix 侵門踏戶的鯨吞蠶食。
而這一回,終於輪到 Katzenberg 這個片廠外的流浪劍客,率領包含他的終極死敵迪士尼在內的幾大門派聯手出擊,企圖用Quibi這個激進的新商業模式,讓好萊塢在勢不可擋的串流宇宙中找到存活之路。
從來不選容易題目的 Jeffrey Katzenberg 不論第N次轉職似乎全是同一個職涯命盤,故事大綱永遠都是 Katzenberg 對抗整個世界。
這就是 Disney 最傳奇性的離職員工 Katzenberg 的故事:
馬三 vs. 宮寶森
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
這場丟人現眼而且代價高昂的迪士尼清宮內闈大戲本來是完全可以避免的。
只要1994年4月3日正在度假滑雪的迪士尼總裁 Frank Wells 的直升機沒有撞上山壁,只要這個迪士尼第二號人物還好好的活著,迪士尼宮廷就不會出現要命的權力空白進而引發一場讓整家公司倒退十年的慘烈宮鬥。
墜機事件隔天天才剛亮,迪士尼第三號人物 Jeffrey Katzenberg(時任 Disney Studio 主席)已經坐在辦公室等候迪士尼第一號人物執行長兼董事長 Michael Eisner 打電話來通知他被拔擢為總裁。
Katzenberg 辦公桌上的電話一整天都沒有響過。
Eisner 和 Katzenberg 早在 Paramount 時期就是關係非常親密的師徒,Eisner 被 Roy Disney(Walt Disney 的姪子)挖角到迪士尼進行集團改造大業時,第一個念頭就是要徒弟 Katzenberg 跟他一起投靠迪士尼。報到上班第一天,師傅向徒弟介紹迪士尼環境之後,指著窗外另一棟迪士尼動畫製作部門的大樓對他說:「對了,那個也是你要搞定的難題。」
從來沒有碰過動畫片的 Katzenberg 奇蹟般地帶領迪士尼動畫走出了 Walt Disney 過世後連續十多年的低潮期,並用《The Little Mermaid 小美人魚》和緊接著的《Beauty and Beast 美女與野獸》、《Aladdin 阿拉丁》等動畫電影實現了 Walt Disney 生前一直夢想完成的願景:一個不只是給小孩子而是給所有人的動畫產業。
意氣風發的 Katzenberg 隨後也開始監管迪士尼多年來一直上不了軌道的真人電影製作部門。
2020年此時此刻不可一世的迪士尼執行長兼董事長 Bob Iger 和 Marvel Studio 總裁 Kevin Feige 這組人物的關係,其實就是1990年代前後重新擦亮迪士尼招牌的 Eisner/Katzenberg 組合的翻版。Eisner/Katzenberg 剛赴迪士尼報到時迪士尼年營收只有3.2億美元,十年後的1994年迪士尼營收是48億美元。沒有師傅的慧眼和授權,也不會有徒弟的大展身手。但是外頭開始傳出有點刺耳的說法:有華爾街分析師說迪士尼連年股價大漲的功勞應該有八成都歸功於 Katzenberg,連Newsweek 都出現 Katzenberg 是「整家公司最有價值的人」的說法。
Katzenberg 小時候大概沒有看過韓信的歷史故事,沒有想過功高震主的下場。江湖謠傳他甚至曾自稱是「Walt Disney 再世」,讓最後一個參與集團經營的迪士尼家族成員 Roy Disney 大為光火。
Katzenberg 甚至也沒好好上莎劇那堂課,未能記取馬克白的教訓。他聽取了另外一個業界長輩、唱片大老 David Geffen 的「職涯輔導」,決定化被動為主動,用更激烈的方法表態爭取迪士尼第二號人物迪士尼總裁的職務,企圖成為執行長兼董事長 Michael Eisner 的正式接班人。於是他(也可能是他的老友 Geffen 擅作主張)透過紐約時報和華爾街日報放話說:Katzenberg 不幹了。
「老猿掛印回首望。關隘不在掛印,而是回頭。」Katzenberg 試圖以退為進逼宮,沒料到惱怒的師傅 Michael Eisner 根本不給他機會回頭。
墜機事件兩個月後,迪士尼正在歡慶《The Lion King 獅子王》爬上那個史上從來沒有任何動畫電影登上過的賣座山頭。一路領導動畫團隊的Disney Studio 主席 Jeffrey Katzenberg 正式被掃地出門。
史瑞克 vs. 瓦力
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
接下來的劇情進展則更接近莎劇中年老愚蠢的李爾王:
Jeffrey Katzenberg 的背叛讓迪士尼執行長兼董事長 Michael Eisner 大受打擊,開始沈溺於一種集羞愧、悔恨、憤怒於一體的複雜情緒,並嚴重影響他作為專業經理人的判斷能力。
Eisner 統治下的迪士尼開始由盛轉衰。Eisner 火速重金禮聘CAA超級經紀人 Michael Ovitz 來替補被他攆走的徒弟。經常被媒體捧為好萊塢最有影響力人物第一名的 Ovitz 一手掌握各種明星演員和導演的人脈資源,卻根本沒有製片和片廠經營的任何 know-how。迪士尼付出的慘痛代價是14個月後還要支付1.4億美元的天價請 Ovitz 滾蛋(損失之高甚至還因此被迪士尼股東告上法院)。
這還不是這場迪士尼宮鬥所帶來的最大財務損失。Jeffrey Katzenberg 本人的資遣費在歷經難堪訴訟之後,合計讓迪士尼付出了2.7億美元的代價(其中還不含昂貴的訴訟費)。
要記得 Katzenberg 去迪士尼報到那年迪士尼年營收才3.2億,這2.7億資遣費等於十年前迪士尼年營收的85%。讓迪士尼全公司上上下下更為震驚的是,Katzenberg 完全沒有浪費時間,立刻把這筆資遣費拿去籌組一家新片廠來跟迪士尼打對台。
據說 Katzenberg 離職消息曝光的第一時間,Microsoft 的財務長立刻打斷 Bill Gates 的會議建議他出錢成立片廠給 Katzenberg 經營。但 Katzenberg 婉拒了,他寧願選擇用迪士尼的錢進行復仇大業。Katzenberg 找來了剛剛賣掉唱片公司的 David Geffen 一起創業,Geffen 則又點名剛剛以《Jurassic Park 侏羅紀公園》和《Schindler’s List 辛德勒的名單》登上事業高峰的 Steven Spielberg 一起投資。「我跟他說我們這幫人終其一生都在替片廠打工,是時候該搞一家我們自己的片廠了」Katzenberg 如此說服 Spielberg 上車。好萊塢睽違五六十年來第一家新片廠「夢工廠 DreamWorks SKG」終於在復仇的背景音樂中轟動成立。
1994年成立的夢工廠成為一場甜美但艱辛的夢。SKG三巨頭也沒能一起撐到最後,來自唱片業的 David Geffen 很快就被電影業的大起大落嚇到,不久就淡出經營。十年後 Steven Spielberg 主導的夢工廠真人電影部門脫手賣給了 Katzenberg 的老東家 Paramount。但這筆交易不包含製作過《Shrek 史瑞克》和《How to Train Your Dragon 馴龍高手》等經典動畫的動畫部門。Katzenberg 堅持把動畫部門夢工廠動畫獨立出來,自己再繼續苦撐十多年,以便繼續跟另外一個老東家迪士尼纏鬥到底。直到2016年夢工廠動畫才以高得出人意料的38億美元價格賣給 NBCUniversal,結束了他向迪士尼復仇的未竟之業。
值得玩味的是夢工廠的失敗原因其實就藏在 Jeffrey Katzenberg 的迪士尼職業生涯裡。
1991年,Jeffrey Katzenberg 發了一封題為「世界已在劇變:對我們家生意的幾點檢討(The World Is Changing : Some Thoughts On Our Business)」的信給迪士尼全公司主管(包含他的老闆 Michael Eisner),表達他對於公司和好萊塢未來的惴惴不安。
「《Pretty Woman 麻雀變鳳凰》、《Ghost 第六感生死戀》、《Home Alone 小鬼當家》這些大受歡迎的電影告訴我們一個屬於1990年代的教訓:排除掉那些一時熱潮和過度行銷的干擾,到最後社會大眾終究還是會自己找到那些他們真的想看的電影。這些電影的成功總是基於兩個元素:好的故事,以及完善的執行。不是明星,不是特效,不是勞師動眾,不是不惜工本,更不是一窩瘋的熱潮」他在信中說。
在還沒有 Facebook、Twitter 甚至 Email 都還沒普及的年代,這封長達28頁的紙本信快速透過傳真機的尖銳噪音在好萊塢掀起了一波聲浪。媒體搶刊全文協助散佈 Katzenberg 對好萊塢模式的質疑,尤其特別指名道姓批評Warren Beatty那部昂貴而對迪士尼完全沒有效益的超級英雄電影《Dick Tracy 狄克崔西》。
這封信引發的風波後來被導演 Cameron Crowe 改編成為運動經紀人電影《Jerry Maguire 征服情海》的劇情:電影中 Tom Cruise 也寫了類似的信批判整個行業,並寄給全公司的主管和同事分享,最後導致自己被開除。真實世界中,Jeffrey Katzenberg 和他的老闆 Michael Eisner 開始有嫌隙的起點也是這封信。
Katzenberg 或許始終沒有注意到夢工廠的失敗理由根本就白紙黑字寫在信中:
他強力質疑明星制過度發展對好萊塢有害,真正有價值的是編劇,編劇才是片廠應該多多花錢投資的對象。然而因為拍攝成本超出預期、票房起伏太大、還有2000年以後的 DVD 市場崩解,此外又沒有像其他家大業大的片廠有各種業外收入來分攤風險,腳步蹣跚的夢工廠動畫一直要到《史瑞克》出現之後才開始勉強站穩,但 Katzenberg 從頭到尾仍舊花了大量預算在邀請明星參與動畫配音。放眼好萊塢真正做到以劇本為中心、全職養創作者寫劇本的公司,正是 Katzenberg 的死對頭迪士尼旗下的皮克斯 Pixar。《Coco 可可夜總會》的 Lee Unkrich、《Up 天外奇蹟》的 Pete Docter 、《Wall-E 瓦力》的 Andrew Stanton 都是皮克斯的全職員工,這些迪士尼 / 皮克斯長期投資的創作者才是夢工廠動畫在競爭中不斷吃鱉的原因。
歷史的因緣際會是:迪士尼的第一份皮克斯發行合約,正是當年充滿遠見的 Jeffrey Katzenberg 還在職時親自去和皮克斯董事長 Steve Jobs 簽下來的。
30年後他那洋洋灑灑28頁的信仍是足以顛覆好萊塢的真知灼見,只是最後真正達陣的人不是他而已。
好萊塢 vs. 全世界
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2016年8月22日夢工廠動畫完成交易的那一天,才是 Jeffrey Katzenberg 意義上真正從迪士尼「離職」的那一天。二十年來第一次,Katzenberg 再也不用馴龍、再也不用救世、再也不用搶救費歐納公主。他終於可以在他的迪士尼復仇劇中下台一鞠躬。
結果,不按牌理出牌的他這時候竟然來了一手「老猿掛印回首望」,回頭去了一趟迪士尼。
舊地重遊之日,他的師傅/仇敵 Michael Eisner 早已退休。Roy Disney 過世之前幾年在董事會聯合其他股東發動突襲,逼Eisner讓出他早已不適任的董事長一職。如今坐在執行長兼董事長位置上的是電影史上最成功的片廠經營者 Bob Iger。
於是師兄 Katzenberg 在會議上給了師弟 Bob Iger 一個他無法拒絕的 Offer。
直到週三的CES發表會上,這個由迪士尼、福斯、華納、索尼、NBC環球、維康Viacom、高盛銀行、JP摩根銀行、阿里巴巴等投資人集資十多億美金的神秘新公司才正式揭露他們野心勃勃(但短短的)的計畫:Quibi。
WTF is Quibi? 該公司的Twitter帳號甚至選了這個充滿挑釁意味的帳號名稱。
「我們的任務是讓你隨意咬一口(quick bites)卻得到驚人的好故事。」Katzenberg 在CES的舞台上解釋 Quibi 這個字的由來。
Quibi 不是 Netflix,不是 Disney+,不是 Apple Tv+,也不是後來才上線的 HBO Max。Quibi是針對手機用戶的短片串流平台,專門鎖定你的通勤、午休或是在沙發上滑手機的零碎時間,提供一集不超過十分鐘並以好萊塢電影規格製作的精緻戲劇節目、實境秀和新聞氣象等資訊節目。
為了展示決心,他們甚至宣示只會提供手機平台的 APP,所以使用者如果想要在大螢幕上收看必須自己使用裝置上的 Airplay 或是 Cromecast功能來投放。更重要的是 Quibi 的內容將會是第一個專為手機直式螢幕提供原生內容的平台。創作者必須同時使用直式和橫式構圖的兩台攝影機同步拍攝,並透過演算法將畫面結合成為一個十字形的畫面傳輸給使用者,做到不論直式收看或和橫式收看都不會有任何黑框,同時又可以在使用者把手機轉向時讓影片畫面即時無縫轉向,有如黑魔法。
除了偵測手機水平之外,他們還試圖在節目中置入其他手機功能,比如配合節目內容讓手機鈴聲響起,或是會依據 GPS 偵測你所在地時間藉以推出天黑之後才能看的恐怖節目。
為了和 YouTube、抖音、Instagram 上面的素人網紅經濟對抗,Quibi 將以每分鐘10萬美元的製作費,製作每年約8500集的精緻節目。已經加入 Quibi 陣營的包括 Steven Spielberg、J.J. Abrams、Guillermo del Toro、Sam Rami、Antoine Fuqua 和 Ridley Scott 等導演,以及 Dwayne Johnson、Kevin Hart、Jennifer Lopez、Liam Hemsworth、Idris Elba、Zac Efron、Tina Fey 、Dave Franco 和 Bill Murray 等明星。
Quibi 這個新品牌之所以能集結這麼驚人的陣仗,除了 Jeffrey Katzenberg 自己在迪士尼和夢工廠的多年人脈之外,更重要的是他們察覺了串流時代對內容的強烈需求已經讓創作者更加重視著作權歸屬的議題,Quibi 因此提供了 Netflix 或是 HBO 絕對開不出來的合作條件:除了在 Quibi 上播出七年之外,其餘著作權完全歸屬於創作者,因此他們在其他平台可以有額外收入。
面臨擁擠而血腥的串流大戰,Quibi 試圖另開戰場、殺出生路。這絕對不是容易的事,Vox 旗下的科技媒體 The Verge 因此在 CES 的專題報導中以 “Quibi vs. The World” 來形容這條不尋常的路徑。
到頭來,Katzenberg 的故事終究是一個武俠故事。
在電影將死、電視將死,而且通通將死於手機和 Netflix 夾殺的世紀科技變局之下,曾被迪士尼逐出師門的 Jeffrey Katzenberg 站出來統一好萊塢各大門派,提出一個殺出重圍的激進構想:不如我們放下各自的詠春拳、形意拳、八卦拳、64手之類的舊功夫,發明一套新的。
一百年來電影一直就是一門「如何吸引觀眾眼光」的生意,但這家百年老店早已沒有年輕人的俐落身手來應對觀眾和媒介的頻繁招式變化。 Quibi 是第一次由電影從業者主動提出的原生媒介規格,而不是「電視來了」我們就想辦法在電視上放電影,「DVD 來了」我們就想辦法在 DVD 上放電影,「網路來了」我們就想辦法在網路上放電影之類的被動作法。
從來不選容易題目的 Jeffrey Katzenberg 的解題口訣:放下舊成見、接受新媒介、繼續講好故事。
Quibi vs Covid
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
然後就像一部90分鐘長的標準好萊塢電影,Quibi 的故事在199天之後就戲劇性地收尾 ......
生不逢時的 Quibi 上週無預警地宣佈將自12月1日起停止運作,並在出售現有的技術和內容等資產後解散公司,將剩餘的資金退還給股東。Quibi 以主打 10 分鐘以內的精緻內容而且可以直立觀看為號召,並有先後經營過 Disney 和 Dreamworks 等片廠的 Jeffrey Katzenberg 擔任董事長, 以及先後當過 eBay 和 HP 執行長的 Meg Whitman 擔任執行長,然而最終仍在6個月內迅速玩完。這兩位好萊塢資深玩家(Whitman 也是 Disney 畢業生)在對股東的信件中表示:「我們的失敗並不是出自於不夠努力。而是我們評估認為真的已經用盡所有可能的選項。」
Katzenberg 在上週的一場訪談中重申他過去兩三個月說過很多次的結論: Quibi 失敗的主因是他們原本鎖定通勤時間的利基市場,但突如其來的疫情讓此時此刻每個消費者都受困沙發上,根本沒有人在通勤。
他坦承過去三週他們已經用盡各種方法尋求策略投資夥伴、願意收購的買主或是其他各種財務上的支援,但全部都踢到鐵板。他們認為再繼續撐下去結果也不會改變
娛樂產業媒體 IndieWire 認為 Quibi 則分析說 Quibi 鎖定的短片市場原本就有 YouTube、Vimeo、TikTok 和 Snapchat 等等免費而且永遠看不完的影片。而該串流服務孤注一擲地押寶在通勤之後(甚至一開始App還沒有投放到電視上的功能),更造成該公司後來求售非常困難。接連被各個片廠甚至 Apple 和 Facebook 拒絕收購,就是因為鎖定行動端的 Quibi 換到非行動市場上就難以顯現價值。
財經媒體 Bloomberg 引述 S&P 分析師 Naveen Sarma 的分析:每一個平台都需要吸引人的內容來讓新訂戶上鉤,並繼續用大量的內容留住他們。而萬一沒有達到目標,就必須要口袋夠深的母公司拼命搬資金來支援前線。Quibi 原先預估他們製作的175個節目會有8~10個可能會中。要命的是不僅一個節目都沒有中,而且他們的 App 甚至無法讓使用者截圖來製作病毒式擴散必備的迷因。然後再回去跟富爸爸們伸手要更多金援支持時之所以會一毛錢都要不到,是因為 Disney 或是 WarnerMedia 這些片廠當時投資心態並非覺得 Quibi 會中,只是純粹為了避免 Qubi 中了之後自家集團會面子無光而花點錢買張保單而已。
另外一家財經媒體 Forbes 提到 Quibi 其中一個豪賭是他們打破傳統電影電視的版權歸屬遊戲規則,讓其他平台的一切版權歸屬於創作者,而 Qubi 要的只有在自家平台的權利。這當然是一種吸引大量明星創作者參與的談判利器,但也是一種長期經營上的豪賭。Qubi 賭行動裝置端的需求會非常強烈,所以這些他們出錢製作的內容上頭的所有商業價值都會在他們自家平台上耗盡,因為所有消費者都會訂閱 Quibi,而不會等未來的其他二級通路上架。他們錯了。
科技產業媒體 TechCruch 認為 Quibi 從一開始就注定失敗,因為與其努力做功課、尋找市場上已經成功的短片模式,Jeffrey Katzenberg 寧願用好萊塢的老方法——把20億美元盡可能用在砸大錢買明星和導演來增加平台賣點 。最終 Apple+ 和 Quibi 等等串流大戰新玩家都是用同一個姿勢華麗跌跤,因為兩家都一樣花了大錢製作新節目,卻欠缺觀眾早已熟知的舊內容片庫來吸引觀眾上門。
值得玩味的是,把時間倒回到1991年 Jeffrey Katzenberg 發給 Disney 員工的那封信中,正是一再強調不要迷信明星的魔法。Katzenberg 用標題為 "Tracy, Tracy, Tracy" 的一整個章節苦口婆心地解釋讓 Disney 自傲的漫畫電影《狄克崔西》其實是一場完全被明星誤導的失敗。他強調「如果點子跟故事足夠強悍,任何一部電影都不需要仰賴特定的表演者就可以大獲成功」,因此希望員工在演員酬勞的談判桌上努力達到這個目標。
30年後,不知道 Katzenberg 是否改變了上面的想法?
抑或者等塵埃落定後,他會終於替大家修訂這封改變好萊塢歷史的信——「世界已在劇變:對我們家生意的幾點檢討(The World Is Changing : Some Thoughts On Our Business)」。
就像當年他在信中說的:「這是與眾不同的行業。即便不在行業裡頭的人都可以感受到這件事。這就是為什麼他們不只熱衷於看電影,而更執著於想要理解電影產業背後的運作」,我們迫不及待想要知道好萊塢的成功是如何成功、失敗是如何失敗。
「他們想要知道我們是怎麼創造魔法」Katzenberg說。
********************
Katzenberg 在正式發佈 Qubi 收攤消息的前一天,在跟員工的視訊會議中,」難掩情緒激動地要 Quibi 員工去聽 DreamWorks Animation (Katzenberg 近年才剛剛賣掉的公司)的電影《Trolls 魔髮精靈》中 Anna Kendrick 唱的主題曲
Quibi 準備資遣所有員工並支付資遣費。事實上 Katzenberg 也說之所以會選擇這麼早就解散公司,最主要的理由就是因為他覺得目前就業市場越來越艱難,有義務儘速協助員工趕快找到新東家,不要耽誤人家的大好人生。
這個戲殺青了,就投身到下一個故事裡。
「現在,就讓我們重新回到繪圖板上,回到最根本的工作裡頭」Jeffrey Katzenberg 在 1991 年那封給 Disney 員工的信中如此作結。
johnson演算法 在 Ryan Wu Youtube 的最讚貼文
[送你書] 我從「數位形象力」中學到的3種個人品牌經營策略
Instagram | @ryanwu4444
https://instagram.com/ryanwu4444
Facebook
https://fb.com/ryanwu4444
Email
RealRyanWu@gmail.com
Line@
http://ryanwu.tv/lineat
[線上講座] 運用FB, IG, YouTube找到更多客戶
https://www.kolformula.com
[線上講座] 如何利用FB建立第二份收入
http://ryanwu.tv/gig
[線上講座] 新直銷方法 - 如何利用社群網路建立10倍大的線上組織
https://www.jointrw.com
電台節目 - RW創業實驗室
http://ryanwu.com.tw/podcast1
電台節目 - TRW直銷革命軍
http://ryanwu.com.tw/podcast2
#社群行銷 #個人品牌 #數位形象力
數位時代,你不定義自己,別人會自動為你貼標籤,
現在就動起來,搶先往最好版本的自己前進!
★在數位時代,完全不經營個人品牌,是大大的劣勢
作為網紅,廠商會藉網路了解一下你過往的言行,決定是否提案合作;
作為求職者,雇主可能會先查看你的FB、Twitter,判斷要不要請你來面試;
作為追求者,曖昧對象或許會搜尋帳號和貼文,思考你們適不適合更進一步;
作為社群小編,則必須時時注意品牌的「發言」是否和「形象」一致;
這些關鍵時刻,任何雜亂無章、缺乏管理的數位形象,
都可能會讓我們錯失寶貴的工作機會、人際關係,甚至引爆公關危機。
辛西亞‧強森認為,我們在線上所做的每一件事、建立關係的每一個對象、效力的每一家企業,都無可避免地會成為「個人品牌」,數位時代更是大幅增強個人品牌對生活的影響力。如果你不好好建立和管理,便等於拱手讓旁人替你塑造,失去自己對未來的主控權。
每個人都可以打造個人品牌,不只限於有資源和有人脈的少數人。有了可以立足的「平台」,你就能自己發聲,達成人生目標,創造事業新高峰,甚至成為讓世界變得更好的一股助力。
★本書中你將學到:
● 如何了解自己目前的數位形象?
● 型塑個人品牌的四大元素為何?
● 別問「如果有很多人追蹤,我能得到什麼好處?」,要問「如果別人不再追蹤我,他們會有什麼損失?」
● 每篇動態你都是在跟三個對象溝通:自己、對方及程式演算法。
● 如何用合作賽局理論增加有效的追蹤人數。
名人推薦
行銷大師 賽斯‧高汀盛讚!美國亞馬遜讀者★★★★★5顆星推薦!
Ryan Wu 吳冠宏(社群行銷專家)、于為暢(個人品牌事業教練)、林長揚(簡報教練‧懶人包設計師)、梅塔(《自媒體百萬獲利法則》作者)、許景泰(SmartM世紀智庫執行長)、黃大米(暢銷職場作家)──盛情推薦
含金量太高的一本書!打造個人品牌是我過去幾年來做過最有價值的一件事,如果你也想利用個人品牌,將生活、事業帶到下一個層級,本書會是你最好的指導手冊!──Ryan Wu吳冠宏/社群行銷專家
你若不懂得如何經營自己,人生等同在倒退。個人品牌是你此生唯一值得梭哈的事情,不是你想不想的問題,而是處在現今社會必要的求生心態。──于為暢/個人品牌事業教練
你覺得你在別人眼中是什麼樣子?如果你不想被別人草率的定義,經營個人品牌就是重要且緊急的事情;如果被貼標籤是在所難免,何不為自己設計個喜歡的標籤?──林長揚/簡報教練、懶人包設計師
我非常鼓勵大家透過自媒體持續經營內容,這是一本強化升級自己的個人品牌的經典實用書,非常推薦!──梅塔/《自媒體百萬獲利法則》作者
社群時代,每一個人最好的履歷表、最有價值的投資就是打造「個人品牌」!個人品牌早已不限於少數網紅、明星、藝人專屬的權利,個人品牌的影響力、主導權,已在無處不連網的當下,釋放到各領域了。──許景泰/SmartM世紀智庫執行長
johnson演算法 在 任兩點之間的最短路徑-Johnson's algorithm - YouTube 的推薦與評價
Sequencing Problem | n job 2 machine sequencing Problem | Johnson Algorithm | operation research ... 圖解 演算法 :Dijkstra 找尋最短路徑| 貪婪法| 圖 ... ... <看更多>
johnson演算法 在 [算法][图论] 约翰逊Johnson 算法全源最短路 的推薦與評價
约翰逊Johnson 算法全源最短路对于最短路问题,我们的常用算法是Dijkstra 算法或Bellman-Ford 算法。但这两个算法经常解决的是单源最短路问题。 ... <看更多>
johnson演算法 在 Re: [問題] Johnson跟reweighting - 看板Prob_Solve 的推薦與評價
先說很可能會講錯,這是自己看書慢慢理解的,並不掛保證
p.s 書是補習班講義 洪捷 的 演算法-名校攻略秘笈 p.4-55 範例7
※ 引述《mqazz1 (無法顯示)》之銘言:
Johnson的演算法那部分 有這個圖
https://ppt.cc/1(V; 最左邊的那個node是新加入的node
然後有一些問題
1. 如何及時發現,原graph有negative cycle ?
如果我回答,跑n次Bellman-Ford,發現有新的node被relaxtion,這樣算及時嗎
時間複雜度為 O(|V|) , 應該可以吧, 這題我無法明確回答你, 我也不知道及時的定義
2. 上面那個圖,新加的一node造成新的graph,是否會產生新的negative cycle ?
negative cycle 定義為 整個 cycle 路徑總長為負值
而新加的點都指向其他點, 不要說負值了, 連cycle都沒有
3. 上面那個圖,新加的node作用是在做甚麼? 不加可以嗎?
演算法是天才想的,天才說要加,就得加...
Johnson's algo 的步驟如下 (節錄 算法-名校攻略秘笈 p.4-56)
1. 加一個點 s,到其他點均有 edge,其上 weight 為 0。
(s均指向其他點,所以一定不會因為加s與其邊產生cycle)
2.執行Bellman-Ford演算法,
若無負cycle,則記錄每一點的h(v)為自s到v之shortest path 長。
3.對每一個edge做reweight如下: w'(u,v) = w(u,v)+h(u)-h(v)。
4.對每一個點執行Dijkstra's algotithm。
其實Johnson's algo重點就是在於reweight
讓每個edge為正值,這樣就絕對不會有negative cycle
而加node只是有個基準點吧
p.s 如果你有書,你可以參考 p.4-57 ex9, 用來解不等式, 感覺蠻方便的
--
其實我是來賺P幣的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.66.93
... <看更多>