🔔🔔🔔小芋圓辦公室公告🔔🔔🔔
族人們午安😀
新北市安心餐館防疫補貼計畫上限摟!🤗
雖然補貼不多
但也不無小補😜
符合資格的捧油要記得去申請呦!!!
補貼資格:110年7月25日前於新北市設立商業登記或公司登記,營業項目包含「F501060餐館業」,營業處所位於新北市。
補貼內容:擇一方案申請,補貼金額:3000元。
第一類:房租、水、電、瓦斯、隔板等營運必要支出
第二類:與外送平台合作或設置行動支付等拓展營運必要支出
1.建議可先到經濟部商工登記資料查詢服務,輸入您的統一編號查詢您的設立日期以及營業項目。請注意資料種類勾選「公司」或「商業」,營業項目是否包含「F501060餐館業」
https://pse.is/3kkycp
2.相關申請文件請至新北市政府經濟發展局下載列印填寫、大小章用印:
https://pse.is/3kwjle
3.送件方式:
「郵寄」:220242新北市板橋區中山路1段161號3樓經濟發展局商業發展科,信封請註明「新北安心餐館防疫補貼計畫」-店家名稱。
或「線上申請」:請填寫基本資料並應備文件掃描或拍照後,上傳新北市政府雲端櫃檯👉https://pse.is/3kxdlv
💲💲
#補貼 #月底發薪 (問號?
同時也有81部Youtube影片,追蹤數超過14萬的網紅アスキー,也在其Youtube影片中提到,「週刊アスキー」読み放題!アスキー倶楽部 デジタル版 No.1293(2020年7月28日発行) https://id.ascii.jp/weeklyascii リモートワークで不満が出たら回線見直し! 人気のRyzenでパソコン自作に挑戦してみては? ====================...
javascript輸入 在 Taipei Ethereum Meetup Facebook 的精選貼文
📜 [專欄新文章] 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.
👏 歡迎轉載分享鼓掌
javascript輸入 在 香香之小資旅遊日記 Facebook 的最佳解答
台湾スシロー 台灣壽司郎
Ubereats/foodpanda 外送外帶
送濃厚抹茶巧克力蛋糕
不是薯條🍟
吃到不知道吃什麼
換個口味
#生魚片壽司
6/2~6/6活動期間變更為贈送濃厚抹茶巧克力蛋糕
如贈送完畢得以黃金脆薯替代。
✅foodpanda
新會員註冊送100
https://pse.is/3gmtsf
✅ubereats
新會員註冊送200
輸入序號eats-ebckg
http://ubr.to/EatsGiveGet
Ubereats
外帶自取75折
優惠碼 外帶七五
javascript輸入 在 アスキー Youtube 的精選貼文
「週刊アスキー」読み放題!アスキー倶楽部 デジタル版 No.1293(2020年7月28日発行)
https://id.ascii.jp/weeklyascii
リモートワークで不満が出たら回線見直し! 人気のRyzenでパソコン自作に挑戦してみては?
=========================================
「週刊アスキー」No.1293の中身は?
週刊アスキーNo.1293(2020年7月28日発行)
https://ascii.jp/elem/000/004/021/4021209/
【表紙の人】
桜田ひより
【特集】
スマホも自宅回線も安く高速化する
【ASCII Top Stories】
シャープが食費を気にする冷蔵庫を発売
【特集】
Ryzen PC自作入門
【特報】
iPad Proと外付けSSD「T7 Touch」でPDFの作業が捗りまくる
【ASCII Power Review】
XPS15 (2020)
【連載】
コードレス+静か+スマホリモコンの「スマート扇風機2S」/T教授の戦略的衝動買い
【連載】
サーキットを実現!? 3Dふうレースゲーム/JavaScriptの部屋
【連載】
2.5GbE LANの速度をType-CのLANアダプターで検証!/ジサトラ
【連載】
壮大なストーリーがPCでも楽しめる!「DEATH STRANDING」/ゲーム部+
【ニュース】
過去最大容量となる18TBの3.5インチHDD/アスキー秋葉原情報局
【連載】
いざ突入ブラックホール! が、やはり一筋縄ではいかなそう!/数式なんて知らんし!!
【連載】
iOS 14で訪れるiPhone体験のコンパクトデザイン/アップル時評
【連載】
パトカーに似合うカラーコーンを輸入しました/オヤジホビー
【連載】
歴代iPhoneで撮りためた猫写真を振り返る/今週のねこちゃん写真館
【連載】
人気店「えびそば一幻」の「まぜそば」を食べてみた!/今週のグルメ
【連載】
「Go To トラベル」でさまざまな騒動が起きそうだ/ASCII倶楽部に行こう!!
【連載】
アウトドアで活躍するアイテム/アスキーストア通信
【連載】
マイナポイントはすぐに申し込まないほうがお得?/コラムジャングル
【連載】
アメリカから来たポリスカー!?/カオスだもんね! PLUS
【ニュース】
皮膚に貼り付けられるディスプレー 東大と大日本印刷が開発に成功/ASCII.jp News
【連載】
覚悟を決めたら露出は惜しまず! 西村 禮/今週のグラビア
【連載】
福田有宵先生が占う! 今週の運勢/7月28日〜8月3日
【連載】
Nikon Z5は未来であるべし/NeXT=完全予想
CM編集:ラッキー橋本
-----------------------------------
★ムービーサイト「アスキーTV」http://ascii.jp/asciitv/
★ニュースサイト「ASCII.jp」http://ascii.jp/
★超ファンクラブ「ASCII倶楽部」http://ascii.jp/asciiclub/
-----------------------------------
javascript輸入 在 Walker Youtube 的最讚貼文
改過之前,雷達上的寶可夢都只是文字和編號,很醜,不好分辨,
以下網址可以直接連結到那一個字串
https://goo.gl/gAQ1Bh
複製,再貼到網址欄,
再輸入 javascript:
就可以將文字和編號轉化成寶可夢 ^^
或者
將下方第一個我的留言複製,再貼到網址欄,
再輸入 javascript:
也可以將文字和編號轉化成寶可夢 ^^
javascript輸入 在 吳老師教學部落格 Youtube 的精選貼文
跨平台APP開發使用Visual Studio2015與PhoneGap(第17次Web_SQL資料庫重點回顧與AJAX說明&jQuery的Ajax技術與開放資料下載&Ajax方法下載JSON資料與顯示&將下載資料顯示為項目&修改為結合到Jquery_Mobile_ListView清單元件&補充埔里美食範例)
上課內容:
01_Web_SQL資料庫重點回顧與AJAX說明
02_jQuery的Ajax技術與開放資料下載
03_Ajax方法下載JSON資料與顯示
04_將下載資料顯示為項目
05_修改為結合到Jquery_Mobile_ListView清單元件
06_補充埔里美食範例
完整影音
https://www.youtube.com/playlist?list=PLgzs-Q3byiYP2Ht2VJxZ8izfKOE7Fyk3S
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/labor_app_2016
懶人包:http://terry55wu.blogspot.com/p/android.html
課程理念與課程介紹:
從基礎、進階到雲端資料庫整合與行動網頁的全面運用,打造最強、最新、最實用的全方位商業級互動網站!
並延伸到APP開發,並將之結合,用JAVA程式設計APP對一般人來說太難,這門課就是用網站觀念做APP,利用PhoneGap服務見可以快速將Web轉成APP。
並使用Visual Studio 2015 X Cordova跨平台應用程式設計,環境建置 X 開發入門 X 介面設計 X 各種應用元件App實務開發的完全整合學習!
最簡單!開發及維護成本低,直接整合應用HTML、CSS及JavaScript進行App開發,學習曲線最短,效率最高!
超跨界!一次開發,即可發佈Android、iOS、Windows不同平台的App,免除學習多種開發工具的煩惱。
神開發!應用HTML即可直接控制智慧手機照相攝影、錄音放音、GPS羅盤、無線網路等眾多硬體感測器!
極直覺!搭配Visual Studio 2015即可簡化專案佈置與程式碼輸入流程,提高開發效率!
不藏私!全新的版本、最全面的解說,引領全方位的App應用程式開發學習。重實例!以小範例入門,到整合的App實例,深入行動應用,範例全面涵蓋:系統醫生、聯絡簿管理、音樂播放器、定位地圖、自我介紹、QRCode掃瞄器、中英文語音合成、檔案上傳下載、簡易照相機、數位羅盤…
參考書目
跨平台 Android.iPhone 程式開發:使用 Visual Studio Community+Cordova/PhoneGap+jQuery Mobile作者:陳會安ISBN:9789863123217出版社:旗標出版日期:2016/01/21
Visual Studio 2015 X Cordova跨平台App實戰訓班(附近120分鐘關鍵影音教學/全書範例程式)鄧文淵 總監製/文淵閣工作室 編著出版商: 碁峰出版日期: 2016-03-29
HTML5+CSS3+jQuery Mobile輕鬆打造App與行動網站(第二版)
作者: 數位新知, 陳婉凌
出版社:博碩 出版日期:2016/01/08
吳老師教學部落格:
http://terry55wu.blogspot.com/
android 開發教學,android 程式教學,android 使用教學,android app教學,android sdk,android eclipse,android 開發,android studio 開發教學,android studio tutorial,app開發教學,Visual Studio2015,PhoneGap