เส้นทางการเรียนรู้ของ Blockchain


บล็อคเชนคืออะไร?
บล็อคเชนคือฐานข้อมูลสาธารณะ คลิปวีดีโออธิบาย Blockchain#1


ฐานข้อมูลกระจาย (Distributed Ledgers)
บล็อคเชนถือเป็น Distributed Ledger รูปแบบหนึ่ง ฐานข้อมูลประเภทนี้จะเก็บข้อมูลชุดเดียวกันไว้หลายๆฐานเพื่อใช้เปรียบเทียบกัน


ข้อตกลงร่วมในระบบ (Consensus Mechanism)
Consensus Mechanism คือข้อตกลงที่ใช้ร่วมกันระหว่าง node ในการทำให้ข้อมูลทั้งหมดเป็นชุดเดียวกัน


การขุดเหรียญคริปโต (Mining)
เราเรียกกระบวนการในการเขียนข้อมูลเพิ่มลงบนบล็อคเชนว่า เป็นการต่อบล็อคใหม่ การขุดเหรียญคริปโต คือกระบวนการในการค้นหาผู้มีสิทธิ์เพียงคนเดียวที่จะสามารถเขียนข้อมูลใหม่ 1 บล็อคลงบนบล็อคเชนได้


บล็อคเชนสาธารณะและบล็อคเชนส่วนตัว
ส่วนมากบล็อคเชนส่วนตัวจะเป็นที่นิยมใช้กันเองระหว่างองค์กรประเภทธนาคารการเงินที่มีการทำธุรกรรมร่วมกัน โดยทั่วไปจะเรียกตามชื่อเทคโนโลยี เช่น Hyper Ledger เป็นต้น จะไม่เรียกว่าบล็อคเชน นิยาม ในกรณีทั่วไปแล้ว บล็อคเชน จะหมายถึงบล็อคเชนสาธารณะเท่านั้น


คุณสมบัติบล็อคเชน
คุณสมบัติที่สำคัญในการนิยามเทคโนโลยีนี้


ข้อดีของแอพบล็อคเชน
จุดเด่น 5 ประการในการเอาบล็อคเชนเข้ามาประยุกต์ใช้ในธุรกิจ


ความเข้าใจผิดเกี่ยวกับบล็อคเชน
เทคโนโลยีบล็อคเชนยังถือว่าใหม่มาก หลายคนที่ไม่เข้าใจในเทคโนโลยีนี้ทำให้เกิด ความเข้าใจผิดไปต่างๆมากมาย เช่น บล็อคเชนเป็นภาพลวงตา เป็นแหล่งฟอกเงิน เป็นแชร์ลูกโซ่หลอกลวง


บล็อคเชนทำงานอย่างไร?
บล็อคเชนคือสมุดจดบันทึกที่แก้ไขบรรทัดที่จดไปแล้วไม่ได้


การเข้ารหัสแฮช
การเข้ารหัสแฮช เป็นวิธีเรียงลำดับข้อมูล (data structure) แบบหนึ่ง แต่ด้วยคุณสมบัติพิเศษของผลลัพธ์แฮช ทำให้มันถูกนำมาใช้ในการ รักษารหัสผ่าน Password & hash functions รวมถึงใช้เทียบข้อมูลระหว่าง node ในบล็อคเชนอีกด้วย



การอนุญาตและสิทธิ์ในการเข้าถึงข้อมูล (public key)
การรับส่งข้อมูลในที่สาธารณะจำเป็นต้องใช้ Public and Private Keys เพื่อความปลอดภัยจากผู้ดักฟัง


เมอร์เคิลทรี (Merkle tree)
เมอร์เคิลทรีเป็นวิธีการเก็บข้อมูลรูปแบบหนึ่งซึ่งมีคุณสมบัติ what is Merkle tree


โครงสร้างของบล็อคเชน
โครงสร้างของบล็อคเชนเป็นเมอร์เคิลทรีกิ่งเดียว (แยกกิ่งเวลามีการ fork)


ฐานข้อมูลบล็อคเชน (nodes)
node ในบริบทบล็อคเชนคือ ฐานข้อมูล 1 จุด มีหน้าที่ร่วมเป็นส่วนหนึ่งในการตรวจสอบสิทธิ์การเขียนข้อมูล และสามารถขอสิทธิ์เขียนข้อมูลได้ตามเงื่อนไขของแต่ละบล็อคเชน full node จะหมายถึง node ที่เก็บข้อมูลทั้งหมดตั้งแต่บล็อคแรกของบล็อคเชน light node จะเก็บข้อมูลเพียงบางส่วน Blockchain Nodes


การอัพเดทระบบบล็อคเชน (fork)
โดยทั่วไปแล้วการ fork จะเกิดขึ้นเมื่อนักพัฒนาเห็นตรงกันว่าระบบควรอัพเดทเพื่อให้มีประสิทธิภาพดีขึ้น เมื่อระบบมีการเปลี่ยนแปลง คนขุดเหรียญ(คนต่อบล็อค)ก็จำเป็นต้องแก้ไขระบบตามเพื่อให้ตรงกันกับระบบปัจจุบัน การเปลี่ยนแปลงดังกล่าวทำให้เกิดการแยก(fork)บล็อคออกมาอีกสาย โดยถ้าสายเก่าไม่มีคนใช้ก็จะถูกปล่อยคาทิ้งไว้ตามเดิม Blockchain Forks Explained


Ethereum คืออะไร

ปัจจุบัน(มีนาคม 2562)อีเธอเรียมเป็นบล็อคเชนที่มี community ใหญ่ที่สุดในบรรดาบล็อคเชนทุกตระกูล มีนักพัฒนาทั่วโลกช่วยกันคิดผลิตเครื่องมือต่างๆเพื่อผลักดันให้เทคโนโลยีนี้สามารถเข้ามามีบทบาทเปลี่ยนยุคสมัยของคนทุกคนบนโลกในวันข้างหน้า บทความอธิบาย Ethereum


บัญชีบนบล็อคเชน (accounts)
บัญชีหรือ accounts เป็นพื้นฐานการทำงานของระบบอีเธอเรียม


การเชื่อมต่อข้อมูลบนบล็อคเชน (transactions)
ลักษณะข้อมูลบนอีเธอเรียม Ethereum transaction


ค่าธรรมเนียมแก๊ส
ค่าธรรมเนียม ในการเขียนข้อมูลลงบนบล็อคเชนคือรายได้ของนักขุดเหมืองเหรียญคริปโตนั่นเอง


โครงสร้างอีเธอเรียม
อีเธอเรียมเป็นบล็อคเชนสาธารณะ แปลว่าใครก็ได้สามารถเปิด node ขึ้นมาเพื่อรับข้อมูลเชนทั้งหมดมาเก็บไว้ ใครก็ได้สามารถเปิด node มาเพื่อขุดเหรียญ(ต่อบล็อค)อีเธอเรียมตามระเบียบที่วางไว้ได้เช่นกัน a gentle introduction to Ethereum


Smart Contract

เครื่องมือต่างๆ ที่ใช้เขียนสมาร์ทคอนแทรค
Tools และ Frameworks ต่างๆที่ใช้เขียนสมาร์ทคอนแทรค What are the development tools for Ethereum?


ขั้นตอนการเขียนสมาร์ทคอนแทรค
เรียนรู้การเขียนสมาร์ทคอนแทรคจากศูนย์ Create a Hello World Contract in Ethereum


เขียน smart contracts แรกด้วย Truffle 4.0
แบบฝึกหัดสอนเขียน DApps


Solidity

Solidity เป็นภาษาโปรแกรมมิ่งที่ใช้เขียนสมาร์ทคอนแทรคบนอีเธอเรียมโดยเฉพาะ syntax จะคล้ายกับภาษา JavaScript เรียนรู้การเขียน Solidity ฟรีผ่านเกม cryptozombies


การ deploy contract แบบทำเอง

การเริ่มต้นใช้งานแอพบล็อคเชน การ deploy contract แบบทำเอง(manually)จะช่วยให้เราสามารถเข้าใจในระบบการทำงานของบล็อคเชนได้ดี


การ deploy contract ด้วย Truffle

Truffle เป็น framework ที่โดดเด่นที่สุดในการย่นย่อขั้นตอนต่างๆในการเริ่มต้นใช้แอพบล็อคเชน


การจัดการ error

วิธีการดูแล error ต่างๆอย่างเป็นระบบ(best practice)


Block & Transactions

การดูแลจัดการ block และ transactions ในโค้ด


ค่าธรรมเนียมแก๊ส

แก๊สคือค่าธรรมเนียมในการเขียนข้อมูลลงบล็อคเชนให้กับ node ที่ได้สิทธิ์ในการเขียนในแต่ละบล็อค

การส่งอีเธอเรียมถึงกันและกัน
หลักการในการรับส่งอีเธอเรียมถึงกันและกัน


การออกแบบและพัฒนาแอพบล็อคเชน

การเขียน UI ด้วย web3.js
web3.js เป็น framework ที่เชื่อมข้อมูลจากอีเธอเรียมมาเป็น JavaScript


การเรียกใช้ MetaMask
การจัดการกระเป๋าเงิน MetaMask ในโค้ด


การเรียกใช้งาน events
จุดประสงค์และวิธีใช้ events ในโค้ดเพื่อความง่ายในการดูแล


การยกเลิก contracts
การจัดการและยกเลิก contracts ที่ปล่อยออกไปแล้ว


Infura
ปกติแล้วการจะ deploy smart contracts ลงอีเธอเรียมนั้นเราจะต้องเปิด node ตัวเองเพื่อเข้าร่วมระบบบล็อคเชน Infura ช่วยทำหน้าที่ตรงนี้ให้

  • 1