《#讓寫作成為自我精進的武器》部落格文末抽獎贈書 2 本
你知道現在職場上最關鍵的隱藏技能是什麼嗎?你知道可以不說一句話就讓合作機會找上門嗎?你知道如何在充滿雜訊和紛擾的年代脫穎而出嗎?答案就是,學會寫作。寫作一直都是關鍵的技能,只是它的重要性在時代的演變之下只會變得愈來愈重要。你或許會問,為什麼要寫作?如何寫作?寫些什麼?我想透過這篇文章回答你。
部落格文章 https://readingoutpost.com/writing-as-weapon/
Podcast 用聽的 https://readingoutpost.soci.vip/
.
【這本書在說什麼?】
《讓寫作成為自我精進的武器》的作者是中國知名的寫作教育培訓教練師北宸,曾任鳳凰網科技頻道前主編和中國 LinkedIn 公關部門,現為《紐約時報》中文版專欄作家。他將在線下寫作課面對無數學員的教學經驗,搭配眾多的寫作案例,彙整成這本談寫作的書。
這本書裡面談的重點偏重於寫作的「心態」和「心法」,強調從建立內心的基本功先做起,先理解寫作會帶來的好處,然後認識一個好的寫作者需要具備什麼樣的心理素質,最後才是如何寫作的「技巧」和作者本身的經驗分享。
所以,如果你期待的是一本充滿了「寫作技巧」的操作手冊,這本書或許不適合你。如果你從來不曾覺得寫作很重要、想要了解寫作真正能帶來的好處、想知道如何建立正確的寫作心態,那麼這本書是初次接觸「寫作」的你很好的起點。在這篇文章裡,我試著用容易理解的方式總結這本書的一些重點跟你分享。
.
【為什麼要寫作?】
#無形之間行銷自己
作者認為,把自己「行銷」出去,是每個人一輩子都在做的事情。在求職履歷上做自我介紹時,是在行銷自己的職場能力。在向上級提案做預算企劃時,是在行銷自己的策劃能力。在寫給隔壁部門的會議結論和待辦任務時,是在行銷自己的跨部門合作能力。我們無時無刻都在行銷自己。
矽谷創業公司 37 signal 的創辦人傑生.佛里德(Jason Fried)曾經分享他如何挑選一個職位的最適合人選,他說:「要招募就招那個寫作最厲害的」。因為一個優秀的寫作者會有很清晰的思路,而且他們懂得表達和溝通,他們讓事情更容易被理解,也會站在別人的立場想事情。
無論對管理階層、行銷人、設計師、程式開發人員,寫作技巧都非常重要,一個優秀寫作者的特質,也是雇主想在任何求職者身上看到的特質。透過寫作,我們可以培養和精進自己思考的方式,也可以把內心的想法有組織、有脈絡地付諸文字之上,讓別人從文章裡進一步認識你這個人。
.
#內向者的社交利器
我曾經聽過一個說法,身為一個內向者所能擁有最好的武器,就是寫作。作者在這本書裡面用這句話傳達總結了這個觀念:「好文章自己會走路。對於內向的人來說,這是最好不過的社交方式。」對於不擅長在社交場合中侃侃而談的內向者而言,寫作是一個非常值得建立的技能。
作者進一步說明:「內向的人很容易被人認為是以自我為中心,孤僻而不愛交際的。事實上,性格內向的人往往更能聚焦於內在世界,有更強的感受和反思能力,這反而能幫助內向的人更好地理解外部世界。」內向者在旁人看來孤僻不善社交的缺點,反而在寫作的時候得以發揮優勢。
在另一本寫給內向者的《安靜,就是力量》書中有一段是這麼說的:「內向者聽得多講得少,並且比較容易從寫作、而不是從對話中表達自己的意思。他們不喜歡衝突。他們很討厭閒談瞎扯,但是喜歡有意義的討論。」好的文章不但會自己走路,還會幫你說話。
.
#自我精進的武器
你身處的環境決定你是一個什麼樣的人。開始寫作,可以讓你沉浸在一個持續精進的環境裡面。作者他舉自己為例,一開始他的英文特別差,但是他試著把自己浸泡在《紐約時報》和《紐約客》的高品質英文媒體環境裡,也訂閱了上百家科技媒體的文章大量閱讀。
此後,他一篇又一篇的翻譯優質的文章,不但提升了英文能力,也打下了撰寫科技文章的深厚基礎,造就他後來踏上媒體主編和寫作教練的道路。他調侃道自己開始寫作的時候就像是「群體裡面最差的人」,從寫作新手開始出發的他,等於無時無刻都要向更優秀的寫作者學習,讓自已沉浸在比自己的知識和視野更高的環境,才能不斷進步、寫出更好的文章。
我認為,高品質的文章本身就是一個「資訊含量充沛」而且容易「重複閱讀和賞味」的資訊載體,而且你很容易可以「照著寫寫看」。不同於影音之類的媒體,你要照著做的成本和門檻相對比較高。從高手的文章模仿寫作,挑選框架來給自己用,相對而言都是更簡單可上手的方式。學習寫作同時也會帶來自我精進,讓自己沉浸在好文章的環境之下,是一個跟高手的思維不斷靠近的過程。
.
【該如何寫作?】
#善用萬能的框架
在這本書裡,作者沒有教你一百種寫作技巧,而是只教你「一個」寫作技巧,那就是「萬能寫作法」。這是一個無論在什麼情境都可以運用的框架,簡單、易懂、好執行。無論是單一模組使用,或者是擴大成更大的框架,甚至是大框架包小框架,都可以有各種運用的方式。
萬能寫作法由三個部分組成。第一個是「觀點」,指的是有價值導向的主觀論點,或描述的客觀事實。第二個是「案例」,引用軼聞趣事、實驗案例、研究數據來輔助說明你的觀點。第三個是「總結」,回顧主題,用一句話、一個段落,總結核心觀點。
以下引用一個我自己的寫作範例給你參考。我在分享《與成功有約》這本書的讀書心得時,分別說明了書中提到的七個高效人士習慣,其中第一個習慣「主動積極」的說明我是這麼寫的:
前半段是「觀點」:第一個是「主動積極」,意思是不要把自己的行為歸咎環境或他人;待人接物是根據本身原則與價值觀,做出有意識的選擇。
中段則是「案例」:史蒂芬引述《活出意義來》 作者法蘭柯的說法:「刺激與回應之間始終有段距離,而成長和幸福的關鍵,就在於如何利用這段距離。」法蘭柯是納粹集中營的倖存者,經歷過所有身外之物、僅有的尊嚴和身體自由完全被剝奪,身旁盡是絕望與痛苦的氛圍。
後半段是「總結」:他體悟到儘管外在環境再怎樣無法忍受、不受自己控制,人的內心卻仍可保有「人類終極的自由」,也就是選擇如何回應生命意義的自由。積極,是一種選擇。
善用這種萬能寫作法的框架,你就可以把任何想要表達的觀點,用你想要引用的案例來說明,最後再透過總結來加深讀者的記憶。你可以把這樣一個段落當成是一個「模組」,一篇文章就是好幾個模組的組合。如同作者所說:「寫作之道,大道至簡」,掌握這個寫法,你可以應用在無限種不同的場景裡面。
.
#閱讀高品質資訊
要練就一身好的寫作本領就要注意自己吸收的資訊品質。有一句話是這麼說的:「你,就是你吃進去的東西。」意思是你如果常吃高油、高鹽、高糖的食物,就會養成不健康的身體。嚮往健康的人們很在乎自己攝取的卡路里是否超標,也傾向選擇健康的食物。可是,我們對大腦「吃進去的食物」是否也有同樣程度的關注?
我們要去買新鮮和頂級的食材,需要付出相對高昂的成本;但是閱讀頂級的精神糧食,卻不一定要付出多麼高昂的代價。你攝取的資訊,決定了你將成為什麼樣的人。如同《深度數位大掃除》這本書中提倡要攝取「慢媒體」的原因是「 吸收少量優質的東西,通常比吸收大量劣質的東西更好」,我自己很推薦從《華爾街日報》之類的優質新聞來源去吸收資訊,這通常會比看八卦小報和農場新聞的文章來得更好。
就很像做數據分析的科學家常常掛在嘴邊的一句話:「垃圾進、垃圾出」,如果一個人總是吸收劣質和低廉的資訊來源,那些資訊就會影響他下筆寫出來的東西。因此,我們要慎選資訊來源,為自己營造出一個高品質的資訊環境。一個寫作者首先要有好的輸入,才可能有更好的輸出。
.
#寫作時必須誠實
在這本書中,有這麼一句話深深觸動了我的心,作者他說:「讀者不需要你完美,但他們需要你誠實。」起初我在練習寫作,並且鼓起勇氣公發表的時候,時常會在乎自己寫出來的東西,會不會被人嘲笑太淺、太無聊。有時候想著想著,乾脆就不寫了,至今回想起來,也錯失了暢談許多主題的機會。那些自己還未臻成熟的想法、還不夠完美的表現,時常會在害怕和自我質疑的時候偷偷藏起來。
作者認為,人們之所以「不敢誠實」有一個主要原因,害怕別人看到自己的缺點後,看不起、看不上自己。但是這種「害怕」,其實是對別人的不信任。一個作者如果不敢誠實,等於是不信任自己的讀者。真正支持你的讀者,會理解和體諒你,並且和你站在一起。如果一個作者不敢信任讀者,那麼讀者也難以信任作者。如果要寫出更好的文章,必須對自己的不完美更誠實,而且不要害怕公開自己的誠實。
.
【可以寫些什麼?】
#總是勤做筆記
在這本書中讓我很有收穫的,是作者提到他在寫作訓練營裡面,總結給學員們的最重要的經驗:第一,找到你這個行業最好的資料並努力深挖。第二,一定要做筆記,把你看到的、聽到的、讀到的、想到的、有價值的內容通通記下來。如果要讓寫下的文章自己會走路,就公開分享出來。
作者提到他寫筆記的方式是從紙本筆記,轉變成電子筆記,再變成電子和紙本,到最後全部轉為紙本筆記。只要是對他有幫助的、他感興趣的、未來寫作主題可能會用到的,他一定毫不猶豫全部記錄下來。只是很可惜的是,書中說了很多他寫筆記的原因,但是對寫筆記具體的「方法」卻著墨甚少。
我在閱讀的時候也不斷懷疑,純紙本筆記真的比較好嗎?因為我本身習慣用數位的 Notion 筆記 App 和紙本的子彈筆記,數位筆記利於搜尋,紙本筆記利於激發思考。稍做比較之後,我還沒有作者這般把「所有」所見所聞都記錄下來的習慣,這點倒是值得每個寫作者持續探究的主題。
.
#寫日記週記總結
除了作筆記之外,我們還能寫些什麼?作者提供了三個很有意思的寫作練習方法,很適合每個想學習寫作的人開始提筆。分別是每天寫日記,每週寫複盤週記,嘗試對事情做出總結。
首先,每天寫日記。作者認為最好的寫日記時段,是每天醒來的第一個小時。如同我在《起床後的黃金1小時》這本書的讀後心得寫下:「早晨醒來的時候,精神品質和心情都處在清空的最佳狀態」,在起床後開始寫點東西,是最好的起床儀式之一。寫日記可以帶來五個好處:
1. 計畫性:可以做好一天的準備。
2. 忠實性:可以準確寫出昨天發生的事情。
3. 中立性:冷靜思考前一天的事情,可以中立地看待事情。
4. 持續性:對於大部分午餐和晚餐都奉獻給工作的上班族來說,早上是自己最自由自在的時間,不會讓寫日記的習慣被中斷。
5. 活用性:可以將過去的寶貴經驗運用在當天。
寫日記還有一個好處,那就是「承諾和一致性」。《影響力》這本書的作者曾經說過人類有一種天性:「人們一旦對自己的行為或選擇做出承諾,就會努力保持言行一致。」善用這種天性,利用日記來驅策自己完成每天早上對自己做出的承諾。
其次,每週寫複盤週記。作者認為定期整理筆記可以帶來去蕪存菁的效果,他每週會重新對筆記大掃除,把無意義和不重要的扔掉,留下那些可以強化現在和未來的有意義的筆記。複盤的時候,他也會思考自己當週哪裡做得不好,並思考改善的方式。用寫作的方法來複盤,可以讓你更知道自己在想些什麼,也方便日後回顧自己的轉變歷程。
最後,嘗試對事情做出總結。作者舉工作為例,有些工作出現的頻率只佔 2%,卻可能影響你 90% 的工作績效,這件工作就是成果總結。所以平常期間,我們就要把自己的所見所聞和完成的事情,透過有主題性、系列性的方式做出總結。總結是屬於平時練習的少,可是卻很重要的工作。
.
#持續寫任何東西都好
很多人會以為寫作的時候,要有很多的「靈感」才寫得出來。但這是對寫作的根本誤解。作者提醒,無論是寫什麼,寫就對了。就像知名的高產出作家村上村樹和史蒂芬.金(Stephen King)都是以持續且規律的方式在寫作。
我很喜歡美國畫家查克.克洛斯(Chuck Close)曾經說過的這句話:「靈感是給業餘人士用的,我們其他的人就只是每天出現並投入工作。如果你等著烏雲散去,或等著一道閃電擊中你的大腦,你就不會做出很多工作。所有最好的想法都來自於過程;它們來自於工作本身。」
因此,不要相信靈感,不要期待一個不會天天憑空出現的東西。寫作這個行為的本身,一定要養成習慣。你可以參考《彈性習慣》這本書提到的核心觀念,你想養成的習慣不能太困難,必須要可以在你狀況最差的那一天照樣能夠執行。重點不是去拼靈感爆發,而是建立能維持規律寫作的方式。
.
【後記:寫作永不嫌遲】
從《讓寫作成為自我精進的武器》的閱讀過程之中,令我收穫最豐富的就是「讀者要看的不是你的文筆,他們要的是真實的你」這個觀念。作者希望我們擺脫寫作就是要文筆優美的老舊觀念,而更強調寫作對生活和職涯可以帶來的具體好處,以及如何建立正確的寫作心態。
這本書有點像是學習寫作的心靈雞湯,而不是技巧工具箱。如果你想學習除了「萬能寫作法」框架之外的技巧,我很推薦《高產出的本事》這本有著豐富寫作框架和步驟的書,其作者劉奕酉對使用框架是這麼評論的:「使用框架是為了跳脫框架,發展出自我的思考脈絡。」說得真好。
我也很慶幸自己曾經紀錄下來當初學習寫作的一些心路歷程,現在回味起來真的別有一番滋味。如果你有興趣的話,可以參考我在《學得更好》這篇讀後感分享過的六種學習寫作步驟,以及我在《心流》這篇讀後感分享透過寫作進入心流的方法。我透過這種書寫練習找到了自己寫作的意義。
最後,寫作真的會「讓機會自動找上你」。最近「生鮮時書」就找上瓦基一起合作,即將要開一堂「化輸入為輸出」的線上課程(早鳥問卷調查和優惠),我會淬鍊自己經營部落格兩年多來的經驗,分享有效輸入、高效輸出的實戰本領,教你如何在資訊紛擾的時代靠優質的文章內容脫穎而出。
寫作可以幫你達成自我行銷、提升職場形象、加深社交品質的功效,寫作也是最好的自我成長和精進的方式。或許,你也可以透過一個簡單的動作開啟自己的寫作練習,不妨在留言寫下你讀完這篇文章之後,有什麼想法上的改變和收穫吧。開始寫作,永不嫌遲。
.
瓦基的第一堂線上課程「化輸入為輸出」早鳥問券和優惠進行中
https://user134068.psee.io/3jdfxx
.
Kobo 購書連結:https://bit.ly/3mcN0ZK
Kobo 電子書7折代碼:WAKIWRITE
使用期限:8/22~8/29
.
感謝 新樂園出版 與你悅讀 提供抽獎贈書
同時也有1部Youtube影片,追蹤數超過1,310的網紅粉條愛彭哥,也在其Youtube影片中提到,剛剛在錄影過程突遭消防車包圍 差一點以為是火災 幸虧沒事彭哥得以倖存 在股市上也常突然遇到這種事情發生 尊重股市趨勢是非常重要 只是在意外發生可能當下扭轉股市 又該當如何應對呢 今天用權值三寶來跟大家討論 現階段股市趨勢與意外的面對措施吧 #1301台塑 #2330台積電 #2317鴻海 ◆關...
「行為過程記錄範例」的推薦目錄:
- 關於行為過程記錄範例 在 Facebook 的精選貼文
- 關於行為過程記錄範例 在 Facebook 的最佳解答
- 關於行為過程記錄範例 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於行為過程記錄範例 在 粉條愛彭哥 Youtube 的最佳貼文
- 關於行為過程記錄範例 在 [心得] 雖然我只是護生,但請給我機會學習- 看板Nurse 的評價
- 關於行為過程記錄範例 在 護理會談紀錄範例在PTT/Dcard完整相關資訊 - 健康急診室 的評價
- 關於行為過程記錄範例 在 護理會談紀錄範例在PTT/Dcard完整相關資訊 - 健康急診室 的評價
- 關於行為過程記錄範例 在 溝通實錄情境模擬 - YouTube 的評價
- 關於行為過程記錄範例 在 #其他護生在做實習作業時會遇到的這些那些 - 護理板 | Dcard 的評價
行為過程記錄範例 在 Facebook 的最佳解答
荷蘭在台辦事處 Netherlands Office Taipei 對 香草騎士 Vanilla Knight 訪談文侵權案件道歉賠償(內容工作者請千萬看到最後)/ Netherlands Office Taipei apologizes and compensates for copyright infringement of the Vanilla Knight interview article
.
半年了,距離我在巴黎家中發現自己的文章被抄襲、改寫成英文,並在荷蘭農業處網站發表已經半年。這半年中無論是全球疫情、還是我的個人生活都宛如雲霄飛車,上下起伏之多,讓人一方面很難想像半年已經過去、另一方面卻總有煙塵籠罩的不真實感。
.
今天上午在台北地方法院調解庭,我和荷蘭辦事處的當事人與律師同意就「建立文化、建立價值,建立產業間的連結 - 香草騎士創辦人味正琳師傅訪談筆記」侵犯著作權法一案達成和解,以下是雙方協議內容:
.
1. #荷蘭在台辦事處於該處網站首頁刊登中英文版道歉啟事,內文包含「未經授權挪用 / We did not obtain Ms. Chen's consent and our usage of Ms. Chen's article was without Ms. Chen's authorization.」、「致歉 / we apologize」等文字,自 4/6 下午 4 時至 4/16 下午 5 時止,共計 10 日。
.
📌 刊登網址:
https://www.nl.org.tw/index_zh.html(中文)、
https://www.nl.org.tw/index.html(英文)
.
2. #荷蘭在台辦事處提供雙方同意的侵權賠償,款項已於 4/7 匯入我的個人銀行帳戶。
.
3. 我將於 4/17 道歉啟事刊登時間結束後,撤銷對當事人的民事與刑事訴訟,並承諾不再追訴。
.
事件即將告一段落,但我其實並沒有任何欣喜之感。過程之反覆、瑣碎,讓我極為疲憊;為此奔波的好友之多,讓我在感受盛意之餘,始終有一絲歉疚。上回調解庭裡,看到當事人確實打從心裡感到後悔的表情,也使我相當難受。
.
我選擇將這件事刊登周知,是認為這個案件極為重要,#希望這件事能夠成為所有內文工作者的範例_鼓勵大家看重自己的作品_保護自己的權益,同時 #呼籲公眾尊重著作權_共同打造一個更健康的創作環境。
.
#所謂公理_其實不去爭取就不是你的。
過去一年因為過於勞累,我暫停撰寫中英雙語文章,只以中文為主,我到現在還不時自責,「如果當時中英文都寫了,是否會警惕抄襲的意圖?」、「如果當時有英文版,是否在報案時,更容易證明哪些段落是來自我的文章?」我也記得當事人的長官,荷蘭在台辦事處農業處處長那封令人瞠目結舌、甚至讓我幾乎要為所有內容工作者感到悲哀的來信;更難忘當我把事件始末轉錄在「台灣人在荷蘭」群組後,底下一片都是「荷蘭人是不會道歉的」的留言。
.
侵權告訴非常冗長,但並不困難。許多好朋友一開始就試圖勸退我,因為擔心過程中身心的折磨會與結果不成比例。但我還是想告訴大家,如果你認為自己做的事是正確的,就堅持下去。
.
#所有的創作都有價值_願意分享不代表歡迎抄襲
#就算只是爭一口氣_同樣會鼓舞很多人_帶來更多正面效益_減少同樣事情再次發生
我非常感激所有留言支持我捍衛自己權益,為我提供法律諮詢、心理支持的朋友,特別是從頭到尾大力協助,在我從法國回台隔離期間,代為公證證據、前往警局報案,並陪我出席調解庭,為我爭取到理想和解結果的 Eatpire - 風格美食指南 創辦人吳威賦(William),謝謝你們陪我一路走來、沒有退縮。
以下簡要列出發現文章被侵權後建議採取的行動給大家參考:
.
1. 立即蒐證,如侵權行為發生在網路上,除網頁截圖外,務必以螢幕錄影程式錄下造訪該網頁的紀錄,證實網頁確實存在的證據,以防網頁事後被移除。如果目前已被移除,可以嘗試用 Google cache 的方式取得快取頁面。
.
2. 蒐證完成,將證據印出、檔案存檔後立即前往公證人處公證。
.
3. 如果願意給對方機會,可寄出存證信函通知對方即將報案,否則直接帶著公證好的證據與個人身分證明,前往最近的警察局報案製作筆錄,筆錄中需載明侵權處。在我的案件中,對方雖是將文章改寫成英文版,但仍然涉嫌觸犯著作權法中的「改作」一項,因此我將明顯翻譯自我文章的段落摘出,與原文對照,放入筆錄中。
.
4. 接下來警方會通知對方到案說明,對方也可能試圖聯繫,取得和解。若不願和解,就靜候法院調解庭開庭通知。在此期間整理所有文件,並估算損失。記得,#不要低估自己的價值,除了文字內容可以比照發稿的稿費標準外,不要忘記還有自己的時薪,為寫作該篇文章付出的所有交通費、講習費、採訪、編輯費用等;若被侵權的部分還有照片,也要一同估計攝影師的費用、攝影器材租借費。若文章有商業用途,商業損失如廣告費、點擊率等也須一併估算在內。訴訟期間發生的所有相關費用如交通費、公證費、文件印刷、光碟印製費等也可計算其中。
.
5. 確認調解時間後,出席調解庭,帶好所有的證據、通訊往來,整理好論點,在調解委員前陳述,並提出和解條件,與對方協調。若調解成立,須確認同意的執行方案被妥善記錄至調解庭筆錄中,才有執行約束力。此時可選擇撤回告訴。若調解不成立,則該案件將直接進入法院審理程序。注意著作權侵權包含民事與刑事責任,因此若最後侵權行為確認,侵權行為人將會留下刑事案底。
.
再次感謝大家的支持,也希望這篇文章對提升整體創作環境有所幫助。現行的法規制度讓受害者非常疲憊,竊取者付出的代價很低,但我希望大家不要因為爭取自己該有的權益而自責,只有自己站起來保護自己的權益,現況才有改變的可能。衷心希望以後不再看到抄襲者理所當然,用「疏忽」、「遺漏」掩飾錯誤;也希望不再聽說有人受害,卻被大家勸退,理由是「爭一口氣很麻煩划不來」。
.
🔖 相關連結:
前情提要:https://tinyurl.com/ztykf69z
味師傅訪談原文:https://tinyurl.com/n7kuvmj8 (FB) 、https://tinyurl.com/hhh88uf7(網站)
行為過程記錄範例 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] [ZKP 讀書會] Trust Token Browser API
✍️ Yuren Ju
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Trust Token API 是一個正在標準化的瀏覽器 API,主要的目的是在保護隱私的前提下提供跨站授權 (Cross-domain authorization) 的功能,以前如果需要跨站追蹤或授權通常都使用有隱私疑慮的 Cookies 機制,而 Trust Token 則是希望在保護隱私的前提下完成相同的功能。
會在 ZKP (Zero-knowledge proof) 讀書會研究 Trust Token 主要是這個 API 採用了零知識證明來保護隱私,這也是這次讀書會中少見跟區塊鏈無關的零知識證明應用。
問題
大家應該都有點了一個產品的網頁後,很快的就在 Facebook 或是 Google 上面看到相關的廣告。但是產品網頁並不是在 Facebook 上面,他怎麼會知道我看了這個產品的頁面?
通常這都是透過 Cookie 來做跨網站追蹤來記錄你在網路上的瀏覽行為。以 Facebook 為例。
當使用者登入 Facebook 之後,Facebook 會透過 Cookie 放一段識別碼在瀏覽器裡面,當使用者造訪了有安裝 Facebook SDK 來提供「讚」功能的網頁時,瀏覽器在載入 SDK 時會再度夾帶這個識別碼,此時 Facebook 就會知道你造訪了特定的網頁並且記錄下來了。如此一來再搭配其他不同管道的追蹤方式,Facebook 就可以建構出特定使用者在網路上瀏覽的軌跡,從你的瀏覽紀錄推敲喜好,餵給你 Facebook 最想給你看的廣告了。
不過跨站追蹤也不是只能用在廣告這樣的應用上,像是 CDN (Content Delivery Network) 也是一個應用場景。CDN 服務 Cloudflare 提供服務的同時會利用 Captcha 先來確定進入網站的是不是真人或是機器人。而他希望使用者如果是真人時下次造訪同時也是採用 Cloudflare 服務的網站不要再跳出 Captcha 驗證訊息。
雖然 Cloudflare 也需要跨站驗證的功能來完成他們的服務,但是相較於 Google 或 Facebook 來說他們是比較沒那麼想知道使用者的隱私。有沒有什麼辦法可以保護使用者隱私的狀況下還能完成跨站驗證呢?
這就是今天要講的新 API: Trust Token。
Trust Token API - The Chromium Projects
Trust Token / Privacy Pass 簡介
Trust Token 其實是由 Privacy Pass 延伸而來。Privacy Pass 就是由 Cloudflare 所開發的實驗性瀏覽器延伸套件實作一個驗證機制,可以在不透漏過多使用者隱私的前提下實作跨站驗證。而 Trust Token 則是標準化的 Privacy Pass,所以兩個運作機制類似,但是實作方式稍有不同。
先看一下 Privacy Pass 是如何使用。因為這是實驗性的瀏覽器延伸套件所以看起來有點陽春,不過大致上還是可以了解整個概念。
以 hCaptcha 跟 Cloudflare 的應用為例,使用者第一次進到由 Cloudflare 提供服務的網站時,網站會跳出一些人類才可以解答的問題比如說「挑出以下是汽車的圖片」。
當使用者答對問題後,Cloudflare 會回傳若干組 blind token,這些 blind token 還會需要經過 unblind 後才會變成真正可以使用的 token,這個過程為 issue token。如上圖所示假設使用者這次驗證拿到了 30 個 token,在每次造訪由 Cloudflare 服務的網站時就會用掉一個 token,這個步驟稱為 redeem token。
但這個機制最重要的地方在於 Cloudflare 並無法把 issue token 跟 redeem token 這兩個階段的使用者連結在一起,也就是說如果 Alice, Bob 跟 Chris 都曾經通過 Captcha 測試並且獲得了 Token,但是在後續瀏覽不同網站時把 token 兌換掉時,Clouldflare 並無法區分哪個 token 是來自 Bob,哪個 token 是來自 Alice,但是只要持有這種 token 就代表持有者已經通過了 Captcha 的挑戰證明為真人。
但這樣的機制要怎麼完成呢?以下我們會透過多個步驟的例子來解釋如何達成這個目的。不過在那之前我們要先講一下 Privacy Pass 所用到的零知識證明。
零知識證明 (Zero-knowledge proof)
零知識證明是一種方法在不揭露某個祕密的狀態下,證明他自己知道那個秘密。
Rahil Arora 在 stackexchange 上寫的比喻我覺得是相對好理解的,下面簡單的翻譯一下:
假設 Alice 有超能力可以幾秒內算出樹木上面有幾片樹葉,如何在不告訴 Bob 超能力是怎麼運作並且也不告訴 Bob 有多少片葉子的狀況下證明 Alice 有超能力?我們可以設計一個流程來證明這件事情。
Alice 先把眼睛閉起來,請 Bob 選擇拿掉樹上的一片葉子或不拿掉。當 Alice 睜開眼睛的時候,告訴 Bob 他有沒有拿掉葉子。如果一次正確的話確實有可能是 Alice 幸運猜到,但是如果這個過程連續很多次時 Alice 真的擁有數葉子的超能力的機率就愈來愈高。
而零知識證明的原理大致上就是這樣,你可以用一個流程來證明你知道某個秘密,即使你不真的揭露這個秘密到底是什麼,以上面的例子來說,這個秘密就是超能力運作的方式。
以上就是零知識證明的概念,不過要完成零知識證明有很多各式各樣的方式,今天我們要介紹的是 Trust Token 所使用的零知識證明:DLEQ。
DLEQ (Discrete Logarithm Equivalence Proof)
說明一下以下如果小寫的變數如 c, s 都是純量 (Scalar),如果是大寫如 G, H則是橢圓曲線上面的點 (Point),如果是 vG 則一樣是點,計算方式則是 G 連續相加 v 次,這跟一般的乘法不同,有興趣可以程式前沿的《橢圓曲線加密演算法》一文解釋得比較詳細。
DLEQ 有一個前提,在系統中的所有人都知道公開的 G 跟 H 兩個點,此時以下等式會成立:
假設 Peggy 擁有一個秘密 s 要向 Victor 證明他知道 s 為何,並且在這個過程中不揭露 s 真正的數值,此時 Victor 可以產生一個隨機數 c 傳送給 Peggy,而 Peggy 則會再產生一個隨機數 v 並且產生 r,並且附上 vG, vH, sG, sH:
r = v - cs
所以 Victor 會得到 r, sG, sH, vG, vH 再加上他已經知道的 G, H。這個時候如果 Victor 計算出以下兩個等式就代表 Peggy 知道 s 的真正數值:
vG = rG + c(sG)vH = rH + c(sH)
我們舉第二個等式作為例子化簡:
vH = rH + c(sH) // 把 r 展開成 v - csvH = (v - cs)H + c(sH) // (v - cs)H 展開成 vH - csHvH = vH - c(sH) + c(sH) // 正負 c(sH) 消掉vH = vH
這樣只有 Peggy 知道 s 的狀況下才能給出 r,所以這樣就可以證明 Peggy 確實知道 s。
從簡易到實際的情境
Privacy Pass 網站上透過了循序漸進的七種情境從最簡單的假設到最後面實際使用的情境來講解整個機制是怎麼運作的。本文也用相同的方式來解釋各種情境,不過前面的例子就會相對比較天真一點,就請大家一步步的往下看。
基本上整個過程是透過一種叫做 Blind Signature 的方式搭配上零知識證明完成的,以下參與的角色分為 Client 與 Server,並且都會有兩個階段 issue 與 redeem token。
Scenario 1
如果我們要設計一個這樣可以兌換 token 來確認身分的系統,其中有一個方法是透過橢圓曲線 (elliptic curve) 完成。Client 挑選一個在橢圓曲線上的點 T 並且傳送給 Server,Server 收到後透過一個只有 Server 知道的純量 (scalar) s 對 T 運算後得到 sT 並且回傳給 Client,這個產生 sT 的過程稱為 Sign Point,不過實際上運作的原理就是橢圓曲線上的連續加法運算。
SignPoint(T, s) => sT
等到 Client 需要兌換時只要把 T 跟 sT 給 Server,Server 可以收到 T 的時候再 Sign Point 一次看看是不是 sT 就知道是否曾經 issue 過這個 token。
Issue
以下的範例,左邊都是 Client, 右邊都是 Server。 -> 代表 Client 發送給 Server,反之亦然。
// Client 發送 T 給 Server, 然後得到 sT
T -> <- sT
Redeem
// Client 要 redeem token 時,傳出 T 與 sT
T, sT ->
問題:Linkability
因為 Server 在 issue 的時候已經知道了 T,所以基本上 Server 可以透過這項資訊可以把 issue 階段跟 redeem 階段的人連結起來進而知道 Client 的行為。
Scenario 2
要解決上面的問題,其中一個方法是透過 Blind Signature 達成。Client 不送出 T,而是先透過 BlindPoint 的方式產生 bT 跟 b,接下來再送給 Server bT。Server 收到 bT 之後,同樣的透過 Sign Point 的方式產生結果,不一樣的地方是情境 1 是用 T,而這邊則用 bT 來作 Sign Point,所以得出來的結果是 s(bT)。
Client:BlindPoint(T) => (bT, b)
Server:SignPoint(bT, s) => sbT
而 Blind Signature 跟 Sign Point 具備了交換律的特性,所以得到 s(bT) 後可以透過原本 Client 已知的 b 進行 Unblind:
UnblindPoint(sbT, b) => sT
這樣一來在 Redeem 的時候就可以送出 T, sT 給 Server 了,而且透過 SignPoint(T, s) 得出結果 sT’ 如果符合 Client 傳來的 sT 就代表確實 Server 曾經簽過這個被 blind 的點,同時因為 T 從來都沒有送到 Server 過,所以 Server 也無法將 issue 與 redeem 階段的 Client 連結在一起。
Issue
bT -> <- s(bT)
Redeem
T, sT ->
問題:Malleability
以上的流程其實也有另外一個大問題,因為有交換律的關係,當 Client 透過一個任意值 a 放入 BlindPoint 時產生的 a(sT) 就會等於 s(aT):
BlindPoint(sT) => a(sT), a// a(sT) === s(aT)
此時如果將 aT 跟 s(aT) 送給 Server Redeem,此時因為
SignPoint(aT, s) => s(aT)
所以就可以兌換了,這樣造成 Client 可以無限地用任意數值兌換 token。
Scenario 3
這次我們讓 Client 先選擇一個純數 t,並且透過一種單向的 hash 方式來產生一個在橢圓曲線上的點 T,並且在 redeem 階段時原本是送出 T, sT 改成送出 t, sT。
因為 redeem 要送出的是 t,上個情境時透過任意數 a 來產生 s(aT) 的方法就沒辦法用了,因為 t 跟 sT 兩個參數之間並不是單純的再透過一次 BlindPoint() 就可以得到,所以就沒辦法無限兌換了。
Issue
T = Hash(t) bT -> <- sbT
Redeem
t, sT ->
問題:Redemption hijacking
在這個例子裏面,Client 其實是沒有必要傳送 sT 的,因為 Server 僅需要 t 就可以計算出 sT,額外傳送 sT 可能會導致潛在的 Redemption hijacking 問題,如果在不安全的通道上傳輸 t, sT 就有可能這個 redemption 被劫持作為其他的用途。
不過在網站上沒講出實際上要怎麼利用這個問題,但是少傳一個可以計算出來的資料總是好的。Client 只要證明他知道 sT 就好,而這可以透過 HMAC (Hash-based Message Authentication Code) 達成。
Scenario 4
步驟跟前面都一樣,唯一不一樣的地方是 redeem 的時候原本是傳 t, sT,現在則改傳 t, M, HMAC(sT, M),如果再介紹 HMAC 篇幅會太大,這邊就不解釋了,但可以是作是一個標準的 salt 方式讓 Hash 出來的結果不容易受到暴力破解。
這樣的特性在這個情境用很適合,因為 Server 透過 t 就可以計算出 sT,透過公開傳遞的 M 可以輕易地驗證 client 端是否持有 sT。
Issue
T = Hash(t) bT -> <- sbT
Redeem
t, M, HMAC(sT, M) ->
問題:Tagging
這邊的問題在於 Server 可以在 issue 階段的時候用不一樣的 s1, s2, s3 等來發出不一樣的 sT’,這樣 Server 在 Redeem 階段就可以得知 client 是哪一個 s。所以 Server 需要證明自己每次都用同樣的 s 同時又不透漏 s 這個純亮。
要解決這個問題就需要用到前面我們講解的零知識證明 DLEQ 了。
Scenario 5
前面的 DLEQ 講解有提到,如果有 Peggy 有一個 s 秘密純量,我們可以透過 DLEQ 來證明 Peggy 知道 s,但是又不透漏 s 真正的數值,而在 Privacy Pass 的機制裡面,Server 需要證明自己每次都用 s,但是卻又不用揭露真正的數值。
在 Issue 階段 Client 做的事情還是一樣傳 bT 給 Server 端,但 Server 端的回應就不一樣了,這次 Server 會回傳 sbT 與一個 DLEQ 證明,證明自己正在用同一個 s。
首先根據 DLEQ 的假設,Server 會需要先公開一組 G, H 給所有的 Client。而在 Privacy Pass 的實作中則是公開了 G 給所有 Client,而 H 則改用 bT 代替。
回傳的時候 Server 要證明自己仍然使用同一個 s 發出 token,所以附上了一個 DLEQ 的證明 r = v - cs,Client 只要算出以下算式相等就可證明 Server 仍然用同一個 s (記住了 H 已經改用 bT 代替,此時 client 也有 sbT 也就是 sH):
vH = rH + c(sH) // H 換成 bTvbT = rbT + c(sbT) // 把 r 展開成 v - csvbT = (v - cs)bT + c(sbT) // (v - cs)bT 展開成 vbT - csbTvbT = vbT - c(sbT) + c(sbT) // 正負 c(sbT) 消掉vbT = vbT
這樣就可以證明 Server 依然用同一個 s。
Issue
T = Hash(t) bT -> <- sbT, DLEQ(bT:sbT == G:sG)
Redeem
t, M, HMAC(sT, M) ->
問題:only one redemption per issuance
到這邊基本上 Privacy Pass 的原理已經解釋得差不多了,不過這邊有個問題是一次只發一個 token 太少,應該要一次可以發多個 token。這邊我要跳過源文中提到的 Scenario 6 解釋最後的結果。
Scenario 7
由於一次僅產生一個 redeem token 太沒效率了,如果同時發很多次,每次都產生一個 proof 也不是非常有效率,而 DLEQ 有一個延伸的用法 “batch” 可以一次產生多個 token, 並且只有使用一個 Proof 就可以驗證所有 token 是否合法,這樣就可以大大的降低頻寬需求。
不過這邊我們就不贅述 Batch DLEQ 的原理了,文末我會提及一些比較有用的連結跟確切的源碼片段讓有興趣的人可以更快速的追蹤到源碼片段。
Issue
T1 = Hash(t1) T2 = Hash(t2)T3 = Hash(t3)b1T1 ->b2T2 ->b3T3 -> c1,c2,c3 = H(G,sG,b1T1,b2T2,b3T3,s(b1T1),s(b2T2),s(b3T3)) <- sb1T1 <- sb2T2 <- sb3T3 <- DLEQ(c1b1T1+c2b2T2+c3b3T3:s(c1b1T1+c2b2T2+c3b3T3) == G: sG)
Redeem
t1, M, HMAC(sT1, M) ->
結論
Privacy Token / Trust Token API 透過零知識證明的方式來建立了一個不需要透漏太多隱私也可以達成跟 cookie 相同效果的驗證方式,期待可以改變目前許多廣告巨頭透過 cookie 過分的追蹤使用者隱私的作法。
不過我在 Trust Token API Explainer 裡面看到這個協議裡面的延伸作法還可以夾帶 Metadata 進去,而協議制定的過程中其實廣告龍頭 Google 也參與其中,希望這份協議還是可以保持中立,盡可能地讓最後版本可以有效的在保護隱私的情況下完成 Cross-domain authorization 的功能。
參考資料
IETF Privacy Pass docs
Privacy Pass: The Protocol
Privacy Pass: Architectural Framework
Privacy Pass: HTTP API
Cloudflare
Supporting the latest version of the Privacy Pass Protocol (cloudflare.com)
Chinese: Cloudflare支持最新的Privacy Pass扩展_推动协议标准化
Other
Privacy Pass official website
Getting started with Trust Tokens (web.dev)
WICG Trust Token API Explainer
Non-interactive zero-knowledge (NIZK) proofs for the equality (EQ) of discrete logarithms (DL) (asecuritysite.com) 這個網站非常實用,列了很多零知識證明的源碼參考,但可惜的是 DLEQ 這個演算法講解有錯,讓我在理解演算法的時候撞牆很久。所以使用的時候請多加小心,源碼應該是可以參考的,解釋的話需要斟酌一下。
關鍵源碼
這邊我貼幾段覺得很有用的源碼。
privacy pass 提供的伺服器端產生 Proof 的源碼
privacy pass 提供的瀏覽器端產生 BlindPoint 的源碼
github dedis/kyber 產生 Proof 的源碼
[ZKP 讀書會] Trust Token Browser API was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
行為過程記錄範例 在 粉條愛彭哥 Youtube 的最佳貼文
剛剛在錄影過程突遭消防車包圍
差一點以為是火災
幸虧沒事彭哥得以倖存
在股市上也常突然遇到這種事情發生
尊重股市趨勢是非常重要
只是在意外發生可能當下扭轉股市
又該當如何應對呢
今天用權值三寶來跟大家討論
現階段股市趨勢與意外的面對措施吧
#1301台塑 #2330台積電 #2317鴻海
◆關鍵詞◆:
彭哥富裕路|彭貝爾|戰鬥K線|大賺小賠|彭哥的贏家之路
股價結構|方向線|能量線|趨勢線|小高點確立|小低點確立
0050|0056 |存股|股市觀測
◇本頻道特色◇
指標操作是一個方便又營養的模式
如何善用指標及發覺交易的優缺點
就是需要明確的SOP
戰鬥K線就是有這樣的特色
請關注視頻了解它的特色吧
◆最新消息◆
彭哥新增加Telegram頻道
訊息速度更為即時
歡迎各位投資人進來見習
Line@請點我👉https://bit.ly/2Td5Amm
Telegram 請點我👉 https://t.me/fightingKline
◇影片內容宣告◇
本系列全部影片皆為彭貝爾個人的十幾年交易實戰經驗紀錄
全部在行情進場前用VLOG記錄方式
並未有未來行情點位預估、建議操作之行為
請勿因本人之文字、影片紀錄做為判斷參考依據
行為過程記錄範例 在 護理會談紀錄範例在PTT/Dcard完整相關資訊 - 健康急診室 的美食出口停車場
提供護理會談紀錄範例相關PTT/Dcard文章,想要了解更多護病溝通技巧PPT、溝通實錄分析怎麼寫、會談目的範例有關健康/醫療文章或書籍,歡迎來健康急診室提供您完整相關 ... ... <看更多>
行為過程記錄範例 在 護理會談紀錄範例在PTT/Dcard完整相關資訊 - 健康急診室 的美食出口停車場
提供護理會談紀錄範例相關PTT/Dcard文章,想要了解更多護病溝通技巧PPT、溝通實錄分析怎麼寫、會談目的範例有關健康/醫療文章或書籍,歡迎來健康急診室提供您完整相關 ... ... <看更多>
行為過程記錄範例 在 [心得] 雖然我只是護生,但請給我機會學習- 看板Nurse 的美食出口停車場
第一次基護實習
邁向第二個禮拜了
禮拜五要交溝通實錄
可是我的原個案昨天下午出院
(中午出去吃飯才check過醫囑沒有要出院的意思,
吃完回來,一進病房就發現阿嬤行李都收好了....
好不容易才和阿嬤變熟的說...)
所以老師就幫我換了新的個案,一位58歲脊椎滑脫的叔叔
因為新個案昨天下午開刀
所以我到今天早上才自我介紹
為了追上其他同學的進度
自介完就接著量V/S和溝通
然後中午給藥
可是那位叔叔感覺不太喜歡讓實習生照顧
自介的時候看起來心情就不太好了
回應也都很冷淡
後來去量V/S
耳溫被我量了三次才正確
脈搏又被老師要求重量第二遍
整個超緊張手心冒汗
量血壓時手都在抖
我感覺得到個案有點不太信任我的樣子
隔一會去做溝通時
個案也是皺眉,露出你怎麼又來了你要幹嘛的臉
讓我更緊張壓力更大
要問的問題只記得兩三個
問得零零落落
個案也不太想回答我
只好趕快結束離開
走出病房頓時覺得我死定了
這個禮拜的作業需要做溝通實錄和評估
我的個案根本討厭我
我光走進病房就覺得呼吸困難冒冷汗
壓力大到不行
我有和老師提過我的病人似乎不太想要實習生在這邊
可是老師還是不打算讓我換個案
只說可能是因為他今天剛開完刀還不太舒服所以話比較少
叫我明天在試試看
可是禮拜五就要交溝通報告了欸!!
只剩明天一天可以溝通
要是明天不行 我大概就死路一條吧ˊ_>ˋ
回家的一路上好想哭
可是在公車一直忍著不敢掉眼淚
我知道我還有很多很多的東西做不好
也知道我應該要學習的還很多
可是我需要時間練習
我需要有人給我機會嘗試
沒有人一開始就什麼都會
我已經很努力地去做準備
鼓勵自己提起勇氣去跨出很多個第一步
可是
到今天實習第六天
我覺得我的信心越來越薄弱 挫折越來越大
我覺得我沒辦法像學姊那樣每件事都做得乾淨俐落又快速
看學姊要做的事好多好複雜我懷疑自己未來真的也應付得來嗎
無力感越來越大
對自己很失望
我想是我太過軟弱自卑沒有勇氣面對困難
對於護理的熱情慢慢地被澆熄
我到底在做什麼
我該做什麼
心中有好多矛盾和問題
我想我還需要很多磨練與挑戰
但只是希望走在在成長的這條路上
能給我多一點點的機會去學習
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.126.235.188
... <看更多>