அணு பரிமாற்றங்கள் ஏன் மோசமாக உள்ளன மற்றும் சேனல்கள் அவர்களுக்கு எவ்வாறு உதவுகின்றன, கான்ஸ்டான்டினோபிள் ஹார்ட் ஃபோர்க்கில் என்ன முக்கியமான விஷயங்கள் நடந்தன மற்றும் எரிவாயுவுக்கு பணம் செலுத்த எதுவும் இல்லாதபோது என்ன செய்வது.
எந்தவொரு பாதுகாப்பு நிபுணரின் முக்கிய உந்துதல் பொறுப்பைத் தவிர்ப்பதற்கான விருப்பமாகும்.
பிராவிடன்ஸ் இரக்கமுள்ளவர், முதல் மீளமுடியாத பரிவர்த்தனைக்காக காத்திருக்காமல் ICO ஐ விட்டு வெளியேறினேன், ஆனால் விரைவில் கிரிப்டோ பரிமாற்றத்தை உருவாக்குவதைக் கண்டேன்.
நான் நிச்சயமாக Malchish Kibalchish இல்லை, மேலும் அனைத்து சாவிகளையும் கடவுச்சொற்களையும் ஒப்படைக்க எனக்கு ஒரு கடுமையான பார்வை போதும். எனவே, ஒரு கட்டிடக் கலைஞராக எனது முக்கிய குறிக்கோள், எனக்குப் பிரியமான உள்கட்டமைப்பு கூறுகளிலிருந்து முடிந்தவரை கிரிப்டானாலிசிஸின் ரெட்-ஹாட் ஸ்டிங்கை வைப்பதாகும்.
உங்கள் சாவிகள் அல்ல, உங்கள் பிரச்சனைகள் அல்ல
நாங்கள் ஒரு சொத்து பரிமாற்ற அமைப்பை உருவாக்கி வருகிறோம், மேலும் இந்த சொத்துக்களின் இடைநிலை சேமிப்பை அகற்ற விரும்புகிறோம், ஆனால் பரிவர்த்தனையின் பாதுகாப்பை நாங்கள் உறுதிப்படுத்த வேண்டும்.
நீங்கள் ஒரு சர்ச்சைக்குரிய சூழ்நிலையில் நீதிபதியாகச் செயல்படலாம் மற்றும் வாங்குபவர், விற்பவர் மற்றும் எஸ்க்ரோ ஆகிய மூன்றில் இரண்டு கையொப்பங்கள் தேவைப்படும் பணப்பைகள் மூலம் பரிவர்த்தனைகளை மேற்கொள்ளலாம்.
இருப்பினும், பங்கேற்பாளர் எஸ்க்ரோவை வெற்றிகரமாக தாக்கினால், அவர் தேவையான இரண்டு கையொப்பங்களைப் பெறுவார்.
அணு இடமாற்று என்பது ஒரு பரிமாற்றத் திட்டமாகும், இதில் உத்தரவாததாரர் நேர்மையான நடத்தையை மட்டுமே அனுமதிக்கும் ஒரு ஸ்மார்ட் ஒப்பந்தமாகும்.
ஓநாய், ஆடு மற்றும் முட்டைக்கோஸ் பற்றிய புதிரில் இருப்பது போல, நீங்கள் ஒரே சரியான சூழ்நிலையின்படி மட்டுமே செயல்பட முடியும் மற்றும் நீங்கள் அதிலிருந்து விலகிச் சென்றால் இழப்புகளைச் சந்திக்க முடியும்.
கொந்தளிப்பான விலங்குகளுக்குப் பதிலாக, ஒரு ஹாஷ் செயல்பாட்டால் ஆர்டர் வழங்கப்படுகிறது, அதில் மோதலைக் கண்டுபிடிப்பது மிகவும் கடினம், அது தொடங்குவதற்கு மதிப்பு இல்லை.
படி ஒன்று: புதிர்
ஆலிஸ் ஒரு காலை வேளையில் பாப் ஒரு சில "கிரிப்டோ-யுவானுக்கு" பிட்காயின் கொடுக்க விரும்புகிறாள் என்று வைத்துக்கொள்வோம்.
- அவள் ஏதோ பெரிய ரகசியம் செய்கிறாள்
- அதிலிருந்து ஒரு ஹாஷ் கிடைக்கும்
- ஒரு ஸ்மார்ட் ஒப்பந்தத்திற்கு பிட்காயின்களை மாற்றுகிறது, அதில் இருந்து பாப் ஒரு ரகசியத்தை வழங்குவதன் மூலம் பணத்தை எடுக்கலாம் (அதன் ஹாஷ் ஒப்பந்தத்தில் குறிப்பிடப்பட்டதற்கு சமமாக இருக்க வேண்டும்)
- மாலையில் பாப் தனது பிட்காயின்களைக் காட்டவில்லை என்றால், ஆலிஸ் அவற்றைத் தனக்குத் திரும்ப எடுத்துக் கொள்ளலாம்.
படி இரண்டு: தூண்டில்
பாப் செயல்பாட்டுக்கு வந்து, "கிரிப்டோ-யூரோவை" தனது ஒப்பந்தத்திற்கு மாற்றுகிறார், இது இவ்வாறு எழுதப்பட்டுள்ளது:
- ஆலிஸ் ஒரு ரகசிய எண்ணை வழங்குவதன் மூலம் "கிரிப்டோ-யென்ஸை" எடுத்துச் செல்லலாம்
- மதிய உணவுக்கு முன்னதாக அல்ல, ஆலிஸ் வரத் தவறினால், பாப் வைப்புத் தொகையைத் திருப்பித் தரலாம்.
படி மூன்று: பதில் தூண்டில் உள்ளது
ஆலிஸ் தனது பணத்திற்காக வந்து பாபின் ஒப்பந்தத்திலிருந்து பணத்தை எடுத்துக்கொள்கிறார், அந்த செயல்பாட்டில் தனது ரகசியத்தை வெளிப்படுத்துகிறார்.
இறுதி படி: புதிர் தீர்க்கப்பட்டது
பாப் பரிவர்த்தனையைப் பார்க்கிறார், மேலும் ஒப்பந்தத்திற்கு ஆலிஸ் வழங்கிய ரகசியத்தை அவர் கழுகுக் கண்ணால் பிரித்தெடுக்கிறார். அவர் தனது பிட்காயின்களை திரும்பப் பெற இந்த ரகசியத்தைப் பயன்படுத்துகிறார்.
விஷயங்கள் தவறாக நடக்கும்போது
ஆலிஸ் திடீரென்று மரணமடைந்துவிட்டால், மதிய உணவில் பாப் தனது யுவானை எடுத்துக்கொள்கிறார்.
இதையொட்டி, துரோக பாப் சிறந்த நேரம் வரை பணத்தை வைத்திருக்க முடிவு செய்தால், ஆலிஸ் மாலையில் பிட்காயினைத் திருப்பித் தருகிறார்.
நீங்கள் உரைக்கு ஒரு படத்தை விரும்பினால், Habré உங்களுக்கான ஒரு விரிவான மற்றும் காட்சி ஒன்றைக் கொண்டுள்ளது. .
காலக்கெடுவுக்கு இடையேயான வித்தியாசம், தீங்கிழைக்கும் ஆலிஸுக்கு எதிராக நம்மைக் காப்பீடு செய்யும் வகையில் வடிவமைக்கப்பட்டுள்ளது, அவர் கடைசி நேரத்தில் பாபின் பணத்தை எடுத்துக்கொள்கிறார், மேலும் அவர் நடுங்கும் விரல்களுடன் பரிவர்த்தனையில் ஹெக்ஸில் நுழையும்போது காலக்கெடு காலாவதியாகிறது.
பங்கேற்பாளர்கள் தங்கள் பணத்தை இழக்க முடியாது; அதிகபட்சம், அவர்கள் பணத்தைத் திரும்பப் பெற காத்திருக்க வேண்டும்.
பிளாக்செயின் ஆதரவுஇது ஒரு எளிய திட்டமாகும், இது பிளாக்செயின்களை தொடர்புகொள்வதில் இருந்து எதுவும் தேவையில்லை:
- குறைந்தபட்சம் ஒரு கிளையுடன் கூடிய ஸ்மார்ட் ஒப்பந்தங்களுக்கான ஆதரவு
- இரண்டு பிளாக்செயின்களும் ஒரே ஹாஷிங் அல்காரிதம்களை ஆதரிக்க வேண்டும் (ரகசிய நீளத்தை சரிபார்க்க நினைவில் கொள்ளவும்)
- டைம்லாக்ஸ்.
முதல் பார்வையில், பங்குச் சந்தைக்கு "குட்பை, எங்கள் சந்திப்பு ஒரு தவறு" என்று ஏற்கனவே சொல்ல முடியும், ஆனால் அது அப்படி இல்லை.
அவற்றின் அனைத்து நன்மைகளுக்கும், அணு மாற்று தீர்வுகள் அவற்றின் பணப்புழக்கத்தில் ஈர்க்கவில்லை. மிகவும் பிரபலமான BTC-USD ஜோடியில், ஃபியட் பகுதி முழுமையாக டோக்கனைஸ் செய்யப்படவில்லை.
USDT இன் வெற்றியானது ERC20 வடிவத்தில் ஒவ்வொரு சுவைக்கும் நிலையான நாணயங்களின் மொத்த அலையை உருவாக்கியுள்ளது, மிகவும் பாதுகாக்கப்பட்ட USDC முதல் மிகவும் அல்காரிதம் DAI வரை.
எனவே, எளிமைக்காக, ஆலிஸ் சில ERC20 டோக்கன்களுக்கு Bitcoins ஐ பாப் நிறுவனத்திற்கு விற்கிறார் என்று நாங்கள் மேலும் வாதிடுகிறோம், மேலும் எங்களிடம் இன்னும் பல தொழில்நுட்ப சிக்கல்கள் இருப்பதால், நிலைப்படுத்திகளின் அதிர்ஷ்டத்தை நாங்கள் நம்புகிறோம்.
வேகம்
Bitcoin மற்றும் Ethereum தனித்தனியாக மிக வேகமாக இல்லை, ஆனால் இங்கே நாம் அனைத்து உறுதிப்படுத்தல்களுடன் ஒரு வைப்புத்தொகைக்கு முதலில் காத்திருக்க வேண்டும், பின்னர் இரண்டாவது.
ஏனென்றால், ரகசியத்தை அறிந்த பங்கேற்பாளர் முதலில் பணத்தை டெபாசிட் செய்கிறார், மேலும் எதிர்ப்பாளர் இறுதிக்காகக் காத்திருந்தார், அதன்பிறகுதான் தனது பகுதியை மாற்றுகிறார்.
கூடுதலாக, நாங்கள் மிகவும் நிலையற்ற சொத்தை கையாள்கிறோம், எனவே இந்த நேரத்தில் விகிதம் கணிசமாக மாறக்கூடும், மேலும் நிலைமைகளை மாற்றுவது இனி எளிதானது அல்ல.
ரகசியத்தன்மை
எந்தவொரு பரிமாற்றமும் இரண்டு பிளாக்செயின்களிலும் கலைப்பொருட்களை விட்டுச்செல்கிறது. ஒரு கவனமுள்ள பார்வையாளர், ஸ்மார்ட் ஒப்பந்தங்களில் அதே ஹாஷ்களைக் கவனிக்க முடியும் மற்றும் ஒரு பரிவர்த்தனை முடிந்தது என்று ஒரு தர்க்கரீதியான முடிவை எடுக்க முடியும், அதிலிருந்து பரிமாற்ற விகிதத்திலிருந்து வரி வரை நிறைய முடிவுகளை எடுக்க முடியும்.
பங்குச் சந்தை உங்கள் விவகாரங்களைப் பற்றி அறிந்தால், அது மிகவும் விரும்பத்தகாதது; அனைவருக்கும் அதைப் பற்றித் தெரிந்தால், அது இரட்டிப்பாக விரும்பத்தகாதது.
பயன்பாட்டுதிறன்
பொதுவாக பிளாக்செயினின் வலுவான புள்ளி மற்றும் குறிப்பாக ஈதர். விற்பனையாளர் மற்றும் வாங்குபவர் என்ன சைகைகளை செய்ய வேண்டும் என்று பார்ப்போம்.
விற்பனையாளரின் பார்வையில், எல்லாம் ஒப்பீட்டளவில் எளிமையானது: நீங்கள் பிட்காயினை ஒரு p2sh முகவரிக்கு மாற்ற வேண்டும். ஈதருடன், எல்லாம் மிகவும் தந்திரமானது.
ஒப்பந்தம்ஒரு இடமாற்றுக்கான கிதுப்பின் சராசரி ஒப்பந்தத்தைப் பார்ப்போம்:
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 டோக்கன்கள், மற்றும் நல்ல காரணத்திற்காக.
பயனர்கள் தாங்களாகவே அடிக்கடி தவறு செய்து டோக்கன்களை ஒப்பந்தத்திற்கு மாற்றுகிறார்கள், அதன் பிறகு டோக்கன்கள் வெறுமனே இழக்கப்படுகின்றன. Etherscan பற்றிய கருத்துக்கள் துரதிர்ஷ்டவசமானவர்களின் புலம்பல்களால் நிறைந்துள்ளன.
ஒப்பந்தத்தை அழைக்க, நீங்கள் 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 சிக்கலான தரவு கட்டமைப்புகளின் கையொப்பங்களுடன் பணிபுரியும் ஒரு தரநிலையைக் கொண்டுள்ளது , நீங்கள் அதைப் பற்றி மேலும் படிக்கலாம்
பிரித்து ஆட்சி செய்யுங்கள்
பெரும்பாலும் Ethereum ஒப்பந்தத்தை ஹேக்கிங் செய்வதற்கான காட்சி இதுபோல் தெரிகிறது:
- பங்கேற்பாளர் ஒப்பந்தத்தில் நிதிகளை டெபாசிட் செய்கிறார்
- பின்னர் அவர் நிதியை எடுத்துக்கொள்கிறார்
- ஏதோ தவறு நடக்கிறது
- தாக்குபவர் மீண்டும் மீண்டும் பணத்தை எடுத்துக்கொள்கிறார்
நாம் நமது முதல் உதாரணத்திற்குச் சென்றால், புதிர் என்பது பைட்டுகளின் வெற்றுத் தொகுப்பாக இருந்தால் ஏதோ தவறாகிவிடும்.
ஒரு மில்லியன் திருடுவது எப்படிஹாஷ் மூலம் இடமாற்று உருவாக்கவும் 0x66687aadf862bd776c8fc18b8e9f8e20089714856ee233b3902a591d0d5f2925
இது sha256 இலிருந்து 0x0000000000000000000000000000000000000000000000000000000000000000
நாங்கள் ரகசியத்தை மாற்றி டோக்கன்களை எடுத்துக்கொள்கிறோம்
நாங்கள் மீண்டும் அனுப்புகிறோம் மற்றும் வேறொருவருடையதை எடுத்துக்கொள்கிறோம், ஏனென்றால் 0 = 0
ஒவ்வொரு வர்த்தகத்திற்கும் ஒரு தனி ஒப்பந்தத்தை உருவாக்குவதன் மூலம், EVM அளவில் ஒப்பந்தங்களை தனிமைப்படுத்தலாம்.
ஆனால் அது எல்லாம் இல்லை: இப்போது ஒவ்வொரு பரிவர்த்தனைக்கும் அதன் சொந்த முகவரி உள்ளது, நீங்கள் எந்த பணப்பையிலிருந்தும் அல்லது பரிமாற்றத்திலிருந்தும் டோக்கன்களை மாற்றலாம்.
கைவிடப்பட்ட ஒப்பந்தங்கள் மற்றும் உருவாக்கம்2
ஆனால் இப்போது ஒவ்வொரு பரிவர்த்தனைக்கும் நாம் ஒரு ஒப்பந்தத்தை உருவாக்கி, வாங்குபவர் தொழிலாளர் "கிரிப்டோ-கண்டுபிடிப்பை" மாற்றுவதற்கு காத்திருக்க வேண்டும். "காலையில் ஒப்பந்தங்கள், மாலையில் பணம்" திட்டத்தில், வாங்குபவர் வீழ்ச்சியடையும் ஆபத்து எப்போதும் உள்ளது, மேலும் ஒப்பந்தத்தை உருவாக்குவதற்கு ஈதர் ஏற்கனவே செலவிடப்பட்டுள்ளது.
காலையில் பணம், மாலையில் பைட்டுகள் என்று அதை உருவாக்க முடியுமா?
கான்ஸ்டான்டிநோபிள் ஹார்ட் ஃபோர்க்கில் டெவலப்பர்கள் உருவாக்கு2 அறிவுறுத்தலைச் சேர்த்தது, இது ஒரு உறுதியான முகவரியில் புதிய ஒப்பந்தத்தை உருவாக்குகிறது
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
