[爆卦]let數學是什麼?優點缺點精華區懶人包

雖然這篇let數學鄉民發文沒有被收入到精華區:在let數學這個話題中,我們另外找到其它相關的精選爆讚文章

在 let數學產品中有46篇Facebook貼文,粉絲數超過0的網紅,也在其Facebook貼文中提到, Look, ma! 我的全新專輯《來者何人{}》 今天在數位平台全面上線了! 這張專輯,就好像給所有人考一條人生的數學題一樣。從n!到{} 符號的轉變,讓我也思考什麼是「過去的總和」和「現在的我」。現在的自己,一直都在學習面對與放下。在愛下一個人之前,要先優先處理自己,再好好面對下一個愛的旅程。...

 同時也有5部Youtube影片,追蹤數超過43萬的網紅Carl Ho卡爾 頻道,也在其Youtube影片中提到,註1: 粵語中會以髒話『柒』來表示『出糗』 讀音與數字『7』相近 因此很多人會以7來代替此字 原版影片: [1] Oh! o o Oh! OO O o O o O o o O ~ https://youtu.be/mSeEz7ealQw [2] 猜猜我是誰挑戰 2017 "Who's that...

let數學 在 Lara Liang Veronin 梁心頤 Instagram 的最讚貼文

2021-09-17 12:33:10

Look, ma! 我的全新專輯《來者何人{}》 今天在數位平台全面上線了! 這張專輯,就好像給所有人考一條人生的數學題一樣。從n!到{} 符號的轉變,讓我也思考什麼是「過去的總和」和「現在的我」。現在的自己,一直都在學習面對與放下。在愛下一個人之前,要先優先處理自己,再好好面對下一個愛的旅程。...

let數學 在 林舒嬅 ㄕㄨ ㄏㄨㄚˋ Instagram 的最讚貼文

2021-01-05 15:25:42

這次要來分享我在明道,敬愛的國中和高中班導師。是女老師這次我們就不放對比照了啦哈哈哈哈哈雖然我覺得她們長一樣根本沒變!( 這點我見到老師們的時候也講了很多遍,老師絕對是外貌不受歲月影響的職業之一!) 在明道六年,大概可以說閉著眼睛都會知道怎麼從校門口走到教室、幾年幾班在哪棟樓都可以秒講,( 但這次...

  • let數學 在 Facebook 的精選貼文

    2021-09-14 10:15:47
    有 106 人按讚

    Look, ma! 我的全新專輯《來者何人{}》 今天在數位平台全面上線了!

    這張專輯,就好像給所有人考一條人生的數學題一樣。從n!到{} 符號的轉變,讓我也思考什麼是「過去的總和」和「現在的我」。現在的自己,一直都在學習面對與放下。在愛下一個人之前,要先優先處理自己,再好好面對下一個愛的旅程。希望你在我的新歌裡,也找到屬於自己的一首歌。💖

    最近,很開心能跟 陳勢安 Andrew Tan 遠距離對唱<再也沒有你>。這首歌想表達的是,再傷也要懂得放手,走不下去的感情,寧願成為最熟悉的陌生人,也不要再無止境的糾纏下去。

    再也沒有你,我仍然堅強 。

    Part 2 of “Dear You” is out!

    Without getting into the mathematics of it, suffice it to say that the {} EP focuses on the Now, which contrasts the n! EP’s reminiscence of past memories. Everyday I am learning how to let go of the things that don’t matter and face the things that do. A lot of that journey is in these songs; I hope you find one that speaks to you.

    Ps. I’m so excited to be able to work with Andrew Tan on “No More U", the lead single of my new EP “Dear You {}”. Andrew and I both believe in the power of healing, and hope that we can touch you through our song. Before entering your next relationship, try to enjoy some “me” time, starting with this album!

    馬上收聽《來者何人{}》 Listen now️:https://LaraLiang.lnk.to/DearYou2

    #Lara梁心頤2021全新專輯二部曲 #來者何人{} 9.14全球發行
    #再也沒有你 #NoMoreU #SoWhat30

  • let數學 在 Taipei Ethereum Meetup Facebook 的最讚貼文

    2021-06-21 17:57:12
    有 1 人按讚

    📜 [專欄新文章] ZKP 與智能合約的開發入門

    ✍️ Johnson

    📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium

    這篇文章將以程式碼範例,說明 Zero Knowledge Proofs 與智能合約的結合,能夠為以太坊的生態系帶來什麼創新的應用。

    本文為 Tornado Cash 研究系列的 Part 2,本系列以 tornado-core 為教材,學習開發 ZKP 的應用,另兩篇為:

    Part 1:Merkle Tree in JavaScript

    Part 3:Tornado Cash 實例解析

    Special thanks to C.C. Liang for review and enlightenment.

    近十年來最強大的密碼學科技可能就是零知識證明,或稱 zk-SNARKs (zero knowledge succinct arguments of knowledge)。

    zk-SNARKs 可以將某個能得出特定結果 (output) 的計算過程 (computation),產出一個證明,而儘管計算過程可能非常耗時,這個證明卻可以快速的被驗證。

    此外,零知識證明的額外特色是:你可以在不告訴對方輸入值 (input) 的情況下,證明你確實經過了某個計算過程並得到了結果。

    上述來自 Vitalik’s An approximate introduction to how zk-SNARKs are possible 文章的首段,該文說是給具有 “medium level” 數學程度的人解釋 zk-SNARKs 的運作原理。(可惜我還是看不懂 QQ)

    本文則是從零知識證明 (ZKP) 應用開發的角度,結合電路 (circuit) 與智能合約的程式碼來說明 ZKP 可以為既有的以太坊智能合約帶來什麼創新的突破。

    基本上可以謹記兩點 ZKP 帶來的效果:

    1. 擴容:鏈下計算的功能。
    2. 隱私:隱藏秘密的功能。

    WithoutZK.sol

    首先,讓我們先來看一段沒有任何 ZKP 的智能合約:

    這份合約的主軸在 process(),我們向它輸入一個秘密值 secret,經過一段計算過程後會與 answer 比對,如果驗證成功就會改寫變數 greeting 為 “answer to the ultimate question of life, the universe, and everything”。

    Computation

    而計算過程是一個簡單的函式:f(x) = x**2 + 6。

    我們可以輕易推出秘密就是 42。

    這個計算過程有很多可能的輸入值 (input) 與輸出值 (output):
    f(2) = 10
    f(3) = 15
    f(4) = 22


    但是能通過驗證的只有當輸出值和我們存放在合約的資料 answer 一樣時,才會驗證成功,並執行 process 的動作。

    可以看到有一個 calculate 函式,說明這份合約在鏈上進行的計算,以及 process 需要輸入參數 _secret,而我們知道合約上所有交易都是公開的,所以這個 _secret 可以輕易在 etherscan 上被看到。

    從這個簡單的合約中我們看到 ZKP 可以解決的兩個痛點:鏈下計算與隱藏秘密。

    Circuits

    接下來我們就改寫這份合約,加入 ZKP 的電路語言 circom,使用者就能用他的 secret 在鏈下進行計算後產生一個 proof,這 proof 就不會揭露有關 secret 的資訊,同時證明了當 secret 丟入 f(x) = x**2 + 6 的計算過程後會得出 1770 的結果 (output),把這個 proof 丟入 process 的參數中,經過 Verifier 的驗證即可執行 process 的內容。

    有關電路 circuits 的環境配置,可以參考 ZKP Hello World,這裡我們就先跳過去,直接來看 circom 的程式碼:

    template Square() { signal input in; signal output out; out <== in * in;}template Add() { signal input in; signal output out; out <== in + 6;}template Calculator() { signal private input secret; signal output out; component square = Square(); component add = Add(); square.in <== secret; add.in <== square.out; out <== add.out;}component main = Calculator();

    這段就是 f(x) = x**2 + 6 在 circom 上的寫法,可能需要時間去感受一下。

    ZK.sol

    circom 寫好後,可以產生一個 Verifier.sol 的合約,這個合約會有一個函式 verifyProof,於是我們把上方的合約改寫成使用 ZKP 的樣子:

    我們可以發現 ZK 合約少了 calculate 函式,顯然 f(x) = x**2 + 6 已經被我們寫到電路上了。

    snarkjs

    產生證明的程式碼以 javascript 寫成如下:

    let { proof, publicSignals } = await groth16.fullProve(input, wasmPath, zkeyPath);

    於是提交 proof 給合約,完成驗證,達到所謂鏈下計算的功能。

    最後讓我們完整看一段 javascript 的單元測試,使用 snarkjs 來產生證明,對合約的 process 進行測試:

    對合約來說, secret = 42 是完全不知情的,因此隱藏了秘密。

    publicSignals

    之前不太清楚 publicSignals 的用意,因此在這裡特別說明一下。

    基本上在產生證明的同時,也會隨帶產生這個 circom 所有的 public 值,也就是 publicSignals,如下:

    let { proof, publicSignals } = await groth16.fullProve(input, wasmPath, zkeyPath);

    在我們的例子中 publicSignals 只有一個,就是 1770。

    而 verifyProof 要輸入的參數除了 proof 之外,也要填入 public 值,簡單來說會是:

    const isValid = verifyProof(proof, publicSignals);

    問題來了,我們在設計應用邏輯時,當使用者要提交參數進行驗證的時候,publicSignals 會是由「使用者」填入嗎?或者是說,儘管是使用者填入,那它需不需要先經過檢查,才可以填入 verifyProof?

    關鍵在於我們的合約上存有一筆資料:answer = 1770

    回頭看合約上的 process 在進行 verifyProof 之前,必須要檢查 isAnswer(publicSignals[0]):

    想想要是沒有檢查 isAnswer,這份合約會發生什麼事情?

    我們的應用邏輯就會變得毫無意義,因為少了要驗證的答案,就只是完成計算 f(42) = 1770,那麼不論是 f(1) = 7 或 f(2) = 10,使用者都可以自己產生證明與結果,自己把 proof 和 publicSignals 填入 verifyProof 的參數中,都會通過驗證。

    至此可以看出,ZKP 只有把「計算過程」抽離到鏈下的電路,計算後的結果仍需要與鏈上既有的資料進行比對與確認後,才能算是有效的應用 ZKP。

    應用邏輯的開發

    本文主要談到的是 zk-SNARKs 上層應用邏輯的開發,關於 ZKP 的底層邏輯如上述使用的 groth16 或其他如 plonk 是本文打算忽略掉的部分。

    從上述的例子可以看到,即使我們努力用 circom 實作藏住 secret,但由於計算過程太過簡單,只有 f(x) = x**2+6,輕易就能從 answer 反推出我們的 secret 是 42,因此在應用邏輯的開發上,也必須注意 circom 的設計可能出了問題,導致私密訊息容易外洩,那儘管使用再強的 ZKP 底層邏輯,在應用邏輯上有漏洞,也沒辦法達到隱藏秘密的效果。

    此外,在看 circom 的程式碼時,可以關注最後一個 template 的 private 與 public 值分別是什麼。以本文的 Calculator 為例,private 值有 secret,public 值有 out。

    另外補充:

    如果有個 signal input 但它不是 private input,就會被歸類為 public。

    一個 circuit 至少會有一個 public,因為計算過程一定會有一個結果。

    最後,在開發的過程中我會用 javascript 先實作計算過程,也可以順便產出 input.json,然後再用 circom 語言把計算過程實現,產生 proof 和 public 後,再去對照所有 public 值和 private 值,確認是不是符合電路計算後所要的結果,也就是比較 javascript 算出來的和 circom 算出來的一不一樣,如果不一樣就能確定程式碼是有 bug 的。

    參考範例:https://github.com/chnejohnson/circom-playground

    總結

    本文的程式碼展現 ZKP 可以做到鏈下計算與隱藏秘密的功能,在真實專案中,可想而知電路的計算過程不會這麼單純。

    會出現在真實專案中的計算像是 hash function,複雜一點會加入 Merkle Tree,或是電子簽章 EdDSA,於是就能產生更完整的應用如 Layer 2 擴容方案之一的 ZK Rollup,或是做到匿名交易的 Tornado Cash。

    本文原始碼:https://github.com/chnejohnson/mini-zkp

    下篇文章就來分享 Tornado Cash 是如何利用 ZKP 達成匿名交易的!

    參考資料

    概念介紹

    Cryptography Playground

    zk-SNARKs-Explainer

    神奇的零知識證明!既能保守秘密,又讓別人信你!

    認識零知識證明 — COSCUP 2019 | Youtube

    應用零知識證明 — COSCUP 2020 | Youtube

    ZK Rollup

    動手實做零知識 — circom — Kimi

    ZK-Rollup 开发经验分享 Part I — Fluidex

    ZkRollup Tutorial

    ZK Rollup & Optimistic Rollup — Kimi Wu | Medium

    Circom

    circom/TUTORIAL.md at master · iden3/circom · GitHub

    ZKP Hello World

    其他

    深入瞭解 zk-SNARKs

    瞭解神秘的 ZK-STARKs

    zk-SNARKs和zk-STARKs解釋 | Binance Academy

    [ZKP 讀書會] MACI

    Semaphore

    Zero-knowledge Virtual Machines, the Polaris License, and Vendor Lock-in | by Koh Wei Jie

    Introduction & Evolution of ZK Ecosystem — YouTube

    The Limitations of Privacy — Barry Whitehat — YouTube

    Introduction to Zero Knowledge Proofs — Elena Nadolinski

    ZKP 與智能合約的開發入門 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.

    👏 歡迎轉載分享鼓掌

  • let數學 在 Facebook 的最讚貼文

    2020-12-28 19:37:23
    有 160 人按讚

    這次要來分享我在明道,敬愛的國中和高中班導師。是女老師這次我們就不放對比照了啦哈哈哈哈哈雖然我覺得她們長一樣根本沒變!( 這點我見到老師們的時候也講了很多遍,老師絕對是外貌不受歲月影響的職業之一!)

    在明道六年,大概可以說閉著眼睛都會知道怎麼從校門口走到教室、幾年幾班在哪棟樓都可以秒講,( 但這次回去我竟然聽到蠡海大樓四個字還蛤了一下哈哈哈 )六年的故事真的太多了啦,可以同學會坐下來聊一整天的那種,先從距離現在11年的國中講起。

    我國中是5班,班導是第一張照片的 陳婉華老師,也是數學老師。婉華老師對我們就像對自己孩子般的耳提面命,從成績到禮貌、到生活作息也是。我印象最深刻婉華老師說過的一句話就是:

    「乾淨乾淨,要乾才會淨!!!」

    因為只要教室旁邊有廁所的班級,都會被分配到要打掃,會有糾察隊巡視評分的那種,我們班就是離廁所相對近的班級。

    那次,班上的整潔分數沒有很理想,廁所地板濕到可以邊唱let it go~婉華老師大概講了有半個早自習,要怎麼打掃廁所、濕拖把完再用乾拖把,水龍頭旁邊要怎麼樣擦等等的,把最簡單和基本的事情做好!

    長大後才體悟一句話:「嚴師出高徒」,在國中成長階段,也是因為婉華老師的處處叮嚀、很多小細節要怎樣注意,我覺得我們班的同學都蠻有禮貌的啦哈哈哈,這次見到婉華老師很驚喜老師還記得我當時曾送過她什麼禮物🎁說我還是當年她認識的印象與樣子,感人😭

    ————————————————

    再來是我的高中,8班,
    高中班導、也是英文老師,林曉慧老師,我們都叫她Tracy( 嗯⋯到高中有點自覺小大人的這個年紀,大家會開始直接稱呼老師名字表示友好哈哈哈哈有夠失禮^_^)
    對Tracy的印象就是她感覺好像都很冷靜,情緒線就是一條平穩的道路,可能因為這樣大家都和Tracy像朋友一樣會聊天,得到的回應大概會是:哦哦是喔!所以大家沒在怕跟她聊天。
    連生氣的時候,同學可能會互看想說,老師現在是有生氣嗎?有嗎?🤔
    印象是到快大考的時候,班上還沒有收心進入考試狀態,她那陣子就蠻嚴肅的,發考卷會說:「這英文作文是在寫什麼東西( 啊語氣還是一樣平靜哦哈哈哈哈)」通常直到空氣凝結,我們才會跟著安靜,皮開始有繃。

    這次回去,Tracy跟我聊了好多,我成功的讓印象中非常平穩淡定的她說了幾次「哈哈、太好笑了」,覺得得到了肯定,很有成就感。

    —————————————————

    附上的照片還有和師長們的合照( 校長還是一樣帥 )( 我手機裡沒有和婕鈴學姊的合照抱歉嗚嗚 )
    照片還有和立璇組長、信穎姐合照❤️
    我愛明道的大家!下次見!