📜 [專欄新文章] Unirep介紹: 使用ZKP的評價系統
✍️ Ya-Wen Jeng
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Unirep是什麼? 怎麼用?
Photo by Raphael Lovaski on Unsplash
UniRep 是一個使用零知識證明(Zero-knowledge Proof)而達到具有隱私保障的評價 (reputation) 系統。使用者有權利享有多個暫時性的身份,但又同時能提出證明,讓其他人可以驗證評價是否符合自己宣稱的數量。此外,使用者也無法拒絕接收對自己不利的評價。
想像一個情境:如果Alice是Airbnb的使用者,Alice常常透過Airbnb租房,且Alice曾經獲得獲得許多Airbnb房東的好評;有一天Alice想透過Booking.com訂房,http://xn--alicebooking-kt4so6lvyab96x7trhi5b54x.com/,所以在Booking.com上沒有任何評價,萬一Booking.com的房東不想把房子租給來路不明的客人,那Alice要如何向Booking.com的房東證明她其實都是用Airbnb租房,且獲得許多好評?
Alice雖然可以透過截圖或公開自己的資訊向Booking.com的房東證明自己擁有這些好評,但這樣Alice的隱私或許會被洩漏,例如Alice不想讓Booking.com的房東知道自己去過哪些地方、住過哪些民宿;或者Alice有可能偽造截圖,或者偽造評價,那Booking.com的房東要如何相信Alice所提供的證明文件是真的來自Airbnb的房東?除此之外有沒有更彈性的方式,Alice可以選擇性地向Booking.com的房東證明,自己至少有10個好評,但不透露自己總共有多少好評?
Photo by Andrea Davis on Unsplash
使用Unirep協定就可以解決這個問題。UniRep 取名自 Universal Reputation,希望透過區塊鏈上智能合約的可互用性 (interoperable,指智能合約容易被多方呼叫且容易透過智能合約與對方互動),讓不管是Airbnb的房東、Booking.com的房東或是Alice都能很容易地透過Unirep的智能合約與對方互動,且透過零知識證明的方式,讓Alice的評價具有隱私的保障,Alice不用明確地向Booking.com的房東說這些評價是怎麼獲得、是什麼時候獲得,也可以彈性的證明自己至少有多少好評,或者最多有多少差評。
密碼學
Unirep主要用到的密碼學方法有
雜湊函數 hash:若有一個雜湊函數 f(x) = y 則由x可以很輕易的用f算出y,但從y推回x是幾乎不可能的,且要找到兩個不同的x對應到相同的y也是幾乎不可能的(沒有碰撞問題)。
零知識證明 zero-knowledge proof:可以將複雜的運算邏輯轉成容易驗證且具有隱私保障的驗證問題,使用者只要將變數輸入,這個零知識證明的演算法就會產生對應的證明且計算出對應的結果,使用者只要將此證明和運算結果輸入驗證的程序中,其他人就能驗證使用者是不是提出正確的證明,若驗證成功,則驗證者就能相信提出證明者高機率擁有正確的知識,也就是在計算證明時的輸入變數。
ZKP Proof System
ZKP Verification System
Semaphore:semaphore 是設計為可以用零知識證明驗證的身份認證系統。Unirep 中用來產生私鑰 (identity) 和公鑰的 hash 值(identity commitment),讓使用者不必公開 identity 仍能透過零知識證明驗證其公私鑰的對應性。
雜湊樹 Merkle trees:Unirep 中大量運用雜湊樹的方式確保評價紀錄,而其中用到的雜湊樹又分兩種:Incremental merkle tree 和 Sparse merkle tree
Incremental merkle tree: 從 index 0 開始依序插入雜湊樹中的樹葉。為了使 ZKP 的 circuit 大小固定, Unirep 中使用固定高度的 Incremental merkle tree。
Sparse merkle tree: 在特定的 index i 插入樹葉
Incremental merkle tree and sparse merkle tree
UniRep中用到的名詞定義
Epoch
指一段特定的時間,例如7天
UniRep 的 Epoch 從 1 開始計算,7天過後Epoch數加一,即 Epoch 變為 2
Epoch Key
每個使用者在每個 Epoch 都能產生 n 把 Epoch key,用來收取評價 epoch_key = hash (id, epoch, nonce)
id: 這裡指用 semaphore 產生的 identity
epoch: 表示這是在第幾個 epoch 產生的 epoch key
nonce: 若 Unirep 規定使用者能在一個 epoch 產生 5 把 epoch key,則使用者可以選從 0 到 4 為此 nonce
因為雜湊函數的性質,算出來的 epoch key 很難推回原本的 id, epoch, nonce, 所以看到 epoch key 並不能推回使用者是誰。
以Alice為例,當Alice住完Airbnb,房東會透過 epoch key 給予 Alice 評價,但房東無法知道 Alice 在同個 epoch 的其他 epoch key 是哪一把,也無法知道 Alice 在別的 epoch 獲得的評價,除非 Alice 在這個 epoch 重複使用同一把 epoch key 收取評價。
User 使用者
用 semaphore 產生 identity 並使用此 identity 註冊的使用者
使用者是接收評價、證明評價、或是花費評價的人,用 epoch key 跟其他人互動,因為 epoch key 會隨著 epoch 增加而改變,所以對使用者來說每個 epoch 能產生的 epoch key 都不同,具有保護隱私的效果。
在上面的例子中使用者指的是 Alice, Bob, Airbnb 的房東, Booking.com的房東
Attester 證人
用 Ethereum address 或 smart contract address 註冊的用戶
是會被使用者記錄下來的評價給予者
Unirep 會給這些 address 一個 attester ID,而這個 attester ID 不會隨著 epoch 增加而改變,使用者可以知道這個評價是來自哪一個 attester。
在上面的例子中指的是 Airbnb 跟 Booking.com,因為 attester ID 不變,所以使用者可以證明這些評價是來自於 Airbnb 或是 Booking.com
User State Tree (UST)
是一 Sparse merkle tree
每個使用者都有自己的 User State Tree,其中樹葉表示所收到的評價的hash值,而葉子的 index 表示 attester ID,UST 樹葉的定義為
USTLeaf = hash(posRep, negRep, graffiti)
例如 Airbnb 的 ID 是1,Booking.com 的 ID 是 3,那 Alice 的 User State Tree 中 index 為 1 的地方會有自己在 Airbnb 獲得的總評價的 hash 值,而 index 為三的地方則為空的評價。另一個使用者 Bob 的 User State Tree 亦同,在 index 為 1 的地方會有自己在 Airbnb 獲得的評價,在 index 為 3 的地方會有自己在 Booking.com的評價。
Global State Tree (GST)
是一固定樹高的 Incremental merkle tree
Global State Tree 的葉子到樹根都是公開的資訊,當有使用者註冊或者更新 User State Tree 時會在 Global State Tree 裡新增一個新的樹葉,GST 樹葉的定義為:
GSTLeaf = hash(id, USTRoot)
先送出的樹葉先插入到較前面的 index,之後的樹葉依序插入 GST 中。
以 Alice的例子來說,當 Alice跟 Bob註冊 Unirep時,都會產生一個 GST的樹葉,更新 GST的樹根,若 Alice先註冊,則 Alice的 index會較 Bob前面。注意,這邊的 Airbnb 和 Booking.com 等 attester 並不是用這棵 Global State Tree註冊。
Epoch Tree
是一個 Sparse merkle tree
Epoch Tree 跟 Global State Tree 一樣從葉子到樹根都是公開的資訊,Epoch Tree 中樹葉的 index 為 epoch key,而樹葉的值為該 epoch key 的 sealed hash chain
每個 epoch key 都有一個 hash chain,hash chain 的定義為
hashedReputation = hash(attestIdx, attesterID, posRep, negRep, graffiti)hashChain[epochKey] = hash(hashedReputation, hashChain[epochKey])
此 hash chain 是為了防止使用者漏收了哪一筆評價,如果使用者少收了其中一筆評價,則 hash chain 的結果會完全不同。最後驗證時如果其中一個 epoch key 的 hash chain 改變,會造成 epoch tree 樹根跟原本的 epoch tree 的樹根不同。
而 Sealed hash chain 是在每個 epoch 結束後,Unirep 智能合約會再將這條 hash chain 再 hash 一次
sealedHashChain[epochKey] = hash(1, hashChain[epochKey]) isEpochKeyHashChainSealed[epochKey] = true
需要再把這條 hash chain 封起來的用意是,避免這把 epoch key 過了這個 epoch 之後再繼續接收評價,所以 epoch tree 會用這個 epoch key 最後的 sealed hash chain 去計算樹根。
Nullifier
中文翻譯為註銷符,當我們要防止一件事情重複發生時,就可以使用這個 Nullifier
Unirep 中使用到 Epoch key nullifier:此 nullifier 是用來限制使用者不能在不同的 epoch 使用重複的 epoch key 去收取評價,也不能被其他使用者使用;此外也可以用來檢視使用者是否重複執行 UST 的更新
Nullifier 也用 hash 計算,但多使用一個 domain 變數,避免與 epoch key 產生相同的 nullifier 而洩露自己擁有的 epoch key,也可以用不同的 domain 產生不同用途的 nullifier
epochKeyNullifier = hash(EPOCH_KEY_DOMAIN, id, epoch, nonce)
Epoch Transition
一個 epoch 結束過後,要透過 epoch transition 的步驟,更新 Unirep 及使用者的狀態
其中要做的事包含將智能合約上的 epoch 數加一,還有將所有 epoch key 的 hash chain 封起來
接著使用者就可以執行 User State Transition 更新自己的 UST
User State Transition
到下一個 epoch 後,使用者可以透過自己的 identity,找出自己在前一個 epoch 所有的 epoch key,並根據每把 epoch key 收到的評價更新到自己的 UST,最後計算出最新的評價狀態,產生一個 GST的樹葉,插入 GST 中 (如同註冊時一樣)。
使用者之後如果要花費評價或者產生下一個 epoch 的 epoch key 時,因為必須確認自己的 UST 在當前的 epoch,所以需要經過 User State Transition 確保自己有一個 GST 的樹葉在 GST 中。
Unirep 協定
有了 Unirep 的名詞定義後,接著介紹 Unirep 是如何運作的。
註冊
Unirep 的 user 和 attester 的註冊方式不同:
User signup and attester signup in Unirep
User
User 透過 semaphore 產生 identity 和 identity commitment,identity 就如同私鑰,identity commitment 就如同公鑰
將 identity commitment 和預設的 UST 樹根經由 hash 計算得 GST 的一個樹葉
若使用者要證明自己在某個 epoch 有註冊或者有更新自己的 UST,則證明自己是 GST 的某一個樹葉,利用零知識證明的方法,輸入 identity、UST 樹根,還有 merkle tree 中要計算 hash 值的相鄰節點,則最後可得到一個 GST 的 root,其他人可以驗證這個 GST 的 root 是否符合這顆公開的 GST。
Attester
Attester 則是用自己的錢包,或者用智能合約的地址註冊,呼叫 attester sign up 的 function 後,Unirep 會指定一個 attester ID 給這個地址,往後 attester 用相同錢包或合約地址給予評價時,Unirep 會檢查此地址是否被註冊,若有註冊則可以給予 epoch key 評價。
以 Alice 和 Bob 為例,Alice、Bob、Airbnb的房東、Booking.com的房東會產生 identity 並且透過 Unirep 合約用 user 的註冊方式獲得一個 GST 的樹葉代表自己;
而 Airbnb 和 Booking.com 會透過 attester 的註冊方式,使用特定的錢包地址或是撰寫智能合約呼叫 Unirep 的 attester sign up function。
當然 Alice 或 Bob 如果想用自己的錢包註冊為 attester 也是可以,這時合約就會紀錄 Alice 和 Bob 的錢包地址,並給予一個新的 attester ID。
給予評價
在 Unirep 中評價的接收者是 epoch key,接著介紹 user 和 attester 是如何互動。
How an attester gives reputation to an epoch key
Alice 在 Unirep 註冊過後,就可以產生 epoch key 接收評價
epochKey = hash(identity, epoch, nonce)
但 Airbnb 的房東看到這把 epoch key,要如何知道 Alice 確實是 Unirep 的合法使用者,且 epoch key 的 是合法的,例如 nonce 小於 5,或者 epoch 是當前的 epoch?
如果 Alice 直接提供 epoch 和 nonce,別人沒有 identity 也無法計算此 epoch key,更不用說如果 Alice 提供 identity 會造成 Alice 完全沒有隱私可言,所有人都可以計算出 Alice 收過哪些評價。
因此我們用一個零知識證明,證明此 epoch key 是合法的。細節請參考 epoch key proof,主要是證明使用者有一個合法的 GST 樹葉在 GST 中,並且 epoch 和 nonce 也都符合。
房東得到 Alice 提供的 epoch key 和 epoch key 的證明,並且透過 Unirep 的合約驗證通過之後,就可以給予評價。
獲得空投評價、使用者可以給予評價的限制可以由各個應用自行定義,例如 Airbnb 可以決定空投 30 個正評給使用者, Booking.com 可以決定空投 20 個正評給使用者。
另外,為了確認房東也是合法的使用者,也為了防止房東重複花費 (double spending) 自己的評價點數,Unirep 上的應用也可以用 reputation nullifier 及其 proof 去證明使用者合法使用自己的評價。
例如,此 reputation nullifier 可以用下列計算方式取得:
reputationNullifier = hash(REPUTATION_DOMAIN, id, epoch, nonce)
當 reputation nullifier 及 proof 產生後,就會與房東要給的評價一起發送到 Airbnb 的智能合約上,智能合約會驗證 proof 是否合法,nullifier 是否有被發送過,若檢查都通過的話則 Unirep 會紀錄此評價給 epoch key,並將 hash chain 更新。
接收評價
使用者即使可以證明自己擁有哪一把 epoch key 並且大家都知道這把 epoch key 有多少評價,但這有可能造成使用者故意忽略其他把 epoch key 中對自己不好的評價,因此 Unirep 限制使用者只能在每個 epoch 結束,每把 epoch key 都封起來之後,才能用 User State Transition 更新自己的評價。
User State Transition in Unirep
這裏也是用 User State Transition Proof 去保證使用者是根據正確的方式計算出最新的 UST,且用 epoch tree 限制使用者必須處理每一把 epoch key 的結果。
亦即,需要等到 epoch 結束後,Alice 才能透過 User State Transition 獲得 Airbnb 房東的評價,更新自己的使用者狀態。
證明評價
當使用者通過 User State Transition 之後會有最新的 UST 狀態,此時 Alice 就可以透過 reputation proof 向 Booking.com 她有來自 Airbnb 的評價,在reputation proof 中檢查使用者是否有其宣稱的 UST (例如總共有多少好評、多少差評來自哪一個 attester ID),並且此 UST 的狀態儲存在當前 epoch 的 GST 中。
在生成 reputation proof 時,即使 Alice 總共有 100 個好評,但 Alice 仍可以產生「至少有10個好評」的證明,Booking.com 的房東若驗證成功,則只能知道 Alice 宣稱的「至少有 10 個好評」而不能知道 Alice 總共有 100 個好評。
常見問題
Alice 能不能給 Airbnb 的房東評價? Alice 能不能給 Bob 評價?
可以。
Airbnb 的房東和 Bob 也都能產生 epoch key,因此如果 Alice 有兩者的 epoch key 及合法的 proof 則可以給予評價。此時 Alice 可以選擇透過 Airbnb、Booking.com、或甚至自己的 Ethereum account 當作證人給予評價 (也必須選擇一個證人)。
Alice 可以透過 Unirep 給 Airbnb 評價嗎?
如果 Airbnb 也透過 Unirep 註冊為使用者,並且產生 epoch key 的話就可以。但如果 Airbnb 只註冊為證人的話不行。
Alice 可以證明評價來自哪一個 Airbnb 房東嗎?
如果 Airbnb 的房東沒有註冊為證人,則 Alice 不能證明評價來自哪個房東。
若 Airbnb 的房東用自己的 Ethereum account 註冊為證人,則 Alice 只能證明評價來自這個 Ethereum account,但無法知道這個 account 是一個 Airbnb 的房東。
從 Airbnb 獲得的評價可以在 Booking.com 花費嗎?
需看 Booking.com 的智能合約如何定義,但一般來說不行,因為 attester ID不同,但未來可能會開發各個應用程式之間的兌換評價功能。
如果遲遲不執行 User State Transition 會發生什麼事?會不會收不到之前的評價?
若 Alice 在第一個 epoch 註冊,並在第一個 epoch 產生 epoch key 接收評價,但 Alice 到第五個 epoch 才執行 User State Transition,那 Alice 會根據第一個 epoch 的 GST、epoch tree 執行 User State Transition,因此仍然可以在第五個 epoch 收到來自第一個 epoch 的評價;而在第二到第四個 epoch 因為 Alice 無法產生出合法的 epoch key proof,因此無法接收評價。
User State Transition 可以自動執行嗎?
不行。
只有使用者主動給出私鑰,即 semaphore 的 identity,才可以產生合法的 User State Transition proof,若將私鑰交給第三方幫忙執行可能會侵害使用者的隱私。
結論
Unirep 是一個具有隱私保障的評價系統,透過 ZKP 的保護使用者可以在匿名的情況下收取評價、給予評價、並且向他人證明自己的評價。Unirep 可以用於跨應用程式間的評價證明,可以在 A 應用程式中獲得評價,並向 B 應用程式證明在 A 應用程式中獲得多少評價。若想了解更多有關 Unirep ,可以參考 Github、文件或加入 telegram 群組討論。
本文感謝 CC, Nic, Kevin, Doris 協助審稿。
Unirep介紹: 使用ZKP的評價系統 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有10部Youtube影片,追蹤數超過2萬的網紅狂人JoJo,也在其Youtube影片中提到,Joyce的IG(just_be_joyce) : https://www.instagram.com/just_be_joyce/?hl=zh-tw FB: 邱怡澍Joyce914 誰說台語歌一定都是那個調調 改編完也蠻適合當偶像劇片尾的啦! 台語版一樣很好聽 之前參加過台語歌唱比賽 曾經有人說 ...
第幾個100天 在 Facebook 的精選貼文
[葬禮進行曲]你四十歲人,去過幾多次葬禮?
TLDR :Always Go To Other People's Funerals — Otherwise, They Won't Come To Yours
==============
一週年!月頭訂最抵!比別人知得多。subscribe now(https://bityl.co/4Y0h)。Ivan Patreon,港美市場評點,專題號外,每日一圖,好文推介。每星期6篇,月費100,已經1900人訂! 畀年費仲有85折,20/40年費VIP 送本人著作一本。
==============
1. 而家聲名極臭嘅朱利安尼,講過相當老派嘅人情世故嘢:婚禮呢,其實唔得閒真係未必要去,反正錦上添花,少你一個唔少。但葬禮,雪中送炭,務必要去支持遺屬,多你一個好多。況且,人可以唔結婚,結婚亦可以唔行禮,但總會死。死咗嘅,唔係完全無親友嘅,總會做啲嘢。當然明顯唔係佢發明呢套講法,佢只係在書講,我亦只係聽人講佢本書講
2. 況且葬禮,相當Flexible,流水席,幾時就到時間咪過去,見到遺屬講兩句,望下有冇識嘅人,喜歡嘅好快都走得。
3. 後生嘅朋友寫咗篇文(https://lkdin.io/3VOb),佢剛四十,即係後生我幾年。咁我呢幾年都冇去過葬禮(我記錯嘅請你報夢話我知),所以我四十時嘅數字,同而家一樣。朋友話三個或四個,咁我應該多過佢。你可以計下,去到你四十歲為止,去過幾多個葬禮。未夠嘅?「自己pro rata返」。「當然唔好計咩法治已死香港已死嗰啲一日去幾次嘅」
4. 當中,不存在咩「四十歲人應該去過幾多次葬禮」,正如我不打算研究「四十歲人應該打過幾次飛機/有過幾多性伴」之類。但背後,總會反映到啲嘢。雖然又話人老咗去嘅葬禮多咗,但照計四十歲呢,你同年啲朋友,一般都未死。你去嘅都係長輩之類,細細個都可以去。
5. 朋友話去得少,反映佢毒,冇乜朋友,同屋企人關係惡劣。可能都有啲關係。我都冇乜朋友,同屋企人關係都惡劣(但好似冇佢咁惡劣,真係人上有人)。但仲有好多因素影響,例如你有另一半嘅,往往就去多一倍。
6. 我試下數,我去過嘅葬禮,應該八個?有兩個我好似冇印象有去到,但照計我係有去的。然後寫完呢篇文我就會洗自己腦,十年後我就又變得肯定自己有去。人嘅記憶幾咁唔好可告!況且我地年代唔興「懷念爺爺」咁影響,好似暫時我都冇在殯儀館打過卡。(然後我查返手機app,原來係有!三次!都話記億唔可靠。咁其實殯儀館打卡冇乜嘢。冇人叫你在入面打嘛。)
7. 我父母好早生我,老母今年62,老豆64.兩個都唔食煙(老豆N年前食,戒咗好耐),所以根據大數法則,健在嘅機會比較大。咁你估到,八個之中佔咗四個嘅,就係阿爺阿麻,阿公阿婆,全數釘蓋,好合理。
8. 我嘗試排序,雖然未必太準。但,頭兩次應該最震憾,冇經驗嘛,況且細個(雖然都十歲以上),有啲驚的。
9. 第一個死嘅,係我阿公,我讀緊小學,四五年班咁上下?嗰時放學成日同老婆出去瑪嘉烈探病。應該係九龍大酒店?冇玩咩破地獄嗰啲,但都真係都仲係一回事,去足全程,同學校請假的。冇守夜,或者有人有但我冇份。阿公印象都多,細個在石圍角村,拎佢本不文集睇,佢又會帶我飲西茶,西多士冇餡嘅年代,幾咁美好。星期六佢睇賽馬,我就睇中間插播嘅大力水手,或者德國波。不過死嘅人太多,不能個個講好詳細
10. 之後係我阿爺,更加親近。冇錯係我出世時已經著咗草去台灣嗰個,堅稱自己冇收片但又走咗佬嗰個。但我有記憶時,佢已經返咗香港做返老正,當然亦唔見有乜錢(聽聞在台灣敗晒)。阿爺嘅感覺,就係唔係幾好老脾,但又唔係會打我嗰種,都係慈祥嘅。但又不過,我完全不能將佢同差佬扯上關係,雖然我一路都知,但總係覺得好似換咗另一個人。阿爺都算死得早,大約我中二三時死咗。嗰時佢臥病在床,我仲在側邊打機,真係不孝。記得佢死前健康當然更差,脾氣亦差,好多嘢唔食得,最記得成日要食田雞—唔係佢要食,係好似唔食得其他嘢。嗰時就開始知道死亡,可以揀真係長痛不如短痛,但邊度你揀?我唔相信阿公或阿爺咁選擇。當然佢地亦未去到話受好多痛苦,或者吊住好耐咁。阿爺最後死在大陸,唔知返去搵神醫定換腎定乜鬼。就係記得解穢酒食過「黃埔炒蛋」,記得阿麻好似幾風騷。唔知係因為照顧病人好累丫(咁阿爺病重時都真係好臭脾氣),定係拎咗唔少錢。冇錯,阿爺到底有幾錢遺產,去咗邊,都係大家扯貓尾,永遠冇真相,有人話根本冇,有人話去咗我阿麻度,有人話去咗我老豆度(應該都有啲),總之冇一仙去過我度。
11. 講咗咁耐先兩件,加快速度。見到嘛?阿公阿爺死先,佢地老婆反而擺耐好多。咁好合理,一來女人長命過男人,二來佢地娶老婆都揀後生,阿公更加係再娶,所以阿婆未咁快。由我中二定中三(1992?),打後十年,好似都冇再去過葬禮。阿婆幾時去架呢?慚愧,我都真係唔係好記得。細個當然都有啲感情,但後來阿婆已住老人院,咁大家知,慢慢就少深,我就更加少去 —唔好記嗰時我已經高中或者大學,有自己多姿多彩嘅生活,主要係溝下女做下愛咁,點都好玩過去老人院吧?你反對嘅,我同你交換。直到而家,我都唔記得阿婆幾時死,甚至唔記得我有冇去佢葬禮(希望阿婆唔好上嚟留言話:仆街仔!你死我都未死呀!),但合理地假設,應該總有出現下?當埘我同我老母關係未咁惡劣,佢叫我去我應該會去。不過又諗下,實情阿婆唔係佢親老母(都話再娶),至於我老母親母,我冇見過的,好早死咗。
12. 然後,又好似一輪高峰,嗰幾年去較多。我阿麻死咗,好似十年前多啲?留意佢最後就住在我而家住嘅地方,佢瞓廳(唔通我瞓?況且床架高,佢爬唔到)。事實佢臨終前幾年,都係同我一齊生活嘅。我係咪喪盡天良?都未完全係嘅。有時都會慚愧,冇陪佢多啲。佢健康尚好時,都試過我返工拎漏嘢佢拎去中環畀我(!),又或者我要帶女返屋企搞嘢時,醒一百蚊畀佢落去飲茶(唔係點?)。
13. 無論如何,當時已經有Facebook,亦係比較深刻嘅。當時係年尾,阿麻之前健康並唔特別差,即係長命病嗰啲當然有,但佢話唔舒服入醫院時,都仲係自己執嘢自己叫車。佢去醫院時我都探過下佢,都仲係幾健康。但話咁快。有一日我老母打嚟,就同我講,「你阿麻走咗啦」。我想講,我老母當時在屯門醫院返工,阿麻亦都住屯門醫院,我真係以為佢嘅走咗係出咗院,然後佢先話我知。當時我在公司,仲係十分搏命嘅分析員,我甚至諗緊使唔使放工先去,好似有上Facebook出post,甚至諗係咪要坐的士之類。無論如何最後就坐的士,去到叫做見佢最後一面(已香,但仲在床上,明啦)。
14. 往後嘅事,好多人都聽過。見完最後一面,不過係午飯時間咁上下?我返咗屋企瞓(分析員嗰時七點幾就返到公司,我係摸黑出門的)。然後?我去咗旺角。做乜?睇戲。同埃汾太睇戲。睇嗰套戲,叫做《3D娜塔莉的情人》,聲稱係全世界第一套3D韓片,條韓妹好靚,又好波,我都冇深究係咪整,有乜關係?
15. 我走咗去睇《3D娜坦莉的情人》(https://bityl.co/8Hsd),非常之卡繆,非常之《異鄉人》。我甚至應該係因為睇咗《異鄉人》先會咁。成件事我已經唔係好記得。我上一次寫文,係講「咁買咗飛丫嘛,唔通唔睇,點預到佢咁啱嗰日死」。但,我諗返件事唔係好合情理,首先嗰個年代,我好似仲唔多興網上買飛。之但係又不過,如果我唔係一早買咗飛,照計我唔會特登出旺角睇戲?Anyway同埃汾太睇完,就梗係上床啦。都話十分之《異鄉人》(正因如此,如果我冇買飛,點會特登出旺角?唔係叫埃汾太返屯門會簡單啲?留意我午飯已經返咗屯門)。第二日,我照樣七點半返到公司。冇能力的人嘛,唯有早返工。
16. 埃汾太當然都見過阿麻,食過好多次飯,當然都有去葬禮,不過遺憾阿麻冇機會見到我成婚。亦冇機會同我影畢業相。當然遺憾係佢嘅遺憾,我先唔理呢啲嘢。咁而結婚亦冇可能特登就阿麻,況且當時亦唔知佢就死,佢都唔知自己咁快死。但畢業相嘛,理論上可以就老人家嘅,不過事實上港大行畢業禮時我已去咗英國,英國行禮時我又返咗香港,而我又唔會唔係正日自己搵套衫同勞蘇影相咁
17. 第幾個?數完第四個。然後第五個,我老豆老婆(非我老母,但亦唔係「後母」,都冇一齊生活過,正如我老母老公我都唔會叫「後父」,佢出現時我都中七啦大佬),其實時序上早過我阿麻,但舖排上好似應講晒麻爺公婆先。實在件事有點複雜,我亦都唔係好想講。當然唔係死者嘅問題,又唔係我問題,係顧及下其他人感受。話說我老豆老母,在我阿爺死後就好似離咗婚,冇因果關係,但時間大約係咁。我老母再嫁但冇小朋友,我老豆再娶,生多咗件,所以我有個同父異母嘅妹,不過比較少提,亦唔係十分熟。但講時講,我老豆呢個再娶嘅對象,廿年前左右就死咗,自殺的,燒炭,成件事十分震憾。當時係我大學畢業後,去英國之前,我在老豆公司過下日晨(係佢返工嘅公司,唔係佢開間公司咁爽)。佢都有講另一半抑鬱症呀之類,然後事發當日我甚至係同佢一齊在公司的,不過冇同佢一齊返去破門,嗯,成件事都幾震憾,所以我都唔係好想講太多。佢嘅葬禮我有冇去?我估應該有吧?(我同死者關係並不差,反正都唔會成日見到,亦冇啲啲咩「你拆散咗我屋企」嘅憤恨,畢竟真係冇人拎支槍迫我老豆有婚外情的,對不?)
18. 第六個,我外母。同樣地,涉及其他未死嘅人不講太多。當時我已經結咗婚,當然係有去葬禮的。不過講真,結婚冇耐外母就去咗,一直都唔係太多交集,同外父就多啲。外交仲係好健康,日日炒股票,大家有心。
19. 第七八個,算唔算特別少少?第七個係恐龍,冇錯,就係叫恐龍。中學同學嘅大學同學,成班一齊玩,稱不上極之好朋友,但至少會私下傾計兩個人食飯咁。點死的?自殺。我仲記得佢在甚麼教堂定乜做後事,平日嘅夜晚,我仲要一半走咗出去同倫敦鬼定美國鬼conference call講港交所。嗰時嘅工作真係十分困身。真係搞搞下嘢在時鐘酒店 conference call又有,聽聞有人一路conference call一路被吹蕭(唔通幫人吹咩),無從證實,但唔係我。亡友好多金句,被其他朋友拎出嚟講,例如嗰句「呢啲我愛你呀會結婚呀,性行為嘅潤滑劑嚟啫,唔想講嘅咪去樓下買支KY,雖然凍啲但效果唔爭太遠」,好多人以為係佢創作,實情係我話佢,佢發揚光大的。
20. 如果我冇記錯,亡友好似細我兩年,副作用就係我在英國返嚟香港後,仲會借用佢啲大學戶口做各樣嘢,例如上呢個 data base搵工.我最記得,好似嗰時佢畢業我未搵到工,佢都有安撫我,同我講,「唔緊要,一個恐龍倒下,仲有竹萬萬隻恐龍」—講嘅係佢細佬仲讀緊大學。不過後來我冇用到恐龍二號,放心,我搵到工,佢都搵到,佢死時我都差不多離開金英了,好似2012年前後?
21. 多得電話,我都仲保留住同佢最後嘅message(當然唔知佢自殺),就係我推介完元朗嘅煲仔飯,佢覺得好正。就係咁。後來我都仲成日去,都會諗起佢,雖然我同佢冇一齊食過。
22. 最後一個,你可以話「最不重要」,但亦係性質上完全唔同。工作上嘅……前輩?唔係我本書鳴謝嗰幾個,但係嗰堆人。亦都係自殺,相當震驚。佢不算同我極熟絡(雖然我在倫敦出trip佢都打畀我有嘢搵我救火),亦唔算直接幫咗我極多嘢(咁當然都有啲)。但始終係個慈祥嘅長者,亦係業界有啲聲望嘅人。壇嘢都搞得幾大,俗啲講句,生前好友們幫佢風光大葬,算係極度榮哀?未致於好似「大時代」咁,但的確見到一啲猛人,甚至會同我講「佢都有提起你」。
23. 我記得應該係英國脫歐公投嗰年(冇錯,相入面嗰次,睇返日子正係公投之後嗰日),就係我最後一次去葬禮,就係呢位前輩。我嗰日不停心諗,到底葬禮係咩回事?係畀邊個睇(當然係畀生嘅人睇),係為咗表達大家對佢懷念?定係話畀大家知,第時你死咗大家都會咁對你?
24. 總之,都係嗰句,Always Go To Other People's Funerals — Otherwise, They Won't Come To Yours
25. 冇乜特別,都唔算寫得特別好,甚至差過我朋友,「都幾大鑊」,只係留個紀錄。另外,關於葬禮,寫過篇舊文,原來都未夠一年前。舊文就寫得幾好(https://fbook.cc/3Z0d)
26. 不過有個講法,一個人死兩次,最後一次有人提起佢地先係真正死。咁以上呢啲故人,我又幫佢地續一續命咁,個感覺好似泊車餵錶咁。以前仲有個紅色旗,十分有實感。
==============
一週年!月頭訂最抵!比別人知得多。subscribe now(https://bityl.co/4Y0h)。Ivan Patreon,港美市場評點,專題號外,每日一圖,好文推介。每星期6篇,月費100,已經1900人訂! 畀年費仲有85折,20/40年費VIP 送本人著作一本。
==============
第幾個100天 在 許許兒-打點屬於你的裝扮日常 Facebook 的最讚貼文
{大讚許許兒寬褲}
可以像是仙女
也可以帥帥
本體是隱藏版的辣妹(笑)
偶爾試試看其他類型的風格混搭挺好
試穿新品 #月亮潮汐波浪洋裝 (8.4中午12:00上架)
真的是好美好美
不管雨天晴天都是仙女
就算昨天沒洗頭也是仙女
哈哈哈(所以戴個帽子一切都沒事)
本體更漂亮
除了設計美之外(撥髮)
這些擺度和線條真的好完美
還有!大家都要去買這條褲子
拜託你們 #吉爾格子週末寬管長腿褲
看起來又高又瘦
高腰把肚子都收起來
想要當小辣妹也完全沒問題
背心來自好友 暖活習作:一起學習過生活
引進的加拿大品牌 visual mood
混著搭配更是另一種風景
因為奧運燃起了運動的熱情
每日觀賽都是喝采
在各方面獲得好成績
喜歡這次比賽裡所有選手的笑臉
不論獲得第幾個名次
你們都是台灣人心裡的冠軍
謝謝你們
在疫情之中帶來預告下半年的光采
看著全力以赴
螢幕這端的我們也感受到這份熱力
嗚嗚嗚嗚
每天都覺得身為台灣人是幸福是驕傲
小島國家的美
可愛謙遜又強大的站在世界舞台上
#吉爾格子週末寬管長腿褲 https://lihi1.com/Tjikx
#JOSIE削肩上衣 -夜影黑 https://lihi1.com/QT4Pm(8.2收單)
-
新朋友加入獲得$100購物金
IG加入 第一手限時動態在這裏 @xuxuwear
#許兒官方Line 2.0 ID:@xuxuwear
#台北中山沐光店 LINE ID : xuxuweartp
台北市大同區赤峰街49巷6號
#高雄鹽埕散步店 ID:xuxuwearkyc2
高雄市鹽埕區新樂街125號
第幾個100天 在 狂人JoJo Youtube 的最佳解答
Joyce的IG(just_be_joyce) : https://www.instagram.com/just_be_joyce/?hl=zh-tw
FB: 邱怡澍Joyce914
誰說台語歌一定都是那個調調 改編完也蠻適合當偶像劇片尾的啦!
台語版一樣很好聽
之前參加過台語歌唱比賽
曾經有人說 你長得比較適合去唱國語歌 :D
不知道唱台語歌或是唱國語歌的人都該長怎樣
台語歌或許總是給人老一輩的人在聽的感覺
但是改編之後我覺得其實音樂才不被語言所限制
改成台語一樣很有感覺~
-
這次從混音 錄製 拍攝 剪輯 全部一手包辦 (是說哪次不是:D 一直以來都是)
新手從教學影片上一點一滴的學習也算是蠻有成就感的
要完成cover其實也沒那麼困難 如果不要那麼完美症候群其實一天就可以完成
但我就是聽了又聽 總是不滿意
所以前前後後錄了好幾次
總共錄出快要100個cut 並交叉剪輯這首歌才完成的
或許沒有非常完美 但已經很有成就感了
btw我覺得這首歌好適合"你的婚禮"這部電影的情節
反正要怎樣討厭一首歌 翻唱就可以啦
因為你會聽它千百次 :D
-
這個故事告訴我們
1.如果你要討厭一首歌
除了把它設成鬧鐘 你還可以cover它!
因為真的聽到爛掉了 一開始很喜歡 但現在有點恐怖 :D
2.網路是會迷惑人心的
你在youtube上聽到那些好聽的cover
可能都是一句一句錄好多次錄出來
或是百萬調音師
由於我只是菜鳥 所以我根本沒調甚麼東西(我不會啊QQ)
-
最後徵求有興趣之後一起cover一起玩音樂的人
我真的沒很懂 但就是喜歡選一些喜歡的歌來唱
歡迎有興趣的人一起合作 :D
-
封面照感謝@凱納視覺攝影
-
改編歌詞
分手後第幾個冬天
今天是好天氣
有時會想起你
看到你給我的批信
我一直沒勇氣
接受你的離開
所有人攏替你歡喜
我怨嘆命運創治
原來你的心早到不跟我佇同位
感謝你乎我勇氣
來見證你的愛情
我後悔為啥當時 沒堅持
我抱著祝福未來的心情
看到他用心的布置
我知影這是你夢想的情景
我卻不佇你身邊
我看著你的相片
想起著咱的愛情
我猶原不願相信 失去你
足久不見你對我很客氣
講一句我也祝福你
原諒我勇氣不夠先離開
我沒講的話是
猶愛你
不知不覺鐘聲響起
你守候在原地
等待著他靠近
溫柔的他單膝跪地
鑽戒緩緩戴進
你的無名指裡
當所有人都替你開心
我卻才傻傻清醒
原來我們之間已沒有任何關係
感謝你特別邀請
來見證你的愛情
我時刻提醒自己 別逃避
今天你妝扮得格外美麗
這美也曾擁在懷裡
可惜這是你和他的婚禮
而我只是嘉賓
我放下所有回憶
來成全你的愛情
卻始終不願相信 這是命
說好的永遠變成了曾經
我試著衷心祝福你
請原諒我不體面沒出息
選擇失陪一下 先離席
又不是偶像劇
怎麼我演得那麼入戲
這不堪入目的劇情
感謝你乎我勇氣
來見證你的愛情
我後悔為啥當時 沒堅持
我抱著祝福未來的心情
看到他用心的布置
我知影這是你夢想的情景
我卻不佇你身邊
我流盡所有回憶
來慶祝你的婚禮
卻始終沒有勇氣 祝福你
謝謝你送給我最後清醒
把自己還給我自己
至少我還能夠成為那個
見證你們愛情的
嘉賓
#嘉賓 #改編翻唱 #台語版 #女版 #你的婚禮 #不遺憾 #張遠 #路飛文 #cover # 蔡恩雨 #Priscilla Abby

第幾個100天 在 Bai Tone白懂 Youtube 的最讚貼文
因為發現影片有一個小地方有失誤!所以下架重新修改!這支影片就是教大家快速簡單的學會78首情歌!人人都可以是吉他王子😁
Ps:為了彌補失誤!提供三包Elixir吉他弦給大家抽獎!抽獎辦法在底下喔!
Ps:裡面的吉他是ayers的黑太陽!不過是試作2號機!不知道以後會不會上市!
白懂蝦皮小賣店:
https://shopee.tw/product/5174911/7905049134?v=b75&smtt=0.0.4
想學吉他請洽張歆
Line ID: snoopy579
抽獎辦法:
活動已結束
訂閱我的YOUTUBE:https://goo.gl/dSyHNt
按讚我的粉絲專業:https://goo.gl/KjtLWq
追蹤我的IG追生活:https://goo.gl/cukw3s
【樂器哪裡買?】帶大家到優質的樂器行走走!
https://www.youtube.com/playlist?list=PLCCeyqmoGXOvCA4UxbMW0IhaCUCz9GQSL
【懂音樂】各式的音樂器材開箱實測!
https://www.youtube.com/playlist?list=PLCCeyqmoGXOvBSsPH_ezHDFRtYwCcNN8Q
【懂生活】想更了解我們?家庭、小孩、日常生活分享!
https://www.youtube.com/playlist?list=PLCCeyqmoGXOtlW80EcNDkV5jEkLjwLKem
【懂玩具】男人的浪漫、兒時的回憶,玩具開箱!
https://www.youtube.com/playlist?list=PLCCeyqmoGXOt1iaH-qUbk2zWwu4LesuIO
【好琴,要懂得分享!】各廠牌吉他的視聽分享!
https://www.youtube.com/playlist?list=PLCCeyqmoGXOv7f10xO1jXitNTZ1RRCEdF
【談彈吉他】為你分享實用有趣的吉他教學!
https://www.youtube.com/playlist?list=PLCCeyqmoGXOuT3PqKM6ZNofKw7B9bztub
4 5 3 6 2 5 1
☆慢冷
☆綠色
☆依賴
☆藍雨
☆曖昧
☆大眠
☆走馬
☆心牆
☆擱淺
☆其實
………………………………
☆演員
☆他說
☆天分
☆淘汰
☆紳士
☆說謊
☆答案
☆好不好
☆對的人
☆想自己
………………………………
☆關鍵詞
☆期待愛
☆剛剛好
☆我要你
☆手掌心
☆起風了
☆南山南
☆愛存在
☆董小姐
☆甜甜的
………………………………
☆青花瓷
☆明明就
☆第三人稱
☆只能勇敢
☆微加幸福
☆夏天的風
☆我們的歌
☆方圓幾里
☆清明雨上
☆邊走邊唱
………………………………
☆愛的潮水
☆修煉愛情
☆你的背包
☆失落沙洲
☆下個路口見
☆123我愛你
☆岩石裡的花
☆算什麼男人
☆有一種悲傷
☆我的歌聲裡
………………………………
☆突然好想你
☆最長的電影
☆手心的薔薇
☆第幾個100天
☆永不失聯的愛
☆你還要我怎樣
☆說好的幸福呢
☆蒲公英的約定
☆以後別做朋友
☆你不知道的事
………………………………
☆我真的受傷了 整
☆寂寞來了怎麼辦
☆莫名其妙愛上你
☆那些年很冒險的夢
☆我不願讓你一個人
☆一個人想著一個人
☆Forever love
☆always online
6級結束
捲煙
泡沫
父親
浪流連
動物世界
等一分鐘
三寸天堂
我們不一樣
天使的翅膀
別說沒愛過
4536251
453645451
啞巴
醉赤壁
三人遊
班馬 4536256
4536251
知足4536251
45364455
日不落 45364536
25112511
…………………………………
猜不透 4536215
453大6251
白天不懂夜的黑
一路向北
4536253(大)6
4536251
剪輯軟體:
Adobe Premiere Pro
#學吉他
#吉他教學
#吉他初學
#吉他彈唱
#吉他入門

第幾個100天 在 NewShowBiz完全娛樂 Youtube 的最讚貼文
#可惜沒如果 #曹操 #第幾個100天
完全娛樂
更多偶像獨家請訂閱完全娛樂YouTube頻道→ https://www.youtube.com/user/SETShowBiz?sub_confirmation=1
