-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Whitepaper_vi
Evan Duffield - [email protected] Daniel Diaz - [email protected]
Tóm tắt. Một loại tiền số dựa trên Bitcoin, một sáng chế của Satoshi Nakamoto, với rất nhiều cải tiến như mạng động lực bậc hai, được biết như là mạng các Masternode. Bao gồm cả các cải tiến như PrivateSend, để tăng tính thay thế được và InstantSend cho phép xác thực giao dịch một cách tức thời mà không cần một thẩm quyền tập trung nào.
Bitcoin [1] là một loại tiền điện tử nổi lên như là phương tiện trao đổi phổ biến và là loại tiền kỹ thuật số đầu tiên đã thu hút được một số lượng người dùng đáng kể [2]. Kể từ khi thành lập vào năm 2009, Bitcoin đã nhanh chóng phát triển đối với việc được chấp nhận rộng rãi và người bán hàng sử dụng [3]. Vấn đề chính của nó đối với sự chấp nhận Bitcoin là ở vấn đề của các điểm bán hàng (POS) đó là nó đòi hỏi thời gian để đợi mạng lưới xác thực một giao dịch là hợp lệ, thêm vào đó các công ty thanh toán đã tạo ra các phương thức cho phép những công ty bán hàng có thể nhận những giao dịch không xác thực, nhưng giải pháp đó đòi hỏi phải sử dụng một đối tác đáng tin cậy để làm trung gian cho các giao dịch bên ngoài giao thức.
Bitcoin cung cấp giải pháp giao dịch dưới dạng các bí danh trong sổ cái công khai, với quan hệ một-một giữa người gửi và người nhận. Cách này cung cấp một cuốn sổ vĩnh viễn ghi tất cả các giao dịch tại mọi thời điểm của mạng lưới [5]. Bitcoin được biết đến rộng rãi trong giới học thuật để cung cấp giải pháp với một mức độ riêng tư thấp, mặc dù có hạn chế này vẫn có nhiều người phó thác lịch sử các giao dịch tài chính của mình trong cuốn sổ cái vĩnh viễn gọi là blockchain này.
Dash là loại tiền điện tử mã hoá đầu tiên tập trung vào vấn đề riêng tư dựa trên nền tảng phát minh bởi Satoshi Nakamoto. Trong bài báo này chúng tôi đề xuất một loạt các cải tiến dựa trên những thành quả của Bitcoin đối với sự phi tập trung, tiền kỹ thuật số ẩn danh cao, các giao dịch tức thời mà không thể giả mạo dựa vào mạng lưới tạo động lực ngang hàng (P2) thứ hai cung cấp các loại dịch vụ cho mạng lưới của Dash.
Full Node là các máy chủ chạy trên mạng ngang hàng P2P, nó cho phép các máy ngang hàng sử dụng chúng để cập nhận những sự kiện trên mạng lưới. Những nút này cần rất nhiều băng thông và tài nguyên do đó nó cũng đòi hỏi những chi phí đáng kể. Kết quả là, trên mạng lưới Bitcoin sự suy giảm số lượng Full Node được diễn ra một cách liên tục và người ta đã quan sát nó trong một khoảng thời gian [7] và kết quả là việc truyền bá khối phải mất đến 40 giây [14]. Rất nhiều các giải pháp đã được đưa ra như một giải pháp trả thưởng mới của Microsoft Research [4] và chương trình khuyến khích Bitnodes [6].
Hình 1: Bitcoin Full nodes vào mùa xuân năm 2014
Những nút mạng này là rất quan trọng đối với sức khoẻ của mạng lưới. Chúng cung cấp cho các máy trạm với khả năng đồng bộ và phát tán thông điệp một cách nhanh chóng trên toàn mạng. Chúng tôi đề xuất thêm vào một mạng thứ cấp, được biết như là mạng lưới các Dash Masternode. Những nút mạng này sẽ có khả năng cao và cung cấp một mức độ dịch vụ nhất định cho toàn mạng để được quyền tham gia Chương trình Trả thưởng Masternode.
Có nhiều lý do cho việc giảm các full node trên mạng lưới của Bitcoin, đó là thiếu sự khuyến khích để người ta chạy full node. Qua thời gian chi phí để chạy một full node tăng lên khi mạng lưới được sử dụng nhiều lên, nó tạo nên đòi hỏi nhiều băng thông hơn và chi phí vận hành cũng tốn kém hơn. Khi chi phí tăng, những người vận hành hợp nhất các dịch vụ của họ cho tiết kiệm chi phí bằng việc chạy trên các phần mềm, phần cứng gọn nhẹ, và điều đó không giúp gì cho mạng lưới cả.
Masternode là các full node hay các nút mạng có đầy đủ dữ liệu chuỗi khối, cũng giống như mạng lưới của Bitcoin, ngoại trừ chúng cung cấp một mức độ dịch vụ nhất định cho mạng lưới và phải gắn với một khoản đặt cọc nhất định để được tham gia. Khoản đặt cọc là không thể bị tịch thu và an toàn trong suốt quá trình hoạt động của Masternode. Điều này cho phép các nhà đầu tư cung cấp dịch vụ cho mạng lưới, và kiếm được lãi suất cho khoản đầu tư của họ và nó cũng giảm sự biến động giá cho đồng tiền.
Để chạy một Masternode, thì nút phải có 1000 DASH. Khi kích hoạt, nút cung cấp dịch vụ cho các máy trạm trên mạng lưới và đổi lại là được trả công theo dạng giống như cổ tức. Điều này cho phép người dùng thanh toán cho những dịch vụ và thu lại lợi nhuận đầu tư của mình. Masternode cũng được trả từ phần thưởng khối, xấp xỉ 45% [footnote] của phần thưởng khối được trả cho các chủ Masternode.
Do thực tế là phần thưởng cho các Masternode là một lượng phần trăm cố định và số lượng các Masternode thì có thể thay đổi, do đó phần thưởng cho mỗi Masternode không cố định và tuỳ thuộc vào tổng số lượng Masternode đang hoạt động. Khoản thanh toán cho một ngày chạy chuẩn của một Masternode có thể được tính toán theo công thức sau:
Trong đó: n là số các Masternode mà một người vận hành kiểm soát t là tổng số Masternode r là phần thưởng khối hiện tại (hiện tại trung bình khoảng 5 DASH) b là số các khối trung bình mỗi ngày. Với mạng lưới Dash hiện nay thì số này thường là 576. a là mức trung bình được trả cho Masternode (45% giá trị trung bình cho phần thưởng khối)
Khoản tiền thu được khi đầu tư để chạy một Masternode có thể tính toán như sau
Trong đó các biến là tương tự như trên.
Chi phí liên quan đến việc chạy một Masternode tạo nên những giới hạn cứng và mềm cho các nút hoạt động trên mạng. Hiện tại với 5.3 triệu DASH lưu thông trên thị trường chỉ có thể có 5,300 Masternode chạy trên mạng, đó là giới hạn cứng. Giới hạn mềm được bởi giá tức là chi phí để thiết lập một Masternode và thanh khoản hạn chế của nó được lưu thông trên thị trường vì Dash được sử dụng như là một loại tiền chứ không chỉ là công cụ đầu tư.
Một thuật toán xác định đặc biệt được sử dụng để tạo ra thứ tự ngẫu nhiên cho các Masternode. Bằng việc sử dụng chuỗi hash từ thuật toán proof-of-work cho mỗi khối, tính an toàn cho chức năng này được cung cấp bởi mạng lưới các máy đào.
Thuật toán để chọn một Masternode như sau:
For(mastenode in masternodes){
current_score = masternode.CalculateScore();
if(current_score > best_score){
best_score = current_score;
winning_node = masternode;
}
}
CMasterNode::CalculateScore(){
pow_hash = GetProofOfWorkHash(nBlockHeight); // get the hash of this block
pow_hash_hash = Hash(pow_hash); //hash the POW hash to increase the entropy
difference = abs(pow_hash_hash - masternode_vin);
return difference;
}
Đoạn mã ví dụ có thể được mở rộng hơn nữa để cung cấp bảng xếp hạng của các Masternode, một Masternode "thứ 2", "thứ 3", "thứ tư" trong danh sách sẽ được chọn.
Hiện tại mạng lưới của Dash có ~2,400 Masternode hoạt động [8]. Bằng việc yêu cầu 1000DASH đặt cọc để được trở thành một Masternode hoạt động, chúng tôi tạo nên một hệ thống mà không ai có thể toàn quyền kiểm soát mạng lưới Masternode. Ví dụ, nếu một ai đó muốn kiểm soát 50% mạng lưới Masternode, họ phải mua 2,300,000 Dash từ thị trường tự do. Điều này làm cho giá coin tăng lên nhiều và nó sẽ trở nên bất khả thi để có được một lượng Dash mong muốn.
Với việc bổ sung thêm mạng lưới Masternode và yêu cầu đặt cọc, chúng ta có thể sử dụng mạng lưới thứ cấp này để cho những nhiệm vụ nhạy cảm cao theo một cách phi tập trung, mà ở đó không có thế lực nào có thể kiểm soát được đầu ra. Bằng việc lựa chọn N Masternode một cách ngẫu nhiên trong số các Masternode để thực hiện cùng một nhiệm vụ, những nút này có thể hoạt động giống như một người có uy tín, mà không cần toàn bộ mạng lưới phải cùng thực hiện nhiệm vụ đó.
Ví dụ, để thực hiện một quorum không cần tin cậy (xem InstantSend[9]), mà nó sử dụng quorum để phê duyệt các giao dịch và khoá đầu vào hoặc thực hiện proof-of-service[10].
Một ví dụ khác sử dụng cho các quorum không cần tin cậy có thể bao gồm việc sử dụng mạng lưới Masternode giống như là một tiên tri phi tập trung cho các thị trường tài chính, tạo ra các hợp đồng phi tập trung an toàn là một điều hoàn toàn có thể. Giống như ví dụ một hợp đồng, nếu cổ phiếu Apple (AAPL) vượt quá $300 vào ngày 31 tháng 12 năm 2016 thì trả tiền cho địa chỉ A, ngược lại trả tiền cho địa chỉ B.
Các Masternode có thể cung cấp nhiều các dịch vụ mở rộng cho mạng lưới. Thực hiện đầu tiên của chúng tôi bao gồm PrivateSend và InstantSend như là một chứng minh cho khái niệm này. Bằng việc sử dụng cái mà chúng tôi gọi là proof-of-service, chúng ta có thể yêu cầu các nút được online, và đáp ứng thậm chí ở mức tương ứng với block height.
Những nhân tố xấu cũng có thể chạy các Masternode, nhưng không cung cấp bất kỳ chất lượng dịch vụ theo như yêu cầu của cả mạng lưới. Để giảm khả năng mọi người sử dụng hệ thống để các nút lợi thế của họ phải ping toàn bộ còn lại của mạng lưới để đảm bảo rằng chúng vẫn đang hoạt động. Công việc này được thực hiện bởi mạng lưới các Masternode bằng cách chọn ra 2 quorum cho mỗi khối. Quorum A kiểm tra dịch vụ của Quorum B cho mỗi khối. Quorum A là các nút gần nhất với khối băm hiện tại, trong khi Quorum B là các nút xa nhất với khối băm đã nói.
Masternode A (1) kiểm tra Masternode B (rank 2300)
Masternode A (2) kiểm tra Masternode B (rank 2299)
Masternode A (3) kiểm tra Masternode B (rank 2298)
Tất cả các công việc được thực hiện để kiểm tra mạng để chứng minh rằng các nút đang hoạt động được thực hiện bởi chính bản thân mạng Masternode. Xấp xỉ 1% của mạng lưới sẽ được kiểm tra mỗi khối. Điều này dẫn đến toàn mạng được kiểm tra sáu lần mỗi ngày. Để giữ cho hệ thống đảm bảo tính không cần tin cậy, chúng tôi lựa chọn các nút một cách ngẫu nhiên thông qua hệ thống Quorum, rồi chúng tôi cũng yêu cầu tối thiểu sáu vi phạm để huỷ bỏ một nút.
Để đánh lừa hệ thống, kẻ tấn công cần phải được chọn sáu lần trong một hàng. Nếu không, những vi phạm sẽ bị huỷ bỏ bởi hệ thống giống như các nút khác được chọn bởi hệ thống quorum.
Kẻ tấn công kiểm soát các Masternode / Tổng số Masternode | Thời gian cần phải chọn trong một hàng | Xác xuất thành công | Lượng DASH cần có |
---|---|---|---|
1/2300 | 6 | 6.75e-21 | 1,000DASH |
10/2300 | 6 | 6.75e-15 | 10,000DASH |
100/2300 | 6 | 6.75e-09 | 100,000DASH |
500/2300 | 6 | 0.01055% | 500,000DASH |
1000/2300 | 6 | 0.6755% | 1,000,000DASH |
Bảng 1. Xác suất đánh lừa hệ thống đại diện cho một Masternode đã thất bại proof-of-service
Trong đó:
n là tổng số nút bị kiểm soát bởi kẻ tấn công
t là tổng số các Masternode trong toàn mạng
r là độ sâu của chuỗi
Việc lựa chọn các Masternodes là giả ngẫu nhiên dựa trên hệ thống Quorum
Các Masternode được truyền bá trên khắp mạng sử dụng một loạt các giao thức mở rộng bao gồm thông điệp công bố Masternode và thông điệp ping Masternode. Hai thông điệp này là tất cả những gì cần thiết để làm cho một nút kích hoạt trên mạng, ngoài những thông điệp này còn có những thông điệp khác cho việc thực hiện yêu cầu proof-of-service, PrivateSend và InstantSend.
Các Masternode ban đầu được hình thành bằng cách gửi 1.000DASH đến một địa chỉ cụ thể trong một ví nó sẽ "kích hoạt" nút đó làm cho nó có thể được truyền qua mạng. Khóa riêng thứ hai được tạo ra để sử dụng cho việc ký tất cả các thông điệp khác. Khoá thứ hai cho phép chiếc ví có thể vẫn chạy ở chế độ độc lập trong khi nó vẫn đang hoàn toàn bị khoá.
Một chế độ lạnh có thể được thực hiện bằng cách sử dụng khóa riêng thứ cấp trên hai máy riêng biệt. Phần mềm ví "nóng" ký với 1,000DASH đầu vào bao gồm chữ ký khoá riêng thứ cấp trong thông điệp. Ngay sau đó, ví "lạnh" nhìn thấy một thông điệp có chứa khoá thứ cấp của nó và kích hoạt một Masternode. Điều này cho phép ví nóng có thể không cần kích hoạt (phần mềm có thể tắt) mà không để lại khả năng cho kẻ tấn công dành quyền truy cập đến 1,000DASH bằng việc dành quyền truy cập tới Masternode sau khi đã kích hoạt.
Lúc khởi động, một Masternode gửi một thông điệp “Masternode Announce” lên mạng có chứa:
Thông điệp: (đầu vào 1K DASH, Địa chỉ IP cố định, Chữ ký, Thời gian ký, khoá công khai 1K Dash, Khoá công khai thứ hai, Khoá công khai ủng hộ, Phần trăm ủng hộ)
Mỗi 15 phút sau đó, một thông báo ping được gửi đi chứng minh rằng nút vẫn còn sống.
Thông điệp: (Đầu vào 1K DASH, Chữ ký (sử dụng khoá thứ hai), Thời gian ký, Stop)
Sau một thời gian gọi là thời gian sống hết hạn, mạng lưới sẽ loại bỏ các nút không hoạt động khỏi mạng, điều này làm các nút đó không được sử dụng bởi các máy trạm hay được trả công. Các nút cũng có thể ping mạng lưới một cách liên tục, nhưng nếu chúng không có các cổng mở, chúng sẽ bị gán cờ là không hoạt động và sẽ không được trả công.
Một phần mềm mới tham gia mạng lưới Dash phải nhận thức về các Masternode hiện đang hoạt động trên mạng để có thể sử dụng các dịch vụ của nó. Ngay sau khi nó tham gia mạng lưới, có một lệnh được gửi đến các máy ngang hàng hỏi về danh sách các Masternode. Một đối tượng cache được sử dụng cho các máy để ghi nhớ các Masternode và tình trạng hiện tại của chúng, và khi các phần mềm của người dùng khởi động lại chúng chỉ cần đơn giản tải lại file này thay vì phải hỏi xin danh sách các Masternode.
Để đảm bảo rằng mỗi Masternode được trả một cách công bằng theo như phần thưởng khối, mạng lưới phải bắt các khối đó phải trả cho đúng Masternode. Nếu một miner không tuân theo thì những khối đó sẽ bị mạng lưới từ chối, những trò gian lận khác cũng không được khuyến khích.
Chúng tôi đề xuất chiến thuật mà các Masternode lập thành nên các quorums để chọn một Masternode chiến thắng và quảng bá thông điệp của chúng. Sau N thông báo đã được quảng bá để chọn cùng một người thụ hưởng mục tiêu, một đồng thuận sẽ được hình thành và khối đó sẽ được yêu cầu trả thưởng cho Masternode đó.
Khi đào coin trên mạng, phần mềm pool (các website kết hợp các nỗ lực của những thợ đào riêng lẻ) sử dụng giao diện lập trình ứng dụng RPC API để lấy thông tin về làm thế nào để tạo một khối. Để trả công cho Masternode, giao diện này phải được mở rộng bằng việc thêm vào người nhận thứ hai cho GetBlockTemplate. Các Pool sau đó truyền bá những khối đã được đào thành công, với việc chia khoản thanh toán giữa chúng với một Masternode.
Chúng tôi tin tưởng rằng quan trọng là có được một cài đặt chuẩn mực về sự không cần tin cậy để cải thiện tính riêng tư cho người dùng trong phần mềm chuẩn nhằm cung cấp một mức độ riêng tư cao. Những phần mềm khác như Electrum, iPhone và Android cũng sẽ có cùng một lớp ẩn danh thực hiện một cách trực tiếp và sử dụng giao thức mở rộng. Điều này cho phép người dùng có một trải nghiệm chung về ẩn danh ngân quỹ qua việc sử dụng một hệ thống đã được hiểu rõ.
PrivateSend là một phiên bản cải tiến và mở rộng của thuật toán CoinJoin. Ngoài khái nhiệm cốt lõi của CoinJoin, chúng tôi sử dụng một loạt những cải tiến như khả năng phi tập, tính ẩn danh mạnh bằng việc sử dụng một cách tiếp cận xâu chuỗi, phân thành các mệnh giá, và việc xáo trộn thụ động trước thời gian.
Thách thức lớn nhất khi cải thiện tính riêng tư và tính dễ chuyển đổi của một loại tiền điện tử là làm theo cách mà nó không che mờ toàn bộ chuỗi khối. Trong các loại tiền điện tử dựa trên Bitcoin, người ta có thể cho biết đầu ra nào là chưa được chi tiêu, còn đầu ra nào thì đã chi tiêu, thông thường được gọi là UTXO, nó có nghĩa là các đầu ra giao dịch chưa tiêu. Điều này được thể hiện ở trên sổ cái công khai nó cho phép bất cứ người dùng nào cũng có thể hành động giống như người đảm bảo cho tính toàn vẹn của các giao dịch. Giao thức Bitcoin được thiết kế để hoạt động mà không có sự tham gia của các đối tác đáng tin cậy, khi vắng mặt của họ, điều quan trọng là khả năng kiểm toán vẫn dễ dàng tiếp cận được với mọi người dùng thông qua blockchain công khai. Mục đích của chúng tôi là cải thiện tính riêng tư và tính có thể chuyển đổi mà không làm mất đi những yếu tố then chốt mà chúng tôi tin tưởng rằng chúng tạo nên sự thành công của đồng tiền.
Bằng việc có một dịch vụ trộn phi tập trung bên trong đồng tiền chúng ta có được khả năng giữ cho đồng tiền có được tính có thể thay thế một cách hoàn hảo. Tính có thể thay thế là một đặc tính của tiền, nó chỉ ra rằng tất cả các đơn vị của một loại tiền là bình đẳng. Khi bạn nhận được tiền ở trong một loại tiền tệ, nó không nên đi kèm với bất kỳ lịch sử sử dụng nào của người dùng trước hoặc người dùng có một cách nào đó đơn giản để loại bỏ bản thân mình khỏi liên đới với những lịch sử đó, điều này giữ cho mọi đồng coin được bình đẳng. Đồng thời bất kỳ người dùng nào cũng có thể hành động như một kiểm toán viên để đảm bảo tính toàn vẹn về mặt tài chính của sổ cái công khai mà không ảnh hưởng đến sự riêng tư của người khác.
Để cải thiện tính thay thế và giữ tính toàn vẹn của blockchain chung, chúng tôi đề xuất sử dụng chiến thuật trộn trước thời gian không cần tin cậy phi tập trung. Để giữ được tính thay thế cho đồng tiền một cách hiệu quả, dịch vụ này được xây dựng trực tiếp vào trong đồng tiền, để nó dễ sử dụng và an toàn cho người dùng bình thường.
Chiến lược chung trong việc áp dụng CoinJoin với mạng lưới Bitcoin hiện tại chỉ đơn giản là hợp nhất các giao dịch với nhau. Điều này cho người dùng rất nhiều phương thức khác nhau thông qua việc sử dụng các coin của người dùng vào các giao dịch được nối lại với nhau.
Hình 2: Một ví dụ với giao dịch CoinJoin với 2 người dùng [11][12]
Trong giao dịch này, 0.05BTC được gửi thông qua bộ trộn. Để xác định được danh tính của nguồn tiền, ta chỉ đơn giản thêm vào những giá trị ở bên phải đến khi chúng khớp với những giá trị ở bên trái.
Tách riêng các phần của giao dịch:
- 0.05 + 0.0499 + 0.0001(fee) = 0.10BTC.
- 0.0499 + 0.05940182 + 0.0001(phí) = 0.10940182BTC.
Điều này làm độ khó tăng theo số mũ khi có thêm người dùng tham gia trộn. Tuy nhiên, các phiên trộn này có thể tra ngược trong quá khứ để chống ẩn danh tại bất kỳ thời điểm nào trong tương lai.
Trong triển khai đã được đề xuất khác của CoinJoin, có thể một người dùng ẩn danh tiền rồi cuối cùng gửi khoản tiền lẻ trả lại từ giao dịch đó đến một sàn giao dịch hoặc một thực thể khaccs mà biết danh tính người dùng. Điều này phá vỡ tính ẩn danh và cho phép thực thể đó truy ngược thông qua các giao dịch của người dùng. Chúng tôi gọi kiểu tấn công này là "Liên kết Chuyển tiếp":
Hình 3: Liên kết thay đổi chuyển tiếp
Trong ví dụ này, Alice ẩn danh 1.2BTC, nó cho hai đầu ra là 1BTC và 0.2BTC. Sau đó cô ta tiêu 0.7BTC từ đầu ra 1BTC, và nhận lại phần lẻ là 0.3BTC. Phần 0.3BTC đó sẽ đi vào nguồn có thể xác định danh tính, xác nhận Alice đã tiêu 0.7BTC trong giao dịch trước đó.
Để xác định người gửi của một giao dịch ẩn danh, bắt đầu tại giao dịch ở "sàn giao dịch" và truy ngược trong chuỗi khối đến tận khi bạn tìm được "Alice gửi 0.7BTC một cách ẩn danh". Giống như sàn giao dịch, bạn biết rằng đó là người dùng của bạn người mà mới mua gì đó một cách ẩn danh, bởi vậy phá vỡ tính ẩn danh một cách hoàn toàn. Chúng tôi gọi cách tấn công này là "Thông qua Liên kết Thay đổi".
Hình 4: Thông qua thay đổi liên kết
Trong ví dụ thứ hai, Alice mua 1.2 BTC từ coinbase, sau đó ẩn danh lượng coin này vào một đầu ra 1BTC. Sau đó cô tiêu 1BTC, và nhận lại phần lẻ trong một khoản 0.3BTC và sau đó kết hợp nó với 0.2BTC của phần lẻ trước đó.
Bằng việc kết hợp tiền lẻ trả lại từ các giao dịch ẩn danh (0.3BTC) và các phần lẻ nhận được từ các giao dịch CoinJoin, bạn có thể liên kết toàn bộ lịch sử trước đó và sau đó, và hoàn toàn phá vỡ sự ẩn danh.
PrivateSend sử dụng thực tế là một giao dịch có thể tạo ra bởi nhiều bên và gửi cho nhiều bên để hợp nhất nhiều quỹ với nhau theo một cách mà ở đó họ không thể tách ra được sau đó. Cho rằng tất cả các giao dịch PrivateSend được thiết lập để người dùng tự trả cho chính bản thân, hệ thống được thiết lập để chống lại việc người dùng đánh cắp coin và do đó tiền của người dùng luôn luôn được đảm bảo an toàn. Hiện tại để trộn sử dụng PrivateSend cần có ít nhất ba bên tham gia.
Hình 5: Ba người dùng gửi ngân quỹ đã phân mệnh giá vào một giao dịch chung. Những người dùng tự trả lại cho chính bản thân mình theo cách các đầu ra mới, mà đã được xáo trộn ngẫu nhiên thứ tự.
Để cải thiện tính riêng tư của hệ thống như một tổng thể chúng tôi đề xuất sử dụng những mệnh giá phổ thông như 0.1DASH, 1DASH, 10DASH và 100DASH. Trong mỗi phiên trộn, tất cả người dùng sẽ gửi cùng các mệ giá đó như các đầu vào và đầu ra. Ngoài các mệnh giá, các khoản phí phải được loại bỏ khỏi các giao dịch và tính phí cho số lượng lớn trong các giao dịch không thể liên kết riêng biệt và lẻ tẻ.
Để giải quyết các cuộc tấn công từ chối dịch vụ DOS có thể xảy ra, chúng tôi đề xuất tất cả người dùng gửi một giao dịch như là một khoản đặt cọc vào bể khi tham gia. Giao dịch này sẽ được giử cho chính họ và sẽ trả một khoản phí cao cho các thợ mỏ. Trong trường hợp khi một người dùng gửi một yêu cầu đến bể trộn, họ phải cung cấp khoản đặt cọc tại đầu phiên giao dịch này. Tại bất kỳ thời điểm nào nếu một người dùng không hợp tác, ví dụ bằng cách từ chối ký, giao dịch đặt cọc sẽ tự động được phát tán. Nó sẽ làm cho rất tốn kém để duy trì cuộc tấn công vào tính riêng tư của mạng lưới.
PrivateSend được giới hạn với 1,000DASH cho mỗi phiên và yêu cầu phải có nhiều phiên để ẩn danh triệt để một lượng tiền đáng kể. Để làm cho trải nghiệm người dùng được dễ dàng và làm khó khăn cho các cuộc tấn công thời gian, PrivateSend chạy trên một chế độ thụ động. Trong những khoảng thời gian định sẵn phần mềm của người dùng sẽ yêu cầu kết nối các phần mềm của những người dùng khác thông qua một Masternode. Khi nhập vào Masternode, một đối tượng hàng đợi sẽ được lan truyền khắp mạng lưới nhằm chi tiết các mệnh giá người dùng tìm kiếm để ẩn danh, nhưng không có thông tin nào dùng để xác định người dùng được sử dụng.
Mỗi phiên PrivateSend có thể được coi là một sự kiện độc lập nhằm tăng sự ẩn danh của các khoản tiền của người dùng. Tuy nhiên, mỗi phiên được giới hạn trong ba khách hàng, vì vậy một người quan sát có một đến ba cơ hội để có thể theo dõi một giao dịch. Để tăng chất lượng của ẩn danh cung cấp, một cách tiếp cận chuỗi được sử dụng, quỹ được gửi qua nhiều Masternodes, cái này tiếp theo cái khác.
Độ sâu của chuỗi | Số người dùng có thể |
---|---|
2 | 9 |
4 | 81 |
8 | 6561 |
Bảng 2. Bao nhiêu người dùng có thể liên quan vào N phiên trộn.
Khi các giao dịch được trộn, Masternode có thể "rình mò" ngân quỹ của người dùng khi nó được chuyển qua. Điều này không được xem như là giới hạn nghiêm trọng vì có yêu cầu mỗi Masternode cần có khoản đặt cọc 1000 DASH và thực tế là người dùng sử dụng các Masternode một cách ngẫu nhiên để chúng xử lý các ghép nối giao dịch. Xác xuất của một giao dịch trong chuỗi sự kiện dây chuyền có thể được tính toán như sau:
Kẻ tấn công kiểm soát các Masternode / Tổng số Masternode | Độ sâu của chuỗi | Xác xuất thành công | Cần có lượng Dash |
---|---|---|---|
10/1010 | 2 | 9.80e-05 | 10,000DASH |
10/1010 | 4 | 9.60e-09 | 10,000DASH |
10/1010 | 8 | 9.51e-11 | 10,000DASH |
100/1100 | 2 | 8.26e-03 | 100,000DASH |
100/1100 | 4 | 6.83e-05 | 100,000DASH |
100/1100 | 8 | 4.66e-09 | 100,000DASH |
1000/2000 | 2 | 25% | 1,000,000DASH |
1000/2000 | 4 | 6.25% | 1,000,000DASH |
1000/2000 | 8 | 0.39% | 1,000,000DASH |
2000/3000 | 2 | 44.4% | 2,000,000DASH |
2000/3000 | 4 | 19.75% | 2,000,000DASH |
2000/3000 | 8 | 3.90% | 2,000,000DASH |
Bảng 3. Xác xuất có thể theo dõi một giao dịch PrivateSend trên mạng khi kẻ tấn công kiểm soát được N nút.
Trong đó:
n là tổng số nút bị kiểm soát bởi kẻ tấn công
t là tổng số các Masternode trong toàn mạng
r là độ sâu của chuỗi
Việc chọn các Masternode là ngẫu nhiên.
Hãy cân nhắc đến nguồn cung hạn chế của DASH (5.3 triệu tại thời điểm của bài viết này, vào tháng tư năm 2015) và lượng thanh khoản thấp trên thị trường, nó trở nên bất khả thi để kiếm được một lượng đủ các Masternode để thành công trong việc tấn công như vậy.
Việc mở rộng hệ thống bằng cách làm mù các Masternodes đối với các giao dịch diễn ra trên nút của chúng cũng sẽ tăng cường đáng kể tính bảo mật của hệ thống.
Trong phần 3.4 chúng tôi miêu tả xác xuất của một giao dịch đơn lẻ thông qua nhiều phiên trộn PrivateSend. Điều này có giải quyết bằng việc làm mù các Masternode, và do đó chúng không thể nhìn thấy đầu vào/đầu ra nào thuộc về người dùng nào. Để làm điều đó chúng tôi đề xuất một hệ thống chuyển tiếp đơn giản mà người dùng có thể sử dụng để bảo vệ danh tính của mình.
Thay vì một người dùng gửi đi những đầu vào và đầu ra trực tiếp vào bể, họ sẽ nhặt ra một Masternode ngẫu nhiên từ mạng và yêu cầu nó chuyển tiếp những đầu vào/đẩu ra/chữ ký đến Masternode đích. Điều đó có nghĩa là Masternode sẽ nhận N tập các đầu vào/đầu ra và N tập các chữ ký. Mỗi tập thuộc về một trong số những người dùng, nhưng Masternode không biết cái nào thuộc về ai.
Bằng việc sử dụng Masternode quorum, người dùng có thể gửi và nhận ngay lập tức những giao dịch không thể đảo ngược được. Khi một quorum được hình thành, thì các đầu vào của giao dịch được khoá lại chỉ có thể chi tiêu trong một giao dịch cụ thể, một khoá giao dịch mất khoảng bốn giây để thiết lập trên mạng. Nếu đạt được sự đồng thuận về việc khoá bởi mạng Masternode, tất cả các giao dịch xung đột hoặc các khối xung đột sẽ bị từ chối sau đó, trừ khi chúng khớp chính xác với mã giao dịch được khoá.
Nó cho phép những người bán hàng sử dụng các thiết bị di động thay cho các hệ thống POS truyền thống trong thương mại của thế giới thực và nhanh chóng giải quyết những giao dịch thương mại trực tiếp mặt đối mặt giống như các loại tiền truyền thống. Điều này được thực hiện mà không cần cấp có thẩm quyền tập trung nào. Một cái nhìn tổng thể kỹ càng hơn về tính năng này có thể tìm được trong bản cáo bạch về InstantSend [9].
x11 là một thuật toán băm được sử dụng rộng rãi, nó sử dụng một cách tiếp cận khác, được biết đến như là một chuỗi các thuật toán. x11 bao gồm tất cả 11 thuật toán tranh giải với SHA3[13], kết quả mỗi phép băm sẽ được dùng làm đầu vào cho phép băm tiếp theo trong chuỗi. Bằng việc sử dụng nhiều thuật toán khác nhau, khả năng để tạo ra một ASIC sẽ bị giảm đi và nó chỉ đến trong giai đoạn sau của vòng đời.
Trong vòng đời của Bitcoin, việc đào coin bắt đầu với những người coi nó như sở thích mà họ sử dụng các bộ vi xử lý (CPU) để đào tiền, sau đó một thời gian ngắn các phần mềm sử dụng bộ xử lý đồ hoạ (GPU) được tạo ra, nó nhanh chóng thay thế các CPU. Vài năm sau chu kỳ GPU, ASIC hay còn gọi là Mạch Tích hợp cho Ứng dụng Cụ thể đã được tạo ra và nó nhanh chóng thay thế cho các GPU.
Do tính chất phức tạp và kích cỡ chip cần thiết để tạo một ASIC cho đào coin với thuật toán X11, chúng tôi hy vọng rằng nó sẽ cần thời gian nhiều hơn đối với Bitcoin, điều này cho phép những người đam mê được dự phần trong việc đào coin trong một khoảng thời gian dài hơn. Chúng tôi tin tưởng rằng điều này rất quan trọng trong việc có được một sự phân phối coin và sự tăng trưởng tốt cho đồng tiền số này.
Một lợi ích khác nữa của cách tiếp cận chuỗi các thuật toán hash đó là cho phép các CPU cao cấp cũng có được kết quả tương tự như các GPU. Và các GPU cũng chạy mát hơn 30-50% mà sử dụng ít công suất hơn so với thuật toán Scrypt đã được sử dụng trong nhiều loại tiền số hiện nay.
Một cách tiếp cận khác để hạn chế lạm phát của việc khai thác được áp dụng vào Dash, sử dụng việc giảm nguồn cung 7% mỗi năm. Điều này trái ngược với cách giảm một nửa được thực hiện bởi các đồng tiền khác. Ngoài ra nguồn cung cho mỗi khối là cố định; nên càng có nhiều máy đào thì phần thưởng đào càng giảm đi.
Việc sinh thêm Dash được lập trình để tiếp diễn trong thế kỷ này và trong thế kỷ sau và giảm dần xuống đến cuối cùng là vào năm 2150 thì việc sinh thêm coin mới dừng lại.
Hình 6: Phân bổ phần thưởng đào coin
Bài viết này giới thiệu rất nhiều khái niệm để cải tiến thiết kế của bitcoin bằng việc tăng tính riêng tư và tính có thể thay thế được cho những người dùng bình thường, giảm sự biến động giá và truyền bá thông điệp lên toàn mạng được nhanh chóng hơn. Tất cả điều này được thực hiện nhờ sử dụng mô hình khuyến khích hai tầng, chứ không phải sử dụng mô hình một tầng như hiện tại trên nhiều loại tiền số như Bitcoin. Bằng việc sử dụng thiết kế mạng thay thế này nó cho phép có thể thêm vào rất nhiều loại dịch vụ như trộn coin phi tập trung, giao dịch tức thời, và những tiên tri phi tập trung sử dụng các quorum của masternode.
- A peer-to-peer electronic cash system (2008)
- http://eprints.qut.edu.au/69169/1/Boyen_accepted_draft.pdf
- https://www.cryptocoinsnews.com/3-solutions-instant-bitcoin-confirmations/
- http://research.microsoft.com/pubs/156072/bitcoin.pdf
- http://www0.cs.ucl.ac.uk/staff/s.meiklejohn/files/imc13.pdf
- https://getaddr.bitnodes.io/nodes/incentive/
- https://medium.com/zapchain-magazine/why-don-t-people-run-bitcoin-nodes-anymore-d4da0b45aae5
- https://dashninja.pl/
- https://www.dash.org/wp-content/uploads/2014/09/InstantTX.pdf
- https://github.com/dashpay/dash/blob/master/src/Masternode-pos.cpp
- https://blockchain.info/tx/4eb3b2f9fe597d0aef6e43b58bbaa7b8fb727e645fa89f922952f3e57ee6d603
- https://blockchain.info/tx/1694122b34c8543d01ad422ce600d59f8d8fde495ac9ddd894edc7139aed7617
- http://en.wikipedia.org/wiki/NIST_hash_function_competition#Finalists
- http://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf