#被內在與外在都美暈的洗髮粉
.
decent rossi 是來自一位藥師因親身經歷過嚴重脂漏性皮膚炎的困擾後,決定用自己的專業與經驗開發適合洗全身的洗髮粉,讓榮幸我一試就愛上。
.
decent rossi 強調溫和、不造成肌膚負擔,尤其對皮膚敏感且有病症的使用者,如孕婦、哺乳婦女、嬰幼兒,重視動物環境友善的朋友,但身為一個沒什麼問題且皮膚接受度很高的我,為何也如此喜歡呢?
.
原因很簡單,
就是因為洗完的蓬鬆感與品牌的美。
.
decent rossi 的洗髮粉很神奇,沒有任何會讓頭髮滑順的矽靈、精油、石化等原料,因此洗完後會有點微澀,很像洗完碗盤,摩擦盤子發出”咕嘰咕嘰”的那種徹底乾淨,所以才有辦法讓頭髮這麼蓬鬆吧!
.
至於美的部分,除了第一眼被他的包裝給美到之外,「不為大眾設計、卻適合大眾」的美,才是我真正欣賞的地方。
.
好啦!說這麼多,不如店進去看文章吧!
.
或直接進入官網也行,因為Rossi特別為榮幸的讀者準備了專屬代碼【imp】,只要加入會員輸入專屬代碼,購物滿額就能獲得好禮!
.
#專屬代碼:imp(全小寫)
活動時間:2021/08/20-2021/08/27 23:59
加入會員輸入代碼imp滿額送好禮!:
滿1400元送190 元(洗髮粉試管3g)。
滿3000元送380元(洗髮粉試管3g x2)。
滿5900元送700 元(洗髮粉50g x1)。
滿9000元送980元(卸妝水100ml x1)。
.
#購物傳送門
◤藥師洗髮粉 隨身瓶外出優選
https://lihi1.com/RpMaJ◢
◤洗髮粉補充包5入組 大容量最划算
https://lihi1.com/cC9d7◢
同時也有1部Youtube影片,追蹤數超過8萬的網紅范琪斐,也在其Youtube影片中提到,最近 BBC 國際部宣布,它們的新聞網站將要進駐暗網!之後能讓中國、伊朗、越南這些資訊被政府封鎖或過濾的國家,也可以瀏覽到 BBC 的內容。 暗網到底是什麼?其實我們平常在 Google 能夠找的到的,都叫做『明網』Clearnet,通常當我們瀏覽的時候,都會有一組 IP,知道說你是從哪個位...
「使用者代碼是什麼」的推薦目錄:
- 關於使用者代碼是什麼 在 It's my pleasure Facebook 的最佳貼文
- 關於使用者代碼是什麼 在 蕪菁雜誌 Facebook 的最讚貼文
- 關於使用者代碼是什麼 在 Taipei Ethereum Meetup Facebook 的精選貼文
- 關於使用者代碼是什麼 在 范琪斐 Youtube 的最讚貼文
- 關於使用者代碼是什麼 在 [問題] 為何還那麼多銀行APP登入要打一堆字的? - 批踢踢實業坊 的評價
- 關於使用者代碼是什麼 在 中國信託使用者代號是什麼-推薦/討論/評價在PTT、Dcard 的評價
- 關於使用者代碼是什麼 在 中國信託使用者代號是什麼-推薦/討論/評價在PTT、Dcard 的評價
- 關於使用者代碼是什麼 在 京城銀行在地的感動- #京城小學堂Q&A EP1 ♀️ 忘記網銀使用 ... 的評價
- 關於使用者代碼是什麼 在 中國信託使用者代號大小寫的推薦與評價,PTT 的評價
- 關於使用者代碼是什麼 在 雲林民怒抗議!光電商無視照施工竟是中央機關撐腰 ... - YouTube 的評價
- 關於使用者代碼是什麼 在 忘記使用者代號密碼- 金融板 - Dcard 的評價
使用者代碼是什麼 在 蕪菁雜誌 Facebook 的最讚貼文
#你的個資很可能變成柯文哲拿來搞政治鬥爭的籌碼。
用常識想也知道,人的活動沒有縣市的界線,一個小時前你在台北開會,很可能一個小時後你在桃園吃飯。也因此,實聯制系統,當然是要以全國通用為目標。
但是現在台北正在推行自己的一套QR Code,並且建議店家「更換張貼」,用白話講,就是撤掉全國實聯制通用的QR Code,換上台北市政府發行的。
從技術面與使用者體驗來講,這樣做根本就是多此一舉。唐鳳設計的簡訊實聯制,兼顧了以下幾點:
1. 不必另外安裝APP,不用註冊帳號。
2. 不限於智慧型手機,傻瓜手機亦可使用。
3. 資料收集的範圍限縮到只有電話號碼和店家代號,盡可能保障個資、取信於民。後台系統的負擔也比較小。
4. 系統全國通用,可以滿足跨縣市疫調的需求。
使用台北通掃碼,需要另外安裝APP、要註冊帳號,使用者體驗就多了一大門檻。對於那些很偶爾才跑一趟台北的外縣市民眾,誰會想要再大費周章弄個台北通帳號呢?再者,台北通系統也無法應用到傻瓜手機上面。在使用者體驗的角度來看,根本就是畫蛇添足、多此一舉。
至於「方便疫調人員辨識」?這根本不成其為理由。全國實聯制系統的後台,也能夠用店家代碼來調閱店家名稱、地址等資料,只要多寫幾個query就行。這根本不是什麼台北通的獨門絕活。
但是從政治面來講,台北市政府的心機就很深了。令人在意的一點,就是透過台北通APP帳號,台北市政府可以蒐集到遠比電話號碼與店家代號更多的資訊,包括姓名、身份證字號等。
雖然市府的公文與文宣當中宣示,台北通掃碼系統是「與中央1922實聯制簡訊通用」,但畢竟我們不是疫調人員,無從得知要怎麼調閱足跡、後台資料是怎麼流通的。
這裡就有一個令人在意的問題:當有跨縣市疫調的需求時,非台北市的單位,有權限可以調閱台北通的後台資料嗎?還是要發公文跟台北市政府調資料?
我們也無法知道台北通的店家代碼,是否跟全國實聯制是一致的,如果不一致,那是不是又要跟台北市查詢店家代碼?
如果是這樣,就產生了一個可能性:#台北市政府把個資與足跡扣起來當做政治資本。指揮中心或外縣市想要做疫調的時候,台北市政府就大有拿翹的操作空間,可以逼迫他們在某些地方讓步。簡單講,只要台北市政府不開權限給你調閱台北通的後台資料,你根本拿他們沒皮條,疫調做到台北市就會硬生生斷鏈。
對,這是以小人之心度君子之腹的陰謀論。但是台北在全國的實聯制系統之外,硬要耗時費力搞一個自己的台北通系統,這件事情本來就非常不合常理。別忘了,柯文哲很摳門的,摳門到連PCR的錢都要省,篩檢站的防護措施都要搞到七折八扣的。他怎麼會突然這麼大方地砸資源去搞一個畫蛇添足的系統呢?
而且自從疫情升溫以來,柯文哲與台北市政府的一舉一動,幾乎無不是以跟指揮中心對著幹為首要考量。可以說是一以貫之的小人風格。尤其台北市商業局已經明刀明槍地發公文,「建議」店家撤掉全國實聯制的QR Code,改用台北通的,此舉無異於是在對基層商家施加 #政治壓力。
而且柯文哲這幾年來的言論,屢屢顯示出他對中國那套「#大數據應用」實為「#大數據監控」的做法,感到非常崇拜與嚮往。充滿爭議的 #校園智慧販賣機,就是一個柯文哲想要在台北市硬推一套「無監督機制的大數據應用」的例子。而台北市政府蒐集個資的時候,也有個大開後門的條款,市政府幾乎任意使用民眾的個資。
如果柯文哲的心思,只是單純地想要在唐鳳的系統之外標新立異,那倒還無傷大雅。只是想想後台蒐集的個資與其流向,想想柯文哲一向以來的小人風格,想想柯文哲對於無監督機制的大數據應用的崇拜……我真的無法對這套台北通系統感到放心。台北市政府有必要對此說明清楚。
使用者代碼是什麼 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] Tornado Cash 實例解析
✍️ Johnson
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
Tornado Cash 是一個使用 zk-SNARKs 建立的 Dapp,它實現了匿名的代幣交易,這篇文章就用一些程式碼片段,來分享它是怎麼運作的。
本文為 Tornado Cash 研究系列的 Part 3,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:
Part 1:Merkle Tree in JavaScript
Part 2:ZKP 與智能合約的開發入門
Special thanks to C.C. Liang for review and enlightenment.
我們知道在以太坊上的交易紀錄都是公開的,你可以在 etherscan 上看到某個地址的所有歷史交易紀錄,當然地址是合約的話也是一樣。
也許創建一個新的錢包和地址就好了?假設一個情境是 Alice 想要匿名傳送 1 ETH 給 Bob,Alice 原本的錢包是 A,但她不想讓 A 地址傳給 Bob 的交易紀錄被看到,所以 Alice 創建另一個錢包 B,顯然 B 錢包是空的,Alice 必須把 A 錢包的 1 ETH 傳到 B 錢包,再用 B 錢包的地址傳給 Bob。
但問題就在於,只要追蹤 B 錢包的地址,就能看到 B 的歷史交易紀錄中 A 錢包曾經打幣給 B 錢包,於是到頭來交易還是被追蹤到了。
Tornado Cash 的解決方案,簡單來說,它是一份合約,當你要匿名傳送代幣時,就把一定數量的幣丟進合約裡 (Deposit),此時你會拿到一個 note,長得像這樣:
tornado-eth-0.1-5-0x3863c2e16abc85d72b64d78c68fca5936db2501832e26345226efdfb2bc45804977f167d86b711bb6b4095ddaa646ec93f0a93ac4884a66c1d881f4fc985
note 就是一串字串,擁有這字串的人,就能提領 (Withdraw) 剛剛傳入合約的代幣。握有 note 就代表擁有提款的權利,所以 note 一旦被別人知道,別人就可以把錢給提走。
其中,後面那段亂碼,本篇文章就以「秘密」來稱呼,這個秘密是由 secret 與 nullifier 組成,而這兩個都是在鏈下隨機產生的亂數。
因此 Tornado 的合約基本上會有兩個函式:
Deposit
Withdraw
有興趣的人可以先到 Dapp 上先玩一次看看,使用 Goerli 測試網,這裡可以領 Goerli 的代幣:https://goerli-faucet.slock.it/
Deposit
我們就從 Deposit 開始說起,簡單來說, Deposit 是將資料儲存到合約的 Merkle Tree 上。
剛剛提到的秘密,它是在鏈下產生,由 secret 跟 nullifier 組成,合在一起之後也稱作 preimage,因為我們要對這個 preimage 進行 hash,就會成為 commitment。
合約中 Deposit 如下:
deposit 除了傳送代幣到合約之外,需填入一個參數 _commitment。
我們對 preimage 使用 Pedersen 作為 hash function 加密後產生 commitment,以偽代碼表示如下:
const preimage = secret + nullifier;const commitment = pedersenHash(preimage);
這個 commitment 會成為 Merkle Tree 的葉子,所以合約中的 _insert(commitment) 來自 MerkleTreeWithHistory.sol 的合約,將我們的資料插入 Merkle Tree,然後回傳一個 index 給你,告訴你這個 commitment 在 Merkle Tree 上的位置,最後一起發布成公開的 Deposit 事件。
我們知道 MerkleTree 是將一大筆資料兩兩做雜湊後產生一個唯一值 root,這個 root 就是合約上所儲存的歷史資料。
root 的特性就是只要底下的資料一有更動,就會重新產生新的 root。
所以只要一有用戶 deposit ,就會插入新的葉子到 Merkle Tree 上,於是就會產生新的 root,所以在合約中有一個陣列是用來儲存所有的 root 的 roots:
bytes32[ROOT_HISTORY_SIZE] public roots;
roots 是用來紀錄每個 deposit 的歷史,每一次 deposit 都會創造新的 root,而所有 root 都會被儲存進 roots 裡,於是當你要提領的時候,就要證明你的 commitment 所算出的 root 曾經出現在 roots 裡,代表曾經有 deposit 的動作,因此才可以進行提領。
Withdraw
在 Deposit 之前 Tornado Cash 就會在鏈下產生秘密後交給使用者,擁有這個秘密的人等於擁有提款的權利。
提領的時候,秘密會在鏈下計算後產生 proof,proof 是 withdraw 需要的參數,所以只要確保這個 proof 能夠被驗證,那麼代幣的接收地址 (recipient) 就可以隨便我們填,只要不填上當初拿來 deposit 用的地址,基本上就做到匿名交易的效果了。
也就是說,產生這個 proof 並提交給合約,能夠證明此人知道秘密,但卻不告訴合約秘密本身是什麼。
function withdraw(bytes calldata _proof, bytes32 _root, bytes32 _nullifierHash, address payable _recipient, address payable _relayer, uint256 _fee, uint256 _refund) external payable nonReentrant;
我們可以清楚看到 withdraw 函式裡沒有接收有關秘密的任何資訊作為參數,也就是秘密不會與合約有所接觸,也不會暴露在 etherscan 上。
回顧 ZKP 所帶來的效果:
鏈下計算
隱藏秘密
在 Tornado Cash 的例子中,我們用秘密來產生證明,完成的鏈下計算包括:
將秘密 hash 成 commitment
算出 Merkle Tree 的 root。
以下是簡化後的 withdraw.circom:
template Withdraw(levels) { signal input root; signal input nullifierHash;
signal private input nullifier; signal private input secret; signal private input pathElements[levels]; signal private input pathIndices[levels];
component hasher = CommitmentHasher(); // Pedersen hasher.nullifier <== nullifier; hasher.secret <== secret; hasher.nullifierHash === nullifierHash;
component tree = MerkleTreeChecker(levels); // MiMC tree.leaf <== hasher.commitment; tree.root <== root; for (var i = 0; i < levels; i++) { tree.pathElements[i] <== pathElements[i]; tree.pathIndices[i] <== pathIndices[i]; }}
component main = Withdraw(20);
從上述代碼就可以看出這份 circuit 的 private 變數有:
secret
nullifier
pathElements
pathIndices
而 public 變數有:
root
nullifierHash
如同我們一開始說過的,秘密就是指 secret 與 nullifier。這裡進行的鏈下計算就是對 secret 與 nullifier 雜湊成 commitment。而使用的 hash function 叫做 Pedersen。
在進行 Merkle Tree 的計算之前,我們還檢查了 nullifier 雜湊後的 nullifierHash 跟 public 變數 nullifierHash 是不是一樣的。
hasher.nullifierHash === nullifierHash;
接下來,開始計算 Merkle Proof,用意是確認經過雜湊後的 commitment 有沒有出現在 Merkle Tree 上,所以我們的 private input 還有 pathElements 與 pathIndices(詳情參考 Part 1 Merkle Tree in JavaScript),讓它跑一趟 Merkle Proof 的計算,最後就能夠算出一個 root,再確認計算後的 root 與我們的 public 變數 root 是否一樣。
tree.root <== root;
於是我們就能產生一個 ZKP 的證明 — 證明 private 變數:secret, nullifier, pathElements, pathIndices 可以計算出 public 變數:root 與 nullifierHash。
把這個證明提交給合約,合約透過 Verifier 驗證 proof 是否正確,以及必須事先確認:
public 變數 root 有在合約的 roots 裡面。
public 變數 nullifierHash 在合約中是第一次出現。
以下附上完整的 withdraw 原始碼:
必須注意 ZKP 是向合約證明使用者填入的 secret 和 nullifier 可以計算出某個 root,但無法保證這個 root 曾經在合約的 roots 歷史上。
所以合約的 withdraw 中,除了 verifyProof 之外,還要事先檢查 ZKP 算出來的 root 是不是真的在歷史上發生過,所以需要 isKnownRoot 的檢查:
function isKnownRoot(bytes32 _root) public view returns(bool)
必須先檢查 isKnownRoot 後才能進行 verifyProof。
經過 verifyProof 驗證成功後,合約就開始進行提款的動作,也就會將代幣傳到 recipient 的地址,最後拋出 Withdrawal 的事件。
nullifier 與 nullifierHash
為什麼我們的秘密不是只有 secret 還要額外加一個 nullifier?
簡單來說,這是為了防止已經提領過的 note 又再提領一次,也就是所謂的 double spend。
require(!nullifierHashes[_nullifierHash], "The note has been already spent");
可以看到 withdraw 需要填入參數 nullifierHash,跟 isKnownRoot 一樣的狀況,我們需要對電路的 public 變數先經過一層檢查之後,才能帶入到 verifyProof 裡面。
nullifierHash 可以理解為這個 note 的 id,但它不會連結到 deposit,因此可以用來紀錄這個 note 是否已經被提領過。
所以當 verifyProof 驗證成功之後,我們要紀錄 nullifierHash 已完成提領:
nullifierHashes[_nullifierHash] = true;
有關為什麼需要事先檢查 public 變數後,才能帶入 verifyProof ,可以參考 Part 2:ZKP 與智能合約的開發入門 提到的 publicSignals 的部分。
附上 Tornado Cash 的架構圖:
簡化版的 tornado-core
tornado-core 的程式碼很簡潔漂亮,所以我模仿該專案自己實作一遍:
simple-tornado:https://github.com/chnejohnson/simple-tornado
這份專案只完成了 tornado-core 的核心部分,不一樣的是我的開發環境使用 hardhat 與 ethers 寫成,而 circom 與 snarkjs 使用官方當前的版本,合約用 0.7.0,測試使用 Typescript 。
比起兩年前的 tornado-core ,simple-tornado 使用的技術更新,可能更適合初學者理解這份專案,但是它有 bug…我在 issues 的地方有紀錄說明。
在開發的過程中,我的順序是先從最小單位的 MiMC hash function 開始玩,發現必須 javascript 算一次 hash、solidity 算一次、circom 再算一次,確保這三個語言對同一個值算出同樣的 hash 之後,才能放心去做更複雜的 Merkle Tree。
總結
我們可以看到 Tornado Cash 簡單的兩個函式:Deposit 與 Withdraw,透過將代幣送入合約後再提領到另一個地址的流程,應用 ZKP 達成匿名的交易。
除了斷開 Deposit 與 Withdraw 的地址關聯性之外,Tornado Cash 還有做了一層「藏樹於林」的隱私防護,這部份的解釋就請參考 ZKP 讀書會 Tornado Cash。
網路上很多關於 ZKP 的文章或專案都是在 2019 年後出產的,經過許多人對這項技術的嘗試,讓我們對 ZKP 有了更清晰的理解,如今兩年後,開發工具也變得更加成熟,期待未來在 web 隱私議題上能看到更多 ZKP 大放異彩的應用。
原始碼
tornado-core
simple-tornado
參考資料
ZKP 讀書會 Tornado Cash
Tornado Privacy Solution Cryptographic Review
Tornado Cash 實例解析 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
使用者代碼是什麼 在 范琪斐 Youtube 的最讚貼文
最近 BBC 國際部宣布,它們的新聞網站將要進駐暗網!之後能讓中國、伊朗、越南這些資訊被政府封鎖或過濾的國家,也可以瀏覽到 BBC 的內容。
暗網到底是什麼?其實我們平常在 Google 能夠找的到的,都叫做『明網』Clearnet,通常當我們瀏覽的時候,都會有一組 IP,知道說你是從哪個位置、哪個國家來的,而且會留下數位足跡;但是有一些透過加密的檔案,或是一些有關犯罪的網站,這些找不到但實際存在的頁面,就叫做『暗網』Darknet,你在裡面名字跟 IP 會一直換,你就像隱形在網路一樣。
根據統計,世界上有 4% 的網站就是我們一般人能看見的明網;深網則佔了足足 96 %,深網就像你信箱裡的信、付費訂閱的內容、你的聊天記錄、臉書未公開的內容,你只有自己看得到,這些都深網的一部分,深網並不是都非法的,只是不容易被取得,深網裡面才有『暗網』。所以可以想像一個冰山圖,我們只看得到上面尖尖的一角,下面還有許多我們不知道的內容。
但進入案網可沒有這麼簡單,首先必須先透過知情人士,取得網址,因為暗網的網址大多是由沒有規則的亂碼組成,再透過 TOR 也就是洋蔥路由器才能看到,TOR 是一種免費的開放源代碼通訊軟體,有多重加密,可以屏蔽使用者的資訊,就像剝洋蔥,一層又一層代理連接,隱匿性非常高。
當沒有人知道妳是誰的時候,人性的黑暗面就出來了。
像是在暗網上就有個叫『絲綢之路』的網站,有人說這是暗網裡最具品牌價值的電商,但賣的都是非法品,舉凡假護照、毒品、性奴、兒童色情、軍火,甚至是買賣器官、買凶殺人,沒有下限,只要能想到的,什麼都買得到,而且暗網上不收現金,都是用虛擬貨幣做交易,想抓也抓不到,雖然絲綢之路最初的創辦人 2017 年被 FBI 給抓了,但現在卻也出現了跟2.0 3.0的版本,還是有許多人在上面交易。就像是暗黑版的淘寶。
而且可怕的還不只這些,暗網還有分不同層次,較深層的暗網通常涉及更多的犯罪行為,例如人獸交、人體肢解、獵殺人類、人體實驗、殺人直播等等。
暗網最初是由美國海軍研究實驗室設計的,設置的用意是讓軍方跟政府官員,可以匿名在網路世界通訊,但因為網路進步,軍用到民用的轉折,讓 TOR 成為美國政府最頭痛的敵人之一,因為 TOR 有著最複雜跟高端的加密技術,暗網也成為黑市、非法、犯罪者跟神秘組織的溫床。
但其實可怕的不是暗網,是人性的黑暗面!
暗網也可以用在好的地方,像是極權國家的爆料人可以透過暗網可以讓,將資訊傳出去, BBC ,就是透過暗網來突破資訊封鎖跟網路監控。
不過暗網上其實也有不少 FBI 在上面臥底,而且詐騙也是層出不窮,畢竟在暗網大家都是匿名的,有時給了錢,人就跑了。在這邊還是呼籲大家,不要進去暗網,不要助長這些惡意!
你對 BBC 進駐暗網有什麼看法?快來在底下留言和我們一起討論。
--------------------------------------
《#范琪斐ㄉ寰宇漫遊》每週四晚間十點在 #寰宇新聞台 播出,沒跟上的也沒關係,歡迎訂閱我們的 YouTube 頻道 🔔#范琪斐ㄉ寰宇漫遊 🔔https://reurl.cc/ZvKM3 1030pm準時上傳完整版!
使用者代碼是什麼 在 中國信託使用者代號是什麼-推薦/討論/評價在PTT、Dcard 的推薦與評價
使用者 代號係客戶於申請網路銀行時,自行設定之代號(六至十二碼之阿拉伯數字與英文... 銀行代碼822 為中國信託012 為富邦銀行銀行代碼或代號通常為三位數 ... ... <看更多>
使用者代碼是什麼 在 中國信託使用者代號是什麼-推薦/討論/評價在PTT、Dcard 的推薦與評價
使用者 代號係客戶於申請網路銀行時,自行設定之代號(六至十二碼之阿拉伯數字與英文... 銀行代碼822 為中國信託012 為富邦銀行銀行代碼或代號通常為三位數 ... ... <看更多>
使用者代碼是什麼 在 [問題] 為何還那麼多銀行APP登入要打一堆字的? - 批踢踢實業坊 的推薦與評價
身分證字號、使用者名稱、密碼、驗證碼
為何現在還那麼多銀行APP登入要打一堆字的?
再不然就是只給記憶身分證字號
是發展落後還是為了資安?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 138.68.224.227 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Bank_Service/M.1586617640.A.1EB.html
... <看更多>