手機號碼跳船策略(中)
文:薯伯伯
上文提及 SIM 卡手機號碼是過時的科技,但卻是識別身份的其中一個有效方法,文章中提了一些場景去說明以上情況,建議先讀〈上篇〉,再讀這篇對策。
之前提出的問題,提及使用 SIM 卡時經常遇到的不便,例如要插入 SIM 卡才能收取驗證碼,而萬一丟失手機及 SIM 卡,即使有新手機,也要補領 SIM 卡後才能重新啟動 Signal 或 WhatsApp 等聊天軟件,費時失事。
最理想的處理方法,是使用「虛擬號碼」,英文叫 virtual number,或 VoIP 號碼。不需要 SIM 卡或電話線,只用透過服務供應商的 app 或網站,即能查看發至該號碼的短訊。
舉個例子,萬一你丟失了手機及 SIM 卡,你只要在新的手機安裝 Signal 或 WhatsApp,輸入虛擬號碼,然後登錄虛擬手機 app,即能收取驗證碼,極之方便,尤其身處外地之時。
一,虛擬號碼
虛擬電話通常是美國號碼,也就是開頭是 +1 字頭,成功申請後,這個 +1 字頭的電話號碼,將會成為 Signal 或 WhatsApp 等對外公開的號碼。坊間提供虛擬號碼的服務供應商雖多,但有些號碼似乎曾經過度使用,登記甚麼服務也會出現問題,另一些則要月費數十至百多元港幣,有比較之下就覺得不算太值得。
我測試最多的服務商有三家:MySudo、Google Voice 及 TextNow。我先說我最不推介的服務吧,不推介 TextNow,他們提供的號碼似乎有不少都曾經重複使用,登記服務時經常遇到問題,得物無所用,極不推介。
那就餘下 MySudo 及 Google Voice。兩者之間,我較為喜歡 Google Voice,但在這裡則會推介 MySudo。我雖然很想推介 Google Voice,但除非你身處美國,本身又有美國當地的手機號碼,否則申請過程頗為困難。即使用了 VPN 並連接至美國伺服器 ,Google 似乎偵測到是用 VPN 連線而拒絕服務申請。
比較容易讓大眾去申請的虛擬號碼服務,是 MySudo。下載該 app,必須要透過美國的 App Store,而不能使用香港 App Store。我一向很鼓勵離岸,所以除了銀行戶口要離岸,其實 App Store 也應該要離岸,這裡示範如何申請美國版的 App Store。
MySudo: https://mysudo.com
(這裡示範用 iPhone 設置,Android 手機用戶申請過程應該大同小異,請朝這個方向自己摸索一下。對了,其實很多時寫文章,就只是想開個方向,讓讀者自行探索一下,這樣會更有趣。)
申請美國版 App Store:
這部份最好在電腦上完成:
1. 使用 VPN,連接到美國伺服器。
2. 使用 Firefox 或其他瀏覽器,打開 https://appleid.apple.com/
3. 點擊 Create your Apple ID。
4. 輸入自己的資料,要填寫真實的電郵地址,要跟香港 App Store 的登錄電郵不同,這將是你的戶口登錄資料,稍後要收取一個驗證碼。
5. Country 選 United States。
6. 電話號碼,出奇地,可以使用香港電話,使用 +852,填上香港號碼,稍後要收取驗證碼。
完成以上步驟之後,轉用 iPhone 或 iPad:
1. 建議在手機上先開啟 VPN,連接去美國伺服器。
2. 打開 App Store,把原先的戶口退出。退出的方法,是點擊右上方的頭像,掃至最底,選擇 log out。
3. 登入美國帳號的資料,系統會顯示「This Apple ID has not been used in iTunes Store.」(這個Apple ID還沒有在 iTunes 商店中使用過。)
4. 選擇 Review,然後等待一會,畫面會一片空白,可能要等一分鐘。
5. 確保寫著 United States,選擇 Agree to Terms and Conditions(同意條款),選擇 Next。
6. Payment Method(付費方式):選擇 None。
7. Billing Address(帳單地址):寫個美國地址及電話,自己想,他們不查證。
8. 填完地址選 Next。
9. 如果出現 Apple ID Completed,這就代表你已經成功開設了 App Store 的離岸戶口了!
有關美國 App Store 戶口充值的方法,實在太多細節,請看看之前我寫的文章: https://www.patreon.com/posts/39576067
之後要用美國版 App Store 下載 MySudo:
1. 用美國的 App Store 戶口,下載免費的應用 MySudo:https://mysudo.com/
2. 用 VPN 連接到美國的伺服器。
3. 打開 MySudo,如果起始畫面一直沒有任何動靜,可能因為你還未連接到美國 VPN 吧。
4. 在 MySudo 的介面,選擇 Create your first Sudo。
5. 按 Next。如果這裡出現問題,可以嘗試重新連接 VPN,選擇另一些美國的伺服器。如果仍然出現問題,可能你以前曾經使用同一個美國 Apple ID 下載並申請過 MySudo,所以顯示出錯,要用一個之前沒有下載過 MySudo 的美國 Apple ID 再試一次。
6. 輸入名字,暫時輸入真名都可以,之後隨時可以改動,選 Next。
7. 關鍵步驟,選擇號碼,按 Create a Phone Number。
8. 選擇美國(其他國家也可以,按自己情況決定),輸入自己喜歡的三位數字組合,例如 314(314 是密蘇里州聖路易)
9. 選擇心水號碼,選定之後就不能更改了。
10. 之後會問能否取用咪高風,選擇不允許。
11. 選擇名字,這個名字要選個合用,因為之後修改較麻煩。
12. 之後問能否傳送通知,選擇「允許」。
MySudo 的免費版本,提供一個美國的虛擬號碼(也有英國號碼,但我沒有試用過),縱然這裡提供的虛擬號碼是免費,但亦可以接收認證短訊,能用作登記 Signal、Telegram 及 WhatsApp,亦能夠接受不少證券行、交易所之類的二步認證碼,但 VoIP 的號碼不能用作申請美國版本的 PayPal。
我申請的時候,MySudo 號碼是可以一直保留,但近日收到一些讀者回應,指 MySudo 號碼一個月不使用就會過期,我覺得也值得付費保留號碼,而且收費不貴,最便宜的收費計劃一個月才 US$ 0.99。
由於美國 App Store 不支援香港信用卡,所以最好最方便最快捷亦是較為安全的充值方法,是購買 Apple Gift Card(以前有分 iTunes 卡或 Apple Store 卡而且互不兼容,現在統一了,方便易明)。先到 https://www.apple.com/shop/buy-giftcard/giftcard ,選擇 Email,選擇 Other Amount,輸入 $10 試玩一下吧,在 Recipient/Sender Name 輸入自己(可以是代號), Recipient/Sender Email 輸入自己電郵地址(要能接收訊息)。之後填信用卡資料時,只要確保信用卡號碼、日期及 CVC 正確就可以,至於 billing address 即使填了美國,其實也會通過的。可以支付的信用卡,例如獅子銀行信用卡、八達通 app 內的 MasterCard 等,比較容易出問題或被拒絕的是 DBS。支付後等一小時,收到禮品卡就按照指示充值。我自己最喜歡用這個方法充值,而不是把信用卡綁定在 App Store 內,方便易容,又減少信用卡被盜的風險。
🚫 注意:切勿把這個美國號碼登記接收銀行驗證碼,否則一些銀行以為你與美國有關,中了 FATCA(《美國海外帳戶稅收遵從法》,Foreign Account Tax Compliance Act)並要求你經常填寫表格 W-8BEN 申報,很麻煩。其他則沒有問題,只要不用來收銀行短訊就可以。
有一點必須留意,截至 2021 年 1 月 22 日,MySudo 仍然不能在 iPhone 與 Android 之間轉移,但該公司網站上稱會考慮加入此功能。而 MySudo 的備份一定要做得好,這個 app 用 iCloud 也合適(如果開 iCloud,其他大多數 app 的數據其實都沒必要同步,但 MySudo 有點例外)。如果沒有做好備份可能會失去這個號碼,所以要小心,做好備份。
二,把虛擬號碼融進日常生活
申請了並保存了虛擬號碼,確保 MySudo 的備份做得完美,那就開始逐步把虛擬號碼融進日常生活,取代用了十多年的電話號碼。
這部份還是留待續篇才寫。
注:我稍後(一月底)會在 Patreon 較私密的空間,再探討一下另一個我很推介的虛擬號碼 Google Voice 的申請及應用,但考慮到該文觸及 Google 的灰色地帶,所以設定為 Patreon 的獨家文章。反正大部份文章都是公開,有時設置一兩篇為 Patreon exclusive,我會原諒我自己的任性。
圖:Pixabay / mohamed_hassan
手機號碼跳船策略(上):https://www.patreon.com/posts/46473280
手機號碼跳船策略(中):https://www.patreon.com/posts/46491016
手機號碼跳船策略(下):https://www.patreon.com/posts/46695482
手機號碼跳船策略(番外篇):https://www.patreon.com/posts/46736756(Patreon 獨家文章)
🔑 【資訊保安文章整理,超務實長清單】 https://www.patreon.com/posts/46192115
▶️ 請訂閱 Patreon 頻道,支持不受干預的獨立創作及評論 | www.patreon.com/pazu
同時也有1部Youtube影片,追蹤數超過7,990的網紅大天使TV,也在其Youtube影片中提到,上字幕是一件苦差事,但是有字幕的影片質感提升好多, 有沒有什麼方法可以讓機器人來幫我聽打, 節省我的時間? 可以試試『網易見外工作台』, 它是一個可以聽打中文及英文的免費網站(每天二小時免費), 還可以彼此互相翻譯! 自動把時間軸排好了,可以節省你很多時間~ 但是中文是簡體字, 記得要再用另一個網站...
「你已經輸入 太 多次驗證碼了請 稍 後 再試 多久」的推薦目錄:
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Pazu 薯伯伯 Facebook 的最佳解答
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Taipei Ethereum Meetup Facebook 的最佳貼文
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Pazu 薯伯伯 Facebook 的最佳貼文
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 大天使TV Youtube 的最佳解答
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 [問題] 臉書被盜了QQ - 看板WomenTalk - 批踢踢實業坊 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 臉書被盜怎麼辦? 如何取回被盜的Facebook 帳號教學文 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 由於密碼重設次數上限,因此無法重設密碼 - Facebook 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Facebook被盜用解決方法之一@ A Small World - 痞客邦 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 FB被盜,密碼修改驗證碼那關一直鬼打牆,求救啊~ - Mobile01 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 臉書(facebook)帳號被盜,驗證碼失效,如何救回來 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 fb密碼輸入太多次要等多久-Dcard與PTT討論推薦|2022年10月 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 fb密碼輸入太多次要等多久-Dcard與PTT討論推薦|2022年10月 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 fb密碼輸入太多次要等多久的情報與評價,FACEBOOK 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 「網際網路」FB帳號被盜、停權等問題請找Facebook客服 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 FB帳號被盜怎麼辦?被開雙重驗證怎麼辦? - 3C板 - Dcard 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Facebook帳號被盜嗎?啟用登入許可就不怕了! - 高登工作室 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 FB 無法登入!您的嘗試過於頻繁。請稍後再試怎麼辦 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 #fb改密碼是對的嗎#新手用臉書改密碼馬上封鎖原因 #FB ... 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 FB 帳號被盜了!教你快速止血救回個人/粉專/廣吿帳號(含FB ... 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 [詢問] FB被盜認證碼顯示輸入太多次請稍後 - Mo PTT 的評價
- 關於你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 [詢問] FB被盜認證碼顯示輸入太多次請稍後 - Mo PTT 的評價
你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Taipei Ethereum Meetup Facebook 的最佳貼文
📜 [專欄新文章] Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作
✍️ 田少谷 Shao
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
在 🦄 Uniswap v2 到來之前徹底了解 v1 的設計與演算法!
Image source: https://uniswap.org/
Outline
一. 前言二. 恆定乘積做市商模型 Constant Product Market Maker Model 1. 計入手續費 2. 程式碼結構 3. 演算法核心與實作 4. 段落小結三. 流動性 Liquidity 1. 第一筆流動性注入、決定k值 2. 除了第一筆以外的情況四. 結語
一. 前言
暨上一篇開始接觸了 Vyper 後,我找了 Uniswap 的程式碼來更加熟悉 Vyper 的實作方法,順便研究了其演算法,然後就又寫了一篇 xD
類 Python 的合約語言 Vyper 開發入門:與 Solidity 差異、用 Truffle 部署、ERC20 賣幣合約實做
Uniswap 是以太坊上非常成功的自動做市商 Automated Market Maker (AMM)。本次我將用的 Uniswap 的程式碼搭配由 Runtime Verification 這家審計公司對 Uniswap 所做的形式化驗證結果來解釋恆定乘積做市商模型的 Vyper 實作 (2018 審計時 Uniswap 就已經是用 Vyper 而非 Solidity 了):
智能合約程式碼:https://github.com/Uniswap/uniswap-v1/blob/master/contracts/uniswap_exchange.vy
合約審計結果:https://github.com/runtimeverification/verified-smart-contracts/blob/master/uniswap/x-y-k.pdf
本文將以講解實作概念及數學推導為重點,程式碼的部分只是輔助。審計結果將恆定乘積做市商模型演算法的數學推導寫得非常清楚而有趣(?),建議有興趣者可以整份看過一遍,相信得到很多收穫!
至於更多 Uniswap 的介紹有興趣者可以參考 吳冠融 Roger Wu 所撰寫的簡介與使用流程:
解析 DeFi 項目《Uniswap》(一)Uniswap 是什麼?
解析 DeFi 項目《Uniswap》(二)Uniswap 如何使用?
在開始前的最後,先預告本文頗長,所以來播個被 Youtube 推薦的歌吧:
二. 恆定乘積做市商模型 Constant Product Market Maker Model
交易所如果要去中心化、也不使用掛單 order book,就需要靠演算法自動算出交易標的的數量與價格,而 Uniswap 使用名為恆定乘積的演算法,其來源可追溯自 Vitalik 的這篇文章:點我。
公式非常的簡單:x * y = k。令交易的兩虛擬貨幣為 X 和 Y,各自數量為 x 和 y,兩貨幣數量的乘積 x * y 恆等於 k,k 值是由第一筆注入的流動性所決定 (於 三. 流動性 Liquidity 解釋)。
因此,用 ∆x 數量的 X 幣來購買 Y 幣所能得到的數量 ∆y、或是為了購買 ∆y 需要付出的 ∆x 數量,依照此公式進行計算:(x+∆x)(y-∆y) = k,而交易的價格就是兩幣量 ∆x 和 ∆y 的比。
以下公式用 α = ∆x / x 和 β = ∆y / y 來表示 ∆x 和 ∆y 及 X Y 兩幣在交易發生後的新均衡數量:
圖一
1. 計入手續費
在 Uniswap 進行的每一筆交易都會被收取 ρ = 0.003 / 0.3% 的手續費回饋給流動性提供者 liquidity provider ,因此要將手續費納入公式的考量:
圖二
上圖的公式或許不太直覺,我建議不要從 x’ρ 及 y’ρ 開始理解,而是從 ∆x 和 ∆y 兩值開始:手續費 ρ = 0.3% 的意思是會從付款中扣掉 0.3 %,也就是從 ∆x 扣。在有手續費的情況下 ∆x 就變成了 (1-ρ)∆x ,若令 γ = 1-ρ 則為 γ∆x。因此,將圖一中的 ∆x 換成 γ∆x,就會得到以下式子:
source: https://www.codecogs.com/latex/eqneditor.php
將等號左方的 γ 移到右方後就得到了圖二中的 ∆x。同理,由於 ∆y 中的 α = ∆x / x ,用 γ∆x 代換 ∆x 就會得到圖二中的 ∆y (有 α 的地方乘上 γ )。而 x’ 還有 y’ 就可以由 ∆x 和 ∆y 推出來了!
然而,將圖二中得到的 x’ 和 y’ 相乘,會得到:
source: https://www.codecogs.com/latex/eqneditor.php
也就是說,當有手續費使得 γ != 1 /ρ != 0,x’ρ * y’ρ 的值其實會稍微和 xy = k 不同:在實作上 γ = 0.997 / ρ = 0.003,因此 1/γ-1 ≒ 0.003。β = ∆y / y 代表的是換得的 Y 幣佔總量的比例,即使最大值為 1,誤差也只有 1 * 0.003,故可知手續費 = 0.3% 對於 k 值的影響極小。
2. 程式碼結構
了解了基本的公式後,就可以開始研究程式碼是怎麼撰寫的。首先來看各個函式的功能:
addLiquidity() 及 removeLiquidity():轉入與轉出資金,留到 三. 流動性 Liquidity 中說明
getInputPrice() 及 getOutputPrice():最主要的函式,用以計算給 ∆x 所能換得的 ∆y 數量、以及為了得到 ∆y 所要支付 ∆x 的數量。此兩函式會被其他負責進行交易、匯幣的函式使用
三組 (eth->Token, Token->eth, Token->Token) 的 swap() 及 transfer():swap() 的收幣人就是付款人、transfer() 的收幣人不是付款人而是指定的對象。基本上這兩函式就是呼叫 getInputPrice() 或是 getOutputPrice() 後進行匯幣的動作,因此不再多做解釋
3. 演算法核心與實作
在研讀程式碼前,先回顧一下 ∆x 和 ∆y 的公式:
首先我們考慮用 ∆x 所能購買到的 ∆y 的 getInputPrice():
什麼…就這幾行程式碼?是的。
以上的程式碼和公式表達方式不同,因此先將 α = ∆x / x 和 β = ∆y / y 代換回來並將上下同乘 x:
source: https://www.codecogs.com/latex/eqneditor.php
由於 γ = 0.003,可以將上下同乘 1000 後得到:
source: https://www.codecogs.com/latex/eqneditor.php
接著就能來對照程式碼了:
(109行) numerator: input_amount 是欲支付的 X 幣數量 ∆x、output_reserve 是 Y 幣數量 y,再乘上 997 後就是等式右邊的上方 (= 997∆xy)
(110行) denominator: input_reserve 是 X 幣的數量,乘上 1000 再加上剛剛算過的 997∆x,就得到了等式右邊的下方 (= 1000x + 997∆x)
此處要注意的是 Vyper 的除法是無條件捨去,等同於 floor() 函式。這會不會造成嚴重的影響呢?如果熟悉 ERC20 的人應該記得,在發幣時輸入的四個參數中有一個參數代表小數點的位數,如同下方程式碼中的 2 代表最後兩位在小數點後。舉例來說,當 getInputPrice() 收到 1234567 為這個幣的 input_amount 時,代表使用者擁有的幣的數目實際上是 12345.67。因此,即使將結果捨去 0.67 後的數字,影響真的不大,況且如果不捨去而選擇無條件進位,那代表交易所反而要虧損一點點啦,太佛心了吧 xD 有興趣者可以看看審計報告的內容,有更詳細地去定義這些誤差所影響的範圍!
再來我們看若要購買 ∆y 需要付出多少 ∆x 的 getOutputPrice()。
一樣先將 α = ∆x / x 、β = ∆y / y 和 γ = 0.003 代換並上下同乘 1000y 得到:
source: https://www.codecogs.com/latex/eqneditor.php
我們已經看過 getInputPrice() 一次了,所以應該能發現第 122–124 行得出的結果和上式相同。要注意的是這邊的結果反而是無條件捨去後直接 +1,因為這是在計算使用者要付多少 ∆x 才能購買到 ∆y,為了不讓交易所虧只能選擇請使用者多付一點點。
4. 段落小結
以上就是撇除匯幣等函示,恆定乘積做市商的 Vyper 實作,沒錯就這樣而已!Uniswap 之所以可以做到低 gas 消耗就是因為這個演算法本身就非常簡單,所需的運算也就是兩三次乘除法而已!
不過我們還沒結束,接下來要談談如何投入資金/注入流動性,而這部分也包含了決定 k 值的精妙機制!
三. 流動性 Liquidity
流動性指的是交易市場中能夠交易的資金/標的物的量。使用自動做市商 (AMM) 而非掛單的最大好處就是市場一定會有流動性,而缺點就是如果交易量越大就會造成越大的滑點 Slippage,意思就是交易價格變動會越大、得到的價格越差 。
source: https://ethresear.ch/t/improving-front-running-resistance-of-x-y-k-market-makers/1281
我們可以用上面提到的 V 文章中的圖片來迅速帶過,畢竟有關注 Uniswap 的讀者大概都已經看過這圖很多次了。
當要兌換的幣的數量越大/占比越重,例如:20% Y 幣的流動性,就會造成要付出比兌換少量時極為不對稱的高額 X 幣。
接著我們要來探討注入流動性的原則,依照市場是否已經有流動性而區分為兩種情形:
1. 第一筆流動性注入、決定 k 值
以下程式碼是 addLiquidity() 函式中 46-48, 51, 及 64-74 行。當市場上還沒有任何流動性時,不會滿足第 51 行而是進入 64 行的 else。
在第 65 行我們可以看到 msg.value ≥ 10¹⁰,以及在 67 行 token_amount 就是其中一個輸入值 max_tokens。這邊代表的是第一個注入流動性的使用者可以自行決定要注入多少 Ether (≥ 10¹⁰) (= x) 以及相應的幣的數量 (= y),也就是上方提到的 k 值 (= x* y),在本例的 X 幣就是 Ether。(本處先不解釋剩餘的程式碼,留到 2. 除了第一筆以外的情況)
那麼問題來了:第一個注入流動性的人要怎麼決定提供各自多少的兩種幣呢?最好的辦法是依照當時兩幣的市價比,讓兩者的價值 (數量 * 價格) 相同,例如:當 1 Ether 的價格為 100 Dai,注入 1 Ether 以及 100 Dai 是最好的,因為兩種幣的總價值是一樣的,以下舉例說明原因。
當 1 Ether 市價為 100 Dai 時,假設第一人決定注入 1 Ether 和 50 Dai (k = 50),總價值為 150 Dai,我們考慮兩種兌換方法:
Ether -> Dai:用 0.1 Ether 來購買 Dai,依照上方公式 (1+0.1)(50-y) = 50 可得 y ≒ 4.55,也就是說得到的價格是 0.1 Ether = 4.55 Dai,遠低於市價 0.1 Ether = 10 Dai,相信沒有人這麼傻~
Dai -> Ether:用 2 Dai 來購買 Ether,依照上方公式 (1-x)(50+2) = 50 可得 x ≒ 0.038,也就是說得到的價格是 2 Dai = 0.038 Ether,高於市價 2 Dai = 0.02 Ether,那麼眼尖的人就會立刻衝來套利了xD
那麼即使如此,第一人有所損失嗎?當然有!假設路人 A 手上有 30 Dai (= 0.3 Ether),A 看到機會後就把 30 Dai 全換成 Ether:(1-x)(50+30) = 50 可得 x = 0.375,大於原本持有的 Dai 的價值 0.3 Ether。此時,第一人即使立刻抽出現存的全部資金 Ether = 0.625 及 Dai = 80,總價值也只剩下 142.5 Dai,比起原本的 150 Dai 還少。以上的計算還有手續費沒有納入考量,但也只有 30 Dai 的 0.3% = 0.09 Dai。
由上例可知,第一位提供流動性的人為了避免自己的損失,確實得依照當時兩幣的市價比去提供相應的數量。傑克,這真是太神奇了0…0
2. 除了第一筆以外的情況
如果市場已經有流動性,使用 addLiquidity() 來注入流動性就會進入第 51 行的 if。
source: https://github.com/Uniswap/uniswap-v1/blob/master/contracts/uniswap_exchange.vy
(53行) eth_reserve: 由於使用者已經透過函式 addLiquidity() 將錢匯入了合約,因此將合約所擁有的 Ether 數量 self.balance (= x + ∆x) 減去使用者匯入的錢 msg.value (= ∆x),得到使用者匯錢之前合約內所擁有的 Ether 數量 (= x)
(54行) token_reserve: self.token 是一個餵入幣地址的 ERC20 instance;透過呼叫 ERC20 的函式 balanceOf() 即可查出合約所擁有的 Y 幣的數量 (= y)
(55行) token_amount: 透過將合約所擁有的 Y 幣的數量 token_reserve (= y) 乘上使用者匯入的錢 msg.value (= ∆x) 對合約原本擁有的Ether 數量 eth_reserve (= x) 的比例,代表使用者應該相應地注入多少 Y 幣 (∆y = y * ∆x / x)。除法一樣是無條件捨去
(56行) liquidity_minted: 將原本交易所中的總流動性 total_liquidity 乘上增加的比率 msg.value / eth_reserve (= ∆x / x) ,代表增加的流動性,隨後會在第 58 行記錄下來
(60行) transferFrom() 函式將使用者應付的 Y 幣數量 token_amount (= ∆y) 匯入當前合約,就完成了流動性的注入。小提示:智能合約中的 assert() 會確保函式內的條件如果失敗就整筆交易 transaction 直接取消,因此只要傳入的參數已經被計算好,於 60 行再進行 transferFrom() 其實與放在前面並沒有太大的差別
以上就是注入流動性的大致實作內容。取出資金 removeLiquidity() 其實與 addLiquidity() 的做法大同小異,因此就不再贅述。
四. 結語
呼,真的累。恆定乘積做市商模型的概念雖然簡單,但解釋起來還是挺複雜的!其實本文並未著墨於審計報告中的主要議題:評估因為整數除法 (不使用浮點數) 而造成的誤差範圍,因為講起來非常複雜、也不是真的這麼需要知道。不過,恰巧就是這些程式碼的細節有可能讓程式產生預期之外的結果!因此,對於有興趣了解該如何去分析智能合約整數除法的讀者,可以研究一下;而 Uniswap 的程式碼因為是用 Vyper 實作,可讀性非常高、同時也不難,因此也非常值得打開來看看、甚至動手實作自己的版本!
最後,如果本文有任何錯誤,請不吝提出,我會盡快做修正;而如果我的文章有幫助到你,可以看看我的其他文章,歡迎一起交流 :)
田少谷 Shao - Medium
Uniswap 解析:恆定乘積做市商模型 Constant Product Market Maker Model 的 Vyper 實作 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 Pazu 薯伯伯 Facebook 的最佳貼文
電腦手機網絡安全(四):有關安全鑰匙 YubiKey,你問我答(頗大篇幅修訂版)+ 香港用戶訂購優惠詳情
文:薯伯伯
(超長文,建議先儲存,有需要再找來讀。不想全文讀,只想買 keys,請只看「香港用戶訂購優惠詳情」,第十三條問答及第十四條問答。)
早幾天寫了一篇文章,提到二步認證的安全鑰匙 YubiKey,無獨有偶,《立場》的另一位博客,《茉莉花開:中東革命與民主路》的作者陳婉容原來早在七月份就聯絡了瑞典的 Yubico 公司,希望取得他們的贊助,在核實身份後,這家瑞典公司寄出了五百條 YubiKey 送給香港人,來自遠方的慷慨之舉,實在令人感動。
我發覺不少人對於 YubiKey 的功能及用法均有誤解,甚至有人認為「有伏」,或誤以為用上 YubiKey 後反而更危險。我回應了一些評語,整合之後發到自己的臉書專頁,《立場》的編輯看到,問可否轉載到《立場》,所以我又花了一點時間,整理一下文稿。
後來我跟 YubiKey 的香港代理分銷商聯絡,提到近日大家較為關注網絡保安,他們同意給讀者提供一個折扣優惠,也希望加強普羅大眾對網絡安全的意識。於是,我又再把之前的文章修訂一下,再講解清楚相關的使用細項,希望有興趣的讀者,讀完這篇文章後,可以加強自身的網絡保安防護。
香港用戶訂購優惠詳情
先說一下香港分銷商的優惠模式:
1. YubiKey 的產品,全線八折,目前這個優惠沒有定下限期,但會看看情況再決定何時終止。(這個優惠折扣,其實是我建議的,因為只是想跟官網的教育優惠體齊而已。我希望讀者可以有優惠,但同一時間也不希望分銷商要做蝕本生意。)
2. 又或者是以原價購買 YubiKey,但會送上 Bitdefender 防護軟件一年的訂閱服務(原價是 HK$ 300 一年)。
優惠方案之一:
YubiKey 5Ci:HK$ 440(原價 HK$ 550)
YubiKey 5 Nano:HK$ 310(原價 HK$ 390)
YubiKey 5 NFC:HK$ 285(原價 HK$ 355)
YubiKey 5C:HK$ 310(原價 HK$ 390)
YubiKey 5C Nano:HK$ 375(原價 HK$ 470)
優惠方案之二:
Bitdefender TOTAL SECURITY 2020 的銷售價是 HK$ 300 /年費(可以用五部機),與 YubiKey 合拼購買,會有以下組合優惠:
YubiKey 5Ci + Bitdefender 一年:HK$ 550
YubiKey 5 Nano + Bitdefender 一年:HK$ 390
YubiKey 5 NFC + Bitdefender 一年:HK$ 355
YubiKey 5C + Bitdefender 一年:HK$ 390
YubiKey 5C Nano + Bitdefender 一年:HK$ 470
詳情可以看: https://netmon.zohocommerce.com/categories/yubikey/45023000004418001(注意,不能直接在網站上購買,購買流程在下面有寫。)
(利申:我的 YubiKey 是自己用原價購買,而各位用以上優惠碼購物時,我是完全不會有任何佣金。)
購買的流程如下:
1. 先了解要買哪款型號、數量及價格,然後致電 Yubico 的官方認可香港分銷商 NetMon 查詢有沒有存貨。Coupon code 是 PAZU20。如果有貨,可以直接上觀塘鴻圖道的辦公室購買,以現金交收。
2. 可以先用 PayPal 或信用卡支付,然後寄到順豐站或「順便智能櫃地址」,運費由買家自行支付,目前順豐的運費有優惠,原價 HK$ 30,在 2019 年 10 月底前只用 HK$ 20。
Netmon Information Systems
地址:觀塘鴻圖道 57 號,南洋廣場 15 樓 1 室。
電話:25272086。
網址: www.netmon.asia
至於如何選擇 YubiKey,請看下面的問答:「有很多款 YubiKey,我到底應該選擇哪條?」
———
以下是第二次修訂的〈有關安全鑰匙 YubiKey,你問我答〉,刪去了一些概念重複的問題,又加入了數條問題,還有鳴謝相識於二十多年前的 Ben 深夜通電話,與我分享他的意見。
一
問:若果 YubiKey 安全鑰匙被其他人拿到,他們是不是可以直接登入我的戶口?
答:先說答案,不可以的。我們首先要搞清楚 YubiKey 的用途,它是用來作為登入戶口的其中一個因素,即是說,你要登入戶口,仍然需要帳號本身的密碼,以及 YubiKey,又或是其他因素,例如手機短訊(不建議)、authenticator app 的軟體六位密碼,或是備用的號碼。
所以即使別人取得你的 YubiKey,也不能單單使用 YubiKey 去登入你的帳戶。「二步認證」時需要你本身的密碼,以及一個額外的認證因素,才能登入戶口。
如果別人只是取得你的 YubiKey,但又沒有得到你的帳號密碼,那也是沒有辦法登入你的帳號。
二
問:我本身已經在手機裡用 authenticator app 去做二步認證,那為甚麼仍然要用 YubiKey 呢?
答:按保安級別來說,YubiKey 的 FIDO2(在線快速身份識別)比起 authenticator app 的 TOTP(基於時間單次密碼)較為優勝,而 Android 手機的漏洞又較 iPhone 的多。在 iPhone 上好像沒有怎麼出過事,但以前就曾經爆出,Android 機有惡意 app 成功利用保安漏動偷取了 app 二步認證的資料。
理論上去說,用安全鑰匙來做認證,肯定會較為安全。但很多用家,包括我自己,其實也會在手機上安裝 authenticator app。iPhone 較安全,但即使你用的是 Android,如果手機的廠家較為可信,堵塞保安漏洞的更新較快,你又不 root 機,又沒有胡亂安裝軟件,本身的風險未必算高。
那麼為甚麼本身已經有用 authenticator app,還要加一個安全鑰匙?我的原因,是因為使用硬件鑰匙,可以加快二步認證的速度及便捷程度,從而把這個二步認證,變成網絡生活的習慣。
三
問:我還是不明白,那麼說我豈不是可以直接用手機上的 authenticator app,為電腦登入做認證就可以了嗎?何以要另外花錢,給電腦買一條安全鑰匙?
答:因為我每天會登出登入戶口數次或以上,所以有必要加快這個過程。先說明一點,網絡保安的兩大關鍵。一是在可行的情況下,開啟二步認證。二是在每次上網之後,都要登出戶口,最好避免儲存電郵或社交媒體的登入狀態。
最簡單直接的設定,是每次關掉瀏覽器,就會自動刪去所有瀏覽記錄、登入狀態及 cookies,通常是在設定偏好,安全隱私裡可以設置。而我其實即使在自己的電腦上網,也習慣使用「私隱模式」去瀏覽網站。
當你養成了這個習慣,每天也要登入登出戶口數次。如果你每次看到登入的畫面,都有一種不安的恐懼感,擔心自己不懂如何登入,那麼更加要熟習登出登入的過程,每天登出登入,把登出登入變成生活的習慣,就不會見到 log in 畫面時便忍不住向空氣驚叫或斥罵一聲。如果你已經記不清對上一次是何時登入帳號,那只代表你的戶口經常處於「登入」的狀態,這是保安漏洞,也是很壞的上網習慣,一定要改。
由於每天登出登入的次數較多,如果能夠安全地加快這個速度,就是值得考慮的方案。我具體去說一下,authenticator app 跟 YubiKey(或其他硬體驗證)在使用習慣上的分別。
假如你一天要登出登入帳戶五次,如果用的是手機 authenticator app 去做認證,安全程度也算是足夠,但每次都要先找來手機,然後輸入手機的開機密碼,打開 authenticator app,我用的是 Lastpass Authenticator,之後取得六位數字後,複製到剪貼簿,再把六位數字傳送去電腦,或手動輸入,再按確認,這樣才能登入戶口。
但如果有 YubiKey 或其他硬件認證,過程就相對快速。先輸入帳戶密碼,從鎖匙扣或錢包裡拿出 YubiKey,把 YubiKey 插進電腦,掃一掃上面的金屬圈,便能登入。而我用的 YubiKey,是細小得可以長期插在電腦的 USB C 插頭(一些熟知技術的讀者,知道我的電腦長期插著安全鑰匙,可能會響警號,稍安毋躁,我將會說清楚這個安全隱患)。我每次登入戶口時,先是用手指打完密碼,然後直接伸手在電腦旁邊摸一摸 YubiKey 的金屬環,便能登入。
所以用 YubiKey 的原因,在我的情況,並不是要把它當成唯一的二步認證因素,而是要加快二步認證的過程。對於不同的用家,這個速度是否重要,很看使用習慣。即使這個速度不重要,單純基於保安考慮,用了安全鑰匙,整個系統的保安級別有所提升。
四
問:我應該要有一條還是兩條 YubiKey 呢?
答:按官方的說法,最好是兩條,因為一條常用,另一條則做後備。但對於大多數用戶來說,其實用一條也是足夠。我會建議大家先買一條,再以其他方式去做後備的密碼重設方案,例如其中一個二步認證的「因素」是 YubiKey,但同一個戶口,要加上 authenticator app 做另一個認證的方案。之後有需要,再買不同型號的安全鑰匙。
如果你本身打算參加 Google 的高級保護計劃(Advanced Protection Program),你是必須有兩條鑰匙。不過參加了這個計劃之後,使用 Google 的所有服務都會極為不便,我自己也沒有參加。
簡單來說,對於不打算參加 Google 高級保護計劃的用家來說,只要有後備的認證方案,那麼一條安全鑰匙,也是足夠的。
五
問:YubiKey 會否影響我使用 WhatsApp、Telegram 或 Signal?
答:YubiKey 不支援 WhatsApp、Telegram 或 Signal,所以不會影響你使用這些聊天軟件。
六
問:Google 官方推介的那款安全鑰匙,叫 Titan,為甚麼你反而要推介瑞典出品的 YubiKey?
答:Titan 的製造商是飛天誠信(Feitian Technology),總部設於北京。這家公司獲得不少國家認證及讚許,官方對其安全產品及科技成就予以高度的認可及肯定,目前並沒有證據顯示這家公司的產品有後門或安全漏洞。
所以,我選擇用瑞典及美國製造的 YubiKey。
還有,大家可以比較兩者的設計,YubiKey 真係靚仔好多。
答完這條問題後,發覺 Google 在 2019 年 10 月 15 日(剛好是此文修訂版發佈同一天)推出了一條新的 Titan,這次是跟 Yubico 合作,新的 Titan,設計外觀上跟 YubiKey 5C 大同小異。可能之前 Google 跟 Feitian 的合作,確實引來太多揣測,這次才找瑞典的 Yubico。
七
問:如果有人用 YubiKey 插進我的電腦,是否沒有密碼就能直接打開電腦?
答:這個要看你如何設置,如果你想設置為開啟電腦時,要先輸入密碼,再插入 YubiKey 才能登入電腦,那你應該要使用 pluggable authentication module(PAM,可插拔認證模塊)。相關設定請看 https://support.yubico.com/support/solutions/articles/15000015045-macos-logon-tool-configuration-guide
如果你使用 PAM 模塊的設定,即使別人取得你的 YubiKey,也不可以打開你的電腦,他是必須有你的 YubiKey,加上你本身開機的密碼,才能登入電腦。
不過話又說回來,如果是使用電腦,只要設定妥當,其實不用配合 YubiKey 開機,也算安全。因為我是用 Mac 機,也只能用 Mac 機的情況去說一下,如何才算安全。
1. 你常用的開機戶口的權限只是 standard 而不是 admin。
2. 你的硬盤本身有開啟加密,即 FileVault。
3. 你本身 admin 及 standard 的戶口密碼夠強。
這三點當中,以第三點最為容易被用家忽略,很多人為了貪方便,開機密碼簡單到不能再簡單,有些密碼甚至只有三四個位,極易被破解。尤其開機的密碼,是容許不停地試,即可以使用「蠻力」(brute force)去猜度,所以一定要小心選擇。
舉個例子,如果你的密碼是 west,破解的時間是 @_$*,兩組密碼,哪個較難破解?前面的那個,是馬上立即就能被破解,而後面這個,用的時間較多,是用一個微秒,也就是一百萬分之一秒而已!
至於如何選擇強勁密碼,不妨參考骰子密碼法(Diceware),也就是用一粒骰仔,投擲出六位的隨機數字,再用這個數字,透過列表,選擇其對應的字,都是一些字典中可以找到的字詞,如果選擇了七個以上的字詞,這個密碼就很難破解了。有關說明,詳見:https://en.wikipedia.org/wiki/Diceware
大家也可以去這裡測試一下自己的密碼安全程度,不要輸入真的密碼,差不多就可以,我的密碼,聲稱是要用 919 萬億年才能破解。 https://howsecureismypassword.net/
八
問:你認為我可以長期把安全鑰匙插在電腦嗎?
答:要看使用的場景,以及自己的需要。如果處於高風險環境,把安全鑰匙長期插在電腦中,是不衛生的做法,一些機構甚至明確要求員工不能這樣做,雖然大多員工會對這個建議置若罔聞。
我的 YubiKey 是用來登入網上的帳號,而不是登入電腦(可以看看上一條問題)。先說我的習慣,我是長期把 YubiKey 插在電腦中,有兩款較細小的型號可以做到這點,分別是 YubiKey 5 Nano 及 YubiKey 5C Nano。
但我們首先要明白自己想防範的是甚麼,再評估應該要做的安全措施。以我的情況,密碼是極難猜的(按不一定科學的估計,我的密碼可能要 919 萬億年才能破解),而我的密碼又完全不重複,不同網站也會用不同的密碼,所以如果密碼洩露,有三個較大的可能,一是服務供應商的問題,二是電腦被人安裝了惡毒軟件或不乾淨的瀏覽器 add-ons,例如鍵盤記錄器(keylogger)或直接偷取密碼發到遠方,三是上了釣魚網站。至於其他難測的漏洞,很難估計,在這裡就不討論。
對於第一點,能夠用上二步認證的服務,本身保安做得較好,即使系統受到入侵,估計(估計而已!)密碼的記錄也有加密,所以因為服務供應商的漏洞而洩露密碼的情況很低。至於第二個情況,我本身用的是 Mac,Mac 不是完全沒有病毒或惡毒軟件,所以我儘量不安裝來源不明的東西,有時逼不得已要安裝,也只會在虛擬的環境(virtual machine)中進行。較大的風險可能是瀏覽器的 add-ons 或 extensions,只好儘量找些評分高,信譽好的插件來安裝。
第三個情況,即釣魚網站(phishing sites) ,通常是假冒的銀行網站。這些網站弄得像是真網站(其實通常還是有些破綻,例如圖片的成像差一些,圖片起角,字體模糊,拼錯英文等等,倒是有點像藍絲的美學風格)。總之打開一些需要登入的網站,都會留意清楚網址,又或是看看有否證書。每次上銀行網站、Google 及 Facebook 等,都一定要加倍小心,因為即使用了二步認證,釣魚網站是可以同時騙取密碼及驗證碼。如果忽然收到電郵,提供連結叫你輸入密碼,更要加倍留意。
總之評估了自身的使用習慣,最需要防範的風險,是壞人從遠處入侵電腦,並偷取或截取密碼,再入侵我的戶口。所以我只要確保我的認證因素,一個是發到線上的密碼,另一個是線下的因素便可以。即使有人從網絡取得我的密碼,他的手也不能伸到我的手機或安全鑰匙,企圖登入我的戶口,他們要同時取得我的硬件及手機上的二步認證因素,其可能性始終很低。
另外有些要防範的情況,例如你在公司使用電腦,鄰座的同事相當有可疑,又可以近距離碰到你的電腦,自然就要加倍小心,不要長插鑰匙。你的安全顧慮,也可以因為不同的司法環境,或是本身的敏感程度而改變。若果你是一直備受監控的對象,入侵者有計劃也有資源去取得你的密碼,例如派人偷拍你在咖啡館輸入密碼的情形,入侵者甚至可以取得法庭搜查令,採用不道德的公權力去挾持你的電腦及其安全鑰匙。如果是這樣,你要採取的安全級別,可能要高出其他人很多倍,例如斯諾登要求到訪者把手機的電池取出,又或是要求把 iPhone 等關機後放進雪櫃或 faraday bag。如果你認為他有妄想症,不妨讀一讀《No Place to Hide》(作者 Greenward)又或是《Permanent Record》(作者就是斯諾登本人)。
說了一大堆,其實就是說,評估過自身的風險後,我使用 YubiKey 的習慣,是經常把它插在電腦上。我不覺得會危害到戶口安全,也不認為會降低安全系數,大家自行評估相關風險。
九
問:為甚麼我覺得 YubiKey 有伏?真的安全?這個東西有沒有後門?
答:可能因為你不了解這個技術,所以覺得有伏。
說實在的,當我看到這樣的提問,確是頗感驚訝呀,就像看到有人堅拒打疫苗因為擔心會自閉一樣驚訝。
十
問:有甚麼服務是支援安全鑰匙的二步認證呢?
答:對香港人而言,可能有機會用到而又支援安全鑰匙的服務包括:Google (Gmail, Drive, Youtube, Cloud Platform), Facebook, Dropbox, Github, Amazon Web Services, 1Password (版本7以上), Lastpass (Premium), Bitwarden, Dashlane, Boxcryptor (免費版也支援), Twitter 等等。
至於 Apple ID 戶口則不支持安全鑰匙,但有提供其他方式的二步認證。
十一
問:我是用 iPhone,為甚麼我覺得這類產品對 iPhone 的支援,好像很弱很不足呢?
答:因為這類產品,對 iPhone 的支援,真的很弱很不足啊!即使 YubiKey 出了一款 5Ci 有 lightning 連接頭,但只有極少量的 apps 支援。如果你是用 MacBook 加 iPhone,我建議你只用買 YubiKey 5 (Nano) 或 5C (Nano),而不用為 iPhone 買 5Ci 那款,那個 lightning 接頭很雞肋。
對於 MacBook + iPhone 的用家來說,最適合的方案,是在 MacBook 用 YubiKey,在 iPhone 還是用 authenticator app。
如果你只有 iPhone,沒有電腦,那麼很簡單,乾脆不用買安全鑰匙,用 app 去做二步認證就可以。(如果你本身是單機 iPhone 的用家,讀到這裡,才發覺原來我是不建議單機 iPhone 用家使用安全鑰匙,可能會覺得浪費了寶貴的閱讀時間,但希望這篇文章裡其他保安知識,也會對你有幫助啦!)
十二
問:萬一我的安全鑰匙遺失了,我是否不能再登入我的戶口呢?
答:要看你如何設定,但先說答案,不是。如果你遺失了鑰匙,還是可以登入戶口。安全鑰匙只是登入戶口的其中一個認證因素,但你同時可以設定其他方式去認證。
其他認證的方式包括:
1. 手機短訊(SMS):因為 SMS 的保安差,不建議。若然真的要用手機短訊,可以用不同居又可信任的朋友手機號碼,而這個電話號碼,最好不是存在手機的電話簿內。
2. Authenticator app:在 iPhone 及 Android 都有這類 app,我推介的是 Lastpass Authenticator,免費使用,軟件本身可以加上六位數字的密碼鎖。如果你想讓朋友幫你作為後備的方案,建議把設定的二維碼發給朋友,而該朋友又不是朝夕相對,一個 app 裡是可以儲存大量網站的認證碼,而且可以標明服務及戶口名稱,以作識別。
3. 安全鑰匙:也就是硬件認證方式,其中最多人使用的,是本文裡提到的 YubiKey。
4. 後備認證碼:部份網站,例如 Google 及 Facebook,會提供八個後備認證碼,可以寫下來,放在安全的地方,但有時貪方便,會儲存在電腦裡(其實不建議這樣做)。
所以,萬一遺失了安全鑰匙,只要設置合宜,其實也不代表不能用其他認證方式去登入戶口。而在設定了二步認證後,也應該要做一些練習,想像一下,萬一丟失了手機後,你還能用甚麼方式登入呢?如果你的手機、電腦及安全鑰匙全都放在公事包裡,而整個公事包被盜,你還有其他可行的二步認證方式嗎?手機丟失,你不能用 authenticator app。電腦丟失了,而你又貪方便只把後備碼儲存在電腦裡,連電腦也丟失了可以怎麼辦?如果你把不同居的朋友手機號碼作為後備的驗證方案,你能夠單憑手機最後兩個數字,就想起這位朋友嗎?網絡保安,除了要有措施,還有要反複練習。
另外,如果你使用的是 Google 最高級別的保安計劃(即 Google Advanced Protection Program),那就真的只能用兩條安全鑰匙進行登入。我本身是用 iPhone 及 Mac,因為安全鑰匙對於 iPhone 的支援太弱,所以我也沒有加入這個計劃。
還有,萬一你喪失了所有認證因素,其實 Google 或是 Gsuite 的管理人,仍然有辦法幫你重設密碼,但 Google 方面的驗證需要很多天,而且過程要問上大量問題,入侵者也不易通過。至於 Gsuite 的管理人,即使他單方面想幫你重設戶口密碼,這個雖然可能會成為另一個安全隱患漏洞,但他們也只能把密碼發到你後備的聯絡方式,而且當中也要有幾重驗證的過程,亦要花上一至數天。只要你那個後備的聯絡方式設定得較安全,入侵者也不能輕易破解。
十三
問:有很多款 YubiKey,我到底應該選擇哪條?
答:有三個考慮因素,一是你用甚麼電腦,二是你用甚麼手機,三是你用甚麼服務。我把幾種可能的情況寫出來,大家參考一下。要先說一點,因為 iPhone 對 YubiKey 或安全鑰匙的支援不好,所以按目前的情況,iPhone 的用家在手機上還是建議用 authenticator app 算了,即使你用的是 NFC 或 lightning 版的安全鑰匙,能夠支援的服務還是太少,可以忽略。選用哪款鑰匙,也要看自己的使用習慣,請參看「每次登入戶口時,都要把安全鑰匙插在電腦,有點麻煩,你認為我可以長期把安全鑰匙插在電腦嗎?」。
簡單來說,如果你打算長期把安全鑰匙插在電腦,就買 Nano 版,如果經常需要拔插,就買長一點的版本,方便拔插。如果你是用 Android,可以考慮買 NFC 的版本,如果是用 iPhone,因支援較弱,還是用 authenticator app 算了。
再具體一點去說,我根據以下的電腦及手機組合,建議使用的安全鑰匙型號。
1. 只有用桌面或手提電腦(USB A接口):用 5 Nano 或 5C(按我的習慣,會用 5C Nano)。
2. 只有用桌面或手提電腦(USB C接口):用 5C Nano 或 5C(按我的習慣,會用 5C Nano)。
3. 使用 12 吋的 MacBook(只有一個 USB C 接口的電腦):用 5C 或 5C NFC(就快推出),而不要用 5C Nano,因為只有一個 USB C 接頭,要經常拔插,用 5C 或 5C Nano(暫未推出)會較好。
4. 電腦 (USB A接口) + iPhone (Lightning接口):用 5 Nano 或 5 NFC(在 iPhone 上不用)。
5. 電腦 (USB A接口) + Android (USB C接口):用 5 NFC。
6. 電腦 (USB A接口) + Android (MicroUSB接口):用 5 NFC。
7. 電腦 (USB C接口) + iPhone (Lightning接口):用 5C Nano 或 5C(在 iPhone 上不用)。
8. 電腦 (USB C接口) + Android (USB C接口):用 5C NFC(就快推出,暫時未有啊,如果現在用的話,建議可以先買一個 Yubikey 5C Nano,只在電腦上用,手機上則用 app)。
9. 電腦 (USB C接口) + Android (MicroUSB接口):用 5C NFC(就快推出,暫時未有啊,如果現在用的話,建議可以先買一個 Yubikey 5C Nano,只在電腦上用,手機上則用 app)。
10. 使用 12 吋的 MacBook(只有一個 USB C 接口的電腦)+ iPhone(Lightning接口):用 5C 或 5C NFC(暫時未出),不建議用 5C Nano。
11. MacBook Air(有兩個USB C接口):因為兩個 USB C 接口都在機身左邊,如果不會長期用 hub,那麼用 5C Nano 也可以。如果這個插口本身又要連 iPhone 或其他設備,那麼用 5C 會較好。
12. 以上任何配搭,但用的百度雲、淘寶、QQ 郵箱等:不用買。
至於 Security Key by Yubico 這一款,則可以用在電腦 (USB A接口) 上,沒有 NFC 功能,屬較為基礎的一款。之前 YubiKey 慷慨送給香港人的型號,就是這個。對於自己有能力購買的用家,請按上文所述的建議,對應自己的機型去購買。
另外,如果打算用轉換頭(例如 USB A 轉 USB C),請看看相關兼容情況:https://support.yubico.com/support/solutions/articles/15000006473-using-a-yubikey-with-usb-c-adapters (因為沒辦法逐一去試,萬一打開 YubiKey 的包裝後,發覺本身使用的 hub 或轉換器兼容不了,那就得物無所用,所以我不是太過建議用轉換頭。如果真的想用轉換頭,最好找朋友的安全鑰匙插進自己的電腦,再去 https://www.yubico.com/genuine/ 測試能否認出。
十四
問:可以在哪裡購買 YubiKey?
答:上官網 Yubico.com,在香港則去官方認可的香港分銷商。
購買這類安全產品,跟買安全套一樣,理論上是要避免使用中介渠道或集運公司,因為理論上越多中間人,那麼理論上就越大機會被人做手腳。
其中一種做手腳的方式,是企圖入侵的人,把鑰匙裡的物理序列號偷偷記錄,並用其他方式去產生密鑰。強調是「理論上」,因為估計實行起來,也非容易,太多顧慮,聽起來好像又太多疑,但既然說到網絡安全,當然要在各個可行的層面,也儘量做好防範的措施。例如萬一你的鑰匙被人偷走,非法扣留,又或是買回來的時候包裝已經打開,最好不要再用。
Yubico 的官方網站顯示,在香港有一個官方認可以的分銷商:Netmon Information Systems,地址是:觀塘鴻圖道 57 號,南洋廣場 15 樓 1 室。電話是 25272086。網址是 www.netmon.asia ,建議在辦公時間先打電話去查詢存貨量。
———
延伸閱讀:
陳婉容幫助香港人取得瑞典公司 Yubico 的贊助:https://www.facebook.com/sherrychanyy/photos/a.517784544922353/2803649153002536/?type=3&permPage=1
電腦手機網絡安全(一):SIM 卡鎖:https://www.facebook.com/pazukong/photos/a.2007886759444126/2634928633406599/
電腦手機網絡安全(二):簡介二步認證:https://www.facebook.com/pazukong/photos/a.2007886759444126/2636315873267875/
電腦手機網絡安全(三):二步認證的驗證因素:https://www.facebook.com/pazukong/photos/a.2007886759444126/2637695243129938/
———
* 想追看薯伯伯的文章,請設定本 Page 為「搶先看 / See First」*
Instagram 🥑🥭🍉🍌: pazu
新博客:http://pazu.com/blog
另外還要提一提大家:
【新書速報】Pazu 薯伯伯《不正常旅行研究所》(白卷出版社)——從西藏拉薩到神州大地;由亞洲各國至中東地區。非常人般玩轉奇異世界、紀錄精彩故事文化習俗。
在旺角序言、北角森記、誠品書店及各大書店,均有代售!其中在旺角序言及北角森記,有少量簽名版本。
你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 大天使TV Youtube 的最佳解答
上字幕是一件苦差事,但是有字幕的影片質感提升好多,
有沒有什麼方法可以讓機器人來幫我聽打,
節省我的時間?
可以試試『網易見外工作台』,
它是一個可以聽打中文及英文的免費網站(每天二小時免費),
還可以彼此互相翻譯!
自動把時間軸排好了,可以節省你很多時間~
但是中文是簡體字,
記得要再用另一個網站轉成繁體喔,
之後再跟影片一起丟到可以編輯SRT檔的影像編輯軟體,
更進一步調整時間軸,
字幕就完成囉~
----------------
網易見外工作台 https://jianwai.netease.com/index/0
純文字簡體轉繁體 https://txtconv.arpuli.com/
Arctime 字幕軟體 https://arctime.org/
__________________
⭐️如果發生網易出現『非法請求』無法註冊的問題
請參考這個影片的教學 https://youtu.be/tmGrWYtuhG4
跳到另一個網站驗證就可以囉 https://zc.reg.163.com/m/regInitialized
這方法很聰明啊~
感謝『分享家-羽』
荷蘭文、法文、德文、義大利文、日文、韓文、葡萄牙文、俄文和西班牙文,
請參考另一個影片
https://youtu.be/lfhUhuXLgoU
00:00 不要再自己聽打啦
01:54 註冊網易帳號
02:30 開始自動聽打字幕
04:07 簡體中文字幕完成輸出
04:18 簡體轉繁體
04:32 字幕跟影片匯入Arctime軟體
05:08 Arctime 修改字體樣式
06:02 Arctime 輸出字幕檔案
Arctime 更熟練的使用可以看這邊 https://youtu.be/00F6JVZaUkQ
----------------------
▶︎大天使TV其它的平台更精彩◀︎
‣‣ Instagram ► https://www.instagram.com/the_peggie/
‣‣ Line@ ► @535jwrxj http://nav.cx/AcqrRs8
‣‣ facebook ► http://bit.ly/peggiefbfan
▶︎藥師如何投資美股?你來我跟你分享 ◀︎
‣‣ http://bit.ly/BOS-Peggie
-----------------------
哈囉大家好
我是Peggie
今天我要跟大家分享的是要怎樣快速地生成字幕
平常我需要做很多的英文影片的翻譯
以前我必須要花很多時間
要先把英文字幕全部聽打下來
然後再把這個字幕做翻譯
然後再一個一個時間軸把它對上
後來我在想現在科技這麼發達
有沒有什麼軟體
是可以幫助我完成某一些事情
然後我再做細微的修改
然後能夠節省我的時間
所以後來我找到了一個方法
是我用三個免費的軟體或是服務就可以完成這個事情
然後可以大幅縮短我做這件事情的時間
今天就是要跟大家分享到底是哪三個軟體這麼好用
所以呢
待會我會把所有的這些網站
這些全部都是免費的
我會把這些網址放在底下的資訊欄 大家再自己去點選來做使用
第一個呢是網易見外工作台
它是一個網站
它會自動聽打你的說話的內容
中文跟英文都可以
如果是英文還可以即時翻譯
但是他翻的當然會有一點怪怪的
或者是不符合自己的使用
可以再自行與做修改
可是這個網站的他是一個大陸的網站
所以做完之後
他會是一個簡體的字幕出來
我自己是很喜歡看繁體字
我是看不太懂簡體字
所以我需要再把它轉變成繁體字
那我會再用
另外一個網站叫做純文字簡體轉繁體 很白話
這網站用這個服務呢
把剛剛生產的SRT檔轉成繁體中文的字幕
有了這個繁體中文字幕之後
我就會用Arctime Pro
這個免費的軟體
然後去把你的SRT檔放到你的影片裡面
當然
你有其他的適用的軟體也可以
如果你的軟體不能吃SRT檔的話呢
就可以用Arctime
這個免費的軟體
所以接下來就來示範一下
我平常都是怎麼做的
首先到網易見外工作臺去登入一個新的帳號
然後這邊要註冊 輸入你的e-mail
還有慣用的密碼
然後它會有一個網頁的認證
要輸入你的手機號碼
認證完手機之後就是需要認證e-mail的信箱
到你剛填的信箱去收認證信
跳到這個畫面就表示註冊完成了
回到網易見外工作台
然後點選右上角的新建項目
這邊你會看到幾個選項
那通常如果是做影片的話
我會用前面兩個 視訊翻譯或是視訊轉寫
如果你是有需要翻譯的
你就選第一個
如果就不需要翻譯你選第二個
如果你沒有影片
只有音檔的話
你可以選下面那兩個
那這邊輸入我們的專案名稱 上傳影片
那這邊去選他是是什麼語言要翻譯的
然後提交
提交之後
他會說
他需要一點作業時間
沒關係就離開網頁
你去做其他的事情
待會再回來
過一下
你就發現這邊已經翻譯好了
之後你就進到這個影片裡面
你先聽一段
然後你再去打字
因為這個影片
他有很複雜的背景音樂
就是有節奏的
所以它聽得 很不好
所以這個影片我要改的還蠻多的
通常如果是那種沒有背景音樂
他就會聽得還不錯
接下來就是一行一行地去校正
完了之後
就可以存檔了
按右上角匯出
下載字幕有三種方法
有中文字幕
有單純的英文字幕
也可以
中英雙字幕一起輸出 通常我會三個都三個檔案都拿
這樣你就會拿到完整的字幕檔案
它是一個.SRT檔案
然後檔名會長這個樣子 它會自動儲存下來
還要轉成繁體
所以要再把這個檔案呢
傳到這個簡繁轉換的網站
然後他很快就會做好 是文字檔 下載之後就會是這個樣子
接下來開啟你的 Arctime Pro 軟體
準備好你的影片 跟你的字幕
接下來很快哦
就把他拉進來
然後再把字幕拉進來
然後 按繼續
按確定
就好了
這樣字幕就已經自動匯進來
而且按照時間去排列
有時候會不小心重疊
所以點一個這個 自動調整重疊
然後你再按play
看一下 誒 這個字有點太大了
所以可以去改字的樣式
隨便選一個(預設值)
這邊可以預覽字的樣式 我把字改小一點
然後底下可以去改字的邊
邊框的顏色或是寬度或是字的陰影
都可以在這邊去做修改 然後點應用
這時候你會發現 沒有變啊
那你要在上面按右鍵
然後選設定樣式
然後再選你剛設定的樣式
然後就會套用下去
在每一個部分 去稍微瀏覽一下
看有沒有什麼地方要修改 好了之後呢
就可以把這影片輸出了
輸出之後是一個MP4的檔案
然後你也可以把字幕這個檔案再輸出一次
可以選SRT跟純文字 可以選最下面那個
兩個都可以輸出 SRT是有時間的
純文字是沒有時間的
以上就是今天的 快速上字幕教學
如果你有任何問題的話
可以在底下留言
然後我們可以一起討論
如果你有任何更快速能夠上好字幕的方法
歡迎留言跟我說
然後不要忘記訂閱我的頻道
我真的要開始做影片了
然後如果你有任何想學的東西都可以留言讓我知道哦
那就這樣了
我們下次見 拜拜
----------------
網易見外工作台 https://jianwai.netease.com/index/0
純文字簡體轉繁體 https://txtconv.arpuli.com/
Arctime 字幕軟體 https://arctime.org/
Ps.新加坡夥伴回報,從新加坡用網易見外工作台很慢,
建議上傳純音檔,不要上傳影片,這樣就可以正常使用囉。
--------------------
🎵背景音樂
We Are One by Vexento https://www.youtube.com/user/Vexento
https://soundcloud.com/vexento
Music promoted by Audio Library https://youtu.be/Ssvu2yncgWU

你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 臉書被盜怎麼辦? 如何取回被盜的Facebook 帳號教學文 的推薦與評價
我第一天嘗試時大約是被改密碼2 小時後,此時輸入驗證碼後跳出「你已輸入太多次驗證碼,請稍後再試」。之後不管怎麼重複這個步驟,都是一樣的結果, ... ... <看更多>
你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 由於密碼重設次數上限,因此無法重設密碼 - Facebook 的推薦與評價
為了維護您的帳號安全,我們必須限制您每天要求新密碼的次數。若您已達重設密碼次數上限,必須等候24 小時,才能再度嘗試重設密碼。 注意:如果您仍遇到問題,我們可以 ... ... <看更多>
你已經輸入 太 多次驗證碼了請 稍 後 再試 多久 在 [問題] 臉書被盜了QQ - 看板WomenTalk - 批踢踢實業坊 的推薦與評價
如題
臉書被盜了
一小時前gmail收到通知說有人改了你的臉書密碼
後來朋友就傳訊息跟我說你臉書是不是被盜
我就去登入
(被盜這隻是比較少用的用來加不熟的人)
發現登不進去
因為密碼被改掉了我不知道現在的密碼
只能透過重設密碼的方式
然後臉書寄驗證碼到我信箱
我去輸驗證碼到臉書試圖重設密碼
行不通
因為每次輸入驗證碼
然後他就說你已經輸入太多次驗證碼了請稍後再試
(從第一次就這樣,不管等多久都是這樣)
反正就不給我過
然後我用另外一隻帳號(現在平常在用的)
去看我被盜那隻發了什麼文
就是一篇賣手機的文
然後我還一堆朋友按笑臉
靠北
我就在下面留言說我被盜了
結果過沒幾分鐘就被刪留言!
超可怕
反正現在不知道該怎麼辦才能救回帳號
想看看有沒有人也是被盜的
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.98 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/WomenTalk/M.1601022488.A.5AE.html
... <看更多>