Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ

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

มาดูคุณสมบัติหลักของ Corda และความเป็นเอกลักษณ์ของบล็อกเชนอื่น ๆ กัน:

  • Corda ไม่มีสกุลเงินดิจิตอลของตัวเอง
  • Corda ไม่ได้ใช้แนวคิดเรื่องการขุดและระบบ Proof-of-Work
  • การถ่ายโอนข้อมูลเกิดขึ้นระหว่างคู่สัญญาในธุรกรรม/สัญญาเท่านั้น ไม่มีการออกอากาศทั่วโลกไปยังโหนดเครือข่ายทั้งหมด
  • ไม่มีผู้ควบคุมส่วนกลางที่จัดการธุรกรรมทั้งหมด
  • Corda สนับสนุนกลไกฉันทามติต่างๆ
  • ฉันทามติจะเกิดขึ้นระหว่างผู้เข้าร่วมในระดับข้อตกลง/สัญญาแต่ละรายการ และไม่ใช่ในระดับของระบบทั้งหมด
  • ธุรกรรมจะได้รับการยืนยันโดยผู้เข้าร่วมที่เกี่ยวข้องเท่านั้น
  • Corda นำเสนอการเชื่อมต่อโดยตรงระหว่างภาษากฎหมายมนุษย์อย่างเป็นทางการและรหัสสัญญาอัจฉริยะ

บัญชีแยกประเภท

แนวคิดของบัญชีแยกประเภทใน Corda นั้นเป็นอัตนัย ไม่มีที่เก็บข้อมูลส่วนกลางเพียงแห่งเดียว แต่แต่ละโหนดจะรักษาฐานข้อมูลข้อเท็จจริงที่แยกจากกัน

ตัวอย่างเช่น ลองจินตนาการถึงเครือข่ายที่มี 5 โหนด โดยที่วงกลมนั้นเป็นข้อเท็จจริงที่โหนดทราบ

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ

ดังที่เราเห็น เอ็ด คาร์ล และเดมีรู้เกี่ยวกับข้อเท็จจริง 3 แต่อลิซและบ็อบไม่รู้ด้วยซ้ำ Corda รับประกันว่าข้อเท็จจริงทั่วไปจะถูกจัดเก็บไว้ในฐานข้อมูลของแต่ละโหนด และข้อมูลจะเหมือนกัน

รัฐ

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

รัฐสามารถจัดเก็บข้อมูลตามอำเภอใจได้ เช่น หุ้น พันธบัตร เงินกู้ ข้อมูลระบุตัวตน

ตัวอย่างเช่น สถานะต่อไปนี้แสดงถึง IOU ซึ่งเป็นข้อตกลงที่อลิซเป็นหนี้ Bob เป็นจำนวน X:

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

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ

การทำธุรกรรม

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

ธุรกรรมจะถูกเพิ่มลงในบัญชีแยกประเภทหาก:

  • ถูกต้องตามสัญญา
  • ลงนามโดยผู้เข้าร่วมที่จำเป็นทั้งหมด
  • ไม่มีการใช้จ่ายซ้ำซ้อน

Corda ใช้โมเดล UTXO (เอาต์พุตธุรกรรมที่ยังไม่ได้ใช้) ซึ่งสถานะบัญชีแยกประเภทแต่ละสถานะจะไม่เปลี่ยนรูป

เมื่อสร้างธุรกรรม สถานะเอาต์พุตของธุรกรรมก่อนหน้า (ตามแฮชและดัชนี) จะถูกโอนไปยังอินพุต

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ
วงจรชีวิตของธุรกรรม:

  • การสร้าง (ขณะนี้ธุรกรรมเป็นเพียงข้อเสนอเพื่ออัพเดตบัญชีแยกประเภท)
  • รวบรวมลายเซ็น (ฝ่ายที่ต้องการในธุรกรรมอนุมัติข้อเสนอการอัปเดตโดยเพิ่มลายเซ็นในธุรกรรม)
  • ยืนยันธุรกรรมไปยังบัญชีแยกประเภท

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

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ
นอกเหนือจากสถานะอินพุตและเอาต์พุตแล้ว ธุรกรรมอาจประกอบด้วย:

  • คำสั่ง (พารามิเตอร์ธุรกรรมที่ระบุวัตถุประสงค์ของธุรกรรม)
  • ไฟล์แนบ (ปฏิทินวันหยุด, ตัวแปลงสกุลเงิน)
  • กรอบเวลา (ระยะเวลาที่มีผล)
  • ทนายความ (ทนายความ ผู้เข้าร่วมเครือข่ายพิเศษตรวจสอบธุรกรรม)

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ

สัญญา

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

สัญญาใน Corda เขียนด้วยภาษา JVM ใดก็ได้ (เช่น Java, Kotlin)

class CommercialPaper : Contract {
    override fun verify(tx: LedgerTransaction) {
        TODO()
    }
}

มีความจำเป็นต้องสืบทอดจากคลาส สัญญา และแทนที่วิธีการ ตรวจสอบ. หากธุรกรรมไม่ถูกต้อง จะมีการยกเว้นข้อยกเว้น

การตรวจสอบความถูกต้องของธุรกรรมจะต้องถูกกำหนดไว้ เช่น สัญญาจะต้องยอมรับหรือปฏิเสธธุรกรรมเสมอ ด้วยเหตุนี้ความถูกต้องของธุรกรรมจึงไม่สามารถขึ้นอยู่กับเวลา หมายเลขสุ่ม ไฟล์โฮสต์ ฯลฯ

ใน Corda สัญญาจะดำเนินการในสิ่งที่เรียกว่าแซนด์บ็อกซ์ ซึ่งเป็น JVM ที่ได้รับการแก้ไขเล็กน้อยซึ่งรับประกันการดำเนินการตามสัญญาตามที่กำหนด

สตรีม

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

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

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ

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

ฉันทามติ

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

การตัดสินใจเกี่ยวกับความถูกต้องของธุรกรรมจะกระทำโดยฝ่ายที่เกี่ยวข้องโดยตรงเท่านั้น

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

สมมติว่า Bob มีเงิน $100 และต้องการโอนเงิน $80 ให้ Charlie และ $70 ให้ Dan โดยใช้สถานะอินพุตเดียวกัน

Corda - บล็อกเชนโอเพ่นซอร์สสำหรับธุรกิจ

Corda จะไม่ยอมให้คุณใช้กลอุบายดังกล่าว แม้ว่าธุรกรรมจะผ่านการตรวจสอบความถูกต้อง แต่การตรวจสอบเอกลักษณ์จะล้มเหลว

ข้อสรุป

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

ที่มา: will.com

เพิ่มความคิดเห็น