Blockchain (Bitcoin) เป็นฐานข้อมูลหรือไม่?


16

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

blockchain เป็นโซลูชันฐานข้อมูลที่มีศักยภาพสำหรับแอพพลิเคชั่นปริมาณมากและทันสมัยหรือไม่?

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

blockchain คืออะไร

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

การลบคนกลางลดค่าใช้จ่ายในเกือบทุกภาค

blockchain เป็นบัญชีแยกประเภทที่บันทึกทุกอย่างที่เกิดขึ้นกับการรวบรวมข้อมูลที่เรียกว่า "บล็อก" ตามลำดับเวลาหรือ "ห่วงโซ่"

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

“ เทคโนโลยี Blockchain เป็นวิธีที่เราสร้างสินทรัพย์เพราะจะช่วยให้คุณถ่ายโอนข้อมูลดิจิตอลโดยไม่ต้องคัดลอก” Adam Ludwin หัวหน้าผู้บริหารของ Chain.com กล่าวซึ่งสร้างเครือข่ายบล็อกเชน

Blockchain สามารถใช้เพื่อติดตามประวัติของข้อมูลทุกประเภทและรักษาคุณค่าของมันตัวอย่างเช่นแพทย์สามารถใช้มันเพื่ออัพเดทเวชระเบียน

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

คำตอบ:


15

blockchain เป็นโซลูชันฐานข้อมูลที่มีศักยภาพสำหรับแอพพลิเคชั่นปริมาณมากและทันสมัยหรือไม่?

เทคโนโลยี blockchain โดยทั่วไปมีลักษณะบางอย่างที่ทำให้ทำงานได้ยากกับปริมาณมาก

ลองดูตัวอย่าง Bitcoin ธุรกรรมเฉลี่ยต่อวันไม่เคยเกิน 300K: ธุรกรรมต่อวัน (source blockchain.info)

ป้อนคำอธิบายรูปภาพที่นี่

สำคัญยิ่งกว่านั้นเวลายืนยันค่ามัธยฐานสำหรับการทำธุรกรรมคือประมาณ 8 นาที!: เวลายืนยันการทำธุรกรรมค่ามัธยฐาน (มีค่าธรรมเนียมเท่านั้น)และภาพลักษณ์ที่ดีจากQuandl :

ป้อนคำอธิบายรูปภาพที่นี่

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

เราสามารถประมาณได้ว่ามีกี่พวก แต่ฉันเดาว่ามันมีมากกว่าล้านตัว ธุรกรรม 300K ต่อวันกับคอมพิวเตอร์หนึ่งล้านเครื่องนั้นไม่ได้มีปริมาณมาก และ 8 นาทีสำหรับการยืนยัน?

RDBMS ที่ทันสมัยในฮาร์ดแวร์ที่เหมาะสมสามารถทำธุรกรรมได้มากถึง 1K ต่อวินาที นั่นคือธุรกรรมประมาณ 86 ล้านต่อวัน เวลายืนยัน? ขึ้นอยู่กับขนาดของธุรกรรม (มีกี่ตารางและแถวที่มีผลกระทบ) แต่สำหรับธุรกรรมขนาดเล็กประเภท bitcoin (ลบ 42 เหรียญออกจากบัญชี A และเพิ่ม 42 เหรียญเข้าบัญชี B) มันจะเป็นมิลลิวินาที

โดยสรุปความแตกต่างในปริมาณและเวลาคือ 1,000 ถึง 100,000 เท่าในวันนี้

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


อีกปัญหาที่ฉันมีกับ blockchain คือมันไม่สอดคล้องกันเลือด มันเป็นเรื่องของการโหลดและลูกค้าที่ประมวลผลการทำธุรกรรมไม่ได้ 'ทุ่มเท' เพื่อให้คุณสามารถเห็นกลุ่มแบบเลื่อนออกหรือเพิ่ม 8 นาทีฟังดูถูกต้องบางที 10 นาทีสุดท้ายอาจเป็นอีกหนึ่งนาทีหรือสองนาทีสำหรับการอนุมัติเพื่อเข้าถึงลูกค้าทั้งหมด ไม่แน่ใจว่าใครจะรู้กับโหนดมากขึ้นบางทีมันก็ลงไป! ลิงก์ยอดเยี่ยมทั้งสองวิธี ขอบคุณ
Ali Razeghi

2
บทความนี้technologyreview.com/s/540921/…อ้างว่ามีข้อ จำกัด ทางแนวคิดของธุรกรรมเจ็ดรายการต่อวินาที
a_horse_with_no_name

@a_horse_with_no_name เครือข่ายด้านสามารถปรับขนาดได้อย่างง่ายดายโดยไม่ จำกัด จำนวนและยังคงซิงค์กับ bitcoin blockchain ที่สามารถจัดการได้อย่างโปร่งใส
jangorecki

16

ฉันคุ้นเคยกับ cryptocurrency และฐานข้อมูลและฉันสามารถบอกคุณได้ว่ามันไม่ใช่เอ็นจิ้น DB ที่ยอดเยี่ยมเลย

การใช้ blockchain เป็นฐานข้อมูลสด:

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

ประโยชน์ของ blockchain:

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

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

การเคียวรีข้อมูลจากสกีมา blockchain ใน DBMS:

นี่คือแผนภาพ bitcoin ที่คุณสามารถใช้เพื่อสร้าง schema ใน PostgreSQL การใช้สิ่งนี้คุณสามารถใส่ลงใน DBMS เชิงสัมพันธ์ได้ที่: https://bitcointalk.org/index.php?topic=38246 ป้อนคำอธิบายรูปภาพที่นี่

รหัสซื้อคืนนี้มีประโยชน์หากคุณต้องการนำเข้าข้อมูลไปยัง RDBMS จริง: https://github.com/bitcoin-abe/bitcoin-abe

เท่าที่คุณควรใส่ไว้ใน DBMS นั่นก็ขึ้นอยู่กับการใช้งานของคุณ หากคุณต้องการวิเคราะห์ ID ธุรกรรม / wallet เพื่อดูรูปแบบบางอย่างหรือทำงาน BI ฉันจะแนะนำ DB ฐานข้อมูล หากคุณต้องการตั้งค่าการนำเข้าแบบสดด้วย cryptocoins หลายอันฉันอยากจะแนะนำสิ่งที่ไม่จำเป็นต้องมีบันทึกการทำธุรกรรมดังนั้นโซลูชัน MongoDB ก็ดี ฉันไม่คิดว่าคุณต้องกังวลเกี่ยวกับการค้นหาแบบยืดหยุ่นยกเว้นว่าคุณต้องการเริ่มทำการบันทึกสดของ cryptocoins ทั้งหมดในเวลาเดียวกันและจะใช้มันเพื่อทำการซื้อขายอัตโนมัติหรือสิ่งที่บ้าอย่างเท่าเทียมกัน :)


8

ในปี 2557 เราสร้าง ascribe.io โดยใช้ Bitcoin เป็นฐานข้อมูลสำหรับการอ้างสิทธิ์ในทรัพย์สินทางปัญญา เมื่อวางจำหน่ายเราเสียบเครือข่ายเพราะไม่สามารถจัดการปริมาณงานได้เวลาแฝงอย่างน้อย 10 นาทีและเราถูก จำกัด ด้วยสิ่งที่เราสามารถใส่ลงใน OP_RETURN บังคับให้เราจัดเก็บไฟล์ดิจิทัลจริงที่เกี่ยวข้องกับการอ้างสิทธิ์ใน Amazon S3 . เราตระหนักว่า Bitcoin ในรูปแบบปัจจุบันไม่สามารถเป็นฐานข้อมูลธุรกรรมที่สูงได้

แต่ความคิดที่ว่าเราจะมีฐานข้อมูลสไตล์บล็อกเชนหรือไม่ - การกระจายอำนาจการควบคุมการเปลี่ยนแปลงไม่ได้ (การต้านทานการงัดแงะ) และสินทรัพย์สดบนเครือข่ายที่ติดอยู่กับเรา ดังนั้นในกลางปี ​​2557 เราเริ่มทำงานกับ BigchainDB

เรื่องสั้นสั้น - เราสามารถประมวลผล 100k tps ด้วยความหน่วง 100mS และมีความจุเพตาไบต์ รหัส BigchainDB Github เอกสารทางเทคนิคของเราที่นี่และความคิดพื้นฐานของเราในเอกสาร

หากคุณมีกรณีการใช้งานสำหรับฐานข้อมูลที่มีการกระจายอำนาจสูงเราได้สร้าง BigchainDB ตรงนี้


2

Blockchain มาจาก Bitcoin ช้าและราคาแพง จำนวนข้อมูลที่สามารถเก็บไว้ในบล็อกนั้นมีความเรียบง่ายมาก กลไกที่อยู่เบื้องหลังบล็อกเชน (บัญชีแยกประเภทแจกจ่าย) มีจุดประสงค์เพื่อให้เป็นแหล่งเก็บข้อมูลที่ไม่มีการลอกเลียนแบบ peer-to-peer เป็นคุณสมบัติที่สำคัญน้อยกว่า "ข้อกำหนดทางการเมือง" เพื่อหลีกเลี่ยงการปรากฏตัวของการควบคุมกลาง ฉันทำงานเป็นเวลา 18 เดือนเพื่อผลิตบัญชีแยกประเภทที่มีประสิทธิภาพสูง (ดู metrognomo.com สำหรับการเริ่มต้นหนึ่งครั้ง) ซึ่งใช้เวลาน้อยที่สุดจาก Bitcoin เท่าที่จะทำได้ ในท้ายที่สุดแล้วบัญชีแยกประเภทที่กระจายจะมีลักษณะคล้ายกับไฟล์เรียงลำดับที่สามารถเพิ่มเข้าไปได้ แต่ไม่สามารถแก้ไขได้หลังจากเพิ่ม นี่เป็นสิ่งที่มีค่าสำหรับบางแอปพลิเคชัน แต่ไม่ใช่สิ่งที่คนส่วนใหญ่คิดว่าเป็นฐานข้อมูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.