การลงนามธุรกรรมสากล (Universal Transaction Signing): ขยายการสเกล Dapp เลเยอร์ 2 อย่างราบรื่นบน Ethereum🔐

Loom Network Thai
Loom Network Thai
Published in
3 min readMay 8, 2019
Loom PlasmaChain can now verify and accept transactions signed by native Ethereum wallets.

บทความนี้แปลมาจากบทความ ที่เขียนโดยคุณ 👽 Dilanka @ LOOM ถ้ามีส่วนไหนในบทความที่แปลผิด ขอความกรุณาแจ้งให้เราทราบได้ตลอดผ่านทาง Private Note ขอบคุณค่ะ ❤

ยาวไป ไม่อ่าน : ตอนนี้ Loom PlasmaChain สามารถที่จะตรวจสอบและยอมรับการทำธุรกรรมที่ผ่าน Native Ethereum Wallet — มอบประสบการณ์การใช้งานที่ราบรื่นที่สุดเท่าที่จะเป็นไปได้ให้กับการขยาย เลเยอร์ 2
หากอยากรู้ว่าทำไมชุดคุณสมบัติพิเศษนี้จึงเป็นไปได้เฉพาะใน PlasmaChain
และทำไมมันจึงเป็นประโยชน์สำหรับทั้งนักพัฒนาและผู้ใช้ -ขอให้ตั้งใจอ่านบทความนี้เลยครับ 😉

วันที่ 31 มีนาคม 2019 — Validator บน PlasmaChain ได้ทำการโหวตในการทำ hard fork แบบ decentralized เป็นครั้งแรก

การทำ Hard Fork นี้ช่วยเพิ่มชุดของฟังก์ชั่นที่อนุญาตให้ผู้ใช้ Ethereum คนไหนก็ตามสามารถใช้ PlasmaChain DApps ได้อย่างราบรื่นเหมือนกับเวลาที่ใช้ Ethereum DApp ผู้ใช้สามารถใช้บัญชี MetaMask ของตัวเองหรือ Ethereum Wallet ดั้งเดิมก็ได้ — เป็นการผสมผสานระหว่าง Layer 1 และ Layer 2 ขึ้นไปอีกระดับ

หากคุณเป็นคนที่เพิ่งเข้ามาอ่าน อาจจะเกิดความสงสัยว่า…

PlasmaChain คืออะไรนะ?🤔

PlasmaChain เป็นฮับเลเยอร์ 2 ที่สามารถเชื่อมโยงหลาย SideChain เข้ากับ Ethereum mainnet ได้ — ซึ่งช่วยให้การทำธุรกรรมเร็วขึ้นและราคาถูกลง นอกจากนี้ยังเป็นในเรื่องของการปรับปรุง UX ให้ดีขึ้นสำหรับ DApps ที่ต้องการเวลายืนยันหรือ Confirmation time ที่รวดเร็ว

นี่ไม่ใช่แค่การคาดเดาครับ — เพราะเรามีสิ่งนี้อยู่ในการผลิตตั้งแต่ปลายปี 2018

PlasmaChain ใช้ Delegated Proof of Stake (DPoS) เพื่อการลงมติร่วมกัน
ซึ่งหมายความว่ามันเหมาะสำหรับ DApps ที่ผู้ใช้ต้องการได้รับการยืนยันอย่างรวดเร็ว ในขณะที่ยังคงรักษาระดับ decentralization ที่เหมาะสมเอาไว้ด้วย

และเนื่องจาก Token สามารถถ่ายโอนไป-มาจากเลเยอร์ 1 — มันจึงเหมาะมากที่จะเอามาใช้กับ Ethereum

ยิ่งไปกว่านั้น…

DApps สามารถออก Token ของตัวเองใน Ethereum ได้ — และย้ายส่วนที่เกี่ยวกับผู้ใช้ที่ซับซ้อนไปไว้ยัง Layer 2

แต่เรื่องหลักในบล็อกเชนก็คือ — เราต้องยืนยันตัวตนด้วยการลงทะเบียนทุกๆ Transaction ที่เราทำด้วย

และประโยชน์ของ Layer 2 จะถูกจำกัด หากผู้ใช้ทุกคนต้องการบัญชีแยกออกมาจากบล็อกเชนนั้นเพื่อใช้งาน

และนี่ก็เป็นพื้นฐานเล็กน้อยเพื่อตอบข้อสงสัยครับ…

การลงนามธุรกรรม (Transaction Signing ) ทำงานอย่างไร? 🤔

ให้ลองนึกภาพในกรณีที่ Vladimir ต้องการส่ง $100 ให้กับ Donald สิครับ

วลาดิเมียร์บอกให้บล็อคเชนส่งเงิน 100 ดอลลาร์ให้กับโดนัล ซึ่งแปลว่าเงินจำนวนเดียวกันนั้นจะถูกหักจากกระเป๋าเงินของเขาไปด้วย

บล็อกเชนสามารถอ่าน Instruction ของวลาดิเมียร์ได้อย่างง่ายดาย – แต่ก่อนอื่นต้องยืนยันว่าเป็นวลาดิเมียร์จริงๆ ไม่ใช่คนอื่นที่มาหลอกว่าเป็นเขา

ดังนั้นวลาดิเมียร์จะเข้ารหัส Instruction ของเขาโดยใช้ Private key (ซึ่งได้รับการป้องกันด้วยรหัสผ่านที่มีแค่ตัววลาดิเมียร์เองเท่านั้นที่รู้) — เพื่อให้ทุกคนสามารถตรวจสอบการเข้ารหัสด้วยการทำ Cryptographical ว่า Instruction เหล่านี้มาจากวลาดิเมียร์จริงหรือไม่

หลังจาก Blockchain ตรวจสอบคำแนะนำเหล่านี้โดยอัตโนมัติ (และจากการเข้ารหัสลับ)
$ 100 ถูกหักจากวลาดีเมียร์เพื่อส่งให้กับโดนัล จากนั้นโดนัลก็จะสามารถตั้งค่า ̶s̶h̶e̶l̶l̶ ̶c̶o̶r̶p̶o̶r̶a̶t̶i̶o̶n̶ ได้

และทั้งหมดก็มีเท่านี้เลย 😉

ตามที่เราอาจจะพอทราบอยู่แล้ว —
ความปลอดภัยส่วนใหญ่ของเว็บในยุคนี้ได้รับการคุ้มครองโดยการเข้ารหัส Public key (cryptography ¹) —
และการทำธุรกรรมบน Blockchain นั้นก็มีการทำงานที่คล้ายอย่างมากกับกรณีนี้ และมาพร้อมกับความแตกต่างที่น่าสนใจที่ผมกำลังจะบอกต่อไปนี้ครับ

PlasmaChain กลายเป็น “Multilingual” อย่างไรและทำไมจึงเป็นเรื่องใหญ่

ดังนั้นจึงมีความต่างกันเล็กน้อยในเรื่องของเทคนิคในวิธีการทำธุรกรรมบล็อกเชน

ตัวอย่าง ….

Ethereum และ Bitcoin ใช้เส้นโค้ง Eliptical curve secp256k1 ² ซึ่งดีสำหรับ backward compatibility

แต่ในทางกลับกันนั้น…

Tendermint และ PlasmaChain ใช้ Ed25519 ³ซึ่งเร็วกว่าถึง 10x+ เท่าในขั้นตอนการตรวจสอบ

ในขณะที่ Chain ที่ถูก Forked แยกออกมา ในทางเทคนิคแล้วก็มีแหล่งเดียวกันกับ Chain ที่มันได้ทำการ Fork ออกมา (เช่นเดียวกับ Ethereum จาก Ethereum Classic และ Bitcoin Cash จาก Bitcoin) แต่ก็ยังคงมีความเข้ากันไม่ได้เพราะเรื่องอื่นๆ อีก — อาจเกิดกรณีที่คนร้ายสามารถเข้ามาขโมยเงินโดยการส่งธุรกรรมเดียวกันไปยังเครือข่ายทั้งสองก็ได้

เฮ้อ....

ข่าวดี— ตอนนี้เราก็ได้รับแนวคิดที่ดีเกี่ยวกับเหตุผลในแง่เทคนิค (และความปลอดภัย) เกี่ยวกับว่าทำไม Layer 1 Chain ทั้งหมดจึงต้องมีวิธีการที่แตกต่างกันในการ Sign และตรวจสอบการทำธุรกรรมด้วย

และนั่นล่ะครับ…

หากเป้าหมายของเราคืออนุญาตให้นักพัฒนาเขียนโค้ดของตัวเองเพียงครั้งเดียวและเข้าถึงผู้ใช้ได้จากหลายๆ บล็อกเชน
เราก็จำเป็นต้องมีการลงนามธุรกรรมสากล (Universal Transaction Signing) เอาไว้

มาแสดงวิธีการทำให้ดูเลยดีกว่า...

Universal Transaction Signing ด้วย 3 ขั้นตอน:

1. อันดับแรก – PlasmaChain ได้รับการอัพเกรดให้เป็น “multilingual” — แปลว่า:
ตอนนี้มันมีความสามารถในการตรวจสอบว่าข้อความได้รับการลงนามและได้ใช้ Eliptical Curve (และอัลกอริทึมของเรา) เพื่อให้ได้ตัวตนที่ถูกต้อง นอกจากนี้มีเครื่องมือตรวจสอบสามารถโหวตเพื่อลงคะแนนความเชื่อถือ Layer 1 ต่างๆ ที่เพิ่มเข้ามา

2. ขั้นที่สอง — PlasmaChain มี Decentralized Registry ของ Wallet Address ซึ่งเป็นของผู้ใช้เดียวกันดังนั้นหากผู้ใช้สามารถพิสูจน์ตัวตนของพวกเขาโดยใช้ก Layer 1 Wallet — ก็จะเพียงพอสำหรับการพิสูจน์บน Layer 2 ด้วยเช่นกัน

3. ท้ายที่สุด – PlasmaChain และ loom-js ⁴มีคุณสมบัติความเข้ากันได้พิเศษ (Compatibility) ที่ช่วยให้นักพัฒนาสามารถเซ็นธุรกรรมสากลโดยไม่ต้องเปลี่ยนรหัสแม้แต่บรรทัดเดียวของ Code ใน DApp ของพวกเขา

นั่นอาจดูเหมือนซับซ้อนนะครับ แต่พูดง่ายๆ ก็คือ:

เมื่อเรารวมองค์ประกอบทั้งหมดข้างต้น — PlasmaChain จะอนุญาตให้ผู้ใช้ Wallet ใด ๆ ที่มีอยู่ที่เข้ากันได้กับของ Layer 1 ใดๆ ที่เชื่อมต่อเอาไว้ของเราโดยไม่จำเป็นต้องมีขั้นตอนพิเศษอื่นๆ อีก

ความรู้สึกเมื่อใช้ PlasmaChain

ไม่ใช่แค่เพียงเท่านี้

ผู้ใช้รายเดียวกันเหล่านั้นจะสามารถโต้ตอบกับ DApps ได้โดยไม่ต้องใช้แก๊ส — และเพิ่มความเร็ว (เช่น โคตรเร็ว แบบเร็วโคตรๆ) บน Layer 2 โดยไม่ต้องออกหรือสลับ Wallet หรือดาวน์โหลดซอฟต์แวร์ใหม่

หลังจากที่เสร็จแล้วนั้น — คุณเพียงแค่ถอนกลับไปที่ Layer 1 ได้ตามที่สะดวกเลย

และที่เจ๋งที่สุดน่ะหรอ?

· การตรวจสอบมีความ decentralized บน PlasmaChain

· ไม่มีบริการส่วนกลางใดที่เก็บ Key ของเรา

· ไม่ต้องเพิ่ม extra tokens หรือต้องลง plugin ใดๆ เพิ่ม

· ผู้ใช้ปลายทางไม่ต้องทำอะไรเพิ่มเติม

เพียงเข้าไปเยี่ยมชมที่ที่ DApp ที่เปิดใช้งาน UTS บน PlasmaChain เราก็จะสามารถเริ่มทำธุรกิจได้ในเวลาไม่นานครับ

จำไว้ว่า: เราสามารถใช้ Ethereum Wallet ที่มีอยู่ก็ได้ เช่น MetaMask หรือ Mobile Wallet อื่นๆ 😉

ฟังก์ชั่นเดียวกันนี้จะได้ขยายออกไปอีกเมื่อเรา Integrate กับ Cosmos, EOS และ Tronผู้ใช้ Chain เหล่านั้นก็จะสามารถใช้ Native Wallet ของพวกเขาได้เช่นกัน

มาถึงคำถามแล้วครับ…

คุณคือนักพัฒนาใช่มั้ย? — นี่คือสิ่งที่ต้องรู้ในการเริ่มต้นกัน 🏁

หากคุณเป็นนักพัฒนาวิธีที่ง่ายที่สุดในการเริ่มต้นคือการใช้ web3 เลยฮะ

หากคุณเป็นนักพัฒนา PlasmaChain อยู่แล้ว -ก็ เพียงแค่เปลี่ยนหนึ่งบรรทัดใน Loom Provider เท่านั้น

กล่าวคือ…

ให้เปลี่ยนจาก:

เป็นแบบนี้ครับ:

ในค่าเริ่มต้นนั้น - ผู้ลงนามจะยอมรับ ethers-js signer

ในกรณีของ MetaMask บ้าง:

หากคุณเป็นนักพัฒนา PlasmaChain ที่เพิ่งเข้ามาใหม่ – อย่าลืม import loom-js เข้ามาที่โปรเจคของคุณก่อน 😉

นอกจากนี้หากคุณต้องการแชท (เรียลไทม์) กับนักพัฒนารุ่นที่มีอยู่ -มาเข้าร่วมใน Telegram เลยครับ

Loom Network เป็นแพลตฟอร์มที่มีไว้สำหรับการสร้าง highly scalable DPoS sidechains เข้าสู่ Ethereum โดยที่มีจุดโฟกัสไปที่การเสกลเกมส์และโซเชียล แอพฯ ขนาดใหญ่

อยากรู้เรื่องราวไปมากกว่านี้? เริ่มอ่านจากที่นี่เลยครับ

คุณเป็นแฟนเกมส์ blockchainหรือเปล่าครับ ? ลองมาเช็ค Zombie Battlegroundเกมส์การ์ดแรกของโลกในระบบ PC & mobileที่รันระบบทั้งหมดบน blockchain

ถ้าคุณอ่านบทความนี้แล้วชื่นชอบ และอยากรู้ข่าวสารอัพเดทของเรา มาสมัครรับ private mailing list ของเราได้เลยครับ

https://loomx.io

ติดตามข่าวสารและพูดคุยกับทีมงาน Loom Network เป็นภาษาไทยได้ทางนี้ค่ะ!
ห้องแช็ท Telegram
แฟนเพจ Facebook

--

--