วิธีการเขียนและปรับใช้สัญญาอัจฉริยะครั้งแรกของคุณ?

เผยแพร่แล้ว: 2020-02-13

Smart Contracts เป็นเทรนด์ชั้นนำในเทคโนโลยีบล็อคเชนในปัจจุบัน หากคุณกำลังคิดที่จะสร้างอาชีพในสาขานี้ บทความนี้จะช่วยให้คุณมีทุกสิ่งที่คุณจำเป็นต้องรู้ในการ เขียนสัญญาอัจฉริยะฉบับแรกของคุณ !

เรียนรู้หลักสูตรซอฟต์แวร์ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม Executive PG โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

สารบัญ

วิธีการเขียนสัญญาอัจฉริยะครั้งแรกของคุณ?

ยุคดิจิทัลในปัจจุบันทำให้ทั้งสองฝ่ายสามารถบรรลุข้อตกลงได้โดยไม่ต้องมีบุคคลที่สามเข้ามาเกี่ยวข้อง สัญญาดิจิทัลเหล่านี้ประมวลผลโดยบล็อคเชนและจัดเก็บไว้ในฐานข้อมูลสาธารณะ ดังนั้นธุรกรรมจึงติดตามได้และไม่สามารถย้อนกลับได้

หากคุณต้องการ เขียนสัญญาอัจฉริยะฉบับแรก แหล่งข้อมูลที่รวบรวมไว้ด้านล่างนี้จะช่วยให้คุณดำเนินการได้อย่างถูกต้อง

อ่าน: 10 Blockchain Trends & Predictions สำหรับปี 2020

การกำหนดสัญญาอัจฉริยะ

คำว่า 'สัญญาอัจฉริยะ' ได้รับการเสนอครั้งแรกโดยนักวิทยาศาสตร์คอมพิวเตอร์ชาวอเมริกัน Nick Szabo ในปี 1996 เป็นคอมพิวเตอร์หรือโปรโตคอลดิจิทัลที่อำนวยความสะดวก ตรวจสอบ และบังคับใช้การปฏิบัติตามสัญญา ในการคำนวณวัตถุประสงค์ทั่วไป สัญญาอัจฉริยะจะอยู่บนบล็อกเชนหรือบัญชีแยกประเภท

กล่าวอีกนัยหนึ่งสัญญาถูกสร้างขึ้นในรหัสในรูปแบบของโปรแกรมคอมพิวเตอร์ และนักแสดงที่ได้รับมอบหมายได้รับอนุญาตให้ปฏิบัติหน้าที่ของโปรแกรมได้ ควรปฏิบัติตามกฎที่กำหนดไว้ล่วงหน้าเพื่อให้ดำเนินการสัญญาอัจฉริยะได้สำเร็จ

ใช้ใบสั่งซื้อ (PO) เป็นต้น เป็นสัญญาง่ายๆ ระหว่างผู้ซื้อและผู้ขาย ต้องปฏิบัติตามเงื่อนไขบางประการเพื่อดำเนินการตามใบสั่งซื้อ ข้อกำหนดเหล่านี้รวมถึงการชำระเงินที่ประสบความสำเร็จโดยผู้ซื้อ การส่งมอบสินค้าโดยซัพพลายเออร์ตามเงื่อนไขที่ตกลงกันไว้ ณ เวลาที่ซื้อ เงื่อนไขการคืนสินค้า เป็นต้น

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

อ่าน: ข้อกำหนดเบื้องต้นในการเรียนรู้ Blockchain มันไม่ใช่อย่างที่คิด

ข้อกำหนดสำหรับการตั้งค่าสัญญาอัจฉริยะ

มีภาษาโปรแกรมที่หลากหลายสำหรับการสร้างสัญญาอัจฉริยะ ทางเลือกของภาษาส่วนใหญ่ขึ้นอยู่กับแพลตฟอร์มบล็อคเชน ตัวอย่างเช่น Solidity, Vyper, eWASM และ Ethereum bytecode เป็นภาษาสัญญาอัจฉริยะที่ได้รับความนิยมมากที่สุดสำหรับแพลตฟอร์ม Ethereum blockchain

สภาพแวดล้อมการพัฒนาสัญญาอัจฉริยะ

ก่อนที่คุณจะ เขียนสัญญาอัจฉริยะฉบับแรก ให้ตั้งค่า Playground เพื่อการพัฒนา การเข้าไปลึกในโลกของบล็อคเชนจะเป็นเรื่องยากหากปราศจากความรู้เกี่ยวกับสภาพแวดล้อมการพัฒนา คุณสามารถเลือกจากทางเลือกต่อไปนี้

  • Remix IDE: เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการสำหรับการสร้างและทดสอบสัญญาอัจฉริยะ ขอแนะนำตัวเลือกออนไลน์ทั้งหมดสำหรับผู้เริ่มต้น เนื่องจากไม่ต้องติดตั้ง นอกจากนี้ ยังมีความท้าทายน้อยลงสำหรับการสร้างต้นแบบและการตรวจสอบสัญญาอัจฉริยะอย่างรวดเร็ว
  • การตั้งค่าในพื้นที่: เครื่องในพื้นที่ให้ทรัพยากรอื่นสำหรับการพัฒนาสัญญาอัจฉริยะ เครื่องมือนี้ให้ความยืดหยุ่นมากขึ้นสำหรับแอปพลิเคชันระดับองค์กร และแม้ว่าจะต้องใช้เวลาในการตั้งค่าสภาพแวดล้อมนี้ การเลือกเครื่องมือสำหรับแอปพลิเคชันแบบกระจายหรือ DApps ก็เป็นกระบวนการที่ค่อนข้างตรงไปตรงมา

โครงสร้างของสัญญาอัจฉริยะ

ให้เราสำรวจสัญญาใบสั่งซื้อที่พัฒนาโดยใช้ภาษาโปรแกรม Solidity

Solidity smart contract เป็นไปตามโครงสร้างมาตรฐาน ซึ่งประกอบด้วย 'data' และ 'function' แม้ว่าข้อมูลจะรักษาสถานะปัจจุบันของสัญญาอัจฉริยะ ฟังก์ชันจะใช้ตรรกะในการเปลี่ยนสถานะนี้

สัญญาเริ่มต้นด้วยคำสั่งที่เรียกว่า ' pragma directive ' คีย์เวิร์ด “pragma” ช่วยให้ตรวจสอบคอมไพเลอร์หรือฟีเจอร์ได้ พิจารณาข้อความด้านล่าง:

ความแข็งแกร่งของ Pragma >=0.4.0 <=0.6.0

การประกาศนี้มีจุดมุ่งหมายเพื่อให้แน่ใจว่าสัญญาอัจฉริยะจะไม่คอมไพล์ด้วยเวอร์ชันคอมไพเลอร์ที่เก่ากว่า 0.40 และหลัง 0.60

ถัดมาคือ ' การประกาศสัญญา ' ข้อความต่อไปนี้ใช้คำหลัก "สัญญา" และระบุสัญญาที่ว่างเปล่าโดยใช้ชื่อ "ใบสั่งซื้อ"

สัญญาสั่งซื้อ{}

กำลังเก็บข้อมูล

ทุกสัญญาหรือโปรแกรมคอมพิวเตอร์มีข้อมูลที่เก็บไว้ในนั้น ตัวแปรเป็นวิธีในการจัดเก็บ ติดป้ายกำกับ ดึงข้อมูล และจัดการข้อมูล มีตัวแปรสองประเภทใน Solidity – Value และ Reference ตัวแปรประเภทค่าจะถูกคัดลอกเสมอเมื่อใช้เป็นอาร์กิวเมนต์ของฟังก์ชัน เช่น บูลีน จำนวนเต็ม เป็นต้น

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

กำลังเพิ่มข้อมูล

ในใบสั่งซื้อโดยทั่วไปจะมีปริมาณผลิตภัณฑ์ที่เกี่ยวข้อง ตอนนี้ ให้เราเพิ่มตัวแปรข้อมูลลงในสัญญาอัจฉริยะ เราจะเพิ่มตัวแปร product_quantity ด้วยสมมติฐานว่าจะมีเฉพาะค่าบวกเท่านั้น

อันดับแรก เราแนะนำจำนวนเต็มที่ไม่ได้ลงนามซึ่งแสดงโดย uint256 ในที่นี้ unsigned (u) หมายถึงประเภทของตัวแปรที่สามารถแสดงเฉพาะจำนวนเต็มบวก และ 256 หมายถึงหน่วยเก็บข้อมูล 256 บิต

สัญญา ใบสั่งซื้อ{uint256 product_quantity;}

ตัวสร้าง

ตัวสร้างเริ่มต้นสัญญาอัจฉริยะด้วยค่าบางอย่างเมื่อมีการปรับใช้สัญญา สมมติว่าปริมาณผลิตภัณฑ์ตั้งไว้ที่ 100

ตัวสร้าง () สาธารณะ {product_quantity = 100;}

ควรสังเกตว่าคีย์เวิร์ดหรือตัวแก้ไขการเข้าถึง "สาธารณะ" ระบุว่าฟังก์ชันไม่ได้ถูกจำกัด ดังนั้นจึงสามารถเข้าถึงได้โดยทุกคน

เพิ่มฟังก์ชัน

การเพิ่มฟังก์ชันทำให้โปรแกรมของคุณโต้ตอบได้ สิ่งเหล่านี้คือความสามารถในการควบคุมที่นำหน้าด้วยคำว่า "ฟังก์ชัน" การประกาศประกอบด้วยชื่อฟังก์ชัน ตัวแก้ไขการเข้าถึง ตัวเปลี่ยนสถานะ และค่าที่ส่งกลับ

หากต้องการอ่านค่าที่เก็บไว้ เราเพิ่ม "get function" ด้วย "get_quantity" ฟังก์ชันนี้จะได้รับความสามารถในการดึงหรืออ่านข้อมูลที่เก็บไว้ ดูข้อความที่ระบุด้านล่าง

ฟังก์ชัน get_quantity() ผลตอบแทนจากการดูสาธารณะ (uint256) {return product_quantity;}

แยกรายละเอียดเพิ่มเติมเราจะเห็นว่า:

  • ชื่อฟังก์ชัน: get_quantity ("()" หมายถึงไม่มีการส่งผ่านพารามิเตอร์)
  • ตัวแก้ไขการเข้าถึง: สาธารณะ (ไม่จำกัดการเข้าถึง)
  • State Mutator: view (แสดงว่าฟังก์ชั่นไม่เปลี่ยนสถานะของสัญญา แต่อ่านได้อย่างเดียว)
  • ส่งคืน: กำหนดสิ่งที่ส่งคืนโดยฟังก์ชัน เช่น ตัวแปรประเภท uint256

ฟังก์ชัน Setter

ฟังก์ชั่น setter มาในรูปภาพเมื่อคุณต้องการเขียนหรืออัปเดตข้อมูล ฟังก์ชันนี้ใช้พารามิเตอร์อินพุตจากผู้ใช้ โดยขึ้นอยู่กับการอัพเดตค่าของตัวแปร "product_quantity" ฟังก์ชัน set (update_quantity) ถูกเสียบดังนี้:

update_quantity (ค่า uint256) สาธารณะ {product_quantity = product_quantity + value;}

ตอนนี้ เสียบข้อความทั้งหมดที่กล่าวข้างต้นเพื่อ เขียนสัญญาอัจฉริยะฉบับแรกของ คุณ

การปรับใช้สัญญาอัจฉริยะ

เมื่อคุณทำตามขั้นตอนดังที่กล่าวไว้ก่อนหน้านี้แล้ว ก็ถึงเวลาทดสอบสัญญาอัจฉริยะของคุณ คุณสามารถทำได้เช่นเดียวกันโดยใช้ Remix IDE ซึ่งให้ความสามารถในการคอมไพเลอร์ Solidity เพื่อสร้าง ทดสอบ และตรวจสอบสัญญาอัจฉริยะของคุณทางออนไลน์

นี่คือคำแนะนำทีละขั้นตอนในการออกแบบและปรับใช้สัญญาอัจฉริยะกับ Remix Online IDE:

  1. คลิกที่ไอคอนบวกเพื่อสร้างไฟล์ (ว่าง) ใหม่
  2. คลิกเพื่อเปิดไฟล์เปล่า
  3. วางสัญญาของคุณลงในไฟล์นี้
  4. ไปที่เมนูด้านซ้ายและคลิกที่ไอคอนที่สอง ใต้ไอคอนไฟล์ ด้วยวิธีนี้ ตัวเลือกคอมไพเลอร์ความแข็งแกร่งจะปรากฏขึ้น
  5. ไปที่ป้ายชื่อคอมไพเลอร์เพื่อเลือกเวอร์ชั่นของคอมไพเลอร์
  6. คลิกที่ไฟล์เพื่อรวบรวมสัญญาอัจฉริยะ
  7. หลังจากคอมไพล์แล้ว ให้คลิกที่ปุ่มรายละเอียดคอมไพเลอร์เพื่อทำความเข้าใจ bytecode และอินเทอร์เฟซไบนารีของแอปพลิเคชัน Bytecode มีรหัสการดำเนินงานของ Ethereum และตรรกะสัญญาอัจฉริยะหลังจากการแปลงและการรวบรวม
  8. ในเมนูด้านซ้าย คลิกที่ไอคอนด้านล่างไอคอนคอมไพล์เพื่อปรับใช้สัญญาอัจฉริยะของคุณ

การโต้ตอบกับสัญญาที่ปรับใช้

วิธีการสาธารณะที่กล่าวถึงในสัญญามีวิธีโต้ตอบกับสัญญาที่ปรับใช้ ในบริบทของใบสั่งซื้อ "update_quantity" และ "get_quantity" เป็นวิธีการโต้ตอบสองวิธีที่มีให้ คุณยังสามารถป้อนพารามิเตอร์ของคุณโดยใช้ช่องป้อนข้อมูล โปรดจำไว้ว่าการดำเนินการใดๆ ที่เปลี่ยนแปลงตัวแปรสัญญาจะส่งผลให้เกิดธุรกรรม

ด้วยเหตุนี้ เราได้ครอบคลุมพื้นฐานของการ เขียนสัญญาอัจฉริยะฉบับแรกของคุณ และวิธีทดสอบและปรับใช้โดยใช้ภาษาโปรแกรม Solidity ในสภาพแวดล้อมการพัฒนาออนไลน์ เรายังเข้าใจกระบวนการโต้ตอบกับสัญญาอัจฉริยะและการเริ่มต้นธุรกรรมอีกด้วย ดังนั้น ใช้การเรียนรู้ของคุณและสร้างสัญญาที่ชาญฉลาดวันนี้ ท้ายที่สุดการฝึกฝนทำให้สมบูรณ์แบบ!

ห่อ

มีอาชีพเพิ่มขึ้นในเทคโนโลยี blockchain และ blockchain ได้เปลี่ยนโฉมหน้าของอุตสาหกรรมเทคโนโลยีอย่างมากตลอดไป หากคุณสนใจที่จะเป็นนักพัฒนาบล็อกเชนและสร้างสัญญาอัจฉริยะและรหัสลูกโซ่ ชำระเงิน โปรแกรมใบรับรองขั้นสูง IIIT-B & upGrad ในเทคโนโลยี บล็อกเชน

การใช้งาน smart contract ที่เป็นไปได้มีอะไรบ้าง?

สัญญาอัจฉริยะคือโปรแกรมคอมพิวเตอร์ที่ปฏิบัติตามเงื่อนไขของสัญญาโดยอัตโนมัติ พวกเขาใช้เทคโนโลยีบล็อคเชนซึ่งเป็นฐานข้อมูลแบบกระจายที่ช่วยให้การทำธุรกรรมปลอดภัย โปร่งใส และป้องกันการงัดแงะ การเช่ารถ การจองโรงแรม และตั๋วงานเป็นเพียงตัวอย่างเล็กๆ น้อยๆ ของการใช้สัญญาอัจฉริยะ

เหตุใดสัญญาอัจฉริยะจึงถือว่าปลอดภัยกว่าสัญญาปกติ

เนื่องจากมีการใช้สัญญาอัจฉริยะบนเครือข่ายบล็อคเชน จึงถือว่ามีความปลอดภัยมากกว่าสัญญาทั่วไป บล็อกเชนเป็นฐานข้อมูลแบบกระจายที่มีความปลอดภัยในการเข้ารหัส ซึ่งหมายความว่าข้อมูลบนบล็อคเชนไม่สามารถดัดแปลงหรือแฮ็กได้ ด้วยเหตุนี้ การดำเนินการของสัญญาอัจฉริยะจึงรับประกันได้อย่างแม่นยำและเชื่อถือได้ พวกเขายังเปิดเผยต่อสาธารณะและตรวจสอบได้ ซึ่งหมายความว่าทุกคนในบล็อคเชนสามารถดูเงื่อนไขของสัญญาและตรวจสอบว่ากำลังดำเนินการอยู่ ในทางกลับกัน สัญญาอัจฉริยะสามารถช่วยลดความเสี่ยงของการฉ้อโกงและความขัดแย้ง สิ่งสำคัญที่สุดคือพวกมันมีคุณสมบัติมากมายและใช้งานง่าย

เหตุใดสัญญาอัจฉริยะจึงเป็นที่นิยมมากขึ้น

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