台灣盜版王國再現?!
前陣子,看到大塊文化發表公開聲明表示讀者買到盜版書,本來想說誰叫讀者貪便宜,買什麼一頁式網頁的書,被騙不意外。沒想到童書界也深受其害!!也是,童書明明是最好賣的書種,媽媽們一方面不手軟一方面又很斤斤計較(完全互斥XD),盜版商一定會盯上的。
早在1950年代,台灣便有許多漫畫、小說出版社自日本引進未經合法授權自行翻譯的作品。在1960年代初期台灣開始實施《編印連環圖畫輔導辦法》時,許多出版商更是私下賄賂漫畫審查官員,讓盜版日本漫畫取得合法出版字號,並以低價、大量、快速來霸佔台灣漫畫出版市場(wiki)。
也就是說,早期台灣根本沒有版權概念也無法律保護,而且政府還鼓勵出版,所以跟我同年代的人應該還會記得,同一本書會有好幾間出版社出版,像是前幾天介紹的保母包萍,國語日報有出,志文也有出,這叫未取得正式授權自行翻譯出版,在當時並無違反法律。
而另一種盜版,就是直接翻印複製,也是隨處可見,菜市場就可以買。我家小時候超愛的信誼圖畫書視聽之旅,就是我媽從菜市場買來的錄影帶,小時候當然不知道,看得很開心,長大之後才覺得怪怪的,為何我家的這套沒有書?所以大學時代自己重買了一套,當時已經換成VCD(時代眼淚)還曾經被信誼老闆當面說我家小時候沒書的那套那是盜版,我只能露出尷尬又不失禮貌的微笑。
1990年代初期開始,美國就以301條款將台灣優先列為觀察中的地區,且台灣有加入世界貿易組織的壓力。因此,1992年6月中華民國政府開始實施新著作權法,訂下落日條款規定盜版翻譯外國人的著作只能販售至1994年6月12日(也就是所謂的「六一二大限」),以重視保護智慧財產權(wiki)。不過實際上大家還是會繼續賣,我記得當年正版納尼亞王國小說上市時,我還在誠品當店員,忙著把架上所有無版權的書下架。
┄┅┄┅┄┅┄┅┄┅┄┅┄┅┄┅┄┅┄*
※修正:為避免大家搞混,在落日條款前有些出版品的是未正式取得版權,但當時法律並未有相關規定,所以各家出版社會自行翻譯出版。而盜版指的是未經許可自行複製翻印人家的出版品,現在蝦皮盛行的就是這種。
┄┅┄┅┄┅┄┅┄┅┄┅┄┅┄┅┄┅┄*
如前述,我一直覺得這個出版斷層,導致許多經典作品消失,再重回台灣市場大多也是2010年代之後的事,那時大家都讀過新時代的作品,已經回不去了。我對小時候的出版品有種特殊的情感,除了是小時候讀過的書之外,我也深深覺得那時的出版品質(尤其是有聲書)比現在好。或許是當時經濟起飛,又沒版權費,所以大量引進了國外的好書,尤其是套書。像是志文的新潮少年文庫,我在念研究所時才發現,這套書怎麼這麼厲害???編輯太厲害了吧!!可以囊括全世界超經典重要兒文作品?!北歐的林格倫、姆米,德國的凱斯納、英國的羅爾德·達爾和保母包萍,捷克的恰佩克...我上課讀文本都靠這套了,因為日文太爛看不懂。很久之後的某天我看到日文版的時候才恍然大悟(連封面設計都一模一樣XD)我念研究所時才重出林格倫的皮皮,我拿著印著皮皮的贈品便當袋,我跟日本同學說這是剛出版的贈品,日本同學嚇死了,說你們現在才出林格倫?我只能尷尬的說,以前也有,只不過...
針對這點,李志銘表示:「臺灣在更早之前的五、六○年代書商翻印西書或文史哲圖書竟也不乏選書眼光與氣魄,許多印刷品質絲毫不遜於時下的正版書。相較之下,如今有些書籍(比方臺灣某些現代詩人作家作品全集)正版裝幀設計品質反倒編印得比以前盜版還差!對此,我必須嚴正地向那些出書不用心思的出版商說:「不要以為你是合法正版,就可以如此沒有品味、沒有設計美感地亂印書」!因為,姑且不論盜版與否,所謂的「好書」,在所有愛書人心目中其實是自有一把尺的。」
那為什麼現在沒辦法像過去一樣選好書,做好書?出經典有人要買嗎?有多少人真的看過小兔彼得或艾摩與小飛龍?現在市面上實在充斥太多「譁眾取寵」或「只求實用」的書了。大家最愛講的小百科跟「中國」童話,做出來一套要好幾萬,有人要買單嗎?上禮拜聽漢聲前美編的講座,他們做一本雜誌花兩年,好想問到底你們做書花了多少成本?而台灣自製一本好繪本要多少成本?不過也很難說啦,我看很多家長買一堆套書玩具或是點讀筆啥的跟團購真的很大手筆買買買,我真的不太懂台灣生態,也許是不同族群吧。
除了FB充斥的詐騙廣告,還有哪裡買得到盜版?原來就是蝦皮...在蝦皮上吃過好幾次虧,真的沒事盡量避免,但無奈越來越多人在上面開店。因為能抽取手續費,銷售量很好的賣場怎麼檢舉都不會下架,比淘寶還不如。看到評價很多媽媽買得很開心,給雲端下載MP3還給五星好評?!!退一萬步來說就算品質沒有差很多,這樣長久下去,就會跟我前面說的一樣,只會劣幣驅逐良幣。如果只是因為預算不想花錢買而買盜版,就算看到書,大人也是在品格教育上做了最壞示範,還讀什麼品格教育繪本呢?
參考資料:
臺港盜版時期wiki
李志銘,讀書人不可承受之重:翻開臺灣那一頁書籍盜版史
群易翻譯評價 在 Facebook 的最讚貼文
【關在房間 4 天不講話、常常離家出走:梁朝偉,一個古怪的王者】
有些人,僅管不常出現在江湖,江湖卻從未忘記過他,像是今天《尚氣》上映,梁朝偉的演技,依然是神一般的存在。
後輩們無不期盼與他並肩前行,最終依舊只能望著他絕塵的背影,神秘、難以忽視,兩相矛盾的形容詞,放到梁朝偉身上沒有二元對立,反而交互襯托,存在感強烈,倒是成為無雙。
李安形容,梁朝偉是導演們的夢想;王家衛則說,梁朝偉是一個永恆的演員。
一個演員能做到讓人看見夢想、洞見永恆,無非就是長存赤子之心罷了,如何讓自己永保童心,梁朝偉做的只有兩件事:獨處,以及有意識地生活。
—
演藝圈皆知梁朝偉熱愛獨處,甚至已到孤僻與古怪的程度。
早年,妻子劉嘉玲會邀請林青霞、王菲和張國榮湊桌打麻將,梁朝偉不大會出來打招呼,而是關在房間聽很大聲的搖滾樂,吵得客廳的張國榮直喊「我頭好暈」。
好不容易,梁朝偉走出房間,自行跑去廚房泡龍井或普洱,喜滋滋走到牌桌向朋友們逐一介紹茶品與茶道,不過大家忙著算牌、無人搭理他,最後一樣是張國榮不耐煩回應:「隨便啦,你弄個茶包給我就好。」
與朋友身在同個空間,梁朝偉彷彿活在異次元,用自己的方式向朋友傳遞善意,所幸朋友們願意理解。
張國榮就曾說:「梁朝偉是一個古怪,但是心地非常善良的人。」
—
梁朝偉的古怪,是他鍾情於一個人的悲歡,還是個「想到什麼就去做」的人,從未在乎時間與場合。
他崇拜作家村上春樹與三島由紀夫,遇到喜歡段落能夠一字不漏背出。
因讀完《挪威的森林》而一個人飛去日本住好幾個月,夜夜待在居酒屋,盯著紅男綠女們酒酣耳熱的姿態,想像他們就是村上春樹口中「身在無人島、為了寂寞相擁的光屁股孩子」。
他曾搭飛機去倫敦,在公園餵一個下午的白鴿,當天夜裡就搭機返港。為此,香港知名作詞人黃偉文還曾在專欄中提起這件奇事:「雖然心想『他有沒有搞錯啊?』,但心裡還是恨不得馬上去試一次。」
梁朝偉被問起這段餵鴿奇談,笑著回答誇張了,仍向記者承認:「我是喜歡一個人跑來跑去沒錯。」
—
劉嘉玲數次提及梁朝偉的「怪」。
她透露某天家裡施工來一堆陌生人,丈夫不喜噪音與人群,直接拎著行李箱就走,直至工人離去後才返家。
拍攝《阿飛正傳》,因一場吃梨子畫面拍 27 次都拍不好,梁朝偉回到家一語不發做家事,幾天後向她拋出一句「原來王家衛只是要我一個背影呀」如此前言不搭後語的體悟。
但最讓劉嘉玲難忘的,依舊是張國榮過世,梁朝偉把自己關在房裡四天,不說話,不想吃飯,直到第五天才嚎啕大哭起來。
—
一個遺世獨立的奇特隱士,不見得代表他無情,而是把他的心思花在值得的人事物上,並且深情以待。
梁朝偉是浪漫的,曾醉心於 Lawrence Block 的偵探小說,去美國宣傳《2046》前主動寫信給作家,只想與偶像暢聊文學一個晚上。
他是念舊的,某年聖誕節前夕與張震小酌閒聊,有感而發說出十年前拍攝《東邪西毒》的對白,長達三分鐘,讓張震暗暗心驚。
他是熱情的,因《一代宗師》練詠春拳上癮,成天與導演好友麥兆輝與莊文強討論練拳體悟,煩得麥兆輝都說:「好了,別再來找我聊天了。」
甚至,他首次參加維多利亞港的帆船大賽,開心地說只想與帆船好手以船會友,結果當天比賽奪得亞軍。
一個人,梁朝偉可以做很多事。
可重點是,他都能把這些微不足道的小事做到最好。
—
梁朝偉會愛上村上春樹,我並不意外。
村上春樹是一個熱愛獨處的人,除了寫作,他也是爵士樂愛好者,每天早上出門慢跑,還深耕「翻譯」學問,將自己喜歡的英文小說翻譯成日文。
歷史中許多知名的思想家都知道「獨處」的重要性。
盧梭堅持每天獨自步行 6 小時,出版《一個孤獨漫步者的遐想》,強調孤獨有助人類靈魂解放;吳爾芙早上十點都要獨自外出散步,聞花香、聽鳥鳴,就擁有寫作靈感;梭羅直接將自己流放到瓦爾登湖,透過半隱居學習專注。
但我認為,若想成為一位懂得感受的人,「獨處」不過是第一步,還是最粗淺的,畢竟這兩年因疫情緣故,我見到很多人都「被迫獨處」,卻也不認為他們有多開心。
於是這便回到我一開始說的:不只獨處,你還必須練習「有意識地生活」。
—
王家衛說過,演員有三種。第一種演員很聰明,讓他練 30 遍他只練 3 遍就會,接著便不練了;一種比較規矩跟認真,像是劉德華,讓他練 30 遍他就會練足 30 遍。
「但是梁朝偉,他是那種你讓他練 30 遍,他會練 300 遍的人。」
一個 30 遍的事情,為什麼梁朝偉可以練到 300 遍?
這已經與「認不認真」沒有多大關聯,梁朝偉是發自內心在感受與享受這門技藝,測試看看自己能把這件事練到怎樣,是一種以玩樂心態去摸索,觀察自己可以走向哪裡。
張曼玉跟劉嘉玲,一個是演戲上的知音,一個是相愛 30 年的妻子,她們對梁朝偉的共同評價是:偉仔,他就是一個小朋友。
讓我們回想小孩子是什麼模樣?
大家是否見過小朋友獨自在家,明明給他一個破紙袋,他不但能自得其樂,甚至還會竭盡所能去「開發」這個破紙袋,把它當成包包,把它當成帽子,諸如此類。
尼采說過,人的最高境界就是回到孩童狀態,天地萬物皆為遊樂場,抱持著這種心態,你自會在冒險裡有意識地專注,學都不用學,是一種渾然天成的行為。
梁朝偉,能把泡茶變茶道、打拳變拳道、玩帆船玩到亞軍去,把自己放進世界裡,進行無窮無盡的探索。
這種人,演戲演到被封神,我絲毫不覺得奇怪。
#尚氣
#尚氣與十環傳奇
https://www.adaymag.com/2021/06/12/leung-chiu-wai-and-his-solitude-philosophy.html
群易翻譯評價 在 Taipei Ethereum Meetup Facebook 的最讚貼文
📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
群易翻譯評價 在 群益翻譯社 的推薦與評價
群益翻譯社. Local Business. Like. Liked. About. Local Business. Page Transparency. Facebook is showing information to help you better understand the purpose ... ... <看更多>
群易翻譯評價 在 工作板 的推薦與評價
本板提供分享面試經驗、職場心得、打工或實習經驗等相關工作話題。(徵才的職務刊登前請務必詳細閱讀置頂文。) ... <看更多>
群易翻譯評價 在 Re: [心得] 近來發案糾紛有感- 看板translator 的推薦與評價
※ 引述《niesen (niesen)》之銘言:
: 最近看了版上的翻譯發案糾紛,心裡有些感觸想要抒發。
: 我是全職的自由譯者,除了翻譯本業之外,不靠其他方式賺錢,至今從事這份工作即將屆
: 滿 6 年。在我看來,pichio 版友犯了譯者「能力不足,卻未能及時提出」的錯誤
: ,我自己在擔任全職譯者的頭一年也因為不敢╱不知道何時該拒絕不適合自己的案子而吃
: 盡苦頭,說實在,當時審稿人員對於翻譯品質的直言批評,絕對不會比本案的案主張先生
: 來得溫和,更不用說後來有一段時間被翻譯公司冷凍。不同的是,一直以來我是透過翻譯
: 公司接案,所以即使我的表現不夠專業,公司還是會協調其他譯者和審稿人員收尾,譯者
: 出包不會讓客戶感受到。
: 跟之前發過文的前輩譯者一樣,儘管多數的時候我是接案方,但是因為希望建立譯者合作
: 網路的關係,我也有一段時間擔任發案方,把自己接進來卻消化不了的案子發給其他譯者
: 進行初步翻譯,而這些譯者都是新手,原因是有經驗的譯者通常手邊都是滿稿的狀態,當
: 然也不會有時間去幫別人消化案件。這段期間,和我真正合作過的新手譯者約有 10 多人
: 。而這群譯者中,除了少數一兩位之外,即使只合作一個小案,我還是很清楚:他們無法
: 自評翻譯品質的優劣、輕忽 deadline、不熟悉 CAT 工具,也不知道軟體語法為何物。
: 我一路以來嘗試與 10 來位譯者合作,我敢說,這些是新手譯者的通病,幾乎每一位我合
: 作的譯者的問題都大同小異,而這說明了,恕我直言,這些人都還不算專業譯者,而是對
: 這一行有興趣,希望未來能以此維生的人,在這樣的情況下,想要獨立完成公司客戶的委
: 託,若非客戶的要求真的非常單純,否則都是一件極為冒險的事,因為公司客戶的要求高
: ,通常除了譯者之外,還需要至少一位審稿者和一位 final proofreader 才能確保品質
: ,就以文章中提到的「You may schedule an event by」為例,為謹慎起見,我會請客戶
: 提供後面所接的 tag╱placeholder 內容,而這個案子看起來光是整理 query 就需要一
: 天,也就是說,如果要提供達到專業水準的品質,且只有一位譯者負責,客戶要求的
: deadline 是不可能實現的,此時,無助的譯者求助機器翻譯是人之常情(絕非情有可原
: ,但可以理解)。
: 然而,如果需要花這麼多時間,拿每字 0.8 NTD 的報酬換算下來的時薪大概比便利商店
: 打工更低(這也是許多新手譯者跟我反應的),所以我一再勸告想入行的朋友,如果沒有
: 極大的熱忱和決心,也不必考慮接翻譯案了,尤其在初入行沒得選案的階段,拿低薪練功
: 是必然的過程,至於想要來 ptt 發案的公司行號,我希望你們瞭解一分錢一分貨的道理
: ,如果 0.08 NTD 跟翻譯社收 5 NTD 的品質相同,那翻譯社也不用開了。
: 最後,我想要鼓勵真正想要從事自由翻譯工作的新手,如果你翻了幾個自己不熟悉領域的
: 文件後仍覺得有趣,或是曾經得到客戶的讚賞,而且你不在乎這個行業的孤獨及社會地
: 位低落,那麼這絕對是個有薪資成長空間且專業性不易取代的領域,更重要的是市場上真
: 正合格的台灣繁體中文譯者還不夠多,許多案子要發到對岸去(這一點我又可以寫一整篇
: 來抱怨了),讓簡體譯者用 WORD 轉檔充數,這口氣大家嚥的下去嗎?請多多努力吧!
太多客戶對翻譯的認知不足 以為翻譯相較於產品研發 是很簡單的事
因此總希望以超低價格在超短期間得到超高品質
事實上如原Po所說 一分錢一分貨
過低的價格是能得到什麽東西?
譯者也是一樣 做了很久 拿少少的錢 買個Trados就噴光光
提到CAT Tool 好聽是說減少譯者重複勞動
其實大部份翻譯公司 也只是想要那Fuzzy Match的discount而已
說穿了不過也是想省錢
譯者最辛酸 投資CAT Tool 卻要被公司砍價 query寫一堆也不算錢
經濟上撐不下去的 只能離開市場 或轉做兼職
留下來的也多是憑著一股熱忱
整個產業從上到下瀰漫著一股Cost Down的氣氛
有的IT大廠甚至直接找譯者 也不需透過翻譯公司 不過價格也不會比0.8高多少
但價格之所以維持在這 代表低價市場的需求確實存在
有些客戶的確不太Care出來的東西是什麽 便宜就好
或許這就是所謂惡性循環下的恐怖平衡吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.162.46.224
※ 編輯: kage01 來自: 1.162.46.224 (10/26 23:19)
... <看更多>