📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
同時也有3部Youtube影片,追蹤數超過15萬的網紅豐富,也在其Youtube影片中提到,主持人:楊應超 第一季-第6集:拿保險當投資好嗎? 節目直播時間:週五 14點 本集播出日期:2020.10.16 ⏭ 章節: 00:00 頻道片頭 00:07 開場 00:29 節目片頭 00:47 拿保險當投資好嗎? 14:04 Q&A:早投資和晚投資的分別 21:04 請繼續提問:你活著不是...
universal名詞 在 Facebook 的最佳解答
【50美元的Roku電視棒如何成為串流大戰的隱形冠軍】#葉郎串流筆記
過去一年的美國串流大戰,吸引了幾乎每一家好萊塢片廠挾帶著豐富的片庫資源和資金跳下來參戰。一夜之間,串流這個 DTC 通路(direct to consumer 直接面對消費者)成為好萊塢的唯一王道,而原先需要拆分近半數票房給電影院的間接通路儼然已經成為過去式。
不過所謂「direct to consumer 直接面對消費者」是個不盡然精確的詞彙。
即便透過網路串流傳輸內容,這些內容生產商從未真正「直接面對消費者」。不論目前的市場領先者 Netflix 或是 Disney、Warner、Universal 和 Paramount 等片廠通通無法掌握 DTC 市場的「最後一哩路」,而仍須透過一個其貌不揚的小裝置來使消費者與他們的內容產品產生關聯。那個小裝置正是和 USB 隨身碟差不多大小的電視棒。
這根要價50美元左右的棒子默默地成為2021年串流大戰第二回合的隱形冠軍......
對電視機上盒品牌 Roku 的創辦人 Anthony Wood 來說,過去一年的經驗完全不可思議。他一手創辦的公司雖然在疫情初期股價微幅跌到八十多美元一股,但接下來一整年的雲霄飛車卻讓 Roku 股價一路狂飆四倍,甚至一度以每股四百多美元直逼串流王者 Netflix 的地位。
Roku 實際上是前一次創業失敗所衍生的產品。因為後來這一次是 Anthony Wood 第6次創業,因此才以日文6的讀音 Roku 為名。
1990年代時才三十歲上下的 Anthony Wood 對於只能用使用體驗非常糟糕的錄影機錄下他最喜歡的電視節目《Star Trek: The Next Generation 銀河飛龍》感到非常不滿意。差不多在 Reed Hastings 開始他那個小小的錄影帶出租事業 Netflix 的同一時間,Anthony Wood 開始投入研發一個即將改變所有人的電視體驗的劃時代產品—— DVR 數位錄影機。
1999年1月 Anthony Wood 的數位錄影機 ReplayTV 和他的最大競爭對手 TiVo 同時在拉斯維加斯的 CES 消費電子展正式發表。雖然日後以低價搶市贏得大部分市場並且成為數位錄影機代名詞的是 TiVo,但 Wood 的 ReplayTV 稍後祭出一個真正革命性的大絕招——跳過廣告功能,讓電視觀眾許願了半個世紀的癡心妄想終於實現。
在電視機開始在美國普及的初期,好萊塢片廠曾因為擔心觀眾流失而反對政府將無線電視台定位為免費收看的大眾媒介。有趣的是後來以廣告為主要收入的電視台則是和好萊塢片廠站在一起,向政府鼓吹反對錄影機進入市場,認為錄影機會同時使電視台和電影院的觀眾流失。
稍後日本錄影機廠商曾利用錄影帶音軌的靜音偵測技術(節目本身會有配音的雙語音軌,廣告時雙語音軌變成靜音),來實現讓觀眾重看自己錄下的電視節目時可以自動快轉跳過廣告。一如以往地電視台和好萊塢片廠兩大陣營再度聯手圍攻錄影機廠商,認為這個功能會降低他們的廣告收入。
因此日後 Anthony Wood 的數位錄影機 ReplayTV 推出跳過廣告功能時,也理所當然地引來氣得跳腳的電視台和好萊塢片廠,聯手將生產 ReplayTV 的這家公司告到破產。
現在推想,Anthony Wood 應該會從這堂創業失敗的課堂上學到兩個教訓.......
下文還有 Roku 如何用 Netflix 不敢賣的機器來接住剪線潮掉下來的果實,並用免費收看的節目成為2021年美國串流大戰第二回合戰事的隱形冠軍。全文刊載於 Inside 新專欄「葉郎串流筆記」。
全文由此去:
https://bit.ly/3g61BTs
universal名詞 在 StoryTeller 說故事 Facebook 的最佳貼文
#音樂故事:【開燈熄燈】
「如果痛苦是失去的代名詞,是否只有放低才可以不痛苦?」
房間裡漆黑一片,只有那盞微微亮著的床頭燈,照亮我眼前的電腦屏幕。
臨睡前,在床頭打開電腦寫日記,是我多年來的小習慣,每晚如是。
不過,自從五郎離開之後,我每寫一次,心也要再經歷一次絞痛的過程。
五郎,是我給家貓所改的名字。也沒甚麼特別原因,只是覺得這個名字,跟牠笨拙的外貌很有反差。
五郎不喜歡太光亮的環境。只要房間變得燈火通明,那怕是我正在專心工作,五郎也會跳到床上來,用牠凌厲的眼神狠狠盯著我,然後不發一言地跳落床,像鬥氣般將我床頭那盞燈關掉,彷彿是在抱怨著我,為何偏偏要跟牠作對呢?
然而,當我完成手頭上的工作,將房間內的燈光逐漸調暗時,五郎又會從某個角落處,不動聲色地走過來,狀甚不經意地踏過床頭燈的開關掣,將我本來已經逐漸變暗的氛圍,再次點亮一道微弱的光線。
跟一般的家貓無異,五郎平日總是流露著高傲的神態;但每次當我感到寂寞,快要失去動力的時候,五郎卻往往像看穿我隱藏的心事,一股勁地跳上我的睡床。
那些夜晚,五郎會變得特別癡纏,嬌嗲地依偎在我的胸前,然後悄悄鑽進我的被單內,讓我緊抱著牠入睡。
也因為有了五郎的存在,讓我寂寞時份的那些苦水,從此多了一個傾訴對象。或許,五郎根本不明白人類的語言,但從牠安靜地豎起耳朵的動靜,我知道,五郎比起任何一個人,可能還更懂得我。
無數的床頭秘密,不知道五郎可有帶往天上,繼續為我好好保存和收藏?
「是你最記得我是誰/
人類哪有這種登對/
沉默認定 懷內就是終身故居」
這晚,我又再感到一種難以言明的寂寞。房間四周的光線依舊昏暗,只是此刻再沒有五郎陪伴在旁,也沒有牠為我再點起任何光芒。
自從五郎離開以後,只要我感覺到房內有甚麼晃動,眼前總會浮現牠飄盪的身影。仍是那隻偶爾跳脫耍懶的家貓,仍是那隻喜歡對我愛理不理的五郎。
若有所思之際,旁邊的那盞床頭燈,居然又再亮起來。
我以為,這是五郎在遠方感應得到我的心靈。原來,只是一陣微風吹過,打翻了床頭燈旁邊的書冊,將那枚開關掣再次啟動。
我凝視著這盞床頭燈,望向這道打破漆黑的光線,眼眶竟不自覺的通紅起來。
在其他人面前說起五郎,我總能表現得很接受牠已離開的事實,從沒流露過份的悲傷。
然而,我知道自己的內心,其實還沒有真正復原。我多麼希望能像從前那般,在感到孤單失意的時候時,抱緊五郎然後痛哭一場,訴說我對牠是何等的掛念。
對我來說,五郎不只是寵物,更是親人。在微弱的床頭燈光映襯下,我又再忍不住哭了起來。
或許有天,當我找到另外的寄情對象,不再為這個傷口而感覺痛楚時,我就可以坦誠對自己說,已經真正放低了五郎。
我知道這天終會來到,但卻不會是捲進被單裡痛哭的今夜。
「誰人走了/勞煩誰熄燈
誰來給我開燈/
大概擔心我傷感/你未曾過問
以餘生 跟我遊走光暗」
Storyteller: Gin Lee 李幸倪
Text by 講樂.過路人
Illustrator:温家綺 (https://facebook.com/profile.php?id=100000190436831)
👉🏻 一起來聽聽 Gin Lee 的專輯《Dear Secret》 :
https://umhk.lnk.to/DearSecret0F
Universal Music Hong Kong
#沒有你的故事也是你的故事
「StoryTeller 說故事」是一個說故事的平台,也是一個獨立創作單位,連結一群風格獨特的影像及文字創作人,創作各類插畫故事。我們相信故事的力量。歡迎任何合作/品牌推廣,請電郵至info@story-teller.com.hk。
👉🏻Tag us at IG @everyone.is.storyteller to be featured
📮投稿你的故事/藝術作品:https://bit.ly/2FwN6G3
📍參與 StoryTeller 年度展覽及首個期間限定店「The Heart Seekers」
主場館展期 Date:Dec 1- 20 2020
地點 Venue: 2/F PHVLO HATCH(深水埗黃竹街13號|13 Wong Chuk Street, Sham Shui Po)
開放時間 Time: 10:30 – 18:00(Mon - Sun)
#EveryoneisStoryteller
universal名詞 在 豐富 Youtube 的最佳解答
主持人:楊應超
第一季-第6集:拿保險當投資好嗎?
節目直播時間:週五 14點
本集播出日期:2020.10.16
⏭ 章節:
00:00 頻道片頭
00:07 開場
00:29 節目片頭
00:47 拿保險當投資好嗎?
14:04 Q&A:早投資和晚投資的分別
21:04 請繼續提問:你活著不是為了工作,祝大家早日達到財務自由
23:16 節目片尾
📝 名詞補充:
1.Term Life Insurance:定期壽險
2.Whole Life Insurance:終身壽險
3.Cash Value:現金值
4.Long Term Care Insurance:長期看顧保險
5.Universal Life Insurance:綜合性人壽保險
6.Durable power of attorney:持久授權書
7.Inflation adjusted annuity:通貨膨漲年金
8.Rule of 72:72法則,幾年投資可以翻倍
9.ROTH IRA:羅斯個人退休金計劃
📚 參考書訊:《財務自由的人生:跟著首席分析師楊應超學華爾街的投資技巧和工作效率,40歲就過FIRE的優質生活》 https://eslite.me/w24ad
#楊應超 #財務自由的FIRE #保險與投資
-----
訂閱【豐富】YouTube頻道:https://www.youtube.com/c/豐富
按讚【豐富】FB:https://www.facebook.com/RicherChannel
universal名詞 在 韋禮安 WeiBird Youtube 的最讚貼文
🔔 訂閱韋禮安官方頻道 : https://pse.is/WeiBird_Sub
韋禮安 ×《WeiTV》、《什麼鳥日子》導演 阿瑟鄒
睽違8年再度攜手,回歸初心。
──♫─數位平台點播 ─────────────────────────
https://weibird.fanlink.to/AtThirty
──♫───────────────────────────────────
小時候,大人們常說:「長大後你就會懂。」
於是我們想像著未來,彷彿長大是一切美好的代名詞
我們追逐時間,肆意地活著;摸爬滾打,不自覺傷人與被傷。
而今,三十歲,佇立在世人眼中青春的分水嶺。
沒有忽然變得足夠世故,沒有總知道自己該往哪去,更沒有所有問題的答案
原來,長大從未是我們想像的模樣
歲月如此漫長,卻也行進如梭
或許總該有那麼一次,選擇為自己而活。
韋禮安:「長大有時就是披著大人的外衣,使勁地活著。」
致,而立之年,每個迷惘的靈魂
自己決定自己的心自己呼吸
溫柔而不軟弱,堅定而不懷疑
#韋禮安 #而立 #而立世界巡迴演唱會主題曲
—
而立 At Thirty
作詞 WeiBird 韋禮安
作曲 WeiBird 韋禮安
如果我足夠幸運
我已混過三分之一的生命
輕易蹉跎的光陰
毫不留情地留下它的痕跡
在我心底 在我身體
留下它最公平的 提醒
被強迫累積回憶
也不是我願不願意的問題
是好的壞的一起
搶著在我腦海佔有一席之地
被算計 被懷疑
夜深人靜陪著我清醒
我還沒想通 怎麼轉眼就輪到我
請獨自承受
這世界的冷漠 內心的野獸
我追逐時間 到頭發現
是時間追著我
請自己保重 自己的生活 好好過
但我還沒活過 怎麼知道怎麼活
最害怕做錯決定
在錯的路口走錯方向錯過了你
擦身而過是風景
留在身邊難道就是命中註定
被傷心 被我傷心
誰能幫誰解這道難題
再沒犯錯的權利
多少禍誕生自輕狂無知嘴裡
在人海裡面推擠
在不同臉孔之間翻來又覆去
被沖洗 被磨平
學會放棄有時是前進
我還沒想通 怎麼轉眼就輪到我
請獨自承受
這世界的冷漠 內心的野獸
我追逐時間 到頭發現
是時間追著我
請自己保重 自己的生活 好好過
但我還沒活過 怎麼知道怎麼活
夜深人靜想問問自己
夜深人靜想問問自己
也不是什麼秘密
別人的道路總是比較容易看清
到最後只剩自己
自己決定自己的心自己呼吸
不逃避 不懷疑
夜深人靜想告訴自己
夜深人靜想告訴自己
──♫─工作人員名單 Staff Lists ─────────────────────────
藝人經紀 & 音樂製作 Artists Agency & Production|耀聲音樂有限公司 Awesome Music Inc.
總監 Director|韋禮安 WeiBird
經紀統籌 Artist Management Supervisor|黃淩嘉 Linda Huang
藝人經紀 Artist Manager|李語溱 Mao Li
行政總務 Office/Administrative Support|廖婧紋 Melrose Liao
版權經理 Publishing Manager|謝佩芙 Peggy Xie
♩ 音樂製作 Song Credit
而立 At Thirty
演唱者 Artist|韋禮安 WeiBird
詞 Lyricist|韋禮安 WeiBird
曲 Composer|韋禮安 WeiBird
製作人 Producer|韋禮安 WeiBird、蔡尚文 Aven Tsai
編曲 Arrangement|韋禮安 WeiBird
和聲編寫 Chorus Arrangement|韋禮安 WeiBird
和聲 Chorus|韋禮安 WeiBird
木吉他 Acoustic Guitar|韋禮安 WeiBird
合成器 & 取樣 Synthesizer & Sampling|韋禮安 WeiBird
錄音師 Recording Engineers|韋禮安 WeiBird (Vocal)、李孝祖 Hsiao-Tzu Lee (Acoustic Guitar)
錄音室 Recording Studios|貓在外錄音室 Cat Outside Studio (Vocal)、玉成戲院錄音室 YuChen Cinema Studio (Acoustic Guitar)
混音師 Mixing Engineer|蔡尚文 Aven Tsai
混音室 Mixing Studio|好麥錄音室 Best Mine Studio
母帶後期處理工程師 Mastering Engineer|楊大緯 Dave Yang
母帶後期處理錄音室 Mastering Studio|楊大緯錄音工作室 Dave Yang Recording Studio
Original Publisher|Awesome Music 耀聲音樂
Sub Publisher|Universal Ms Publ Ltd
ISRC|TWFG71901001
♩ MV製作 Music Video Credit
導演 Director|阿瑟鄒 Arthur Chou
副導 Assistant Director|張雅鈞 Steven Chang
攝影指導 Director of Photography|彭文星 Dalton Peng
攝影大助 First Assistant Camera|王士偉 Sway Wanze
攝影助理 Camera Assistant|和寬攝影器材有限公司 HeKuan Equipment Co., Ltd.
燈光師 Gaffer|林祝祥(阿闊) Lin Chu Hsiang
燈光助理 Best Boy|羅敬硯 Lo Chin Yan
製片 Producer|陳辰 Chen Chen
製片助理 Production Assistant|林得 Te Lin、朱俊榕 Zhu Jun Rong
場務 Gript|陳肇延 Chen Zhao Yan
剪接、調光、特效 Editor、Colorist、VFX Artist|林晨光 Black Kuang
美術 Art Director|陳弘 Daniel Chen
執行美術 Set Decorator|楊尚儒 Shang Ru Yang、楊凱甯 Yang Kai Ning
造型 Styling|楊立佳 Latisha Yang
服裝 Costume Line|許書瑋 Shu Wei Hsu、董晏伃 Dong Yan Yu
妝髮 Hair & Makeup|李靜姮 Lee Ching Heng
妝髮助理 Hair & Makeup Assistant|黃柔涵 Zoey Huang、范嘉容 Carol Fan
演員 Cast|
|送貨員 林承睿
|上班族 葉泓毅
|美甲師 謝杉杉
陶喜、吳坤、紀彥宏、陳俊成、蔡欣樺、游馥鎂、于煊、江佩珍、陳光棋、高詩涵、石鴻興、羅偉誠、周沁霖、謝惠菁、蔡懿玟、吳桑妮
ISRC|TWFG82001001
──♫─ 更多韋禮安 ─────────────────────────
🔔 訂閱 韋禮安 WeiBird YouTube官方頻道
https://reurl.cc/yyggr6
韋禮安 WeiBird FB|https://www.facebook.com/Weibird.official
韋禮安 WeiBird IG |https://www.instagram.com/weibirdmusic/
韋禮安 WeiBird WeiBo 微博|https://www.weibo.com/weibird
universal名詞 在 韋禮安 WeiBird Youtube 的最佳解答
🔔 訂閱韋禮安官方頻道 : https://pse.is/WeiBird_Sub
──♫─數位平台點播 ─────────────────────────
https://weibird.fanlink.to/AtThirty
──♫───────────────────────────────────
小時候,大人們常說:「長大後你就會懂。」
於是我們想像著未來,彷彿長大是一切美好的代名詞
我們追逐時間,肆意地活著;摸爬滾打,不自覺傷人與被傷。
而今,三十歲,佇立在世人眼中青春的分水嶺。
沒有忽然變得足夠世故,沒有總知道自己該往哪去,更沒有所有問題的答案
原來,長大從未是我們想像的模樣
歲月如此漫長,卻也行進如梭
或許總該有那麼一次,選擇為自己而活。
韋禮安:「長大有時就是披著大人的外衣,使勁地活著。」
致,而立之年,每個迷惘的靈魂
自己決定自己的心自己呼吸
溫柔而不軟弱,堅定而不懷疑
#韋禮安 #而立 #而立世界巡迴演唱會主題曲
—
而立 At Thirty
作詞 WeiBird 韋禮安
作曲 WeiBird 韋禮安
如果我足夠幸運
我已混過三分之一的生命
輕易蹉跎的光陰
毫不留情地留下它的痕跡
在我心底 在我身體
留下它最公平的 提醒
被強迫累積回憶
也不是我願不願意的問題
是好的壞的一起
搶著在我腦海佔有一席之地
被算計 被懷疑
夜深人靜陪著我清醒
我還沒想通 怎麼轉眼就輪到我
請獨自承受
這世界的冷漠 內心的野獸
我追逐時間 到頭發現
是時間追著我
請自己保重 自己的生活 好好過
但我還沒活過 怎麼知道怎麼活
最害怕做錯決定
在錯的路口走錯方向錯過了你
擦身而過是風景
留在身邊難道就是命中註定
被傷心 被我傷心
誰能幫誰解這道難題
再沒犯錯的權利
多少禍誕生自輕狂無知嘴裡
在人海裡面推擠
在不同臉孔之間翻來又覆去
被沖洗 被磨平
學會放棄有時是前進
我還沒想通 怎麼轉眼就輪到我
請獨自承受
這世界的冷漠 內心的野獸
我追逐時間 到頭發現
是時間追著我
請自己保重 自己的生活 好好過
但我還沒活過 怎麼知道怎麼活
夜深人靜想問問自己
夜深人靜想問問自己
也不是什麼秘密
別人的道路總是比較容易看清
到最後只剩自己
自己決定自己的心自己呼吸
不逃避 不懷疑
夜深人靜想告訴自己
夜深人靜想告訴自己
──♫─工作人員名單 Staff Lists ─────────────────────────
♩ 音樂製作 Song Credit
而立 At Thirty
演唱者 Artist|韋禮安 WeiBird
詞 Lyricist|韋禮安 WeiBird
曲 Composer|韋禮安 WeiBird
製作人 Producer|韋禮安 WeiBird、蔡尚文 Aven Tsai
編曲 Arrangement|韋禮安 WeiBird
和聲編寫 Chorus Arrangement|韋禮安 WeiBird
和聲 Chorus|韋禮安 WeiBird
木吉他 Acoustic Guitar|韋禮安 WeiBird
合成器 & 取樣 Synthesizer & Sampling|韋禮安 WeiBird
錄音師 Recording Engineers|韋禮安 WeiBird (Vocal)、李孝祖 Hsiao-Tzu Lee (Acoustic Guitar)
錄音室 Recording Studios|貓在外錄音室 Cat Outside Studio (Vocal)、玉成戲院錄音室 YuChen Cinema Studio (Acoustic Guitar)
混音師 Mixing Engineer|蔡尚文 Aven Tsai
混音室 Mixing Studio|好麥錄音室 Best Mine Studio
母帶後期處理工程師 Mastering Engineer|楊大緯 Dave Yang
母帶後期處理錄音室 Mastering Studio|楊大緯錄音工作室 Dave Yang Recording Studio
Original Publisher|Awesome Music 耀聲音樂
Sub Publisher|Universal Ms Publ Ltd
ISRC|TWFG71901001
♩ 歌詞版製作 Lyric Video Credit
歌詞版製作 Lyric Video Director|洪維聯 WillIiam Hung
手寫標準字 Type Design|韋禮安 WeiBird
平面攝影 Photographer|黃義文 Evan Huang
造型 Styling|王瑾瑩 Chin Yin Wang
化妝 Make Up|沈妙玲 Miao-Miao Shen·妝苑工作室
髮型 Hair Styling|曹妍玲 Tsao Yen Ling
──♫─ 更多韋禮安 ─────────────────────────
🔔 訂閱 韋禮安 WeiBird YouTube官方頻道
https://reurl.cc/yyggr6
韋禮安 WeiBird FB|https://www.facebook.com/Weibird.official/
韋禮安 WeiBird IG |https://www.instagram.com/weibirdmusic/
韋禮安 WeiBird WeiBo 微博|https://www.weibo.com/weibird