อบรม Blockchain กับ กสท.

สรุปย่อ Blockchain ..

  • อบรม Blockchain ในสามหัวข้อคือหลักการทำงาน use case แล้วก็ analytic
  • Blockchain จริงๆแล้วเป็น framework แบบใหม่ในการเก็บข้อมูล
  • Blockchain เป็นการประยุกต์ใช้ 3 เทคโนโลยีเข้าด้วยกันคือ Distributed computing (node and peers), Cryptography (Keys and Hash) และ Consensus algorithms (Prove of work, Prove of steak)
  • Blockchain เน้นการเก็บข้อมูล transactions ไม่ใช่เก็บข้อมูลจริงๆ
  • ประโยชน์สำคัญของการใช้งาน Blockchain คือไม่ต้องรอคนกลาง approve มีความโปร่งใสสูง (transparency) และมีความถูกต้องสูง (integrity) แต่ไม่ใช่สำหรับข้อมูลลับ (confidentiality) ซึ่งเป็นเรื่องของ data ไม่ใช่ประวัติ transaction
  • Smart Contract ประกอบไปด้วยสองส่วนคือ schema (ใคร มีสิทธิทำอะไรได้บ้าง มีโครงสร้าง กระบวนการอะไรบ้างในแต่ละ transaction) และ contract model ซึ่งก็คือ functions การทำงานต่างๆ — ในแต่ละ block ก็คือเก็บข้อมูลว่าใคร ไปทำอะไรมาบ้าง
  • Cryptocurrency ก็คือ Smart contract ประเภทนึง คือเก็บว่าใครส่งเงินไปให้ใคร (แค่นั้นเองเวลาเรียนเรื่อง Blockchain เลยยกตัวอย่างบิตคอยเพราะมันคือ simplest smart contract)
  • ไปลองสร้าง id , cryptocurrency และดูการทำงานของ blockchain hashing ได้ที่ Fexbook.com
  • deploy blockchain infra ด้วย Hyperledger ได้ที่ Hyperledger Composer tutorial and docs บน github
  • อยากมี Blockchain ไม่ยากทำตาม tutorial ก็ได้แล้ว ที่ยากคือออกแบบ schema กับเขียน contract model


ได้รับอีเมลเชิญจาก กสท. ว่าสนใจจะเข้าร่วมอบรมในหัวข้อ Blockchain ไหมซึ่งใน agenda วางเอาไว้ดีมากๆคือมีทั้งวิชาการ มีเคส แล้วก็มี workshop แต่เอาเข้าจริงๆก็ไปไม่ถึง workshop เพราะแค่ในส่วนวิชาการก็เล่นเอาหลายคนมึนกันไปพักใหญ่ (รวมถึงตัวเองด้วย) มี case การออกแบบสำหรับใช้งานจริง มีเคสในมุมของธุรกิจ ทั้ง case ต่างประเทศและเคสของประเทศไทยเอง แล้วก็การทำ analytic รวมไปถึงการออกแบบ security ให้กับระบบด้วย ซึ่งจริงๆมันคือการประยุกต์ใช้หลักการ iso27001 นั่นแหละ เอาเป็นว่าส่วนที่ได้เรียนกันจริงๆไปได้แค่ประมาณ 70% ของ print out slide ที่ได้มา แล้ว 30% นั่นก็คือส่วนของ technical และ งานออกแบบ security

IBM hyperledger tutorial
หน้าเพจ hyperledger tutorial และ documentations

แต่อย่างน้อยถึงไม่ได้ทำ hand on อะไรเลยก็ยังได้ของเล่น (Fexbook.com) มาเผื่อเอาไปใช้อธิบาย concept ได้ต่อ แล้วก็ได้ดู demo จริงๆของการ deploy hyperledger และ fabric บน ubuntu ซึ่งก็ไม่ได้ยาก เพราะส่วนที่ยากกว่าคือเขียน code ในส่วน schema แล้วก็ model contract ซึ่งอย่าว่าแต่ JAVA เลย code ธรรมดาทั่วไปก็ไม่รอด แล้วในส่วน api ที่มากับ deploy script คือ React กับ Angular ซึ่ง node.js ธรรมดาก็ยังไม่เคยใช้เลย เพราะฉะน้้นตอนนี้คือแค่รู้แล้วว่าความต้องการด้าน technology จริงๆมันมีอะไรบ้าง โดยเฉพาะอย่างยิ่งส่วนที่สำคัญจริงๆมันไม่ได้เกี่ยวข้องกับ technology เลย แต่เกี่ยวข้องกับการออกแบบกระบวนการ และก่อนที่เราจะไปทำ Smart contract ที่รองรับเงื่อนไขร่วมที่ตรงกันบางอย่าง (Consensus) คนจริงๆนี่แหละที่ต้องมาคุยกันให้รู้เรื่องก่อนว่ามันมีเงื่อนไขอะไรให้มันครอบคลุมการทำงานทั้งหมด

สิ่งที่ได้กลับมาจากสามวันคือเห็นภาพ Blockchain ได้ชัดขึ้นมากๆ ในแบบที่ต่อให้อ่านเองไปอีกเป็นเดือนๆก็ไม่น่าจะเห็นภาพได้ชัดเท่านี้ ได้เข้าใจว่า Cryptocurrency มันก็คือ smart contract ประเภทหนึ่ง ซึ่งก็ทำให้เข้าใจภาพของการใช้งานในรูปแบบ Smart contract แล้วในจุดนี้ (จากที่เคยเข้าใจว่า Bitcoin , Blockchain และ Smart contract เป็นของที่แยกออกจากกันอย่างสิ้นเชิงแต่จริงๆแล้วมันคือสิ่งเดียวกัน) — ในตัว Fexbook ที่ผู้บรรยายฝรั่งให้มาลองเล่นคือสามารถสร้าง Cryptocurrency ขึ้นมาได้เองเลยชื่ออะไรก็ได้แค่สองคลิ๊ก

Fexbook Blockchain site
Fexbook – ลองสร้าง account แล้วสุ่มดูรายละเอียดของ block หรือลองสร้างสกุลเงินขึ้นมาเล่นเองได้

แต่ประเด็นที่คนมักเข้าใจผิดกันคือ Blockchain ไม่ใช่ทุกอย่าง มันเป็นเหมือนแค่สมุดบัญชีไว้จดประวัติ transections แค่นั้น ความยากในการออกแบบ Infrastructure และ Security ในการจัดการ data ยังคงเหมือนเดิม แต่ข้อดีของมันเป็นเรื่องของความโปร่งใสจากการตรวจสอบและยืนยันผู้กระทำได้มากกว่า จริงๆแล้วมันคือเทคโนโลยีที่เอามาตีกรอบความ Tricky ของมนุษย์ เพราะ Smart contract model ต้องเขียนจากกฏที่ถูกตกลงกันมาแล้วร่วมกันจากผู้เกี่ยวข้องทุกฝ่าย มีแค่ใช่ หรือไม่ใช่ ไม่มีเทาๆ คือกระบวนการจะไปต่อได้ทุกหน่วยที่เกี่ยวข้องต้อง consensus (เห็นชอบร่วมกัน) โดยสิ่งที่ตัดสินใจไปแล้ว ถูกเก็บเป็นหลักฐานทุกคนที่เกี่ยวข้องดูได้หมด และไม่มีการเปลี่ยนแปลงย้อนหลังเพราะการเปลี่ยนแปลงก็เป็น process นึงที่จะถูกบันทึกเอาไว้ใน block (ซึ่งทุกคนก็ต้องเห็นชอบเหมือนกันหมดว่าแก้ได้) ถ้า model contract ออกแบบมาไม่ดี เมื่อเริ่ม chain ไปแล้วมีการบันทึกลงบล๊อคแล้วแก้ไขอะไรไม่ได้แล้ว

เพราะฉะนั้นความยากของ Blockchain จริงๆไม่ได้อยู่ที่ตัว technology (ณ จุดนี้ส่วนตัวมองว่า machine learning ยากกว่าเยอะ) และถ้าหากจะหาตัวอย่างของกระบวนการออกแบบง่ายๆของ Blockchain ก็คือสมุดเงินฝาก สิ่งที่อยู่ในแต่ละ block ก็คือแต่ละบรรทัดของการฝากถอน แต่เราไม่ได้เอาเงินจริงๆเสียบไว้กับสมุดฉันใด ตัว data จริงๆก็ไม่ได้ถูกเก็บไว้ใน block ฉันนั้น ส่วนตัวอย่างความยากในการออกแบบ Smart contract ก็เหมือนกับเราจะออกแบบวิธีการในการหาข้อสรุปว่าจะนัดร่วมเพื่อนสมัยเรียนมากินข้าวกันซักมื้อให้ได้แบบพร้อมหน้าพร้อมตากันเมื่อไหร่และร้านไหนดี .. ใครที่เคยทำน่าจะพอเห็นภาพได้ชัดเจนดี ว่ามันยากง่ายวุ่นวายขนาดไหนกัน ทำ Smart contract ก็ไม่ต่างกันเลย

ส่วนวิธีในการทำ Analytic กับ Blockchain โดยหลักการแล้วไม่ต่างจากการทำ Analytic ทั่วไป เพียงแต่ว่าหากต้องการเชื่อมต่อกับระบบวิเคราะห์ข้อมูลใดใด ก็ต้องมีการกำหนดให้ระบบวิเคราะห์นั้นเข้าไปอยู่เป็น node หนึ่งของระบบแต่อาจจะมีสิทธิ์แค่การอ่านข้อมูล transactions และเชื่อมต่อกับ Data ที่เกี่ยวข้องเข้ามาวิเคราะห์ได้ ซึ่งโดยหลักแล้วผลลัพธ์ที่ได้ออกมาก็คือรูปแบบของการประเมิณความเสี่ยงต่างๆ และการตรวจสอบกระบวนการว่ามีประสิทธิภาพมากน้อย หรือสามารถปรับปรุงอะไรได้อย่างไรบ้าง

credit:
+ CAT Datacom (กสท.)
+ Hyperledger composer (docs)
+ Fexbook
+ Sas/ai