แหล่งความรู้บล็อคเชน สำหรับตั้งแต่คนที่ไม่รู้จัก ไปจนถึงคนที่ต้องการเขียนเหรียญตัวเอง
สารบัญ:
ความรู้พื้นฐาน(non technical)
Ethereum(intermediate)
การเขียนแอพบนบล็อคเชนอีเธอเรียม(technical)
- บล็อคเชนทำงานอย่างไร?
- set up environment ในการเขียน smart contracts
- เขียน smart contracts แรกด้วย Truffle 4.0
- การออกแบบและพัฒนาแอพบล็อคเชน
บล็อคเชนคือฐานข้อมูลสาธารณะ คลิปวีดีโออธิบาย Blockchain#1
บล็อคเชนถือเป็น Distributed Ledger รูปแบบหนึ่ง ฐานข้อมูลประเภทนี้จะเก็บข้อมูลชุดเดียวกันไว้หลายๆฐานเพื่อใช้เปรียบเทียบกัน
Consensus Mechanism คือข้อตกลงที่ใช้ร่วมกันระหว่าง node ในการทำให้ข้อมูลทั้งหมดเป็นชุดเดียวกัน
เราเรียกกระบวนการในการเขียนข้อมูลเพิ่มลงบนบล็อคเชนว่า เป็นการต่อบล็อคใหม่ การขุดเหรียญคริปโต คือกระบวนการในการค้นหาผู้มีสิทธิ์เพียงคนเดียวที่จะสามารถเขียนข้อมูลใหม่ 1 บล็อคลงบนบล็อคเชนได้
ส่วนมากบล็อคเชนส่วนตัวจะเป็นที่นิยมใช้กันเองระหว่างองค์กรประเภทธนาคารการเงินที่มีการทำธุรกรรมร่วมกัน โดยทั่วไปจะเรียกตามชื่อเทคโนโลยี เช่น Hyper Ledger เป็นต้น จะไม่เรียกว่าบล็อคเชน นิยาม ในกรณีทั่วไปแล้ว บล็อคเชน จะหมายถึงบล็อคเชนสาธารณะเท่านั้น
คุณสมบัติที่สำคัญในการนิยามเทคโนโลยีนี้
จุดเด่น 5 ประการในการเอาบล็อคเชนเข้ามาประยุกต์ใช้ในธุรกิจ
เทคโนโลยีบล็อคเชนยังถือว่าใหม่มาก หลายคนที่ไม่เข้าใจในเทคโนโลยีนี้ทำให้เกิด ความเข้าใจผิดไปต่างๆมากมาย เช่น บล็อคเชนเป็นภาพลวงตา เป็นแหล่งฟอกเงิน เป็นแชร์ลูกโซ่หลอกลวง
เราสามารถติดตามศึกษาข้อมูลเหรียญคริปโตทุกเหรียญบนโลกได้จากเว็บ coinmarketcap โดยเว็บเรียงลำดับสกุลเงินให้ตามมูลค่าปัจจุบัน
เหรียญคริปโตเหรียญแรกที่ใช้ได้จริง มีมูลค่าสูงที่สุดในตระกูลเหรียญคริปโต
อีเธอเรียมเป็นบล็อคเชนที่สามารถเขียนแอพลงไปได้
XRP เป็นเหรียญที่เน้นการโอนเงินระหว่างธนาคารข้ามประเทศ เน้นความเสถียรในการใช้งาน XRP
ไลท์คอยเป็นเหรียญที่ต่อยอดไอเดียระบบมาจากบิทคอยโดยใช้ algorithm ที่ซับซ้อนกว่าแต่เร็วกว่าบิทคอย Litecoin
อีออสเป็นบล็อคเชนที่เน้นความเร็วในการเขียนข้อมูลโดยยอมลดระดับความปลอดภัยลง EOS
ปัจจุบัน(มีนาคม 2562)อีเธอเรียมเป็นบล็อคเชนที่มี community ใหญ่ที่สุดในบรรดาบล็อคเชนทุกตระกูล มีนักพัฒนาทั่วโลกช่วยกันคิดผลิตเครื่องมือต่างๆเพื่อผลักดันให้เทคโนโลยีนี้สามารถเข้ามามีบทบาทเปลี่ยนยุคสมัยของคนทุกคนบนโลกในวันข้างหน้า บทความอธิบาย Ethereum
บัญชีหรือ accounts เป็นพื้นฐานการทำงานของระบบอีเธอเรียม
ลักษณะข้อมูลบนอีเธอเรียม Ethereum transaction
ค่าธรรมเนียม ในการเขียนข้อมูลลงบนบล็อคเชนคือรายได้ของนักขุดเหมืองเหรียญคริปโตนั่นเอง
อีเธอเรียมเป็นบล็อคเชนสาธารณะ แปลว่าใครก็ได้สามารถเปิด node ขึ้นมาเพื่อรับข้อมูลเชนทั้งหมดมาเก็บไว้ ใครก็ได้สามารถเปิด node มาเพื่อขุดเหรียญ(ต่อบล็อค)อีเธอเรียมตามระเบียบที่วางไว้ได้เช่นกัน a gentle introduction to Ethereum
สมาร์ทคอนแทรคคือข้อตกลงร่วม สัญญาร่วมกันระหว่างแต่ละฝ่าย เงื่อนไขที่ถูกเขียนเป็นกฎลงบนบล็อคเชน smart contracts simply explained
Tools และ Frameworks ต่างๆที่ใช้เขียนสมาร์ทคอนแทรค What are the development tools for Ethereum?
เรียนรู้การเขียนสมาร์ทคอนแทรคจากศูนย์ Create a Hello World Contract in Ethereum
บล็อคเชนคือสมุดจดบันทึกที่แก้ไขบรรทัดที่จดไปแล้วไม่ได้
การเข้ารหัสแฮช เป็นวิธีเรียงลำดับข้อมูล(data structure)แบบหนึ่ง แต่ด้วยคุณสมบัติพิเศษของผลลัพธ์แฮช ทำให้มันถูกนำมาใช้ในการ รักษารหัสผ่าน Password & hash functions รวมถึงใช้เทียบข้อมูลระหว่าง node ในบล็อคเชนอีกด้วย
การรับส่งข้อมูลในที่สาธารณะจำเป็นต้องใช้ Public and Private Keys เพื่อความปลอดภัยจากผู้ดักฟัง
เมอร์เคิลทรีเป็นวิธีการเก็บข้อมูลรูปแบบหนึ่งซึ่งมีคุณสมบัติwhat is Merkle tree
โครงสร้างของบล็อคเชนเป็นเมอร์เคิลทรีกิ่งเดียว(แยกกิ่งเวลามีการ fork)
node ในบริบทบล็อคเชนคือ ฐานข้อมูล 1 จุด มีหน้าที่ร่วมเป็นส่วนหนึ่งในการตรวจสอบสิทธิ์การเขียนข้อมูล และสามารถขอสิทธิ์เขียนข้อมูลได้ตามเงื่อนไขของแต่ละบล็อคเชน full node จะหมายถึง node ที่เก็บข้อมูลทั้งหมดตั้งแต่บล็อคแรกของบล็อคเชน light node จะเก็บข้อมูลเพียงบางส่วน Blockchain Nodes
โดยทั่วไปแล้วการ fork จะเกิดขึ้นเมื่อนักพัฒนาเห็นตรงกันว่าระบบควรอัพเดทเพื่อให้มีประสิทธิภาพดีขึ้น เมื่อระบบมีการเปลี่ยนแปลง คนขุดเหรียญ(คนต่อบล็อค)ก็จำเป็นต้องแก้ไขระบบตามเพื่อให้ตรงกันกับระบบปัจจุบัน การเปลี่ยนแปลงดังกล่าวทำให้เกิดการแยก(fork)บล็อคออกมาอีกสาย โดยถ้าสายเก่าไม่มีคนใช้ก็จะถูกปล่อยคาทิ้งไว้ตามเดิม Blockchain Forks Explained
การเขียนแอพลงบนบล็อคเชนยังถือเป็นเรื่องใหม่และยังมีการเปลี่ยนแปลงอยู่ตลอดเวลา เนื่องจากเทคโนโลยีบล็อคเชนเป็นของสาธารณะไม่มีใครสามารถเป็นเจ้าของครอบครองมันได้ ทำให้การพัฒนาเทคโนโลยีนี้จำเป็นต้องพึ่งพากลุ่มคนที่เชื่อมั่นในศักยภาพของเทคโนโลยีนี้ ช่วยกันแบ่งปันความรู้และพัฒนาไปด้วยกัน ดังนั้นอีเธอเรียมจึงเป็นบล็อคเชนที่มีความเป็นไปได้มากที่สุดจากการที่มี community กลุ่มใหญ่ที่สุด
การติดตั้งแอพต่างๆเพื่อเขียนแอพบล็อคเชนบน Mac
การติดตั้งแอพต่างๆเพื่อเขียนแอพบล็อคเชนบน Windows
การติดตั้งแอพต่างๆเพื่อเขียนแอพบล็อคเชนบน Linux
ทรัฟเฟิล เป็น framework ที่ช่วยเขียนสมาร์ทคอนแทรคที่มีชื่อเสียงมากที่สุด
กานาช เป็นบล็อคเชนจำลองสำหรับนักพัฒนาไว้ใช้เขียนและทดสอบในเครื่องตัวเอง
เมต้ามาสค์ เป็นกระเป๋าตังที่ใช้เก็บอีเธอเรียมได้จริงๆ เป็นอุปกรณ์หนึ่งที่ใช้ในการเขียนแอพบล็อคเชน
แบบฝึกหัดสอนเขียน DApps
Solidity เป็นภาษาโปรแกรมมิ่งที่ใช้เขียนสมาร์ทคอนแทรคบนอีเธอเรียมโดยเฉพาะ syntax จะคล้ายกับภาษา JavaScript เรียนรู้การเขียน Solidity ฟรีผ่านเกม cryptozombies
การเริ่มต้นใช้งานแอพบล็อคเชน การ deploy contract แบบทำเอง(manually)จะช่วยให้เราสามารถเข้าใจในระบบการทำงานของบล็อคเชนได้ดี
Truffle เป็น framework ที่โดดเด่นที่สุดในการย่นย่อขั้นตอนต่างๆในการเริ่มต้นใช้แอพบล็อคเชน
วิธีการดูแล error ต่างๆอย่างเป็นระบบ(best practice)
การดูแลจัดการ block และ transactions ในโค้ด
แก๊สคือค่าธรรมเนียมในการเขียนข้อมูลลงบล็อคเชนให้กับ node ที่ได้สิทธิ์ในการเขียนในแต่ละบล็อค
หลักการในการรับส่งอีเธอเรียมถึงกันและกัน
web3.js เป็น framework ที่เชื่อมข้อมูลจากอีเธอเรียมมาเป็น JavaScript
การจัดการกระเป๋าเงิน MetaMask ในโค้ด
จุดประสงค์และวิธีใช้ events ในโค้ดเพื่อความง่ายในการดูแล
การจัดการและยกเลิก contracts ที่ปล่อยออกไปแล้ว
ปกติแล้วการจะ deploy smart contracts ลงอีเธอเรียมนั้นเราจะต้องเปิด node ตัวเองเพื่อเข้าร่วมระบบบล็อคเชน Infura ช่วยทำหน้าที่ตรงนี้ให้