Bitcoin Core 24.0 đã được phát hành: Đây là thông tin mới về dữ liệu PlatoBlockchain. Tìm kiếm dọc. Ái.

Bitcoin Core 24.0 được phát hành: Đây là những gì mới

Phiên bản mới của phần mềm Bitcoin gốc được phát hành bởi Satoshi Nakamoto năm 2009 đã được phát hành.

Bitcoin Core 24.0 đã được 112 nhà phát triển nghiên cứu trong khoảng bảy tháng để mang lại những cải tiến rõ rệt cho ví Bitcoin Core, giao tiếp ngang hàng (P2P), giao diện người dùng đồ họa (GUI) và hơn thế nữa.

Bài viết này tìm hiểu một số thay đổi chính.

Cập nhật ví

Hỗ trợ bản viết nhỏ ban đầu

Bitcoin Core 24.0 đang giới thiệu hỗ trợ cho Miniscript bằng cách mở rộng wsh() bộ mô tả đầu ra. Mặc dù đây là sự tích hợp ban đầu và thô sơ, nhưng động thái này sẽ mở đường cho việc triển khai các tập lệnh phức tạp hơn cho Bitcoin theo cách đơn giản hơn – và an toàn hơn.

Bản tóm tắt có thể được coi là một khuôn khổ (hoặc khuôn mẫu) cho Tập lệnh Bitcoin, ngôn ngữ lập trình gốc của Bitcoin. Bitcoin Script chịu trách nhiệm kích hoạt tất cả chức năng lập trình có sẵn cho Bitcoin, chẳng hạn như chức năng có lẽ đơn giản nhất trong số đó: xác định ai được phép chi tiêu một đồng tiền nhất định. Đối với mỗi giao dịch Bitcoin, người gửi yêu cầu địa chỉ của người nhận và với thông tin đó sẽ xây dựng một tập lệnh khóa bitcoin được gửi theo cách mà chỉ người nhận mới có thể chi tiêu. Mặc dù khá dễ dàng để xây dựng các tập lệnh đơn giản như đoạn trên bằng Bitcoin Script, nhưng tập lệnh càng phức tạp thì khả năng xảy ra lỗi của con người càng cao. Đây là lúc Miniscript phát huy tác dụng.

Miniscript cho phép viết một tập hợp con các tập lệnh Bitcoin trong một cấu trúc đường. Nó cho phép phân tích, tổng hợp và ký tên chung, cùng nhiều tính năng khác, cho phép các nhà phát triển viết các tập lệnh nâng cao một cách an toàn hơn. Nói cách khác, Miniscript “chứa” một số chức năng của Tập lệnh Bitcoin được cài đặt sẵn theo mẫu hành vi dự kiến, hạn chế rủi ro cuối cùng khi hành vi không mong muốn được giảm thiểu. Trong thực tế, nó cung cấp một “hộp công cụ” để các nhà phát triển mày mò và tạo các tập lệnh nâng cao và phức tạp cho Bitcoin thay vì phải thực hiện tất cả theo cách thủ công thông qua Bitcoin Script.

Bắt đầu với Bitcoin Core 24.0, giờ đây người dùng có thể tạo ví chứa tập lệnh Miniscript, tạo địa chỉ cho ví đó và cấp tiền cho chúng bằng bitcoin. Tuy nhiên, việc chi tiêu từ các địa chỉ đó vẫn chưa được ví Bitcoin Core hỗ trợ, có nghĩa là các ví hỗ trợ Miniscript trên Bitcoin Core hiện chỉ ở chế độ xem.

Giao dịch không thay đổi

Một RPC mới đã được giới thiệu, gửi tất cả, cho phép người dùng sử dụng toàn bộ kết quả đầu ra giao dịch chưa chi tiêu (UTXO) cụ thể của họ. RPC sẽ gửi số tiền được giữ trong UTXO được chỉ định tới một hoặc nhiều người nhận mà không tạo ra thay đổi. (Theo mặc định, gửi tất cả sẽ chi tiêu mọi UTXO trong ví.)

Hành vi này có thể được mong muốn trong một số tình huống. Đầu tiên, đương nhiên, người dùng có thể muốn làm trống ví của mình. Việc gọi RPC mới với cấu hình mặc định sẽ thực hiện điều đó một cách dễ dàng. Thứ hai, người dùng có thể muốn cải thiện quyền riêng tư của mình bằng cách từ bỏ thay đổi.

Thay đổi địa chỉ rất phức tạp vì người dùng thường không biết họ bắt nguồn từ đâu và do đó có thể trộn chúng với các UTXO khác làm đầu vào trong giao dịch trong tương lai. Điều này sẽ gây ra mối lo ngại về quyền riêng tư do heuristic sở hữu đầu vào chung, một tiền đề được sử dụng rộng rãi trong phân tích chuỗi giả định tất cả đầu vào trong giao dịch đều thuộc về cùng một người dùng. Trong ví dụ về đầu ra thay đổi, người dùng sẽ tạo liên kết đó, có nguy cơ hủy danh tính nhiều đồng tiền của họ vì nhà phân tích chuỗi có thể phân cụm một số địa chỉ của người dùng đó làm ví.

Một khoản thanh toán không thay đổi sẽ giải quyết vấn đề này bằng cách tạo một giao dịch chi tiêu toàn bộ UTXO đã chọn. Vì không có thay đổi nên người dùng không thể mắc lỗi nêu trên. Hơn nữa, một khoản thanh toán không thay đổi gây ra nghi ngờ hợp lý cho nhà phân tích chuỗi khi thắc mắc liệu đầu ra mới có thuộc sở hữu của cùng một thực thể đã gửi khoản thanh toán đó (chỉ là chuyển tiền đến địa chỉ mới) hay thực sự hiện thuộc sở hữu của một người dùng khác.

Thay đổi ngẫu nhiên đầu ra để tránh lấy dấu vân tay

Như đã giải thích ở trên, đầu ra thay đổi có thể là rò rỉ quyền riêng tư. Trong khi gửi tất cả giảm thiểu hoàn toàn việc sử dụng địa chỉ thay đổi, trên thực tế sẽ có vài trường hợp người dùng sở hữu UTXO có quy mô chính xác của khoản thanh toán cần thực hiện. Việc đảm bảo rằng người quan sát không thể phát hiện ra đầu ra nào là địa chỉ thay đổi sẽ giúp người dùng có được một chút quyền riêng tư vì việc liên kết một địa chỉ mới được tạo (đầu ra thay đổi) với đầu vào hiện đã sử dụng cho giao dịch đó sẽ không phải là chuyện nhỏ .

Thông thường, khi không có UTXO với số tiền chính xác của khoản thanh toán, hầu hết các ví và người dùng sẽ chọn số gần nhất với số đó một cách trực quan. Kết quả là, người quan sát theo dõi blockchain có thể biết đầu ra nào là khoản thanh toán (cái lớn hơn) và đầu ra nào là thay đổi (cái nhỏ hơn). Điều này kéo theo rất nhiều rủi ro kể trên.

Để giảm khả năng người quan sát có thể chọn ra đầu ra thay đổi và địa chỉ người dùng cụm, Bitcoin Core hiện ngẫu nhiên hóa các giá trị đầu ra thay đổi.

Bắt đầu với phiên bản 24.0, ví Bitcoin Core sẽ chọn một số ngẫu nhiên giữa quy mô thanh toán và gấp ba lần quy mô thanh toán. Con số này sẽ cho biết lựa chọn UTXO của nó để chi tiêu. Điều này có nghĩa là đôi khi thuật toán sẽ chọn một UTXO có giá trị gần với khoản thanh toán hơn và đôi khi nó sẽ chọn một UTXO có giá trị gần với giới hạn trên gấp ba lần số tiền thanh toán. Kịch bản trước sẽ tạo ra kịch bản thay đổi-đầu ra-thấp hơn mức thanh toán điển hình trong khi kịch bản sau sẽ tạo ra kịch bản ngược lại - đầu ra thay đổi lớn hơn khoản thanh toán. Vì không có cách nào để người quan sát blockchain biết khi nào mỗi tình huống xảy ra tại một thời điểm nhất định, người dùng sẽ có thể được hưởng những đảm bảo về quyền riêng tư cao hơn.

Cập nhật để thay thế theo phí

RBF cung cấp tùy chọn cho người dùng Bitcoin bất cứ khi nào họ gửi giao dịch lên mạng. Thông thường, người dùng không muốn trả quá nhiều phí cho thợ đào và do đó có thể chọn mức “trung gian” giữa phí phải trả và tốc độ giao dịch được đưa vào một khối. Nhưng nếu giá trị phí do người dùng chọn quá thấp hoặc mempool bị tắc nghẽn thì có thể mất quá nhiều thời gian để giao dịch được đưa vào một khối (hoặc có thể bị kẹt hoàn toàn trong mempool). RBF cho phép người dùng “tăng” phí giao dịch của họ trong trường hợp như vậy, thường xuyên hơn là không cho phép thanh toán nhanh hơn.

Tuy nhiên, dưới mui xe, RBF không thực sự tăng phí. Điều xảy ra ở chế độ nền là ứng dụng khách phần mềm sẽ phát một thông báo mới giao dịch có cùng đầu vào và hầu hết các đầu ra giống nhau. (Một số giá trị đầu ra thay đổi; giá trị phí sẽ tự nhiên thay đổi để phản ánh số mới và thông thường khoản chênh lệch đó sẽ được khấu trừ khỏi số tiền được gửi đến địa chỉ thay đổi.)

Trong lịch sử, các nút sẽ chỉ chuyển tiếp phiên bản đầu tiên của giao dịch mà chúng nhìn thấy. Với sự ra đời của RBF, một cơ chế đã được giới thiệu để cho phép người dùng gắn cờ rằng họ đang gửi một giao dịch mà cuối cùng có thể bị tính phí, tức là được thay thế bằng một phiên bản có mức phí cao hơn. Điều này đóng vai trò thông báo cho các nút, cho họ biết rằng các phiên bản có phí cao hơn của giao dịch đó có thể được gửi sau đó và chúng cũng nên được chuyển tiếp. Về mặt xác suất, phiên bản giao dịch có phí cao hơn sẽ có xu hướng hấp dẫn hơn đối với người khai thác và do đó được chọn đầu tiên. Khi điều đó xảy ra và nó được đưa vào một khối, giao dịch có mức phí thấp hơn sẽ bị loại bỏ khỏi bộ nhớ của các nút vì nó sẽ cố gắng chi tiêu gấp đôi.

Bitcoin Core 24.0 giới thiệu hai bản cập nhật cho chức năng RBF.

Đầu tiên, giờ đây nó cho phép người dùng định cấu hình các nút của họ để chuyển tiếp các giao dịch có thể thay thế được không có thực thi cờ RBF. Điều này có thể được thực hiện thông qua mới mempoolfullrbf lựa chọn. Nó sẽ được đặt thành off theo mặc định, nhưng những người muốn kích hoạt nó có thể bật nó lên.

Thứ hai, RBF hiện được đặt làm tiêu chuẩn trong ví của Bitcoin Core. Các giao dịch hiện được chọn tham gia RBF theo mặc định và -walletrbf tùy chọn khởi động mặc định là đúng. Người dùng có thể từ chối RBF bằng cách điều chỉnh một giao dịch nhất định trong quá trình xây dựng hoặc cài đặt -walletrbf tùy chọn khởi động thành sai.

Di chuyển ví mô tả

Bitcoin lõi 23.0 đã biến ví mô tả thành tiêu chuẩn. Bộ mô tả tạo điều kiện thuận lợi cho cuộc sống của người dùng trong việc sao lưu ví của họ và sau đó khôi phục bản sao lưu đó ở định dạng chuẩn.

Trước khi các bộ mô tả tồn tại, người dùng phải biết đường dẫn xuất phát của ví của họ, đường dẫn này cho biết cách khóa chính của ví lấy ra các địa chỉ được sử dụng để nhận và gửi bitcoin. Vì các ví có thể có các đường dẫn phái sinh khác nhau nên việc sao lưu chỉ chứa các cụm từ gốc là không đủ. Đôi khi người dùng có thể may mắn và cố gắng khôi phục bản sao lưu bằng ví sử dụng cùng một đường dẫn phái sinh, nhưng do khả năng điều đó xảy ra thấp nên toàn bộ trang web được dành riêng để giúp người dùng tìm ra đường dẫn phái sinh nào sẽ sử dụng cho ví cũ và mới xuất hiện.

Bộ mô tả giải quyết vấn đề này bằng cách mô tả về đường dẫn phái sinh mà ví dự phòng sử dụng, cải thiện đáng kể trải nghiệm người dùng. Ý tưởng là bản sao lưu ví mô tả tự chứa tất cả thông tin cần thiết để nó được khôi phục chính xác bởi bất kỳ ứng dụng khách phần mềm nào (miễn là ứng dụng khách được kích hoạt bộ mô tả).

Giờ đây, Bitcoin Core 24.0 giới thiệu một công cụ mới để di chuyển các ví cũ sang định dạng ví mô tả, cho phép người dùng tận dụng tiêu chuẩn mới nổi này để bảo vệ bitcoin quý giá của họ tốt hơn. Mặc dù vẫn đang thử nghiệm, một RPC mới (ví di chuyển) đã được giới thiệu. Tài liệu này cung cấp thêm chi tiết về chức năng của nó.

Thay đổi GUI

GUI Bitcoin Core được biết đến là không cung cấp cùng mức chức năng mà các lệnh gọi thủ tục từ xa (RPC) và các công cụ dòng lệnh có thể đạt được. Bitcoin 24.0 đang thực hiện một số bước để thay đổi điều đó.

Phiên bản mới nhất của Bitcoin Core mang đến một mục menu mới trên GUI cho phép người dùng khôi phục ví từ bản sao lưu, giúp những người không rành về kỹ thuật khôi phục bản sao lưu dễ dàng hơn. Trước đây, tùy chọn này chỉ tồn tại trên dòng lệnh.

Một thiếu sót khác của GUI so với giao diện RPC có liên quan đến cài đặt của máy khách Bitcoin Core. Sự nổi tiếng bitcoin.conf file là chén thánh của cấu hình Bitcoin Core, nhưng một lần nữa, nó có thể được điều chỉnh chủ yếu thông qua dòng lệnh. Đã tồn tại một tùy chọn để điều chỉnh cài đặt trong GUI, nhưng một cảnh báo đã nêu rõ rằng bitcoin.conf được ưu tiên hơn GUI trong trường hợp cả tệp và GUI đều cố gắng đặt dữ liệu cho cùng một cấu hình. Do đó, mặc dù GUI cung cấp một tùy chọn đơn giản để thay đổi cài đặt, nhưng tệp cấu hình vẫn là cách đáng tin cậy nhất để tùy chỉnh ứng dụng khách Bitcoin Core của một người.

Bitcoin Core 24.0 thay đổi điều đó. Bản cập nhật mới hợp nhất trang cài đặt GUI với bitcoin.conf tài liệu. Bây giờ, khi người dùng mở cài đặt của máy khách trên GUI, các cài đặt hiển thị sẽ được lấy từ tệp cấu hình. Tương tự, những thay đổi cấu hình được thực hiện trong GUI hiện được phản ánh trong bitcoin.conf. (Điều đáng nói là mối quan hệ ở đó là gián tiếp, vì những thay đổi trong GUI thực sự được đặt thành settings.json, một tập tin được ưu tiên hơn bitcoin.conf.)

Những thay đổi đối với truyền thông P2P

Logic mới để tải xuống tiêu đề

Bitcoin Core 24.0 mang đến bản cập nhật về cách các đồng nghiệp trong mạng bắt kịp đầu chuỗi, vì họ mới khởi động lần đầu tiên hoặc đã mất một thời gian dài mà không kết nối với mạng Bitcoin.

Trước bản phát hành này, một đồng nghiệp mới tham gia Bitcoin sẽ bắt đầu tìm kiếm các đồng nghiệp để tải xuống các tiêu đề khối. Lúc đầu, thiết bị ngang hàng không tải xuống toàn bộ khối vì nó được khuyến khích kiểm tra xem nó có tuân theo đúng chuỗi hay không trước khi tải xuống các khối cho chuỗi đó. Nếu không, nó có nguy cơ tải xuống các khối sai chuỗi, do đó lãng phí tài nguyên.

Mặc dù việc tải xuống các tiêu đề giúp tiết kiệm thời gian và tài nguyên, nhưng một cuộc tấn công cạn kiệt tài nguyên vẫn có thể xảy ra khi một tác nhân độc hại gửi thư rác ngang hàng với hàng triệu tiêu đề khối giả. Vì máy khách cần tải xuống và lưu các tiêu đề trên đĩa nên một lượng dữ liệu đủ lớn có thể làm tê liệt phần cứng của máy ngang hàng.

Để giảm thiểu mối đe dọa này, Bitcoin Core đã đưa ra khái niệm về trạm kiểm soát cách đây nhiều năm. Điểm kiểm tra xác định khối nào phải hiện diện trong một chuỗi để nó có giá trị. Tuy nhiên, giải pháp này cũng có vấn đề, vì các trạm kiểm soát có thể bị lạm dụng để khôi phục chuỗi dài nhất một cách hiệu quả. Khả năng như vậy là không mong muốn đối với Bitcoin, vì vậy một giải pháp khác phải được nghĩ ra. Nhập bản cập nhật mới này.

Với Bitcoin Core 24.0, giờ đây các đồng nghiệp tải xuống tiêu đề khối hai lần. Trong lần chạy đầu tiên, các tiêu đề được tải xuống và loại bỏ (không được lưu trên đĩa) cho đến khi tìm thấy đủ lượng công việc - điều này cho thấy chuỗi mà thiết bị ngang hàng đang theo dõi là hợp lệ. Trong trường hợp đó, thiết bị ngang hàng sẽ khởi động lại quá trình, nhưng bây giờ, ngoài việc tải xuống, thiết bị ngang hàng còn lưu các tiêu đề khối trên đĩa. Bằng cách chỉ lưu các tiêu đề vào đĩa khi thiết bị ngang hàng chắc chắn rằng chúng là một phần của chuỗi có bằng chứng hoạt động quan trọng, thiết bị ngang hàng sẽ tránh sử dụng hết lượng lớn dung lượng lưu trữ trong một cuộc tấn công cuối cùng chẳng hạn như cạn kiệt tài nguyên. Điều này cũng loại bỏ sự cần thiết của các điểm kiểm tra và được cho là một giải pháp tinh tế hơn vì nó không phụ thuộc vào đầu vào của con người để xác định tính hợp lệ của chuỗi.

Cảm ơn Aaron van Wirdum đã phản hồi.

Để biết thêm chi tiết và các thay đổi khác, hãy xem Bitcoin Core 24.0 ghi chú phát hành. Để tải xuống Bitcoin Core 24.0, hãy điều hướng tại đây. Thông tin chi tiết về Bitcoin Core 24.0 cũng được giải thích bằng âm thanh trong podcast Giải thích Bitcoin tập 65.

Dấu thời gian:

Thêm từ Tạp chí Bitcoin