คำเตือนความเสี่ยง: ระวังความเสี่ยงจากการระดมทุนที่ผิดกฎหมายในนาม 'สกุลเงินเสมือน' 'บล็อกเชน' — จากห้าหน่วยงานรวมถึงคณะกรรมการกำกับดูแลการธนาคารและการประกันภัย
ข่าวสาร
ค้นพบ
ค้นหา
เข้าสู่ระบบ
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
ดูตลาด
ย้ายภาษา: ไฮไลท์ที่ใหญ่ที่สุดของราศีตุลย์ในสายตาของฉัน
安比(SECBIT)实验室
特邀专栏作者
2019-06-20 03:12
บทความนี้มีประมาณ 4333 คำ การอ่านทั้งหมดใช้เวลาประมาณ 7 นาที
Facebook จะนำการเริ่มต้นใหม่ของสัญญาอัจฉริยะ

หมายเหตุบรรณาธิการ: บทความนี้มาจาก หมายเหตุบรรณาธิการ: บทความนี้มาจากแอมบี แลบอราทอรี SECBIT

(รหัส: SECBIT) ผู้เขียน: Guo Yu ผู้ก่อตั้ง SECBIT Lab เผยแพร่โดยได้รับอนุญาต

ในด้านของบล็อกเชน ไม่มีโซลูชันใดที่ใช้วิธีการแบบดั้งเดิมที่จะชนะ และมีเพียงนวัตกรรมเท่านั้นที่จะมีอนาคต

——กั๋ว หยู

ฉันเชื่อว่าทุกคนเช่นฉันถูกกลุ่มเพื่อนของ Facebook กีดกันในวันนี้

Libra โครงการสกุลเงินดิจิทัลเข้ารหัสที่ริเริ่มโดย Facebook เปิดตัวอย่างเป็นทางการแล้วในวันนี้ (18 มิถุนายน) Libra ได้เปิดตัวเว็บไซต์อย่างเป็นทางการหลายภาษาและเอกสารไวท์เปเปอร์ พร้อมวางตำแหน่งตัวเองเป็นสกุลเงินระดับโลกและโครงสร้างพื้นฐานด้านบริการทางการเงินสำหรับผู้คนหลายพันล้านคน Libra ยังได้เผยแพร่เอกสารทางเทคนิคหลายฉบับที่ให้รายละเอียดเกี่ยวกับภาษาโปรแกรม Move ที่พัฒนาขึ้นใหม่และโปรโตคอลฉันทามติ LibraBFT ซอร์สโค้ด Libra ได้รับการเปิดแหล่งที่มาบน GitHub และเครือข่ายทดสอบก็เปิดตัวเช่นกัน ปัจจุบันได้รับการออกแบบให้เป็นเชนที่ได้รับอนุญาต (consortium chain) โดยอ้างว่าไม่มีวิธีแก้ปัญหาที่สมบูรณ์สำหรับเชนที่ไม่ได้รับอนุญาตในปัจจุบัน (เชนสาธารณะ) ที่สามารถรองรับความต้องการของผู้คนหลายพันล้านคน และระบุว่าการเปลี่ยนไปใช้เชนที่ไม่ได้รับอนุญาต ห่วงโซ่จะเริ่มขึ้นภายในห้าปีของการปล่อยงาน

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

Their design goals seem to overlap, or even aim to replace Ethereum?
นักพัฒนาจากเบอร์ลิน, Lefteris Karapetsas นำเสนอมุมมองของเขาเกี่ยวกับแพลตฟอร์มโซเชียล:
เป้าหมายการออกแบบของพวกเขาดูเหมือนจะทับซ้อนกันอยู่บ้าง หรือพวกเขาตั้งใจจะมาแทนที่ Ethereum ด้วยซ้ำ?
I think "move" programming language released by $FB could be more interesting than libra.
ตาม CryptoPuzzleDream ผู้ก่อตั้ง PuzzleToLife.com:
ฉันคิดว่าภาษา "ย้าย" ที่เผยแพร่โดย FB นั้นน่าสนใจกว่า libra
I'm usually pretty skeptical of anything related to cryptocurrency, but here's one piece of Libra that looks potentially interesting: a bytecode programming language called Move with semantics inspired by linear logic.
James Clark ผู้มีความรู้เรื่องมาตรฐานกล่าวว่า:
ฉันมักจะไม่เชื่อในสิ่งใดที่เกี่ยวข้องกับสกุลเงินดิจิทัล แต่ส่วนหนึ่งของ Libra ดูน่าสนใจทีเดียว: ภาษาโปรแกรมแบบไบต์โค้ดที่เรียกว่า Move ซึ่งความหมายได้รับแรงบันดาลใจจากลอจิกเชิงเส้น

Move เป็นภาษาแพลตฟอร์มสัญญาอัจฉริยะสำหรับ "สินทรัพย์ดิจิทัล"

ชื่อเรื่องรอง

การใช้ Move Language ที่เป็นประโยชน์ 3 ประการ

  • ออกสกุลเงินดิจิทัล โทเค็น และสินทรัพย์ดิจิทัล

  • ชื่อเรื่องรอง

ระบบประเภทคงที่จากล่างขึ้นบน

ระบบประเภทคงที่จากล่างขึ้นบน

Well-typed programs never get stuck.

การย้ายใช้ระบบประเภทคงที่ ซึ่งเป็นข้อจำกัดทางตรรกะโดยพื้นฐานแล้ว มันเข้มงวดกว่าภาษาสัญญาอัจฉริยะของ Ethereum มาก ภาษาการเขียนโปรแกรมสมัยใหม่ เช่น Rust, Golang, Typescript, Haskell, Scala และ OCaml ต่างก็ใช้ระบบแบบ Static Type ข้อดีของภาษาเหล่านี้คือสามารถพบข้อผิดพลาดในการเขียนโปรแกรมระดับต่ำจำนวนมากได้ในขณะคอมไพล์แทนที่จะล่าช้าจนถึงเวลารันไทม์

นี่เป็นคำสแลงในโลกของภาษาโปรแกรม (PL): รหัสประเภทที่ถูกต้องจะไม่มีวันหมดไป หมายความว่าหากมีการตรวจสอบประเภทรหัสสัญญา ความน่าเชื่อถือจะค่อนข้างสูง

ชื่อเรื่องรอง

ปรัชญาทรัพยากรชั้นหนึ่ง

ปรัชญาทรัพยากรชั้นหนึ่ง

คำว่า First-class Resources ค่อนข้างเป็นวิชาการ ในภาษาจีน ทรัพยากรเป็นพลเมืองชั้นหนึ่ง แปลว่าอะไร?

สิ่งที่เรียกว่าพลเมืองชั้นหนึ่งของภาษาโปรแกรมคือวัตถุการเขียนโปรแกรมที่ภาษาโปรแกรมพิจารณาเป็นอันดับแรกเมื่อเขียนโปรแกรม

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

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

  • สัญญาการย้ายใช้ประเภทที่ดูดซับทฤษฎีดั้งเดิมของ "ลอจิกเชิงเส้น" ซึ่งเรียกว่าประเภททรัพยากร สินทรัพย์ดิจิทัลสามารถกำหนดได้ด้วย "ประเภททรัพยากร" ด้วยวิธีนี้ สินทรัพย์ดิจิทัล เช่น ทรัพยากร เป็นไปตามคุณลักษณะบางอย่างในลอจิกเชิงเส้น:

  • ไม่สามารถคัดลอกเนื้อหาดิจิทัลได้

  • สินทรัพย์ดิจิทัลไม่สามารถหายไปในอากาศได้

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

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

ชื่อเรื่องรอง

การออกแบบหลักประกันสัญญา

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

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

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

เมื่อเปรียบเทียบกับแพลตฟอร์ม Ethereum EVM แล้ว ระบบโมดูล Move ไม่รองรับการพึ่งพาซ้ำแบบวนซ้ำ ซึ่งแก้ปัญหาช่องโหว่การกลับเข้าใช้สัญญาใหม่ได้อย่างสมบูรณ์แบบ (Re-entrancy)

ชื่อเรื่องรอง

ระบบโมดูลที่ทรงพลัง

Move modules are similar to smart contracts in other blockchain languages. …, However, modules enforce strong data abstraction — a type is transparent inside its declaring module and opaque outside of it.

ระบบโมดูล Move ได้รับการออกแบบด้วยภาษาโปรแกรมเชิงฟังก์ชัน (OCaml, Coq, SML) ตามเอกสารไวท์เปเปอร์:

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

ข้อความ

Move Smart Contract ที่รองรับอนาคต

แม้ว่า Move จะดูหยาบกระด้างและยังไม่บรรลุนิติภาวะแต่ทิศทางนี้ก็ยังน่าตื่นเต้น จากระดับภาษา Move เราสามารถเห็นความทะเยอทะยานของ Facebook ในการเป็นแพลตฟอร์มสินทรัพย์ดิจิทัลขนาดใหญ่ บทบาทนี้ควรเป็นของ Ethereum

  • ทำไมฉันถึงตกหลุมรัก Move นิดหน่อย พอมาคิดดูแล้วน่าจะมีสามเหตุผล:

  • ได้ซึมซับความสำเร็จด้านการวิจัยในสาขา PL (ภาษาโปรแกรม) และยังได้ซึมซับประสบการณ์และบทเรียนของภาษาสัญญาอัจฉริยะ EVM

  • การออกแบบให้ความสำคัญกับ "ความปลอดภัยและความถูกต้องของสัญญาอัจฉริยะ"

Libra
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก
https://t.me/Odaily_News
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
บัญชีทางการ
https://twitter.com/OdailyChina
กลุ่มสนทนา
https://t.me/Odaily_CryptoPunk
สรุปโดย AI
กลับไปด้านบน
Facebook จะนำการเริ่มต้นใหม่ของสัญญาอัจฉริยะ
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android