วันจันทร์, มิถุนายน 17

ผู้เขียน: ปัณณพล เทิดชนะกุล

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 4 (Ethereum Blockchain)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 4 (Ethereum Blockchain)

Technical
หลักจากที่เรารู้จักส่วนประกอบต่างๆในโลกของ ethereum อย่างเช่น บัญชีผู้ใช้ การส่ง transaction และ message ในบทความนี้เราจะมาดูว่า ethereum ออกแบบสถาปัตยกรรมของ blockchain และวิธีตรวจสอบว่าความถูกต้องของแต่ละบล็อคที่สร้างอย่างไรบ้าง ในแต่ละบล็อคจะประกอบไปด้วยข้อมูลหลักๆดังนี้ 1.เลขรายการ transaction ที่เกิดขึ้น ณ ขณะที่บล็อคถูกสร้างขึ้นมา 2.สถานะล่าสุดของข้อมูล ณ ขณะที่บล็อคถูกสร้างขึ้นมา 3.เลขที่ของบล็อคซึ่งจะเป็นค่าสูงสุดของจำนวนบล็อคที่มีอยู่ในระบบ ณ ขณะที่บล็อคถูกสร้างขึ้นมา 4.ค่า difficulty ใช้สำหรับคำนวณความยากของสูตรที่ให้ miner ทำการประมวลผลเพื่อสร้างบล็อคใหม่ต่อไป ซึ่งค่า difficultyจะเพิ่มขึ้นทุกครั้งที่มีบล็อคใหม่เกิดขึ้น จึงจะเห็นได้ว่ายิ่งมีบล็อคในระบบมากเท่าไหร่ miner ก็จะใช้เวลาสร้างบล็อคในระบบมากขึ้น 5.เวลาที่บล็อคถูกสร้างขึ้น (TimeStamp) 6.ค่า Hash ขนาด 256 bit ซ
รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 3 (Ethereum State)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 3 (Ethereum State)

Technical
ในโลกของ ethereum นั้นเมื่อมีการทำ transaction เกิดขึ้นจะมีการเปลี่ยนแปลงสถานะ (Ethereum State) ของข้อมูลต่างๆที่เกี่ยวข้องกับ transaction นั้นๆ จากรูป (Cr.ethereum-state-transition-function) จะเป็นตัวอย่างทำ transaction ระหว่าง account address : 14c5f88a และ contract code : bb75a980 ซึ่งข้อมูลก่อนทำ transaction จะแสดงในกล่อง STATE และข้อมูลหลังจาก transaction ได้รับการ validate เรียบร้อยจะแสดงในกล่อง STATE’ หลักการเปลี่ยน state ของ ethereum : The Ethereum state transition function APPLY(S,TX) -> S' ตรวจสอบข้อมูลต่างๆต้องถูกต้องเช่น           1.1 format transaction           1.2 signature ของ transaction           1.3 ค่า nonce ของ transaction ตรงกับค่า nonce ของ address ที่ทำ transaction 2.คำนวนค่าธรรมเนียมที่ผู้ส่งจะต้องจ่ายเพื่อให้ miner ทำงานใน transaction จ
รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 2 (Messages and Transactions)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 2 (Messages and Transactions)

Technical
หลังจากที่เรารู้แล้วว่าแต่ละโหนดในวง Ethereum จะประกอบไปด้วยข้อมูลบัญชี (Account) เพื่อใช้ในการระบุตัวตนสำหรับการทำรายการต่างๆในระบบ โดยรายการต่างๆในวงเน็ตเวิร์คจะเรียกว่า Transaction หรือ Message ซึ่งจะมาดูนิยาม Transaction และ Message กันครับ นิยามของ Transactions Transaction ในโลกของ Ethereum นั้นจะหมายถึงก้อนข้อมูลที่ถูกทำ digitally sign ซึ่งบรรจุข้อความ (Message) ที่จะถูกส่งหากันไปมาระหว่าง account หนึ่งถึง account หนึ่ง โดยที่ภายใน Transaction นั้นจะประกอบไปด้วย ที่อยู่ของผู้รับ Message โดยเป็นเลขฐาน 16 ขนาด 20 ไบท์ Digital signature ที่ผู้ส่งทำการ digitally sign Message อันนี้มา เงินที่ถูกส่งมาจากผู้ส่ง ข้อมูลอื่นๆ ซึ่งสามารถเป็นข้อมูลอะไรก็ได้ทั้งตัวเลข, ตัวอักษร รวมถึงไฟล์ต่าง โดยจะอยู่ในรูปแบบเลขฐาน 16 STARTGAS – ค่าตัวเลขสูงสุดของ step การประมวลผล tran
รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 1 (Account)

รู้ให้ลึกรู้ให้จริงกับ Ethereum ตอนที่ 1 (Account)

Technical
หลังจากที่เราพอจะรู้จัก Ethereum จากบทความก่อนหน้าแล้วว่าเป้าหมายของ Ethereum เกิดจากต้องการสร้างโปรโตคอลสำหรับพัฒนาโปรแกรมบนพื้นฐานของแนวคิดการกระจายข้อมูล (Decentralized File Storage) ซึ่งเป็นวิธีการนำข้อมูลไปเก็บไว้กับทุกๆโหนด (Public Ledger) ที่อยู่ในระบบเน็ตเวิร์ค Ethereum หลังจากนั้นทุกๆคนในระบบเน็ตเวิร์คจำเป็นจะต้องมีข้อมูลบัญชี (Account) เพื่อใช้ในการระบุตัวตนสำหรับการทำรายการต่างๆในระบบครับ Account คืออะไร เป็นข้อมูลขนาด 20 ไบต์ (Byte) เป็นเหมือนบ้านเลขที่ สำหรับบอกให้ผู้อื่นรู้ว่าถ้าอยากส่งข้อมูลมาให้เราต้องระบุผู้รับปลายทางเป็นเลข 20 ไบต์ของเรานะ หรือใช้ระบุว่าเราเป็นคนส่งข้อมูลชุดนี้ไปนะ (เหมือนกับที่อยู่ตอนเราจ่าหน้าซองจดหมายเลยครับ) โดยจะเป็นตัวเลขชุดที่สร้างมาจาก private key ของ account อีกทีครับ ตัวอย่างหน้าตา address ของ account ที่แสดงบน myetherwallet.com Ac
3 วิธีหา Ether (Ethereum) มาไว้ในครอบครอง

3 วิธีหา Ether (Ethereum) มาไว้ในครอบครอง

Blockchain Platform
หากใครเริ่มต้นใช้งาน Blockchain ในวงเน็ตเวิร์ค Ethereum แล้วสงสัยว่าเงินสกุล ETH เราจะมีวิธีใดบ้างที่จะสามารถหามาไว้ในครอบครองได้ ในตอนนี้มีวิธีหาเงิน ETH มาใช้งานได้หลายช่องทางตามแต่ละคนจะสะดวกครับ  แต่บทความนี้จะเสนอวิธีหาเงิน ETH 3 วิธีหลักๆดังนี้ 1.ขุดเอง วิธีนี้ถ้าใครคิดว่าสเปคคอมเทพผสมกับมีดวงหน่อยๆสามารถใช้วิธีนี้ได้เลย โดยสามารถดาวน์โหลดโปรแกรม Geth ได้จาก geth.ethereum.org หลังจากนั้นทำการติดตั้งโปรแกรมตามคู่มือในเว็บไซต์ก็จะสามารถเริ่มต้นขุดเหมืองในวงเน็ตเวิร์ค Ethereum ได้เลย แต่ช้าก่อนในโลกแห่งความจริงเป็นไปได้ยากมากที่คอมพิวเตอร์บ้านๆเพียง 1 เครื่องจะมีความสามารถที่ขุดเหมืองจนสามารถสร้างบล็อกได้เร็วภายในระยะเวลา 1 วัน จึงมีแนวคิดที่รวมกลุ่มของคอมพิวเตอร์หลายๆเครื่องให้เป็นเหมืองขนาดใหญ่ (Mining Pools) เพื่อมาช่วยกันขุดเหมืองให้ได้รับผลตอบแทนเร็วขึ้นและทำการแบ่งเห
มาเริ่มต้นทดลองเป็นคนขุดเหมือง Ethereum ผ่าน Network Test

มาเริ่มต้นทดลองเป็นคนขุดเหมือง Ethereum ผ่าน Network Test

Technical
บทความนี้จะอธิบายเนื้อหาสำหรับผู้ที่เพิ่งเริ่มใช้งาน Ethereum ที่ต้องการทดลองขุดสกุลเงิน Ethereum ผ่าน Network Test ครับ แล้วเป็นคนงานขุดเหมืองเหมาะสำหรับใครบ้าง? 1.เปิดคอมพิวเตอร์ทั้งวันแต่ไม่ได้ใช้งานอะไรเลย 2.มีคอมพิวเตอร์ Spec เทพ เช่น การ์ดจอแรงมากกกก ทำพวก SLI ของค่าย NVIDIA หรือ Crossfire ของค่าย AMD เพราะการขุดเหมืองก็คือการที่เรานำทรัพยากรคอมพิวเตอร์ของเราไปประมวลผลตามสูตรให้ผ่านเงื่อนไขที่กำหนด ซึ่งใครที่มีคอมพิวเตอร์เทพก็จะประมวลได้ไว เมื่อประมวลได้ไวก็จะมีโอกาสผ่านเงื่อนไขที่ Ethereum  กำหนดก่อน 3.เป็นคนดวงดี (ข้อนี้ไม่จำเป็นต้องมีคอมพิวเตอร์ Spec เทพ ฮ่าๆ) เพราะการขุดเหมืองเพื่อให้ได้เงิน Eth นั้นคือการที่คอมพิวเตอร์สุ่มค่าบางอย่างไปประมวลผลเพื่อให้ผ่านเงื่อนไขที่กำหนด ทีนี้ถ้าเราดวงดีอาจจะสุ่ม 1-2 ครั้งก็ได้ค่าที่ผ่านเงื่อนไขเลย เริ่มขุดเหมืองต้องเตรียมอะไรบ้าง
เข้าสู่โลก Ethereum ผ่าน MyEtherWallet กันดีกว่า!!

เข้าสู่โลก Ethereum ผ่าน MyEtherWallet กันดีกว่า!!

Technical
หลังจากที่เราศึกษากันจนรู้จักว่า Ethereum คืออะไร แล้วถ้าเราอยากทดลองเข้าใช้งาน Ethereum ละจะต้องเตรียมอะไรบ้าง แต่เนื่องจากตัว Ethereum มีระบบที่คล้ายกับ bitcoin คือ ไม่มีศูนย์กลางการควบคุม (Decentralized)  โดยหัวใจสำคัญคือข้อมูลของ chain ใน network จะถูกนำมาเก็บที่เครื่องผู้ใช้งานของทุกคนซึ่งขนาดของข้อมูลจะมีขนาดใหญ่และใช้เวลา sync ข้อมูลนานมาก ในบทความนี้จะพาผู้อ่านเริ่มต้นใช้งาน Ethereum ผ่านเว็บไซต์ www.myetherwallet.com ข้อดีคือเราไม่จำเป็นต้องเก็บข้อมูลของ network เพียงแค่มี internet และ browser ก็สามารถใช้งานได้แล้วครับ เริ่มสร้างกระเป๋าเงิน จากที่บอกมาแล้วข้างต้นว่า Ethereum มีระบบที่คล้ายกับ bitcoin ดังนั้นการเข้าใช้งานครั้งแรกจึงจำเป็นต้องสร้างกระเป๋าเงินเพื่อใช้สำหรับเก็บเงินสกุล eth ของเราเองก่อน 1.ใส่รหัสผ่านแล้วกดปุ่ม Generate Wallet 2.ทำการ save private ke