เดทเตˆเดจเตเด‚ เดฆเตเดฐเดฟเดคเดตเตเด‚ เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เดธเตเดตเดพเดชเตเดชเตเด•เตพ

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เดธเตเดตเดพเดชเตเดชเตเด•เตพ เดฎเต‹เดถเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดšเดพเดจเดฒเตเด•เตพ เด…เดตเดฏเต† เดŽเด™เตเด™เดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚, เด•เต‹เตบเดธเตเดฑเตเดฑเดพเดจเตเดฑเดฟเดจเต‹เดชเตเดชเดฟเตพ เดนเดพเตผเดกเต เดซเต‹เตผเด•เตเด•เดฟเตฝ เดŽเดจเตเดคเต เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดธเด‚เดญเดตเดฟเดšเตเดšเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด—เตเดฏเดพเดธเดฟเดจเต เดชเดฃเด‚ เดจเตฝเด•เดพเตป เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดคเตเดšเต†เดฏเตเดฏเดฃเด‚.

เดเดคเตŠเดฐเต เดธเตเดฐเด•เตเดทเดพ เดตเดฟเดฆเด—เตเดฆเตเดงเดจเตเดฑเต†เดฏเตเด‚ เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด†เด—เตเดฐเดนเดฎเดพเดฃเต.

เดชเตเดฐเตŠเดตเดฟเดกเตปเดธเต เด•เดพเดฐเตเดฃเตเดฏเดตเดพเดจเดพเดฃเต, เด†เดฆเตเดฏเดคเตเดคเต† เดฎเดพเดฑเตเดฑเดพเดจเดพเด•เดพเดคเตเดค เด‡เดŸเดชเดพเดŸเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เดพเดคเต† เดžเดพเตป ICO เดตเดฟเดŸเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เดคเดพเดฎเดธเดฟเดฏเดพเดคเต† เดžเดพเตป เด’เดฐเต เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ.

เดžเดพเตป เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดฎเดพเตฝเดšเดฟเดทเต เด•เดฟเดฌเดพเตฝเดšเดฟเดทเต เด…เดฒเตเดฒ, เดŽเดฒเตเดฒเดพ เด•เต€เด•เดณเตเด‚ เดชเดพเดธเตโ€Œเดตเต‡เดกเตเด•เดณเตเด‚ เด•เตˆเดฎเดพเดฑเดพเตป เดŽเดจเดฟเด•เตเด•เต เด’เดฐเต เด•เตผเดถเดจเดฎเดพเดฏ เดจเต‹เดŸเตเดŸเด‚ เดฎเดคเดฟเดฏเดพเด•เตเด‚. เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เด†เตผเด•เตเด•เดฟเดŸเต†เด•เตเดฑเตเดฑเต เดŽเดจเตเดจ เดจเดฟเดฒเดฏเดฟเตฝ เดŽเดจเตเดฑเต† เดชเตเดฐเดงเดพเดจ เดฒเด•เตเดทเตเดฏเด‚ เดŽเดจเดฟเด•เตเด•เต เดชเตเดฐเดฟเดฏเดชเตเดชเต†เดŸเตเดŸ เด‡เตปเดซเตเดฐเดพเดธเตเดŸเตเดฐเด•เตเดšเตผ เด˜เดŸเด•เด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เดดเดฟเดฏเตเดจเตเดจเดฟเดŸเดคเตเดคเต‹เดณเด‚ เด•เตเดฐเดฟเดชเตเดฑเตเดฑเดจเดพเดฒเดฟเดธเดฟเดธเดฟเดจเตเดฑเต† เดšเตเดตเดจเตเดจ-เดšเต‚เดŸเตเดณเตเดณ เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฏเดฟเดฐเตเดจเตเดจเต.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต€เด•เดณเดฒเตเดฒ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเดถเตเดจเด™เตเด™เดณเดฒเตเดฒ

เดžเด™เตเด™เตพ เด’เดฐเต เด…เดธเดฑเตเดฑเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต, เดˆ เด…เดธเดฑเตเดฑเตเด•เดณเตเดŸเต† เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ เด‡เดŸเดชเดพเดŸเดฟเดจเตเดฑเต† เดธเตเดฐเด•เตเดท เดžเด™เตเด™เตพ เด‰เดฑเดชเตเดชเดพเด•เตเด•เดฃเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเดฟเดตเดพเดฆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดœเดกเตเดœเดฟเดฏเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เดฎเต‚เดจเตเดจเต เด’เดชเตเดชเตเด•เดณเดฟเตฝ เดฐเดฃเตเดŸเต†เดฃเตเดฃเด‚ เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดตเดพเดฒเดฑเตเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดŸเดชเดพเดŸเตเด•เตพ เดจเดŸเดคเตเดคเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚: เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเตพ, เดตเดฟเตฝเดชเตเดชเดจเด•เตเด•เดพเดฐเตป, เดŽเดธเตเด•เตเดฐเต‹.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเด™เตเด•เต†เดŸเตเด•เตเด•เตเดจเตเดจเดฏเดพเตพ เดŽเดธเตเด•เตเดฐเต‹เดฏเต† เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เด†เด•เตเดฐเดฎเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดฏเดพเตพเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดฐเดฃเตเดŸเต เด’เดชเตเดชเตเด•เตพ เดฒเดญเดฟเด•เตเด•เตเด‚.

เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เดธเตเดตเดพเดชเตเดชเต เดŽเดจเตเดจเดคเต เด’เดฐเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเตเด•เต€เดฎเดพเดฃเต, เด…เดตเดฟเดŸเต† เด—เตเดฏเดพเดฐเดจเตเดฑเตผ เดธเดคเตเดฏเดธเดจเตเดงเดฎเดพเดฏ เดชเต†เดฐเตเดฎเดพเดฑเตเดฑเด‚ เดฎเดพเดคเตเดฐเด‚ เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเดฟเด•เดšเตเดš เด•เดฐเดพเดฑเดพเดฃเต.

เดšเต†เดจเตเดจเดพเดฏ, เด†เดŸเต, เด•เดพเดฌเต‡เดœเต เดŽเดจเตเดจเดฟเดตเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด’เดฐเต เด•เดŸเด™เตเด•เดฅเดฏเดฟเดฒเต†เดจเตเดจเดชเต‹เดฒเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต‡เดฏเตŠเดฐเต เดถเดฐเดฟเดฏเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเดฟเดšเดฒเดฟเดšเตเดšเดพเตฝ เดจเดทเตเดŸเด‚ เดจเต‡เดฐเดฟเดŸเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚.

เด†เดนเตเดฒเดพเดฆเด•เดฐเดฎเดพเดฏ เดฎเตƒเด—เด™เตเด™เตพเด•เตเด•เต เดชเด•เดฐเด‚, เด’เดฐเต เดนเดพเดทเต เดซเด‚เด—เตเดทเดจเดพเดฃเต เด“เตผเดกเตผ เดจเตฝเด•เตเดจเตเดจเดคเต, เด…เดคเดฟเตฝ เด’เดฐเต เด•เต‚เดŸเตเดŸเดฟเดฏเดฟเดŸเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเต เดตเดณเดฐเต† เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต, เด…เดคเต เด†เดฐเด‚เดญเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ.

เด˜เดŸเตเดŸเด‚ เด’เดจเตเดจเต: เด•เดŸเด™เตเด•เดฅ

เด†เดฒเต€เดธเต เด’เดฐเต เดธเตเดชเตเดฐเดญเดพเดคเดคเตเดคเดฟเตฝ เดฌเต‹เดฌเดฟเดจเต เด’เดฐเต เดชเดฟเดŸเดฟ "เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹-เดฏเตเดตเดพเตป" เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเตป เดจเตฝเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เด•เดฐเตเดคเตเด•.

  • เด…เดตเตพ เดŽเดจเตเดคเต‹ เดตเดฒเดฟเดฏ เดฐเดนเดธเตเดฏเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเต
  • เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดนเดพเดทเต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต
  • เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเดจเตเด•เตพ เด’เดฐเต เดธเตเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต, เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฌเต‹เดฌเดฟเดจเต เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเต เดชเดฃเด‚ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เดพเด‚ (เด…เดคเดฟเดจเตเดฑเต† เดนเดพเดทเต เด•เดฐเดพเดฑเดฟเตฝ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฟเดฏเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚)
  • เดตเตˆเด•เตเดจเตเดจเต‡เดฐเด‚ เดฌเต‹เดฌเต เดคเดจเตเดฑเต† เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเดจเตเด•เตพ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เด†เดฒเต€เดธเดฟเดจเต เด…เดต เดคเดจเตเดจเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เด•เตŠเดฃเตเดŸเตเดชเต‹เด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เด˜เดŸเตเดŸเด‚ เดฐเดฃเตเดŸเต: เดญเต‹เด—เด™เตเด™เดณเดฟเตฝ

เดฌเต‹เดฌเต เด•เดณเดฟเด•เตเด•เตเด•เดฏเตเด‚ "เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹-เดฏเต‚เดฑเต‹" เดคเดจเตเดฑเต† เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเต เด‡เด™เตเด™เดจเต† เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต:

  • เด’เดฐเต เดฐเดนเดธเตเดฏ เดจเดฎเตเดชเตผ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เด†เดฒเต€เดธเดฟเดจเต "เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹-เดฏเต†เตปเดธเต" เดŽเดŸเตเดคเตเดคเตเด•เดณเดฏเดพเด‚
  • เด‰เดšเตเดšเดญเด•เตเดทเดฃเดคเตเดคเดฟเดจเต เดฎเตเดฎเตเดชเดฒเตเดฒ, เด†เดฒเต€เดธเต เดนเดพเดœเดฐเดพเด•เตเดจเตเดจเดคเดฟเตฝ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸเดพเตฝ เดฌเต‹เดฌเดฟเดจเต เดกเต†เดชเตเดชเต‹เดธเดฟเดฑเตเดฑเต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เดพเด‚.

เด˜เดŸเตเดŸเด‚ เดฎเต‚เดจเตเดจเต: เด‰เดคเตเดคเดฐเด‚ เดญเต‹เด—เดคเตเดคเดฟเดฒเดพเดฃเต

เด†เดฒเต€เดธเต เด…เดตเดณเตเดŸเต† เดชเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ เดตเดจเตเดจเต เดฌเต‹เดฌเดฟเดจเตเดฑเต† เด•เดฐเดพเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฃเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต, เดˆ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เด…เดตเดณเตเดŸเต† เดฐเดนเดธเตเดฏเด‚ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต.

เด…เดตเดธเดพเดจ เด˜เดŸเตเดŸเด‚: เด•เดŸเด™เตเด•เดฅ เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเต

เดฌเต‹เดฌเต เด‡เดŸเดชเดพเดŸเต เด•เดพเดฃเตเด•เดฏเตเด‚, เด†เดฒเดฟเดธเต เด•เดฐเดพเดฑเดฟเตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดš เดฐเดนเดธเตเดฏเด‚ เด•เดดเตเด•เตป เด•เดฃเตเดฃเตเด•เตŠเดฃเตเดŸเต เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดคเดจเตเดฑเต† เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเดจเตเด•เตพ เดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เดพเตป เด…เดตเตป เดˆ เดฐเดนเดธเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

เด•เดพเดฐเตเดฏเด™เตเด™เตพ เดคเต†เดฑเตเดฑเตเดฎเตเดชเต‹เตพ

เด†เดฒเต€เดธเต เดชเต†เดŸเตเดŸเต†เดจเตเดจเต เดฎเตผเดคเตเดฏเดจเดพเดฏเดฟ เดฎเดพเดฑเตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด‰เดšเตเดšเดญเด•เตเดทเดฃ เดธเดฎเดฏเดคเตเดคเต เดฌเต‹เดฌเต เดคเดจเตเดฑเต† เดฏเตเดตเดพเตป เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต.

เดตเดžเตเดšเด•เดจเดพเดฏ เดฌเต‹เดฌเต เดจเดฒเตเดฒ เดธเดฎเดฏเด‚ เดตเดฐเต† เดชเดฃเด‚ เด•เตˆเดตเดถเด‚ เดตเดฏเตเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเดพเตฝ เด†เดฒเต€เดธเต เดตเตˆเด•เตเดจเตเดจเต‡เดฐเด‚ เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเตป เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเต.

เดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเดฟเดจเต‡เด•เตเด•เดพเตพ เด’เดฐเต เดšเดฟเดคเตเดฐเดฎเดพเดฃเต เดจเดฟเด™เตเด™เตพ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเดคเต†เด™เตเด•เดฟเตฝ, เดนเดฌเตเดฐเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดตเตเด‚ เดฆเตƒเดถเตเดฏเดชเดฐเดตเตเดฎเดพเดฏ เด’เดจเตเดจเต เด‰เดฃเตเดŸเต. เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เดธเตเดตเดพเดชเตเดชเตเด•เตพ เดŽเด™เตเด™เดจเต† เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต เดŽเดจเตเดจเดคเดฟเดจเตเดฑเต† เดตเดฟเดถเดฆเต€เด•เดฐเดฃเด‚.

เด…เดตเดธเดพเดจ เดจเดฟเดฎเดฟเดทเด‚ เดฌเต‹เดฌเดฟเดจเตเดฑเต† เดชเดฃเด‚ เด•เตˆเด•เตเด•เดฒเดพเด•เตเด•เตเดจเตเดจ เด•เตเดทเตเดฆเตเดฐเด•เดพเดฐเดฟเดฏเดพเดฏ เด†เดฒเต€เดธเดฟเดจเต†เดคเดฟเดฐเต† เดจเดฎเตเดฎเต† เด‡เตปเดทเตเดตเตผ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเดพเดฃเต เดŸเตˆเด‚เด”เดŸเตเดŸเตเด•เตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด‚ เดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดตเดฟเดฑเดฏเตเด•เตเด•เตเดจเตเดจ เดตเดฟเดฐเดฒเตเด•เดณเต‹เดŸเต† เด‡เดŸเดชเดพเดŸเดฟเตฝ เดนเต†เด•เตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดธเดฎเดฏเดชเดฐเดฟเดงเดฟ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเดจเตเดจเต.

เดชเด™เตเด•เต†เดŸเตเด•เตเด•เตเดจเตเดจเดตเตผเด•เตเด•เต เด…เดตเดฐเตเดŸเต† เดชเดฃเด‚ เดจเดทเตโ€ŒเดŸเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ; เดชเดฐเดฎเดพเดตเดงเดฟ, เด…เดตเตผ เดฑเต€เดซเดฃเตเดŸเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚.

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเตป เดชเดฟเดจเตเดคเตเดฃเดธเด‚เดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เดฌเตเดฒเต‹เด•เตเด•เตโ€Œเดšเต†เดฏเดฟเดจเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดจเตเดจเตเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเตเด•เต€เดฎเดพเดฃเต เด‡เดคเต:

  • เด’เดฐเต เดถเดพเด–เดฏเดฟเดฒเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดณเตเดณ เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ
  • เดฐเดฃเตเดŸเต เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเตเด•เดณเตเด‚ เด’เดฐเต‡ เดนเดพเดทเดฟเด‚เด—เต เด…เตฝเด—เต‹เดฐเดฟเดคเด™เตเด™เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เดฃเด‚ (เดฐเดนเดธเตเดฏ เดฆเตˆเตผเด˜เตเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเตป เด“เตผเด•เตเด•เตเด•)
  • เดŸเตˆเด‚เดฒเต‹เด•เตเด•เตเด•เตพ.

เด’เดฑเตเดฑเดจเต‹เดŸเตเดŸเดคเตเดคเดฟเตฝ, เดธเตเดฑเตเดฑเต‹เด•เตเด•เต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเดฟเดจเต‹เดŸเต "เดตเดฟเดŸ, เดžเด™เตเด™เดณเตเดŸเต† เดฎเต€เดฑเตเดฑเดฟเด‚เด—เต เด’เดฐเต เดคเต†เดฑเตเดฑเต" เดŽเดจเตเดจเต เดชเดฑเดฏเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดธเดพเดงเตเดฏเดฎเดพเดฃเต, เดชเด•เตเดทเต‡ เด…เดคเต เด…เด™เตเด™เดจเต†เดฏเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ.

เด…เดตเดฏเตเดŸเต† เดŽเดฒเตเดฒเดพ เด—เตเดฃเด™เตเด™เตพเด•เตเด•เตเด‚, เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เดธเตเดตเดพเดชเตเดชเต เดธเตŠเดฒเตเดฏเต‚เดทเดจเตเด•เตพ เด…เดตเดฏเตเดŸเต† เดฆเตเดฐเดตเตเดฏเดคเดฏเดฟเตฝ เดฎเดคเดฟเดชเตเดชเตเดณเดตเดพเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เด•เดพเดฐเดฃเด‚, เดเดฑเตเดฑเดตเตเด‚ เดœเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ BTC-USD เดœเต‹เดกเดฟเดฏเดฟเตฝ, เดซเดฟเดฏเดฑเตเดฑเต เดญเดพเด—เด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดŸเต‹เด•เตเด•เดฃเตˆเดธเต เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ.
USDT เดฏเตเดŸเต† เดตเดฟเดœเดฏเด‚, ERC20 เดซเต‹เตผเดฎเดพเดฑเตเดฑเดฟเตฝ, เดเดฑเตเดฑเดตเตเด‚ เด•เดธเตเดฑเตเดฑเดกเดฟเดฏเตฝ USDC เดฎเตเดคเตฝ เดเดฑเตเดฑเดตเตเด‚ เด…เตฝเด—เต‹เดฐเดฟเดคเด‚ DAI เดตเดฐเต†เดฏเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เดฐเตเดšเดฟเด•เตพเด•เตเด•เตเด‚ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดจเดพเดฃเดฏเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดคเดฐเด‚เด—เดคเตเดคเดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏเดฟ.

เด…เดคเดฟเดจเดพเตฝ, เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดšเดฟเดฒ ERC20 เดŸเต‹เด•เตเด•เดฃเตเด•เตพเด•เตเด•เดพเดฏเดฟ เด†เดฒเต€เดธเต เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเดจเตเด•เตพ เดฌเต‹เดฌเดฟเดจเต เดตเดฟเตฝเด•เตเด•เตเดจเตเดจเตเดตเต†เดจเตเดจเต เดžเด™เตเด™เตพ เดตเดพเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เดžเด™เตเด™เตพเด•เตเด•เต เด‡เดจเดฟเดฏเตเด‚ เดจเดฟเดฐเดตเดงเดฟ เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เด‰เดณเตเดณเดคเดฟเดจเดพเตฝ เดธเตเดฑเตเดฑเต†เดฌเดฟเดฒเตˆเดธเดฑเตเด•เดณเตเดŸเต† เดญเดพเด—เตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเต.

เดตเต‡เด—เดค

เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเดจเตเด‚ Ethereum เด‰เด‚ เดตเตเดฏเด•เตเดคเดฟเด—เดคเดฎเดพเดฏเดฟ เดตเดณเดฐเต† เดตเต‡เด—เดคเดฏเตเดณเตเดณเดคเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เด‡เดตเดฟเดŸเต† เดžเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดŽเดฒเตเดฒเดพ เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด™เตเด™เดณเต‹เดŸเตเด‚ เด•เต‚เดŸเดฟ เด’เดฐเต เดจเดฟเด•เตเดทเต‡เดชเดคเตเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เดฃเด‚, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเดฟเดจเต.

เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด•เดพเดฐเดฃเด‚ เดฐเดนเดธเตเดฏเด‚ เด…เดฑเดฟเดฏเตเดจเตเดจ เดชเด™เตเด•เดพเดณเดฟ เด†เดฆเตเดฏเด‚ เดชเดฃเด‚ เดจเดฟเด•เตเดทเต‡เดชเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดคเดฟเดฐเดพเดณเดฟ เด…เดจเตเดคเดฟเดฎเดคเตเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดพเดคเตเดฐเดฎเต‡ เด…เดตเดจเตเดฑเต† เดญเดพเด—เด‚ เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด•เต‚เดŸเดพเดคเต†, เดตเดณเดฐเต† เด…เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เด’เดฐเต เด…เดธเดฑเตเดฑเดพเดฃเต เดžเด™เตเด™เตพ เด•เตˆเด•เดพเดฐเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต, เด…เดคเดฟเดจเดพเตฝ เดˆ เดธเดฎเดฏเดคเตเดคเต เดจเดฟเดฐเด•เตเด•เต เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดพเด‚, เด•เต‚เดŸเดพเดคเต† เดตเตเดฏเดตเดธเตเดฅเด•เตพ เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเต เดŽเดณเตเดชเตเดชเดฎเดฒเตเดฒ.

เดฐเดนเดธเตเดฏเดพเดคเตเดฎเด•เด‚

เดเดคเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด‚ เดฐเดฃเตเดŸเต เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเตเด•เดณเดฟเดฒเตเด‚ เดชเตเดฐเดพเดตเดธเตเดคเตเด•เตเด•เดณเต† เด…เดตเดถเต‡เดทเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดถเตเดฐเดฆเตเดงเดพเดฒเตเดตเดพเดฏ เด’เดฐเต เดจเดฟเดฐเต€เด•เตเดทเด•เดจเต เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเต เด•เดฐเดพเดฑเตเด•เดณเดฟเดฒเต† เดธเดฎเดพเดจ เดนเดพเดทเตเด•เตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด’เดฐเต เด‡เดŸเดชเดพเดŸเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ เดŽเดจเตเดจ เดฏเตเด•เตเดคเดฟเดธเดนเดฎเดพเดฏ เด’เดฐเต เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเดฒเต†เดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚, เด…เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดฟเดจเดฟเดฎเดฏ เดจเดฟเดฐเด•เตเด•เดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด•เตเดคเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดงเดพเดฐเดพเดณเด‚ เดจเดฟเด—เดฎเดจเด™เตเด™เดณเดฟเตฝ เดŽเดคเตเดคเดฟเดšเตเดšเต‡เดฐเดพเดจเดพเด•เตเด‚.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเตเดฑเตเดฑเต‹เด•เตเด•เต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เด…เดฑเดฟเดฏเตเดฎเตเดชเต‹เตพ, เด…เดคเต เด…เด™เตเด™เต‡เดฏเดฑเตเดฑเด‚ เด…เดธเตเด–เด•เดฐเดฎเดพเดฃเต; เดŽเดฒเตเดฒเดพเดตเดฐเตเด‚ เด…เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด…เดฑเดฟเดฏเตเดฎเตเดชเต‹เตพ, เด…เดคเต เด‡เดฐเดŸเตเดŸเดฟ เด…เดธเตเด–เด•เดฐเดฎเดพเดฃเต.

เด‰เดชเดฏเต‡เดพเด—เดฏเต‡เดพเด—เตเดฏเดค

เดฌเตเดฒเต‹เด•เตเด•เตเดšเต†เดฏเดฟเดจเดฟเดจเตเดฑเต† เดถเด•เตเดคเดฎเดพเดฏ เดชเต‹เดฏเดฟเดจเตเดฑเต เดชเตŠเดคเตเดตเดพเดฏเตเด‚ เดˆเดคเตผ เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚. เดตเดฟเตฝเด•เตเด•เตเดจเตเดจเดฏเดพเดณเตเด‚ เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเดณเตเด‚ เดŽเดจเตเดคเต†เดฒเตเดฒเดพเด‚ เด†เด‚เด—เตเดฏเด™เตเด™เดณเดพเดฃเต เด•เดพเดฃเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚.

เดตเดฟเตฝเดชเตเดชเดจเด•เตเด•เดพเดฐเดจเตเดฑเต† เด•เดพเดดเตเดšเดชเตเดชเดพเดŸเดฟเตฝ, เดŽเดฒเตเดฒเดพเด‚ เดคเดพเดฐเดคเดฎเตเดฏเต‡เดจ เดฒเดณเดฟเดคเดฎเดพเดฃเต: เดจเดฟเด™เตเด™เตพ เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเตป เด’เดฐเต p2sh เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดˆเดคเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต, เดŽเดฒเตเดฒเดพเด‚ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฃเต.

เด•เดฐเดพเตผเด’เดฐเต เดธเตเดตเดพเดชเตเดชเดฟเดจเดพเดฏเดฟ Github-เดจเตเดฑเต† เดถเดฐเดพเดถเดฐเดฟเดฏเตเดณเตเดณ เด•เดฐเดพเตผ เดจเต‹เด•เตเด•เดพเด‚:

contract iERC20 {
    function totalSupply() public view returns (uint256);
    function transfer(address receiver, uint numTokens) public returns (bool);
    function balanceOf(address tokenOwner) public view returns (uint);
    function approve(address delegate, uint numTokens) public returns (bool);
    function allowance(address owner, address delegate) public view returns (uint);
    function transferFrom(address owner, address buyer, uint numTokens) public returns (bool);
}

contract Swapper {

    struct Swap {
        iERC20 token;
        bytes32 hash;
        uint amount;
        uint refundTime;
        bytes32 secret;
    }

    mapping (address => mapping(address => Swap)) swaps;

    function create(iERC20 token, bytes32 hash, address receiver, uint amount, uint refundTime) public {
        require(swaps[msg.sender][receiver].amount == 0); // check is swap with given hash already exists
        require(token.transferFrom(msg.sender, address(this), amount)); // transfer locked tokens to swap contract
        swaps[msg.sender][receiver] = Swap(token, hash, amount, refundTime, 0x00); //create swap
    }
    
    function hashOf(bytes32 secret) public pure returns(bytes32) {
        return sha256(abi.encodePacked(secret));
    }


    function withdraw(address owner, bytes32 secret) public {
        Swap memory swap = swaps[owner][msg.sender];
        require(swap.secret == bytes32(0));
        require(swap.hash == sha256(abi.encodePacked(secret))); // swap exists
        swaps[owner][msg.sender].secret = secret;
        swap.token.transfer(msg.sender, swap.amount);
    }

    function refund(address receiver) public {
        Swap memory swap = swaps[msg.sender][receiver];
        require(now > swap.refundTime);
        delete swaps[msg.sender][receiver];
        swap.token.transfer(msg.sender, swap.amount);
    }
}

เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เต‚! เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดฒเต† เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด‡เดคเตเด‚ เดฎเดฑเตเดฑเต เด•เดฐเดพเดฑเตเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฐเตเดคเต, เด…เดต เดชเตเดฐเดฆเตผเดถเดจ เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดฎเดพเดคเตเดฐเด‚ เดŽเดดเตเดคเดฟเดฏเดคเดพเดฃเต. เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เด‡เดคเต.

  • เดฌเต‹เดฌเต เดŸเต‹เด•เตเด•เตบ เด•เดฐเดพเดฑเดฟเดจเตเดฑเต† เดฐเต€เดคเดฟ เดตเดฟเดณเดฟเด•เตเด•เดฃเด‚ approve, เดธเตเดตเดพเดชเตเดชเต เด•เดฐเดพเดฑเดฟเดจเต เด…เดคเดฟเดจเตเดฑเต† เดŸเต‹เด•เตเด•เดฃเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเดตเต‡เดถเดจเด‚ เดจเตฝเด•เตเดจเตเดจเต
  • เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฌเต‹เดฌเต เดธเตเดตเดพเดชเตเดชเตเด‚ เด•เดฐเดพเดฑเตเด‚ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต transferFrom เด…เดฏเดšเตเดšเดฏเดพเดณเตเดŸเต† เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตŠเดฃเตเดŸเตเดชเต‹เด•เตเดจเตเดจเต
  • เด†เดฒเต€เดธเต เด‡เตป withdraw เดฐเดนเดธเตเดฏเดตเตเด‚ เด•เดฐเดพเตผ เด•เต‹เดณเตเด•เดณเตเด‚ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต transfer

เดฎเดฟเด•เตเด• เดตเดพเดฒเดฑเตเดฑเตเด•เดณเตเด‚ เด•เตเดฐเดฟเดชเตโ€Œเดฑเตเดฑเต‹ เดŽเด•เตโ€Œเดธเตโ€Œเดšเต‡เดžเตเดšเตเด•เดณเตเด‚ เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ approve เดŸเต‹เด•เตเด•เดฃเตเด•เตพ, เดจเดฒเตเดฒ เด•เดพเดฐเดฃเดตเตเดฎเตเดฃเตเดŸเต.

เด‰เดชเดฏเต‹เด•เตเดคเดพเด•เตเด•เตพ เดคเดจเตเดจเต† เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดคเต†เดฑเตเดฑเตเด•เตพ เดตเดฐเตเดคเตเดคเตเด•เดฏเตเด‚ เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เดจเดทเตเดŸเดชเตเดชเต†เดŸเตเด‚. เดŽเดคเตผเดธเตเด•เดพเดจเดฟเดฒเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเด™เตเด™เตพ เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดพเดจเตเดฎเดพเดฐเตเดŸเต† เดตเดฟเดฒเดพเดชเด™เตเด™เตพ เดจเดฟเดฑเดžเตเดžเดคเดพเดฃเต.

เด’เดฐเต เด•เดฐเดพเตผ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ ETH-เตฝ เด’เดฐเต เด•เดฎเตเดฎเต€เดทเตป เดจเตฝเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต, เด…เดคเดฟเดจเตผเดคเตเดฅเด‚ เด‡เดŸเดชเดพเดŸเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดชเด™เตเด•เต†เดŸเตเด•เตเด•เตเดจเตเดจ เดฐเดฃเตเดŸเต เดชเต‡เดฐเตเด‚ เด…เดคเดฟเตฝ เดธเตเดฑเตเดฑเต‹เด•เตเด•เต เดšเต†เดฏเตเดฏเดฃเด‚, เด•เตเดฑเดšเตเดšเต เด†เดณเตเด•เตพ เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต.

เด—เตเดฏเดพเดธเต เดนเต‹เตพเดกเตผ

เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด’เดฐเต เดจเดฒเตเดฒ เดธเตเดฅเดฒเด‚, เดธเดพเดงเตเดฏเดฎเดพเด•เตเดจเตเดจเดฟเดŸเดคเตเดคเต†เดฒเตเดฒเดพเด‚ เด…เดฏเดšเตเดšเดฏเดพเดณเตเดŸเต† เดชเดฐเดฟเดถเต‹เดงเดจ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดตเดฐเตเดจเตเดจ เดŽเดฒเตเดฒเดพเดตเตผเด•เตเด•เตเดฎเดพเดฏเดฟ เด…เดงเดฟเด• เด—เตเดฏเดพเดธเต เด•เต‹เดณเดฟเด‚เด—เต เด•เดฐเดพเดฑเตเด•เดณเดพเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดจเตเดจ เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด‰เดฃเตเดŸเต†เดจเตเดจเต เด•เดฐเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต.

เดชเตเดคเตเด•เตเด•เดฟเดฏ เด•เดฐเดพเตผ

contract Swapper {

    struct Swap {
        iERC20 token;
        address receiver;
        uint amount;
        address refundAddress;
        uint refundTime;
    }

    mapping (bytes32 =>  Swap) swaps;

    function create(iERC20 token, bytes32 hash, address receiver, uint amount, address refundAddress, uint refundTime) public {
        require(swaps[hash].amount == 0); // use hash once
        require(token.transferFrom(msg.sender, address(this), amount));
        swaps[hash] = Swap(token, receiver, amount, refundAddress, refundTime);
    }


    function withdraw(bytes memory secret) public {
        bytes32 hash = sha256(secret);
        Swap memory swap = swaps[hash];
        require(swap.amount > 0);
        delete swaps[hash];
        swap.token.transfer(swap.receiver, swap.amount);
    }

    function refund(bytes32 hash) public {
        Swap memory swap = swaps[hash];
        require(now > swap.refundTime);
        delete swaps[hash];
        swap.token.transfer(swap.refundAddress, swap.amount);
    }
}

เด•เดฐเดพเตผ-เด•เต€ เดฆเตเดตเตˆเดคเดตเดพเดฆเดตเตเด‚ EIP 712

เดจเดฎเตเด•เตเด•เดฑเดฟเดฏเดพเดตเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดตเดพเดฏเตเดตเดฟเตฝ เด’เดฐเต เดตเดฟเดฒเดพเดธเด‚ เด’เดฐเต เด•เดฐเดพเดฑเดพเด•เดพเด‚, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดคเต เด’เดฐเต เดตเดฟเดทเดฏเดฎเดพเด•เดพเด‚, เด…เดคเดพเดฏเดคเต เด’เดฐเต เด•เต€.
เดšเดฟเดฒ เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเดฟเตฝ เด’เดชเตเดชเดฟเดŸเตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด•เต€เดฏเตเดŸเต† เดชเตเดฐเดงเดพเดจ เดœเต‹เดฒเดฟ.

เดฌเต‹เดฌเต-เด•เต€เดฏเตเดŸเต† เด’เดชเตเดชเต เด†เดฆเตเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŽเดฒเตเดฒเดพ เดชเดพเดธเตเด•เดณเตเด‚ เดจเตฝเด•เตเดจเตเดจ เดฌเต‹เดฌเต-เด•เต‹เตบเดŸเตเดฐเดพเด•เตเดฑเตเดฑเต เด’เดฐเต เด…เดฏเดฏเตเด•เตเด•เตเดจเตเดจเดฏเดพเดณเดพเดฏเดฟ เดจเดฎเตเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เด‡เดชเตเดชเต‹เตพ, เด†เตผเด•เตเด•เตเด‚ เดชเด™เตเด•เดพเดณเดฟเดฏเตเดŸเต† เด•เดฎเตเดฎเต€เดทเดจเต† เดธเตเดชเต‹เตบเดธเตผ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดคเดพเด•เตเด•เต‹เตฝ เด…เดฑเดฟเดฏเตเดจเตเดจ เด’เดฐเดพเตพ เดฎเดพเดคเตเดฐเดฎเต‡ เดคเต€เดฐเตเดฎเดพเดจเดฎเต†เดŸเตเด•เตเด•เต‚.

เดฌเต‹เดฌเต-เด•เดฐเดพเตผ

library EIP712ProxyLibrary {
    function hashCommand(address sender, iERC20 token, Swapper swapper, bytes32 hash, address receiver, uint amount, address refundAddress, uint refundTime) public view returns(bytes32);
}

contract ProxyBob {
    address owner;

    constructor(address _owner) public {
        owner = _owner;
    }

    function createSwap(Swapper swapper, iERC20 token, bytes32 hash, address receiver, uint amount, address refundAddress, uint refundTime, uint8 v, bytes32 r, bytes32 s) public {
        require(owner == ecrecover(EIP712ProxyLibrary.hashCommand(address(this), token, swapper, hash, receiver, amount, refundAddress, refundTime), v, r, s));
        token.approve(address(swapper), amount);
        swapper.create(token, hash, receiver, amount, refundAddress, refundTime);
    }
}

เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดพ เด˜เดŸเดจเด•เดณเตเดŸเต† เดธเดฟเด—เตเดจเต‡เดšเตเดšเดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดฎเดพเดจเดฆเดฃเตเดกเด‚ Ethereum เด‰เดฃเตเดŸเต เด‡เดเดชเดฟ 712, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เต‚เดŸเตเดคเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ เดฎเต†เดฑเตเดฑเดพเดฎเดพเดธเตเด•เต เดตเดพเดฒเดฑเตเดฑเต เดฌเตเดฒเต‹เด—เต

เดตเดฟเดญเดœเดฟเดšเตเดšเต เดœเดฏเดฟเด•เตเด•เตเด•

เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เด’เดฐเต Ethereum เด•เดฐเดพเตผ เดนเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดธเดพเดนเดšเดฐเตเดฏเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

  • เดชเด™เตเด•เดพเดณเดฟ เด•เดฐเดพเดฑเดฟเตฝ เดชเดฃเด‚ เดจเดฟเด•เตเดทเต‡เดชเดฟเด•เตเด•เตเดจเตเดจเต
  • เดŽเดจเตเดจเดฟเดŸเตเดŸเต เด…เดตเตป เดซเดฃเตเดŸเต เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต
  • เดŽเดจเตเดคเต‹ เด•เตเดดเดชเตเดชเด‚ เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต
  • เด…เด•เตเดฐเดฎเดฟ เดตเต€เดฃเตเดŸเตเด‚ เดตเต€เดฃเตเดŸเตเด‚ เดชเดฃเด‚ เด•เตˆเด•เตเด•เดฒเดพเด•เตเด•เตเดจเตเดจเต

เดจเดฎเตเดฎเตพ เด†เดฆเตเดฏเดคเตเดคเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดŸเด™เตเด™เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด•เดŸเด™เตเด•เดฅ เดฌเตˆเดฑเตเดฑเตเด•เดณเตเดŸเต† เด’เดฐเต เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดธเต†เดฑเตเดฑเต เด†เดฃเต†เด™เตเด•เดฟเตฝ เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเต†เดฑเตเดฑเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต.

เด’เดฐเต เดฎเดฟเดฒเตเดฏเตบ เดŽเด™เตเด™เดจเต† เดฎเต‹เดทเตเดŸเดฟเด•เตเด•เดพเด‚เด’เดฐเต เดนเดพเดทเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฐเต เดธเตเดตเดพเดชเตเดชเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• 0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925
เด‡เดคเต sha256-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณเดคเดพเดฃเต 0x0000000000000000000000000000000000000000000000000000000000000000
เดžเด™เตเด™เตพ เดฐเดนเดธเตเดฏเด‚ เด•เตˆเดฎเดพเดฑเตเด•เดฏเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต
เดžเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เดธเด‚เดชเตเดฐเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดฎเดฑเตเดฑเดพเดฐเตเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดŽเดŸเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ 0 = 0

เด“เดฐเต‹ เดŸเตเดฐเต‡เดกเดฟเดจเตเด‚ เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด•เดฐเดพเตผ เด‰เดฃเตเดŸเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, EVM เดคเดฒเดคเตเดคเดฟเตฝ เดจเดฎเตเด•เตเด•เต เด•เดฐเดพเดฑเตเด•เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเด•เตเด•เดพเด‚.

เดŽเดจเตเดจเดพเตฝ เดŽเดฒเตเดฒเดพเด‚ เด…เดฒเตเดฒ: เด‡เดชเตเดชเต‹เตพ เด“เดฐเต‹ เด‡เดŸเดชเดพเดŸเดฟเดจเตเด‚ เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดตเดฟเดฒเดพเดธเดฎเตเดฃเตเดŸเต, เด…เดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดเดคเต เดตเดพเดฒเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเดฟเตฝ เดจเดฟเดจเตเดจเต‹ เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚.

เด•เดฐเดพเดฑเตเด•เตพ เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•2

เดŽเดจเตเดจเดพเตฝ เด‡เดชเตเดชเต‹เตพ เด“เดฐเต‹ เด‡เดŸเดชเดพเดŸเตเด•เตพเด•เตเด•เตเด‚ เดžเด™เตเด™เตพ เด’เดฐเต เด•เดฐเดพเตผ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•เดฏเตเด‚ เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเตพ เดฒเต‡เดฌเตผ "เด•เตเดฐเดฟเดชเตเดฑเตเดฑเต‹-เดซเตˆเตปเดกเดฟเด‚เด—เต" เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. "เดฐเดพเดตเดฟเดฒเต† เด•เดฐเดพเดฑเตเด•เตพ, เดตเตˆเด•เตเดจเตเดจเต‡เดฐเดคเตเดคเต† เดชเดฃเด‚" เดŽเดจเตเดจ เดธเตเด•เต€เดฎเดฟเตฝ, เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเตพ เดตเต€เดดเตเดฎเต†เดจเตเดจ เด…เดชเด•เดŸเดฎเตเดฃเตเดŸเต, เด•เดฐเดพเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดˆเดฅเตผ เด‡เดคเดฟเดจเด•เด‚ เดšเต†เดฒเดตเดดเดฟเดšเตเดšเต.

เดฐเดพเดตเดฟเดฒเต† เดชเดฃเดตเตเด‚ เดตเตˆเด•เตเดจเตเดจเต‡เดฐเด™เตเด™เดณเดฟเตฝ เดฌเตˆเดฑเตเดฑเตเด‚ เด‰เดฃเตเดŸเต†เดจเตเดจเต เดตเดฐเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเดฎเต‹?

เด•เต‹เตบเดธเตเดฑเตเดฑเดพเดจเตเดฑเดฟเดจเต‹เดชเตเดชเดฟเตพ เดนเดพเตผเดกเต เดซเต‹เตผเด•เตเด•เดฟเดฒเต† เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด‡เดเดชเดฟ 1014 เดจเดฟเตผเดฃเตเดฃเดพเดฏเด• เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เด’เดฐเต เดชเตเดคเดฟเดฏ เด•เดฐเดพเตผ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจ create2 เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดšเต‡เตผเดคเตเดคเต

keccak256( 0xff ++ address ++ salt ++ keccak256(init_code))[12:]

เดŽเดตเดฟเดŸเต†เดฏเดพเดฃเต

  • เดตเดฟเดฒเดพเดธเด‚ - เดซเดพเด•เตเดŸเดฑเดฟ เด•เดฐเดพเตผ เดตเดฟเดฒเดพเดธเด‚
  • เด‰เดชเตเดชเต - เด•เตเดฑเดšเตเดšเต เดธเด‚เด–เตเดฏ, เด…เดคเดฟเดจเตเดฑเต† เด…เตผเดคเตเดฅเด‚ เด…เดŸเตเดคเตเดค เดชเดฐเดฎเตเดชเดฐเดฏเดฟเตฝ เดจเดฎเตเดฎเตพ เดชเด เดฟเด•เตเด•เตเด‚
  • init_code โ€” เด•เดฐเดพเตผ เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเตเด‚ เด•เตบเดธเตเดŸเตเดฐเด•เตเดฑเตเดฑเตผ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเตเด•เดณเตเด‚.

เดซเดพเด•เตเดŸเดฑเดฟเด…เดธเด‚เดฌเตเดฒเดฟเดฏเดฟเดฒเต‚เดŸเต† เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‚, เด…เดคเดฟเดจเดพเตฝ เดซเดพเด•เตเดŸเดฑเดฟ เด…เตฝเดชเตเดชเด‚ เดญเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต:

contract Factory {
  event Deployed(address addr, uint256 salt);

  function create2(bytes memory code, uint256 salt) public {
    address addr;
    assembly {

      addr := create2(0, add(code, 0x20), mload(code), salt)
    }

    emit Deployed(addr, salt);
  }
}

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เดฐเดพเตผ เด•เต‹เดกเต web3 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฒเดญเดฟเด•เตเด•เตเด‚:

const MyContract = new web3.eth.Contract(ABI, {})
const ัode = MyContract.deploy({
    data: BYTECODE,
    arguments: contructorArgs  
}).encodeABI();
const factory = new web3.eth.Contract(FACTORY_ABI, factoryAddress);
tx = factory.methods.create2(ัode, salt);

เดธเต‹เดณเดฟเดกเดฟเดฑเตเดฑเดฟเดฏเดฟเตฝ เดชเดฐเดฟเดฎเดฟเดคเดฎเดพเดฏ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดณเตเดณเดคเดฟเดจเดพเตฝ, เดˆเดฅเดฑเดฟเดจเตเดฑเต† เดšเดฟเดฒ เดธเต‚เด•เตเดทเตเดฎเดคเด•เตพ เด•เดพเดฐเดฃเด‚ เด’เดฐเต เด•เดฐเดพเดฑเดฟเดจเตเดณเตเดณ เดตเดพเดคเด•เด‚ เดคเต†เดฑเตเดฑเดพเดฏเดฟ เด•เดฃเด•เตเด•เดพเด•เตเด•เดพเด‚.

เด—เตเดฏเดพเดธเต เด•เตเดทเดพเดฎเด‚ เด‰เดฃเตเดŸเดพเดฏเดพเตฝ, เดจเดฟเด™เตเด™เตพ เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เด†เดตเดถเตเดฏเดคเตเดคเดฟเดจเต เด—เตเดฏเดพเดธเต เด‡เดฒเตเดฒเต†เดจเตเดจเต เดฑเดฟเดชเตเดชเต‹เตผเดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดคเต†, เด’เดฐเต เด†เดจเตเดคเดฐเดฟเด• เดชเดฟเดถเด•เต เด•เตŠเดฃเตเดŸเต เด•เดฐเดพเตผ เดคเด•เดฐเตเดจเตเดจเดคเต เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚ เดธเดจเตเดคเต‹เดทเด•เดฐเดฎเดพเดฃเต.

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เดฎเตเตปเด•เต‚เดŸเตเดŸเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเดคเต† เดคเดจเตเดจเต† เด•เดฐเดพเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚, เดžเด™เตเด™เตพ เด…เดต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเตฝ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเตเดตเดฐเต†, เด•เดฐเดพเตผ เด•เตƒเดคเตเดฏเดฎเดพเดฏเดฟ เดŽเดจเตเดคเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เด†เดฐเตเด‚ เดŠเดนเดฟเด•เตเด•เดฟเดฒเตเดฒ.

เด•เดพเด•เตเด• เด•เดพเด•เตเด•เดฏเตเดŸเต† เด•เดฃเตเดฃเต เดชเดฑเดฟเด•เตเด•เดฟเดฒเตเดฒ

เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เด…เดจเดฒเดฟเดธเตเดฑเตเดฑเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เด•เดณเตเดณเดชเตเดชเดฃเด‚ เดตเต†เดณเตเดชเตเดชเดฟเด•เตเด•เตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดญเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต† เดถเดคเตเดฐเตเด•เตเด•เตพเด•เตเด•เต†เดคเดฟเดฐเดพเดฏ เดชเต‹เดฐเดพเดŸเตเดŸเดคเตเดคเดฟเตฝ เดจเดฒเตเดฒ เดจเดฟเด•เตเดทเต‡เดชเด‚ เดฒเดญเดฟเดšเตเดš เด’เดฐเดพเตพ, เด…เดคเตเดคเดฐเด‚ เดฌเดพเดฒเดฟเดถเดฎเดพเดฏ เดคเดจเตเดคเตเดฐเด™เตเด™เดณเดพเตฝ เดคเดŸเดฏเดชเตเดชเต†เดŸเดฟเดฒเตเดฒเต†เดจเตเดจเตเด‚ เด•เดฐเดพเตผ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเดฟเดจเต เดถเต‡เดทเดตเตเด‚ เด…เดตเตป เดนเดพเดทเต เด•เดพเดฃเตเดฎเต†เดจเตเดจเตเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต.

เดนเดพเดทเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดŽเด™เตเด™เดจเต† เดคเดŸเดฏเดพเด‚?

เดžเด™เตเด™เตพ เดธเตเดตเดพเดชเตเดชเต เดคเดจเตเดจเต† เด“เดซเตโ€Œเดšเต†เดฏเดฟเดจเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเต: เด’เดฐเต เดธเตเดตเดพเดชเตเดชเต เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเดจเต เดชเด™เตเด•เดพเดณเดฟเด•เตพ เด’เดชเตเดชเตเด•เตพ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต, เดคเตเดŸเตผเดจเตเดจเต เดฐเดนเดธเตเดฏเด‚ เดธเตเดตเด•เดพเดฐเตเดฏเดฎเดพเดฏเดฟ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต.

เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเดฟเด†เดฒเต€เดธเดฟเดจเตเด‚ เดฌเต‹เดฌเดฟเดจเตเด‚ เด’เดชเตเดชเต เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ เดซเดฃเตเดŸเต เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเดจเตเดจ เดฐเดฃเตเดŸเต "เดฎเตพเดŸเตเดŸเดฟเดธเดฟเด—เต" เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต.

เดชเด™เตเด•เต†เดŸเตเด•เตเด•เตเดจเตเดจเดตเดฐเดฟเตฝ เด†เดฐเต†เด™เตเด•เดฟเดฒเตเด‚ เด“เดซเตโ€Œเดฒเตˆเดจเดฟเตฝ เดชเต‹เด•เตเดจเตเดจเดคเต เด’เดฐเต เดฆเตเดฐเดจเตเดคเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเดคเต เดคเดŸเดฏเดพเตป, เดžเด™เตเด™เตพ เดจเดฒเตเดฒเตŠเดฐเต เดชเดดเดฏ เดŸเตˆเด‚เด”เดŸเตเดŸเต เดšเต‡เตผเด•เตเด•เตเด‚.

เด†เดฒเต€เดธเตเด‚ เดฌเต‹เดฌเตเด‚ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดจเดฟเด•เตเดทเต‡เดชเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเต

  • เด†เดฒเต€เดธเต เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดŠเดนเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฌเต‹เดฌเดฟเดจเต เดฐเดนเดธเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดนเดพเดทเตเด‚ เดฌเดฟเดฑเตเดฑเตเด•เต‹เดฏเดฟเดจเตเด•เตพ เดธเตเดตเดพเดชเตเดชเต เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจ เด’เดฐเต เด‡เดŸเดชเดพเดŸเต เด’เดชเตเดชเตเด‚ เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดฎเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดนเดพเดทเตเดณเตเดณ เด’เดฐเต เดธเตเดตเดพเดชเตเดชเต เด•เดฐเดพเดฑเดฟเดฒเต‡เด•เตเด•เต เดŸเต‹เด•เตเด•เดฃเตเด•เตพ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เดพเตป เดฌเต‹เดฌเต เด†เดฒเต€เดธเดฟเดจเต เด’เดฐเต เด’เดชเตเดชเต เดจเตฝเด•เตเดจเตเดจเต.
  • เด†เดฒเต€เดธเต เดฌเต‹เดฌเดฟเดจเต‹เดŸเต เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เดชเดฑเดฏเตเดจเตเดจเต.

เดˆ เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ, เดเด•เตเดฏเด‚ เดตเดฐเตเดจเตเดจเต: เด†เดฒเต€เดธเดฟเดจเตเด‚ เดฌเต‹เดฌเดฟเดจเตเด‚ เดŽเดชเตเดชเต‹เตพ เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เดฐเดพเตผ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดธเต—เดนเตƒเดฆ เด…เดจเตเดคเดฐเต€เด•เตเดทเดคเตเดคเดฟเตฝ, เด…เดจเตเดคเดฟเดฎ เดตเดฟเดฒเดพเดธเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดชเดฃเด‚ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เดพเตป เด…เดตเตผเด•เตเด•เต เด’เดชเตเดชเตเด•เตพ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚.

เดชเตเดฑเดคเตเดคเตเดณเตเดณ เด’เดฐเต เดจเดฟเดฐเต€เด•เตเดทเด•เดจเต† เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเดฟเดŸเดคเตเดคเต‹เดณเด‚, เดชเดฃเด‚ 2-เด“เดซเต-2 เดฎเตพเดŸเตเดŸเดฟเดธเดฟเด—เต เด•เดฐเดพเดฑเดฟเดฒเต‚เดŸเต† เด•เดŸเดจเตเดจเตเดชเต‹เดฏเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต.

เดŽเดฒเตเดฒเดพ เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฃเด™เตเด™เตพเด•เตเด•เตเด‚ เดถเต‡เดทเด‚ เดฐเดนเดธเตเดฏเด‚ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดˆ เดธเตเด•เต€เด‚ เดฐเดฃเตเดŸเต เด•เด•เตเดทเดฟเด•เดณเต†เดฏเตเด‚ เด’เดฐเต‡ เดธเดฎเดฏเด‚ เดจเดฟเด•เตเดทเต‡เดชเดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

เดฒเต†เดตเตฝ 2

เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดชเดฃเด‚ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เดพเดจเตเด‚ เด’เดฐเต เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เด‡เดŸเดชเดพเดŸเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเดฟเดฒเตเดฒ เดŽเดจเตเดจเดคเดฟเดจเดพเตฝ, เดจเดฟเดฐเดตเดงเดฟ เดตเดฟเดฒเดพเดธเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต เดชเดฃเด‚ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเดฐเดฟเดงเดฟเดฏเดฟเดฒเตเดฒเดพเดคเตเดค เด‡เดŸเดคเตเดคเดฐเด‚ เด‡เดŸเดชเดพเดŸเตเด•เตพ เดจเดŸเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚ เด’เดจเตเดจเตเด‚ เดžเด™เตเด™เดณเต† เดคเดŸเดฏเตเดจเตเดจเดฟเดฒเตเดฒ. เด‡เดคเต เด’เดฐเต เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดธเต†เดฑเตเดฑเต เด†เดฃเต†เดจเตเดจเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เด’เดฐเต เดธเตเดตเดพเดชเตเดชเต เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟเดฏเดพเตฝ, เด…เดคเต เดจเดฟเตผเดคเตเดคเดพเตป เดชเตเดฐเดฏเดพเดธเดฎเดพเดฃเต.

เด‡เดชเตเดชเต‹เตพ เด†เดฒเต€เดธเดฟเดจเตเด‚ เดฌเต‹เดฌเดฟเดจเตเด‚ เด…เดตเดฐเตเดŸเต† เดŽเดฒเตเดฒเดพ เดถเด•เตเดคเดฟเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดคเดฟเดฐเดฟเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดธเต†เด•เตเด•เตปเดกเดฟเตฝ เดธเดคเต‹เดทเดฟ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดคเตเด•เตŠเดฃเตเดŸเต เดถเดฐเดพเดถเดฐเดฟ เดตเดฟเดฒ เดธเตเดตเดฏเดฎเต‡เดต เด•เดฃเด•เตเด•เดพเด•เตเด•เตเด•, เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเดพเตผเด•เตเด•เดฑเตเดฑเต เดฎเต‡เด•เตเด•เดฑเต†เดฏเตเด‚ เดฒเดฟเด•เตเดตเดฟเดกเดฟเดฑเตเดฑเดฟ เดธเตเดตเต€เด•เตผเดคเตเดคเดพเดตเดฟเดจเต†เดฏเตเด‚ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•.

เด˜เดŸเตเดŸเด‚ เด˜เดŸเตเดŸเดฎเดพเดฏเดฟ

  • เดตเดฟเตฝเดชเตเดชเดจเด•เตเด•เดพเดฐเตป เด’เดฐเต เดฐเดนเดธเตเดฏเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•เดฏเตเด‚ เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเตพเด•เตเด•เต เดฐเดนเดธเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดนเดพเดทเตเด‚ เด‡เดŸเดชเดพเดŸเต เด’เดชเตเดชเต เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด…เดตเดฟเดŸเต† เดซเดฃเตเดŸเดฟเดจเตเดฑเต† เด’เดฐเต เดญเดพเด—เด‚ p2sh เดธเตเดตเดพเดชเตเดชเต เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด•เดฏเตเด‚ เดฌเดพเด•เตเด•เดฟ เดตเดฟเตฝเดชเตเดชเดจเด•เตเด•เดพเดฐเดจเตเดฑเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
  • เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเตพ เดธเตเดตเดพเดชเตเดชเต เดŸเต‹เด•เตเด•เดฃเตเด•เดณเตเด‚ เดฎเดพเดฑเตเดฑเดตเตเด‚ เดธเตเดตเต€เด•เตผเดคเตเดคเดพเดตเดฟเดจเตเดฑเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด…เดฏเดฏเตเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด’เดชเตเดชเต เดธเดฎเตผเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.
  • เดตเดฟเตฝเดชเตเดชเดจเด•เตเด•เดพเดฐเตป เดฐเดนเดธเตเดฏเด‚ เดตเต†เดณเดฟเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
  • เดšเดฐเดฟเดคเตเดฐเด‚ เด’เดฐเต เดชเตเดคเดฟเดฏ เดฐเดนเดธเตเดฏเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดธเตเดตเดพเดชเตเดชเดฟเดจเตเด‚ เดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเด‚ เดชเตเดฑเดฎเต‡, เดตเดพเด™เตเด™เตเดจเตเดจเดฏเดพเดณเตเดŸเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเตเดฎเตเดชเต เดตเดพเด™เตเด™เดฟเดฏเดคเตเด‚ เดตเดฟเตฝเดชเตเดชเดจเด•เตเด•เดพเดฐเดจเตเดฑเต† เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดชเดฃเดฎเดŸเดšเตเดšเดคเตเด‚ เดชเดฟเตปเดตเดฒเดฟเด•เตเด•เตฝ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพเด•เตเด•เต เด…เดคเดฟเดตเต‡เด— p2p เดŸเตเดฐเต‡เดกเดฟเด‚เด—เดฟเดฒเต‡เด•เตเด•เต เด†เด•เตโ€Œเดธเดธเต เด‰เดฃเตเดŸเต, เดชเตเดฐเดงเดพเดจ เด•เดพเดฐเตเดฏเด‚ เดธเดฎเดฏเด‚ เดŸเตเดฐเดพเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดธเดฎเดฏเดชเดฐเดฟเดงเดฟเด•เตเด•เต เดฎเตเดฎเตเดชเต เดกเต€เตฝ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด• เดŽเดจเตเดจเดคเดพเดฃเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดžเด™เตเด™เดณเตเดŸเต† เด•เดฐเดพเดฑเตเด•เตพ เด…เตฝเดชเตเดชเด‚ เดคเดฟเดฐเตเดคเตเดคเดฟเดฏเดพเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดšเดพเดจเดฒเตเด•เตพเด•เตเด•เต เด…เดจเดถเตเดตเดฐเดค เดจเตฝเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เด‡เดคเต เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเต เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเด‚.

เดŽเดจเตเดจเดพเตฝ เด…เดŸเตเดคเตเดค เดŽเดชเตเดชเดฟเดธเต‹เดกเดฟเตฝ เดจเดฎเตเดฎเตพ เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

DDoS เดชเดฐเดฟเดฐเด•เตเดทเดฏเตเดณเตเดณ เดธเตˆเดฑเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเดฟ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดตเดพเด™เตเด™เตเด•, VPS VDS เดธเต†เตผเดตเดฑเตเด•เตพ ๐Ÿ”ฅ DDoS เดชเดฐเดฟเดฐเด•เตเดท, VPS VDS เดธเต†เตผเดตเดฑเตเด•เตพ เด‰เดณเตเดณ เดตเดฟเดถเตเดตเดธเดจเต€เดฏเดฎเดพเดฏ เดตเต†เดฌเตโ€Œเดธเตˆเดฑเตเดฑเต เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดตเดพเด™เตเด™เต‚ | ProHoster