Blockchain (Bitcoin) làm cơ sở dữ liệu?


16

Tôi đang đọc bài báo này của BBC News và đoạn trích sau đây, đã thu hút sự chú ý của tôi. Nghe có vẻ như Luôn có sẵn các nhóm sẵn có hoặc Phản chiếu có tính sẵn sàng cao, có thể có bảo mật tự động đi kèm.

Blockchain có phải là giải pháp cơ sở dữ liệu khả thi cho các ứng dụng khối lượng giao dịch cao, hiện đại không?

Khá dễ dàng để thấy giá trị của nó đối với các giao dịch khối lượng thấp như hồ sơ y tế cá nhân, nhưng cơ sở dữ liệu khối lượng cao thì sao?

Blockchain là gì?

Blockchains dựa vào mật mã để cho phép một bộ máy tính thực hiện các thay đổi đối với bản ghi toàn cầu mà không cần một tác nhân trung tâm.

Loại bỏ người trung gian cắt giảm chi phí trong hầu hết các lĩnh vực.

Blockchain là một sổ cái ghi lại mọi thứ xảy ra với một tập hợp dữ liệu được gọi là "khối" theo thứ tự thời gian hoặc "chuỗi".

Là một loại tiền tệ, đây là một tính năng quan trọng vì nó cho phép người dùng chắc chắn rằng tiền kỹ thuật số của họ là một trong những loại, giống như cách mỗi lưu ý trong ví của bạn là duy nhất.

"Công nghệ chuỗi khối sẽ là cách chúng tôi tạo ra tài sản vì nó cho phép bạn chuyển thông tin kỹ thuật số mà không cần sao chép", Adam Ludwin, giám đốc điều hành của Chain.com, công ty xây dựng mạng lưới blockchain cho biết.

Blockchain có thể được sử dụng để theo dõi lịch sử của tất cả các loại thông tin và duy trì giá trị của nó, vì vậy, ví dụ, các bác sĩ có thể sử dụng nó để cập nhật hồ sơ y tế.

Vì mỗi thay đổi đối với một blockchain được thực hiện đồng thời trên toàn bộ mạng, không có thông tin nào bị mất và vì các thay đổi không thể hoàn tác nên hệ thống duy trì tính minh bạch. Một khóa đặc biệt là cần thiết để thực hiện thay đổi cho từng khối, vì vậy các cá nhân có thể giữ hồ sơ của họ an toàn bằng cách bảo vệ khóa đó.

Câu trả lời:


15

Blockchain có phải là giải pháp cơ sở dữ liệu khả thi cho các ứng dụng khối lượng giao dịch cao , hiện đại không?

Công nghệ blockchain nói chung có một số đặc điểm gây khó khăn khi làm việc với khối lượng lớn.

Hãy xem Bitcoin chẳng hạn. Các giao dịch trung bình mỗi ngày chưa bao giờ nhiều hơn 300K: Giao dịch mỗi ngày (nguồn blockchain.info)

nhập mô tả hình ảnh ở đây

Thậm chí quan trọng hơn, thời gian xác nhận trung bình cho một giao dịch là khoảng 8 phút!: Thời gian xác nhận giao dịch trung bình (Chỉ tính phí) và một hình ảnh đẹp từ Quandl :

nhập mô tả hình ảnh ở đây

Bây giờ có bao nhiêu máy tính trên khắp thế giới chịu trách nhiệm giữ cơ sở dữ liệu bitcoin? Tôi không phải là chuyên gia về bitcoin nhưng tôi nghĩ rằng lịch sử giao dịch hoàn chỉnh được lưu trữ trong chuỗi khối, vì vậy tất cả các máy tính tham gia vào mạng bitcoin về cơ bản giữ một bản sao của toàn bộ cơ sở dữ liệu (tất nhiên là phần giao dịch, không phải thông tin tài khoản và các khóa bí mật, chúng được giữ trong ví cá nhân).

Chúng tôi chỉ có thể ước tính số lượng chúng là bao nhiêu nhưng tôi đoán chúng có hơn một triệu. 300K giao dịch trong một ngày với một triệu máy tính nghe có vẻ không có khối lượng lớn. Và 8 phút để xác nhận?

Một RDBMS hiện đại trong một phần cứng tốt có thể dễ dàng đạt tới 1K giao dịch mỗi giây. Đó là khoảng 86 triệu giao dịch mỗi ngày. Thời gian xác nhận? Điều đó phụ thuộc vào quy mô của giao dịch (có bao nhiêu bảng và hàng ảnh hưởng) nhưng đối với một giao dịch nhỏ thuộc loại bitcoin (loại bỏ 42 đồng xu khỏi tài khoản A và thêm 42 đồng tiền vào tài khoản B), nó sẽ là một phần nghìn giây.

Tóm lại, sự khác biệt về khối lượng và thời gian là 1000 đến 100000 lần hiện nay.

Nếu công nghệ blockchain giải quyết vấn đề này trong tương lai, có thể có thể được sử dụng trong các ứng dụng khối lượng trung bình hoặc cao. Chúng tôi có thể đọc các cuộc thảo luận và đề xuất về cách giải quyết vấn đề - nhiều công ty được đề cập trong các liên kết đang thực sự giải quyết các vấn đề này - nhưng chúng tôi chưa thấy một giải pháp hoặc sản phẩm làm việc thực tế nào có khối lượng và tốc độ cao.


Một vấn đề khác tôi gặp phải với blockchain là nó không nhất quán. Đó là tất cả khi tải và ứng dụng khách xử lý các giao dịch không 'tận tâm' để bạn có thể thấy một nhóm bỏ hoặc được thêm vào. 8 phút nghe có vẻ đúng, có lẽ 10 phút cuối cùng là thêm một hoặc hai phút để phê duyệt để tiếp cận tất cả các khách hàng? Không chắc chắn, ai biết với nhiều nút hơn có thể nó đã đi xuống! Hoặc là cách liên kết tuyệt vời. Cảm ơn.
Ali Razeghi

2
Bài viết này technologyreview.com/s/540921/... tuyên bố rằng có một giới hạn khái niệm trong bảy giao dịch mỗi giây.
a_horse_with_no_name

Chuỗi bên @a_horse_with_no_name có thể dễ dàng mở rộng quy mô mà không bị giới hạn cứng và vẫn được đồng bộ hóa với blockchain bitcoin, có thể được xử lý trong suốt.
jangorecki

16

Tôi rất quen thuộc với tiền điện tử và cơ sở dữ liệu và tôi có thể nói với bạn rằng nó hoàn toàn không phải là một công cụ DB tuyệt vời.

Sử dụng blockchain làm cơ sở dữ liệu trực tiếp:

Hãy nghĩ về nó như một hình thức bình thường hóa đầu tiên mà không có bất kỳ khả năng tìm kiếm thực sự tốt nào được lập trình hoặc lập chỉ mục cho đến khi blockchain đi. Về cơ bản, một bảng excel không có bất kỳ khả năng tính toán nào chỉ cung cấp cho bạn khả năng 'đọc / ghi' với nhiều xác minh và xác thực. Blockchain là một cách tuyệt vời để xác thực dữ liệu của bạn được vệ sinh và sửa chữa trước khi bạn đặt nó vào cơ sở dữ liệu cho phép bạn truy vấn dữ liệu khác, lập chỉ mục, v.v.

Lợi ích của blockchain:

Blockchain trong trường hợp này hoàn toàn là một sổ cái và API cho các yêu cầu PUT và GET. Đó là về nó. Blockchain rất thú vị bởi vì bạn cần phần lớn các nút để vượt qua giao dịch là hợp lệ và không có bất kỳ sự quay trở lại nào, một khi nó đã được cam kết. Do đó, nếu ai đó cố gắng đưa vào một giao dịch giả, nó sẽ bị bắt trừ khi người thực hiện nó có một nhóm chiếm đa số mạnh. Sau đó, họ có thể xác nhận nó trong nhóm của họ trước khi ai đó có thể từ chối nó. Đó là điểm mạnh của blockchain. Xác minh rằng dữ liệu là chính xác. Nó cũng thường khá chậm. Bạn đang xem xét khoảng 10 phút dưới tải bình thường để xác thực. Dưới tải nặng thời gian tăng lên khá nhiều.

Sau khi bạn xác thực rằng các giao dịch là hợp lệ và không lừa đảo bằng cách sử dụng blockchain, bạn có thể nhập dữ liệu đó vào cơ sở dữ liệu và làm việc với nó theo cách bạn muốn. Tôi có một số kinh nghiệm với điều này nhưng lưu ý rằng mọi giao dịch đơn lẻ trên kiến ​​trúc bitcoin hiện tại sẽ được ghi lại do đó nó có một số thông tin thú vị để phân tích.

Truy vấn dữ liệu ra khỏi lược đồ blockchain trong DBMS:

Dưới đây là sơ đồ bitcoin bạn có thể sử dụng để tạo lược đồ trong PostgreSQL. Sử dụng cái này sau đó bạn có thể đặt nó vào một DBMS quan hệ: https://bitcointalk.org/index.php?topic=38246 nhập mô tả hình ảnh ở đây

Mã repo này cũng hữu ích nếu bạn muốn nhập dữ liệu vào RDBMS thực: https://github.com/bitcoin-abe/bitcoin-abe

Theo như những gì DBMS bạn nên đặt nó vào, đó là tùy thuộc vào trường hợp sử dụng của bạn. Nếu bạn muốn phân tích ID giao dịch / ID ví để xem một số mẫu hoặc thực hiện BI, tôi sẽ đề xuất một DB quan hệ. Nếu bạn muốn thiết lập một giao dịch trực tiếp với nhiều loại tiền điện tử, tôi sẽ đề xuất một cái gì đó không cần nhật ký giao dịch để giải pháp MongoDB sẽ tốt. Tôi không nghĩ rằng bạn cần phải lo lắng về Tìm kiếm đàn hồi trừ khi bạn muốn bắt đầu ghi âm trực tiếp tất cả các loại tiền điện tử cùng một lúc và sẽ sử dụng nó để giao dịch tự động hoặc một thứ gì đó điên rồ không kém. :)


8

Vào năm 2014, chúng tôi đã xây dựng ascribe.io với tiền đề sử dụng Bitcoin làm cơ sở dữ liệu cho các khiếu nại Sở hữu trí tuệ. Khi phát hành, chúng tôi đã cắm mạng vì không thể xử lý thông lượng, độ trễ ít nhất là 10 phút và chúng tôi bị giới hạn bởi những gì chúng tôi có thể đưa vào OP_RETURN, buộc chúng tôi phải lưu trữ tệp kỹ thuật số thực tế liên quan đến khiếu nại trong Amazon S3 . Chúng tôi nhận ra rằng Bitcoin ở dạng hiện tại không bao giờ có thể là cơ sở dữ liệu giao dịch cao.

Nhưng ý tưởng về việc liệu chúng tôi có thể có cơ sở dữ liệu kiểu blockchain - kiểm soát phi tập trung, bất biến (chống giả mạo) và tài sản trực tiếp trên mạng bị mắc kẹt với chúng tôi hay không. Vì vậy, vào giữa năm 2014, chúng tôi đã bắt đầu làm việc trên BigchainDB

Câu chuyện dài - chúng ta có thể xử lý 100 nghìn tps với độ trễ 100mS và có dung lượng petabyte. Mã này là BigchainDB Github của chúng tôi, tài liệu kỹ thuật ở đây và tư duy nền tảng trong whitepaper của chúng tôi .

Nếu bạn có trường hợp sử dụng cho cơ sở dữ liệu phi tập trung, giao dịch cao - chúng tôi đã xây dựng BigchainDB chính xác cho việc này.


2

Blockchain có nguồn gốc từ Bitcoin rất chậm và tốn kém; lượng dữ liệu có thể được lưu trữ trong một khối là rất khiêm tốn. Các cơ chế đằng sau blockchains (phân phối sổ cái) nhằm mục đích cung cấp một kho dữ liệu không thể sao chép, có tính sao chép cao; ngang hàng là một tính năng thiết yếu ít hơn một "yêu cầu chính trị" để tránh sự xuất hiện của kiểm soát trung tâm. Tôi đã làm việc trong khoảng 18 tháng để sản xuất một sổ cái phân tán hiệu suất cao (xem metrognomo.com cho một lần khởi tạo) mà lấy càng ít từ Bitcoin càng tốt. Cuối cùng, một sổ cái phân tán trông khá giống một tệp tuần tự có thể được thêm vào nhưng không được chỉnh sửa sau khi thêm. Đây là điều có giá trị đối với một số ứng dụng, nhưng không phải là điều mà hầu hết mọi người nghĩ về cơ sở dữ liệu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.