โปรเจค EdChance
เนื่องจากวันที่ 25–26 พฤษภาคม 2562 ที่ผ่านมา ผมได้มีโอกาสเข้าร่วมงาน Surge Hackathon Bangkok โดย Unicef เป็นผู้จัดงานนี้ขึ้นมา เป้าหมายของงานนี้คือการใช้ blockchain ช่วยในเรื่องของ Financial Inclusion เช่นเรื่องระดมทุนเพื่อการบริจาคหรือ การกระจายเงินบริจาคให้เข้าถึงผู้รับ
โดยทีมของผมเป็นตัวแทนจาก BandProtocol ซึ่งประกอบไปด้วย 4 คน ได้แก่ peach(Front End Developer), Paul Chonpimai(Project Manager), Ming(Designer), Q-jipyeongseon Geunyang Samgagbeob(Smart contract Developer)
ที่มาของโปรเจค EdChance
โปรเจคนี้ได้แนวคิดมาจากปัญหาของเด็กที่ต้องย้ายตามพ่อแม่ที่เป็นแรงงานข้ามชาติมาทำงานก่อสร้างในประเทศไทย ทำให้เกิดปัญหาเด็กไม่ได้เข้ารับการศึกษาขั้นพื้นฐาน จากสถิติเด็กที่ย้ายเข้ามามีประมาณเกือบ 370,000 คน แต่เด็กที่ได้รับการศึกษาในโรงเรียนรัฐมีแค่ 145,379 คน อีก 18,912 คนที่ในศูนย์ต่างๆ และอีก 200,000 คนที่ไม่ได้เข้ารับการศึกษา!!
ปัญหาที่ทำให้การสนับสนุนทุนการศึกษาเกิดขึ้นได้ยากได้แก่
- การย้ายที่ทำงานหลายครั้ง แรงงานข้ามชาติที่ทำงานก่อสร้างเมื่อการก่อสร้างนั้นเสร็จก็ต้องย้ายไปทำงานที่ใหม่หลายครั้งใน 1 ปี ทำให้เด็กต้องย้ายโรงเรียนตาม
- ไม่สามารตรวจสอบการเข้าเรียนของเด็กได้ บริษัทก่อสร้างมีเงินทุนสนับสนุนค่าเล่าเรียนของเด็ก แต่ไม่มีวิธีที่ทำให้มั่นใจว่าหลังจากสนับสนุนไปแล้วเด็กได้เข้ารับการศึกษาจริง
โดยปัจจุบันองค์กร Unicef กำลังจะมีโครงการที่จะร่วมมือกับบริษัทก่อสร้างรายใหญ่ต่างๆและหน่วยงานกำกับดูแลของไทยเพื่อให้เงินสนับสนุนการศึกษากับลูกของแรงงานข้ามชาติโดยแบ่งงบการศึกษาที่ได้จากบริษัทให้ทั้งโรงเรียนและ พ่อแม่ เพื่อเป็นแรงจูงใจให้ส่งบุตรหลานไปเข้ารับการศึกษา
แต่ปัญหาคือจำเป็นต้องเชื่อใจหน่วยงานกลาง ซึ่งหน่วยงานไหนที่จะรับหน้าที่ในการจัดการเงินทั้งสามฝ่ายได้แก่ บริษัท(ผู้สนับสนุนเงินทุน) ,โรงเรียนและ พ่อแม่ อย่างโปร่งใส่ ถูกต้องและตรวจสอบได้
EdChance จึงเกิดขึ้น
เราสร้าง Smart contract บน Ethereum เพื่อจัดการแบ่งงบจากบริษัทให้ทั้งสองฝ่าย(โรงเรียนกับพ่อแม่) และช่วยให้ไม่จำเป็นต้องสร้าง infrastructure ที่ซับซ้อนในการเชื่อมทุกองค์กรเข้าด้วยกัน
โดยเราจะมี 2 เว็บไซต์ให้บริษัทและโรงเรียน ส่วน Token ที่ใช้คือ DAI เป็นสกุลเงิน (DAI เป็น stablecoin ที่ราคาเทียบเท่าราคา USD)
โครงสร้างของระบบ
ก่อนอื่นเลยต้องเล่าถึงโครงสร้างก่อนว่าประกอบไปด้วยอะไรบ้าง
- Gnosis Wallet ใช้เป็น wallet ของทางฝั่งบริษัทและโรงเรียน (สามารถใช้ Metamask ก็ได้เช่นกัน)
- Company Web Dashboard เป็นเว็บไซต์ให้สำหรับทางบริษัทโอนเงินเข้า Smart contract, เพิ่มนักเรียน, ตรวจสอบข้อมูลการเข้าเรียน, ตรวจสอบข้อมูลโรงเรียน (React.JS)
- Smart contract ใช้สำหรับเก็บข้อมูลของนักเรียน, เก็บข้อมูลโรงเรียน, โอนเงินให้แก่โรงเรียนและพ่อแม่เมื่อนักเรียนเข้าเรียน (Solidity 0.5.8)
- Band Protocol สร้าง List ของโรงเรียนที่น่าเชือถือโดยวิธี Token-Curated DataSources
- Keycard จาก Status เป็น hardware wallet ใช้แทนบัตรประจำตัวนักเรียน หรือ สามารถใช้ซื้อของในโรงเรียนได้
- School Check-in Web Portal เป็นเว็บไซต์สำหรับทางโรงเรียนเพื่อแสดงข้อมูลของนักเรียนที่ check-in และส่งข้อมูลไปยัง Ethereum (React.JS)
- Card Reader Server ใช้ภาษา Python กับ Library ของ Status เพื่อขอข้อมูลนักเรียนจาก Keycard และรวมถึงการ Sign Message โดยใช้คู่กับ School Check-in Web Portal
ผู้ใช้งานระบบของเราจะมีทั้งหมด 3 กลุ่ม ได้แก่
- บริษัทก่อสร้าง มีหน้าที่นำงบการศึกษาโอนเข้า Smart contract และ เพิ่มรายชื่อนักเรียน
- พ่อแม่(แรงงานข้ามชาติ) เด็กแต่ละคนจะได้รับ Keycard คนละใบใช้สแกนก่อนเข้าเรียนที่โรงเรียน
- โรงเรียน ใช้ School Check-in Web Portal คู่กับเครื่อง Card Reader สแกน Keycard ของนักเรียนก่อนเข้าโรงเรียน
โดย Company Web Dashboard จะมีทั้งหมด 4 ส่วนได้แก่
- ส่วน Topup เป็นส่วนให้โอนเงินเข้า Smart contract
- ส่วน List ของโรงเรียน (Column ซ้าย) เป็นส่วนแสดง List ของโรงเรียนที่ผ่านเกณฑ์และสามารถเข้าร่วมโครงการ (โดยหลักการสร้าง List ของโรงเรียนคือ Token-Curated DataSources)
- ส่วน Student List (Column กลาง) เป็นส่วนแสดงรายชื่อนักเรียนที่พ่อแม่ทำงานให้กับบริษัทของตน โดยสามารถเพิ่มนักเรียนเข้าสู่ระบบได้
- ส่วน Student Checked-in (Column ขวา) เป็นส่วนแสดงว่านักเรียนคนไหนได้เข้าเรียนที่โรงเรียนไหนตอนกี่โมง และ จำนวนเงินที่โอนให้กับพ่อแม่และโรงเรียน
เมื่อบริษัทกดปุ่ม Topup จะมี form ให้ใส่จำนวนเงินที่ต้องการโอน (หน่วยเป็น DAI)
หลังจากกด Confirm แล้ว Safe Wallet จะขึ้นมาให้ Confirm อีกที
School Check-in Web Portal
ก่อนนักเรียนจะสแกน Keycard โรงเรียนจะเห็นแบบนี้
เมื่อนักเรียนสแกน Keycard เว็บจะแสดงข้อมูลของนักเรียนและรูปภาพของเจ้าของ Keycard ซึ่งในขณะนั้นโรงเรียนจะ Sign วันและเวลาที่นักเรียนคนนี้เข้าเรียน ส่วน Keycard ของนักเรียนก็จะทำการ Sign วันและเวลาเดียวกัน หลังจากนั้นโรงเรียนจะส่งข้อมูลที่ถูก Sign จากทั้งสองฝ่ายไปบน Chain เพื่อตรวจสอบว่าข้อมูลนักเรียนและโรงเรียนทั้งหมดถูกต้อง แล้ว Smart contract จะทำการโอนเงินให้ทั้งสองฝ่ายอัตโนมัติ
สรุป
โปรเจคนี้เป็น Prototype สำหรับการแก้ไขปัญหาของหน่วยงาน Unicef ที่ต้องการจัดสรรทุนการศึกษาของเด็กข้ามชาติ โดยที่ไม่ต้องการหน่วยงานกลางมากำกับดูแลการจัดสรรงบให้ทั่วถึงทุกฝ่าย
- ผู้ปกครองมีแรงจูงใจในการส่งลูกหลานไปโรงเรียน เพราะว่าเด็กจำเป็นต้องใช้ Keycard กับเครื่องสแกนบัตรของทางโรงเรียนภายในเวลาเข้าเรียนเท่านั้น
- โรงเรียนมีแรงจูงใจในการรับเด็กเข้าเรียน เพราะว่าการจะได้รับเงินจากบริษัทนั้นจำเป็นต้องใช้ Keycard ของเด็กด้วย
- ไม่จำเป็นต้องมีหน่วยงานกลางมาจัดสรรเงิน
- ป้องกัน attack vector เช่น การสร้าง address โรงเรียนปลอมขึ้นมาเพื่อรับเงิน เนื่องจาก message ต้องถูก signed ด้วย private key ซึ่งอยู่ภายใน wallet ของโรงเรียนที่เข้าร่วมโครงการเท่านั้น
- นักเรียนสามารถย้ายโรงเรียนไปยังโรงเรียนอื่นๆใน List ของโครงการได้ เนื่องจากข้อมูลนักเรียนนั้นถูกเก็บอยู่บน Smart contract
- บริษัทสามารถมั่นใจได้ว่าเงินสนับสนุนการศึกษานั้นถูกจ่ายให้โรงเรียนและเด็กโดยตรงและ โปร่งใสตรวจสอบได้
รางวัลที่ได้รับ
ได้รับ 2 รางวัลด้วยกัน ได้แก่
1. รางวัลที่ 1 ของงานนี้ได้จากทาง MESG
2. รางวัลนี้ได้จากทาง Gnosis โดยการใช้ gnosis safe เป็น wallet ในโปรเจคนี้
สุดท้ายนี้ขอขอบคุณผู้จัดงานและ ทีมงานทุกๆคนครับ ส่วนใครมีคำถามสามารถ comment มาได้เลยนะครับ ขอบคุณครับ