Jump to content
Sign in to follow this  
Twarden

Permissioned Ledgers and Accounting for Personal Credit/Responsibility

Recommended Posts

Within the Ripple ecosystem, I have been attempting to account for personal credit and an individual's responsibility within social credit systems such as LETS and Time Banks built on the public RCL.  Since each individual must trust each identifier on the network tied to a known person you trust, personal credit and the responsibility of the individual can cause their IOUs to default if that person is unscrupulous, whereas the individual attempts to sell social credit IOUs for another asset with the intent to never settle the issued IOUs.  Therefore, if two individuals implicitly always trust each other to honour their social credit IOUs, but trust this individual or become trusted by this individual while rippling is enabled (which would make sense to assist path-finding) could allow honest individuals to become defrauded for their social credit and thus devalues the overall issuances of the LETS/Time Bank IOUs on the market.

So far, I have come up with two technical solutions to this issue, but they don't even really sound good to me therefore I decided to open this discussion to gather feedback.

Authorization by Default

I believe that all Ripple accounts should have the asfRequireAuth flag set to true by default when they are created on the Ripple network. This solves the issue of credit rippling into accounts/markets where they should not to some extent.  Individuals participating within LETS/Time Banking systems built on Ripple are still at risk of allowing trust to be issued to 'the bad guy' I provided within the thesis.  Gateways which are not private gateways (individual offering social credit) simply set the asfRequireAuth flag to false if they wish to go public.

Built-in Reputation System

If Ripple is working with the W3C on the specifications of how RCL and ILP will play into the development of 'the internet of value' then these specification absolutely cannot be deemed completed until a Reputation System is built into the Ripple network.  If Ripple is actively developing a system (attesters) for attempting to account for which validating servers you can trust to add within your UNL, then Ripple definitely has the team of people with the necessary passion, talent, and skills to reserve the currency code REP and attempt to solve for honesty within a trust-less system.  I honestly cannot comment much about these technical details because I don't know about the necessary changes for this solution unlike I was able to postulate above: But DJS will probably know what to say about these suggestions so I would love to hear his input! @JoelKatz

Edited by Twarden

Share this post


Link to post
Share on other sites

The implementation of making balances freezable by default already was a bad move, requiring auth all the time would make it nearly impossible to start a community on RCL.
 It is up to the individual to issue trust and the limit to which this trust is expressed is also user defined. I don't see the reason how adding RequireAuth to new accounts would preotct them from bad decisions.

I don't get what you want to accomplish with a (centralized) "REP" currency code, (nearly) all history on RCL is open and any scheme that would take stuff that happens inside the ledger into account already can have full access to everything there. If you want to take external events into account, you'd be better off to encode these into something that can be stored in the ledger again so this "REP" currency can be verified, otherwise you'd need to communicate out-of-band anyways and would remove the trustlessness of it.

Additionally - a reputation system does not help if e.g. accounts are hacked/stolen, it would only make matters worse. Most of them also have bootstrapping issues and seem to me more like gamification than an actually useful measure of trust.

Share this post


Link to post
Share on other sites

This is the trouble I run into when conceptualizing how bad actors may try to interfere with social credit circles on Ripple.  Like I said, I have two bad ideas to attempt to solve for an issue I don't quite know how to solve.

Here is an example, three people have trust lines set up between each other with balances owed to each other.  A bad actor attempts to trust one of the issuers within this group and assures the individual that his/her social credit is acceptable.  For this example, all of the people are exchanges HRS, where 1 IOU is worth 1 hour of the issuer's labour and/or the equivalent minimum wage for that region in their local fiat currency.  The bad actor, Bob, receives trust from Alice for 2 HRS and issues her 2 HRS in exchange for 25 CAD (12.50$CAD * 2 hours).  Bob, Alice, plus another mutual part of the social credit circle George joins a chatroom to meet Bob, who successfully assures him that his IOUs are redeemable if he requires Bob's talents/skills and George summarily negotiates a purchase from Alice.  At a later date, George asks Bob to honour his agreement for labour but Bob managed to successfully scam the social circle for an asset he preferred and never replies.  George now becomes a bad actor within this circle and asks another member to trust Bob's address for 2 HRS and buy the devalued IOUs to regain his losses; This persists until an individual sends the IOUs to the issuer.  With Authorization enabled by default, the bad actor would have to authorize a trust-line from another individual if the person he scams attempts to become a bad actor; This is the only idea I have generated in an attempt to minimize these sorts of risks as Bob and George can now collude together in an attempt to move more fraudulent IOUs around this sub-network thereby possibly creating more bad actors..

As for the reputation solution, you are right that it is incredibly difficult to provide a solution for, if at all possible as you mentioned reputation would have to be communicated out of the network is some cases (i.e. this above scams apply) therefore you would have to payment bad actors with REP and associated the transactions which act as evidence to not participate in social credit exchanges with this identifier on the network as the individual operating it at one point acted maliciously.  Along these lines, you mentioned that accounts would then become targets by hackers who could  desire tarnishing accounts' reputations, which creates another huge mess.

Thank you for adding to this discussion, I always greatly appreciate your feedback @Sukrim:)

Edited by Twarden
Bob receives trust from Alice, he does not trust her.

Share this post


Link to post
Share on other sites
Quote

The bad actor, Bob, trusts Alice for 2 HRS and issues her 2 HRS

In your example, Bob can't issue/send anything to Alice unless Alice opens a trust line towards him. Opening a trust line means you can receive something from this entity, not that you can send anything there of your own stuff. Anything Bob can send to Alice needs to be either XRP or something that he already owns and can trade for something she accepts (e.g. George's HRS). This does not change if he opens a trust line towards her, this only gives everyone else more options to send something to him (HRS/Alice + XRP instead of only XRP), not what he can send to others.

Maybe I'm misunderstanding something, in that case, please elaborate a bit more and give a concrete example how RequireAuth would protect anyone from someone who hands out IOUs that are not going to be redeemable.

Share this post


Link to post
Share on other sites

Social credit is typically built around the assumption that settlement will not occur. I don't trade you X for Y because I expect you to trade me Y for X. That's a loan. Social credit is where I trade you X for Y because I value X and Y equally and I am indifferent to whether or not you settle in the future. I want you to owe me money because that obligation is the currency.

The "security", to the extent there is one, comes from three factors:

1) You cannot betray me without betraying everyone else in your network.

2) Your network has value and you will lose that if you betray everyone.

3) Even if everyone is a malicious actor waiting to strategically default, the system still works because the trust I extend to you is based on value I've already gotten from you, not the expectation of future value.

The third factor is, perhaps, the most important. If I"m the well-established guy and you're the newcomer, you have to trust me. The odds that I'll pick the moment you are trusting me to give up my well-established network are low, and you'll take that risk. Later, once you've already saved me, say, $10 by trusting me, then maybe I'll trust you for $8. Even if you betray me, I'm still up $2 on our deal. And the longer you wait to betray me, yes the more I lose, but the greater value I've gained from you to offset that loss.

Share this post


Link to post
Share on other sites
Guest Haydentiff

Does everything have to be done using only Ripple?  I can't tell from your post, but I might be working on something similar (I'm a huge fan of mutual aid societies). What if you used a private IRC channel as a shared space and implemented a WoT rating system similar to Bitcoin-OTC?

https://wiki.bitcoin-otc.com/wiki/OTC_Rating_System

Users can decide for themselves who to trust.

Share this post


Link to post
Share on other sites
5 hours ago, Sukrim said:

In your example, Bob can't issue/send anything to Alice unless Alice opens a trust line towards him.

Sorry, I typo'd there, I meant to write that Alice trusts Bob so that dishonest IOUs enter the network as per the remainder of the example reads; The asRequireAuth flag would simply make it necessary for Bob and George to collude with one another if George would want to pass on Bob's dishonest IOUs in an attempt to regain his loss.  

3 hours ago, JoelKatz said:

Social credit is typically built around the assumption that settlement will not occur. I don't trade you X for Y because I expect you to trade me Y for X. That's a loan. Social credit is where I trade you X for Y because I value X and Y equally and I am indifferent to whether or not you settle in the future. I want you to owe me money because that obligation is the currency.

The "security", to the extent there is one, comes from three factors:

1) You cannot betray me without betraying everyone else in your network.

2) Your network has value and you will lose that if you betray everyone.

3) Even if everyone is a malicious actor waiting to strategically default, the system still works because the trust I extend to you is based on value I've already gotten from you, not the expectation of future value.

The third factor is, perhaps, the most important. If I"m the well-established guy and you're the newcomer, you have to trust me. The odds that I'll pick the moment you are trusting me to give up my well-established network are low, and you'll take that risk. Later, once you've already saved me, say, $10 by trusting me, then maybe I'll trust you for $8. Even if you betray me, I'm still up $2 on our deal. And the longer you wait to betray me, yes the more I lose, but the greater value I've gained from you to offset that loss.

Yes, a lower level, typical example of an Hours transaction could be as simple as I provided 8 HRS of work at a factory today, so the company sends my account 8 HRS.Factory for those 8 Hours of work where perhaps the Corporation I work for allows me to redeem their IOUs at a Gateway for one or more fiat currency relative to the position's salary for those 8 hours of skilled labour or the minimum wage regulations for the region involved for any unskilled labour involved.

Your expertise to problem solve for this issue has been greatly appreciated @JoelKatz.  

But with this system lets assume that settlement will occur between individuals..perhaps a Ripple Time Bank is formed via specifications posted in a thread on XRPchat:  1 Hour (HRS) is equal to accessing 1 hour of your personal time as your talents/skills permit and can also be valued as the Minimum Wage for your Country.  In this example we are disregarding that Time Banks do not typically function like this example as skilled labour is more valuable than unskilled labour.  In the example within my prior post I wrote about a malicious user, Bob, having being trusted by Alice for 2 HRS worth of social credit (on loan) in exchange for 25$ paid because he promises her that he will honour 2 hours of labour at a later date.  Alice decides to instead sell those bad IOUs (that she may or may not know are not redeemable to Bob) to another party, George, because she wants/requires fiat as per the above example.  George now realizes that Bob's 2 HRS are no good, he wants to cut his losses because he was not heavily involved within this time bank, so he becomes a bad actor and has to now collude with Bob to have the asRequestAuth flag authorized for another target's account so that George can attempt to cover some of his loss.  

@JoelKatz raises all of the points that I have not considered that forces individuals to behave within a Time Bank. Even as a new comer that could potentially gain value from becoming a bad actor, the marginal utility of risk and reward will have such tight margins it is probably more economically beneficial to never attempt to scam and summarily become blacklisted from the social credit network.

While I still may have your attention for a while @JoelKatz, how would you solve for reputation within the Ripple Network?   @Sukrim mentioned encoding evidence into the network when it comes to reputation as nothing can be fully determined out of band regarding the identifiers linking the individual to transactions. Loans where bad credit enters the network like above could be described on the ledger with the Memo object.  What if the last affected account in the chain of abuse redeems the Time Credit(s) back to the malicious user?  S/he finds the hashes which could sufficiently implicate the bad actor as colluding with other the ripple account(s) attempting to scam new comers, an could provide proof of scamming to one or more identifier on the ripple network when set to the Memo field then redeemed.  I don't suppose that there are any plans for the development of web of trust functionality such as what I have described in this post but designed to be accessible for those much less technically capable than people such as myself (i.e. consumers)?

1 hour ago, Haydentiff said:

Does everything have to be done using only Ripple?  I can't tell from your post, but I might be working on something similar (I'm a huge fan of mutual aid societies). What if you used a private IRC channel as a shared space and implemented a WoT rating system similar to Bitcoin-OTC?

https://wiki.bitcoin-otc.com/wiki/OTC_Rating_System

Users can decide for themselves who to trust.

Yes, I am a huge fan of Local Exchange Trade Systems (LETS) and Time Banks.  

The serious answer is yes, I would like to see a web of trust built directly into the Ripple protocol itself.  The entire environment, how it operates, an what makes Ripple the biggest deal to humanity is how well it will serve all of us when fiat is worthless (an no one really realizes this or talks about it for whatever reason, perhaps because this is a fringe topic and people in FinTech can't be judged, except for people that don't care like me) and because of the current paradigm we are living within. 

Yes, these mutual aid systems are meant to be created via private web sites, social media, slacks, IRCs but I am thinking big picture..to be able to build those modules successfully requires the underlying system.  What is truly necessary for them to come to be is this very decentralized internet of value system that can be immediately coupled with infinite social credit systems based on anyone's creativity and another's willingness to voluntary transact with another person; Which makes Ripple a libertarians' ****ing dream.  

To be living in the time when news is being released that our Governments are corrupt and our monetary policy is cleverly concealed slavery is coming to an end, plus residing within a socialist country where I can collect welfare due to disability to be able to contemplate plus work on these sorts of networks are needed (an individuals like myself are few and far between but growing) has me awe-full.  I strongly believe that RCL and/or ILP can and will account and trade for easily (ba dum tis) within our economic system when it shifts from quantitative fiat currency back towards quality money via a true free market where precious metals, cryptocurrency, and social credit float against one another within local, regional, and international markets.  

TLDR;  @JoelKatz just set aside the last bit of fear I had about attempting to form a Time Bank, let's make one for XRPchat!  So come one come all, let us get the show on the road now, who else wants to see fiat die a horrible death so we can have our monetary freedom finally!?

Edited by Twarden

Share this post


Link to post
Share on other sites
Guest Haydentiff

You can still use Ripple for LETS while using WoT outside of Ripple -if you wanted to start soon.

I like the idea of communities banding together and pooling surplus resources. Airbnb and Uber are not part of a sharing economy. They are a part of a renting economy. I think now is the perfect time for mutual aid societies to make a comeback.

You sort of sound like you're preparing for a SHTF scenario. Mutual aid societies work best when they are formed by a group of people that share a common problem and the best solution to that community's problem is to start a business together, which provides services to address the problem.  I also think an internal currency is needed (any maybe there is a way to use this for reputation as well) as an incentive for members to contribute more than the bare minimum required.

What is the unified goal of the system you are proposing, @Twarden?

Share this post


Link to post
Share on other sites

Off-topic, but kind of similar:  There's a new kind of insurance popping up that is based on small social-based groups of people.  (by social-based I mean currently it's religious-based). 

These health insurance groups can offer premiums lower than market based on factors that are included on an application.  I'm thinking that there is a use case in there somewhere for a blockchain / contract solution, but I haven't really fleshed it out yet. 

I think the insurance market in general could benefit from blockchain solutions and standardization that is provided by a protocol. 

Share this post


Link to post
Share on other sites

While it would be nice to have every feature at a protocol level it would be impractical. Would not a Time Bank be better designed at a gateway level, saving ripple for the final settlement? Users of the time bank/ gateway don't even have to interact with ripple, the gateway can simply allow its members to trade the unit of exchange amongst themselves, only acting as a middle man for out of unit exchanges (fiat or perhaps another time bank/ gateway's unit) and initial disbursement.

Social credit on the web would be interesting, but @Twarden has outlined the key issue of trust. That's why most time banks/ social credit organizations are focused around a single cause, geographic region or social interaction (ex: religious), the actors are known and add that extra social pressure for honesty. Having a 'closed' gateway (users have to sign up and/or restricting membership in someway ex: existing members vouching for newer ones) can help maintain the communities honesty short of the gateway acting as a policing agent and verifying each member and dealing issues.

Share this post


Link to post
Share on other sites
11 hours ago, Haydentiff said:

What is the unified goal of the system you are proposing, @Twarden?

The road map has always been:

-Create a Ripple Gateway serving sound money (PMs and Crypto) which can be traded for Fiat

-Establish a secondary consulting business within the community via supporting the open source Ripple community 

Originally I was going to do this by attempting to create working use cases built on Ripple, the first idea I had was to create a tournament registration system and working Ripple web-store.  I attempted to approach Black Knight Games [forum], a local game store and lounge within my city, and introduced the owner to Ripple an proposed I could collaborate with them on a freelance basis.  I started working and the owner didn't have interest, therefore I released the code onto GitHub and The QuickGatewayKit project came to be.

-Launch USD Gateway to complete the beta of XAGATE, move onto maintaining the project by adding fiat currencies whenever and wherever possible

-Complete a back end system to automate settlement of cryptocurrencies; sidbrooks is the back-end engineer for this project who is creating this repo for QGK

-Launch a true cryptocurrency exchange on the RCL;  Put the rest to shame as our overhead will be so much lower therefore we can undercut their service fees by 50%.

-Discuss social credit systems built on RCL with the community then form them

See this thread that unfortunately went no where because the individual who contacted me over Facebook ignored me when I asked him to please come discuss Time Banks with us.  I'd like to know if @karlos might be interested in allowing those of us interested to see this system become a reality to have XRPchat act as the network that could host one or more LETs/Time Bank on the site; This could perhaps finally cause people to use the marketplace forums and not just shamelessly whore their web sites for views (xrp.asia guy is still trying to sell his domain on the official forum LMAO). 

But the solid answer to your question @Haydentiff is that I would like to see people offer IOUs such as Steven Zeiler did called the SZD; The equivalent of my own Time Credit is called HRS.~Xagate which equals 1 hour of my time and is always tied to the value of the current minimum wage of Canada (12.50$).  CSS, TWN, HMB, and FAN are social credit IOUs issued by ~Xagate to ~Twarden and are sold for CAD.Rippleunion.  Try to find the Easter Egg on XAGATE to find out more about my social credit IOUs and for the "hidden" services I offer; No more hints will be given.  I want to see people post threads on the marketplace of XRPchat, facebook market, kijiji, and world wide one day asking each other to exchange their time for PMs and/or Crypto for their products & services.  When we begin to see that our standard of living increases so drastically due to technological growth means that we will not be required to one day use an arbitrary valuation system and instead can base our economy directly on the individual's talents and skills; That is the absolute true end goal (Smart people stay one step ahead in terms of thought and reasoning but really smart people think two or three steps ahead -My discrete mathematics professor, second semester @ College).

3 hours ago, Hodor said:

Off-topic, but kind of similar:  There's a new kind of insurance popping up that is based on small social-based groups of people.  (by social-based I mean currently it's religious-based). 

These health insurance groups can offer premiums lower than market based on factors that are included on an application.  I'm thinking that there is a use case in there somewhere for a blockchain / contract solution, but I haven't really fleshed it out yet. 

I think the insurance market in general could benefit from blockchain solutions and standardization that is provided by a protocol. 

@KarmaCoverage I gave you a ton of technical writing for absolutely nothing last Summer. Pray tell, have you got a prototype working yet??

I also just have to ask is anyone really pissed that Peercover goes *poof*, datz goes crazy suddenly, then peercover.co.nz pops up out of nowhere?  Freequant was nice enough to point out that datz was right regarding MIT on the official forum..an now Larsen is collaborating with them on a course..  More than slightly suspicious, yes? I know all of you hate me because I wasn't burned by him but give him credit for at least attempting to do great things for you (do you all think I work in this field because I am solely doing it for myself?).  Then again, I could be wrong an protecting a true sociopath, we will perhaps never truly know the absolute truth.

1 hour ago, Mercury said:

While it would be nice to have every feature at a protocol level it would be impractical. Would not a Time Bank be better designed at a gateway level, saving ripple for the final settlement? Users of the time bank/ gateway don't even have to interact with ripple, the gateway can simply allow its members to trade the unit of exchange amongst themselves, only acting as a middle man for out of unit exchanges (fiat or perhaps another time bank/ gateway's unit) and initial disbursement.

Social credit on the web would be interesting, but @Twarden has outlined the key issue of trust. That's why most time banks/ social credit organizations are focused around a single cause, geographic region or social interaction (ex: religious), the actors are known and add that extra social pressure for honesty. Having a 'closed' gateway (users have to sign up and/or restricting membership in someway ex: existing members vouching for newer ones) can help maintain the communities honesty short of the gateway acting as a policing agent and verifying each member and dealing issues.

I believe that for successful time banking and social credit systems to be built on Ripple requires a social network which can host social networks, like how BBS software can allow for users to create their own sub-boards on a board.  Think about something along the lines of https://www.minds.com/ meets Reddit but centered around exchange should be our end result.  I am currently attempting to join a community called researchgate.com, I was approached a few months ago by a Professor of Artificial Intelligence regarding something I wrote on the official forum, and this system require multiple nominations before an invitation may be issued (this professor jokingly referred to ResearchGate as being more strict than the nazi party in this regard).  

I strongly believe that we could set up a deterrent for new comers by creating a security deposit system to strengthen the network.  As @JoelKatz mentions there are very small margins for the risk/reward involved for new comers to begin acting maliciously as the network itself would be far more valuable to use than to attempt to default.  The work flow is thus: the new comer has been nominated via Social Credit Wallet app of XRPchat.com successfully an they have to pay @karlos's wallet XXX XRP as a security deposit if they wish to officially join, the new comer enters a probation period and must make transactions within the LETs/TB to regain their XRP, the idea is that after X time or Y transactions committed then the reward of not acting maliciously and losing your XRP would outweigh bad behaviour.  When multi-sign is amended, then the Gateway sends a blob to sign to the new comer and resubmit to the Gateway, the Gateway will sign the payment to return the new comer's XRP when it is believed that the individual should not logically be a threat to anyone.

Edited by Twarden

Share this post


Link to post
Share on other sites
Guest
25 minutes ago, Twarden said:

I also just have to ask is anyone really pissed that Peercover goes *poof*, datz goes crazy suddenly, then peercover.co.nz pops up out of nowhere?  Freequant was nice enough to point out that datz was right regarding MIT on the official forum..an now Larsen is collaborating with them on a course..  More than slightly suspicious, yes? I know all of you hate me because I wasn't burned by him but give him credit for at least attempting to do great things for you (do you all think I work in this field because I am solely doing it for myself?).  Then again, I could be wrong an protecting a true sociopath, we will perhaps never truly know the absolute truth.

If by "datz was right regarding MIT" you mean that his verbose and paranoid delusional ramblings happened to mention a conspiracy involving MIT, the CIA, the IMF, President Obama, the Red Cross, the National Pork Producers Council and the cast of Big Bang Theory to cover up the truth about King Datz's sovereignty over the earth, and now Ripple and MIT have started working together... Then yes, datz was right about MIT.

Share this post


Link to post
Share on other sites

I mentioned ResearchGate.net in my prior post, been bothering this professor I mentioned for quite a while about not receiving an invite, but I was finally accepted today.  Once I get set up in the community by sharing some of my prior publications I plan to try to form a social credit and fiat gateway network through their site if the operators are interested enough to collaborate to that extent.

4 hours ago, tomxcs said:

If by "datz was right regarding MIT" you mean that his verbose and paranoid delusional ramblings happened to mention a conspiracy involving MIT, the CIA, the IMF, President Obama, the Red Cross, the National Pork Producers Council and the cast of Big Bang Theory to cover up the truth about King Datz's sovereignty over the earth, and now Ripple and MIT have started working together... Then yes, datz was right about MIT.

The IP theft is what I'm talk about an you know it.  We all know the situation.  The Ripple community as a whole can stop ridiculing the poor an possibly broke man any time now an make an honest attempt at appreciating what legal (i.e. webmata) an the socioeconomic projects like Peercover he was creating until the SHTF for him and us both.

Edited by Twarden

Share this post


Link to post
Share on other sites
Guest
33 minutes ago, Twarden said:

I mentioned ResearchGate.net in my prior post, been bothering this professor I mentioned for quite a while about not receiving an invite, but I was finally accepted today.  Once I get set up in the community by sharing some of my prior publications I plan to try to form a social credit and fiat gateway network through their site if the operators are interested enough to collaborate to that extent.

The IP theft is what I'm talk about an you know it.  We all know the situation.  The Ripple community as a whole can stop ridiculing the poor an possibly broke man any time now an make an honest attempt at appreciating what legal (i.e. webmata) an the socioeconomic projects like Peercover he was creating until the SHTF for him and us both.

IP theft? No, I don't. I was never involved with Peercover or any of the other iterations and only know about its failed and perhaps fraudulent attempts at providing some services on top of the Ripple network. 

Share this post


Link to post
Share on other sites
6 hours ago, tomxcs said:

IP theft? No, I don't. I was never involved with Peercover or any of the other iterations and only know about its failed and perhaps fraudulent attempts at providing some services on top of the Ripple network. 

An people wonder why I am upset when no one bloody knows the whole ****ing story an decides to only comment his craziness an on my (perhaps poor judgement) in being curious of what happened to datz an for being at least appreciative for what passionate work he was doing for a while.  But yes, thanks for commenting on the topic at hand instead of just an aside bit from my detailed technical discussion on why I'm working within Ripple between two posts @tomxcs; It is very much appreciated </end sarcasm>.

Edited by Twarden

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...