วันเสาร์, กรกฎาคม 24

ผู้เขียน: วรวัฒน์ เธียระวิบูลย์

อยากทำเว็บสำหรับเทรดคริปโต…ต้องรู้อะไรบ้าง

อยากทำเว็บสำหรับเทรดคริปโต…ต้องรู้อะไรบ้าง

Idea, Technical
ในปัจจุบัน มีหลายๆ เว็บไซต์ที่เป็นเว็บสำหรับเทรดเหรียญคริปโตหรือ cryptocurrency exchange เกิดขึ้นมามากมาย ยกตัวอย่างจำนวนมาจากเว็บไซต์ CoinMarketCap ก็ปาเข้าไปเกือบ 300 เว็บ (แบบ spot นะครับ ถ้ารวมทุกแบบก็สามหมื่นกว่าเว็บได้ อ้างอิงจาก https://coinmarketcap.com/rankings/exchanges/)  แต่ก็ยังมีอีกหลายคนอยากทำบ้างทั้งทำเล่นๆ หรือทำจริงๆ วันนี้ผมก็เลยอยากมาเล่ามาเเชร์ไอเดียคร่าวๆ ว่า ถ้าอยากจะทำ exchange เองบ้างเนี่ยน่าจะต้องรู้อะไรบ้าง ก่อนอื่นเลย..เราจะทำเป็บเว็บเน๊อะ เราก็ควรต้องรู้จักเทคโนโลยีเพื่อการ develop web application ซึ่งปัจจุบันเองการทำ webapp แบบนี้ก็นิยมทำแยกให้ส่วนที่จะแสดงผลบน web browser หรือที่เรียกว่า frontend กับส่วนที่คอยรับคำสั่งไปทำงานไปคำนวนตามกฏที่วางไว้หรือที่เรียกว่า backend แยกออกจากกัน เพื่อให้ระบบมีประสิทธิภาพมากขึ้น โดยที่ส่วนใหญ่แล้วนั้น เทคโนโ
อยากเริ่มเทรด cryptocurrency เริ่มจากอะไรดี #2

อยากเริ่มเทรด cryptocurrency เริ่มจากอะไรดี #2

Idea
สวัสดีครับ มาต่อกันกับเรื่องที่ว่า “อยากเริ่มเทรด crypto currency จะเริ่มจากอะไรดี” โดยสิ่งที่อยากเล่าให้ทุกท่านได้รู้จักก่อนจะไปเริ่มต้นเล่นนั้น นอกจาก buzzword ที่ผมได้กล่าวไปในตอนก่อนหน้านี้ มันก็ยังมีสิ่งอื่นๆ อีกที่ควรจะต้องรู้จักไว้จะได้เริ่มกันได้ถูกกันครับ เรามาต่อกันเลย… โดยหัวที่จะกล่าวถึงในตอนนี้ ผมอยากให้ทุกท่านได้รู้จักกับตลาดหรือ Exchange ครับ ซึ่งในปัจจุบันนั้น มีตลาดสำหรับให้เราได้เทรดกันมากมายอย่างหาที่สุดมิได้จริงๆ ทั้งของต่างประเทศหรือของไทยเอง แต่อื่นเลยนั้น ท่านรู้หรือไม่ว่า ตลาดที่กำลังจะเล่นนั้น ท่านจะไปเล่นบนตลาดแบบไหน โดยคำว่าแบบไหนที่ผมยกมานั้น ผมแยกออกมาเป็น 2 ประเภทครับ คือ 1. ตลาดแบบ Centralized (Centralized Exchange หรือย่อกันสั้นๆว่า CEX) อันนี้เป็นตลาดที่หลายๆ ท่านนึกออกได้อย่างไม่ยากครับ มันก็คือแบบตลาดหุ้นนั่นแหล่ะ ที่มันจะมีกระดานของเว็บนั้นๆ ใ
อยากเริ่มเทรด cryptocurrency เริ่มจากอะไรดี

อยากเริ่มเทรด cryptocurrency เริ่มจากอะไรดี

Idea
จากกระแสปัจจุบันที่หลายๆ คน เห็นว่าราคา bitcoin พุ่งสูงขึ้นอย่างมาก ทำให้ก็มีอีกหลายๆ คนสนใจหันอยากจะมาลงทุนในสิ่งนี้มากขึ้น แต่หลายๆคนเหล่านั้นก็ไม่ได้มีพื้นฐานทางด้าน IT มา ทำให “งง” กัน วันนี้ผมเลยจะมาเล่าสู่กันฟังเผื่อจะได้กระจ่างกันมากขึ้น ก่อนอื่นเลยนั้น  อยากจะให้ทุกคนรู้จักกับคำที่คุ้นหูกัน (buzzword) บางคำกันก่อน มาเริ่มกันเลย 1. Cryptocurrency คือคำที่ประกอบกันมาจาก 2 คำได้แก่คำว่า crypto และ currency โดยที่คำว่า “crypto”  นั้นมาจากคำเต็มๆ ว่า “cryptographic” ซึ่งหมายถึงสิ่งที่อาศัยวิทยาการการเข้ารหัส (cryptography) มาเป็นเทคโนโลยีพื้นฐาน กล่าวคือไอ้สิ่งนั้นๆที่มีคำว่า crypto นำหน้าจะต้องมีการทำอะไรสักอย่างแนวๆ encryption แน่ๆ (อย่าเพิ่งท้อกันนะครับ เพิ่งเริ่มเอง ฮาๆ) และอีกคำนึงคือคำว่า “currency” อันนี้แปลตรงๆตัวเลยก็แปลว่าสกุลเงินนั่นแหล่ะครับ โดยเราเอามารวมก
รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? (ตอนที่ 3 กำเนิด address)

รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? (ตอนที่ 3 กำเนิด address)

Technical
รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? ตอนที่ 3 กำเนิน address จาก 2 ตอนแรกที่ผมกล่าวถึงเรื่องของการทำ encryption และ hash แล้วนั้น มาถึงตอนนี้เราจะเอาองค์ความรู้ใน 2   ตอนแรกมาสร้างเป็น address ของ bitcoin แล้วครับ จริงๆ แล้วกระบวนการสร้าง address ของ bitcoin ไม่ได้ยากเย็นอะไรเลยครับ ซึ่ง step ของการสร้างเป็นดังนี้ ทำการสร้างคู่กุญแจขึ้นมาก่อน ซึ่งการสร้างนี้เราจะได้ public key และ private key ขึ้นมา (เรื่องคู่กุญแจดูได้ในตอนที่ 1) นำเอา public key ในข้อที่ 1 มาสร้างเป็น hash โดยทำสิ่งที่เรียกว่า double hashing ซึ่ง step ในการสร้าง hash เป็นดังนี้ สร้าง hash ของ public key ด้วยวิธีการ SHA256 สร้าง hash อีกครั้งจากข้อ 2.1 ด้วยวิธีการ RIPEMD160 โดยผลลัพธ์จากการ hash นี้เราจะได้ข้อมูลที่มีขนาด 20 byte หรือ 160 bit ตามชื่อ hash function เลยครับ เอา has
รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? (ตอนที่ 2 Hash)

รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? (ตอนที่ 2 Hash)

Technical
รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? ตอนที่ 2 Hash จากตอนที่แล้วเราพูดเรื่องของการทำ encryption กันมาแล้ว ก่อนจะไปเรื่องที่ว่า Address ของ bitcoin ที่ไปที่มาของมัน มันเป็นมายังไง ผมจะขอพาไปรู้จักกับ Hash ก่อนอีกหนึ่งอย่างนะครับ โดยเจ้า “Hash” หรือศัพท์ทางการของมันคือ “Message Digest” เนี่ยเป็นการทำให้ข้อมูลไม่ว่าจะเป็นข้อมูลอะไร ขนาดเท่าไหร่ ไม่สำคัญว่าคือข้อมูลอะไร ย่อยลงมาเป็นข้อมูลอีกชุดหนึ่ง ซึ่งก็ถือว่าเป็นการเข้ารหัสข้อมูลเหมือนกัน แต่จะพิเศษกว่าตรงที่ข้อมูลที่ได้จากการทำ Hash นั้นจะถอดกลับเป็นข้อความต้นฉบับไม่ได้ และจะมีหน้าตาต่างกันตามแต่ละข้อมูลตัวตั้งต้น แต่ทุกข้อมูลที่ถูกย่อยลงมาจะมีขนาดเท่าๆ กันเสมอตามแต่ละวิธีการย่อย และวิธีการย่อยข้อมูลหรือเรียกแบบภาษาเทคนิคว่า “Cryptographic Hash Function” หรือ “Message Digest Algorithm” นั่นเอง ซึ่งผมเชื่อเลยว่า Digest Alg
รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? (ตอนที่ 1 Encryption)

รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? (ตอนที่ 1 Encryption)

Blockchain Platform, Technical
รู้หรือไม่ Bitcoin Address เกิดขึ้นจากอะไร!? ตอนที่ 1 Encryption ทุกท่านที่เคยใช้งาน Bitcoin หรือ coin อะไรสักอย่างคงคุ้นเคยอยู่แล้วกับชุดตัวเลขและตัวอักษรยาวๆ ที่เรียกว่า Address ซึ่งใช้สำหรับรับเงินหรือส่งเงินไปให้คนอื่นๆ แต่ท่านรู้หรือไม่ ไอ้เจ้าเลขและตัวอักษรที่เราอ่านไม่ออกนี้มันเกิดขึ้นมาได้อย่างไร แต่ก่อนจะไปเรื่องนั้น ขอพาไปรู้จักกันสักนิดกับศัพท์เทคนิคคำว่า Encryption ก่อนนะครับ ซึ่งผมว่า ทุกท่านก็คงรู้จักแหล่ะ ว่ามันคือการเข้ารหัสถูกไหมครับ ซึ่งมันก็เอาไว้สำหรับแปลงข้อความเพื่อไม่ให้คนอื่นๆ สามารถเห็นข้อความของเราได้ ขอยกตัวอย่างให้เห็นภาพง่ายๆ ครับ เช่นผมต้องการซ่อนคำว่า “Blockchain” ไม่ให้ใครอ่านออก แบบง่ายๆ เลยผมก็จะขยับตัวอักษรมา 3 step เช่น ตัวอักษร a ก็จะกลายเป็น d ฉะนั้นข้อความของผมก็จะถูกดัดแปลงเป็น “Eorfnfkdlq“ เห็นมั๊ยครับ อ่านไม่ออกละ และถ้าใครไม่รู้ขั้นตอนกา
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 4 – Deploy Smart Contract

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 4 – Deploy Smart Contract

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 4 จากคราวที่แล้ว เราเขียน Contract พร้อม function Hello world กันแล้วนั้น คราวนี้เรามาลอง Deploy ขึ้น network กันดูนะครับ แต่ก่อนอื่นเลยจะขอเล่าให้ฟังก่อนว่าในการติดต่อกับ Ethereum network นั้น มันมี Tool ที่ใช้คุยได้อยู่มากมาย แต่ที่นิยม ๆ จะมีอยู่ 3 ชื่อก็คือ web3.js, go-ethereum (หรือ Geth) และ Mist ซึ่งทั้ง 3 ตัวที่ผมเอ่ยมานั้น เอามาใช้ deploy ได้หมดเลย แต่ความยากง่ายจะต่างกันดังนี้ครับ ฉะนั้น ในบทความนี้ผมขออนุญาตแนะนำการ deploy โดยใช้ tool ที่ชื่อว่า Mist นะครับ ขอแนะนำสั้น ๆ เกี่ยวกับ Mist ให้ฟังก่อนนะครับ เจ้าตัว Mist เนี่ยมันเป็น application ที่จริงๆแล้วเหมือน web browser เลยสามารถใช้ท่องเว็บก็ได้ แถมถ้าเว็บนั้น ๆ มีการเรียก library web3.js Mist ก็จะรู้จักทันทีเพราะมัน include อยู่ในตัวเองด้วย แถมเจ้า Mist นี่เราสามารถใช้เป็นกร
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 – Hello world

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 – Hello world

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 3 สวัสดีปีใหม่ครับ มาแล้วครับ กลับมาและ ห่างหายไปนานนิดนึง เนื่องจากปีใหม่ไปเที่ยวต่างจังหวัดมาเลยไม่ได้มีเวลามาเขียนต่อเลย แหะๆ แล้วทุกท่านเป็นอย่างไรบ้างครับไปเที่ยวไหนมาหรือเปล่า ^^ ส่วนเนื้อหาในบทนี้ จากบทก่อน ๆ ที่เรารู้เรื่องพื้นฐานของการจะเขียน Smart Contract แล้วนั้น เรามาลงมือเขียน code กันเลย โดย code ที่เราจะเขียนกันนั้น จะเริ่มด้วย function พื้นฐานสามัญประจำโลกเลย นั่นก็คืออ function HelloWorld ที่แสน classic ที่ผมคิดว่าท่านที่เรียนการ Programming มาก็ต้องรู้จักเป็นอย่างดี (ฮา) ซึ่งหน้าตาของ code เป็นดังนี้   โดยจาก source code ที่ผมแปะไว้ข้างบนนั้น จะขออธิบายเป็นส่วน ๆ ดังนี้ครับ   อันนี้เป็นตัวที่กำหนด version ของ compiler เพื่อให้ compiler รู้ว่ามันควรทำงานกับ source code นี้มั๊ย เผื่อในอนาคต co
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 2 – IDE ที่จะใช้

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 2 – IDE ที่จะใช้

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 2 มาต่อกันเรื่องการเขียน code เพื่อสร้าง Smart Contract กันนะครับ โดยจากคราวที่แล้ว ผมได้เล่าถึงพวกประเภทของตัวแปรที่ใช้ได้ในภาษา solidity มาและ ถัดมาก็จะเริ่มมาลองเขียนกันเลยยย ก่อนอื่นเลยเวลาเราจะเขียน code ก็จำเป็นต้องมี editor เพื่อเขียนถูกมั๊ยครับ ซึ่งสำหรับภาษานี้จริง ๆ แล้วก็เขียนใน nodepad เลยก็ได้ แต่ถ้าต้องการสีสันหน่อยไฮไลท์ syntax หน่อย มันก็มีคนทำ editor ขึ้นมาเหมือนกันซึ่งมีเยอะแยะเลยทั้งแบบ online และ offline โดยตัว offline นั้นคือ Mix IDE ซึ่งตัวนี้ผมก็เขียนลองเขียน มันจะมี emulator จำลอง mode ขึ้นมาให้เล่นได้ใน IDE ด้วย ก็แลสะดวกดี แต่ที่ผมเจอมาคือโปรแกรมมันค้างบ่อยมาก เลยไม่น่าใช้เลย (ปัจจุบัน คนสร้างไม่ได้ดูแลต่อแล้ว) (รูปจาก http://blog.carl.pro/2016/06/building-an-ethereum-environment-with-docker/)  
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 – ชนิดของตัวแปร

ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 – ชนิดของตัวแปร

Technical
ว่าด้วยเรื่องการเขียนโค้ด Smart Contract ภาค 1 จากภาคที่แล้วที่ผมได้เกริ่นเรื่องของ Smart Contract ไว้ ซึ่งก็คงเข้าใจกันบ้างไม่มากก็น้อยนะครับ กลับมาคราวนี้เลยจะเป็นภาคต่อของเรื่อง Smart Contract ซึ่งเราจะลง code กันและ ก่อนอื่นเลยจะต้องบอกก่อนว่า ถ้าจะเขียน Smart Contract เนี่ยควรจะมีพื้นฐานของภาษา Java Script อยู่บ้าง จะทำให้พอเข้าใจอะไร ๆ  ได้ง่ายขึ้น เพราะ Syntax ของภาษาที่ใช้เขียน code ของ Smart Contract หรือที่เรียกว่า Solidity นั้น มีพื้นฐานมาจาก Java Script นั้นเอง (แต่ก็ไม่ได้เหมือน 100% นะครับ) ก่อนอื่นเลยสิ่งแรกที่ควรรู้จัก ก็คือ Data type ที่มีให้เราใช้งานได้ในภาษานี้นะครับ ซึ่งถึงแม้ผมจะบอกว่าเหมือน Java Script ก็จริง แต่จริง ๆ ภาษานี้ก็ต้องประกาศ Data type ให้กับตัวแปรที่เราสร้างขึ้น (ถึงแม้จะใช้คำสั่ง var ได้เหมือนในภาษา Java Script ก็เถอะ แต่ที่ถูกที่ควร ควรใช้ Dat