ನಾವು Monero blockchain ಕುರಿತು ನಮ್ಮ ಸರಣಿಯನ್ನು ಮುಂದುವರಿಸುತ್ತೇವೆ ಮತ್ತು ಇಂದಿನ ಲೇಖನವು RingCT (ರಿಂಗ್ ಗೌಪ್ಯ ವಹಿವಾಟುಗಳು) ಪ್ರೋಟೋಕಾಲ್ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಇದು ಗೌಪ್ಯ ವಹಿವಾಟುಗಳು ಮತ್ತು ಹೊಸ ರಿಂಗ್ ಸಹಿಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ಇಂಟರ್ನೆಟ್ನಲ್ಲಿ ಕಡಿಮೆ ಮಾಹಿತಿಯಿದೆ ಮತ್ತು ನಾವು ಈ ಅಂತರವನ್ನು ತುಂಬಲು ಪ್ರಯತ್ನಿಸಿದ್ದೇವೆ.
ಈ ಪ್ರೋಟೋಕಾಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೆಟ್ವರ್ಕ್ ವರ್ಗಾವಣೆ ಮೊತ್ತವನ್ನು ಹೇಗೆ ಮರೆಮಾಡುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ನಾವು ಮಾತನಾಡುತ್ತೇವೆ, ಅವರು ಕ್ಲಾಸಿಕ್ ಕ್ರಿಪ್ಟೋನೋಟ್ ರಿಂಗ್ ಸಿಗ್ನೇಚರ್ಗಳನ್ನು ಏಕೆ ತ್ಯಜಿಸಿದರು ಮತ್ತು ಈ ತಂತ್ರಜ್ಞಾನವು ಹೇಗೆ ಮತ್ತಷ್ಟು ಅಭಿವೃದ್ಧಿಗೊಳ್ಳುತ್ತದೆ.
ಈ ಪ್ರೋಟೋಕಾಲ್ ಮೊನೆರೊದಲ್ಲಿನ ಅತ್ಯಂತ ಸಂಕೀರ್ಣ ತಂತ್ರಜ್ಞಾನಗಳಲ್ಲಿ ಒಂದಾಗಿರುವುದರಿಂದ, ಓದುಗರಿಗೆ ಈ ಬ್ಲಾಕ್ಚೈನ್ನ ವಿನ್ಯಾಸದ ಮೂಲಭೂತ ಜ್ಞಾನ ಮತ್ತು ಎಲಿಪ್ಟಿಕ್ ಕರ್ವ್ ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯ ಹಾದುಹೋಗುವ ಜ್ಞಾನದ ಅಗತ್ಯವಿರುತ್ತದೆ (ಈ ಜ್ಞಾನವನ್ನು ಬ್ರಷ್ ಮಾಡಲು, ನೀವು ನಮ್ಮ ಮೊದಲ ಅಧ್ಯಾಯಗಳನ್ನು ಓದಬಹುದು. ಬಗ್ಗೆ ಹಿಂದಿನ ಲೇಖನ
RingCT ಪ್ರೋಟೋಕಾಲ್
ಕ್ರಿಪ್ಟೋನೋಟ್ ಕರೆನ್ಸಿಗಳ ಮೇಲಿನ ಸಂಭವನೀಯ ದಾಳಿಯೆಂದರೆ ಕಳುಹಿಸಿದ ವಹಿವಾಟಿನ ಮೊತ್ತ ಮತ್ತು ಸಮಯದ ಜ್ಞಾನದ ಆಧಾರದ ಮೇಲೆ ಬ್ಲಾಕ್ಚೈನ್ ವಿಶ್ಲೇಷಣೆ. ಇದು ಅನುಮತಿಸುತ್ತದೆ
ಮೊತ್ತವನ್ನು ಮರೆಮಾಚುವ ಕಲ್ಪನೆಯು ಹೊಸದಲ್ಲ ಎಂಬುದು ಗಮನಿಸಬೇಕಾದ ಸಂಗತಿ. ಬಿಟ್ಕಾಯಿನ್ ಕೋರ್ ಡೆವಲಪರ್ ಗ್ರೆಗ್ ಮ್ಯಾಕ್ಸ್ವೆಲ್ ಇದನ್ನು ಮೊದಲು ವಿವರಿಸಿದವರಲ್ಲಿ ಒಬ್ಬರು
ಇತರ ವಿಷಯಗಳ ಜೊತೆಗೆ, ಪ್ರೋಟೋಕಾಲ್ ಧೂಳಿನ ಉತ್ಪನ್ನಗಳ ಮಿಶ್ರಣದಲ್ಲಿನ ಸಮಸ್ಯೆಗಳನ್ನು ತೊಡೆದುಹಾಕಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ - ಸಣ್ಣ ಪ್ರಮಾಣದ (ಸಾಮಾನ್ಯವಾಗಿ ವಹಿವಾಟಿನಿಂದ ಬದಲಾವಣೆಯ ರೂಪದಲ್ಲಿ ಸ್ವೀಕರಿಸಿದ) ಔಟ್ಪುಟ್ಗಳು, ಅವುಗಳು ಯೋಗ್ಯವಾಗಿರುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಸಮಸ್ಯೆಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತವೆ.
ಜನವರಿ 2017 ರಲ್ಲಿ, ಮೊನೆರೊ ನೆಟ್ವರ್ಕ್ನ ಹಾರ್ಡ್ ಫೋರ್ಕ್ ನಡೆಯಿತು, ಗೌಪ್ಯ ವಹಿವಾಟುಗಳ ಐಚ್ಛಿಕ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ. ಮತ್ತು ಈಗಾಗಲೇ ಅದೇ ವರ್ಷದ ಸೆಪ್ಟೆಂಬರ್ನಲ್ಲಿ, ಆವೃತ್ತಿ 6 ಹಾರ್ಡ್ ಫೋರ್ಕ್ನೊಂದಿಗೆ, ಅಂತಹ ವಹಿವಾಟುಗಳು ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ಮಾತ್ರ ಅನುಮತಿಸಿದವು.
ರಿಂಗ್ಸಿಟಿ ಏಕಕಾಲದಲ್ಲಿ ಹಲವಾರು ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಬಳಸುತ್ತದೆ: ಬಹುಪದರದ ಲಿಂಕ್ ಮಾಡಲಾದ ಸ್ವಾಭಾವಿಕ ಅನಾಮಧೇಯ ಗುಂಪು ಸಹಿಗಳು (ಮಲ್ಟಿಲೇಯರ್ಡ್ ಲಿಂಕ್ ಮಾಡಬಹುದಾದ ಸ್ವಾಭಾವಿಕ ಅನಾಮಧೇಯ ಗುಂಪು ಸಹಿ, ಇನ್ನು ಮುಂದೆ MLSAG ಎಂದು ಉಲ್ಲೇಖಿಸಲಾಗುತ್ತದೆ), ಬದ್ಧತೆಯ ಯೋಜನೆ (ಪೆಡರ್ಸನ್ ಕಮಿಟ್ಮೆಂಟ್ಗಳು) ಮತ್ತು ಶ್ರೇಣಿ ಪುರಾವೆಗಳು (ಈ ಪದವು ರಷ್ಯನ್ ಭಾಷೆಗೆ ಸ್ಥಾಪಿತ ಅನುವಾದವನ್ನು ಹೊಂದಿಲ್ಲ) .
RingCT ಪ್ರೋಟೋಕಾಲ್ ಎರಡು ರೀತಿಯ ಅನಾಮಧೇಯ ವಹಿವಾಟುಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ: ಸರಳ ಮತ್ತು ಪೂರ್ಣ. ವ್ಯವಹಾರವು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಇನ್ಪುಟ್ ಅನ್ನು ಬಳಸಿದಾಗ ವ್ಯಾಲೆಟ್ ಮೊದಲನೆಯದನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ, ಎರಡನೆಯದು - ವಿರುದ್ಧ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ. ಅವರು ವಹಿವಾಟಿನ ಮೊತ್ತದ ಮೌಲ್ಯೀಕರಣ ಮತ್ತು MLSAG ಸಹಿಯೊಂದಿಗೆ ಸಹಿ ಮಾಡಲಾದ ಡೇಟಾದಲ್ಲಿ ಭಿನ್ನವಾಗಿರುತ್ತವೆ (ನಾವು ಇದರ ಬಗ್ಗೆ ಕೆಳಗೆ ಹೆಚ್ಚು ಮಾತನಾಡುತ್ತೇವೆ). ಇದಲ್ಲದೆ, ಪೂರ್ಣ ರೀತಿಯ ವಹಿವಾಟುಗಳನ್ನು ಯಾವುದೇ ಸಂಖ್ಯೆಯ ಒಳಹರಿವಿನೊಂದಿಗೆ ರಚಿಸಬಹುದು, ಯಾವುದೇ ಮೂಲಭೂತ ವ್ಯತ್ಯಾಸವಿಲ್ಲ. ಪುಸ್ತಕದಲ್ಲಿ
MLSAG ಸಹಿ
ಸಹಿ ಮಾಡಿದ ವಹಿವಾಟು ಇನ್ಪುಟ್ಗಳು ಯಾವುವು ಎಂಬುದನ್ನು ನೆನಪಿಸೋಣ. ಪ್ರತಿ ವಹಿವಾಟು ಕೆಲವು ಹಣವನ್ನು ಖರ್ಚು ಮಾಡುತ್ತದೆ ಮತ್ತು ಉತ್ಪಾದಿಸುತ್ತದೆ. ವಹಿವಾಟು ಔಟ್ಪುಟ್ಗಳನ್ನು ರಚಿಸುವ ಮೂಲಕ ಹಣವನ್ನು ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ (ನೇರ ಸಾದೃಶ್ಯವು ಬ್ಯಾಂಕ್ನೋಟುಗಳು), ಮತ್ತು ವಹಿವಾಟು ಖರ್ಚು ಮಾಡುವ ಔಟ್ಪುಟ್ (ಎಲ್ಲಾ ನಂತರ, ನಿಜ ಜೀವನದಲ್ಲಿ ನಾವು ಬ್ಯಾಂಕ್ನೋಟುಗಳನ್ನು ಖರ್ಚು ಮಾಡುತ್ತೇವೆ) ಇನ್ಪುಟ್ ಆಗುತ್ತದೆ (ಎಚ್ಚರಿಕೆಯಿಂದಿರಿ, ಇಲ್ಲಿ ಗೊಂದಲಕ್ಕೊಳಗಾಗುವುದು ತುಂಬಾ ಸುಲಭ) .
ಒಂದು ಇನ್ಪುಟ್ ಅನೇಕ ಔಟ್ಪುಟ್ಗಳನ್ನು ಉಲ್ಲೇಖಿಸುತ್ತದೆ, ಆದರೆ ಒಂದನ್ನು ಮಾತ್ರ ಖರ್ಚು ಮಾಡುತ್ತದೆ, ಹೀಗಾಗಿ ಅನುವಾದ ಇತಿಹಾಸವನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಕಷ್ಟವಾಗುವಂತೆ "ಸ್ಮೋಕ್ಸ್ಸ್ಕ್ರೀನ್" ಅನ್ನು ರಚಿಸುತ್ತದೆ. ವಹಿವಾಟು ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಇನ್ಪುಟ್ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ, ಅಂತಹ ರಚನೆಯನ್ನು ಮ್ಯಾಟ್ರಿಕ್ಸ್ನಂತೆ ಪ್ರತಿನಿಧಿಸಬಹುದು, ಅಲ್ಲಿ ಸಾಲುಗಳು ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ಕಾಲಮ್ಗಳು ಮಿಶ್ರ ಔಟ್ಪುಟ್ಗಳಾಗಿವೆ. ವಹಿವಾಟು ಅದರ ಔಟ್ಪುಟ್ಗಳನ್ನು ನಿಖರವಾಗಿ ಕಳೆಯುತ್ತದೆ ಎಂದು ನೆಟ್ವರ್ಕ್ಗೆ ಸಾಬೀತುಪಡಿಸಲು (ಅವರ ರಹಸ್ಯ ಕೀಲಿಗಳನ್ನು ತಿಳಿದಿದೆ), ಇನ್ಪುಟ್ಗಳನ್ನು ರಿಂಗ್ ಸಹಿಯೊಂದಿಗೆ ಸಹಿ ಮಾಡಲಾಗುತ್ತದೆ. ಅಂತಹ ಸಹಿಯು ಯಾವುದೇ ಕಾಲಮ್ಗಳ ಎಲ್ಲಾ ಅಂಶಗಳಿಗೆ ಸಹಿ ಮಾಡುವವರಿಗೆ ರಹಸ್ಯ ಕೀಲಿಗಳನ್ನು ತಿಳಿದಿತ್ತು ಎಂದು ಖಾತರಿಪಡಿಸುತ್ತದೆ.
ಗೌಪ್ಯ ವಹಿವಾಟುಗಳು ಇನ್ನು ಮುಂದೆ ಕ್ಲಾಸಿಕ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ
ಅವುಗಳನ್ನು ಬಹುಪದರ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ ಏಕೆಂದರೆ ಅವರು ಏಕಕಾಲದಲ್ಲಿ ಹಲವಾರು ಇನ್ಪುಟ್ಗಳನ್ನು ಸಹಿ ಮಾಡುತ್ತಾರೆ, ಪ್ರತಿಯೊಂದೂ ಹಲವಾರು ಇತರರೊಂದಿಗೆ ಬೆರೆಸಲಾಗುತ್ತದೆ, ಅಂದರೆ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಸಹಿ ಮಾಡಲಾಗಿದೆ, ಮತ್ತು ಒಂದು ಸಾಲಲ್ಲ. ನಾವು ನಂತರ ನೋಡುವಂತೆ, ಇದು ಸಹಿ ಗಾತ್ರದಲ್ಲಿ ಉಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
2 ನೈಜ ಔಟ್ಪುಟ್ಗಳನ್ನು ಖರ್ಚು ಮಾಡುವ ಮತ್ತು ಮಿಶ್ರಣಕ್ಕಾಗಿ ಬ್ಲಾಕ್ಚೈನ್ನಿಂದ m - 1 ಯಾದೃಚ್ಛಿಕ ಬಿಡಿಗಳನ್ನು ಬಳಸುವ ವಹಿವಾಟಿನ ಉದಾಹರಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ರಿಂಗ್ ಸಹಿ ಹೇಗೆ ರೂಪುಗೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡೋಣ. ನಾವು ಖರ್ಚು ಮಾಡುವ ಔಟ್ಪುಟ್ಗಳ ಸಾರ್ವಜನಿಕ ಕೀಲಿಗಳನ್ನು ಸೂಚಿಸೋಣ
, ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಅವರಿಗೆ ಪ್ರಮುಖ ಚಿತ್ರಗಳು: ಹೀಗಾಗಿ, ನಾವು ಗಾತ್ರದ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಅನ್ನು ಪಡೆಯುತ್ತೇವೆ 2 x ಮೀ. ಮೊದಲಿಗೆ, ಪ್ರತಿ ಜೋಡಿ ಔಟ್ಪುಟ್ಗಳಿಗೆ ಸವಾಲುಗಳು ಎಂದು ಕರೆಯಲ್ಪಡುವದನ್ನು ನಾವು ಲೆಕ್ಕಾಚಾರ ಮಾಡಬೇಕಾಗಿದೆ:
ನಾವು ಔಟ್ಪುಟ್ಗಳೊಂದಿಗೆ ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ, ಅವುಗಳ ಸಾರ್ವಜನಿಕ ಕೀಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಖರ್ಚು ಮಾಡುತ್ತೇವೆ:ಮತ್ತು ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಗಳುಪರಿಣಾಮವಾಗಿ, ನಾವು ಈ ಕೆಳಗಿನ ಮೌಲ್ಯಗಳನ್ನು ಪಡೆಯುತ್ತೇವೆ:
, ನಾವು ಸವಾಲನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಬಳಸುತ್ತೇವೆ
ಮುಂದಿನ ಜೋಡಿ ಔಟ್ಪುಟ್ಗಳು (ನಾವು ಎಲ್ಲಿ ಬದಲಿಸುತ್ತಿದ್ದೇವೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗುವಂತೆ, ನಾವು ಈ ಮೌಲ್ಯಗಳನ್ನು ವಿವಿಧ ಬಣ್ಣಗಳಲ್ಲಿ ಹೈಲೈಟ್ ಮಾಡಿದ್ದೇವೆ). ಕೆಳಗಿನ ಎಲ್ಲಾ ಮೌಲ್ಯಗಳನ್ನು ಮೊದಲ ವಿವರಣೆಯಲ್ಲಿ ನೀಡಲಾದ ಸೂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವೃತ್ತದಲ್ಲಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ. ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಕೊನೆಯ ವಿಷಯವೆಂದರೆ ನಿಜವಾದ ಔಟ್ಪುಟ್ಗಳ ಜೋಡಿಗೆ ಸವಾಲು.
ನಾವು ನೋಡುವಂತೆ, ನೈಜ ಔಟ್ಪುಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ಒಂದನ್ನು ಹೊರತುಪಡಿಸಿ ಎಲ್ಲಾ ಕಾಲಮ್ಗಳು ಯಾದೃಚ್ಛಿಕವಾಗಿ ರಚಿಸಲಾದ ಸಂಖ್ಯೆಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಫಾರ್ π- ಕಾಲಮ್ ನಮಗೆ ಅವು ಬೇಕಾಗುತ್ತವೆ. ರೂಪಾಂತರಗೊಳ್ಳೋಣs ನಲ್ಲಿ:
ಸಹಿಯು ಈ ಎಲ್ಲಾ ಮೌಲ್ಯಗಳ ಟ್ಯೂಪಲ್ ಆಗಿದೆ:
ಈ ಡೇಟಾವನ್ನು ನಂತರ ವಹಿವಾಟಿನಲ್ಲಿ ಬರೆಯಲಾಗುತ್ತದೆ.
ನಾವು ನೋಡುವಂತೆ, MLSAG ಕೇವಲ ಒಂದು ಸವಾಲನ್ನು ಹೊಂದಿದೆ c0, ಇದು ಸಹಿ ಗಾತ್ರದಲ್ಲಿ ಉಳಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ (ಇದಕ್ಕೆ ಈಗಾಗಲೇ ಸಾಕಷ್ಟು ಸ್ಥಳಾವಕಾಶ ಬೇಕಾಗುತ್ತದೆ). ಮತ್ತಷ್ಟು, ಯಾವುದೇ ಇನ್ಸ್ಪೆಕ್ಟರ್, ಡೇಟಾವನ್ನು ಬಳಸಿ, c1,..., cm ಮೌಲ್ಯಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ. ಹೀಗಾಗಿ, ನಮ್ಮ ಉಂಗುರವನ್ನು ಮುಚ್ಚಲಾಗಿದೆ ಮತ್ತು ಸಹಿಯನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ.
ಪೂರ್ಣ ಪ್ರಕಾರದ ರಿಂಗ್ಸಿಟಿ ವಹಿವಾಟುಗಳಿಗಾಗಿ, ಮಿಶ್ರ ಉತ್ಪನ್ನಗಳೊಂದಿಗೆ ಮ್ಯಾಟ್ರಿಕ್ಸ್ಗೆ ಇನ್ನೂ ಒಂದು ಸಾಲನ್ನು ಸೇರಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ನಾವು ಇದರ ಬಗ್ಗೆ ಕೆಳಗೆ ಮಾತನಾಡುತ್ತೇವೆ.
ಪೆಡೆರ್ಸನ್ ಕಮಿಟ್ಮೆಂಟ್ಸ್
ಮೊನೆರೊ ಕಮಿಟ್ಮೆಂಟ್ಗಳನ್ನು ವರ್ಗಾವಣೆಗಳ ಮೊತ್ತವನ್ನು ಮರೆಮಾಡಲು ಮತ್ತು ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ ಆಯ್ಕೆಯನ್ನು ಬಳಸಲು ಬಳಸಲಾಗುತ್ತದೆ - ಪೆಡರ್ಸನ್ ಬದ್ಧತೆಗಳು. ಅಂದಹಾಗೆ, ಒಂದು ಕುತೂಹಲಕಾರಿ ಸಂಗತಿ - ಮೊದಲಿಗೆ ಡೆವಲಪರ್ಗಳು ಸಾಮಾನ್ಯ ಮಿಶ್ರಣದ ಮೂಲಕ ಮೊತ್ತವನ್ನು ಮರೆಮಾಡಲು ಪ್ರಸ್ತಾಪಿಸಿದರು, ಅಂದರೆ, ಅನಿಶ್ಚಿತತೆಯನ್ನು ಪರಿಚಯಿಸುವ ಸಲುವಾಗಿ ಅನಿಯಂತ್ರಿತ ಮೊತ್ತಕ್ಕೆ ಔಟ್ಪುಟ್ಗಳನ್ನು ಸೇರಿಸಿದರು, ಆದರೆ ನಂತರ ಅವರು ಬದ್ಧತೆಗಳಿಗೆ ಬದಲಾಯಿಸಿದರು (ಅವರು ಉಳಿಸಿದ ಸತ್ಯವಲ್ಲ ವಹಿವಾಟಿನ ಗಾತ್ರ, ನಾವು ಕೆಳಗೆ ನೋಡುವಂತೆ).
ಸಾಮಾನ್ಯವಾಗಿ, ಬದ್ಧತೆ ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:
ಎಲ್ಲಿ C - ಬದ್ಧತೆಯ ಅರ್ಥ, a - ಗುಪ್ತ ಮೊತ್ತ, H ದೀರ್ಘವೃತ್ತದ ಕರ್ವ್ (ಹೆಚ್ಚುವರಿ ಜನರೇಟರ್) ಮೇಲೆ ಸ್ಥಿರ ಬಿಂದುವಾಗಿದೆ, ಮತ್ತು x - ಕೆಲವು ರೀತಿಯ ಅನಿಯಂತ್ರಿತ ಮುಖವಾಡ, ಯಾದೃಚ್ಛಿಕವಾಗಿ ಉತ್ಪತ್ತಿಯಾಗುವ ಮರೆಮಾಚುವ ಅಂಶ. ಮುಖವಾಡವು ಇಲ್ಲಿ ಅಗತ್ಯವಿದೆ ಆದ್ದರಿಂದ ಮೂರನೇ ವ್ಯಕ್ತಿಗೆ ಬದ್ಧತೆಯ ಮೌಲ್ಯವನ್ನು ಸರಳವಾಗಿ ಊಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
ಹೊಸ ಔಟ್ಪುಟ್ ಅನ್ನು ರಚಿಸಿದಾಗ, ವ್ಯಾಲೆಟ್ ಅದರ ಬದ್ಧತೆಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ ಮತ್ತು ಖರ್ಚು ಮಾಡಿದಾಗ, ಅದು ವಹಿವಾಟಿನ ಪ್ರಕಾರವನ್ನು ಅವಲಂಬಿಸಿ ಉತ್ಪಾದನೆಯ ಸಮಯದಲ್ಲಿ ಲೆಕ್ಕ ಹಾಕಿದ ಮೌಲ್ಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಅಥವಾ ಅದನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ.
ರಿಂಗ್ ಸಿಟಿ ಸರಳ
ಸರಳವಾದ ರಿಂಗ್ಸಿಟಿ ವಹಿವಾಟುಗಳ ಸಂದರ್ಭದಲ್ಲಿ, ವಹಿವಾಟು ಒಳಹರಿವಿನ ಮೊತ್ತಕ್ಕೆ ಸಮನಾದ ಔಟ್ಪುಟ್ಗಳನ್ನು ರಚಿಸಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು (ತೆಳುವಾದ ಗಾಳಿಯಿಂದ ಹಣವನ್ನು ಉತ್ಪಾದಿಸಲಿಲ್ಲ), ಮೊದಲ ಮತ್ತು ಎರಡನೆಯ ಬದ್ಧತೆಗಳ ಮೊತ್ತವು ಅವಶ್ಯಕವಾಗಿದೆ ಅವು ಒಂದೇ ಆಗಿರುತ್ತವೆ, ಅಂದರೆ:
ಬದ್ಧತೆಯ ಆಯೋಗಗಳು ಇದನ್ನು ಸ್ವಲ್ಪ ವಿಭಿನ್ನವಾಗಿ ಪರಿಗಣಿಸುತ್ತವೆ - ಮುಖವಾಡವಿಲ್ಲದೆ:
ಅಲ್ಲಿ a - ಆಯೋಗದ ಮೊತ್ತ, ಇದು ಸಾರ್ವಜನಿಕವಾಗಿ ಲಭ್ಯವಿದೆ.
ಈ ವಿಧಾನವು ಅವಲಂಬಿತ ಪಕ್ಷಕ್ಕೆ ನಾವು ಬಹಿರಂಗಪಡಿಸದೆ ಅದೇ ಮೊತ್ತವನ್ನು ಬಳಸುತ್ತಿದ್ದೇವೆ ಎಂದು ಸಾಬೀತುಪಡಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
ವಿಷಯಗಳನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಲು, ಒಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ. ವಹಿವಾಟು 10 ಮತ್ತು 5 XMR ನ ಎರಡು ಔಟ್ಪುಟ್ಗಳನ್ನು (ಅಂದರೆ ಅವು ಇನ್ಪುಟ್ ಆಗುತ್ತವೆ) ಮತ್ತು 12 XMR ಮೌಲ್ಯದ ಮೂರು ಔಟ್ಪುಟ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ: 3, 4 ಮತ್ತು 5 XMR ಎಂದು ಹೇಳೋಣ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಅವರು 3 XMR ನ ಕಮಿಷನ್ ಅನ್ನು ಪಾವತಿಸುತ್ತಾರೆ. ಹೀಗಾಗಿ, ಖರ್ಚು ಮಾಡಿದ ಹಣದ ಮೊತ್ತ ಮತ್ತು ಉತ್ಪತ್ತಿಯಾದ ಮೊತ್ತ ಮತ್ತು ಆಯೋಗವು 15 XMR ಗೆ ಸಮಾನವಾಗಿರುತ್ತದೆ. ಬದ್ಧತೆಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಪ್ರಯತ್ನಿಸೋಣ ಮತ್ತು ಅವುಗಳ ಮೊತ್ತದಲ್ಲಿನ ವ್ಯತ್ಯಾಸವನ್ನು ನೋಡೋಣ (ಗಣಿತವನ್ನು ನೆನಪಿಡಿ):
ಸಮೀಕರಣವು ಒಮ್ಮುಖವಾಗಲು, ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಮಾಸ್ಕ್ಗಳ ಮೊತ್ತವು ಒಂದೇ ಆಗಿರಬೇಕು ಎಂದು ನಾವು ಇಲ್ಲಿ ನೋಡುತ್ತೇವೆ. ಇದನ್ನು ಮಾಡಲು, ವಾಲೆಟ್ ಯಾದೃಚ್ಛಿಕವಾಗಿ ಉತ್ಪಾದಿಸುತ್ತದೆ x1, y1, y2 ಮತ್ತು y3, ಮತ್ತು ಉಳಿದ x2 ಈ ರೀತಿ ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ:
ಈ ಮಾಸ್ಕ್ಗಳನ್ನು ಬಳಸುವುದರಿಂದ, ಮೊತ್ತವನ್ನು ಬಹಿರಂಗಪಡಿಸದೆಯೇ ನಾವು ಖರ್ಚು ಮಾಡುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಹಣವನ್ನು ನಾವು ಉತ್ಪಾದಿಸುವುದಿಲ್ಲ ಎಂದು ನಾವು ಯಾವುದೇ ಪರಿಶೀಲಕರಿಗೆ ಸಾಬೀತುಪಡಿಸಬಹುದು. ಮೂಲ, ಸರಿ?
ರಿಂಗ್ಸಿಟಿ ತುಂಬಿದೆ
ಪೂರ್ಣ RingCT ವಹಿವಾಟುಗಳಲ್ಲಿ, ವರ್ಗಾವಣೆ ಮೊತ್ತವನ್ನು ಪರಿಶೀಲಿಸುವುದು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿದೆ. ಈ ವಹಿವಾಟುಗಳಲ್ಲಿ, ವ್ಯಾಲೆಟ್ ಇನ್ಪುಟ್ಗಳಿಗಾಗಿ ಬದ್ಧತೆಗಳನ್ನು ಮರು ಲೆಕ್ಕಾಚಾರ ಮಾಡುವುದಿಲ್ಲ, ಆದರೆ ಅವುಗಳನ್ನು ರಚಿಸಿದಾಗ ಲೆಕ್ಕಹಾಕಿದದನ್ನು ಬಳಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ನಾವು ಇನ್ನು ಮುಂದೆ ಶೂನ್ಯಕ್ಕೆ ಸಮಾನವಾದ ಮೊತ್ತಗಳಲ್ಲಿ ವ್ಯತ್ಯಾಸವನ್ನು ಪಡೆಯುವುದಿಲ್ಲ ಎಂದು ಭಾವಿಸಬೇಕು, ಬದಲಿಗೆ:
ಇದು z - ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್ ಮಾಸ್ಕ್ಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸ. ನಾವು ಪರಿಗಣಿಸಿದರೆ zG ಸಾರ್ವಜನಿಕ ಕೀಲಿಯಾಗಿ (ಇದು ವಾಸ್ತವಿಕವಾಗಿದೆ), ನಂತರ z ಖಾಸಗಿ ಕೀಲಿಯಾಗಿದೆ. ಹೀಗಾಗಿ, ನಾವು ಸಾರ್ವಜನಿಕ ಮತ್ತು ಅನುಗುಣವಾದ ಖಾಸಗಿ ಕೀಲಿಗಳನ್ನು ತಿಳಿದಿದ್ದೇವೆ. ಕೈಯಲ್ಲಿ ಈ ಡೇಟಾದೊಂದಿಗೆ, ನಾವು ಅದನ್ನು MLSAG ರಿಂಗ್ ಸಿಗ್ನೇಚರ್ನಲ್ಲಿ ಮಿಶ್ರಣ ಮಾಡಲಾದ ಔಟ್ಪುಟ್ಗಳ ಸಾರ್ವಜನಿಕ ಕೀಗಳೊಂದಿಗೆ ಬಳಸಬಹುದು:
ಹೀಗಾಗಿ, ಮಾನ್ಯವಾದ ರಿಂಗ್ ಸಹಿಯು ಒಂದು ಕಾಲಮ್ನ ಎಲ್ಲಾ ಖಾಸಗಿ ಕೀಗಳನ್ನು ನಮಗೆ ತಿಳಿದಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ವಹಿವಾಟು ಖರ್ಚು ಮಾಡುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಹಣವನ್ನು ಉತ್ಪಾದಿಸದಿದ್ದರೆ ಮಾತ್ರ ಕೊನೆಯ ಸಾಲಿನಲ್ಲಿನ ಖಾಸಗಿ ಕೀಲಿಯನ್ನು ನಾವು ತಿಳಿದುಕೊಳ್ಳಬಹುದು. ಅಂದಹಾಗೆ, "ಬದ್ಧತೆಗಳ ಮೊತ್ತದಲ್ಲಿನ ವ್ಯತ್ಯಾಸವು ಶೂನ್ಯಕ್ಕೆ ಏಕೆ ಕಾರಣವಾಗುವುದಿಲ್ಲ" ಎಂಬ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರ ಇಲ್ಲಿದೆ - ವೇಳೆ zG = 0, ನಂತರ ನಾವು ನೈಜ ಔಟ್ಪುಟ್ಗಳೊಂದಿಗೆ ಕಾಲಮ್ ಅನ್ನು ವಿಸ್ತರಿಸುತ್ತೇವೆ.
ನಿಧಿಯನ್ನು ಸ್ವೀಕರಿಸುವವರಿಗೆ ಎಷ್ಟು ಹಣವನ್ನು ಕಳುಹಿಸಲಾಗಿದೆ ಎಂದು ಹೇಗೆ ತಿಳಿಯುತ್ತದೆ? ಇಲ್ಲಿ ಎಲ್ಲವೂ ಸರಳವಾಗಿದೆ - ವಹಿವಾಟಿನ ಕಳುಹಿಸುವವರು ಮತ್ತು ಸ್ವೀಕರಿಸುವವರ ವಿನಿಮಯ ಕೀಗಳನ್ನು ಡಿಫಿ-ಹೆಲ್ಮ್ಯಾನ್ ಪ್ರೋಟೋಕಾಲ್ ಬಳಸಿ, ವಹಿವಾಟು ಕೀ ಮತ್ತು ಸ್ವೀಕರಿಸುವವರ ವೀಕ್ಷಣೆ ಕೀ ಬಳಸಿ ಮತ್ತು ಹಂಚಿಕೊಂಡ ರಹಸ್ಯವನ್ನು ಲೆಕ್ಕಹಾಕಿ. ಕಳುಹಿಸುವವರು ವಹಿವಾಟಿನ ವಿಶೇಷ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಈ ಹಂಚಿಕೆಯ ಕೀಲಿಯೊಂದಿಗೆ ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾದ ಔಟ್ಪುಟ್ ಮೊತ್ತಗಳ ಕುರಿತು ಡೇಟಾವನ್ನು ಬರೆಯುತ್ತಾರೆ.
ವ್ಯಾಪ್ತಿಯ ಪುರಾವೆಗಳು
ನೀವು ಋಣಾತ್ಮಕ ಸಂಖ್ಯೆಯನ್ನು ಬದ್ಧತೆಗಳಲ್ಲಿ ಮೊತ್ತವಾಗಿ ಬಳಸಿದರೆ ಏನಾಗುತ್ತದೆ? ಇದು ಹೆಚ್ಚುವರಿ ನಾಣ್ಯಗಳ ಉತ್ಪಾದನೆಗೆ ಕಾರಣವಾಗಬಹುದು! ಈ ಫಲಿತಾಂಶವು ಸ್ವೀಕಾರಾರ್ಹವಲ್ಲ, ಆದ್ದರಿಂದ ನಾವು ಬಳಸುವ ಮೊತ್ತವು ಋಣಾತ್ಮಕವಾಗಿಲ್ಲ ಎಂದು ನಾವು ಖಾತರಿಪಡಿಸಬೇಕಾಗಿದೆ (ಈ ಮೊತ್ತವನ್ನು ಬಹಿರಂಗಪಡಿಸದೆ, ಸಹಜವಾಗಿ, ಇಲ್ಲದಿದ್ದರೆ ತುಂಬಾ ಕೆಲಸ ಮತ್ತು ಎಲ್ಲವೂ ವ್ಯರ್ಥವಾಗಿದೆ). ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಹೇಳುವುದಾದರೆ, ಮೊತ್ತವು ಮಧ್ಯಂತರದಲ್ಲಿದೆ ಎಂದು ನಾವು ಸಾಬೀತುಪಡಿಸಬೇಕು [0, 2n - 1].
ಇದನ್ನು ಮಾಡಲು, ಪ್ರತಿ ಔಟ್ಪುಟ್ನ ಮೊತ್ತವನ್ನು ಬೈನರಿ ಅಂಕೆಗಳಾಗಿ ವಿಂಗಡಿಸಲಾಗಿದೆ ಮತ್ತು ಪ್ರತಿ ಅಂಕೆಗೆ ಬದ್ಧತೆಯನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ. ಇದು ಹೇಗೆ ಸಂಭವಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಉದಾಹರಣೆಯೊಂದಿಗೆ ನೋಡುವುದು ಉತ್ತಮ.
ನಮ್ಮ ಮೊತ್ತವು ಚಿಕ್ಕದಾಗಿದೆ ಮತ್ತು 4 ಬಿಟ್ಗಳಿಗೆ ಸರಿಹೊಂದುತ್ತದೆ ಎಂದು ಭಾವಿಸೋಣ (ಆಚರಣೆಯಲ್ಲಿ ಇದು 64 ಬಿಟ್ಗಳು), ಮತ್ತು ನಾವು 5 XMR ಮೌಲ್ಯದ ಔಟ್ಪುಟ್ ಅನ್ನು ರಚಿಸುತ್ತೇವೆ. ನಾವು ಪ್ರತಿ ವರ್ಗದ ಬದ್ಧತೆಗಳನ್ನು ಮತ್ತು ಸಂಪೂರ್ಣ ಮೊತ್ತಕ್ಕೆ ಒಟ್ಟು ಬದ್ಧತೆಯನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತೇವೆ:
ಮುಂದೆ, ಪ್ರತಿ ಬದ್ಧತೆಯನ್ನು ಬಾಡಿಗೆಗೆ ಬೆರೆಸಲಾಗುತ್ತದೆ (Ci-2iH) ಮತ್ತು 2015 ರಲ್ಲಿ ಗ್ರೆಗ್ ಮ್ಯಾಕ್ಸ್ವೆಲ್ ಪ್ರಸ್ತಾಪಿಸಿದ ಬೊರೊಮಿಯೊ ರಿಂಗ್ ಸಿಗ್ನೇಚರ್ (ಮತ್ತೊಂದು ರಿಂಗ್ ಸಿಗ್ನೇಚರ್) ನೊಂದಿಗೆ ಜೋಡಿಯಾಗಿ ಸಹಿ ಮಾಡಲಾಗಿದೆ (ನೀವು ಅದರ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಓದಬಹುದು
ಒಟ್ಟಾಗಿ ತೆಗೆದುಕೊಂಡರೆ, ಇದನ್ನು ಶ್ರೇಣಿಯ ಪುರಾವೆ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಬದ್ಧತೆಗಳು ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಮೊತ್ತವನ್ನು ಬಳಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ [0, 2n - 1].
ಮುಂದಿನ ಏನು?
ಪ್ರಸ್ತುತ ಅನುಷ್ಠಾನದಲ್ಲಿ, ಶ್ರೇಣಿಯ ಪುರಾವೆಗಳು ಸಾಕಷ್ಟು ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ - ಪ್ರತಿ ಔಟ್ಪುಟ್ಗೆ 6176 ಬೈಟ್ಗಳು. ಇದು ದೊಡ್ಡ ವಹಿವಾಟುಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ ಮತ್ತು ಆದ್ದರಿಂದ ಹೆಚ್ಚಿನ ಶುಲ್ಕಗಳು. ಮೊನೆರೊ ವಹಿವಾಟಿನ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಲು, ಡೆವಲಪರ್ಗಳು ಬೊರೊಮಿಯೊ ಸಿಗ್ನೇಚರ್ಗಳ ಬದಲಿಗೆ ಬುಲೆಟ್ಪ್ರೂಫ್ಗಳನ್ನು ಪರಿಚಯಿಸುತ್ತಿದ್ದಾರೆ - ಬಿಟ್ವೈಸ್ ಕಮಿಟ್ಮೆಂಟ್ಗಳಿಲ್ಲದ ರೇಂಜ್ ಪ್ರೂಫ್ ಮೆಕ್ಯಾನಿಸಂ.
ನಿಮ್ಮ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ, ಕ್ರಿಪ್ಟೋಕರೆನ್ಸಿ ಕ್ಷೇತ್ರದಲ್ಲಿನ ತಂತ್ರಜ್ಞಾನಗಳ ಕುರಿತು ಹೊಸ ಲೇಖನಗಳಿಗೆ ವಿಷಯಗಳನ್ನು ಸೂಚಿಸಿ ಮತ್ತು ನಮ್ಮ ಗುಂಪಿಗೆ ಚಂದಾದಾರರಾಗಿ
ಮೂಲ: www.habr.com