📜 [專欄新文章] 基於區塊鏈的去中心化報名系統
✍️ Yuren Ju
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
這次 Ethereum 全明星技術座談終於到了一個段落,也比較有時間來整理一下資訊。這次最特別的就是採用了基於區塊鏈的報名方式,記錄使用者的報名資訊在區塊鏈上,到場時再出示報名相關的證明來驗證是否報名。Taipei Ethereum Meetup 是一個推廣 Ethereum 區塊鏈的技術社群,報名時也採用區塊鏈技術再適合不過了!
剛開始的時候我們想解決的問題是上次 BeyondBlock 研討會時出現率過低的問題,這也是免費活動經常會遇到的情況,通常出席率會落在六成到七成之間。而 Taipei Ethereum Meetup 是因為大家的熱情聚集並且一同組織活動,大家花費了很多心力舉辦活動,出席率不彰自然容易澆熄熱情,所以這也是我們上次活動後就想要解決的問題。
首先我們剛開始想做的是押金制,想要透過智能合約收取押金後,在使用者證明出席後退回押金。
不過這次的活動因為想租用更好的場地來容納更多觀眾,經過社群組織人的討論後,決定應該要改用付費制,在這個當下其實我們已經把押金制的系統建置大約六成並且在社群內進行內部測試了,所以我們又很緊急的將系統改成付費制的報名系統,這也是最後大家看到的報名網站。
當然去除掉押金設計,整個智能合約的功能也會比較簡化,僅需要處理付款之後紀錄錢包地址即可。
整個系統並不是完全的去中心化應用,而是混合了中心化與去中心化技術。網站採用 react.js 開發,並且透過 ethjs 連接 MetaMask 並且接入區塊鏈。而電子郵件與報名者名字則因為個人隱私考量沒有放在區塊鏈上面,而使用中心化的 Firebase 資料庫儲存這些資訊。
我們的智能合約放在 Github 上供大家參考,部署時需要提供幾個參數:
錢包地址:活動結束後會需要把 ETH 報名費匯出到一個錢包
參與人數:整個活動的參與人數上限
報名開始時間:只有在開始報名後智能合約才會接受報名
當使用者前往報名頁面後,系統將會透過 eth.js 與 MetaMask 連接這次報名所使用的智能合約,並且取得智能合約中的目前報名人數資訊。
首先要滿足幾個條件才可以開始報名:(1) 報名時間已經開始 (2) 參與人數還沒到達上限 (3) 使用者呼叫報名的函式時有附上超過 0.015 的 ETH。
當以上條件都滿足時,填妥資料送出後會發出一個 Transaction 到區塊鏈上,當此筆交易成功時你的錢包位址將會被登錄入區塊鏈中的智能合約。
在此同時我們也會將電子郵件與報名者名字紀錄在 Firebase 資料庫當中,並且透過電子郵件送出報名相關資訊。我們的報到機制因為考慮到現場要如何簡易的驗證使用者的資訊,僅採用使用者出示系統所寄送的電子郵件作為證明。
整體來說在這個報名系統中,去中心化平台負責了跟資產相關的邏輯:報名費、入場資格;中心化服務則負責了儲存個人隱私資訊以及寄送電子郵件的功能。
當然這樣的售票方式是一個實驗,過程中間也遇到一些問題待解決。
首先第一個問題就是有數個使用者希望一次買多張票,但當初沒有這樣的設計,導致有這樣需求的人必須切換不同錢包地址來購買多張票卷,這是個可以在智能合約裡面改進的地方。
另外由於我們寄送信件是透過 Firebase 的寄信功能,寄信的時間點在新增資料到 Firebase 資料庫時即寄出信件,但是資料進入資料庫時並不保證交易已經成功,導致後台系統還需要額外確認資料庫裡面記錄的錢包地址是否有完成交易取得票卷,這也是可以透過 etheruem event 更好的處理,或是也可以考慮完全移除 Firebase 的依賴。
最後其實電子郵件當初是因為需要發出報名資訊方便當天報到所以才額外在 Firebase 紀錄,但是也可以透過其他方法處理報到流程,進而讓這個系統脫離對 Firebase 中心化資料庫的依賴。
其中一個可以的做法是當報名成功後,讓使用者再次透過 MetaMask 簽名特定訊息,並且將簽名後的結果產生成 qrcode,並且提示使用者妥善保存此 qrcode 作為出席的依據,在報到時可以利用此 qrcode 確認這是由特定錢包簽名過的資訊作為入場依據。
去中心的報名系統適合嗎?
當我們開放報名的那天,我心裡還在反覆思考到底使用這樣的報名方式到底恰不恰當。隨著票券售馨,加上當天超過九成的出席率也讓我放下心中的大石。其實當使用者已經花了不少心力搞清楚怎麼用區塊鏈報名時,不夠感興趣的使用者都放棄了,最後完成報名的出席活動的機率當然會非常的高。
但這也是個雙面刃,這樣的報名方式的技術門檻還是不低,首先要有 ETH 以外,還需要安裝 MetaMask 並且利用它完成報名。採用這樣的報名方式,短期看來還是比較適合採用在跟 Ethereum 相關的技術型活動。
當然我們也期待有更好的基礎建設可以讓所有人使用區塊鏈技術時都可以變得非常簡單的那一天 — 就如同現在大家都可以輕鬆的透過瀏覽器上網際網路一般 😀
本報名系統網站方面由我 (Yuren Ju) 與 KK Chen 開發,並且由謝永宸撰寫第一版較複雜的押金制智能合約,後期由我修改成付費制的智能合約。本專案為開放源碼專案以 MIT 授權釋出。
https://github.com/EtherTW/tickets
基於區塊鏈的去中心化報名系統 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
同時也有43部Youtube影片,追蹤數超過73萬的網紅Mira's Garden,也在其Youtube影片中提到,在韓國的台灣餐廳其實不少! 這次跟朋友去的叫 Little Taiwan 在首爾有2間分店 我去的是往十里 地址:서울 성동구 마조로1가길 想吃真正台灣味的朋友可以去一試!! 運台灣人都認證的真正台灣味阿!! *本影片跟 Nokia 8 合作* 這個影片由頭到尾都是用 Nokia 8 雙鏡頭...
「徵技術分享文」的推薦目錄:
- 關於徵技術分享文 在 Taipei Ethereum Meetup Facebook
- 關於徵技術分享文 在 Taipei Ethereum Meetup Facebook
- 關於徵技術分享文 在 Taipei Ethereum Meetup Facebook
- 關於徵技術分享文 在 Mira's Garden Youtube
- 關於徵技術分享文 在 好倫 Youtube
- 關於徵技術分享文 在 Mira's Garden Youtube
- 關於徵技術分享文 在 分類看板- 批踢踢實業坊 的評價
- 關於徵技術分享文 在 華碩徵才!軟硬體研發工程師大需求『文組』也可轉任|科技島 的評價
- 關於徵技術分享文 在 工作板 - Dcard 的評價
徵技術分享文 在 Taipei Ethereum Meetup Facebook 八卦
📜 [專欄新文章] 技術解析台灣交易所BitoPro駭客攻擊
✍️ Jeff Hu
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
重演2014年的 Partial Payment 漏洞利用,罪咎誰當?
背景
台灣加密貨幣交易所 BitoPro 於台灣時間2019年4月28日上架 Ripple 瑞波幣(XRP)開放交易,並於台灣時間2019年5月1日遭到駭客利用 Partial Payment 特徵進行漏洞攻擊,可能損失達6300萬台幣 (根據 BlockTempo 報導)
漏洞在哪?
漏洞來自於 Ripple 支付的特別功能
Ripple 早期推出多種有別於傳統支付 (Payment) 的交易格式,包含非默認路徑支付 (NoDirectRipple)、部分支付 (PartialPayment)、限定匯率支付 (LimitQuality),並採用特定的支付標籤 (Transaction Flag) 作為標記:
https://developers.ripple.com/payment.html#payment-flags
部分支付:容易忽略的危險設計
部分支付的目的主要用於回彈所有目的未知的付款 (Boucing Payments),有點類似於以太坊智能合約常見的 fallback-revert 功能:
function () { revert();}
對 Ripple 而言,一般常見的支付交易 (Payment) 格式如下:
{ "TransactionType" : "Payment", "Account" : "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn", "Destination" : "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX", "Amount" : { "currency" : "USD", "value" : "100", "issuer" : "rf1BiGeXwwQoi3Z2ueFYTEXSwuJYfV2Jpn" }, "Fee": "12", "Flags": 2147483648, "Sequence": 2,}
上面的 Amount 欄位用來紀錄此筆紀錄總共涉及多少價值。
而特殊的部分交易 (Partial Payment) 格式則會多出一個欄位 delivered_amount,並取代原先 Amount 來紀錄真正涉及的價值。
"delivered_amount": { "currency": "USD", "value": "1", "issuer": "rf1BiGeXwwQoi3Z2ueFYTEXSwuJYfV2Jpn"}
也就是說,如果交易所或任何機構在接受 Partial Payment 時忘記使用新欄位 delivered_amount,而仍然使用舊的 Amount,就有機會受害…
攻擊發生了
駭客使用部分支付進行攻擊
根據 XRPSCAN 上這筆對 BitoPro 的存入支付,可以看出攻擊者將 Amount 設定在 330,000 XRP (約330萬元台幣),不過實際支付的金額只有右側 Delivered 欄位的 0.003255 XRP (約0.03元台幣),甚至低於此筆支付的手續費 0.005 XRP。
706E3FEC8F44CECB6E85FBE749AD5BC4C9C50BA75A280DCCD211696BE17F64B4
若 BitoPro 接受此轉帳並讀取 Amount 作為存入金額,則駭客將憑空製造330萬元台幣,而這筆錢由誰買單?…就將會是交易所自己。
漏洞無人知曉?
2014年Justcoin交易所遭駭
2014年10月8日挪威的 Justcoin 交易所遭到駭客利用部分支付漏洞攻擊。
Stellar 已改善此功能
源自於 Ripple 設計的恆星幣 Stellar 因具有與 Ripple 同樣的部分支付設計,但在觀察到其帶來的實作風險時,已在Justcoin遭駭後三天內改善此功能。
Ripple 持續使用此功能
部分支付是個特徵而不是個錯誤。
“It is not a bug. It’s a feature.”
只能由官網上看到幾篇提醒使用者的說明:[1] 與 [2]。
今後如何預防
每天詳讀 Ripple 的特徵公佈欄
加強 KYC 與 Sanity Checks
閱讀大量區塊鏈攻防新聞:XRP Chat, BlockTempo, ZyCrypto, SlowMist, 與 BlockThreat
來上課啦plz (作者為大家開課的廣告):https://hahow.in/cr/berkeley
作者為大家開設的 Hahow X UC Berkeley 線上區塊鏈課程:
來啦現在快半價誒:https://hahow.in/cr/berkeley
以上技術解析如有建議,歡迎大家主動指出。
作者對 BitoPro 是100%支持,也希望他們能夠安全平穩的度過這個難關,台灣的區塊鏈生態大家一起加油!:)
技術解析台灣交易所BitoPro駭客攻擊 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
👏 歡迎轉載分享鼓掌
徵技術分享文 在 Taipei Ethereum Meetup Facebook 八卦
📜 [專欄新文章] Vitalik 對代幣設計的看法
✍️ Chih-Cheng Liang
📥 歡迎投稿: https://medium.com/taipei-ethereum-meetup #徵技術分享文 #使用心得 #教學文 #medium
本文記錄 Vitalik 10/28 於 Maicoin 的演講。活動有直播,影片 從 23:00 開始。我也把 Vitalik 演講的部分剪接出來,上傳到 YouTube 上。
...Continue Reading
徵技術分享文 在 Mira's Garden Youtube 的評價
在韓國的台灣餐廳其實不少!
這次跟朋友去的叫 Little Taiwan
在首爾有2間分店
我去的是往十里
地址:서울 성동구 마조로1가길
想吃真正台灣味的朋友可以去一試!!
運台灣人都認證的真正台灣味阿!!
*本影片跟 Nokia 8 合作*
這個影片由頭到尾都是用 Nokia 8 雙鏡頭來拍攝的!
每部 Nokia 8 都用上一整塊鋁合金製造手機外殻,經過 40 個嚴格嘅加工同打磨工序,採用一體成型設計,帶來極好的手感!
Nokia 8 搭載獨家Nokia OZO 360°空間音效技術功能,有效減低環境噪音,可以隨時都感受到超水準的影音拍攝同播放體驗!
用 Nokia 8 雙向拍攝模式,同時拍到前後兩面情況!
產品詳情請按:
http://nokia.ly/2kWNR2M
#Bothie, #Nokia8
→ 徵求英文,韓文,日文字幕(感謝各位的抽空幫忙做字幕!讓Mira的影片有更多的人看到 )
►這裡有上字幕的影片教學 → https://goo.gl/iURCeD
►你訂閱Mira了嗎? → https://goo.gl/tJtsgg
►訂閱Mira’s Diary (第2頻道) → https://goo.gl/hvYSZ7
【MIRA 的 人氣影片】
18禁! 未成年不准看!! 韓國性愛樂園Love Land?
► https://youtu.be/Ndr2KZd5YwY
韓國人到底如何煮拉面?
► https://youtu.be/MrLopmcCK2A
在韓國剪頭髮竟然會這樣做?
► https://youtu.be/BvTN4oPnq5Y
5分鐘變韓妹!韓妹最愛 Top3 髮型教學
► https://youtu.be/e58XBp3xGyc
50件不可不知的韓國生活小事
► https://youtu.be/AaBFR-yYVQo
3個月學會韓文 - 我學韓語的方法
► https://youtu.be/DrBIqIGS7Tc
【追蹤Mira】
► INSTAGRAM https://goo.gl/t0wx5v
► FACEBOOK https://goo.gl/HtUvum
► TWITTER http://goo.gl/Li7HRM
► EMAIL mira@sagroup.co
► CAMERA Panasonic Lumix G7
【Mira 的關鍵字】
韓國/韓文/自學韓文/韓語分享/韓國旅遊/韓國必知/韓國必去/韓國必玩/韓國必吃/韓國美食/香港/香港人/廣東話/little taiwan/小台灣/正港台灣味/台灣料理/nokia 8 /雙鏡頭/nokia 8 雙鏡頭/Bothie
徵技術分享文 在 好倫 Youtube 的評價
音樂,不用翻譯
共鳴,沒有距離
東方文化自工業時代後凋敝
現代音樂的主角是西方樂器
象形文字侷限於平平仄仄平
宮商角徵羽不敵十二平均律
💪 支持創作理念
🈲 幸福不敗兵法 ▶ http://bb.yehland.com
✔️ 好倫褲子基金 ▶ http://donate.yehland.com
✔️ 加入紳士會員 ▶ http://join.yehland.com
🤵 倫粉基本義務
✔️ 訂閱好倫頻道 ▶ http://sub.yehland.com
✔️ 追蹤好倫唉居 ▶ http://ig.yehland.com
✔️ 按讚好倫臉書 ▶ http://fb.yehland.com
👀 精選必看好片
⏩ 交友軟體 ▶ http://youtu.be/qqo8i_8uhYM
⏩ 破解照騙 ▶ http://youtu.be/jIIcivxtxmk
⏩ 可愛柴犬 ▶ http://youtu.be/W4I6HuWCnJE
⏩ 型男速成 ▶ http://youtu.be/UerA6g26ZOA
⏩ 已讀不回 ▶ http://youtu.be/2zicCQ0Chyw
⏩ 最難駕照 ▶ http://youtu.be/0tiVrUO2-aM
🎥 更多經典作品
⏩ 深日本 ▶ http://dj.yehland.com
⏩ 好日本 ▶ http://gj.yehland.com
⏩ 好幸福 ▶ http://gs.yehland.com
⏩ 好知識 ▶ http://gk.yehland.com
⏩ 好廢片 ▶ http://bs.yehland.com
⏩ 純愛暴 ▶ http://bz.yehland.com
⏩ B旅推 ▶ http://bt.yehland.com
⏩ 少女觀 ▶ http://yg.yehland.com
🎁 好物分享推薦
💸 千元旅行基金 ▶ http://1000.yehland.com
🛌 便宜旅館比價 ▶ http://hotel.yehland.com
日本現代音樂濫觴於明治維新
和魂洋才保留太鼓尺八神樂笛
大正浪漫是對西方技術的憧憬
脫亞入歐擁抱吉他鋼琴小提琴
儘管國際地位不若坂本龍一
當不了李白至少可以當白居易
動畫電影結合古典旋律
音樂成為回憶最美的背景
他的女兒四歲就為宮崎駿演唱
他讓夏天降落在菊次郎身上
他是兼顧通俗與藝術的音樂家
#久石讓
徵技術分享文 在 Mira's Garden Youtube 的評價
我使用的手機是 Nokia 8
1)Nokia 8 搭載了獨家Nokia OZO 360°空間音效技術功能,有效減低環境噪音,令你隨時都感受到超水準的影音拍攝同播放體驗!
2)用 Nokia 8 雙向拍攝模式,同時拍到前後兩面情況,即刻知道發生什麼事!
3)每部 Nokia 8 都用上一整塊鋁合金製造手機外殻,經過 40 個嚴格嘅加工同打磨工序,採用一體成型設計,帶來極好的手感。
@nokiamobile #Nokia8 #Bothie #sponsored
→ 徵求英文,韓文,日文字幕(感謝各位的抽空幫忙做字幕!讓Mira的影片有更多的人看到 )
►這裡有上字幕的影片教學 → https://goo.gl/iURCeD
►你訂閱Mira了嗎? → https://goo.gl/tJtsgg
►訂閱Mira’s Diary (第2頻道) → https://goo.gl/hvYSZ7
►看我如何成為全職Youtuber?→ https://youtu.be/PbJk5covF0U
【MIRA 的 人氣影片】
18禁! 未成年不准看!! 韓國性愛樂園Love Land?
► https://youtu.be/Ndr2KZd5YwY
韓國人到底如何煮拉面?
► https://youtu.be/MrLopmcCK2A
在韓國剪頭髮竟然會這樣做?
► https://youtu.be/BvTN4oPnq5Y
5分鐘變韓妹!韓妹最愛 Top3 髮型教學
► https://youtu.be/e58XBp3xGyc
50件不可不知的韓國生活小事
► https://youtu.be/AaBFR-yYVQo
3個月學會韓文 - 我學韓語的方法
► https://youtu.be/DrBIqIGS7Tc
【追蹤Mira】
► INSTAGRAM https://goo.gl/t0wx5v
► FACEBOOK https://goo.gl/HtUvum
► TWITTER http://goo.gl/Li7HRM
► EMAIL themirrorsgarden@gmail.com
► CAMERA Panasonic Lumix G7
【Mira 的關鍵字】
韓國/韓文/自學韓文/韓語分享/韓國旅遊/韓國必知/韓國必去/韓國必玩/韓國必吃/韓國美食/香港/香港人/廣東話/
徵技術分享文 在 華碩徵才!軟硬體研發工程師大需求『文組』也可轉任|科技島 的八卦
華碩電腦曾被美國《財富》雜誌評選為「世界最受推崇企業」之一,網紅Joeman也曾經體驗一日員工,狂讚在華碩工作經驗。若是可以成為華碩電腦的員工, ... ... <看更多>
徵技術分享文 在 工作板 - Dcard 的八卦
本板提供分享面試經驗、職場心得、打工或實習經驗等相關工作話題。(徵才的職務刊登前請務必詳細閱讀置頂文。) ... <看更多>
徵技術分享文 在 分類看板- 批踢踢實業坊 的八卦
熱門看板
分類看板
... <看更多>